parsing entity values

Philip J Grabner grabner at
Sat Jan 23 00:18:27 GMT 1999


i have a dilemna regarding how to parse EntityValue, specifically (as a 
demonstration of my issue with it) in the following case:

<!ENTITY % ap "&#38;#39;" >			( 38 = "&" , 39 = "'" )
<!ENTITY msg "he said %ap;hi!%ap;" >

as i understand it, the replacement text for "ap" should be stored
as "&#39;" because char ref's and pe's must be replaced by their values.


now i get to parsing "msg" and i find the pe. it would be simple to
(1) replace '%ap;' with the replacement text thus giving:

"he said &#39;hi!&#39;"		(replacement text for "msg")

but perhaps this is incorrect, eg you must (2) substitue in the
replacement text and 'reparse', thus giving:

"he said 'hi!'"			(replacement text for "msg")

in this particular case, it does not matter. but if indeed the replacement
text must be reparsed, as in (2), then this makes the parsing actually
quite difficult: according to the XML 1.0 spec section 4.4.5, the
characters ' and " no longer are special! eg. the following would
be a pain since the parser must remember where the ' is special and where

<!ENTITY % ap   "&#38;#39;" >
<!ENTITY % said "%ap;hi!%ap;" >
<!ENTITY msg 'he said %said;' >

with the following results:

entity		no-reparse			with-reparse
-------		-----------			-------------
ap		&#39;				&#39;
said		&#39;hi!&#39;			'hi!'
msg		he said &#39;hi!&#39;		he said 'hi!'

the problem is that if "&msg;" is ever used in the document content, they
will both evaluate to the same thing. the only difference is that
"with-reparse" is more difficult...

i hope you understand my dilemna,
and thanks for your help.


xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev at
Archived as:
To (un)subscribe, mailto:majordomo at the following message;
(un)subscribe xml-dev
To subscribe to the digests, mailto:majordomo at the following message;
subscribe xml-dev-digest
List coordinator, Henry Rzepa (mailto:rzepa at

More information about the Xml-dev mailing list