Re: parsing entity values
> ><!ENTITY % ap "&#39;" > ( 38 = "&" , 39 = "'" ) > ><!ENTITY msg "he said %ap;hi!%ap;" > > Right. The replacement text for ap is > > ' Yes. > With msg, the parameter entity is included as part of the replacement text > and so the replacement text of msg is > > he said 'hi!' No. See the table in section 4.4. We have a parameter entity reference in an entity value, so it is "included in literal". 4.4.5 says "[the parameter entity's] replacement text is processed in place of the reference itself as though it were part of the document at the location the reference was recognised, except that a single or double quote character [...] will not terminate the literal". So the ' is processed as if it had occurred directly in the definition of msg. You can't see the difference in this case, but if we had: <!ENTITY % less "&#60;"> <!ENTITY % more "&#62;"> <!ENTITY elt "%less;=%more;"> the replacement text of elt would be <=> not <=> and should be detected as a syntax error if &elt; occurred in the body. Phil suggests that having to keep track of where the quotes are special makes the parsing quite difficult; I don't think this is true, though perhaps it depends on how your parser works. Mine just checks to see whether it read the quote character from the same entity that it read the opening quote from. -- Richard xml-dev: A list for W3C XML Developers. To post, mailto:xml-dev@i... Archived as: http://www.lists.ic.ac.uk/hypermail/xml-dev/ To (un)subscribe, mailto:majordomo@i... the following message; (un)subscribe xml-dev To subscribe to the digests, mailto:majordomo@i... the following message; subscribe xml-dev-digest List coordinator, Henry Rzepa (mailto:rzepa@i...)
PURCHASE STYLUS STUDIO ONLINE TODAY!
Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!
Download The World's Best XML IDE!
Accelerate XML development with our award-winning XML IDE - Download a free trial today!
Subscribe in XML format