Entities serilization problem. Potential bug?!?

"Bogdan Onoiu" <[email protected]> Tue, 15 Jun 2004 01:12:01 +0300
Newsgroups gmane.comp.java.enhydra.kxml
Message-ID <000601c4525c$9dd81730$0200a8c0@clyde>
This is a multi-part message in MIME format.

------=_NextPart_000_0007_01C45275.C3254F30
Content-Type: multipart/alternative;
	boundary="----=_NextPart_001_0008_01C45275.C3254F30"


------=_NextPart_001_0008_01C45275.C3254F30
Content-Type: text/plain;
	charset="us-ascii"
Content-Transfer-Encoding: 7bit

Hi Stefan,
 
It seems that sooner or later I need to deal with this weird problem I
have for some months now. I cannot spot the wrong point in the code so I
am asking your help.
Basically it is about serializing to WBXML some XML content that was
escaped to entites before being pussed to the parser
 
So if one XML node contains something like:
 
<ContentData>(06/15/2004 00:31) &lt;HTML&gt;&lt;BODY
BGCOLOR="#ffffff"&gt;&lt;FONT
LANG="0"&gt;hiho&lt;/FONT&gt;&lt;/BODY&gt;&lt;/HTML&gt;</ContentData>
 
which is a valid XML and I try to transcode this to WBXML, I am
expecting that at most the serializer is resolving correctly the
entities and pushes to WBXML (eg "<" for &lt; or ">" for &gt;) or at
least leaves the content as such.
This is not actually happening and this is what the Ethereal sees being
transformed over the wire starting at pozition "019a" you can see a
weird "0003" sequence repeted at every &lt; entity.
 
 

 
 
BTW, I don't get it why this is done this way:
 
