[XML-DEV Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message] Re: Why isn't the semicolon a reserved character?
At 2014-03-15 21:41 +0000, Costello, Roger L. wrote: This XML document is not well-formed:False. The "]]>" marks the end of a CDATA section: http://www.w3.org/TR/2008/REC-xml-20081126/#NT-CDEnd A simple ">" in parsed character data is not a problem when it is not preceded by two right square brackets. This comes up in my XML syntax class (which, since December, has been available for streaming on Pluralsight). The following is well-formed as the simple greater-than symbol does not mark the end of a CDATA section: <?xml version="1.0" encoding="UTF-8"?> <doc> This is a > greater-than symbol. </doc> To be precise in a way that answers a later question below, it throws an error because at the point the end of CDATA was encountered it was not in a CDATA section. Which, BTW, you mistyped ... the start of a CDATA section is <![CDATA[ per:the XML parser throws an error since there is no preceding <![[CDATA http://www.w3.org/TR/2008/REC-xml-20081126/#NT-CDStart The > symbol must be escaped like so:Because an entity reference is not a "section" of parsed data ... it is a concise markup construct. It is easy to detect the end of an entity reference: http://www.w3.org/TR/2008/REC-xml-20081126/#NT-EntityRef Note how the content of an entity reference is a simple name. The content of a CDATA section is far more complex and so is described using a wildcard: http://www.w3.org/TR/2008/REC-xml-20081126/#NT-CData Note the interesting quirk that within a CDATA section there is no such thing as an embedded CDATA section ... the following is well-formed: <?xml version="1.0" encoding="UTF-8"?> <doc> This is a <![CDATA[ section <![CDATA[ <![CDATA[ <![CDATA[ <![CDATA[ ]]> </doc> CDATA sections are not allowed in attributes, while entity references are. Parsed character data character data sections are simply "different" and so are treated different when parsing. What do you mean by "reserved"?Why isn't the ; symbol a reserved symbol? It isn't available as a built-in character entity because it isn't needed to disambiguate otherwise ambiguous strings found in parsed character data. And it just is, as it was in SGML and so is in XML. I hope this helps. . . . . . . Ken -- Public XSLT, XSL-FO, UBL & code list classes: Melbourne, AU May 2014 | Contact us for world-wide XML consulting and instructor-led training | Free 5-hour lecture: http://www.CraneSoftwrights.com/links/udemy.htm | Crane Softwrights Ltd. http://www.CraneSoftwrights.com/x/ | G. Ken Holman mailto:gkholman@CraneSoftwrights.com | Google+ profile: http://plus.google.com/+GKenHolman-Crane/about | Legal business disclaimers: http://www.CraneSoftwrights.com/legal | --- This email is free from viruses and malware because avast! Antivirus protection is active. http://www.avast.com
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] |
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
|