public void entityRef(String er) throws IOException {
            throw new RuntimeException("EntityReference not supported
for WBXML" + er);
}
 
Don't see why it shouldn't. Is up to the WBXMLParser (or wbxml client in
general) to understand and escape the entitites. Is it specified in the
WBXML specs like this?
 
Some help for this will be highly appreciated.
 
Cheers,
Bogdan Onoiu
 

------=_NextPart_001_0008_01C45275.C3254F30
Content-Type: text/html;
	charset="us-ascii"
Content-Transfer-Encoding: quoted-printable

<html xmlns:v=3D"urn:schemas-microsoft-com:vml" =
xmlns:o=3D"urn:schemas-microsoft-com:office:office" =
xmlns:w=3D"urn:schemas-microsoft-com:office:word" =
xmlns=3D"http://www.w3.org/TR/REC-html40">

<head>
<META HTTP-EQUIV=3D"Content-Type" CONTENT=3D"text/html; =
charset=3Dus-ascii">


<meta name=3DProgId content=3DWord.Document>
<meta name=3DGenerator content=3D"Microsoft Word 10">
<meta name=3DOriginator content=3D"Microsoft Word 10">
<link rel=3DFile-List href=3D"cid:[email protected]">
<link rel=3DEdit-Time-Data href=3D"cid:[email protected]">
<!--[if !mso]>
<style>
v\:* {behavior:url(#default#VML);}
o\:* {behavior:url(#default#VML);}
w\:* {behavior:url(#default#VML);}
.shape {behavior:url(#default#VML);}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:OfficeDocumentSettings>
  <o:DoNotRelyOnCSS/>
 </o:OfficeDocumentSettings>
</xml><![endif]--><!--[if gte mso 9]><xml>
 <w:WordDocument>
  <w:GrammarState>Clean</w:GrammarState>
  <w:DocumentKind>DocumentEmail</w:DocumentKind>
  <w:EnvelopeVis/>
  <w:Compatibility>
   <w:BreakWrappedTables/>
   <w:SnapToGridInCell/>
   <w:WrapTextWithPunct/>
   <w:UseAsianBreakRules/>
  </w:Compatibility>
  <w:BrowserLevel>MicrosoftInternetExplorer4</w:BrowserLevel>
 </w:WordDocument>
</xml><![endif]-->
<style>
<!--
 /* Style Definitions */
 p.MsoNormal, li.MsoNormal, div.MsoNormal
	{mso-style-parent:"";
	margin:0cm;
	margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
a:link, span.MsoHyperlink
	{color:blue;
	text-decoration:underline;
	text-underline:single;}
a:visited, span.MsoHyperlinkFollowed
	{color:purple;
	text-decoration:underline;
	text-underline:single;}
p
	{mso-margin-top-alt:auto;
	margin-right:0cm;
	mso-margin-bottom-alt:auto;
	margin-left:0cm;
	mso-pagination:widow-orphan;
	font-size:12.0pt;
	font-family:"Times New Roman";
	mso-fareast-font-family:"Times New Roman";}
span.EmailStyle18
	{mso-style-type:personal-compose;
	mso-style-noshow:yes;
	mso-ansi-font-size:10.0pt;
	mso-bidi-font-size:10.0pt;
	font-family:Arial;
	mso-ascii-font-family:Arial;
	mso-hansi-font-family:Arial;
	mso-bidi-font-family:Arial;
	color:windowtext;}
span.GramE
	{mso-style-name:"";
	mso-gram-e:yes;}
@page Section1
	{size:595.3pt 841.9pt;
	margin:72.0pt 90.0pt 72.0pt 90.0pt;
	mso-header-margin:35.4pt;
	mso-footer-margin:35.4pt;
	mso-paper-source:0;}
div.Section1
	{page:Section1;}
-->
</style>
<!--[if gte mso 10]>
<style>
 /* Style Definitions */=20
 table.MsoNormalTable
	{mso-style-name:"Table Normal";
	mso-tstyle-rowband-size:0;
	mso-tstyle-colband-size:0;
	mso-style-noshow:yes;
	mso-style-parent:"";
	mso-padding-alt:0cm 5.4pt 0cm 5.4pt;
	mso-para-margin:0cm;
	mso-para-margin-bottom:.0001pt;
	mso-pagination:widow-orphan;
	font-size:10.0pt;
	font-family:"Times New Roman";}
</style>
<![endif]--><!--[if gte mso 9]><xml>
 <o:shapedefaults v:ext=3D"edit" spidmax=3D"1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
 <o:shapelayout v:ext=3D"edit">
  <o:idmap v:ext=3D"edit" data=3D"1" />
 </o:shapelayout></xml><![endif]-->
</head>

<body lang=3DEN-GB link=3Dblue vlink=3Dpurple =
style=3D'tab-interval:36.0pt'>

<div class=3DSection1>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Hi Stefan,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>It seems that sooner or later I need to deal with this weird =
problem I
have for some months now. I cannot spot the wrong point in the code so I =
am
asking your help.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Basically it is about serializing to WBXML some XML content that =
was
escaped to entites before being pussed to the =
parser<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>So if one XML node contains something =
like:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>&lt;ContentData&gt;(06/15/2004 00:31) =
&amp;lt;HTML&amp;gt;&amp;lt;BODY
BGCOLOR=3D&quot;#ffffff&quot;&amp;gt;&amp;lt;FONT
LANG=3D&quot;0&quot;&amp;gt;hiho&amp;lt;/FONT&amp;gt;&amp;lt;/BODY&amp;gt=
;&amp;lt;/HTML&amp;gt;&lt;/ContentData&gt;<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>which is a valid XML and I try to transcode this to WBXML, I am
expecting that at most the serializer is resolving correctly the =
entities and
pushes to WBXML (eg &#8220;&lt;&#8221; for &amp;lt; or =
&#8220;&gt;&#8221; for
&amp;gt;) or at least leaves the content as =
such.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>This is not actually happening and this is what the Ethereal =
sees being
transformed over the wire starting at pozition &#8220;019a&#8221; you =
can see a
weird &#8220;0003&#8221; sequence repeted at every &amp;lt; =
entity.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><img width=3D606 height=3D91 id=3D"_x0000_i1025"
src=3D"cid:[email protected]"><o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>BTW, I don&#8217;t get it why this is done this =
way:<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><span class=3DGramE><font size=3D3 face=3D"Times =
New Roman"><span
style=3D'font-size:12.0pt'>public</span></font></span> void =
entityRef(String er)
throws IOException {<o:p></o:p></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><span =
style=3D'mso-tab-count:1'>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp=
;&nbsp;&nbsp;&nbsp; </span><span
class=3DGramE>throw</span> new RuntimeException(&quot;EntityReference =
not
supported for WBXML&quot; + er);<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>}<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Don&#8217;t see why it shouldn&#8217;t. Is up to the WBXMLParser =
(or
wbxml client in general) to understand and escape the entitites. Is it
specified in the WBXML specs like this?<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Some help for this will be highly =
appreciated.<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Cheers,<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'>Bogdan Onoiu<o:p></o:p></span></font></p>

<p class=3DMsoNormal><font size=3D3 face=3D"Times New Roman"><span =
style=3D'font-size:
12.0pt'><o:p>&nbsp;</o:p></span></font></p>

</div>

</body>

</html>

------=_NextPart_001_0008_01C45275.C3254F30--

------=_NextPart_000_0007_01C45275.C3254F30
Content-Type: image/jpeg;
	name="image001.jpg"
Content-Transfer-Encoding: base64
Content-ID: <[email protected]>

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
qVKCVKlSg//Z

------=_NextPart_000_0007_01C45275.C3254F30--