<!-- LAST TOUCHED BY: Tim Bray, 8 February 1997 --><!-- The words 'FINAL EDIT' in comments mark places where changes
need to be made after approval of the document by the ERB, before
publication.  --><!-- &#x2014, but nsgmls doesn't grok hex --><!-- <!ENTITY nbsp " "> --><!-- audience and distribution status:  for use at publication time --><!-- for Panorama *--><?VERBATIM "eg" ?><spec>







<header>







<title>Extensible Markup Language (XML) 1.0Extensible Markup Language (XML) 1.0Extensible Markup Language (XML) 1.0Extensible Markup Language (XML) 1.0Extensible Markup Language (XML) 1.0Extensible Markup Language (XML) 1.0Extensible Markup Language (XML) 1.0Extensible Markup Language (XML) 1.0</title>







<version></version>







<w3c-designation>REC-xml-REC-xml-REC-xml-REC-xml-REC-xml-REC-xml-REC-xml-REC-xml-1998021019980210199802101998021019980210199802101998021019980210</w3c-designation>







<w3c-doctype>W3C RecommendationW3C RecommendationW3C RecommendationW3C RecommendationW3C RecommendationW3C RecommendationW3C RecommendationW3C Recommendation</w3c-doctype>







<pubdate><day>1010101010101010</day><month>FebruaryFebruaryFebruaryFebruaryFebruaryFebruaryFebruaryFebruary</month><year>19981998199819981998199819981998</year></pubdate>















<publoc>







<loc href='http://www.w3.org/TR/1998/REC-xml-19980210'>







http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-1998021019980210199802101998021019980210199802101998021019980210</loc>







<loc href='http://www.w3.org/TR/1998/REC-xml-19980210.xml'>







http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-1998021019980210199802101998021019980210199802101998021019980210.xml.xml.xml.xml.xml.xml.xml.xml</loc>







<loc href='http://www.w3.org/TR/1998/REC-xml-19980210.html'>







http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-1998021019980210199802101998021019980210199802101998021019980210.html.html.html.html.html.html.html.html</loc>







<loc href='http://www.w3.org/TR/1998/REC-xml-19980210.pdf'>







http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-1998021019980210199802101998021019980210199802101998021019980210.pdf.pdf.pdf.pdf.pdf.pdf.pdf.pdf</loc>







<loc href='http://www.w3.org/TR/1998/REC-xml-19980210.ps'>







http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-http://www.w3.org/TR/1998/REC-xml-1998021019980210199802101998021019980210199802101998021019980210.ps.ps.ps.ps.ps.ps.ps.ps</loc>







</publoc>







<latestloc>







<loc href='http://www.w3.org/TR/REC-xml'>







http://www.w3.org/TR/REC-xmlhttp://www.w3.org/TR/REC-xmlhttp://www.w3.org/TR/REC-xmlhttp://www.w3.org/TR/REC-xmlhttp://www.w3.org/TR/REC-xmlhttp://www.w3.org/TR/REC-xmlhttp://www.w3.org/TR/REC-xmlhttp://www.w3.org/TR/REC-xml</loc>







</latestloc>







<prevlocs>







<loc href='http://www.w3.org/TR/PR-xml-971208'>







http://www.w3.org/TR/PR-xml-971208http://www.w3.org/TR/PR-xml-971208http://www.w3.org/TR/PR-xml-971208http://www.w3.org/TR/PR-xml-971208http://www.w3.org/TR/PR-xml-971208http://www.w3.org/TR/PR-xml-971208http://www.w3.org/TR/PR-xml-971208http://www.w3.org/TR/PR-xml-971208</loc>







<!--
<loc  href='http://www.w3.org/TR/WD-xml-961114'>
http://www.w3.org/TR/WD-xml-961114</loc>
<loc  href='http://www.w3.org/TR/WD-xml-lang-970331'>
http://www.w3.org/TR/WD-xml-lang-970331</loc>
<loc  href='http://www.w3.org/TR/WD-xml-lang-970630'>
http://www.w3.org/TR/WD-xml-lang-970630</loc>
<loc  href='http://www.w3.org/TR/WD-xml-970807'>
http://www.w3.org/TR/WD-xml-970807</loc>
<loc  href='http://www.w3.org/TR/WD-xml-971117'>
http://www.w3.org/TR/WD-xml-971117</loc>-->







</prevlocs>







<authlist>







<author><name>Tim BrayTim BrayTim BrayTim BrayTim BrayTim BrayTim BrayTim Bray</name>







<affiliation>Textuality and NetscapeTextuality and NetscapeTextuality and NetscapeTextuality and NetscapeTextuality and NetscapeTextuality and NetscapeTextuality and NetscapeTextuality and Netscape</affiliation>







<email href='mailto:tbray@textuality.com'>tbray@textuality.comtbray@textuality.comtbray@textuality.comtbray@textuality.comtbray@textuality.comtbray@textuality.comtbray@textuality.comtbray@textuality.com</email></author>







<author><name>Jean PaoliJean PaoliJean PaoliJean PaoliJean PaoliJean PaoliJean PaoliJean Paoli</name>







<affiliation>MicrosoftMicrosoftMicrosoftMicrosoftMicrosoftMicrosoftMicrosoftMicrosoft</affiliation>







<email href='mailto:jeanpa@microsoft.com'>jeanpa@microsoft.comjeanpa@microsoft.comjeanpa@microsoft.comjeanpa@microsoft.comjeanpa@microsoft.comjeanpa@microsoft.comjeanpa@microsoft.comjeanpa@microsoft.com</email></author>







<author><name>C. M. Sperberg-McQueenC. M. Sperberg-McQueenC. M. Sperberg-McQueenC. M. Sperberg-McQueenC. M. Sperberg-McQueenC. M. Sperberg-McQueenC. M. Sperberg-McQueenC. M. Sperberg-McQueen</name>







<affiliation>University of Illinois at ChicagoUniversity of Illinois at ChicagoUniversity of Illinois at ChicagoUniversity of Illinois at ChicagoUniversity of Illinois at ChicagoUniversity of Illinois at ChicagoUniversity of Illinois at ChicagoUniversity of Illinois at Chicago</affiliation>







<email href='mailto:cmsmcq@uic.edu'>cmsmcq@uic.educmsmcq@uic.educmsmcq@uic.educmsmcq@uic.educmsmcq@uic.educmsmcq@uic.educmsmcq@uic.educmsmcq@uic.edu</email></author>







</authlist>







<abstract>







<p>The Extensible Markup Language (XML) is a subset ofThe Extensible Markup Language (XML) is a subset ofThe Extensible Markup Language (XML) is a subset ofThe Extensible Markup Language (XML) is a subset ofThe Extensible Markup Language (XML) is a subset ofThe Extensible Markup Language (XML) is a subset ofThe Extensible Markup Language (XML) is a subset ofThe Extensible Markup Language (XML) is a subset of







SGML that is completely described in this document. Its goal is toSGML that is completely described in this document. Its goal is toSGML that is completely described in this document. Its goal is toSGML that is completely described in this document. Its goal is toSGML that is completely described in this document. Its goal is toSGML that is completely described in this document. Its goal is toSGML that is completely described in this document. Its goal is toSGML that is completely described in this document. Its goal is to







enable generic SGML to be served, received, and processed on the Webenable generic SGML to be served, received, and processed on the Webenable generic SGML to be served, received, and processed on the Webenable generic SGML to be served, received, and processed on the Webenable generic SGML to be served, received, and processed on the Webenable generic SGML to be served, received, and processed on the Webenable generic SGML to be served, received, and processed on the Webenable generic SGML to be served, received, and processed on the Web







in the way that is now possible with HTML. XML has been designed forin the way that is now possible with HTML. XML has been designed forin the way that is now possible with HTML. XML has been designed forin the way that is now possible with HTML. XML has been designed forin the way that is now possible with HTML. XML has been designed forin the way that is now possible with HTML. XML has been designed forin the way that is now possible with HTML. XML has been designed forin the way that is now possible with HTML. XML has been designed for







ease of implementation and for interoperability with both SGML andease of implementation and for interoperability with both SGML andease of implementation and for interoperability with both SGML andease of implementation and for interoperability with both SGML andease of implementation and for interoperability with both SGML andease of implementation and for interoperability with both SGML andease of implementation and for interoperability with both SGML andease of implementation and for interoperability with both SGML and







HTML.HTML.HTML.HTML.HTML.HTML.HTML.HTML.</p>







</abstract>







<status>







<p>This document has been reviewed by W3C Members andThis document has been reviewed by W3C Members andThis document has been reviewed by W3C Members andThis document has been reviewed by W3C Members andThis document has been reviewed by W3C Members andThis document has been reviewed by W3C Members andThis document has been reviewed by W3C Members andThis document has been reviewed by W3C Members and







other interested parties and has been endorsed by theother interested parties and has been endorsed by theother interested parties and has been endorsed by theother interested parties and has been endorsed by theother interested parties and has been endorsed by theother interested parties and has been endorsed by theother interested parties and has been endorsed by theother interested parties and has been endorsed by the







Director as a W3C Recommendation. It is a stableDirector as a W3C Recommendation. It is a stableDirector as a W3C Recommendation. It is a stableDirector as a W3C Recommendation. It is a stableDirector as a W3C Recommendation. It is a stableDirector as a W3C Recommendation. It is a stableDirector as a W3C Recommendation. It is a stableDirector as a W3C Recommendation. It is a stable







document and may be used as reference material or citeddocument and may be used as reference material or citeddocument and may be used as reference material or citeddocument and may be used as reference material or citeddocument and may be used as reference material or citeddocument and may be used as reference material or citeddocument and may be used as reference material or citeddocument and may be used as reference material or cited







as a normative reference from another document. W3C'sas a normative reference from another document. W3C'sas a normative reference from another document. W3C'sas a normative reference from another document. W3C'sas a normative reference from another document. W3C'sas a normative reference from another document. W3C'sas a normative reference from another document. W3C'sas a normative reference from another document. W3C's







role in making the Recommendation is to draw attentionrole in making the Recommendation is to draw attentionrole in making the Recommendation is to draw attentionrole in making the Recommendation is to draw attentionrole in making the Recommendation is to draw attentionrole in making the Recommendation is to draw attentionrole in making the Recommendation is to draw attentionrole in making the Recommendation is to draw attention







to the specification and to promote its widespreadto the specification and to promote its widespreadto the specification and to promote its widespreadto the specification and to promote its widespreadto the specification and to promote its widespreadto the specification and to promote its widespreadto the specification and to promote its widespreadto the specification and to promote its widespread







deployment. This enhances the functionality anddeployment. This enhances the functionality anddeployment. This enhances the functionality anddeployment. This enhances the functionality anddeployment. This enhances the functionality anddeployment. This enhances the functionality anddeployment. This enhances the functionality anddeployment. This enhances the functionality and







interoperability of the Web.interoperability of the Web.interoperability of the Web.interoperability of the Web.interoperability of the Web.interoperability of the Web.interoperability of the Web.interoperability of the Web.</p>







<p>







This document specifies a syntax created by subsetting an existing,This document specifies a syntax created by subsetting an existing,This document specifies a syntax created by subsetting an existing,This document specifies a syntax created by subsetting an existing,This document specifies a syntax created by subsetting an existing,This document specifies a syntax created by subsetting an existing,This document specifies a syntax created by subsetting an existing,This document specifies a syntax created by subsetting an existing,







widely used international text processing standard (Standardwidely used international text processing standard (Standardwidely used international text processing standard (Standardwidely used international text processing standard (Standardwidely used international text processing standard (Standardwidely used international text processing standard (Standardwidely used international text processing standard (Standardwidely used international text processing standard (Standard







Generalized Markup Language, ISO 8879:1986(E) as amended andGeneralized Markup Language, ISO 8879:1986(E) as amended andGeneralized Markup Language, ISO 8879:1986(E) as amended andGeneralized Markup Language, ISO 8879:1986(E) as amended andGeneralized Markup Language, ISO 8879:1986(E) as amended andGeneralized Markup Language, ISO 8879:1986(E) as amended andGeneralized Markup Language, ISO 8879:1986(E) as amended andGeneralized Markup Language, ISO 8879:1986(E) as amended and







corrected) for use on the World Wide Web.  It is a product of the W3Ccorrected) for use on the World Wide Web.  It is a product of the W3Ccorrected) for use on the World Wide Web.  It is a product of the W3Ccorrected) for use on the World Wide Web.  It is a product of the W3Ccorrected) for use on the World Wide Web.  It is a product of the W3Ccorrected) for use on the World Wide Web.  It is a product of the W3Ccorrected) for use on the World Wide Web.  It is a product of the W3Ccorrected) for use on the World Wide Web.  It is a product of the W3C







XML Activity, details of which can be found at XML Activity, details of which can be found at XML Activity, details of which can be found at XML Activity, details of which can be found at XML Activity, details of which can be found at XML Activity, details of which can be found at XML Activity, details of which can be found at XML Activity, details of which can be found at <loc href='http://www.w3.org/XML'>http://www.w3.org/XMLhttp://www.w3.org/XMLhttp://www.w3.org/XMLhttp://www.w3.org/XMLhttp://www.w3.org/XMLhttp://www.w3.org/XMLhttp://www.w3.org/XMLhttp://www.w3.org/XML</loc>.  A list of.  A list of.  A list of.  A list of.  A list of.  A list of.  A list of.  A list of







current W3C Recommendations and other technical documents can be foundcurrent W3C Recommendations and other technical documents can be foundcurrent W3C Recommendations and other technical documents can be foundcurrent W3C Recommendations and other technical documents can be foundcurrent W3C Recommendations and other technical documents can be foundcurrent W3C Recommendations and other technical documents can be foundcurrent W3C Recommendations and other technical documents can be foundcurrent W3C Recommendations and other technical documents can be found







at at at at at at at at <loc href='http://www.w3.org/TR'>http://www.w3.org/TRhttp://www.w3.org/TRhttp://www.w3.org/TRhttp://www.w3.org/TRhttp://www.w3.org/TRhttp://www.w3.org/TRhttp://www.w3.org/TRhttp://www.w3.org/TR</loc>........







</p>







<p>This specification uses the term URI, which is defined by This specification uses the term URI, which is defined by This specification uses the term URI, which is defined by This specification uses the term URI, which is defined by This specification uses the term URI, which is defined by This specification uses the term URI, which is defined by This specification uses the term URI, which is defined by This specification uses the term URI, which is defined by <bibref ref='Berners-Lee'></bibref>, a work in progress expected to update , a work in progress expected to update , a work in progress expected to update , a work in progress expected to update , a work in progress expected to update , a work in progress expected to update , a work in progress expected to update , a work in progress expected to update <bibref ref='RFC1738'></bibref> and  and  and  and  and  and  and  and <bibref ref='RFC1808'></bibref>. . . . . . . . 







</p>







<p>The list of known errors in this specification is The list of known errors in this specification is The list of known errors in this specification is The list of known errors in this specification is The list of known errors in this specification is The list of known errors in this specification is The list of known errors in this specification is The list of known errors in this specification is 







available at available at available at available at available at available at available at available at 







<loc href='http://www.w3.org/XML/xml-19980210-errata'>http://www.w3.org/XML/xml-19980210-erratahttp://www.w3.org/XML/xml-19980210-erratahttp://www.w3.org/XML/xml-19980210-erratahttp://www.w3.org/XML/xml-19980210-erratahttp://www.w3.org/XML/xml-19980210-erratahttp://www.w3.org/XML/xml-19980210-erratahttp://www.w3.org/XML/xml-19980210-erratahttp://www.w3.org/XML/xml-19980210-errata</loc>........</p>







<p>Please report errors in this document to Please report errors in this document to Please report errors in this document to Please report errors in this document to Please report errors in this document to Please report errors in this document to Please report errors in this document to Please report errors in this document to 







<loc href='mailto:xml-editor@w3.org'>xml-editor@w3.orgxml-editor@w3.orgxml-editor@w3.orgxml-editor@w3.orgxml-editor@w3.orgxml-editor@w3.orgxml-editor@w3.orgxml-editor@w3.org</loc>........







</p>







</status>























<pubstmt>







<p>Chicago, Vancouver, Mountain View, et al.:Chicago, Vancouver, Mountain View, et al.:Chicago, Vancouver, Mountain View, et al.:Chicago, Vancouver, Mountain View, et al.:Chicago, Vancouver, Mountain View, et al.:Chicago, Vancouver, Mountain View, et al.:Chicago, Vancouver, Mountain View, et al.:Chicago, Vancouver, Mountain View, et al.:







World-Wide Web Consortium, XML Working Group, 1996, 1997.World-Wide Web Consortium, XML Working Group, 1996, 1997.World-Wide Web Consortium, XML Working Group, 1996, 1997.World-Wide Web Consortium, XML Working Group, 1996, 1997.World-Wide Web Consortium, XML Working Group, 1996, 1997.World-Wide Web Consortium, XML Working Group, 1996, 1997.World-Wide Web Consortium, XML Working Group, 1996, 1997.World-Wide Web Consortium, XML Working Group, 1996, 1997.</p>







</pubstmt>







<sourcedesc>







<p>Created in electronic form.Created in electronic form.Created in electronic form.Created in electronic form.Created in electronic form.Created in electronic form.Created in electronic form.Created in electronic form.</p>







</sourcedesc>







<langusage>







<language id='EN'>EnglishEnglishEnglishEnglishEnglishEnglishEnglishEnglish</language>







<language id='ebnf'>Extended Backus-Naur Form (formal grammar)Extended Backus-Naur Form (formal grammar)Extended Backus-Naur Form (formal grammar)Extended Backus-Naur Form (formal grammar)Extended Backus-Naur Form (formal grammar)Extended Backus-Naur Form (formal grammar)Extended Backus-Naur Form (formal grammar)Extended Backus-Naur Form (formal grammar)</language>







</langusage>







<revisiondesc>







<slist>







<sitem>1997-12-03 : CMSMcQ : yet further changes1997-12-03 : CMSMcQ : yet further changes1997-12-03 : CMSMcQ : yet further changes1997-12-03 : CMSMcQ : yet further changes1997-12-03 : CMSMcQ : yet further changes1997-12-03 : CMSMcQ : yet further changes1997-12-03 : CMSMcQ : yet further changes1997-12-03 : CMSMcQ : yet further changes</sitem>







<sitem>1997-12-02 : TB : further changes (see TB to XML WG,1997-12-02 : TB : further changes (see TB to XML WG,1997-12-02 : TB : further changes (see TB to XML WG,1997-12-02 : TB : further changes (see TB to XML WG,1997-12-02 : TB : further changes (see TB to XML WG,1997-12-02 : TB : further changes (see TB to XML WG,1997-12-02 : TB : further changes (see TB to XML WG,1997-12-02 : TB : further changes (see TB to XML WG,







2 December 1997)2 December 1997)2 December 1997)2 December 1997)2 December 1997)2 December 1997)2 December 1997)2 December 1997)</sitem>







<sitem>1997-12-02 : CMSMcQ : deal with as many corrections and1997-12-02 : CMSMcQ : deal with as many corrections and1997-12-02 : CMSMcQ : deal with as many corrections and1997-12-02 : CMSMcQ : deal with as many corrections and1997-12-02 : CMSMcQ : deal with as many corrections and1997-12-02 : CMSMcQ : deal with as many corrections and1997-12-02 : CMSMcQ : deal with as many corrections and1997-12-02 : CMSMcQ : deal with as many corrections and







comments from the proofreaders as possible:comments from the proofreaders as possible:comments from the proofreaders as possible:comments from the proofreaders as possible:comments from the proofreaders as possible:comments from the proofreaders as possible:comments from the proofreaders as possible:comments from the proofreaders as possible:







entify hard-coded document date in pubdate element,entify hard-coded document date in pubdate element,entify hard-coded document date in pubdate element,entify hard-coded document date in pubdate element,entify hard-coded document date in pubdate element,entify hard-coded document date in pubdate element,entify hard-coded document date in pubdate element,entify hard-coded document date in pubdate element,







change expansion of entity WebSGML,change expansion of entity WebSGML,change expansion of entity WebSGML,change expansion of entity WebSGML,change expansion of entity WebSGML,change expansion of entity WebSGML,change expansion of entity WebSGML,change expansion of entity WebSGML,







update status description as per Dan Connolly (am not sureupdate status description as per Dan Connolly (am not sureupdate status description as per Dan Connolly (am not sureupdate status description as per Dan Connolly (am not sureupdate status description as per Dan Connolly (am not sureupdate status description as per Dan Connolly (am not sureupdate status description as per Dan Connolly (am not sureupdate status description as per Dan Connolly (am not sure







about refernece to Berners-Lee et al.),about refernece to Berners-Lee et al.),about refernece to Berners-Lee et al.),about refernece to Berners-Lee et al.),about refernece to Berners-Lee et al.),about refernece to Berners-Lee et al.),about refernece to Berners-Lee et al.),about refernece to Berners-Lee et al.),







add 'The' to abstract as per WG decision,add 'The' to abstract as per WG decision,add 'The' to abstract as per WG decision,add 'The' to abstract as per WG decision,add 'The' to abstract as per WG decision,add 'The' to abstract as per WG decision,add 'The' to abstract as per WG decision,add 'The' to abstract as per WG decision,







move Relationship to Existing Standards to back matter andmove Relationship to Existing Standards to back matter andmove Relationship to Existing Standards to back matter andmove Relationship to Existing Standards to back matter andmove Relationship to Existing Standards to back matter andmove Relationship to Existing Standards to back matter andmove Relationship to Existing Standards to back matter andmove Relationship to Existing Standards to back matter and







combine with References,combine with References,combine with References,combine with References,combine with References,combine with References,combine with References,combine with References,







re-order back matter so normative appendices come first,re-order back matter so normative appendices come first,re-order back matter so normative appendices come first,re-order back matter so normative appendices come first,re-order back matter so normative appendices come first,re-order back matter so normative appendices come first,re-order back matter so normative appendices come first,re-order back matter so normative appendices come first,







re-tag back matter so informative appendices are tagged informdiv1,re-tag back matter so informative appendices are tagged informdiv1,re-tag back matter so informative appendices are tagged informdiv1,re-tag back matter so informative appendices are tagged informdiv1,re-tag back matter so informative appendices are tagged informdiv1,re-tag back matter so informative appendices are tagged informdiv1,re-tag back matter so informative appendices are tagged informdiv1,re-tag back matter so informative appendices are tagged informdiv1,







remove XXX XXX from list of 'normative' specs in prose,remove XXX XXX from list of 'normative' specs in prose,remove XXX XXX from list of 'normative' specs in prose,remove XXX XXX from list of 'normative' specs in prose,remove XXX XXX from list of 'normative' specs in prose,remove XXX XXX from list of 'normative' specs in prose,remove XXX XXX from list of 'normative' specs in prose,remove XXX XXX from list of 'normative' specs in prose,







move some references from Other References to Normative References,move some references from Other References to Normative References,move some references from Other References to Normative References,move some references from Other References to Normative References,move some references from Other References to Normative References,move some references from Other References to Normative References,move some references from Other References to Normative References,move some references from Other References to Normative References,







add RFC 1738, 1808, and 2141 to Other References (they are notadd RFC 1738, 1808, and 2141 to Other References (they are notadd RFC 1738, 1808, and 2141 to Other References (they are notadd RFC 1738, 1808, and 2141 to Other References (they are notadd RFC 1738, 1808, and 2141 to Other References (they are notadd RFC 1738, 1808, and 2141 to Other References (they are notadd RFC 1738, 1808, and 2141 to Other References (they are notadd RFC 1738, 1808, and 2141 to Other References (they are not







normative since we do not require the processor to enforce any normative since we do not require the processor to enforce any normative since we do not require the processor to enforce any normative since we do not require the processor to enforce any normative since we do not require the processor to enforce any normative since we do not require the processor to enforce any normative since we do not require the processor to enforce any normative since we do not require the processor to enforce any 







rules based on them),rules based on them),rules based on them),rules based on them),rules based on them),rules based on them),rules based on them),rules based on them),







add reference to 'Fielding draft' (Berners-Lee et al.),add reference to 'Fielding draft' (Berners-Lee et al.),add reference to 'Fielding draft' (Berners-Lee et al.),add reference to 'Fielding draft' (Berners-Lee et al.),add reference to 'Fielding draft' (Berners-Lee et al.),add reference to 'Fielding draft' (Berners-Lee et al.),add reference to 'Fielding draft' (Berners-Lee et al.),add reference to 'Fielding draft' (Berners-Lee et al.),







move notation section to end of body,move notation section to end of body,move notation section to end of body,move notation section to end of body,move notation section to end of body,move notation section to end of body,move notation section to end of body,move notation section to end of body,







drop URIchar non-terminal and use SkipLit instead,drop URIchar non-terminal and use SkipLit instead,drop URIchar non-terminal and use SkipLit instead,drop URIchar non-terminal and use SkipLit instead,drop URIchar non-terminal and use SkipLit instead,drop URIchar non-terminal and use SkipLit instead,drop URIchar non-terminal and use SkipLit instead,drop URIchar non-terminal and use SkipLit instead,







lose stray reference to defunct nonterminal 'markupdecls',lose stray reference to defunct nonterminal 'markupdecls',lose stray reference to defunct nonterminal 'markupdecls',lose stray reference to defunct nonterminal 'markupdecls',lose stray reference to defunct nonterminal 'markupdecls',lose stray reference to defunct nonterminal 'markupdecls',lose stray reference to defunct nonterminal 'markupdecls',lose stray reference to defunct nonterminal 'markupdecls',







move reference to Aho et al. into appendix (Tim's right),move reference to Aho et al. into appendix (Tim's right),move reference to Aho et al. into appendix (Tim's right),move reference to Aho et al. into appendix (Tim's right),move reference to Aho et al. into appendix (Tim's right),move reference to Aho et al. into appendix (Tim's right),move reference to Aho et al. into appendix (Tim's right),move reference to Aho et al. into appendix (Tim's right),







add prose note saying that hash marks and fragment identifiers areadd prose note saying that hash marks and fragment identifiers areadd prose note saying that hash marks and fragment identifiers areadd prose note saying that hash marks and fragment identifiers areadd prose note saying that hash marks and fragment identifiers areadd prose note saying that hash marks and fragment identifiers areadd prose note saying that hash marks and fragment identifiers areadd prose note saying that hash marks and fragment identifiers are







NOT part of the URI formally speaking, and are NOT legal in NOT part of the URI formally speaking, and are NOT legal in NOT part of the URI formally speaking, and are NOT legal in NOT part of the URI formally speaking, and are NOT legal in NOT part of the URI formally speaking, and are NOT legal in NOT part of the URI formally speaking, and are NOT legal in NOT part of the URI formally speaking, and are NOT legal in NOT part of the URI formally speaking, and are NOT legal in 







system identifiers (processor 'may' signal an error).system identifiers (processor 'may' signal an error).system identifiers (processor 'may' signal an error).system identifiers (processor 'may' signal an error).system identifiers (processor 'may' signal an error).system identifiers (processor 'may' signal an error).system identifiers (processor 'may' signal an error).system identifiers (processor 'may' signal an error).







Work through:Work through:Work through:Work through:Work through:Work through:Work through:Work through:







Tim Bray reacting to James Clark,Tim Bray reacting to James Clark,Tim Bray reacting to James Clark,Tim Bray reacting to James Clark,Tim Bray reacting to James Clark,Tim Bray reacting to James Clark,Tim Bray reacting to James Clark,Tim Bray reacting to James Clark,







Tim Bray on his own,Tim Bray on his own,Tim Bray on his own,Tim Bray on his own,Tim Bray on his own,Tim Bray on his own,Tim Bray on his own,Tim Bray on his own,







Eve Maler,Eve Maler,Eve Maler,Eve Maler,Eve Maler,Eve Maler,Eve Maler,Eve Maler,















NOT DONE YET:NOT DONE YET:NOT DONE YET:NOT DONE YET:NOT DONE YET:NOT DONE YET:NOT DONE YET:NOT DONE YET:







change binary / text to unparsed / parsed.change binary / text to unparsed / parsed.change binary / text to unparsed / parsed.change binary / text to unparsed / parsed.change binary / text to unparsed / parsed.change binary / text to unparsed / parsed.change binary / text to unparsed / parsed.change binary / text to unparsed / parsed.







handle James's suggestion about handle James's suggestion about handle James's suggestion about handle James's suggestion about handle James's suggestion about handle James's suggestion about handle James's suggestion about handle James's suggestion about &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt; in attriubte values in attriubte values in attriubte values in attriubte values in attriubte values in attriubte values in attriubte values in attriubte values







uppercase hex characters,uppercase hex characters,uppercase hex characters,uppercase hex characters,uppercase hex characters,uppercase hex characters,uppercase hex characters,uppercase hex characters,







namechar list,namechar list,namechar list,namechar list,namechar list,namechar list,namechar list,namechar list,







</sitem>







<sitem>1997-12-01 : JB : add some column-width parameters1997-12-01 : JB : add some column-width parameters1997-12-01 : JB : add some column-width parameters1997-12-01 : JB : add some column-width parameters1997-12-01 : JB : add some column-width parameters1997-12-01 : JB : add some column-width parameters1997-12-01 : JB : add some column-width parameters1997-12-01 : JB : add some column-width parameters</sitem>







<sitem>1997-12-01 : CMSMcQ : begin round of changes to incorporate1997-12-01 : CMSMcQ : begin round of changes to incorporate1997-12-01 : CMSMcQ : begin round of changes to incorporate1997-12-01 : CMSMcQ : begin round of changes to incorporate1997-12-01 : CMSMcQ : begin round of changes to incorporate1997-12-01 : CMSMcQ : begin round of changes to incorporate1997-12-01 : CMSMcQ : begin round of changes to incorporate1997-12-01 : CMSMcQ : begin round of changes to incorporate







recent WG decisions and other corrections:recent WG decisions and other corrections:recent WG decisions and other corrections:recent WG decisions and other corrections:recent WG decisions and other corrections:recent WG decisions and other corrections:recent WG decisions and other corrections:recent WG decisions and other corrections:







binding sources of character encoding info (27 Aug / 3 Sept),binding sources of character encoding info (27 Aug / 3 Sept),binding sources of character encoding info (27 Aug / 3 Sept),binding sources of character encoding info (27 Aug / 3 Sept),binding sources of character encoding info (27 Aug / 3 Sept),binding sources of character encoding info (27 Aug / 3 Sept),binding sources of character encoding info (27 Aug / 3 Sept),binding sources of character encoding info (27 Aug / 3 Sept),







correct wording of Faust quotation (restore dropped line),correct wording of Faust quotation (restore dropped line),correct wording of Faust quotation (restore dropped line),correct wording of Faust quotation (restore dropped line),correct wording of Faust quotation (restore dropped line),correct wording of Faust quotation (restore dropped line),correct wording of Faust quotation (restore dropped line),correct wording of Faust quotation (restore dropped line),







drop SDD from EncodingDecl,drop SDD from EncodingDecl,drop SDD from EncodingDecl,drop SDD from EncodingDecl,drop SDD from EncodingDecl,drop SDD from EncodingDecl,drop SDD from EncodingDecl,drop SDD from EncodingDecl,







change text at version number 1.0,change text at version number 1.0,change text at version number 1.0,change text at version number 1.0,change text at version number 1.0,change text at version number 1.0,change text at version number 1.0,change text at version number 1.0,







drop misleading (wrong!) sentence about ignorables and extenders,drop misleading (wrong!) sentence about ignorables and extenders,drop misleading (wrong!) sentence about ignorables and extenders,drop misleading (wrong!) sentence about ignorables and extenders,drop misleading (wrong!) sentence about ignorables and extenders,drop misleading (wrong!) sentence about ignorables and extenders,drop misleading (wrong!) sentence about ignorables and extenders,drop misleading (wrong!) sentence about ignorables and extenders,







modify definition of PCData to make bar on msc grammatical,modify definition of PCData to make bar on msc grammatical,modify definition of PCData to make bar on msc grammatical,modify definition of PCData to make bar on msc grammatical,modify definition of PCData to make bar on msc grammatical,modify definition of PCData to make bar on msc grammatical,modify definition of PCData to make bar on msc grammatical,modify definition of PCData to make bar on msc grammatical,







change grammar's handling of internal subset (drop non-terminal markupdecls),change grammar's handling of internal subset (drop non-terminal markupdecls),change grammar's handling of internal subset (drop non-terminal markupdecls),change grammar's handling of internal subset (drop non-terminal markupdecls),change grammar's handling of internal subset (drop non-terminal markupdecls),change grammar's handling of internal subset (drop non-terminal markupdecls),change grammar's handling of internal subset (drop non-terminal markupdecls),change grammar's handling of internal subset (drop non-terminal markupdecls),







change definition of includeSect to allow conditional sections,change definition of includeSect to allow conditional sections,change definition of includeSect to allow conditional sections,change definition of includeSect to allow conditional sections,change definition of includeSect to allow conditional sections,change definition of includeSect to allow conditional sections,change definition of includeSect to allow conditional sections,change definition of includeSect to allow conditional sections,







add integral-declaration constraint on internal subset,add integral-declaration constraint on internal subset,add integral-declaration constraint on internal subset,add integral-declaration constraint on internal subset,add integral-declaration constraint on internal subset,add integral-declaration constraint on internal subset,add integral-declaration constraint on internal subset,add integral-declaration constraint on internal subset,







drop misleading / dangerous sentence about relationship ofdrop misleading / dangerous sentence about relationship ofdrop misleading / dangerous sentence about relationship ofdrop misleading / dangerous sentence about relationship ofdrop misleading / dangerous sentence about relationship ofdrop misleading / dangerous sentence about relationship ofdrop misleading / dangerous sentence about relationship ofdrop misleading / dangerous sentence about relationship of







entities with system storage objects,entities with system storage objects,entities with system storage objects,entities with system storage objects,entities with system storage objects,entities with system storage objects,entities with system storage objects,entities with system storage objects,







change table body tag to htbody as per EM change to DTD,change table body tag to htbody as per EM change to DTD,change table body tag to htbody as per EM change to DTD,change table body tag to htbody as per EM change to DTD,change table body tag to htbody as per EM change to DTD,change table body tag to htbody as per EM change to DTD,change table body tag to htbody as per EM change to DTD,change table body tag to htbody as per EM change to DTD,







add rule about space normalization in public identifiers,add rule about space normalization in public identifiers,add rule about space normalization in public identifiers,add rule about space normalization in public identifiers,add rule about space normalization in public identifiers,add rule about space normalization in public identifiers,add rule about space normalization in public identifiers,add rule about space normalization in public identifiers,







add description of how to generate our name-space rules from add description of how to generate our name-space rules from add description of how to generate our name-space rules from add description of how to generate our name-space rules from add description of how to generate our name-space rules from add description of how to generate our name-space rules from add description of how to generate our name-space rules from add description of how to generate our name-space rules from 







Unicode character database (needs further work!).Unicode character database (needs further work!).Unicode character database (needs further work!).Unicode character database (needs further work!).Unicode character database (needs further work!).Unicode character database (needs further work!).Unicode character database (needs further work!).Unicode character database (needs further work!).







</sitem>







<sitem>1997-10-08 : TB : Removed %-constructs again, new rules1997-10-08 : TB : Removed %-constructs again, new rules1997-10-08 : TB : Removed %-constructs again, new rules1997-10-08 : TB : Removed %-constructs again, new rules1997-10-08 : TB : Removed %-constructs again, new rules1997-10-08 : TB : Removed %-constructs again, new rules1997-10-08 : TB : Removed %-constructs again, new rules1997-10-08 : TB : Removed %-constructs again, new rules







for PE appearance.for PE appearance.for PE appearance.for PE appearance.for PE appearance.for PE appearance.for PE appearance.for PE appearance.</sitem>







<sitem>1997-10-01 : TB : Case-sensitive markup; cleaned up1997-10-01 : TB : Case-sensitive markup; cleaned up1997-10-01 : TB : Case-sensitive markup; cleaned up1997-10-01 : TB : Case-sensitive markup; cleaned up1997-10-01 : TB : Case-sensitive markup; cleaned up1997-10-01 : TB : Case-sensitive markup; cleaned up1997-10-01 : TB : Case-sensitive markup; cleaned up1997-10-01 : TB : Case-sensitive markup; cleaned up







element-type defs, lotsa little edits for styleelement-type defs, lotsa little edits for styleelement-type defs, lotsa little edits for styleelement-type defs, lotsa little edits for styleelement-type defs, lotsa little edits for styleelement-type defs, lotsa little edits for styleelement-type defs, lotsa little edits for styleelement-type defs, lotsa little edits for style</sitem>







<sitem>1997-09-25 : TB : Change to elm's new DTD, with1997-09-25 : TB : Change to elm's new DTD, with1997-09-25 : TB : Change to elm's new DTD, with1997-09-25 : TB : Change to elm's new DTD, with1997-09-25 : TB : Change to elm's new DTD, with1997-09-25 : TB : Change to elm's new DTD, with1997-09-25 : TB : Change to elm's new DTD, with1997-09-25 : TB : Change to elm's new DTD, with







substantial detail cleanup as a side-effectsubstantial detail cleanup as a side-effectsubstantial detail cleanup as a side-effectsubstantial detail cleanup as a side-effectsubstantial detail cleanup as a side-effectsubstantial detail cleanup as a side-effectsubstantial detail cleanup as a side-effectsubstantial detail cleanup as a side-effect</sitem>







<sitem>1997-07-24 : CMSMcQ : correct error (lost *) in definition 1997-07-24 : CMSMcQ : correct error (lost *) in definition 1997-07-24 : CMSMcQ : correct error (lost *) in definition 1997-07-24 : CMSMcQ : correct error (lost *) in definition 1997-07-24 : CMSMcQ : correct error (lost *) in definition 1997-07-24 : CMSMcQ : correct error (lost *) in definition 1997-07-24 : CMSMcQ : correct error (lost *) in definition 1997-07-24 : CMSMcQ : correct error (lost *) in definition 







of ignoreSectContents (thanks to Makoto Murata)of ignoreSectContents (thanks to Makoto Murata)of ignoreSectContents (thanks to Makoto Murata)of ignoreSectContents (thanks to Makoto Murata)of ignoreSectContents (thanks to Makoto Murata)of ignoreSectContents (thanks to Makoto Murata)of ignoreSectContents (thanks to Makoto Murata)of ignoreSectContents (thanks to Makoto Murata)</sitem>







<sitem>Allow all empty elements to have end-tags, consistent withAllow all empty elements to have end-tags, consistent withAllow all empty elements to have end-tags, consistent withAllow all empty elements to have end-tags, consistent withAllow all empty elements to have end-tags, consistent withAllow all empty elements to have end-tags, consistent withAllow all empty elements to have end-tags, consistent withAllow all empty elements to have end-tags, consistent with







SGML TC (as per JJC).SGML TC (as per JJC).SGML TC (as per JJC).SGML TC (as per JJC).SGML TC (as per JJC).SGML TC (as per JJC).SGML TC (as per JJC).SGML TC (as per JJC).</sitem>







<sitem>1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections:1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections:1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections:1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections:1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections:1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections:1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections:1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections:







introduce the term 'empty-element tag', note that all empty elementsintroduce the term 'empty-element tag', note that all empty elementsintroduce the term 'empty-element tag', note that all empty elementsintroduce the term 'empty-element tag', note that all empty elementsintroduce the term 'empty-element tag', note that all empty elementsintroduce the term 'empty-element tag', note that all empty elementsintroduce the term 'empty-element tag', note that all empty elementsintroduce the term 'empty-element tag', note that all empty elements







may use it, and elements declared EMPTY must use it.may use it, and elements declared EMPTY must use it.may use it, and elements declared EMPTY must use it.may use it, and elements declared EMPTY must use it.may use it, and elements declared EMPTY must use it.may use it, and elements declared EMPTY must use it.may use it, and elements declared EMPTY must use it.may use it, and elements declared EMPTY must use it.







Add WFC requiring encoding decl to come first in an entity.Add WFC requiring encoding decl to come first in an entity.Add WFC requiring encoding decl to come first in an entity.Add WFC requiring encoding decl to come first in an entity.Add WFC requiring encoding decl to come first in an entity.Add WFC requiring encoding decl to come first in an entity.Add WFC requiring encoding decl to come first in an entity.Add WFC requiring encoding decl to come first in an entity.







Redefine notations to point to PIs as well as binary entities.Redefine notations to point to PIs as well as binary entities.Redefine notations to point to PIs as well as binary entities.Redefine notations to point to PIs as well as binary entities.Redefine notations to point to PIs as well as binary entities.Redefine notations to point to PIs as well as binary entities.Redefine notations to point to PIs as well as binary entities.Redefine notations to point to PIs as well as binary entities.







Change autodetection table by removing bytes 3 and 4 from Change autodetection table by removing bytes 3 and 4 from Change autodetection table by removing bytes 3 and 4 from Change autodetection table by removing bytes 3 and 4 from Change autodetection table by removing bytes 3 and 4 from Change autodetection table by removing bytes 3 and 4 from Change autodetection table by removing bytes 3 and 4 from Change autodetection table by removing bytes 3 and 4 from 







examples with Byte Order Mark.examples with Byte Order Mark.examples with Byte Order Mark.examples with Byte Order Mark.examples with Byte Order Mark.examples with Byte Order Mark.examples with Byte Order Mark.examples with Byte Order Mark.







Add content model as a term and clarify that it applies to bothAdd content model as a term and clarify that it applies to bothAdd content model as a term and clarify that it applies to bothAdd content model as a term and clarify that it applies to bothAdd content model as a term and clarify that it applies to bothAdd content model as a term and clarify that it applies to bothAdd content model as a term and clarify that it applies to bothAdd content model as a term and clarify that it applies to both







mixed and element content.mixed and element content.mixed and element content.mixed and element content.mixed and element content.mixed and element content.mixed and element content.mixed and element content.







</sitem>







<sitem>1997-06-30 : CMSMcQ : change date, some cosmetic changes,1997-06-30 : CMSMcQ : change date, some cosmetic changes,1997-06-30 : CMSMcQ : change date, some cosmetic changes,1997-06-30 : CMSMcQ : change date, some cosmetic changes,1997-06-30 : CMSMcQ : change date, some cosmetic changes,1997-06-30 : CMSMcQ : change date, some cosmetic changes,1997-06-30 : CMSMcQ : change date, some cosmetic changes,1997-06-30 : CMSMcQ : change date, some cosmetic changes,







changes to productions for choice, seq, Mixed, NotationType,changes to productions for choice, seq, Mixed, NotationType,changes to productions for choice, seq, Mixed, NotationType,changes to productions for choice, seq, Mixed, NotationType,changes to productions for choice, seq, Mixed, NotationType,changes to productions for choice, seq, Mixed, NotationType,changes to productions for choice, seq, Mixed, NotationType,changes to productions for choice, seq, Mixed, NotationType,







Enumeration.  Follow James Clark's suggestion and prohibit Enumeration.  Follow James Clark's suggestion and prohibit Enumeration.  Follow James Clark's suggestion and prohibit Enumeration.  Follow James Clark's suggestion and prohibit Enumeration.  Follow James Clark's suggestion and prohibit Enumeration.  Follow James Clark's suggestion and prohibit Enumeration.  Follow James Clark's suggestion and prohibit Enumeration.  Follow James Clark's suggestion and prohibit 







conditional sections in internal subset.  TO DO:  simplifyconditional sections in internal subset.  TO DO:  simplifyconditional sections in internal subset.  TO DO:  simplifyconditional sections in internal subset.  TO DO:  simplifyconditional sections in internal subset.  TO DO:  simplifyconditional sections in internal subset.  TO DO:  simplifyconditional sections in internal subset.  TO DO:  simplifyconditional sections in internal subset.  TO DO:  simplify







production for ignored sections as a result, since we don't production for ignored sections as a result, since we don't production for ignored sections as a result, since we don't production for ignored sections as a result, since we don't production for ignored sections as a result, since we don't production for ignored sections as a result, since we don't production for ignored sections as a result, since we don't production for ignored sections as a result, since we don't 







need to worry about parsers which don't expand PErefs findingneed to worry about parsers which don't expand PErefs findingneed to worry about parsers which don't expand PErefs findingneed to worry about parsers which don't expand PErefs findingneed to worry about parsers which don't expand PErefs findingneed to worry about parsers which don't expand PErefs findingneed to worry about parsers which don't expand PErefs findingneed to worry about parsers which don't expand PErefs finding







a conditional section.a conditional section.a conditional section.a conditional section.a conditional section.a conditional section.a conditional section.a conditional section.</sitem>







<sitem>1997-06-29 : TB : various edits1997-06-29 : TB : various edits1997-06-29 : TB : various edits1997-06-29 : TB : various edits1997-06-29 : TB : various edits1997-06-29 : TB : various edits1997-06-29 : TB : various edits1997-06-29 : TB : various edits</sitem>







<sitem>1997-06-29 : CMSMcQ : further changes:1997-06-29 : CMSMcQ : further changes:1997-06-29 : CMSMcQ : further changes:1997-06-29 : CMSMcQ : further changes:1997-06-29 : CMSMcQ : further changes:1997-06-29 : CMSMcQ : further changes:1997-06-29 : CMSMcQ : further changes:1997-06-29 : CMSMcQ : further changes:







Suppress old FINAL EDIT comments and some dead material.Suppress old FINAL EDIT comments and some dead material.Suppress old FINAL EDIT comments and some dead material.Suppress old FINAL EDIT comments and some dead material.Suppress old FINAL EDIT comments and some dead material.Suppress old FINAL EDIT comments and some dead material.Suppress old FINAL EDIT comments and some dead material.Suppress old FINAL EDIT comments and some dead material.







Revise occurrences of % in grammar to exploit Henry Thompson's pun,Revise occurrences of % in grammar to exploit Henry Thompson's pun,Revise occurrences of % in grammar to exploit Henry Thompson's pun,Revise occurrences of % in grammar to exploit Henry Thompson's pun,Revise occurrences of % in grammar to exploit Henry Thompson's pun,Revise occurrences of % in grammar to exploit Henry Thompson's pun,Revise occurrences of % in grammar to exploit Henry Thompson's pun,Revise occurrences of % in grammar to exploit Henry Thompson's pun,







especially markupdecl and attdef.especially markupdecl and attdef.especially markupdecl and attdef.especially markupdecl and attdef.especially markupdecl and attdef.especially markupdecl and attdef.especially markupdecl and attdef.especially markupdecl and attdef.







Remove RMD requirement relating to element content (?).Remove RMD requirement relating to element content (?).Remove RMD requirement relating to element content (?).Remove RMD requirement relating to element content (?).Remove RMD requirement relating to element content (?).Remove RMD requirement relating to element content (?).Remove RMD requirement relating to element content (?).Remove RMD requirement relating to element content (?).







</sitem>







<sitem>1997-06-28 : CMSMcQ : Various changes for 1 July draft:1997-06-28 : CMSMcQ : Various changes for 1 July draft:1997-06-28 : CMSMcQ : Various changes for 1 July draft:1997-06-28 : CMSMcQ : Various changes for 1 July draft:1997-06-28 : CMSMcQ : Various changes for 1 July draft:1997-06-28 : CMSMcQ : Various changes for 1 July draft:1997-06-28 : CMSMcQ : Various changes for 1 July draft:1997-06-28 : CMSMcQ : Various changes for 1 July draft:







Add text for draconian error handling (introduceAdd text for draconian error handling (introduceAdd text for draconian error handling (introduceAdd text for draconian error handling (introduceAdd text for draconian error handling (introduceAdd text for draconian error handling (introduceAdd text for draconian error handling (introduceAdd text for draconian error handling (introduce







the term Fatal Error).the term Fatal Error).the term Fatal Error).the term Fatal Error).the term Fatal Error).the term Fatal Error).the term Fatal Error).the term Fatal Error).







RE deleta est (changing wording from RE deleta est (changing wording from RE deleta est (changing wording from RE deleta est (changing wording from RE deleta est (changing wording from RE deleta est (changing wording from RE deleta est (changing wording from RE deleta est (changing wording from 







original announcement to restrict the requirement to validatingoriginal announcement to restrict the requirement to validatingoriginal announcement to restrict the requirement to validatingoriginal announcement to restrict the requirement to validatingoriginal announcement to restrict the requirement to validatingoriginal announcement to restrict the requirement to validatingoriginal announcement to restrict the requirement to validatingoriginal announcement to restrict the requirement to validating







parsers).parsers).parsers).parsers).parsers).parsers).parsers).parsers).







Tag definition of validating processor and link to it.Tag definition of validating processor and link to it.Tag definition of validating processor and link to it.Tag definition of validating processor and link to it.Tag definition of validating processor and link to it.Tag definition of validating processor and link to it.Tag definition of validating processor and link to it.Tag definition of validating processor and link to it.







Add colon as name character.Add colon as name character.Add colon as name character.Add colon as name character.Add colon as name character.Add colon as name character.Add colon as name character.Add colon as name character.







Change def of %operator.Change def of %operator.Change def of %operator.Change def of %operator.Change def of %operator.Change def of %operator.Change def of %operator.Change def of %operator.







Change standard definitions of lt, gt, amp.Change standard definitions of lt, gt, amp.Change standard definitions of lt, gt, amp.Change standard definitions of lt, gt, amp.Change standard definitions of lt, gt, amp.Change standard definitions of lt, gt, amp.Change standard definitions of lt, gt, amp.Change standard definitions of lt, gt, amp.







Strip leading zeros from #x00nn forms.Strip leading zeros from #x00nn forms.Strip leading zeros from #x00nn forms.Strip leading zeros from #x00nn forms.Strip leading zeros from #x00nn forms.Strip leading zeros from #x00nn forms.Strip leading zeros from #x00nn forms.Strip leading zeros from #x00nn forms.</sitem>







<sitem>1997-04-02 : CMSMcQ : final corrections of editorial errors1997-04-02 : CMSMcQ : final corrections of editorial errors1997-04-02 : CMSMcQ : final corrections of editorial errors1997-04-02 : CMSMcQ : final corrections of editorial errors1997-04-02 : CMSMcQ : final corrections of editorial errors1997-04-02 : CMSMcQ : final corrections of editorial errors1997-04-02 : CMSMcQ : final corrections of editorial errors1997-04-02 : CMSMcQ : final corrections of editorial errors







found in last night's proofreading.  Reverse course once more onfound in last night's proofreading.  Reverse course once more onfound in last night's proofreading.  Reverse course once more onfound in last night's proofreading.  Reverse course once more onfound in last night's proofreading.  Reverse course once more onfound in last night's proofreading.  Reverse course once more onfound in last night's proofreading.  Reverse course once more onfound in last night's proofreading.  Reverse course once more on







well-formed:   Webster's Second hyphenates it, and that's enoughwell-formed:   Webster's Second hyphenates it, and that's enoughwell-formed:   Webster's Second hyphenates it, and that's enoughwell-formed:   Webster's Second hyphenates it, and that's enoughwell-formed:   Webster's Second hyphenates it, and that's enoughwell-formed:   Webster's Second hyphenates it, and that's enoughwell-formed:   Webster's Second hyphenates it, and that's enoughwell-formed:   Webster's Second hyphenates it, and that's enough







for me.for me.for me.for me.for me.for me.for me.for me.</sitem>







<sitem>1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self</sitem>







<sitem>1997-03-31 : Tim Bray : many changes1997-03-31 : Tim Bray : many changes1997-03-31 : Tim Bray : many changes1997-03-31 : Tim Bray : many changes1997-03-31 : Tim Bray : many changes1997-03-31 : Tim Bray : many changes1997-03-31 : Tim Bray : many changes1997-03-31 : Tim Bray : many changes</sitem>







<sitem>1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling),1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling),1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling),1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling),1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling),1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling),1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling),1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling),







some Charles Goldfarb, some ERB decisions (PE handling in miscellaneoussome Charles Goldfarb, some ERB decisions (PE handling in miscellaneoussome Charles Goldfarb, some ERB decisions (PE handling in miscellaneoussome Charles Goldfarb, some ERB decisions (PE handling in miscellaneoussome Charles Goldfarb, some ERB decisions (PE handling in miscellaneoussome Charles Goldfarb, some ERB decisions (PE handling in miscellaneoussome Charles Goldfarb, some ERB decisions (PE handling in miscellaneoussome Charles Goldfarb, some ERB decisions (PE handling in miscellaneous







declarations.  Changed Ident element to accept def attribute.declarations.  Changed Ident element to accept def attribute.declarations.  Changed Ident element to accept def attribute.declarations.  Changed Ident element to accept def attribute.declarations.  Changed Ident element to accept def attribute.declarations.  Changed Ident element to accept def attribute.declarations.  Changed Ident element to accept def attribute.declarations.  Changed Ident element to accept def attribute.







Allow normalization of Unicode characters.  move def of systemliteralAllow normalization of Unicode characters.  move def of systemliteralAllow normalization of Unicode characters.  move def of systemliteralAllow normalization of Unicode characters.  move def of systemliteralAllow normalization of Unicode characters.  move def of systemliteralAllow normalization of Unicode characters.  move def of systemliteralAllow normalization of Unicode characters.  move def of systemliteralAllow normalization of Unicode characters.  move def of systemliteral







into section on literals.into section on literals.into section on literals.into section on literals.into section on literals.into section on literals.into section on literals.into section on literals.</sitem>







<sitem>1997-03-28 : CMSMcQ : make as many corrections as possible, from1997-03-28 : CMSMcQ : make as many corrections as possible, from1997-03-28 : CMSMcQ : make as many corrections as possible, from1997-03-28 : CMSMcQ : make as many corrections as possible, from1997-03-28 : CMSMcQ : make as many corrections as possible, from1997-03-28 : CMSMcQ : make as many corrections as possible, from1997-03-28 : CMSMcQ : make as many corrections as possible, from1997-03-28 : CMSMcQ : make as many corrections as possible, from







Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson,Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson,Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson,Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson,Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson,Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson,Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson,Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson,







Paul Grosso, and self.  Among other things:  give in on "well formed"Paul Grosso, and self.  Among other things:  give in on "well formed"Paul Grosso, and self.  Among other things:  give in on "well formed"Paul Grosso, and self.  Among other things:  give in on "well formed"Paul Grosso, and self.  Among other things:  give in on "well formed"Paul Grosso, and self.  Among other things:  give in on "well formed"Paul Grosso, and self.  Among other things:  give in on "well formed"Paul Grosso, and self.  Among other things:  give in on "well formed"







(Terry is right), tentatively rename QuotedCData as AttValue(Terry is right), tentatively rename QuotedCData as AttValue(Terry is right), tentatively rename QuotedCData as AttValue(Terry is right), tentatively rename QuotedCData as AttValue(Terry is right), tentatively rename QuotedCData as AttValue(Terry is right), tentatively rename QuotedCData as AttValue(Terry is right), tentatively rename QuotedCData as AttValue(Terry is right), tentatively rename QuotedCData as AttValue







and Literal as EntityValue to be more informative, since attributeand Literal as EntityValue to be more informative, since attributeand Literal as EntityValue to be more informative, since attributeand Literal as EntityValue to be more informative, since attributeand Literal as EntityValue to be more informative, since attributeand Literal as EntityValue to be more informative, since attributeand Literal as EntityValue to be more informative, since attributeand Literal as EntityValue to be more informative, since attribute







values are the values are the values are the values are the values are the values are the values are the values are the <emph>onlyonlyonlyonlyonlyonlyonlyonly</emph> place QuotedCData was used, and place QuotedCData was used, and place QuotedCData was used, and place QuotedCData was used, and place QuotedCData was used, and place QuotedCData was used, and place QuotedCData was used, and place QuotedCData was used, and







vice versa for entity text and Literal. (I'd call it Entity Text, vice versa for entity text and Literal. (I'd call it Entity Text, vice versa for entity text and Literal. (I'd call it Entity Text, vice versa for entity text and Literal. (I'd call it Entity Text, vice versa for entity text and Literal. (I'd call it Entity Text, vice versa for entity text and Literal. (I'd call it Entity Text, vice versa for entity text and Literal. (I'd call it Entity Text, vice versa for entity text and Literal. (I'd call it Entity Text, 







but 8879 uses that name for both internal and external entities.)but 8879 uses that name for both internal and external entities.)but 8879 uses that name for both internal and external entities.)but 8879 uses that name for both internal and external entities.)but 8879 uses that name for both internal and external entities.)but 8879 uses that name for both internal and external entities.)but 8879 uses that name for both internal and external entities.)but 8879 uses that name for both internal and external entities.)</sitem>







<sitem>1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply







my changes dated 03-20 and 03-21.  Normalize old 'may not' to 'must not'my changes dated 03-20 and 03-21.  Normalize old 'may not' to 'must not'my changes dated 03-20 and 03-21.  Normalize old 'may not' to 'must not'my changes dated 03-20 and 03-21.  Normalize old 'may not' to 'must not'my changes dated 03-20 and 03-21.  Normalize old 'may not' to 'must not'my changes dated 03-20 and 03-21.  Normalize old 'may not' to 'must not'my changes dated 03-20 and 03-21.  Normalize old 'may not' to 'must not'my changes dated 03-20 and 03-21.  Normalize old 'may not' to 'must not'







except in the one case where it meant 'may or may not'.except in the one case where it meant 'may or may not'.except in the one case where it meant 'may or may not'.except in the one case where it meant 'may or may not'.except in the one case where it meant 'may or may not'.except in the one case where it meant 'may or may not'.except in the one case where it meant 'may or may not'.except in the one case where it meant 'may or may not'.</sitem>







<sitem>1997-03-21 : TB : massive changes on plane flight from Chicago1997-03-21 : TB : massive changes on plane flight from Chicago1997-03-21 : TB : massive changes on plane flight from Chicago1997-03-21 : TB : massive changes on plane flight from Chicago1997-03-21 : TB : massive changes on plane flight from Chicago1997-03-21 : TB : massive changes on plane flight from Chicago1997-03-21 : TB : massive changes on plane flight from Chicago1997-03-21 : TB : massive changes on plane flight from Chicago







to Vancouverto Vancouverto Vancouverto Vancouverto Vancouverto Vancouverto Vancouverto Vancouver</sitem>







<sitem>1997-03-21 : CMSMcQ : correct as many reported errors as possible.1997-03-21 : CMSMcQ : correct as many reported errors as possible.1997-03-21 : CMSMcQ : correct as many reported errors as possible.1997-03-21 : CMSMcQ : correct as many reported errors as possible.1997-03-21 : CMSMcQ : correct as many reported errors as possible.1997-03-21 : CMSMcQ : correct as many reported errors as possible.1997-03-21 : CMSMcQ : correct as many reported errors as possible.1997-03-21 : CMSMcQ : correct as many reported errors as possible.







</sitem>







<sitem>1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.</sitem>







<sitem>1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for







WWW conference April 1997:  restore some of the internal entity WWW conference April 1997:  restore some of the internal entity WWW conference April 1997:  restore some of the internal entity WWW conference April 1997:  restore some of the internal entity WWW conference April 1997:  restore some of the internal entity WWW conference April 1997:  restore some of the internal entity WWW conference April 1997:  restore some of the internal entity WWW conference April 1997:  restore some of the internal entity 







references (e.g. to docdate, etc.), change character xA0 to references (e.g. to docdate, etc.), change character xA0 to references (e.g. to docdate, etc.), change character xA0 to references (e.g. to docdate, etc.), change character xA0 to references (e.g. to docdate, etc.), change character xA0 to references (e.g. to docdate, etc.), change character xA0 to references (e.g. to docdate, etc.), change character xA0 to references (e.g. to docdate, etc.), change character xA0 to &amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;nbsp;







and define nbsp as and define nbsp as and define nbsp as and define nbsp as and define nbsp as and define nbsp as and define nbsp as and define nbsp as &amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;#160;, and refill a lot of paragraphs for#160;, and refill a lot of paragraphs for#160;, and refill a lot of paragraphs for#160;, and refill a lot of paragraphs for#160;, and refill a lot of paragraphs for#160;, and refill a lot of paragraphs for#160;, and refill a lot of paragraphs for#160;, and refill a lot of paragraphs for







legibility.legibility.legibility.legibility.legibility.legibility.legibility.legibility.</sitem>







<sitem>1996-11-12 : CMSMcQ : revise using Tim's edits:1996-11-12 : CMSMcQ : revise using Tim's edits:1996-11-12 : CMSMcQ : revise using Tim's edits:1996-11-12 : CMSMcQ : revise using Tim's edits:1996-11-12 : CMSMcQ : revise using Tim's edits:1996-11-12 : CMSMcQ : revise using Tim's edits:1996-11-12 : CMSMcQ : revise using Tim's edits:1996-11-12 : CMSMcQ : revise using Tim's edits:







Add list type of NUMBERED and change most lists either toAdd list type of NUMBERED and change most lists either toAdd list type of NUMBERED and change most lists either toAdd list type of NUMBERED and change most lists either toAdd list type of NUMBERED and change most lists either toAdd list type of NUMBERED and change most lists either toAdd list type of NUMBERED and change most lists either toAdd list type of NUMBERED and change most lists either to







BULLETS or to NUMBERED.BULLETS or to NUMBERED.BULLETS or to NUMBERED.BULLETS or to NUMBERED.BULLETS or to NUMBERED.BULLETS or to NUMBERED.BULLETS or to NUMBERED.BULLETS or to NUMBERED.







Suppress QuotedNames, Names (not used).Suppress QuotedNames, Names (not used).Suppress QuotedNames, Names (not used).Suppress QuotedNames, Names (not used).Suppress QuotedNames, Names (not used).Suppress QuotedNames, Names (not used).Suppress QuotedNames, Names (not used).Suppress QuotedNames, Names (not used).







Correct trivial-grammar doc type decl.Correct trivial-grammar doc type decl.Correct trivial-grammar doc type decl.Correct trivial-grammar doc type decl.Correct trivial-grammar doc type decl.Correct trivial-grammar doc type decl.Correct trivial-grammar doc type decl.Correct trivial-grammar doc type decl.







Rename 'marked section' as 'CDATA section' passim.Rename 'marked section' as 'CDATA section' passim.Rename 'marked section' as 'CDATA section' passim.Rename 'marked section' as 'CDATA section' passim.Rename 'marked section' as 'CDATA section' passim.Rename 'marked section' as 'CDATA section' passim.Rename 'marked section' as 'CDATA section' passim.Rename 'marked section' as 'CDATA section' passim.







Also edits from James Clark:Also edits from James Clark:Also edits from James Clark:Also edits from James Clark:Also edits from James Clark:Also edits from James Clark:Also edits from James Clark:Also edits from James Clark:







Define the set of characters from which [^abc] subtracts.Define the set of characters from which [^abc] subtracts.Define the set of characters from which [^abc] subtracts.Define the set of characters from which [^abc] subtracts.Define the set of characters from which [^abc] subtracts.Define the set of characters from which [^abc] subtracts.Define the set of characters from which [^abc] subtracts.Define the set of characters from which [^abc] subtracts.







Charref should use just [0-9] not Digit.Charref should use just [0-9] not Digit.Charref should use just [0-9] not Digit.Charref should use just [0-9] not Digit.Charref should use just [0-9] not Digit.Charref should use just [0-9] not Digit.Charref should use just [0-9] not Digit.Charref should use just [0-9] not Digit.







Location info needs cleaner treatment:  remove?  (ERBLocation info needs cleaner treatment:  remove?  (ERBLocation info needs cleaner treatment:  remove?  (ERBLocation info needs cleaner treatment:  remove?  (ERBLocation info needs cleaner treatment:  remove?  (ERBLocation info needs cleaner treatment:  remove?  (ERBLocation info needs cleaner treatment:  remove?  (ERBLocation info needs cleaner treatment:  remove?  (ERB







question).question).question).question).question).question).question).question).







One example of a PI has wrong pic.One example of a PI has wrong pic.One example of a PI has wrong pic.One example of a PI has wrong pic.One example of a PI has wrong pic.One example of a PI has wrong pic.One example of a PI has wrong pic.One example of a PI has wrong pic.







Clarify discussion of encoding names.Clarify discussion of encoding names.Clarify discussion of encoding names.Clarify discussion of encoding names.Clarify discussion of encoding names.Clarify discussion of encoding names.Clarify discussion of encoding names.Clarify discussion of encoding names.







Encoding failure should lead to unspecified results; don'tEncoding failure should lead to unspecified results; don'tEncoding failure should lead to unspecified results; don'tEncoding failure should lead to unspecified results; don'tEncoding failure should lead to unspecified results; don'tEncoding failure should lead to unspecified results; don'tEncoding failure should lead to unspecified results; don'tEncoding failure should lead to unspecified results; don't







prescribe error recovery.prescribe error recovery.prescribe error recovery.prescribe error recovery.prescribe error recovery.prescribe error recovery.prescribe error recovery.prescribe error recovery.







Don't require exposure of entity boundaries.Don't require exposure of entity boundaries.Don't require exposure of entity boundaries.Don't require exposure of entity boundaries.Don't require exposure of entity boundaries.Don't require exposure of entity boundaries.Don't require exposure of entity boundaries.Don't require exposure of entity boundaries.







Ignore white space in element content.Ignore white space in element content.Ignore white space in element content.Ignore white space in element content.Ignore white space in element content.Ignore white space in element content.Ignore white space in element content.Ignore white space in element content.







Reserve entity names of the form u-NNNN.Reserve entity names of the form u-NNNN.Reserve entity names of the form u-NNNN.Reserve entity names of the form u-NNNN.Reserve entity names of the form u-NNNN.Reserve entity names of the form u-NNNN.Reserve entity names of the form u-NNNN.Reserve entity names of the form u-NNNN.







Clarify relative URLs.Clarify relative URLs.Clarify relative URLs.Clarify relative URLs.Clarify relative URLs.Clarify relative URLs.Clarify relative URLs.Clarify relative URLs.







And some of my own:And some of my own:And some of my own:And some of my own:And some of my own:And some of my own:And some of my own:And some of my own:







Correct productions for content model:  model cannotCorrect productions for content model:  model cannotCorrect productions for content model:  model cannotCorrect productions for content model:  model cannotCorrect productions for content model:  model cannotCorrect productions for content model:  model cannotCorrect productions for content model:  model cannotCorrect productions for content model:  model cannot







consist of a name, so "elements ::= cp" is no good.consist of a name, so "elements ::= cp" is no good.consist of a name, so "elements ::= cp" is no good.consist of a name, so "elements ::= cp" is no good.consist of a name, so "elements ::= cp" is no good.consist of a name, so "elements ::= cp" is no good.consist of a name, so "elements ::= cp" is no good.consist of a name, so "elements ::= cp" is no good.







</sitem>







<sitem>1996-11-11 : CMSMcQ : revise for style.1996-11-11 : CMSMcQ : revise for style.1996-11-11 : CMSMcQ : revise for style.1996-11-11 : CMSMcQ : revise for style.1996-11-11 : CMSMcQ : revise for style.1996-11-11 : CMSMcQ : revise for style.1996-11-11 : CMSMcQ : revise for style.1996-11-11 : CMSMcQ : revise for style.







Add new rhs to entity declaration, for parameter entities.Add new rhs to entity declaration, for parameter entities.Add new rhs to entity declaration, for parameter entities.Add new rhs to entity declaration, for parameter entities.Add new rhs to entity declaration, for parameter entities.Add new rhs to entity declaration, for parameter entities.Add new rhs to entity declaration, for parameter entities.Add new rhs to entity declaration, for parameter entities.</sitem>







<sitem>1996-11-10 : CMSMcQ : revise for style.1996-11-10 : CMSMcQ : revise for style.1996-11-10 : CMSMcQ : revise for style.1996-11-10 : CMSMcQ : revise for style.1996-11-10 : CMSMcQ : revise for style.1996-11-10 : CMSMcQ : revise for style.1996-11-10 : CMSMcQ : revise for style.1996-11-10 : CMSMcQ : revise for style.







Fix / complete section on names, characters.Fix / complete section on names, characters.Fix / complete section on names, characters.Fix / complete section on names, characters.Fix / complete section on names, characters.Fix / complete section on names, characters.Fix / complete section on names, characters.Fix / complete section on names, characters.







Add sections on parameter entities, conditional sections.Add sections on parameter entities, conditional sections.Add sections on parameter entities, conditional sections.Add sections on parameter entities, conditional sections.Add sections on parameter entities, conditional sections.Add sections on parameter entities, conditional sections.Add sections on parameter entities, conditional sections.Add sections on parameter entities, conditional sections.







Still to do:  Add compatibility note on deterministic content models.Still to do:  Add compatibility note on deterministic content models.Still to do:  Add compatibility note on deterministic content models.Still to do:  Add compatibility note on deterministic content models.Still to do:  Add compatibility note on deterministic content models.Still to do:  Add compatibility note on deterministic content models.Still to do:  Add compatibility note on deterministic content models.Still to do:  Add compatibility note on deterministic content models.







Finish stylistic revision.Finish stylistic revision.Finish stylistic revision.Finish stylistic revision.Finish stylistic revision.Finish stylistic revision.Finish stylistic revision.Finish stylistic revision.</sitem>







<sitem>1996-10-31 : TB : Add Entity Handling section1996-10-31 : TB : Add Entity Handling section1996-10-31 : TB : Add Entity Handling section1996-10-31 : TB : Add Entity Handling section1996-10-31 : TB : Add Entity Handling section1996-10-31 : TB : Add Entity Handling section1996-10-31 : TB : Add Entity Handling section1996-10-31 : TB : Add Entity Handling section</sitem>







<sitem>1996-10-30 : TB : Clean up term 1996-10-30 : TB : Clean up term 1996-10-30 : TB : Clean up term 1996-10-30 : TB : Clean up term 1996-10-30 : TB : Clean up term 1996-10-30 : TB : Clean up term 1996-10-30 : TB : Clean up term 1996-10-30 : TB : Clean up term &amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp; termdef.  Slip in termdef.  Slip in termdef.  Slip in termdef.  Slip in termdef.  Slip in termdef.  Slip in termdef.  Slip in termdef.  Slip in







ERB decision re EMPTY.ERB decision re EMPTY.ERB decision re EMPTY.ERB decision re EMPTY.ERB decision re EMPTY.ERB decision re EMPTY.ERB decision re EMPTY.ERB decision re EMPTY.</sitem>







<sitem>1996-10-28 : TB : Change DTD.  Implement some of Michael's1996-10-28 : TB : Change DTD.  Implement some of Michael's1996-10-28 : TB : Change DTD.  Implement some of Michael's1996-10-28 : TB : Change DTD.  Implement some of Michael's1996-10-28 : TB : Change DTD.  Implement some of Michael's1996-10-28 : TB : Change DTD.  Implement some of Michael's1996-10-28 : TB : Change DTD.  Implement some of Michael's1996-10-28 : TB : Change DTD.  Implement some of Michael's







suggestions.  Change comments back to //.  Introduce language forsuggestions.  Change comments back to //.  Introduce language forsuggestions.  Change comments back to //.  Introduce language forsuggestions.  Change comments back to //.  Introduce language forsuggestions.  Change comments back to //.  Introduce language forsuggestions.  Change comments back to //.  Introduce language forsuggestions.  Change comments back to //.  Introduce language forsuggestions.  Change comments back to //.  Introduce language for







XML namespace reservation.  Add section on white-space handling.XML namespace reservation.  Add section on white-space handling.XML namespace reservation.  Add section on white-space handling.XML namespace reservation.  Add section on white-space handling.XML namespace reservation.  Add section on white-space handling.XML namespace reservation.  Add section on white-space handling.XML namespace reservation.  Add section on white-space handling.XML namespace reservation.  Add section on white-space handling.







Lots more cleanup.Lots more cleanup.Lots more cleanup.Lots more cleanup.Lots more cleanup.Lots more cleanup.Lots more cleanup.Lots more cleanup.</sitem>







<sitem>1996-10-24 : CMSMcQ : quick tweaks, implement some ERB1996-10-24 : CMSMcQ : quick tweaks, implement some ERB1996-10-24 : CMSMcQ : quick tweaks, implement some ERB1996-10-24 : CMSMcQ : quick tweaks, implement some ERB1996-10-24 : CMSMcQ : quick tweaks, implement some ERB1996-10-24 : CMSMcQ : quick tweaks, implement some ERB1996-10-24 : CMSMcQ : quick tweaks, implement some ERB1996-10-24 : CMSMcQ : quick tweaks, implement some ERB







decisions.  Characters are not integers.  Comments are /* */ not //.decisions.  Characters are not integers.  Comments are /* */ not //.decisions.  Characters are not integers.  Comments are /* */ not //.decisions.  Characters are not integers.  Comments are /* */ not //.decisions.  Characters are not integers.  Comments are /* */ not //.decisions.  Characters are not integers.  Comments are /* */ not //.decisions.  Characters are not integers.  Comments are /* */ not //.decisions.  Characters are not integers.  Comments are /* */ not //.







Add bibliographic refs to 10646, HyTime, Unicode.Add bibliographic refs to 10646, HyTime, Unicode.Add bibliographic refs to 10646, HyTime, Unicode.Add bibliographic refs to 10646, HyTime, Unicode.Add bibliographic refs to 10646, HyTime, Unicode.Add bibliographic refs to 10646, HyTime, Unicode.Add bibliographic refs to 10646, HyTime, Unicode.Add bibliographic refs to 10646, HyTime, Unicode.







Rename old Cdata as MsData since it's Rename old Cdata as MsData since it's Rename old Cdata as MsData since it's Rename old Cdata as MsData since it's Rename old Cdata as MsData since it's Rename old Cdata as MsData since it's Rename old Cdata as MsData since it's Rename old Cdata as MsData since it's <emph>onlyonlyonlyonlyonlyonlyonlyonly</emph> seen seen seen seen seen seen seen seen







in marked sections.  Call them attribute-value pairs notin marked sections.  Call them attribute-value pairs notin marked sections.  Call them attribute-value pairs notin marked sections.  Call them attribute-value pairs notin marked sections.  Call them attribute-value pairs notin marked sections.  Call them attribute-value pairs notin marked sections.  Call them attribute-value pairs notin marked sections.  Call them attribute-value pairs not







name-value pairs, except once.  Internal subset is optional, needsname-value pairs, except once.  Internal subset is optional, needsname-value pairs, except once.  Internal subset is optional, needsname-value pairs, except once.  Internal subset is optional, needsname-value pairs, except once.  Internal subset is optional, needsname-value pairs, except once.  Internal subset is optional, needsname-value pairs, except once.  Internal subset is optional, needsname-value pairs, except once.  Internal subset is optional, needs







'?'.  Implied attributes should be signaled to the app, not'?'.  Implied attributes should be signaled to the app, not'?'.  Implied attributes should be signaled to the app, not'?'.  Implied attributes should be signaled to the app, not'?'.  Implied attributes should be signaled to the app, not'?'.  Implied attributes should be signaled to the app, not'?'.  Implied attributes should be signaled to the app, not'?'.  Implied attributes should be signaled to the app, not







have values supplied by processor.have values supplied by processor.have values supplied by processor.have values supplied by processor.have values supplied by processor.have values supplied by processor.have values supplied by processor.have values supplied by processor.</sitem>







<sitem>1996-10-16 : TB : track down 1996-10-16 : TB : track down 1996-10-16 : TB : track down 1996-10-16 : TB : track down 1996-10-16 : TB : track down 1996-10-16 : TB : track down 1996-10-16 : TB : track down 1996-10-16 : TB : track down &amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp; excise all DSD references; excise all DSD references; excise all DSD references; excise all DSD references; excise all DSD references; excise all DSD references; excise all DSD references; excise all DSD references;







introduce some EBNF for entity declarations.introduce some EBNF for entity declarations.introduce some EBNF for entity declarations.introduce some EBNF for entity declarations.introduce some EBNF for entity declarations.introduce some EBNF for entity declarations.introduce some EBNF for entity declarations.introduce some EBNF for entity declarations.</sitem>







<sitem>1996-10-?? : TB : consistency check, fix up scraps so1996-10-?? : TB : consistency check, fix up scraps so1996-10-?? : TB : consistency check, fix up scraps so1996-10-?? : TB : consistency check, fix up scraps so1996-10-?? : TB : consistency check, fix up scraps so1996-10-?? : TB : consistency check, fix up scraps so1996-10-?? : TB : consistency check, fix up scraps so1996-10-?? : TB : consistency check, fix up scraps so







they all parse, get formatter working, correct a few productions.they all parse, get formatter working, correct a few productions.they all parse, get formatter working, correct a few productions.they all parse, get formatter working, correct a few productions.they all parse, get formatter working, correct a few productions.they all parse, get formatter working, correct a few productions.they all parse, get formatter working, correct a few productions.they all parse, get formatter working, correct a few productions.</sitem>







<sitem>1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and







organizational changes:organizational changes:organizational changes:organizational changes:organizational changes:organizational changes:organizational changes:organizational changes:







Replace a few literals with xmlpio andReplace a few literals with xmlpio andReplace a few literals with xmlpio andReplace a few literals with xmlpio andReplace a few literals with xmlpio andReplace a few literals with xmlpio andReplace a few literals with xmlpio andReplace a few literals with xmlpio and







pic entities, to make them consistent and ensure we can change picpic entities, to make them consistent and ensure we can change picpic entities, to make them consistent and ensure we can change picpic entities, to make them consistent and ensure we can change picpic entities, to make them consistent and ensure we can change picpic entities, to make them consistent and ensure we can change picpic entities, to make them consistent and ensure we can change picpic entities, to make them consistent and ensure we can change pic







reliably when the ERB votes.reliably when the ERB votes.reliably when the ERB votes.reliably when the ERB votes.reliably when the ERB votes.reliably when the ERB votes.reliably when the ERB votes.reliably when the ERB votes.







Drop paragraph on recognizers from notation section.Drop paragraph on recognizers from notation section.Drop paragraph on recognizers from notation section.Drop paragraph on recognizers from notation section.Drop paragraph on recognizers from notation section.Drop paragraph on recognizers from notation section.Drop paragraph on recognizers from notation section.Drop paragraph on recognizers from notation section.







Add match, exact match to terminology.Add match, exact match to terminology.Add match, exact match to terminology.Add match, exact match to terminology.Add match, exact match to terminology.Add match, exact match to terminology.Add match, exact match to terminology.Add match, exact match to terminology.







Move old 2.2 XML Processors and Apps into intro.Move old 2.2 XML Processors and Apps into intro.Move old 2.2 XML Processors and Apps into intro.Move old 2.2 XML Processors and Apps into intro.Move old 2.2 XML Processors and Apps into intro.Move old 2.2 XML Processors and Apps into intro.Move old 2.2 XML Processors and Apps into intro.Move old 2.2 XML Processors and Apps into intro.







Mention comments, PIs, and marked sections in discussion ofMention comments, PIs, and marked sections in discussion ofMention comments, PIs, and marked sections in discussion ofMention comments, PIs, and marked sections in discussion ofMention comments, PIs, and marked sections in discussion ofMention comments, PIs, and marked sections in discussion ofMention comments, PIs, and marked sections in discussion ofMention comments, PIs, and marked sections in discussion of







delimiter escaping.delimiter escaping.delimiter escaping.delimiter escaping.delimiter escaping.delimiter escaping.delimiter escaping.delimiter escaping.







Streamline discussion of doctype decl syntax.Streamline discussion of doctype decl syntax.Streamline discussion of doctype decl syntax.Streamline discussion of doctype decl syntax.Streamline discussion of doctype decl syntax.Streamline discussion of doctype decl syntax.Streamline discussion of doctype decl syntax.Streamline discussion of doctype decl syntax.







Drop old section of 'PI syntax' for doctype decl, and addDrop old section of 'PI syntax' for doctype decl, and addDrop old section of 'PI syntax' for doctype decl, and addDrop old section of 'PI syntax' for doctype decl, and addDrop old section of 'PI syntax' for doctype decl, and addDrop old section of 'PI syntax' for doctype decl, and addDrop old section of 'PI syntax' for doctype decl, and addDrop old section of 'PI syntax' for doctype decl, and add







section on partial-DTD summary PIs to end of Logical Structuressection on partial-DTD summary PIs to end of Logical Structuressection on partial-DTD summary PIs to end of Logical Structuressection on partial-DTD summary PIs to end of Logical Structuressection on partial-DTD summary PIs to end of Logical Structuressection on partial-DTD summary PIs to end of Logical Structuressection on partial-DTD summary PIs to end of Logical Structuressection on partial-DTD summary PIs to end of Logical Structures







section.section.section.section.section.section.section.section.







Revise DSD syntax section to use Tim's subset-in-a-PIRevise DSD syntax section to use Tim's subset-in-a-PIRevise DSD syntax section to use Tim's subset-in-a-PIRevise DSD syntax section to use Tim's subset-in-a-PIRevise DSD syntax section to use Tim's subset-in-a-PIRevise DSD syntax section to use Tim's subset-in-a-PIRevise DSD syntax section to use Tim's subset-in-a-PIRevise DSD syntax section to use Tim's subset-in-a-PI







mechanism.mechanism.mechanism.mechanism.mechanism.mechanism.mechanism.mechanism.</sitem>







<sitem>1996-10-10 : TB : eliminate name recognizers (and more?)1996-10-10 : TB : eliminate name recognizers (and more?)1996-10-10 : TB : eliminate name recognizers (and more?)1996-10-10 : TB : eliminate name recognizers (and more?)1996-10-10 : TB : eliminate name recognizers (and more?)1996-10-10 : TB : eliminate name recognizers (and more?)1996-10-10 : TB : eliminate name recognizers (and more?)1996-10-10 : TB : eliminate name recognizers (and more?)</sitem>







<sitem>1996-10-09 : CMSMcQ : revise for style, consistency through 2.31996-10-09 : CMSMcQ : revise for style, consistency through 2.31996-10-09 : CMSMcQ : revise for style, consistency through 2.31996-10-09 : CMSMcQ : revise for style, consistency through 2.31996-10-09 : CMSMcQ : revise for style, consistency through 2.31996-10-09 : CMSMcQ : revise for style, consistency through 2.31996-10-09 : CMSMcQ : revise for style, consistency through 2.31996-10-09 : CMSMcQ : revise for style, consistency through 2.3







(Characters)(Characters)(Characters)(Characters)(Characters)(Characters)(Characters)(Characters)</sitem>







<sitem>1996-10-09 : CMSMcQ : re-unite everything for convenience,1996-10-09 : CMSMcQ : re-unite everything for convenience,1996-10-09 : CMSMcQ : re-unite everything for convenience,1996-10-09 : CMSMcQ : re-unite everything for convenience,1996-10-09 : CMSMcQ : re-unite everything for convenience,1996-10-09 : CMSMcQ : re-unite everything for convenience,1996-10-09 : CMSMcQ : re-unite everything for convenience,1996-10-09 : CMSMcQ : re-unite everything for convenience,







at least temporarily, and revise quicklyat least temporarily, and revise quicklyat least temporarily, and revise quicklyat least temporarily, and revise quicklyat least temporarily, and revise quicklyat least temporarily, and revise quicklyat least temporarily, and revise quicklyat least temporarily, and revise quickly</sitem>







<sitem>1996-10-08 : TB : first major homogenization pass1996-10-08 : TB : first major homogenization pass1996-10-08 : TB : first major homogenization pass1996-10-08 : TB : first major homogenization pass1996-10-08 : TB : first major homogenization pass1996-10-08 : TB : first major homogenization pass1996-10-08 : TB : first major homogenization pass1996-10-08 : TB : first major homogenization pass</sitem>







<sitem>1996-10-08 : TB : turn "current" attribute on div type into 1996-10-08 : TB : turn "current" attribute on div type into 1996-10-08 : TB : turn "current" attribute on div type into 1996-10-08 : TB : turn "current" attribute on div type into 1996-10-08 : TB : turn "current" attribute on div type into 1996-10-08 : TB : turn "current" attribute on div type into 1996-10-08 : TB : turn "current" attribute on div type into 1996-10-08 : TB : turn "current" attribute on div type into 







CDATACDATACDATACDATACDATACDATACDATACDATA</sitem>







<sitem>1996-10-02 : TB : remould into skeleton + entities1996-10-02 : TB : remould into skeleton + entities1996-10-02 : TB : remould into skeleton + entities1996-10-02 : TB : remould into skeleton + entities1996-10-02 : TB : remould into skeleton + entities1996-10-02 : TB : remould into skeleton + entities1996-10-02 : TB : remould into skeleton + entities1996-10-02 : TB : remould into skeleton + entities</sitem>







<sitem>1996-09-30 : CMSMcQ : add a few more sections prior to exchange1996-09-30 : CMSMcQ : add a few more sections prior to exchange1996-09-30 : CMSMcQ : add a few more sections prior to exchange1996-09-30 : CMSMcQ : add a few more sections prior to exchange1996-09-30 : CMSMcQ : add a few more sections prior to exchange1996-09-30 : CMSMcQ : add a few more sections prior to exchange1996-09-30 : CMSMcQ : add a few more sections prior to exchange1996-09-30 : CMSMcQ : add a few more sections prior to exchange







                            with Tim.                            with Tim.                            with Tim.                            with Tim.                            with Tim.                            with Tim.                            with Tim.                            with Tim.</sitem>







<sitem>1996-09-20 : CMSMcQ : finish transcribing notes.1996-09-20 : CMSMcQ : finish transcribing notes.1996-09-20 : CMSMcQ : finish transcribing notes.1996-09-20 : CMSMcQ : finish transcribing notes.1996-09-20 : CMSMcQ : finish transcribing notes.1996-09-20 : CMSMcQ : finish transcribing notes.1996-09-20 : CMSMcQ : finish transcribing notes.1996-09-20 : CMSMcQ : finish transcribing notes.</sitem>







<sitem>1996-09-19 : CMSMcQ : begin transcribing notes for draft.1996-09-19 : CMSMcQ : begin transcribing notes for draft.1996-09-19 : CMSMcQ : begin transcribing notes for draft.1996-09-19 : CMSMcQ : begin transcribing notes for draft.1996-09-19 : CMSMcQ : begin transcribing notes for draft.1996-09-19 : CMSMcQ : begin transcribing notes for draft.1996-09-19 : CMSMcQ : begin transcribing notes for draft.1996-09-19 : CMSMcQ : begin transcribing notes for draft.</sitem>







<sitem>1996-09-13 : CMSMcQ : made outline from notes of 09-06,1996-09-13 : CMSMcQ : made outline from notes of 09-06,1996-09-13 : CMSMcQ : made outline from notes of 09-06,1996-09-13 : CMSMcQ : made outline from notes of 09-06,1996-09-13 : CMSMcQ : made outline from notes of 09-06,1996-09-13 : CMSMcQ : made outline from notes of 09-06,1996-09-13 : CMSMcQ : made outline from notes of 09-06,1996-09-13 : CMSMcQ : made outline from notes of 09-06,







do some housekeepingdo some housekeepingdo some housekeepingdo some housekeepingdo some housekeepingdo some housekeepingdo some housekeepingdo some housekeeping</sitem>







</slist>







</revisiondesc>







</header>







<body>        







<div1 id='sec-intro'>







<head>IntroductionIntroductionIntroductionIntroductionIntroductionIntroductionIntroductionIntroduction</head>







<p>Extensible Markup Language, abbreviated XML, describes a class ofExtensible Markup Language, abbreviated XML, describes a class ofExtensible Markup Language, abbreviated XML, describes a class ofExtensible Markup Language, abbreviated XML, describes a class ofExtensible Markup Language, abbreviated XML, describes a class ofExtensible Markup Language, abbreviated XML, describes a class ofExtensible Markup Language, abbreviated XML, describes a class ofExtensible Markup Language, abbreviated XML, describes a class of







data objects called data objects called data objects called data objects called data objects called data objects called data objects called data objects called <termref def='dt-xml-doc'>XML documentsXML documentsXML documentsXML documentsXML documentsXML documentsXML documentsXML documents</termref> and and and and and and and and







partially describes the behavior of partially describes the behavior of partially describes the behavior of partially describes the behavior of partially describes the behavior of partially describes the behavior of partially describes the behavior of partially describes the behavior of 







computer programs which process them. XML is an application profile orcomputer programs which process them. XML is an application profile orcomputer programs which process them. XML is an application profile orcomputer programs which process them. XML is an application profile orcomputer programs which process them. XML is an application profile orcomputer programs which process them. XML is an application profile orcomputer programs which process them. XML is an application profile orcomputer programs which process them. XML is an application profile or







restricted form of SGML, the Standard Generalized Markup restricted form of SGML, the Standard Generalized Markup restricted form of SGML, the Standard Generalized Markup restricted form of SGML, the Standard Generalized Markup restricted form of SGML, the Standard Generalized Markup restricted form of SGML, the Standard Generalized Markup restricted form of SGML, the Standard Generalized Markup restricted form of SGML, the Standard Generalized Markup 







Language Language Language Language Language Language Language Language <bibref ref='ISO8879'></bibref>........







By construction, XML documents By construction, XML documents By construction, XML documents By construction, XML documents By construction, XML documents By construction, XML documents By construction, XML documents By construction, XML documents 







are conforming SGML documents.are conforming SGML documents.are conforming SGML documents.are conforming SGML documents.are conforming SGML documents.are conforming SGML documents.are conforming SGML documents.are conforming SGML documents.







</p>







<p>XML documents are made up of storage units called XML documents are made up of storage units called XML documents are made up of storage units called XML documents are made up of storage units called XML documents are made up of storage units called XML documents are made up of storage units called XML documents are made up of storage units called XML documents are made up of storage units called <termref def='dt-entity'>entitiesentitiesentitiesentitiesentitiesentitiesentitiesentities</termref>, which contain either parsed, which contain either parsed, which contain either parsed, which contain either parsed, which contain either parsed, which contain either parsed, which contain either parsed, which contain either parsed







or unparsed data.or unparsed data.or unparsed data.or unparsed data.or unparsed data.or unparsed data.or unparsed data.or unparsed data.







Parsed data is made up of Parsed data is made up of Parsed data is made up of Parsed data is made up of Parsed data is made up of Parsed data is made up of Parsed data is made up of Parsed data is made up of <termref def='dt-character'>characterscharacterscharacterscharacterscharacterscharacterscharacterscharacters</termref>,,,,,,,,







some some some some some some some some 







of which form of which form of which form of which form of which form of which form of which form of which form <termref def='dt-chardata'>character datacharacter datacharacter datacharacter datacharacter datacharacter datacharacter datacharacter data</termref>, , , , , , , , 







and some of which form and some of which form and some of which form and some of which form and some of which form and some of which form and some of which form and some of which form <termref def='dt-markup'>markupmarkupmarkupmarkupmarkupmarkupmarkupmarkup</termref>........







Markup encodes a description of the document's storage layout andMarkup encodes a description of the document's storage layout andMarkup encodes a description of the document's storage layout andMarkup encodes a description of the document's storage layout andMarkup encodes a description of the document's storage layout andMarkup encodes a description of the document's storage layout andMarkup encodes a description of the document's storage layout andMarkup encodes a description of the document's storage layout and







logical structure. XML provides a mechanism to impose constraints onlogical structure. XML provides a mechanism to impose constraints onlogical structure. XML provides a mechanism to impose constraints onlogical structure. XML provides a mechanism to impose constraints onlogical structure. XML provides a mechanism to impose constraints onlogical structure. XML provides a mechanism to impose constraints onlogical structure. XML provides a mechanism to impose constraints onlogical structure. XML provides a mechanism to impose constraints on







the storage layout and logical structure.the storage layout and logical structure.the storage layout and logical structure.the storage layout and logical structure.the storage layout and logical structure.the storage layout and logical structure.the storage layout and logical structure.the storage layout and logical structure.</p>







<p><termdef id='dt-xml-proc' term='XML Processor'>A software moduleA software moduleA software moduleA software moduleA software moduleA software moduleA software moduleA software module







called an called an called an called an called an called an called an called an <term>XML processorXML processorXML processorXML processorXML processorXML processorXML processorXML processor</term> is used to read XML documents is used to read XML documents is used to read XML documents is used to read XML documents is used to read XML documents is used to read XML documents is used to read XML documents is used to read XML documents







and provide access to their content and structure.and provide access to their content and structure.and provide access to their content and structure.and provide access to their content and structure.and provide access to their content and structure.and provide access to their content and structure.and provide access to their content and structure.and provide access to their content and structure.</termdef>        <termdef id='dt-app' term='Application'>It is assumed that an XML processor isIt is assumed that an XML processor isIt is assumed that an XML processor isIt is assumed that an XML processor isIt is assumed that an XML processor isIt is assumed that an XML processor isIt is assumed that an XML processor isIt is assumed that an XML processor is







doing its work on behalf of another module, called thedoing its work on behalf of another module, called thedoing its work on behalf of another module, called thedoing its work on behalf of another module, called thedoing its work on behalf of another module, called thedoing its work on behalf of another module, called thedoing its work on behalf of another module, called thedoing its work on behalf of another module, called the







<term>applicationapplicationapplicationapplicationapplicationapplicationapplicationapplication</term>........</termdef> This specification describes the This specification describes the This specification describes the This specification describes the This specification describes the This specification describes the This specification describes the This specification describes the







required behavior of an XML processor in terms of how it must read XMLrequired behavior of an XML processor in terms of how it must read XMLrequired behavior of an XML processor in terms of how it must read XMLrequired behavior of an XML processor in terms of how it must read XMLrequired behavior of an XML processor in terms of how it must read XMLrequired behavior of an XML processor in terms of how it must read XMLrequired behavior of an XML processor in terms of how it must read XMLrequired behavior of an XML processor in terms of how it must read XML







data and the information it must provide to the application.data and the information it must provide to the application.data and the information it must provide to the application.data and the information it must provide to the application.data and the information it must provide to the application.data and the information it must provide to the application.data and the information it must provide to the application.data and the information it must provide to the application.</p>







        







<div2 id='sec-origin-goals'>







<head>Origin and GoalsOrigin and GoalsOrigin and GoalsOrigin and GoalsOrigin and GoalsOrigin and GoalsOrigin and GoalsOrigin and Goals</head>







<p>XML was developed by an XML Working Group (originally known as theXML was developed by an XML Working Group (originally known as theXML was developed by an XML Working Group (originally known as theXML was developed by an XML Working Group (originally known as theXML was developed by an XML Working Group (originally known as theXML was developed by an XML Working Group (originally known as theXML was developed by an XML Working Group (originally known as theXML was developed by an XML Working Group (originally known as the







SGML Editorial Review Board) formed under the auspices of the WorldSGML Editorial Review Board) formed under the auspices of the WorldSGML Editorial Review Board) formed under the auspices of the WorldSGML Editorial Review Board) formed under the auspices of the WorldSGML Editorial Review Board) formed under the auspices of the WorldSGML Editorial Review Board) formed under the auspices of the WorldSGML Editorial Review Board) formed under the auspices of the WorldSGML Editorial Review Board) formed under the auspices of the World







Wide Web Consortium (W3C) in 1996.Wide Web Consortium (W3C) in 1996.Wide Web Consortium (W3C) in 1996.Wide Web Consortium (W3C) in 1996.Wide Web Consortium (W3C) in 1996.Wide Web Consortium (W3C) in 1996.Wide Web Consortium (W3C) in 1996.Wide Web Consortium (W3C) in 1996.







It was chaired by Jon Bosak of SunIt was chaired by Jon Bosak of SunIt was chaired by Jon Bosak of SunIt was chaired by Jon Bosak of SunIt was chaired by Jon Bosak of SunIt was chaired by Jon Bosak of SunIt was chaired by Jon Bosak of SunIt was chaired by Jon Bosak of Sun







Microsystems with the active participation of an XML SpecialMicrosystems with the active participation of an XML SpecialMicrosystems with the active participation of an XML SpecialMicrosystems with the active participation of an XML SpecialMicrosystems with the active participation of an XML SpecialMicrosystems with the active participation of an XML SpecialMicrosystems with the active participation of an XML SpecialMicrosystems with the active participation of an XML Special







Interest Group (previously known as the SGML Working Group) alsoInterest Group (previously known as the SGML Working Group) alsoInterest Group (previously known as the SGML Working Group) alsoInterest Group (previously known as the SGML Working Group) alsoInterest Group (previously known as the SGML Working Group) alsoInterest Group (previously known as the SGML Working Group) alsoInterest Group (previously known as the SGML Working Group) alsoInterest Group (previously known as the SGML Working Group) also







organized by the W3C. The membership of the XML Working Group is givenorganized by the W3C. The membership of the XML Working Group is givenorganized by the W3C. The membership of the XML Working Group is givenorganized by the W3C. The membership of the XML Working Group is givenorganized by the W3C. The membership of the XML Working Group is givenorganized by the W3C. The membership of the XML Working Group is givenorganized by the W3C. The membership of the XML Working Group is givenorganized by the W3C. The membership of the XML Working Group is given







in an appendix. Dan Connolly served as the WG's contact with the W3C.in an appendix. Dan Connolly served as the WG's contact with the W3C.in an appendix. Dan Connolly served as the WG's contact with the W3C.in an appendix. Dan Connolly served as the WG's contact with the W3C.in an appendix. Dan Connolly served as the WG's contact with the W3C.in an appendix. Dan Connolly served as the WG's contact with the W3C.in an appendix. Dan Connolly served as the WG's contact with the W3C.in an appendix. Dan Connolly served as the WG's contact with the W3C.







</p>







<p>The design goals for XML are:The design goals for XML are:The design goals for XML are:The design goals for XML are:The design goals for XML are:The design goals for XML are:The design goals for XML are:The design goals for XML are:<olist>







<item><p>XML shall be straightforwardly usable over theXML shall be straightforwardly usable over theXML shall be straightforwardly usable over theXML shall be straightforwardly usable over theXML shall be straightforwardly usable over theXML shall be straightforwardly usable over theXML shall be straightforwardly usable over theXML shall be straightforwardly usable over the







Internet.Internet.Internet.Internet.Internet.Internet.Internet.Internet.</p></item>







<item><p>XML shall support a wide variety of applications.XML shall support a wide variety of applications.XML shall support a wide variety of applications.XML shall support a wide variety of applications.XML shall support a wide variety of applications.XML shall support a wide variety of applications.XML shall support a wide variety of applications.XML shall support a wide variety of applications.</p></item>







<item><p>XML shall be compatible with SGML.XML shall be compatible with SGML.XML shall be compatible with SGML.XML shall be compatible with SGML.XML shall be compatible with SGML.XML shall be compatible with SGML.XML shall be compatible with SGML.XML shall be compatible with SGML.</p></item>







<item><p>It shall be easy to write programs which process XMLIt shall be easy to write programs which process XMLIt shall be easy to write programs which process XMLIt shall be easy to write programs which process XMLIt shall be easy to write programs which process XMLIt shall be easy to write programs which process XMLIt shall be easy to write programs which process XMLIt shall be easy to write programs which process XML







documents.documents.documents.documents.documents.documents.documents.documents.</p></item>







<item><p>The number of optional features in XML is to be kept to theThe number of optional features in XML is to be kept to theThe number of optional features in XML is to be kept to theThe number of optional features in XML is to be kept to theThe number of optional features in XML is to be kept to theThe number of optional features in XML is to be kept to theThe number of optional features in XML is to be kept to theThe number of optional features in XML is to be kept to the







absolute minimum, ideally zero.absolute minimum, ideally zero.absolute minimum, ideally zero.absolute minimum, ideally zero.absolute minimum, ideally zero.absolute minimum, ideally zero.absolute minimum, ideally zero.absolute minimum, ideally zero.</p></item>







<item><p>XML documents should be human-legible and reasonablyXML documents should be human-legible and reasonablyXML documents should be human-legible and reasonablyXML documents should be human-legible and reasonablyXML documents should be human-legible and reasonablyXML documents should be human-legible and reasonablyXML documents should be human-legible and reasonablyXML documents should be human-legible and reasonably







clear.clear.clear.clear.clear.clear.clear.clear.</p></item>







<item><p>The XML design should be prepared quickly.The XML design should be prepared quickly.The XML design should be prepared quickly.The XML design should be prepared quickly.The XML design should be prepared quickly.The XML design should be prepared quickly.The XML design should be prepared quickly.The XML design should be prepared quickly.</p></item>







<item><p>The design of XML shall be formal and concise.The design of XML shall be formal and concise.The design of XML shall be formal and concise.The design of XML shall be formal and concise.The design of XML shall be formal and concise.The design of XML shall be formal and concise.The design of XML shall be formal and concise.The design of XML shall be formal and concise.</p></item>







<item><p>XML documents shall be easy to create.XML documents shall be easy to create.XML documents shall be easy to create.XML documents shall be easy to create.XML documents shall be easy to create.XML documents shall be easy to create.XML documents shall be easy to create.XML documents shall be easy to create.</p></item>







<item><p>Terseness in XML markup is of minimal importance.Terseness in XML markup is of minimal importance.Terseness in XML markup is of minimal importance.Terseness in XML markup is of minimal importance.Terseness in XML markup is of minimal importance.Terseness in XML markup is of minimal importance.Terseness in XML markup is of minimal importance.Terseness in XML markup is of minimal importance.</p></item></olist>







</p>







<p>This specification, This specification, This specification, This specification, This specification, This specification, This specification, This specification, 







together with associated standardstogether with associated standardstogether with associated standardstogether with associated standardstogether with associated standardstogether with associated standardstogether with associated standardstogether with associated standards







(Unicode and ISO/IEC 10646 for characters,(Unicode and ISO/IEC 10646 for characters,(Unicode and ISO/IEC 10646 for characters,(Unicode and ISO/IEC 10646 for characters,(Unicode and ISO/IEC 10646 for characters,(Unicode and ISO/IEC 10646 for characters,(Unicode and ISO/IEC 10646 for characters,(Unicode and ISO/IEC 10646 for characters,







Internet RFC 1766 for language identification tags, Internet RFC 1766 for language identification tags, Internet RFC 1766 for language identification tags, Internet RFC 1766 for language identification tags, Internet RFC 1766 for language identification tags, Internet RFC 1766 for language identification tags, Internet RFC 1766 for language identification tags, Internet RFC 1766 for language identification tags, 







ISO 639 for language name codes, and ISO 639 for language name codes, and ISO 639 for language name codes, and ISO 639 for language name codes, and ISO 639 for language name codes, and ISO 639 for language name codes, and ISO 639 for language name codes, and ISO 639 for language name codes, and 







ISO 3166 for country name codes),ISO 3166 for country name codes),ISO 3166 for country name codes),ISO 3166 for country name codes),ISO 3166 for country name codes),ISO 3166 for country name codes),ISO 3166 for country name codes),ISO 3166 for country name codes),







provides all the information necessary to understand provides all the information necessary to understand provides all the information necessary to understand provides all the information necessary to understand provides all the information necessary to understand provides all the information necessary to understand provides all the information necessary to understand provides all the information necessary to understand 







XML Version XML Version XML Version XML Version XML Version XML Version XML Version XML Version 1.01.01.01.01.01.01.01.0







and construct computer programs to process it.and construct computer programs to process it.and construct computer programs to process it.and construct computer programs to process it.and construct computer programs to process it.and construct computer programs to process it.and construct computer programs to process it.and construct computer programs to process it.</p>







<p>This version of the XML specificationThis version of the XML specificationThis version of the XML specificationThis version of the XML specificationThis version of the XML specificationThis version of the XML specificationThis version of the XML specificationThis version of the XML specification







<!-- is for &doc.audience;.-->







may be distributed freely, as long asmay be distributed freely, as long asmay be distributed freely, as long asmay be distributed freely, as long asmay be distributed freely, as long asmay be distributed freely, as long asmay be distributed freely, as long asmay be distributed freely, as long as







all text and legal notices remain intactall text and legal notices remain intactall text and legal notices remain intactall text and legal notices remain intactall text and legal notices remain intactall text and legal notices remain intactall text and legal notices remain intactall text and legal notices remain intact........</p>















</div2>







        























        







<div2 id='sec-terminology'>







<head>TerminologyTerminologyTerminologyTerminologyTerminologyTerminologyTerminologyTerminology</head>







        







<p>The terminology used to describe XML documents is defined in the body ofThe terminology used to describe XML documents is defined in the body ofThe terminology used to describe XML documents is defined in the body ofThe terminology used to describe XML documents is defined in the body ofThe terminology used to describe XML documents is defined in the body ofThe terminology used to describe XML documents is defined in the body ofThe terminology used to describe XML documents is defined in the body ofThe terminology used to describe XML documents is defined in the body of







this specification.this specification.this specification.this specification.this specification.this specification.this specification.this specification.







The terms defined in the following list are used in building thoseThe terms defined in the following list are used in building thoseThe terms defined in the following list are used in building thoseThe terms defined in the following list are used in building thoseThe terms defined in the following list are used in building thoseThe terms defined in the following list are used in building thoseThe terms defined in the following list are used in building thoseThe terms defined in the following list are used in building those







definitions and in describing the actions of an XML processor:definitions and in describing the actions of an XML processor:definitions and in describing the actions of an XML processor:definitions and in describing the actions of an XML processor:definitions and in describing the actions of an XML processor:definitions and in describing the actions of an XML processor:definitions and in describing the actions of an XML processor:definitions and in describing the actions of an XML processor:







<glist>







<gitem>







<label>maymaymaymaymaymaymaymay</label>







<def><p><termdef id='dt-may' term='May'>Conforming documents and XMLConforming documents and XMLConforming documents and XMLConforming documents and XMLConforming documents and XMLConforming documents and XMLConforming documents and XMLConforming documents and XML







processors are permitted to but need not behave asprocessors are permitted to but need not behave asprocessors are permitted to but need not behave asprocessors are permitted to but need not behave asprocessors are permitted to but need not behave asprocessors are permitted to but need not behave asprocessors are permitted to but need not behave asprocessors are permitted to but need not behave as







described.described.described.described.described.described.described.described.</termdef></p></def>







</gitem>







<gitem>







<label>mustmustmustmustmustmustmustmust</label>







<def><p>Conforming documents and XML processors Conforming documents and XML processors Conforming documents and XML processors Conforming documents and XML processors Conforming documents and XML processors Conforming documents and XML processors Conforming documents and XML processors Conforming documents and XML processors 







are required to behave as described; otherwise they are in error.are required to behave as described; otherwise they are in error.are required to behave as described; otherwise they are in error.are required to behave as described; otherwise they are in error.are required to behave as described; otherwise they are in error.are required to behave as described; otherwise they are in error.are required to behave as described; otherwise they are in error.are required to behave as described; otherwise they are in error.







<!-- do NOT change this! this is what defines a violation of
a 'must' clause as 'an error'. -MSM -->







</p></def>







</gitem>







<gitem>







<label>errorerrorerrorerrorerrorerrorerrorerror</label>







<def><p><termdef id='dt-error' term='Error'>A violation of the rules of thisA violation of the rules of thisA violation of the rules of thisA violation of the rules of thisA violation of the rules of thisA violation of the rules of thisA violation of the rules of thisA violation of the rules of this







specification; results arespecification; results arespecification; results arespecification; results arespecification; results arespecification; results arespecification; results arespecification; results are







undefined.  Conforming software may detect and report an error and mayundefined.  Conforming software may detect and report an error and mayundefined.  Conforming software may detect and report an error and mayundefined.  Conforming software may detect and report an error and mayundefined.  Conforming software may detect and report an error and mayundefined.  Conforming software may detect and report an error and mayundefined.  Conforming software may detect and report an error and mayundefined.  Conforming software may detect and report an error and may







recover from it.recover from it.recover from it.recover from it.recover from it.recover from it.recover from it.recover from it.</termdef></p></def>







</gitem>







<gitem>







<label>fatal errorfatal errorfatal errorfatal errorfatal errorfatal errorfatal errorfatal error</label>







<def><p><termdef id='dt-fatal' term='Fatal Error'>An errorAn errorAn errorAn errorAn errorAn errorAn errorAn error







which a conforming which a conforming which a conforming which a conforming which a conforming which a conforming which a conforming which a conforming <termref def='dt-xml-proc'>XML processorXML processorXML processorXML processorXML processorXML processorXML processorXML processor</termref>







must detect and report to the application.must detect and report to the application.must detect and report to the application.must detect and report to the application.must detect and report to the application.must detect and report to the application.must detect and report to the application.must detect and report to the application.







After encountering a fatal error, theAfter encountering a fatal error, theAfter encountering a fatal error, theAfter encountering a fatal error, theAfter encountering a fatal error, theAfter encountering a fatal error, theAfter encountering a fatal error, theAfter encountering a fatal error, the







processor may continueprocessor may continueprocessor may continueprocessor may continueprocessor may continueprocessor may continueprocessor may continueprocessor may continue







processing the data to search for further errors and may report suchprocessing the data to search for further errors and may report suchprocessing the data to search for further errors and may report suchprocessing the data to search for further errors and may report suchprocessing the data to search for further errors and may report suchprocessing the data to search for further errors and may report suchprocessing the data to search for further errors and may report suchprocessing the data to search for further errors and may report such







errors to the application.  In order to support correction of errors,errors to the application.  In order to support correction of errors,errors to the application.  In order to support correction of errors,errors to the application.  In order to support correction of errors,errors to the application.  In order to support correction of errors,errors to the application.  In order to support correction of errors,errors to the application.  In order to support correction of errors,errors to the application.  In order to support correction of errors,







the processor may make unprocessed data from the document (withthe processor may make unprocessed data from the document (withthe processor may make unprocessed data from the document (withthe processor may make unprocessed data from the document (withthe processor may make unprocessed data from the document (withthe processor may make unprocessed data from the document (withthe processor may make unprocessed data from the document (withthe processor may make unprocessed data from the document (with







intermingled character data and markup) available to the application.intermingled character data and markup) available to the application.intermingled character data and markup) available to the application.intermingled character data and markup) available to the application.intermingled character data and markup) available to the application.intermingled character data and markup) available to the application.intermingled character data and markup) available to the application.intermingled character data and markup) available to the application.







Once a fatal error is detected, however, the processor must notOnce a fatal error is detected, however, the processor must notOnce a fatal error is detected, however, the processor must notOnce a fatal error is detected, however, the processor must notOnce a fatal error is detected, however, the processor must notOnce a fatal error is detected, however, the processor must notOnce a fatal error is detected, however, the processor must notOnce a fatal error is detected, however, the processor must not







continue normal processing (i.e., it must notcontinue normal processing (i.e., it must notcontinue normal processing (i.e., it must notcontinue normal processing (i.e., it must notcontinue normal processing (i.e., it must notcontinue normal processing (i.e., it must notcontinue normal processing (i.e., it must notcontinue normal processing (i.e., it must not







continue to pass character data and information about the document'scontinue to pass character data and information about the document'scontinue to pass character data and information about the document'scontinue to pass character data and information about the document'scontinue to pass character data and information about the document'scontinue to pass character data and information about the document'scontinue to pass character data and information about the document'scontinue to pass character data and information about the document's







logical structure to the application in the normal way).logical structure to the application in the normal way).logical structure to the application in the normal way).logical structure to the application in the normal way).logical structure to the application in the normal way).logical structure to the application in the normal way).logical structure to the application in the normal way).logical structure to the application in the normal way).







</termdef></p></def>







</gitem>







<gitem>







<label>at user optionat user optionat user optionat user optionat user optionat user optionat user optionat user option</label>







<def><p>Conforming software may or must (depending on the modal verb in theConforming software may or must (depending on the modal verb in theConforming software may or must (depending on the modal verb in theConforming software may or must (depending on the modal verb in theConforming software may or must (depending on the modal verb in theConforming software may or must (depending on the modal verb in theConforming software may or must (depending on the modal verb in theConforming software may or must (depending on the modal verb in the







sentence) behave as described; if it does, it mustsentence) behave as described; if it does, it mustsentence) behave as described; if it does, it mustsentence) behave as described; if it does, it mustsentence) behave as described; if it does, it mustsentence) behave as described; if it does, it mustsentence) behave as described; if it does, it mustsentence) behave as described; if it does, it must







provide users a means to enable or disable the behaviorprovide users a means to enable or disable the behaviorprovide users a means to enable or disable the behaviorprovide users a means to enable or disable the behaviorprovide users a means to enable or disable the behaviorprovide users a means to enable or disable the behaviorprovide users a means to enable or disable the behaviorprovide users a means to enable or disable the behavior







described.described.described.described.described.described.described.described.</p></def>







</gitem>







<gitem>







<label>validity constraintvalidity constraintvalidity constraintvalidity constraintvalidity constraintvalidity constraintvalidity constraintvalidity constraint</label>







<def><p>A rule which applies to all A rule which applies to all A rule which applies to all A rule which applies to all A rule which applies to all A rule which applies to all A rule which applies to all A rule which applies to all 







<termref def='dt-valid'>validvalidvalidvalidvalidvalidvalidvalid</termref> XML documents. XML documents. XML documents. XML documents. XML documents. XML documents. XML documents. XML documents.







Violations of validity constraints are errors; they must, at user option, Violations of validity constraints are errors; they must, at user option, Violations of validity constraints are errors; they must, at user option, Violations of validity constraints are errors; they must, at user option, Violations of validity constraints are errors; they must, at user option, Violations of validity constraints are errors; they must, at user option, Violations of validity constraints are errors; they must, at user option, Violations of validity constraints are errors; they must, at user option, 







be reported by be reported by be reported by be reported by be reported by be reported by be reported by be reported by 







<termref def='dt-validating'>validating XML processorsvalidating XML processorsvalidating XML processorsvalidating XML processorsvalidating XML processorsvalidating XML processorsvalidating XML processorsvalidating XML processors</termref>........</p></def>







</gitem>







<gitem>







<label>well-formedness constraintwell-formedness constraintwell-formedness constraintwell-formedness constraintwell-formedness constraintwell-formedness constraintwell-formedness constraintwell-formedness constraint</label>







<def><p>A rule which applies to all A rule which applies to all A rule which applies to all A rule which applies to all A rule which applies to all A rule which applies to all A rule which applies to all A rule which applies to all <termref def='dt-wellformed'>well-formedwell-formedwell-formedwell-formedwell-formedwell-formedwell-formedwell-formed</termref> XML documents. XML documents. XML documents. XML documents. XML documents. XML documents. XML documents. XML documents.







Violations of well-formedness constraints are Violations of well-formedness constraints are Violations of well-formedness constraints are Violations of well-formedness constraints are Violations of well-formedness constraints are Violations of well-formedness constraints are Violations of well-formedness constraints are Violations of well-formedness constraints are 







<termref def='dt-fatal'>fatal errorsfatal errorsfatal errorsfatal errorsfatal errorsfatal errorsfatal errorsfatal errors</termref>........</p></def>







</gitem>















<gitem>







<label>matchmatchmatchmatchmatchmatchmatchmatch</label>







<def><p><termdef id='dt-match' term='match'>(Of strings or names:) (Of strings or names:) (Of strings or names:) (Of strings or names:) (Of strings or names:) (Of strings or names:) (Of strings or names:) (Of strings or names:) 







Two strings or names being compared must be identical.Two strings or names being compared must be identical.Two strings or names being compared must be identical.Two strings or names being compared must be identical.Two strings or names being compared must be identical.Two strings or names being compared must be identical.Two strings or names being compared must be identical.Two strings or names being compared must be identical.







Characters with multiple possible representations in ISO/IEC 10646 (e.g.Characters with multiple possible representations in ISO/IEC 10646 (e.g.Characters with multiple possible representations in ISO/IEC 10646 (e.g.Characters with multiple possible representations in ISO/IEC 10646 (e.g.Characters with multiple possible representations in ISO/IEC 10646 (e.g.Characters with multiple possible representations in ISO/IEC 10646 (e.g.Characters with multiple possible representations in ISO/IEC 10646 (e.g.Characters with multiple possible representations in ISO/IEC 10646 (e.g.







characters with characters with characters with characters with characters with characters with characters with characters with 







both precomposed and base+diacritic forms) match only if they have theboth precomposed and base+diacritic forms) match only if they have theboth precomposed and base+diacritic forms) match only if they have theboth precomposed and base+diacritic forms) match only if they have theboth precomposed and base+diacritic forms) match only if they have theboth precomposed and base+diacritic forms) match only if they have theboth precomposed and base+diacritic forms) match only if they have theboth precomposed and base+diacritic forms) match only if they have the







same representation in both strings.same representation in both strings.same representation in both strings.same representation in both strings.same representation in both strings.same representation in both strings.same representation in both strings.same representation in both strings.







At user option, processors may normalize such characters toAt user option, processors may normalize such characters toAt user option, processors may normalize such characters toAt user option, processors may normalize such characters toAt user option, processors may normalize such characters toAt user option, processors may normalize such characters toAt user option, processors may normalize such characters toAt user option, processors may normalize such characters to







some canonical form.some canonical form.some canonical form.some canonical form.some canonical form.some canonical form.some canonical form.some canonical form.







No case folding is performed. No case folding is performed. No case folding is performed. No case folding is performed. No case folding is performed. No case folding is performed. No case folding is performed. No case folding is performed. 







(Of strings and rules in the grammar:)  (Of strings and rules in the grammar:)  (Of strings and rules in the grammar:)  (Of strings and rules in the grammar:)  (Of strings and rules in the grammar:)  (Of strings and rules in the grammar:)  (Of strings and rules in the grammar:)  (Of strings and rules in the grammar:)  







A string matches a grammatical production if it belongs to theA string matches a grammatical production if it belongs to theA string matches a grammatical production if it belongs to theA string matches a grammatical production if it belongs to theA string matches a grammatical production if it belongs to theA string matches a grammatical production if it belongs to theA string matches a grammatical production if it belongs to theA string matches a grammatical production if it belongs to the







language generated by that production.language generated by that production.language generated by that production.language generated by that production.language generated by that production.language generated by that production.language generated by that production.language generated by that production.







(Of content and content models:)(Of content and content models:)(Of content and content models:)(Of content and content models:)(Of content and content models:)(Of content and content models:)(Of content and content models:)(Of content and content models:)







An element matches its declaration when it conformsAn element matches its declaration when it conformsAn element matches its declaration when it conformsAn element matches its declaration when it conformsAn element matches its declaration when it conformsAn element matches its declaration when it conformsAn element matches its declaration when it conformsAn element matches its declaration when it conforms







in the fashion described in the constraintin the fashion described in the constraintin the fashion described in the constraintin the fashion described in the constraintin the fashion described in the constraintin the fashion described in the constraintin the fashion described in the constraintin the fashion described in the constraint







<specref ref='elementvalid'></specref>........







</termdef>







</p></def>







</gitem>







<gitem>







<label>for compatibilityfor compatibilityfor compatibilityfor compatibilityfor compatibilityfor compatibilityfor compatibilityfor compatibility</label>







<def><p><termdef id='dt-compat' term='For Compatibility'>A feature ofA feature ofA feature ofA feature ofA feature ofA feature ofA feature ofA feature of







XML included solely to ensure that XML remains compatible with SGML.XML included solely to ensure that XML remains compatible with SGML.XML included solely to ensure that XML remains compatible with SGML.XML included solely to ensure that XML remains compatible with SGML.XML included solely to ensure that XML remains compatible with SGML.XML included solely to ensure that XML remains compatible with SGML.XML included solely to ensure that XML remains compatible with SGML.XML included solely to ensure that XML remains compatible with SGML.







</termdef></p></def>







</gitem>







<gitem>







<label>for interoperabilityfor interoperabilityfor interoperabilityfor interoperabilityfor interoperabilityfor interoperabilityfor interoperabilityfor interoperability</label>







<def><p><termdef id='dt-interop' term='For interoperability'>AAAAAAAA







non-binding recommendation included to increase the chances that XMLnon-binding recommendation included to increase the chances that XMLnon-binding recommendation included to increase the chances that XMLnon-binding recommendation included to increase the chances that XMLnon-binding recommendation included to increase the chances that XMLnon-binding recommendation included to increase the chances that XMLnon-binding recommendation included to increase the chances that XMLnon-binding recommendation included to increase the chances that XML







documents can be processed by the existing installed base of SGMLdocuments can be processed by the existing installed base of SGMLdocuments can be processed by the existing installed base of SGMLdocuments can be processed by the existing installed base of SGMLdocuments can be processed by the existing installed base of SGMLdocuments can be processed by the existing installed base of SGMLdocuments can be processed by the existing installed base of SGMLdocuments can be processed by the existing installed base of SGML







processors which predate theprocessors which predate theprocessors which predate theprocessors which predate theprocessors which predate theprocessors which predate theprocessors which predate theprocessors which predate the







WebSGML Adaptations Annex to ISO 8879WebSGML Adaptations Annex to ISO 8879WebSGML Adaptations Annex to ISO 8879WebSGML Adaptations Annex to ISO 8879WebSGML Adaptations Annex to ISO 8879WebSGML Adaptations Annex to ISO 8879WebSGML Adaptations Annex to ISO 8879WebSGML Adaptations Annex to ISO 8879........</termdef></p></def>







</gitem>







</glist>







</p>







</div2>















        







</div1>







<!-- &Docs; -->







        







<div1 id='sec-documents'>







<head>DocumentsDocumentsDocumentsDocumentsDocumentsDocumentsDocumentsDocuments</head>







        







<p><termdef id='dt-xml-doc' term='XML Document'>







A data object is anA data object is anA data object is anA data object is anA data object is anA data object is anA data object is anA data object is an







<term>XML documentXML documentXML documentXML documentXML documentXML documentXML documentXML document</term> if it is if it is if it is if it is if it is if it is if it is if it is







<termref def='dt-wellformed'>well-formedwell-formedwell-formedwell-formedwell-formedwell-formedwell-formedwell-formed</termref>, as, as, as, as, as, as, as, as







defined in this specification.defined in this specification.defined in this specification.defined in this specification.defined in this specification.defined in this specification.defined in this specification.defined in this specification.







A well-formed XML document may in addition beA well-formed XML document may in addition beA well-formed XML document may in addition beA well-formed XML document may in addition beA well-formed XML document may in addition beA well-formed XML document may in addition beA well-formed XML document may in addition beA well-formed XML document may in addition be







<termref def='dt-valid'>validvalidvalidvalidvalidvalidvalidvalid</termref> if it meets certain further  if it meets certain further  if it meets certain further  if it meets certain further  if it meets certain further  if it meets certain further  if it meets certain further  if it meets certain further 







constraints.constraints.constraints.constraints.constraints.constraints.constraints.constraints.</termdef></p>







        







<p>Each XML document has both a logical and a physical structure.Each XML document has both a logical and a physical structure.Each XML document has both a logical and a physical structure.Each XML document has both a logical and a physical structure.Each XML document has both a logical and a physical structure.Each XML document has both a logical and a physical structure.Each XML document has both a logical and a physical structure.Each XML document has both a logical and a physical structure.







Physically, the document is composed of units called Physically, the document is composed of units called Physically, the document is composed of units called Physically, the document is composed of units called Physically, the document is composed of units called Physically, the document is composed of units called Physically, the document is composed of units called Physically, the document is composed of units called <termref def='dt-entity'>entitiesentitiesentitiesentitiesentitiesentitiesentitiesentities</termref>.  An entity may .  An entity may .  An entity may .  An entity may .  An entity may .  An entity may .  An entity may .  An entity may <termref def='dt-entref'>referreferreferreferreferreferreferrefer</termref> to other entities to cause their to other entities to cause their to other entities to cause their to other entities to cause their to other entities to cause their to other entities to cause their to other entities to cause their to other entities to cause their







inclusion in the document. A document begins in a "root"  or inclusion in the document. A document begins in a "root"  or inclusion in the document. A document begins in a "root"  or inclusion in the document. A document begins in a "root"  or inclusion in the document. A document begins in a "root"  or inclusion in the document. A document begins in a "root"  or inclusion in the document. A document begins in a "root"  or inclusion in the document. A document begins in a "root"  or <termref def='dt-docent'>document entitydocument entitydocument entitydocument entitydocument entitydocument entitydocument entitydocument entity</termref>........







Logically, the document is composed of declarations, elements, Logically, the document is composed of declarations, elements, Logically, the document is composed of declarations, elements, Logically, the document is composed of declarations, elements, Logically, the document is composed of declarations, elements, Logically, the document is composed of declarations, elements, Logically, the document is composed of declarations, elements, Logically, the document is composed of declarations, elements, 







comments,comments,comments,comments,comments,comments,comments,comments,







character references, andcharacter references, andcharacter references, andcharacter references, andcharacter references, andcharacter references, andcharacter references, andcharacter references, and







processingprocessingprocessingprocessingprocessingprocessingprocessingprocessing







instructions, all of which are indicated in the document by explicitinstructions, all of which are indicated in the document by explicitinstructions, all of which are indicated in the document by explicitinstructions, all of which are indicated in the document by explicitinstructions, all of which are indicated in the document by explicitinstructions, all of which are indicated in the document by explicitinstructions, all of which are indicated in the document by explicitinstructions, all of which are indicated in the document by explicit







markup.markup.markup.markup.markup.markup.markup.markup.







The logical and physical structures must nest properly, as described  The logical and physical structures must nest properly, as described  The logical and physical structures must nest properly, as described  The logical and physical structures must nest properly, as described  The logical and physical structures must nest properly, as described  The logical and physical structures must nest properly, as described  The logical and physical structures must nest properly, as described  The logical and physical structures must nest properly, as described  







in in in in in in in in <specref ref='wf-entities'></specref>........







</p>







        







<div2 id='sec-well-formed'>







<head>Well-Formed XML DocumentsWell-Formed XML DocumentsWell-Formed XML DocumentsWell-Formed XML DocumentsWell-Formed XML DocumentsWell-Formed XML DocumentsWell-Formed XML DocumentsWell-Formed XML Documents</head>







        







<p><termdef id='dt-wellformed' term='Well-Formed'>







A textual object is A textual object is A textual object is A textual object is A textual object is A textual object is A textual object is A textual object is 







a well-formed XML document if:a well-formed XML document if:a well-formed XML document if:a well-formed XML document if:a well-formed XML document if:a well-formed XML document if:a well-formed XML document if:a well-formed XML document if:</termdef>







<olist>







<item><p>Taken as a whole, itTaken as a whole, itTaken as a whole, itTaken as a whole, itTaken as a whole, itTaken as a whole, itTaken as a whole, itTaken as a whole, it







matches the production labeled matches the production labeled matches the production labeled matches the production labeled matches the production labeled matches the production labeled matches the production labeled matches the production labeled <nt def='NT-document'>documentdocumentdocumentdocumentdocumentdocumentdocumentdocument</nt>........</p></item>







<item><p>ItItItItItItItIt







meets all the well-formedness constraints given in this specification.meets all the well-formedness constraints given in this specification.meets all the well-formedness constraints given in this specification.meets all the well-formedness constraints given in this specification.meets all the well-formedness constraints given in this specification.meets all the well-formedness constraints given in this specification.meets all the well-formedness constraints given in this specification.meets all the well-formedness constraints given in this specification.</p>







</item>







<item><p>Each of the Each of the Each of the Each of the Each of the Each of the Each of the Each of the <termref def='dt-parsedent'>parsed entitiesparsed entitiesparsed entitiesparsed entitiesparsed entitiesparsed entitiesparsed entitiesparsed entities</termref>        







which is referenced directly or indirectly within the document iswhich is referenced directly or indirectly within the document iswhich is referenced directly or indirectly within the document iswhich is referenced directly or indirectly within the document iswhich is referenced directly or indirectly within the document iswhich is referenced directly or indirectly within the document iswhich is referenced directly or indirectly within the document iswhich is referenced directly or indirectly within the document is







<titleref href='wf-entities'>well-formedwell-formedwell-formedwell-formedwell-formedwell-formedwell-formedwell-formed</titleref>........</p></item>







</olist></p>







<p>







<scrap lang='ebnf' id='document'>







<head>DocumentDocumentDocumentDocumentDocumentDocumentDocumentDocument</head>







<prod id='NT-document'><lhs>documentdocumentdocumentdocumentdocumentdocumentdocumentdocument</lhs>







<rhs><nt def='NT-prolog'>prologprologprologprologprologprologprologprolog</nt>        







<nt def='NT-element'>elementelementelementelementelementelementelementelement</nt>        







<nt def='NT-Misc'>MiscMiscMiscMiscMiscMiscMiscMisc</nt>********</rhs></prod>







</scrap>







</p>







<p>Matching the Matching the Matching the Matching the Matching the Matching the Matching the Matching the <nt def='NT-document'>documentdocumentdocumentdocumentdocumentdocumentdocumentdocument</nt> production  production  production  production  production  production  production  production 







implies that:implies that:implies that:implies that:implies that:implies that:implies that:implies that:







<olist>







<item><p>It contains one or moreIt contains one or moreIt contains one or moreIt contains one or moreIt contains one or moreIt contains one or moreIt contains one or moreIt contains one or more







<termref def='dt-element'>elementselementselementselementselementselementselementselements</termref>........</p>







</item>







<!--* N.B. some readers (notably JC) find the following
paragraph awkward and redundant.  I agree it's logically redundant:
it *says* it is summarizing the logical implications of
matching the grammar, and that means by definition it's
logically redundant.  I don't think it's rhetorically
redundant or unnecessary, though, so I'm keeping it.  It
could however use some recasting when the editors are feeling
stronger. -MSM *-->







<item><p><termdef id='dt-root' term='Root Element'>There is  exactlyThere is  exactlyThere is  exactlyThere is  exactlyThere is  exactlyThere is  exactlyThere is  exactlyThere is  exactly







one element, called the one element, called the one element, called the one element, called the one element, called the one element, called the one element, called the one element, called the <term>rootrootrootrootrootrootrootroot</term>, or document element,  no, or document element,  no, or document element,  no, or document element,  no, or document element,  no, or document element,  no, or document element,  no, or document element,  no







part of which appears in the part of which appears in the part of which appears in the part of which appears in the part of which appears in the part of which appears in the part of which appears in the part of which appears in the <termref def='dt-content'>contentcontentcontentcontentcontentcontentcontentcontent</termref> of any other element. of any other element. of any other element. of any other element. of any other element. of any other element. of any other element. of any other element.</termdef>







For all other elements, if the start-tag is in the content of anotherFor all other elements, if the start-tag is in the content of anotherFor all other elements, if the start-tag is in the content of anotherFor all other elements, if the start-tag is in the content of anotherFor all other elements, if the start-tag is in the content of anotherFor all other elements, if the start-tag is in the content of anotherFor all other elements, if the start-tag is in the content of anotherFor all other elements, if the start-tag is in the content of another







element, the end-tag is in the content of the same element.  Moreelement, the end-tag is in the content of the same element.  Moreelement, the end-tag is in the content of the same element.  Moreelement, the end-tag is in the content of the same element.  Moreelement, the end-tag is in the content of the same element.  Moreelement, the end-tag is in the content of the same element.  Moreelement, the end-tag is in the content of the same element.  Moreelement, the end-tag is in the content of the same element.  More







simply stated, the elements, delimited by start- and end-tags, nestsimply stated, the elements, delimited by start- and end-tags, nestsimply stated, the elements, delimited by start- and end-tags, nestsimply stated, the elements, delimited by start- and end-tags, nestsimply stated, the elements, delimited by start- and end-tags, nestsimply stated, the elements, delimited by start- and end-tags, nestsimply stated, the elements, delimited by start- and end-tags, nestsimply stated, the elements, delimited by start- and end-tags, nest







properly within each other.properly within each other.properly within each other.properly within each other.properly within each other.properly within each other.properly within each other.properly within each other.







</p></item>







</olist>







</p>







<p><termdef id='dt-parentchild' term='Parent/Child'>As a consequence As a consequence As a consequence As a consequence As a consequence As a consequence As a consequence As a consequence 







of this,of this,of this,of this,of this,of this,of this,of this,







for each non-root elementfor each non-root elementfor each non-root elementfor each non-root elementfor each non-root elementfor each non-root elementfor each non-root elementfor each non-root element







<code>CCCCCCCC</code> in the document, there is one other element  in the document, there is one other element  in the document, there is one other element  in the document, there is one other element  in the document, there is one other element  in the document, there is one other element  in the document, there is one other element  in the document, there is one other element <code>PPPPPPPP</code>







in the document such that in the document such that in the document such that in the document such that in the document such that in the document such that in the document such that in the document such that 







<code>CCCCCCCC</code> is in the content of  is in the content of  is in the content of  is in the content of  is in the content of  is in the content of  is in the content of  is in the content of <code>PPPPPPPP</code>, but is not in, but is not in, but is not in, but is not in, but is not in, but is not in, but is not in, but is not in







the content of any other element that is in the content ofthe content of any other element that is in the content ofthe content of any other element that is in the content ofthe content of any other element that is in the content ofthe content of any other element that is in the content ofthe content of any other element that is in the content ofthe content of any other element that is in the content ofthe content of any other element that is in the content of







<code>PPPPPPPP</code>.  .  .  .  .  .  .  .  







<code>PPPPPPPP</code> is referred to as the is referred to as the is referred to as the is referred to as the is referred to as the is referred to as the is referred to as the is referred to as the







<term>parentparentparentparentparentparentparentparent</term> of  of  of  of  of  of  of  of <code>CCCCCCCC</code>, and , and , and , and , and , and , and , and <code>CCCCCCCC</code> as a as a as a as a as a as a as a as a







<term>childchildchildchildchildchildchildchild</term> of  of  of  of  of  of  of  of <code>PPPPPPPP</code>........</termdef></p></div2>







        







<div2 id='charsets'>







<head>CharactersCharactersCharactersCharactersCharactersCharactersCharactersCharacters</head>







        







<p><termdef id='dt-text' term='Text'>A parsed entity containsA parsed entity containsA parsed entity containsA parsed entity containsA parsed entity containsA parsed entity containsA parsed entity containsA parsed entity contains







<term>texttexttexttexttexttexttexttext</term>, a sequence of , a sequence of , a sequence of , a sequence of , a sequence of , a sequence of , a sequence of , a sequence of 







<termref def='dt-character'>characterscharacterscharacterscharacterscharacterscharacterscharacterscharacters</termref>, , , , , , , , 







which may represent markup or character data.which may represent markup or character data.which may represent markup or character data.which may represent markup or character data.which may represent markup or character data.which may represent markup or character data.which may represent markup or character data.which may represent markup or character data.</termdef>        







<termdef id='dt-character' term='Character'>A A A A A A A A <term>charactercharactercharactercharactercharactercharactercharactercharacter</term>        







is an atomic unit of text as specified byis an atomic unit of text as specified byis an atomic unit of text as specified byis an atomic unit of text as specified byis an atomic unit of text as specified byis an atomic unit of text as specified byis an atomic unit of text as specified byis an atomic unit of text as specified by







ISO/IEC 10646 ISO/IEC 10646 ISO/IEC 10646 ISO/IEC 10646 ISO/IEC 10646 ISO/IEC 10646 ISO/IEC 10646 ISO/IEC 10646 <bibref ref='ISO10646'></bibref>........







Legal characters are tab, carriage return, line feed, and the legalLegal characters are tab, carriage return, line feed, and the legalLegal characters are tab, carriage return, line feed, and the legalLegal characters are tab, carriage return, line feed, and the legalLegal characters are tab, carriage return, line feed, and the legalLegal characters are tab, carriage return, line feed, and the legalLegal characters are tab, carriage return, line feed, and the legalLegal characters are tab, carriage return, line feed, and the legal







graphic characters of Unicode and ISO/IEC 10646.graphic characters of Unicode and ISO/IEC 10646.graphic characters of Unicode and ISO/IEC 10646.graphic characters of Unicode and ISO/IEC 10646.graphic characters of Unicode and ISO/IEC 10646.graphic characters of Unicode and ISO/IEC 10646.graphic characters of Unicode and ISO/IEC 10646.graphic characters of Unicode and ISO/IEC 10646.







The use of "compatibility characters", as defined in section 6.8The use of "compatibility characters", as defined in section 6.8The use of "compatibility characters", as defined in section 6.8The use of "compatibility characters", as defined in section 6.8The use of "compatibility characters", as defined in section 6.8The use of "compatibility characters", as defined in section 6.8The use of "compatibility characters", as defined in section 6.8The use of "compatibility characters", as defined in section 6.8







of of of of of of of of <bibref ref='Unicode'></bibref>, is discouraged., is discouraged., is discouraged., is discouraged., is discouraged., is discouraged., is discouraged., is discouraged.







</termdef>        







<scrap lang='ebnf' id='char32'>







<head>Character RangeCharacter RangeCharacter RangeCharacter RangeCharacter RangeCharacter RangeCharacter RangeCharacter Range</head>







<prodgroup pcw2='4' pcw4='17.5' pcw5='11'>







<prod id='NT-Char'><lhs>CharCharCharCharCharCharCharChar</lhs>        







<rhs>#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] 







| [#x10000-#x10FFFF]| [#x10000-#x10FFFF]| [#x10000-#x10FFFF]| [#x10000-#x10FFFF]| [#x10000-#x10FFFF]| [#x10000-#x10FFFF]| [#x10000-#x10FFFF]| [#x10000-#x10FFFF]</rhs>        







<com>any Unicode character, excluding theany Unicode character, excluding theany Unicode character, excluding theany Unicode character, excluding theany Unicode character, excluding theany Unicode character, excluding theany Unicode character, excluding theany Unicode character, excluding the







surrogate blocks, FFFE, and FFFF.surrogate blocks, FFFE, and FFFF.surrogate blocks, FFFE, and FFFF.surrogate blocks, FFFE, and FFFF.surrogate blocks, FFFE, and FFFF.surrogate blocks, FFFE, and FFFF.surrogate blocks, FFFE, and FFFF.surrogate blocks, FFFE, and FFFF.</com>        </prod>







</prodgroup>







</scrap>







</p>















<p>The mechanism for encoding character code points into bit patterns mayThe mechanism for encoding character code points into bit patterns mayThe mechanism for encoding character code points into bit patterns mayThe mechanism for encoding character code points into bit patterns mayThe mechanism for encoding character code points into bit patterns mayThe mechanism for encoding character code points into bit patterns mayThe mechanism for encoding character code points into bit patterns mayThe mechanism for encoding character code points into bit patterns may







vary from entity to entity. All XML processors must accept the UTF-8vary from entity to entity. All XML processors must accept the UTF-8vary from entity to entity. All XML processors must accept the UTF-8vary from entity to entity. All XML processors must accept the UTF-8vary from entity to entity. All XML processors must accept the UTF-8vary from entity to entity. All XML processors must accept the UTF-8vary from entity to entity. All XML processors must accept the UTF-8vary from entity to entity. All XML processors must accept the UTF-8







and UTF-16 encodings of 10646; the mechanisms for signaling which ofand UTF-16 encodings of 10646; the mechanisms for signaling which ofand UTF-16 encodings of 10646; the mechanisms for signaling which ofand UTF-16 encodings of 10646; the mechanisms for signaling which ofand UTF-16 encodings of 10646; the mechanisms for signaling which ofand UTF-16 encodings of 10646; the mechanisms for signaling which ofand UTF-16 encodings of 10646; the mechanisms for signaling which ofand UTF-16 encodings of 10646; the mechanisms for signaling which of







the two is in use, or for bringing other encodings into play, arethe two is in use, or for bringing other encodings into play, arethe two is in use, or for bringing other encodings into play, arethe two is in use, or for bringing other encodings into play, arethe two is in use, or for bringing other encodings into play, arethe two is in use, or for bringing other encodings into play, arethe two is in use, or for bringing other encodings into play, arethe two is in use, or for bringing other encodings into play, are







discussed later, in discussed later, in discussed later, in discussed later, in discussed later, in discussed later, in discussed later, in discussed later, in <specref ref='charencoding'></specref>........







</p>







<!--
<p>Regardless of the specific encoding used, any character in the ISO/IEC
10646 character set may be referred to by the decimal or hexadecimal
equivalent of its 
UCS-4 code value.
</p>-->







</div2>







        







<div2 id='sec-common-syn'>







<head>Common Syntactic ConstructsCommon Syntactic ConstructsCommon Syntactic ConstructsCommon Syntactic ConstructsCommon Syntactic ConstructsCommon Syntactic ConstructsCommon Syntactic ConstructsCommon Syntactic Constructs</head>







        







<p>This section defines some symbols used widely in the grammar.This section defines some symbols used widely in the grammar.This section defines some symbols used widely in the grammar.This section defines some symbols used widely in the grammar.This section defines some symbols used widely in the grammar.This section defines some symbols used widely in the grammar.This section defines some symbols used widely in the grammar.This section defines some symbols used widely in the grammar.</p>







<p><nt def='NT-S'>SSSSSSSS</nt> (white space) consists of one or more space (#x20) (white space) consists of one or more space (#x20) (white space) consists of one or more space (#x20) (white space) consists of one or more space (#x20) (white space) consists of one or more space (#x20) (white space) consists of one or more space (#x20) (white space) consists of one or more space (#x20) (white space) consists of one or more space (#x20)







characters, carriage returns, line feeds, or tabs.characters, carriage returns, line feeds, or tabs.characters, carriage returns, line feeds, or tabs.characters, carriage returns, line feeds, or tabs.characters, carriage returns, line feeds, or tabs.characters, carriage returns, line feeds, or tabs.characters, carriage returns, line feeds, or tabs.characters, carriage returns, line feeds, or tabs.















<scrap lang='ebnf' id='white'>







<head>White SpaceWhite SpaceWhite SpaceWhite SpaceWhite SpaceWhite SpaceWhite SpaceWhite Space</head>







<prodgroup pcw2='4' pcw4='17.5' pcw5='11'>







<prod id='NT-S'><lhs>SSSSSSSS</lhs>







<rhs>(#x20 | #x9 | #xD | #xA)+(#x20 | #x9 | #xD | #xA)+(#x20 | #x9 | #xD | #xA)+(#x20 | #x9 | #xD | #xA)+(#x20 | #x9 | #xD | #xA)+(#x20 | #x9 | #xD | #xA)+(#x20 | #x9 | #xD | #xA)+(#x20 | #x9 | #xD | #xA)+</rhs>







</prod>







</prodgroup>







</scrap></p>







<p>Characters are classified for convenience as letters, digits, or otherCharacters are classified for convenience as letters, digits, or otherCharacters are classified for convenience as letters, digits, or otherCharacters are classified for convenience as letters, digits, or otherCharacters are classified for convenience as letters, digits, or otherCharacters are classified for convenience as letters, digits, or otherCharacters are classified for convenience as letters, digits, or otherCharacters are classified for convenience as letters, digits, or other







characters.  Letters consist of an alphabetic or syllabic characters.  Letters consist of an alphabetic or syllabic characters.  Letters consist of an alphabetic or syllabic characters.  Letters consist of an alphabetic or syllabic characters.  Letters consist of an alphabetic or syllabic characters.  Letters consist of an alphabetic or syllabic characters.  Letters consist of an alphabetic or syllabic characters.  Letters consist of an alphabetic or syllabic 







base character possiblybase character possiblybase character possiblybase character possiblybase character possiblybase character possiblybase character possiblybase character possibly







followed by one or more combining characters, or of an ideographicfollowed by one or more combining characters, or of an ideographicfollowed by one or more combining characters, or of an ideographicfollowed by one or more combining characters, or of an ideographicfollowed by one or more combining characters, or of an ideographicfollowed by one or more combining characters, or of an ideographicfollowed by one or more combining characters, or of an ideographicfollowed by one or more combining characters, or of an ideographic







character.  character.  character.  character.  character.  character.  character.  character.  







Full definitions of the specific characters in each classFull definitions of the specific characters in each classFull definitions of the specific characters in each classFull definitions of the specific characters in each classFull definitions of the specific characters in each classFull definitions of the specific characters in each classFull definitions of the specific characters in each classFull definitions of the specific characters in each class







are given in are given in are given in are given in are given in are given in are given in are given in <specref ref='CharClasses'></specref>........</p>







<p><termdef id='dt-name' term='Name'>A A A A A A A A <term>NameNameNameNameNameNameNameName</term> is a token is a token is a token is a token is a token is a token is a token is a token







beginning with a letter or one of a few punctuation characters, and continuingbeginning with a letter or one of a few punctuation characters, and continuingbeginning with a letter or one of a few punctuation characters, and continuingbeginning with a letter or one of a few punctuation characters, and continuingbeginning with a letter or one of a few punctuation characters, and continuingbeginning with a letter or one of a few punctuation characters, and continuingbeginning with a letter or one of a few punctuation characters, and continuingbeginning with a letter or one of a few punctuation characters, and continuing







with letters, digits, hyphens, underscores, colons, or full stops, togetherwith letters, digits, hyphens, underscores, colons, or full stops, togetherwith letters, digits, hyphens, underscores, colons, or full stops, togetherwith letters, digits, hyphens, underscores, colons, or full stops, togetherwith letters, digits, hyphens, underscores, colons, or full stops, togetherwith letters, digits, hyphens, underscores, colons, or full stops, togetherwith letters, digits, hyphens, underscores, colons, or full stops, togetherwith letters, digits, hyphens, underscores, colons, or full stops, together







known as name characters.known as name characters.known as name characters.known as name characters.known as name characters.known as name characters.known as name characters.known as name characters.</termdef>







Names beginning with the string "Names beginning with the string "Names beginning with the string "Names beginning with the string "Names beginning with the string "Names beginning with the string "Names beginning with the string "Names beginning with the string "<code>xmlxmlxmlxmlxmlxmlxmlxml</code>", or any string", or any string", or any string", or any string", or any string", or any string", or any string", or any string







which would match which would match which would match which would match which would match which would match which would match which would match <code>(('X'|'x') ('M'|'m') ('L'|'l'))(('X'|'x') ('M'|'m') ('L'|'l'))(('X'|'x') ('M'|'m') ('L'|'l'))(('X'|'x') ('M'|'m') ('L'|'l'))(('X'|'x') ('M'|'m') ('L'|'l'))(('X'|'x') ('M'|'m') ('L'|'l'))(('X'|'x') ('M'|'m') ('L'|'l'))(('X'|'x') ('M'|'m') ('L'|'l'))</code>, are, are, are, are, are, are, are, are







reserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of this







specification.specification.specification.specification.specification.specification.specification.specification.







</p>







<note>







<p>The colon character within XML names is reserved for experimentation withThe colon character within XML names is reserved for experimentation withThe colon character within XML names is reserved for experimentation withThe colon character within XML names is reserved for experimentation withThe colon character within XML names is reserved for experimentation withThe colon character within XML names is reserved for experimentation withThe colon character within XML names is reserved for experimentation withThe colon character within XML names is reserved for experimentation with







name spaces.  name spaces.  name spaces.  name spaces.  name spaces.  name spaces.  name spaces.  name spaces.  







Its meaning is expected to beIts meaning is expected to beIts meaning is expected to beIts meaning is expected to beIts meaning is expected to beIts meaning is expected to beIts meaning is expected to beIts meaning is expected to be







standardized at some future point, at which point those documents standardized at some future point, at which point those documents standardized at some future point, at which point those documents standardized at some future point, at which point those documents standardized at some future point, at which point those documents standardized at some future point, at which point those documents standardized at some future point, at which point those documents standardized at some future point, at which point those documents 







using the colon for experimental purposes may need to be updated.using the colon for experimental purposes may need to be updated.using the colon for experimental purposes may need to be updated.using the colon for experimental purposes may need to be updated.using the colon for experimental purposes may need to be updated.using the colon for experimental purposes may need to be updated.using the colon for experimental purposes may need to be updated.using the colon for experimental purposes may need to be updated.







(There is no guarantee that any name-space mechanism(There is no guarantee that any name-space mechanism(There is no guarantee that any name-space mechanism(There is no guarantee that any name-space mechanism(There is no guarantee that any name-space mechanism(There is no guarantee that any name-space mechanism(There is no guarantee that any name-space mechanism(There is no guarantee that any name-space mechanism







adopted for XML will in fact use the colon as a name-space delimiter.)adopted for XML will in fact use the colon as a name-space delimiter.)adopted for XML will in fact use the colon as a name-space delimiter.)adopted for XML will in fact use the colon as a name-space delimiter.)adopted for XML will in fact use the colon as a name-space delimiter.)adopted for XML will in fact use the colon as a name-space delimiter.)adopted for XML will in fact use the colon as a name-space delimiter.)adopted for XML will in fact use the colon as a name-space delimiter.)







In practice, this means that authors should not use the colon in XMLIn practice, this means that authors should not use the colon in XMLIn practice, this means that authors should not use the colon in XMLIn practice, this means that authors should not use the colon in XMLIn practice, this means that authors should not use the colon in XMLIn practice, this means that authors should not use the colon in XMLIn practice, this means that authors should not use the colon in XMLIn practice, this means that authors should not use the colon in XML







names except as part of name-space experiments, but that XML processorsnames except as part of name-space experiments, but that XML processorsnames except as part of name-space experiments, but that XML processorsnames except as part of name-space experiments, but that XML processorsnames except as part of name-space experiments, but that XML processorsnames except as part of name-space experiments, but that XML processorsnames except as part of name-space experiments, but that XML processorsnames except as part of name-space experiments, but that XML processors







should accept the colon as a name character.should accept the colon as a name character.should accept the colon as a name character.should accept the colon as a name character.should accept the colon as a name character.should accept the colon as a name character.should accept the colon as a name character.should accept the colon as a name character.</p>







</note>







<p>AnAnAnAnAnAnAnAn







<nt def='NT-Nmtoken'>NmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtoken</nt> (name token) is any mixture of (name token) is any mixture of (name token) is any mixture of (name token) is any mixture of (name token) is any mixture of (name token) is any mixture of (name token) is any mixture of (name token) is any mixture of







name characters.name characters.name characters.name characters.name characters.name characters.name characters.name characters.







<scrap lang='ebnf'>







<head>Names and TokensNames and TokensNames and TokensNames and TokensNames and TokensNames and TokensNames and TokensNames and Tokens</head>







<prod id='NT-NameChar'><lhs>NameCharNameCharNameCharNameCharNameCharNameCharNameCharNameChar</lhs>







<rhs><nt def='NT-Letter'>LetterLetterLetterLetterLetterLetterLetterLetter</nt>        







| | | | | | | | <nt def='NT-Digit'>DigitDigitDigitDigitDigitDigitDigitDigit</nt>        







| '.' | '-' | '_' | ':'| '.' | '-' | '_' | ':'| '.' | '-' | '_' | ':'| '.' | '-' | '_' | ':'| '.' | '-' | '_' | ':'| '.' | '-' | '_' | ':'| '.' | '-' | '_' | ':'| '.' | '-' | '_' | ':'







| | | | | | | | <nt def='NT-CombiningChar'>CombiningCharCombiningCharCombiningCharCombiningCharCombiningCharCombiningCharCombiningCharCombiningChar</nt>        







| | | | | | | | <nt def='NT-Extender'>ExtenderExtenderExtenderExtenderExtenderExtenderExtenderExtender</nt></rhs>







</prod>







<prod id='NT-Name'><lhs>NameNameNameNameNameNameNameName</lhs>







<rhs>((((((((<nt def='NT-Letter'>LetterLetterLetterLetterLetterLetterLetterLetter</nt> | '_' | ':') | '_' | ':') | '_' | ':') | '_' | ':') | '_' | ':') | '_' | ':') | '_' | ':') | '_' | ':')







((((((((<nt def='NT-NameChar'>NameCharNameCharNameCharNameCharNameCharNameCharNameCharNameChar</nt>)*)*)*)*)*)*)*)*</rhs></prod>







<prod id='NT-Names'><lhs>NamesNamesNamesNamesNamesNamesNamesNames</lhs>







<rhs><nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>        







((((((((<nt def='NT-S'>SSSSSSSS</nt>        <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>)*)*)*)*)*)*)*)*</rhs></prod>







<prod id='NT-Nmtoken'><lhs>NmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtoken</lhs>







<rhs>((((((((<nt def='NT-NameChar'>NameCharNameCharNameCharNameCharNameCharNameCharNameCharNameChar</nt>)+)+)+)+)+)+)+)+</rhs></prod>







<prod id='NT-Nmtokens'><lhs>NmtokensNmtokensNmtokensNmtokensNmtokensNmtokensNmtokensNmtokens</lhs>







<rhs><nt def='NT-Nmtoken'>NmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtoken</nt> ( ( ( ( ( ( ( (<nt def='NT-S'>SSSSSSSS</nt>        <nt def='NT-Nmtoken'>NmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtoken</nt>)*)*)*)*)*)*)*)*</rhs></prod>







</scrap>







</p>







<p>Literal data is any quoted string not containingLiteral data is any quoted string not containingLiteral data is any quoted string not containingLiteral data is any quoted string not containingLiteral data is any quoted string not containingLiteral data is any quoted string not containingLiteral data is any quoted string not containingLiteral data is any quoted string not containing







the quotation mark used as a delimiter for that string.the quotation mark used as a delimiter for that string.the quotation mark used as a delimiter for that string.the quotation mark used as a delimiter for that string.the quotation mark used as a delimiter for that string.the quotation mark used as a delimiter for that string.the quotation mark used as a delimiter for that string.the quotation mark used as a delimiter for that string.







Literals are usedLiterals are usedLiterals are usedLiterals are usedLiterals are usedLiterals are usedLiterals are usedLiterals are used







for specifying the content of internal entitiesfor specifying the content of internal entitiesfor specifying the content of internal entitiesfor specifying the content of internal entitiesfor specifying the content of internal entitiesfor specifying the content of internal entitiesfor specifying the content of internal entitiesfor specifying the content of internal entities







((((((((<nt def='NT-EntityValue'>EntityValueEntityValueEntityValueEntityValueEntityValueEntityValueEntityValueEntityValue</nt>),),),),),),),),







the values of attributes (the values of attributes (the values of attributes (the values of attributes (the values of attributes (the values of attributes (the values of attributes (the values of attributes (<nt def='NT-AttValue'>AttValueAttValueAttValueAttValueAttValueAttValueAttValueAttValue</nt>), ), ), ), ), ), ), ), 







and external identifiers and external identifiers and external identifiers and external identifiers and external identifiers and external identifiers and external identifiers and external identifiers 







((((((((<nt def='NT-SystemLiteral'>SystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteral</nt>).  ).  ).  ).  ).  ).  ).  ).  







Note that a Note that a Note that a Note that a Note that a Note that a Note that a Note that a <nt def='NT-SystemLiteral'>SystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteral</nt>







can be parsed without scanning for markup.can be parsed without scanning for markup.can be parsed without scanning for markup.can be parsed without scanning for markup.can be parsed without scanning for markup.can be parsed without scanning for markup.can be parsed without scanning for markup.can be parsed without scanning for markup.







<scrap lang='ebnf'>







<head>LiteralsLiteralsLiteralsLiteralsLiteralsLiteralsLiteralsLiterals</head>







<prod id='NT-EntityValue'><lhs>EntityValueEntityValueEntityValueEntityValueEntityValueEntityValueEntityValueEntityValue</lhs>







<rhs>'"' '"' '"' '"' '"' '"' '"' '"' 







([^%([^%([^%([^%([^%([^%([^%([^%&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;"] "] "] "] "] "] "] "] 







| | | | | | | | <nt def='NT-PEReference'>PEReferencePEReferencePEReferencePEReferencePEReferencePEReferencePEReferencePEReference</nt>        







| | | | | | | | <nt def='NT-Reference'>ReferenceReferenceReferenceReferenceReferenceReferenceReferenceReference</nt>)*)*)*)*)*)*)*)*







'"' '"' '"' '"' '"' '"' '"' '"' 







</rhs>







<rhs>||||||||                







"'" "'" "'" "'" "'" "'" "'" "'" 







([^%([^%([^%([^%([^%([^%([^%([^%&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;'] '] '] '] '] '] '] '] 







| | | | | | | | <nt def='NT-PEReference'>PEReferencePEReferencePEReferencePEReferencePEReferencePEReferencePEReferencePEReference</nt>        







| | | | | | | | <nt def='NT-Reference'>ReferenceReferenceReferenceReferenceReferenceReferenceReferenceReference</nt>)* )* )* )* )* )* )* )* 







"'""'""'""'""'""'""'""'"</rhs>







</prod>







<prod id='NT-AttValue'><lhs>AttValueAttValueAttValueAttValueAttValueAttValueAttValueAttValue</lhs>







<rhs>'"' '"' '"' '"' '"' '"' '"' '"' 







([^([^([^([^([^([^([^([^&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;"] "] "] "] "] "] "] "] 







| | | | | | | | <nt def='NT-Reference'>ReferenceReferenceReferenceReferenceReferenceReferenceReferenceReference</nt>)* )* )* )* )* )* )* )* 







'"' '"' '"' '"' '"' '"' '"' '"' 







</rhs>







<rhs>||||||||                







"'" "'" "'" "'" "'" "'" "'" "'" 







([^([^([^([^([^([^([^([^&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;'] '] '] '] '] '] '] '] 







| | | | | | | | <nt def='NT-Reference'>ReferenceReferenceReferenceReferenceReferenceReferenceReferenceReference</nt>)* )* )* )* )* )* )* )* 







"'""'""'""'""'""'""'""'"</rhs>







</prod>







<prod id='NT-SystemLiteral'><lhs>SystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteralSystemLiteral</lhs>







<rhs>('"' [^"]* '"') |('"' [^"]* '"') |('"' [^"]* '"') |('"' [^"]* '"') |('"' [^"]* '"') |('"' [^"]* '"') |('"' [^"]* '"') |('"' [^"]* '"') |        ("'" [^']* "'")("'" [^']* "'")("'" [^']* "'")("'" [^']* "'")("'" [^']* "'")("'" [^']* "'")("'" [^']* "'")("'" [^']* "'")







</rhs>







</prod>







<prod id='NT-PubidLiteral'><lhs>PubidLitePubidLitePubidLitePubidLitePubidLitePubidLitePubidLitePubidLiteralralralralralralralral</lhs>







<rhs>'"' '"' '"' '"' '"' '"' '"' '"' <nt def='NT-PubidChar'>PubidCharPubidCharPubidCharPubidCharPubidCharPubidCharPubidCharPubidChar</nt>* * * * * * * * 







'"' '"' '"' '"' '"' '"' '"' '"' 







| "'" (| "'" (| "'" (| "'" (| "'" (| "'" (| "'" (| "'" (<nt def='NT-PubidChar'>PubidCharPubidCharPubidCharPubidCharPubidCharPubidCharPubidCharPubidChar</nt> - "'")* "'" - "'")* "'" - "'")* "'" - "'")* "'" - "'")* "'" - "'")* "'" - "'")* "'" - "'")* "'"</rhs>







</prod>







<prod id='NT-PubidChar'><lhs>PubidCharPubidCharPubidCharPubidCharPubidCharPubidCharPubidCharPubidChar</lhs>







<rhs>#x20 | #xD | #xA #x20 | #xD | #xA #x20 | #xD | #xA #x20 | #xD | #xA #x20 | #xD | #xA #x20 | #xD | #xA #x20 | #xD | #xA #x20 | #xD | #xA 







||||||||        [a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9][a-zA-Z0-9]







||||||||        [-'()+,./:=?;!*#@$_%][-'()+,./:=?;!*#@$_%][-'()+,./:=?;!*#@$_%][-'()+,./:=?;!*#@$_%][-'()+,./:=?;!*#@$_%][-'()+,./:=?;!*#@$_%][-'()+,./:=?;!*#@$_%][-'()+,./:=?;!*#@$_%]</rhs>







</prod>







</scrap>







</p>















</div2>















<div2 id='syntax'>







<head>Character Data and MarkupCharacter Data and MarkupCharacter Data and MarkupCharacter Data and MarkupCharacter Data and MarkupCharacter Data and MarkupCharacter Data and MarkupCharacter Data and Markup</head>







        







<p><termref def='dt-text'>TextTextTextTextTextTextTextText</termref> consists of intermingled  consists of intermingled  consists of intermingled  consists of intermingled  consists of intermingled  consists of intermingled  consists of intermingled  consists of intermingled 







<termref def='dt-chardata'>charactercharactercharactercharactercharactercharactercharactercharacter







datadatadatadatadatadatadatadata</termref> and markup. and markup. and markup. and markup. and markup. and markup. and markup. and markup.







<termdef id='dt-markup' term='Markup'><term>MarkupMarkupMarkupMarkupMarkupMarkupMarkupMarkup</term> takes the form of takes the form of takes the form of takes the form of takes the form of takes the form of takes the form of takes the form of







<termref def='dt-stag'>start-tagsstart-tagsstart-tagsstart-tagsstart-tagsstart-tagsstart-tagsstart-tags</termref>,,,,,,,,







<termref def='dt-etag'>end-tagsend-tagsend-tagsend-tagsend-tagsend-tagsend-tagsend-tags</termref>,,,,,,,,







<termref def='dt-empty'>empty-element tagsempty-element tagsempty-element tagsempty-element tagsempty-element tagsempty-element tagsempty-element tagsempty-element tags</termref>,,,,,,,,







<termref def='dt-entref'>entity referencesentity referencesentity referencesentity referencesentity referencesentity referencesentity referencesentity references</termref>,,,,,,,,







<termref def='dt-charref'>character referencescharacter referencescharacter referencescharacter referencescharacter referencescharacter referencescharacter referencescharacter references</termref>,,,,,,,,







<termref def='dt-comment'>commentscommentscommentscommentscommentscommentscommentscomments</termref>,,,,,,,,







<termref def='dt-cdsection'>CDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA section</termref> delimiters, delimiters, delimiters, delimiters, delimiters, delimiters, delimiters, delimiters,







<termref def='dt-doctype'>document type declarationsdocument type declarationsdocument type declarationsdocument type declarationsdocument type declarationsdocument type declarationsdocument type declarationsdocument type declarations</termref>, and, and, and, and, and, and, and, and







<termref def='dt-pi'>processing instructionsprocessing instructionsprocessing instructionsprocessing instructionsprocessing instructionsprocessing instructionsprocessing instructionsprocessing instructions</termref>........







</termdef>







</p>







<p><termdef id='dt-chardata' term='Character Data'>All text that is not markupAll text that is not markupAll text that is not markupAll text that is not markupAll text that is not markupAll text that is not markupAll text that is not markupAll text that is not markup







constitutes the constitutes the constitutes the constitutes the constitutes the constitutes the constitutes the constitutes the <term>character datacharacter datacharacter datacharacter datacharacter datacharacter datacharacter datacharacter data</term> of of of of of of of of







the document.the document.the document.the document.the document.the document.the document.the document.</termdef></p>







<p>The ampersand character (The ampersand character (The ampersand character (The ampersand character (The ampersand character (The ampersand character (The ampersand character (The ampersand character (&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;) and the left angle bracket () and the left angle bracket () and the left angle bracket () and the left angle bracket () and the left angle bracket () and the left angle bracket () and the left angle bracket () and the left angle bracket (&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;))))))))







may appear in their literal form may appear in their literal form may appear in their literal form may appear in their literal form may appear in their literal form may appear in their literal form may appear in their literal form may appear in their literal form <emph>onlyonlyonlyonlyonlyonlyonlyonly</emph> when used as markup when used as markup when used as markup when used as markup when used as markup when used as markup when used as markup when used as markup







delimiters, or within a delimiters, or within a delimiters, or within a delimiters, or within a delimiters, or within a delimiters, or within a delimiters, or within a delimiters, or within a <termref def='dt-comment'>commentcommentcommentcommentcommentcommentcommentcomment</termref>, a, a, a, a, a, a, a, a







<termref def='dt-pi'>processing instructionprocessing instructionprocessing instructionprocessing instructionprocessing instructionprocessing instructionprocessing instructionprocessing instruction</termref>, , , , , , , , 







or a or a or a or a or a or a or a or a <termref def='dt-cdsection'>CDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA section</termref>.  .  .  .  .  .  .  .  















They are also legal within the They are also legal within the They are also legal within the They are also legal within the They are also legal within the They are also legal within the They are also legal within the They are also legal within the <termref def='dt-litentval'>literal entityliteral entityliteral entityliteral entityliteral entityliteral entityliteral entityliteral entity







valuevaluevaluevaluevaluevaluevaluevalue</termref> of an internal entity declaration; see of an internal entity declaration; see of an internal entity declaration; see of an internal entity declaration; see of an internal entity declaration; see of an internal entity declaration; see of an internal entity declaration; see of an internal entity declaration; see







<specref ref='wf-entities'></specref>........







<!-- FINAL EDIT:  restore internal entity decl or leave it out. -->







If they are needed elsewhere,If they are needed elsewhere,If they are needed elsewhere,If they are needed elsewhere,If they are needed elsewhere,If they are needed elsewhere,If they are needed elsewhere,If they are needed elsewhere,







they must be they must be they must be they must be they must be they must be they must be they must be <termref def='dt-escape'>escapedescapedescapedescapedescapedescapedescapedescaped</termref>







using either using either using either using either using either using either using either using either <termref def='dt-charref'>numeric character referencesnumeric character referencesnumeric character referencesnumeric character referencesnumeric character referencesnumeric character referencesnumeric character referencesnumeric character references</termref>







or the stringsor the stringsor the stringsor the stringsor the stringsor the stringsor the stringsor the strings







""""""""<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;</code>" and "" and "" and "" and "" and "" and "" and "" and "<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;lt;lt;lt;lt;lt;lt;lt;lt;</code>" respectively. " respectively. " respectively. " respectively. " respectively. " respectively. " respectively. " respectively. 







The right angleThe right angleThe right angleThe right angleThe right angleThe right angleThe right angleThe right angle







bracket (&gt;) may be represented using the stringbracket (&gt;) may be represented using the stringbracket (&gt;) may be represented using the stringbracket (&gt;) may be represented using the stringbracket (&gt;) may be represented using the stringbracket (&gt;) may be represented using the stringbracket (&gt;) may be represented using the stringbracket (&gt;) may be represented using the string







""""""""<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;gt;gt;gt;gt;gt;gt;gt;gt;</code>", and must, ", and must, ", and must, ", and must, ", and must, ", and must, ", and must, ", and must, <termref def='dt-compat'>forforforforforforforfor







compatibilitycompatibilitycompatibilitycompatibilitycompatibilitycompatibilitycompatibilitycompatibility</termref>, , , , , , , , 







be escaped usingbe escaped usingbe escaped usingbe escaped usingbe escaped usingbe escaped usingbe escaped usingbe escaped using







""""""""<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;gt;gt;gt;gt;gt;gt;gt;gt;</code>" or a character reference " or a character reference " or a character reference " or a character reference " or a character reference " or a character reference " or a character reference " or a character reference 







when it appears in the stringwhen it appears in the stringwhen it appears in the stringwhen it appears in the stringwhen it appears in the stringwhen it appears in the stringwhen it appears in the stringwhen it appears in the string







""""""""<code>]]]]]]]]]]]]]]]]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</code>""""""""







in content, in content, in content, in content, in content, in content, in content, in content, 







when that string is not marking the end of when that string is not marking the end of when that string is not marking the end of when that string is not marking the end of when that string is not marking the end of when that string is not marking the end of when that string is not marking the end of when that string is not marking the end of 







a a a a a a a a <termref def='dt-cdsection'>CDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA sectionCDATA section</termref>. . . . . . . . 







</p>







<p>







In the content of elements, character data In the content of elements, character data In the content of elements, character data In the content of elements, character data In the content of elements, character data In the content of elements, character data In the content of elements, character data In the content of elements, character data 







is any string of characters which doesis any string of characters which doesis any string of characters which doesis any string of characters which doesis any string of characters which doesis any string of characters which doesis any string of characters which doesis any string of characters which does







not contain the start-delimiter of any markup.  not contain the start-delimiter of any markup.  not contain the start-delimiter of any markup.  not contain the start-delimiter of any markup.  not contain the start-delimiter of any markup.  not contain the start-delimiter of any markup.  not contain the start-delimiter of any markup.  not contain the start-delimiter of any markup.  







In a CDATA section, character dataIn a CDATA section, character dataIn a CDATA section, character dataIn a CDATA section, character dataIn a CDATA section, character dataIn a CDATA section, character dataIn a CDATA section, character dataIn a CDATA section, character data







is any string of characters not including the CDATA-section-closeis any string of characters not including the CDATA-section-closeis any string of characters not including the CDATA-section-closeis any string of characters not including the CDATA-section-closeis any string of characters not including the CDATA-section-closeis any string of characters not including the CDATA-section-closeis any string of characters not including the CDATA-section-closeis any string of characters not including the CDATA-section-close







delimiter, "delimiter, "delimiter, "delimiter, "delimiter, "delimiter, "delimiter, "delimiter, "<code>]]]]]]]]]]]]]]]]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</code>".".".".".".".".</p>







<p>







To allow attribute values to contain both single and double quotes, theTo allow attribute values to contain both single and double quotes, theTo allow attribute values to contain both single and double quotes, theTo allow attribute values to contain both single and double quotes, theTo allow attribute values to contain both single and double quotes, theTo allow attribute values to contain both single and double quotes, theTo allow attribute values to contain both single and double quotes, theTo allow attribute values to contain both single and double quotes, the







apostrophe or single-quote character (') may be represented asapostrophe or single-quote character (') may be represented asapostrophe or single-quote character (') may be represented asapostrophe or single-quote character (') may be represented asapostrophe or single-quote character (') may be represented asapostrophe or single-quote character (') may be represented asapostrophe or single-quote character (') may be represented asapostrophe or single-quote character (') may be represented as







""""""""<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;apos;apos;apos;apos;apos;apos;apos;apos;</code>", and the double-quote character (") as", and the double-quote character (") as", and the double-quote character (") as", and the double-quote character (") as", and the double-quote character (") as", and the double-quote character (") as", and the double-quote character (") as", and the double-quote character (") as







""""""""<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;quot;quot;quot;quot;quot;quot;quot;quot;</code>".".".".".".".".







<scrap lang='ebnf'>







<head>Character DataCharacter DataCharacter DataCharacter DataCharacter DataCharacter DataCharacter DataCharacter Data</head>







<prod id='NT-CharData'>







<lhs>CharDataCharDataCharDataCharDataCharDataCharDataCharDataCharData</lhs>







<rhs>[^[^[^[^[^[^[^[^&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;]* - ([^]* - ([^]* - ([^]* - ([^]* - ([^]* - ([^]* - ([^]* - ([^&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;]* ']]]* ']]]* ']]]* ']]]* ']]]* ']]]* ']]]* ']]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;' [^' [^' [^' [^' [^' [^' [^' [^&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;]*)]*)]*)]*)]*)]*)]*)]*)</rhs>







</prod>







</scrap>







</p>







</div2>







        







<div2 id='sec-comments'>







<head>CommentsCommentsCommentsCommentsCommentsCommentsCommentsComments</head>







        







<p><termdef id='dt-comment' term='Comment'><term>CommentsCommentsCommentsCommentsCommentsCommentsCommentsComments</term> may  may  may  may  may  may  may  may 







appear anywhere in a document outside other appear anywhere in a document outside other appear anywhere in a document outside other appear anywhere in a document outside other appear anywhere in a document outside other appear anywhere in a document outside other appear anywhere in a document outside other appear anywhere in a document outside other 







<termref def='dt-markup'>markupmarkupmarkupmarkupmarkupmarkupmarkupmarkup</termref>; in addition,; in addition,; in addition,; in addition,; in addition,; in addition,; in addition,; in addition,







they may appear within the document type declarationthey may appear within the document type declarationthey may appear within the document type declarationthey may appear within the document type declarationthey may appear within the document type declarationthey may appear within the document type declarationthey may appear within the document type declarationthey may appear within the document type declaration







at places allowed by the grammar.at places allowed by the grammar.at places allowed by the grammar.at places allowed by the grammar.at places allowed by the grammar.at places allowed by the grammar.at places allowed by the grammar.at places allowed by the grammar.







They are not part of the document's They are not part of the document's They are not part of the document's They are not part of the document's They are not part of the document's They are not part of the document's They are not part of the document's They are not part of the document's <termref def='dt-chardata'>charactercharactercharactercharactercharactercharactercharactercharacter







datadatadatadatadatadatadatadata</termref>; an XML; an XML; an XML; an XML; an XML; an XML; an XML; an XML







processor may, but need not, make it possible for an application toprocessor may, but need not, make it possible for an application toprocessor may, but need not, make it possible for an application toprocessor may, but need not, make it possible for an application toprocessor may, but need not, make it possible for an application toprocessor may, but need not, make it possible for an application toprocessor may, but need not, make it possible for an application toprocessor may, but need not, make it possible for an application to







retrieve the text of comments.retrieve the text of comments.retrieve the text of comments.retrieve the text of comments.retrieve the text of comments.retrieve the text of comments.retrieve the text of comments.retrieve the text of comments.







<termref def='dt-compat'>For compatibilityFor compatibilityFor compatibilityFor compatibilityFor compatibilityFor compatibilityFor compatibilityFor compatibility</termref>, the string, the string, the string, the string, the string, the string, the string, the string







""""""""<code>----------------</code>" (double-hyphen) must not occur within" (double-hyphen) must not occur within" (double-hyphen) must not occur within" (double-hyphen) must not occur within" (double-hyphen) must not occur within" (double-hyphen) must not occur within" (double-hyphen) must not occur within" (double-hyphen) must not occur within







comments.comments.comments.comments.comments.comments.comments.comments.







<scrap lang='ebnf'>







<head>CommentsCommentsCommentsCommentsCommentsCommentsCommentsComments</head>







<prod id='NT-Comment'><lhs>CommentCommentCommentCommentCommentCommentCommentComment</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!--'!--'!--'!--'!--'!--'!--'!--'







((((((((((((((((<nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt> - '-')  - '-')  - '-')  - '-')  - '-')  - '-')  - '-')  - '-') 







| ('-' (| ('-' (| ('-' (| ('-' (| ('-' (| ('-' (| ('-' (| ('-' (<nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt> - '-')))*  - '-')))*  - '-')))*  - '-')))*  - '-')))*  - '-')))*  - '-')))*  - '-')))* 







'--&gt;''--&gt;''--&gt;''--&gt;''--&gt;''--&gt;''--&gt;''--&gt;'</rhs>







</prod>







</scrap>







</termdef></p>







<p>An example of a comment:An example of a comment:An example of a comment:An example of a comment:An example of a comment:An example of a comment:An example of a comment:An example of a comment:







<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!!!!!!!!---------------- declarations for  declarations for  declarations for  declarations for  declarations for  declarations for  declarations for  declarations for &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;head&gt; head&gt; head&gt; head&gt; head&gt; head&gt; head&gt; head&gt; &amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;        &lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;body&gt; body&gt; body&gt; body&gt; body&gt; body&gt; body&gt; body&gt; ----------------&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</eg>







</p>







</div2>







        







<div2 id='sec-pi'>







<head>Processing InstructionsProcessing InstructionsProcessing InstructionsProcessing InstructionsProcessing InstructionsProcessing InstructionsProcessing InstructionsProcessing Instructions</head>







        







<p><termdef id='dt-pi' term='Processing instruction'><term>ProcessingProcessingProcessingProcessingProcessingProcessingProcessingProcessing







instructionsinstructionsinstructionsinstructionsinstructionsinstructionsinstructionsinstructions</term> (PIs) allow documents to contain instructions (PIs) allow documents to contain instructions (PIs) allow documents to contain instructions (PIs) allow documents to contain instructions (PIs) allow documents to contain instructions (PIs) allow documents to contain instructions (PIs) allow documents to contain instructions (PIs) allow documents to contain instructions







for applications.for applications.for applications.for applications.for applications.for applications.for applications.for applications.







        







<scrap lang='ebnf'>







<head>Processing InstructionsProcessing InstructionsProcessing InstructionsProcessing InstructionsProcessing InstructionsProcessing InstructionsProcessing InstructionsProcessing Instructions</head>







<prod id='NT-PI'><lhs>PIPIPIPIPIPIPIPI</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;?' ?' ?' ?' ?' ?' ?' ?' <nt def='NT-PITarget'>PITargetPITargetPITargetPITargetPITargetPITargetPITargetPITarget</nt>        







((((((((<nt def='NT-S'>SSSSSSSS</nt>        







((((((((<nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt>* - * - * - * - * - * - * - * - 







((((((((<nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt>* * * * * * * * '?&gt;''?&gt;''?&gt;''?&gt;''?&gt;''?&gt;''?&gt;''?&gt;'        <nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt>*)))?*)))?*)))?*)))?*)))?*)))?*)))?*)))?







'?&gt;''?&gt;''?&gt;''?&gt;''?&gt;''?&gt;''?&gt;''?&gt;'</rhs></prod>







<prod id='NT-PITarget'><lhs>PITargetPITargetPITargetPITargetPITargetPITargetPITargetPITarget</lhs>







<rhs><nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> -  -  -  -  -  -  -  - 







(('X' | 'x') ('M' | 'm') ('L' | 'l'))(('X' | 'x') ('M' | 'm') ('L' | 'l'))(('X' | 'x') ('M' | 'm') ('L' | 'l'))(('X' | 'x') ('M' | 'm') ('L' | 'l'))(('X' | 'x') ('M' | 'm') ('L' | 'l'))(('X' | 'x') ('M' | 'm') ('L' | 'l'))(('X' | 'x') ('M' | 'm') ('L' | 'l'))(('X' | 'x') ('M' | 'm') ('L' | 'l'))</rhs>







</prod>







</scrap></termdef>







PIs are not part of the document's PIs are not part of the document's PIs are not part of the document's PIs are not part of the document's PIs are not part of the document's PIs are not part of the document's PIs are not part of the document's PIs are not part of the document's <termref def='dt-chardata'>charactercharactercharactercharactercharactercharactercharactercharacter







datadatadatadatadatadatadatadata</termref>, but must be passed through to the application. The, but must be passed through to the application. The, but must be passed through to the application. The, but must be passed through to the application. The, but must be passed through to the application. The, but must be passed through to the application. The, but must be passed through to the application. The, but must be passed through to the application. The







PI begins with a target (PI begins with a target (PI begins with a target (PI begins with a target (PI begins with a target (PI begins with a target (PI begins with a target (PI begins with a target (<nt def='NT-PITarget'>PITargetPITargetPITargetPITargetPITargetPITargetPITargetPITarget</nt>) used) used) used) used) used) used) used) used







to identify the application to which the instruction is directed.  to identify the application to which the instruction is directed.  to identify the application to which the instruction is directed.  to identify the application to which the instruction is directed.  to identify the application to which the instruction is directed.  to identify the application to which the instruction is directed.  to identify the application to which the instruction is directed.  to identify the application to which the instruction is directed.  







The target names "The target names "The target names "The target names "The target names "The target names "The target names "The target names "<code>XMLXMLXMLXMLXMLXMLXMLXML</code>", "", "", "", "", "", "", "", "<code>xmlxmlxmlxmlxmlxmlxmlxml</code>", and so on are", and so on are", and so on are", and so on are", and so on are", and so on are", and so on are", and so on are







reserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of thisreserved for standardization in this or future versions of this







specification.specification.specification.specification.specification.specification.specification.specification.







The The The The The The The The 







XML XML XML XML XML XML XML XML <termref def='dt-notation'>NotationNotationNotationNotationNotationNotationNotationNotation</termref> mechanism mechanism mechanism mechanism mechanism mechanism mechanism mechanism







may be used formay be used formay be used formay be used formay be used formay be used formay be used formay be used for







formal declaration of PI targets.formal declaration of PI targets.formal declaration of PI targets.formal declaration of PI targets.formal declaration of PI targets.formal declaration of PI targets.formal declaration of PI targets.formal declaration of PI targets.







</p>







</div2>







        







<div2 id='sec-cdata-sect'>







<head>CDATA SectionsCDATA SectionsCDATA SectionsCDATA SectionsCDATA SectionsCDATA SectionsCDATA SectionsCDATA Sections</head>







        







<p><termdef id='dt-cdsection' term='CDATA Section'><term>CDATA sectionsCDATA sectionsCDATA sectionsCDATA sectionsCDATA sectionsCDATA sectionsCDATA sectionsCDATA sections</term>







may occur may occur may occur may occur may occur may occur may occur may occur 







anywhere character data may occur; they areanywhere character data may occur; they areanywhere character data may occur; they areanywhere character data may occur; they areanywhere character data may occur; they areanywhere character data may occur; they areanywhere character data may occur; they areanywhere character data may occur; they are







used to escape blocks of text containing characters which wouldused to escape blocks of text containing characters which wouldused to escape blocks of text containing characters which wouldused to escape blocks of text containing characters which wouldused to escape blocks of text containing characters which wouldused to escape blocks of text containing characters which wouldused to escape blocks of text containing characters which wouldused to escape blocks of text containing characters which would







otherwise be recognized as markup.  CDATA sections begin with theotherwise be recognized as markup.  CDATA sections begin with theotherwise be recognized as markup.  CDATA sections begin with theotherwise be recognized as markup.  CDATA sections begin with theotherwise be recognized as markup.  CDATA sections begin with theotherwise be recognized as markup.  CDATA sections begin with theotherwise be recognized as markup.  CDATA sections begin with theotherwise be recognized as markup.  CDATA sections begin with the







string "string "string "string "string "string "string "string "<code>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;![CDATA[![CDATA[![CDATA[![CDATA[![CDATA[![CDATA[![CDATA[![CDATA[</code>" and end with the string" and end with the string" and end with the string" and end with the string" and end with the string" and end with the string" and end with the string" and end with the string







""""""""<code>]]]]]]]]]]]]]]]]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</code>":":":":":":":":







<scrap lang='ebnf'>







<head>CDATA SectionsCDATA SectionsCDATA SectionsCDATA SectionsCDATA SectionsCDATA SectionsCDATA SectionsCDATA Sections</head>







<prod id='NT-CDSect'><lhs>CDSectCDSectCDSectCDSectCDSectCDSectCDSectCDSect</lhs>







<rhs><nt def='NT-CDStart'>CDStartCDStartCDStartCDStartCDStartCDStartCDStartCDStart</nt>        







<nt def='NT-CData'>CDataCDataCDataCDataCDataCDataCDataCData</nt>        







<nt def='NT-CDEnd'>CDEndCDEndCDEndCDEndCDEndCDEndCDEndCDEnd</nt></rhs></prod>







<prod id='NT-CDStart'><lhs>CDStartCDStartCDStartCDStartCDStartCDStartCDStartCDStart</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;![CDATA['![CDATA['![CDATA['![CDATA['![CDATA['![CDATA['![CDATA['![CDATA['</rhs>







</prod>







<prod id='NT-CData'><lhs>CDataCDataCDataCDataCDataCDataCDataCData</lhs>







<rhs>((((((((<nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt>* - * - * - * - * - * - * - * - 







((((((((<nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt>* ']]* ']]* ']]* ']]* ']]* ']]* ']]* ']]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;' ' ' ' ' ' ' ' <nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt>*))*))*))*))*))*))*))*))







</rhs>







</prod>







<prod id='NT-CDEnd'><lhs>CDEndCDEndCDEndCDEndCDEndCDEndCDEndCDEnd</lhs>







<rhs>']]']]']]']]']]']]']]']]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;''''''''</rhs>







</prod>







</scrap>















Within a CDATA section, only the Within a CDATA section, only the Within a CDATA section, only the Within a CDATA section, only the Within a CDATA section, only the Within a CDATA section, only the Within a CDATA section, only the Within a CDATA section, only the <nt def='NT-CDEnd'>CDEndCDEndCDEndCDEndCDEndCDEndCDEndCDEnd</nt> string is string is string is string is string is string is string is string is







recognized as markup, so that left angle brackets and ampersands may occur inrecognized as markup, so that left angle brackets and ampersands may occur inrecognized as markup, so that left angle brackets and ampersands may occur inrecognized as markup, so that left angle brackets and ampersands may occur inrecognized as markup, so that left angle brackets and ampersands may occur inrecognized as markup, so that left angle brackets and ampersands may occur inrecognized as markup, so that left angle brackets and ampersands may occur inrecognized as markup, so that left angle brackets and ampersands may occur in







their literal form; they need not (and cannot) be escaped usingtheir literal form; they need not (and cannot) be escaped usingtheir literal form; they need not (and cannot) be escaped usingtheir literal form; they need not (and cannot) be escaped usingtheir literal form; they need not (and cannot) be escaped usingtheir literal form; they need not (and cannot) be escaped usingtheir literal form; they need not (and cannot) be escaped usingtheir literal form; they need not (and cannot) be escaped using







""""""""<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;lt;lt;lt;lt;lt;lt;lt;lt;</code>" and "" and "" and "" and "" and "" and "" and "" and "<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;amp;amp;amp;amp;amp;amp;amp;amp;</code>".  CDATA sections".  CDATA sections".  CDATA sections".  CDATA sections".  CDATA sections".  CDATA sections".  CDATA sections".  CDATA sections







cannot nest.cannot nest.cannot nest.cannot nest.cannot nest.cannot nest.cannot nest.cannot nest.</termdef>







</p>















<p>An example of a CDATA section, in which "An example of a CDATA section, in which "An example of a CDATA section, in which "An example of a CDATA section, in which "An example of a CDATA section, in which "An example of a CDATA section, in which "An example of a CDATA section, in which "An example of a CDATA section, in which "<code>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;greeting&gt;greeting&gt;greeting&gt;greeting&gt;greeting&gt;greeting&gt;greeting&gt;greeting&gt;</code>" and " and " and " and " and " and " and " and 







""""""""<code>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;/greeting&gt;/greeting&gt;/greeting&gt;/greeting&gt;/greeting&gt;/greeting&gt;/greeting&gt;/greeting&gt;</code>""""""""







are recognized as are recognized as are recognized as are recognized as are recognized as are recognized as are recognized as are recognized as <termref def='dt-chardata'>character datacharacter datacharacter datacharacter datacharacter datacharacter datacharacter datacharacter data</termref>, not, not, not, not, not, not, not, not







<termref def='dt-markup'>markupmarkupmarkupmarkupmarkupmarkupmarkupmarkup</termref>::::::::







<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;![CDATA[![CDATA[![CDATA[![CDATA[![CDATA[![CDATA[![CDATA[![CDATA[&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;greeting&gt;Hello, world!greeting&gt;Hello, world!greeting&gt;Hello, world!greeting&gt;Hello, world!greeting&gt;Hello, world!greeting&gt;Hello, world!greeting&gt;Hello, world!greeting&gt;Hello, world!&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;/greeting&gt;]]/greeting&gt;]]/greeting&gt;]]/greeting&gt;]]/greeting&gt;]]/greeting&gt;]]/greeting&gt;]]/greeting&gt;]]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;</eg>







</p>







</div2>







        







<div2 id='sec-prolog-dtd'>







<head>Prolog and Document Type DeclarationProlog and Document Type DeclarationProlog and Document Type DeclarationProlog and Document Type DeclarationProlog and Document Type DeclarationProlog and Document Type DeclarationProlog and Document Type DeclarationProlog and Document Type Declaration</head>







        







<p><termdef id='dt-xmldecl' term='XML Declaration'>XML documents XML documents XML documents XML documents XML documents XML documents XML documents XML documents 







may, and should, may, and should, may, and should, may, and should, may, and should, may, and should, may, and should, may, and should, 







begin with an begin with an begin with an begin with an begin with an begin with an begin with an begin with an <term>XML declarationXML declarationXML declarationXML declarationXML declarationXML declarationXML declarationXML declaration</term> which specifies which specifies which specifies which specifies which specifies which specifies which specifies which specifies







the version ofthe version ofthe version ofthe version ofthe version ofthe version ofthe version ofthe version of







XML being used.XML being used.XML being used.XML being used.XML being used.XML being used.XML being used.XML being used.</termdef>







For example, the following is a complete XML document, For example, the following is a complete XML document, For example, the following is a complete XML document, For example, the following is a complete XML document, For example, the following is a complete XML document, For example, the following is a complete XML document, For example, the following is a complete XML document, For example, the following is a complete XML document, <termref def='dt-wellformed'>well-formedwell-formedwell-formedwell-formedwell-formedwell-formedwell-formedwell-formed</termref> but not but not but not but not but not but not but not but not







<termref def='dt-valid'>validvalidvalidvalidvalidvalidvalidvalid</termref>::::::::







<eg><![CDATA[<?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?>







<greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting>







]]></eg>







and so is this:and so is this:and so is this:and so is this:and so is this:and so is this:and so is this:and so is this:







<eg><![CDATA[<greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting>







]]></eg>







</p>















<p>The version number "The version number "The version number "The version number "The version number "The version number "The version number "The version number "<code>1.01.01.01.01.01.01.01.0</code>" should be used to indicate" should be used to indicate" should be used to indicate" should be used to indicate" should be used to indicate" should be used to indicate" should be used to indicate" should be used to indicate







conformance to this version of this specification; it is an errorconformance to this version of this specification; it is an errorconformance to this version of this specification; it is an errorconformance to this version of this specification; it is an errorconformance to this version of this specification; it is an errorconformance to this version of this specification; it is an errorconformance to this version of this specification; it is an errorconformance to this version of this specification; it is an error







for a document to use the value "for a document to use the value "for a document to use the value "for a document to use the value "for a document to use the value "for a document to use the value "for a document to use the value "for a document to use the value "<code>1.01.01.01.01.01.01.01.0</code>" " " " " " " " 







if it does not conform to this version of this specification.if it does not conform to this version of this specification.if it does not conform to this version of this specification.if it does not conform to this version of this specification.if it does not conform to this version of this specification.if it does not conform to this version of this specification.if it does not conform to this version of this specification.if it does not conform to this version of this specification.







It is the intentIt is the intentIt is the intentIt is the intentIt is the intentIt is the intentIt is the intentIt is the intent







of the XML working group to give later versions of this specificationof the XML working group to give later versions of this specificationof the XML working group to give later versions of this specificationof the XML working group to give later versions of this specificationof the XML working group to give later versions of this specificationof the XML working group to give later versions of this specificationof the XML working group to give later versions of this specificationof the XML working group to give later versions of this specification







numbers other than "numbers other than "numbers other than "numbers other than "numbers other than "numbers other than "numbers other than "numbers other than "<code>1.01.01.01.01.01.01.01.0</code>", but this intent does not", but this intent does not", but this intent does not", but this intent does not", but this intent does not", but this intent does not", but this intent does not", but this intent does not







indicate aindicate aindicate aindicate aindicate aindicate aindicate aindicate a







commitment to produce any future versions of XML, nor if any are produced, tocommitment to produce any future versions of XML, nor if any are produced, tocommitment to produce any future versions of XML, nor if any are produced, tocommitment to produce any future versions of XML, nor if any are produced, tocommitment to produce any future versions of XML, nor if any are produced, tocommitment to produce any future versions of XML, nor if any are produced, tocommitment to produce any future versions of XML, nor if any are produced, tocommitment to produce any future versions of XML, nor if any are produced, to







use any particular numbering scheme.use any particular numbering scheme.use any particular numbering scheme.use any particular numbering scheme.use any particular numbering scheme.use any particular numbering scheme.use any particular numbering scheme.use any particular numbering scheme.







Since future versions are not ruled out, this construct is provided Since future versions are not ruled out, this construct is provided Since future versions are not ruled out, this construct is provided Since future versions are not ruled out, this construct is provided Since future versions are not ruled out, this construct is provided Since future versions are not ruled out, this construct is provided Since future versions are not ruled out, this construct is provided Since future versions are not ruled out, this construct is provided 







as a means to allow the possibility of automatic version recognition, shouldas a means to allow the possibility of automatic version recognition, shouldas a means to allow the possibility of automatic version recognition, shouldas a means to allow the possibility of automatic version recognition, shouldas a means to allow the possibility of automatic version recognition, shouldas a means to allow the possibility of automatic version recognition, shouldas a means to allow the possibility of automatic version recognition, shouldas a means to allow the possibility of automatic version recognition, should







it become necessary.it become necessary.it become necessary.it become necessary.it become necessary.it become necessary.it become necessary.it become necessary.







Processors may signal an error if they receive documents labeled with Processors may signal an error if they receive documents labeled with Processors may signal an error if they receive documents labeled with Processors may signal an error if they receive documents labeled with Processors may signal an error if they receive documents labeled with Processors may signal an error if they receive documents labeled with Processors may signal an error if they receive documents labeled with Processors may signal an error if they receive documents labeled with 







versions they do not support. versions they do not support. versions they do not support. versions they do not support. versions they do not support. versions they do not support. versions they do not support. versions they do not support. 







</p>







<p>The function of the markup in an XML document is to describe itsThe function of the markup in an XML document is to describe itsThe function of the markup in an XML document is to describe itsThe function of the markup in an XML document is to describe itsThe function of the markup in an XML document is to describe itsThe function of the markup in an XML document is to describe itsThe function of the markup in an XML document is to describe itsThe function of the markup in an XML document is to describe its







storage and logical structure and to associate attribute-value pairsstorage and logical structure and to associate attribute-value pairsstorage and logical structure and to associate attribute-value pairsstorage and logical structure and to associate attribute-value pairsstorage and logical structure and to associate attribute-value pairsstorage and logical structure and to associate attribute-value pairsstorage and logical structure and to associate attribute-value pairsstorage and logical structure and to associate attribute-value pairs







with its logical structures.  XML provides a mechanism, the with its logical structures.  XML provides a mechanism, the with its logical structures.  XML provides a mechanism, the with its logical structures.  XML provides a mechanism, the with its logical structures.  XML provides a mechanism, the with its logical structures.  XML provides a mechanism, the with its logical structures.  XML provides a mechanism, the with its logical structures.  XML provides a mechanism, the <termref def='dt-doctype'>document type declarationdocument type declarationdocument type declarationdocument type declarationdocument type declarationdocument type declarationdocument type declarationdocument type declaration</termref>, to define, to define, to define, to define, to define, to define, to define, to define







constraints on the logical structure and to support the use ofconstraints on the logical structure and to support the use ofconstraints on the logical structure and to support the use ofconstraints on the logical structure and to support the use ofconstraints on the logical structure and to support the use ofconstraints on the logical structure and to support the use ofconstraints on the logical structure and to support the use ofconstraints on the logical structure and to support the use of







predefined storage units.predefined storage units.predefined storage units.predefined storage units.predefined storage units.predefined storage units.predefined storage units.predefined storage units.















<termdef id='dt-valid' term='Validity'>An XML document is An XML document is An XML document is An XML document is An XML document is An XML document is An XML document is An XML document is 







<term>validvalidvalidvalidvalidvalidvalidvalid</term> if it has an associated document type if it has an associated document type if it has an associated document type if it has an associated document type if it has an associated document type if it has an associated document type if it has an associated document type if it has an associated document type







declaration and if the documentdeclaration and if the documentdeclaration and if the documentdeclaration and if the documentdeclaration and if the documentdeclaration and if the documentdeclaration and if the documentdeclaration and if the document







complies with the constraints expressed in it.complies with the constraints expressed in it.complies with the constraints expressed in it.complies with the constraints expressed in it.complies with the constraints expressed in it.complies with the constraints expressed in it.complies with the constraints expressed in it.complies with the constraints expressed in it.</termdef></p>







<p>The document type declaration must appear beforeThe document type declaration must appear beforeThe document type declaration must appear beforeThe document type declaration must appear beforeThe document type declaration must appear beforeThe document type declaration must appear beforeThe document type declaration must appear beforeThe document type declaration must appear before







the first the first the first the first the first the first the first the first <termref def='dt-element'>elementelementelementelementelementelementelementelement</termref> in the document. in the document. in the document. in the document. in the document. in the document. in the document. in the document.







<scrap lang='ebnf' id='xmldoc'>







<head>PrologPrologPrologPrologPrologPrologPrologProlog</head>







<prodgroup pcw2='6' pcw4='17.5' pcw5='9'>







<prod id='NT-prolog'><lhs>prologprologprologprologprologprologprologprolog</lhs>







<rhs><nt def='NT-XMLDecl'>XMLDeclXMLDeclXMLDeclXMLDeclXMLDeclXMLDeclXMLDeclXMLDecl</nt>? ? ? ? ? ? ? ? 







<nt def='NT-Misc'>MiscMiscMiscMiscMiscMiscMiscMisc</nt>* * * * * * * * 







((((((((<nt def='NT-doctypedecl'>doctypedecldoctypedecldoctypedecldoctypedecldoctypedecldoctypedecldoctypedecldoctypedecl</nt>        







<nt def='NT-Misc'>MiscMiscMiscMiscMiscMiscMiscMisc</nt>*)?*)?*)?*)?*)?*)?*)?*)?</rhs></prod>







<prod id='NT-XMLDecl'><lhs>XMLDeclXMLDeclXMLDeclXMLDeclXMLDeclXMLDeclXMLDeclXMLDecl</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;?xml'?xml'?xml'?xml'?xml'?xml'?xml'?xml'        







<nt def='NT-VersionInfo'>VersionInfoVersionInfoVersionInfoVersionInfoVersionInfoVersionInfoVersionInfoVersionInfo</nt>        







<nt def='NT-EncodingDecl'>EncodingDeclEncodingDeclEncodingDeclEncodingDeclEncodingDeclEncodingDeclEncodingDeclEncodingDecl</nt>? ? ? ? ? ? ? ? 







<nt def='NT-SDDecl'>SDDeclSDDeclSDDeclSDDeclSDDeclSDDeclSDDeclSDDecl</nt>? ? ? ? ? ? ? ? 







<nt def='NT-S'>SSSSSSSS</nt>? ? ? ? ? ? ? ? 







'?&gt;''?&gt;''?&gt;''?&gt;''?&gt;''?&gt;''?&gt;''?&gt;'</rhs>







</prod>







<prod id='NT-VersionInfo'><lhs>VersionInfoVersionInfoVersionInfoVersionInfoVersionInfoVersionInfoVersionInfoVersionInfo</lhs>







<rhs><nt def='NT-S'>SSSSSSSS</nt> 'version'  'version'  'version'  'version'  'version'  'version'  'version'  'version' <nt def='NT-Eq'>EqEqEqEqEqEqEqEq</nt>        







(' (' (' (' (' (' (' (' <nt def='NT-VersionNum'>VersionNumVersionNumVersionNumVersionNumVersionNumVersionNumVersionNumVersionNum</nt> '  '  '  '  '  '  '  ' 







| " | " | " | " | " | " | " | " <nt def='NT-VersionNum'>VersionNumVersionNumVersionNumVersionNumVersionNumVersionNumVersionNumVersionNum</nt> ") ") ") ") ") ") ") ")</rhs>







</prod>







<prod id='NT-Eq'><lhs>EqEqEqEqEqEqEqEq</lhs>







<rhs><nt def='NT-S'>SSSSSSSS</nt>? '=' ? '=' ? '=' ? '=' ? '=' ? '=' ? '=' ? '=' <nt def='NT-S'>SSSSSSSS</nt>????????</rhs></prod>







<prod id='NT-VersionNum'>







<lhs>VersionNumVersionNumVersionNumVersionNumVersionNumVersionNumVersionNumVersionNum</lhs>







<rhs>([a-zA-Z0-9_.:] | '-')+([a-zA-Z0-9_.:] | '-')+([a-zA-Z0-9_.:] | '-')+([a-zA-Z0-9_.:] | '-')+([a-zA-Z0-9_.:] | '-')+([a-zA-Z0-9_.:] | '-')+([a-zA-Z0-9_.:] | '-')+([a-zA-Z0-9_.:] | '-')+</rhs>







</prod>







<prod id='NT-Misc'><lhs>MiscMiscMiscMiscMiscMiscMiscMisc</lhs>







<rhs><nt def='NT-Comment'>CommentCommentCommentCommentCommentCommentCommentComment</nt> |  |  |  |  |  |  |  | <nt def='NT-PI'>PIPIPIPIPIPIPIPI</nt> |  |  |  |  |  |  |  | 







<nt def='NT-S'>SSSSSSSS</nt></rhs></prod>







</prodgroup>







</scrap></p>















<p><termdef id='dt-doctype' term='Document Type Declaration'>The XMLThe XMLThe XMLThe XMLThe XMLThe XMLThe XMLThe XML







<term>document type declarationdocument type declarationdocument type declarationdocument type declarationdocument type declarationdocument type declarationdocument type declarationdocument type declaration</term>        







contains or points to contains or points to contains or points to contains or points to contains or points to contains or points to contains or points to contains or points to 







<termref def='dt-markupdecl'>markup declarationsmarkup declarationsmarkup declarationsmarkup declarationsmarkup declarationsmarkup declarationsmarkup declarationsmarkup declarations</termref>        







that provide a grammar for athat provide a grammar for athat provide a grammar for athat provide a grammar for athat provide a grammar for athat provide a grammar for athat provide a grammar for athat provide a grammar for a







class of documents.  class of documents.  class of documents.  class of documents.  class of documents.  class of documents.  class of documents.  class of documents.  







This grammar is known as a document type definition,This grammar is known as a document type definition,This grammar is known as a document type definition,This grammar is known as a document type definition,This grammar is known as a document type definition,This grammar is known as a document type definition,This grammar is known as a document type definition,This grammar is known as a document type definition,







or or or or or or or or <term>DTDDTDDTDDTDDTDDTDDTDDTD</term>.  .  .  .  .  .  .  .  







The document type declaration can point to an external subset (aThe document type declaration can point to an external subset (aThe document type declaration can point to an external subset (aThe document type declaration can point to an external subset (aThe document type declaration can point to an external subset (aThe document type declaration can point to an external subset (aThe document type declaration can point to an external subset (aThe document type declaration can point to an external subset (a







special kind of special kind of special kind of special kind of special kind of special kind of special kind of special kind of 







<termref def='dt-extent'>external entityexternal entityexternal entityexternal entityexternal entityexternal entityexternal entityexternal entity</termref>) containing markup) containing markup) containing markup) containing markup) containing markup) containing markup) containing markup) containing markup







declarations, or can declarations, or can declarations, or can declarations, or can declarations, or can declarations, or can declarations, or can declarations, or can 







contain the markup declarations directly in an internal subset, or can docontain the markup declarations directly in an internal subset, or can docontain the markup declarations directly in an internal subset, or can docontain the markup declarations directly in an internal subset, or can docontain the markup declarations directly in an internal subset, or can docontain the markup declarations directly in an internal subset, or can docontain the markup declarations directly in an internal subset, or can docontain the markup declarations directly in an internal subset, or can do







both.   both.   both.   both.   both.   both.   both.   both.   







The DTD for a document consists of both subsets takenThe DTD for a document consists of both subsets takenThe DTD for a document consists of both subsets takenThe DTD for a document consists of both subsets takenThe DTD for a document consists of both subsets takenThe DTD for a document consists of both subsets takenThe DTD for a document consists of both subsets takenThe DTD for a document consists of both subsets taken







together.together.together.together.together.together.together.together.</termdef>







</p>







<p><termdef id='dt-markupdecl' term='markup declaration'>







A A A A A A A A <term>markup declarationmarkup declarationmarkup declarationmarkup declarationmarkup declarationmarkup declarationmarkup declarationmarkup declaration</term> is  is  is  is  is  is  is  is 







an an an an an an an an <termref def='dt-eldecl'>element type declarationelement type declarationelement type declarationelement type declarationelement type declarationelement type declarationelement type declarationelement type declaration</termref>, , , , , , , , 







an an an an an an an an <termref def='dt-attdecl'>attribute-list declarationattribute-list declarationattribute-list declarationattribute-list declarationattribute-list declarationattribute-list declarationattribute-list declarationattribute-list declaration</termref>, , , , , , , , 







an an an an an an an an <termref def='dt-entdecl'>entity declarationentity declarationentity declarationentity declarationentity declarationentity declarationentity declarationentity declaration</termref>, or, or, or, or, or, or, or, or







a a a a a a a a <termref def='dt-notdecl'>notation declarationnotation declarationnotation declarationnotation declarationnotation declarationnotation declarationnotation declarationnotation declaration</termref>........







</termdef>







These declarations may be contained in whole or in partThese declarations may be contained in whole or in partThese declarations may be contained in whole or in partThese declarations may be contained in whole or in partThese declarations may be contained in whole or in partThese declarations may be contained in whole or in partThese declarations may be contained in whole or in partThese declarations may be contained in whole or in part







within within within within within within within within <termref def='dt-PE'>parameter entitiesparameter entitiesparameter entitiesparameter entitiesparameter entitiesparameter entitiesparameter entitiesparameter entities</termref>,,,,,,,,







as described in the well-formedness and validity constraints below.as described in the well-formedness and validity constraints below.as described in the well-formedness and validity constraints below.as described in the well-formedness and validity constraints below.as described in the well-formedness and validity constraints below.as described in the well-formedness and validity constraints below.as described in the well-formedness and validity constraints below.as described in the well-formedness and validity constraints below.







For fuller information, seeFor fuller information, seeFor fuller information, seeFor fuller information, seeFor fuller information, seeFor fuller information, seeFor fuller information, seeFor fuller information, see







<specref ref='sec-physical-struct'></specref>........</p>







<scrap lang='ebnf' id='dtd'>







<head>Document Type DefinitionDocument Type DefinitionDocument Type DefinitionDocument Type DefinitionDocument Type DefinitionDocument Type DefinitionDocument Type DefinitionDocument Type Definition</head>







<prodgroup pcw2='6' pcw4='17.5' pcw5='9'>







<prod id='NT-doctypedecl'><lhs>doctypedecldoctypedecldoctypedecldoctypedecldoctypedecldoctypedecldoctypedecldoctypedecl</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!DOCTYPE' !DOCTYPE' !DOCTYPE' !DOCTYPE' !DOCTYPE' !DOCTYPE' !DOCTYPE' !DOCTYPE' <nt def='NT-S'>SSSSSSSS</nt>        







<nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> ( ( ( ( ( ( ( (<nt def='NT-S'>SSSSSSSS</nt>        







<nt def='NT-ExternalID'>ExternalIDExternalIDExternalIDExternalIDExternalIDExternalIDExternalIDExternalID</nt>)? )? )? )? )? )? )? )? 







<nt def='NT-S'>SSSSSSSS</nt>? ('[' ? ('[' ? ('[' ? ('[' ? ('[' ? ('[' ? ('[' ? ('[' 







((((((((<nt def='NT-markupdecl'>markupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdecl</nt>        







| | | | | | | | <nt def='NT-PEReference'>PEReferencePEReferencePEReferencePEReferencePEReferencePEReferencePEReferencePEReference</nt>        







| | | | | | | | <nt def='NT-S'>SSSSSSSS</nt>)*)*)*)*)*)*)*)*







']' ']' ']' ']' ']' ']' ']' ']' 







<nt def='NT-S'>SSSSSSSS</nt>?)? '&gt;'?)? '&gt;'?)? '&gt;'?)? '&gt;'?)? '&gt;'?)? '&gt;'?)? '&gt;'?)? '&gt;'</rhs>







<vc def='vc-roottype'></vc>







</prod>







<prod id='NT-markupdecl'><lhs>markupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdecl</lhs>







<rhs><nt def='NT-elementdecl'>elementdeclelementdeclelementdeclelementdeclelementdeclelementdeclelementdeclelementdecl</nt>        







| | | | | | | | <nt def='NT-AttlistDecl'>AttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDecl</nt>        







| | | | | | | | <nt def='NT-EntityDecl'>EntityDeclEntityDeclEntityDeclEntityDeclEntityDeclEntityDeclEntityDeclEntityDecl</nt>        







| | | | | | | | <nt def='NT-NotationDecl'>NotationDeclNotationDeclNotationDeclNotationDeclNotationDeclNotationDeclNotationDeclNotationDecl</nt>        







| | | | | | | | <nt def='NT-PI'>PIPIPIPIPIPIPIPI</nt>        







| | | | | | | | <nt def='NT-Comment'>CommentCommentCommentCommentCommentCommentCommentComment</nt>







</rhs>







<vc def='vc-PEinMarkupDecl'></vc>







<wfc def='wfc-PEinInternalSubset'></wfc>







</prod>















</prodgroup>







</scrap>















<p>The markup declarations may be made up in whole or in part ofThe markup declarations may be made up in whole or in part ofThe markup declarations may be made up in whole or in part ofThe markup declarations may be made up in whole or in part ofThe markup declarations may be made up in whole or in part ofThe markup declarations may be made up in whole or in part ofThe markup declarations may be made up in whole or in part ofThe markup declarations may be made up in whole or in part of







the the the the the the the the <termref def='dt-repltext'>replacement textreplacement textreplacement textreplacement textreplacement textreplacement textreplacement textreplacement text</termref> of  of  of  of  of  of  of  of 







<termref def='dt-PE'>parameter entitiesparameter entitiesparameter entitiesparameter entitiesparameter entitiesparameter entitiesparameter entitiesparameter entities</termref>........







The productions later in this specification forThe productions later in this specification forThe productions later in this specification forThe productions later in this specification forThe productions later in this specification forThe productions later in this specification forThe productions later in this specification forThe productions later in this specification for







individual nonterminals (individual nonterminals (individual nonterminals (individual nonterminals (individual nonterminals (individual nonterminals (individual nonterminals (individual nonterminals (<nt def='NT-elementdecl'>elementdeclelementdeclelementdeclelementdeclelementdeclelementdeclelementdeclelementdecl</nt>,,,,,,,,







<nt def='NT-AttlistDecl'>AttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDecl</nt>, and so on) describe , and so on) describe , and so on) describe , and so on) describe , and so on) describe , and so on) describe , and so on) describe , and so on) describe 







the declarations the declarations the declarations the declarations the declarations the declarations the declarations the declarations <emph>afterafterafterafterafterafterafterafter</emph> all the parameter entities have been  all the parameter entities have been  all the parameter entities have been  all the parameter entities have been  all the parameter entities have been  all the parameter entities have been  all the parameter entities have been  all the parameter entities have been 







<termref def='dt-include'>includedincludedincludedincludedincludedincludedincludedincluded</termref>........</p>















<vcnote id='vc-roottype'>







<head>Root Element TypeRoot Element TypeRoot Element TypeRoot Element TypeRoot Element TypeRoot Element TypeRoot Element TypeRoot Element Type</head>







<p>







The The The The The The The The <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> in the document type declaration must in the document type declaration must in the document type declaration must in the document type declaration must in the document type declaration must in the document type declaration must in the document type declaration must in the document type declaration must







match the element type of the match the element type of the match the element type of the match the element type of the match the element type of the match the element type of the match the element type of the match the element type of the <termref def='dt-root'>root elementroot elementroot elementroot elementroot elementroot elementroot elementroot element</termref>........







</p>







</vcnote>















<vcnote id='vc-PEinMarkupDecl'>







<head>Proper Declaration/PE NestingProper Declaration/PE NestingProper Declaration/PE NestingProper Declaration/PE NestingProper Declaration/PE NestingProper Declaration/PE NestingProper Declaration/PE NestingProper Declaration/PE Nesting</head>







<p>Parameter-entity Parameter-entity Parameter-entity Parameter-entity Parameter-entity Parameter-entity Parameter-entity Parameter-entity 







<termref def='dt-repltext'>replacement textreplacement textreplacement textreplacement textreplacement textreplacement textreplacement textreplacement text</termref> must be properly nested must be properly nested must be properly nested must be properly nested must be properly nested must be properly nested must be properly nested must be properly nested







with markup declarations. with markup declarations. with markup declarations. with markup declarations. with markup declarations. with markup declarations. with markup declarations. with markup declarations. 







That is to say, if either the first characterThat is to say, if either the first characterThat is to say, if either the first characterThat is to say, if either the first characterThat is to say, if either the first characterThat is to say, if either the first characterThat is to say, if either the first characterThat is to say, if either the first character







or the last character of a markupor the last character of a markupor the last character of a markupor the last character of a markupor the last character of a markupor the last character of a markupor the last character of a markupor the last character of a markup







declaration (declaration (declaration (declaration (declaration (declaration (declaration (declaration (<nt def='NT-markupdecl'>markupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdecl</nt> above) above) above) above) above) above) above) above)







is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a 







<termref def='dt-PERef'>parameter-entity referenceparameter-entity referenceparameter-entity referenceparameter-entity referenceparameter-entity referenceparameter-entity referenceparameter-entity referenceparameter-entity reference</termref>,,,,,,,,







both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.</p>







</vcnote>







<wfcnote id='wfc-PEinInternalSubset'>







<head>PEs in Internal SubsetPEs in Internal SubsetPEs in Internal SubsetPEs in Internal SubsetPEs in Internal SubsetPEs in Internal SubsetPEs in Internal SubsetPEs in Internal Subset</head>







<p>In the internal DTD subset, In the internal DTD subset, In the internal DTD subset, In the internal DTD subset, In the internal DTD subset, In the internal DTD subset, In the internal DTD subset, In the internal DTD subset, 







<termref def='dt-PERef'>parameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity references</termref>







can occur only where markup declarations can occur, notcan occur only where markup declarations can occur, notcan occur only where markup declarations can occur, notcan occur only where markup declarations can occur, notcan occur only where markup declarations can occur, notcan occur only where markup declarations can occur, notcan occur only where markup declarations can occur, notcan occur only where markup declarations can occur, not







within markup declarations.  (This does not apply towithin markup declarations.  (This does not apply towithin markup declarations.  (This does not apply towithin markup declarations.  (This does not apply towithin markup declarations.  (This does not apply towithin markup declarations.  (This does not apply towithin markup declarations.  (This does not apply towithin markup declarations.  (This does not apply to







references that occur inreferences that occur inreferences that occur inreferences that occur inreferences that occur inreferences that occur inreferences that occur inreferences that occur in







external parameter entities or to the external subset.)external parameter entities or to the external subset.)external parameter entities or to the external subset.)external parameter entities or to the external subset.)external parameter entities or to the external subset.)external parameter entities or to the external subset.)external parameter entities or to the external subset.)external parameter entities or to the external subset.)







</p>







</wfcnote>







<p>







Like the internal subset, the external subset and Like the internal subset, the external subset and Like the internal subset, the external subset and Like the internal subset, the external subset and Like the internal subset, the external subset and Like the internal subset, the external subset and Like the internal subset, the external subset and Like the internal subset, the external subset and 







any external parameter entities referred to in the DTD any external parameter entities referred to in the DTD any external parameter entities referred to in the DTD any external parameter entities referred to in the DTD any external parameter entities referred to in the DTD any external parameter entities referred to in the DTD any external parameter entities referred to in the DTD any external parameter entities referred to in the DTD 







must consist of a series of complete markup declarations of the types must consist of a series of complete markup declarations of the types must consist of a series of complete markup declarations of the types must consist of a series of complete markup declarations of the types must consist of a series of complete markup declarations of the types must consist of a series of complete markup declarations of the types must consist of a series of complete markup declarations of the types must consist of a series of complete markup declarations of the types 







allowed by the non-terminal symbolallowed by the non-terminal symbolallowed by the non-terminal symbolallowed by the non-terminal symbolallowed by the non-terminal symbolallowed by the non-terminal symbolallowed by the non-terminal symbolallowed by the non-terminal symbol







<nt def='NT-markupdecl'>markupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdecl</nt>, interspersed with white space, interspersed with white space, interspersed with white space, interspersed with white space, interspersed with white space, interspersed with white space, interspersed with white space, interspersed with white space







or or or or or or or or <termref def='dt-PERef'>parameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity references</termref>........







However, portions of the contentsHowever, portions of the contentsHowever, portions of the contentsHowever, portions of the contentsHowever, portions of the contentsHowever, portions of the contentsHowever, portions of the contentsHowever, portions of the contents







of the of the of the of the of the of the of the of the 







external subset or of external parameter entities may conditionally be ignoredexternal subset or of external parameter entities may conditionally be ignoredexternal subset or of external parameter entities may conditionally be ignoredexternal subset or of external parameter entities may conditionally be ignoredexternal subset or of external parameter entities may conditionally be ignoredexternal subset or of external parameter entities may conditionally be ignoredexternal subset or of external parameter entities may conditionally be ignoredexternal subset or of external parameter entities may conditionally be ignored







by using by using by using by using by using by using by using by using 







the the the the the the the the <termref def='dt-cond-section'>conditional sectionconditional sectionconditional sectionconditional sectionconditional sectionconditional sectionconditional sectionconditional section</termref>







construct; this is not allowed in the internal subset.construct; this is not allowed in the internal subset.construct; this is not allowed in the internal subset.construct; this is not allowed in the internal subset.construct; this is not allowed in the internal subset.construct; this is not allowed in the internal subset.construct; this is not allowed in the internal subset.construct; this is not allowed in the internal subset.















<scrap id='ext-Subset'>







<head>External SubsetExternal SubsetExternal SubsetExternal SubsetExternal SubsetExternal SubsetExternal SubsetExternal Subset</head>







<prodgroup pcw2='6' pcw4='17.5' pcw5='9'>







<prod id='NT-extSubset'><lhs>extSubsetextSubsetextSubsetextSubsetextSubsetextSubsetextSubsetextSubset</lhs>







<rhs><nt def='NT-TextDecl'>TextDeclTextDeclTextDeclTextDeclTextDeclTextDeclTextDeclTextDecl</nt>????????







<nt def='NT-extSubsetDecl'>extSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDecl</nt></rhs></prod>







<prod id='NT-extSubsetDecl'><lhs>extSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDecl</lhs>







<rhs>((((((((







<nt def='NT-markupdecl'>markupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdeclmarkupdecl</nt>        







| | | | | | | | <nt def='NT-conditionalSect'>conditionalSectconditionalSectconditionalSectconditionalSectconditionalSectconditionalSectconditionalSectconditionalSect</nt>        







| | | | | | | | <nt def='NT-PEReference'>PEReferencePEReferencePEReferencePEReferencePEReferencePEReferencePEReferencePEReference</nt>        







| | | | | | | | <nt def='NT-S'>SSSSSSSS</nt>







)*)*)*)*)*)*)*)*</rhs>







</prod>







</prodgroup>







</scrap></p>







<p>The external subset and external parameter entities also differ The external subset and external parameter entities also differ The external subset and external parameter entities also differ The external subset and external parameter entities also differ The external subset and external parameter entities also differ The external subset and external parameter entities also differ The external subset and external parameter entities also differ The external subset and external parameter entities also differ 







from the internal subset in that in them,from the internal subset in that in them,from the internal subset in that in them,from the internal subset in that in them,from the internal subset in that in them,from the internal subset in that in them,from the internal subset in that in them,from the internal subset in that in them,







<termref def='dt-PERef'>parameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity referencesparameter-entity references</termref>







are permitted are permitted are permitted are permitted are permitted are permitted are permitted are permitted <emph>withinwithinwithinwithinwithinwithinwithinwithin</emph> markup declarations, markup declarations, markup declarations, markup declarations, markup declarations, markup declarations, markup declarations, markup declarations,







not only not only not only not only not only not only not only not only <emph>betweenbetweenbetweenbetweenbetweenbetweenbetweenbetween</emph> markup declarations. markup declarations. markup declarations. markup declarations. markup declarations. markup declarations. markup declarations. markup declarations.</p>







<p>An example of an XML document with a document type declaration:An example of an XML document with a document type declaration:An example of an XML document with a document type declaration:An example of an XML document with a document type declaration:An example of an XML document with a document type declaration:An example of an XML document with a document type declaration:An example of an XML document with a document type declaration:An example of an XML document with a document type declaration:







<eg><![CDATA[<?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?><?xml version="1.0"?>







<!DOCTYPE greeting SYSTEM "hello.dtd"><!DOCTYPE greeting SYSTEM "hello.dtd"><!DOCTYPE greeting SYSTEM "hello.dtd"><!DOCTYPE greeting SYSTEM "hello.dtd"><!DOCTYPE greeting SYSTEM "hello.dtd"><!DOCTYPE greeting SYSTEM "hello.dtd"><!DOCTYPE greeting SYSTEM "hello.dtd"><!DOCTYPE greeting SYSTEM "hello.dtd">







<greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting>







]]></eg>







The The The The The The The The <termref def='dt-sysid'>system identifiersystem identifiersystem identifiersystem identifiersystem identifiersystem identifiersystem identifiersystem identifier</termref>        







""""""""<code>hello.dtdhello.dtdhello.dtdhello.dtdhello.dtdhello.dtdhello.dtdhello.dtd</code>" gives the URI of a DTD for the document." gives the URI of a DTD for the document." gives the URI of a DTD for the document." gives the URI of a DTD for the document." gives the URI of a DTD for the document." gives the URI of a DTD for the document." gives the URI of a DTD for the document." gives the URI of a DTD for the document.</p>







<p>The declarations can also be given locally, as in this The declarations can also be given locally, as in this The declarations can also be given locally, as in this The declarations can also be given locally, as in this The declarations can also be given locally, as in this The declarations can also be given locally, as in this The declarations can also be given locally, as in this The declarations can also be given locally, as in this 







example:example:example:example:example:example:example:example:







<eg><![CDATA[<?xml version="1.0" encoding="UTF-8" ?><?xml version="1.0" encoding="UTF-8" ?><?xml version="1.0" encoding="UTF-8" ?><?xml version="1.0" encoding="UTF-8" ?><?xml version="1.0" encoding="UTF-8" ?><?xml version="1.0" encoding="UTF-8" ?><?xml version="1.0" encoding="UTF-8" ?><?xml version="1.0" encoding="UTF-8" ?>







<!DOCTYPE greeting [<!DOCTYPE greeting [<!DOCTYPE greeting [<!DOCTYPE greeting [<!DOCTYPE greeting [<!DOCTYPE greeting [<!DOCTYPE greeting [<!DOCTYPE greeting [







  <!ELEMENT greeting (#PCDATA)>  <!ELEMENT greeting (#PCDATA)>  <!ELEMENT greeting (#PCDATA)>  <!ELEMENT greeting (#PCDATA)>  <!ELEMENT greeting (#PCDATA)>  <!ELEMENT greeting (#PCDATA)>  <!ELEMENT greeting (#PCDATA)>  <!ELEMENT greeting (#PCDATA)>







]>]>]>]>]>]>]>]>







<greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting><greeting>Hello, world!</greeting>







]]></eg>







If both the external and internal subsets are used, the If both the external and internal subsets are used, the If both the external and internal subsets are used, the If both the external and internal subsets are used, the If both the external and internal subsets are used, the If both the external and internal subsets are used, the If both the external and internal subsets are used, the If both the external and internal subsets are used, the 







internal subset is considered to occur before the external subset.internal subset is considered to occur before the external subset.internal subset is considered to occur before the external subset.internal subset is considered to occur before the external subset.internal subset is considered to occur before the external subset.internal subset is considered to occur before the external subset.internal subset is considered to occur before the external subset.internal subset is considered to occur before the external subset.







<!-- 'is considered to'? boo. whazzat mean? -->







This has the effect that entity and attribute-list declarations in theThis has the effect that entity and attribute-list declarations in theThis has the effect that entity and attribute-list declarations in theThis has the effect that entity and attribute-list declarations in theThis has the effect that entity and attribute-list declarations in theThis has the effect that entity and attribute-list declarations in theThis has the effect that entity and attribute-list declarations in theThis has the effect that entity and attribute-list declarations in the







internal subset take precedence over those in the external subset.internal subset take precedence over those in the external subset.internal subset take precedence over those in the external subset.internal subset take precedence over those in the external subset.internal subset take precedence over those in the external subset.internal subset take precedence over those in the external subset.internal subset take precedence over those in the external subset.internal subset take precedence over those in the external subset.







</p>







</div2>







        







<div2 id='sec-rmd'>







<head>Standalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document Declaration</head>







<p>Markup declarations can affect the content of the document,Markup declarations can affect the content of the document,Markup declarations can affect the content of the document,Markup declarations can affect the content of the document,Markup declarations can affect the content of the document,Markup declarations can affect the content of the document,Markup declarations can affect the content of the document,Markup declarations can affect the content of the document,







as passed from an as passed from an as passed from an as passed from an as passed from an as passed from an as passed from an as passed from an <termref def='dt-xml-proc'>XML processorXML processorXML processorXML processorXML processorXML processorXML processorXML processor</termref>        







to an application; examples are attribute defaults and entityto an application; examples are attribute defaults and entityto an application; examples are attribute defaults and entityto an application; examples are attribute defaults and entityto an application; examples are attribute defaults and entityto an application; examples are attribute defaults and entityto an application; examples are attribute defaults and entityto an application; examples are attribute defaults and entity







declarations.declarations.declarations.declarations.declarations.declarations.declarations.declarations.







The standalone document declaration,The standalone document declaration,The standalone document declaration,The standalone document declaration,The standalone document declaration,The standalone document declaration,The standalone document declaration,The standalone document declaration,







which may appear as a component of the XML declaration, signalswhich may appear as a component of the XML declaration, signalswhich may appear as a component of the XML declaration, signalswhich may appear as a component of the XML declaration, signalswhich may appear as a component of the XML declaration, signalswhich may appear as a component of the XML declaration, signalswhich may appear as a component of the XML declaration, signalswhich may appear as a component of the XML declaration, signals







whether or not there are such declarations which appear external to whether or not there are such declarations which appear external to whether or not there are such declarations which appear external to whether or not there are such declarations which appear external to whether or not there are such declarations which appear external to whether or not there are such declarations which appear external to whether or not there are such declarations which appear external to whether or not there are such declarations which appear external to 







the the the the the the the the <termref def='dt-docent'>document entitydocument entitydocument entitydocument entitydocument entitydocument entitydocument entitydocument entity</termref>........







<scrap lang='ebnf' id='fulldtd'>







<head>Standalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document Declaration</head>







<prodgroup pcw2='4' pcw4='19.5' pcw5='9'>







<prod id='NT-SDDecl'><lhs>SDDeclSDDeclSDDeclSDDeclSDDeclSDDeclSDDeclSDDecl</lhs>







<rhs>







<nt def='NT-S'>SSSSSSSS</nt>        







'standalone' 'standalone' 'standalone' 'standalone' 'standalone' 'standalone' 'standalone' 'standalone' <nt def='NT-Eq'>EqEqEqEqEqEqEqEq</nt>        







(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))(("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"'))







</rhs>







<vc def='vc-check-rmd'></vc></prod>







</prodgroup>







</scrap></p>







<p>







In a standalone document declaration, the value "In a standalone document declaration, the value "In a standalone document declaration, the value "In a standalone document declaration, the value "In a standalone document declaration, the value "In a standalone document declaration, the value "In a standalone document declaration, the value "In a standalone document declaration, the value "<code>yesyesyesyesyesyesyesyes</code>" indicates" indicates" indicates" indicates" indicates" indicates" indicates" indicates







that there that there that there that there that there that there that there that there 







are no markup declarations external to the are no markup declarations external to the are no markup declarations external to the are no markup declarations external to the are no markup declarations external to the are no markup declarations external to the are no markup declarations external to the are no markup declarations external to the <termref def='dt-docent'>documentdocumentdocumentdocumentdocumentdocumentdocumentdocument







entityentityentityentityentityentityentityentity</termref> (either in the DTD external subset, or in an (either in the DTD external subset, or in an (either in the DTD external subset, or in an (either in the DTD external subset, or in an (either in the DTD external subset, or in an (either in the DTD external subset, or in an (either in the DTD external subset, or in an (either in the DTD external subset, or in an







external parameter entity referenced from the internal subset)external parameter entity referenced from the internal subset)external parameter entity referenced from the internal subset)external parameter entity referenced from the internal subset)external parameter entity referenced from the internal subset)external parameter entity referenced from the internal subset)external parameter entity referenced from the internal subset)external parameter entity referenced from the internal subset)







which affect the information passed from the XML processor towhich affect the information passed from the XML processor towhich affect the information passed from the XML processor towhich affect the information passed from the XML processor towhich affect the information passed from the XML processor towhich affect the information passed from the XML processor towhich affect the information passed from the XML processor towhich affect the information passed from the XML processor to







the application.  the application.  the application.  the application.  the application.  the application.  the application.  the application.  







The value "The value "The value "The value "The value "The value "The value "The value "<code>nononononononono</code>" indicates that there are or may be such" indicates that there are or may be such" indicates that there are or may be such" indicates that there are or may be such" indicates that there are or may be such" indicates that there are or may be such" indicates that there are or may be such" indicates that there are or may be such







external markup declarations.external markup declarations.external markup declarations.external markup declarations.external markup declarations.external markup declarations.external markup declarations.external markup declarations.







Note that the standalone document declaration only Note that the standalone document declaration only Note that the standalone document declaration only Note that the standalone document declaration only Note that the standalone document declaration only Note that the standalone document declaration only Note that the standalone document declaration only Note that the standalone document declaration only 







denotes the presence of external denotes the presence of external denotes the presence of external denotes the presence of external denotes the presence of external denotes the presence of external denotes the presence of external denotes the presence of external <emph>declarationsdeclarationsdeclarationsdeclarationsdeclarationsdeclarationsdeclarationsdeclarations</emph>; the presence, in a; the presence, in a; the presence, in a; the presence, in a; the presence, in a; the presence, in a; the presence, in a; the presence, in a







document, of document, of document, of document, of document, of document, of document, of document, of 







references to external references to external references to external references to external references to external references to external references to external references to external <emph>entitiesentitiesentitiesentitiesentitiesentitiesentitiesentities</emph>, when those entities are, when those entities are, when those entities are, when those entities are, when those entities are, when those entities are, when those entities are, when those entities are







internally declared, internally declared, internally declared, internally declared, internally declared, internally declared, internally declared, internally declared, 







does not change its standalone status.does not change its standalone status.does not change its standalone status.does not change its standalone status.does not change its standalone status.does not change its standalone status.does not change its standalone status.does not change its standalone status.</p>







<p>If there are no external markup declarations, the standalone documentIf there are no external markup declarations, the standalone documentIf there are no external markup declarations, the standalone documentIf there are no external markup declarations, the standalone documentIf there are no external markup declarations, the standalone documentIf there are no external markup declarations, the standalone documentIf there are no external markup declarations, the standalone documentIf there are no external markup declarations, the standalone document







declaration has no meaning. declaration has no meaning. declaration has no meaning. declaration has no meaning. declaration has no meaning. declaration has no meaning. declaration has no meaning. declaration has no meaning. 







If there are external markup declarations but there is no standaloneIf there are external markup declarations but there is no standaloneIf there are external markup declarations but there is no standaloneIf there are external markup declarations but there is no standaloneIf there are external markup declarations but there is no standaloneIf there are external markup declarations but there is no standaloneIf there are external markup declarations but there is no standaloneIf there are external markup declarations but there is no standalone







document declaration, the value "document declaration, the value "document declaration, the value "document declaration, the value "document declaration, the value "document declaration, the value "document declaration, the value "document declaration, the value "<code>nononononononono</code>" is assumed." is assumed." is assumed." is assumed." is assumed." is assumed." is assumed." is assumed.</p>







<p>Any XML document for which Any XML document for which Any XML document for which Any XML document for which Any XML document for which Any XML document for which Any XML document for which Any XML document for which <code>standalone="no"standalone="no"standalone="no"standalone="no"standalone="no"standalone="no"standalone="no"standalone="no"</code> holds can  holds can  holds can  holds can  holds can  holds can  holds can  holds can 







be converted algorithmically to a standalone document, be converted algorithmically to a standalone document, be converted algorithmically to a standalone document, be converted algorithmically to a standalone document, be converted algorithmically to a standalone document, be converted algorithmically to a standalone document, be converted algorithmically to a standalone document, be converted algorithmically to a standalone document, 







which may be desirable for some network delivery applications.which may be desirable for some network delivery applications.which may be desirable for some network delivery applications.which may be desirable for some network delivery applications.which may be desirable for some network delivery applications.which may be desirable for some network delivery applications.which may be desirable for some network delivery applications.which may be desirable for some network delivery applications.</p>







<vcnote id='vc-check-rmd'>







<head>Standalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document DeclarationStandalone Document Declaration</head>







<p>The standalone document declaration must haveThe standalone document declaration must haveThe standalone document declaration must haveThe standalone document declaration must haveThe standalone document declaration must haveThe standalone document declaration must haveThe standalone document declaration must haveThe standalone document declaration must have







the value "the value "the value "the value "the value "the value "the value "the value "<code>nononononononono</code>" if any external markup declarations" if any external markup declarations" if any external markup declarations" if any external markup declarations" if any external markup declarations" if any external markup declarations" if any external markup declarations" if any external markup declarations







contain declarations of:contain declarations of:contain declarations of:contain declarations of:contain declarations of:contain declarations of:contain declarations of:contain declarations of:</p><ulist>







<item><p>attributes with attributes with attributes with attributes with attributes with attributes with attributes with attributes with <termref def='dt-default'>defaultdefaultdefaultdefaultdefaultdefaultdefaultdefault</termref> values, if values, if values, if values, if values, if values, if values, if values, if







elements to whichelements to whichelements to whichelements to whichelements to whichelements to whichelements to whichelements to which







these attributes apply appear in the document withoutthese attributes apply appear in the document withoutthese attributes apply appear in the document withoutthese attributes apply appear in the document withoutthese attributes apply appear in the document withoutthese attributes apply appear in the document withoutthese attributes apply appear in the document withoutthese attributes apply appear in the document without







specifications of values for these attributes, orspecifications of values for these attributes, orspecifications of values for these attributes, orspecifications of values for these attributes, orspecifications of values for these attributes, orspecifications of values for these attributes, orspecifications of values for these attributes, orspecifications of values for these attributes, or</p></item>







<item><p>entities (other than entities (other than entities (other than entities (other than entities (other than entities (other than entities (other than entities (other than <code>ampampampampampampampamp</code>,,,,,,,,







<code>ltltltltltltltlt</code>,,,,,,,,







<code>gtgtgtgtgtgtgtgt</code>,,,,,,,,







<code>aposaposaposaposaposaposaposapos</code>,,,,,,,,







<code>quotquotquotquotquotquotquotquot</code>), ), ), ), ), ), ), ), 







if if if if if if if if <termref def='dt-entref'>referencesreferencesreferencesreferencesreferencesreferencesreferencesreferences</termref> to those to those to those to those to those to those to those to those







entities appear in the document, orentities appear in the document, orentities appear in the document, orentities appear in the document, orentities appear in the document, orentities appear in the document, orentities appear in the document, orentities appear in the document, or</p>







</item>







<item><p>attributes with values subject toattributes with values subject toattributes with values subject toattributes with values subject toattributes with values subject toattributes with values subject toattributes with values subject toattributes with values subject to







<titleref href='AVNormalize'>normalizationnormalizationnormalizationnormalizationnormalizationnormalizationnormalizationnormalization</titleref>, where the, where the, where the, where the, where the, where the, where the, where the







attribute appears in the document with a value which willattribute appears in the document with a value which willattribute appears in the document with a value which willattribute appears in the document with a value which willattribute appears in the document with a value which willattribute appears in the document with a value which willattribute appears in the document with a value which willattribute appears in the document with a value which will







change as a result of normalization, orchange as a result of normalization, orchange as a result of normalization, orchange as a result of normalization, orchange as a result of normalization, orchange as a result of normalization, orchange as a result of normalization, orchange as a result of normalization, or</p>







</item>







<item>







<p>element types with element types with element types with element types with element types with element types with element types with element types with <termref def='dt-elemcontent'>element contentelement contentelement contentelement contentelement contentelement contentelement contentelement content</termref>, , , , , , , , 







if white space occursif white space occursif white space occursif white space occursif white space occursif white space occursif white space occursif white space occurs







directly within any instance of those types.directly within any instance of those types.directly within any instance of those types.directly within any instance of those types.directly within any instance of those types.directly within any instance of those types.directly within any instance of those types.directly within any instance of those types.







</p></item>







</ulist>















</vcnote>







<p>An example XML declaration with a standalone document declaration:An example XML declaration with a standalone document declaration:An example XML declaration with a standalone document declaration:An example XML declaration with a standalone document declaration:An example XML declaration with a standalone document declaration:An example XML declaration with a standalone document declaration:An example XML declaration with a standalone document declaration:An example XML declaration with a standalone document declaration:<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;?xml version="?xml version="?xml version="?xml version="?xml version="?xml version="?xml version="?xml version="1.01.01.01.01.01.01.01.0" standalone='yes'?&gt;" standalone='yes'?&gt;" standalone='yes'?&gt;" standalone='yes'?&gt;" standalone='yes'?&gt;" standalone='yes'?&gt;" standalone='yes'?&gt;" standalone='yes'?&gt;</eg></p>







</div2>







<div2 id='sec-white-space'>







<head>White Space HandlingWhite Space HandlingWhite Space HandlingWhite Space HandlingWhite Space HandlingWhite Space HandlingWhite Space HandlingWhite Space Handling</head>















<p>In editing XML documents, it is often convenient to use "white space"In editing XML documents, it is often convenient to use "white space"In editing XML documents, it is often convenient to use "white space"In editing XML documents, it is often convenient to use "white space"In editing XML documents, it is often convenient to use "white space"In editing XML documents, it is often convenient to use "white space"In editing XML documents, it is often convenient to use "white space"In editing XML documents, it is often convenient to use "white space"







(spaces, tabs, and blank lines, denoted by the nonterminal (spaces, tabs, and blank lines, denoted by the nonterminal (spaces, tabs, and blank lines, denoted by the nonterminal (spaces, tabs, and blank lines, denoted by the nonterminal (spaces, tabs, and blank lines, denoted by the nonterminal (spaces, tabs, and blank lines, denoted by the nonterminal (spaces, tabs, and blank lines, denoted by the nonterminal (spaces, tabs, and blank lines, denoted by the nonterminal 







<nt def='NT-S'>SSSSSSSS</nt> in this specification) to in this specification) to in this specification) to in this specification) to in this specification) to in this specification) to in this specification) to in this specification) to







set apart the markup for greater readability.  Such white space is typicallyset apart the markup for greater readability.  Such white space is typicallyset apart the markup for greater readability.  Such white space is typicallyset apart the markup for greater readability.  Such white space is typicallyset apart the markup for greater readability.  Such white space is typicallyset apart the markup for greater readability.  Such white space is typicallyset apart the markup for greater readability.  Such white space is typicallyset apart the markup for greater readability.  Such white space is typically







not intended for inclusion in the delivered version of the document.not intended for inclusion in the delivered version of the document.not intended for inclusion in the delivered version of the document.not intended for inclusion in the delivered version of the document.not intended for inclusion in the delivered version of the document.not intended for inclusion in the delivered version of the document.not intended for inclusion in the delivered version of the document.not intended for inclusion in the delivered version of the document.







On the other hand, "significant" white space that should be preserved in theOn the other hand, "significant" white space that should be preserved in theOn the other hand, "significant" white space that should be preserved in theOn the other hand, "significant" white space that should be preserved in theOn the other hand, "significant" white space that should be preserved in theOn the other hand, "significant" white space that should be preserved in theOn the other hand, "significant" white space that should be preserved in theOn the other hand, "significant" white space that should be preserved in the







delivered version is common, for example in poetry anddelivered version is common, for example in poetry anddelivered version is common, for example in poetry anddelivered version is common, for example in poetry anddelivered version is common, for example in poetry anddelivered version is common, for example in poetry anddelivered version is common, for example in poetry anddelivered version is common, for example in poetry and







source code.source code.source code.source code.source code.source code.source code.source code.</p>







<p>An An An An An An An An <termref def='dt-xml-proc'>XML processorXML processorXML processorXML processorXML processorXML processorXML processorXML processor</termref>        







must always pass all characters in a document that are notmust always pass all characters in a document that are notmust always pass all characters in a document that are notmust always pass all characters in a document that are notmust always pass all characters in a document that are notmust always pass all characters in a document that are notmust always pass all characters in a document that are notmust always pass all characters in a document that are not







markup through to the application.   A markup through to the application.   A markup through to the application.   A markup through to the application.   A markup through to the application.   A markup through to the application.   A markup through to the application.   A markup through to the application.   A <termref def='dt-validating'>







validating XML processorvalidating XML processorvalidating XML processorvalidating XML processorvalidating XML processorvalidating XML processorvalidating XML processorvalidating XML processor</termref> must also inform the application must also inform the application must also inform the application must also inform the application must also inform the application must also inform the application must also inform the application must also inform the application







which  of these characters constitute white space appearingwhich  of these characters constitute white space appearingwhich  of these characters constitute white space appearingwhich  of these characters constitute white space appearingwhich  of these characters constitute white space appearingwhich  of these characters constitute white space appearingwhich  of these characters constitute white space appearingwhich  of these characters constitute white space appearing







in in in in in in in in <termref def='dt-elemcontent'>element contentelement contentelement contentelement contentelement contentelement contentelement contentelement content</termref>........







</p>







<p>A special A special A special A special A special A special A special A special <termref def='dt-attr'>attributeattributeattributeattributeattributeattributeattributeattribute</termref>        







named named named named named named named named <kw>xml:spacexml:spacexml:spacexml:spacexml:spacexml:spacexml:spacexml:space</kw> may be attached to an element may be attached to an element may be attached to an element may be attached to an element may be attached to an element may be attached to an element may be attached to an element may be attached to an element







to signal an intention that in that element,to signal an intention that in that element,to signal an intention that in that element,to signal an intention that in that element,to signal an intention that in that element,to signal an intention that in that element,to signal an intention that in that element,to signal an intention that in that element,







white space should be preserved by applications.white space should be preserved by applications.white space should be preserved by applications.white space should be preserved by applications.white space should be preserved by applications.white space should be preserved by applications.white space should be preserved by applications.white space should be preserved by applications.







In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be 







<termref def='dt-attdecl'>declareddeclareddeclareddeclareddeclareddeclareddeclareddeclared</termref> if it is used. if it is used. if it is used. if it is used. if it is used. if it is used. if it is used. if it is used.







When declared, it must be given as an When declared, it must be given as an When declared, it must be given as an When declared, it must be given as an When declared, it must be given as an When declared, it must be given as an When declared, it must be given as an When declared, it must be given as an 







<termref def='dt-enumerated'>enumerated typeenumerated typeenumerated typeenumerated typeenumerated typeenumerated typeenumerated typeenumerated type</termref> whose only whose only whose only whose only whose only whose only whose only whose only







possible values are "possible values are "possible values are "possible values are "possible values are "possible values are "possible values are "possible values are "<code>defaultdefaultdefaultdefaultdefaultdefaultdefaultdefault</code>" and "" and "" and "" and "" and "" and "" and "" and "<code>preservepreservepreservepreservepreservepreservepreservepreserve</code>".".".".".".".".







For example:For example:For example:For example:For example:For example:For example:For example:<eg><![CDATA[    <!ATTLIST poem   xml:space (default|preserve) 'preserve'>    <!ATTLIST poem   xml:space (default|preserve) 'preserve'>    <!ATTLIST poem   xml:space (default|preserve) 'preserve'>    <!ATTLIST poem   xml:space (default|preserve) 'preserve'>    <!ATTLIST poem   xml:space (default|preserve) 'preserve'>    <!ATTLIST poem   xml:space (default|preserve) 'preserve'>    <!ATTLIST poem   xml:space (default|preserve) 'preserve'>    <!ATTLIST poem   xml:space (default|preserve) 'preserve'>]]></eg></p>







<p>The value "The value "The value "The value "The value "The value "The value "The value "<code>defaultdefaultdefaultdefaultdefaultdefaultdefaultdefault</code>" signals that applications'" signals that applications'" signals that applications'" signals that applications'" signals that applications'" signals that applications'" signals that applications'" signals that applications'







default white-space processing modes are acceptable for this element; thedefault white-space processing modes are acceptable for this element; thedefault white-space processing modes are acceptable for this element; thedefault white-space processing modes are acceptable for this element; thedefault white-space processing modes are acceptable for this element; thedefault white-space processing modes are acceptable for this element; thedefault white-space processing modes are acceptable for this element; thedefault white-space processing modes are acceptable for this element; the







value "value "value "value "value "value "value "value "<code>preservepreservepreservepreservepreservepreservepreservepreserve</code>" indicates the intent that applications preserve" indicates the intent that applications preserve" indicates the intent that applications preserve" indicates the intent that applications preserve" indicates the intent that applications preserve" indicates the intent that applications preserve" indicates the intent that applications preserve" indicates the intent that applications preserve







all the white space.all the white space.all the white space.all the white space.all the white space.all the white space.all the white space.all the white space.







This declared intent is considered to apply to all elements within the contentThis declared intent is considered to apply to all elements within the contentThis declared intent is considered to apply to all elements within the contentThis declared intent is considered to apply to all elements within the contentThis declared intent is considered to apply to all elements within the contentThis declared intent is considered to apply to all elements within the contentThis declared intent is considered to apply to all elements within the contentThis declared intent is considered to apply to all elements within the content







of the element where it is specified, unless overriden with another instanceof the element where it is specified, unless overriden with another instanceof the element where it is specified, unless overriden with another instanceof the element where it is specified, unless overriden with another instanceof the element where it is specified, unless overriden with another instanceof the element where it is specified, unless overriden with another instanceof the element where it is specified, unless overriden with another instanceof the element where it is specified, unless overriden with another instance







of the of the of the of the of the of the of the of the <kw>xml:spacexml:spacexml:spacexml:spacexml:spacexml:spacexml:spacexml:space</kw> attribute. attribute. attribute. attribute. attribute. attribute. attribute. attribute.







</p>







<p>The The The The The The The The <termref def='dt-root'>root elementroot elementroot elementroot elementroot elementroot elementroot elementroot element</termref> of any document of any document of any document of any document of any document of any document of any document of any document







is considered to have signaled no intentions as regards application spaceis considered to have signaled no intentions as regards application spaceis considered to have signaled no intentions as regards application spaceis considered to have signaled no intentions as regards application spaceis considered to have signaled no intentions as regards application spaceis considered to have signaled no intentions as regards application spaceis considered to have signaled no intentions as regards application spaceis considered to have signaled no intentions as regards application space







handling, unless it provides a value for handling, unless it provides a value for handling, unless it provides a value for handling, unless it provides a value for handling, unless it provides a value for handling, unless it provides a value for handling, unless it provides a value for handling, unless it provides a value for 







this attribute or the attribute is declared with a default value.this attribute or the attribute is declared with a default value.this attribute or the attribute is declared with a default value.this attribute or the attribute is declared with a default value.this attribute or the attribute is declared with a default value.this attribute or the attribute is declared with a default value.this attribute or the attribute is declared with a default value.this attribute or the attribute is declared with a default value.







</p>















</div2>







<div2 id='sec-line-ends'>







<head>End-of-Line HandlingEnd-of-Line HandlingEnd-of-Line HandlingEnd-of-Line HandlingEnd-of-Line HandlingEnd-of-Line HandlingEnd-of-Line HandlingEnd-of-Line Handling</head>







<p>XML XML XML XML XML XML XML XML <termref def='dt-parsedent'>parsed entitiesparsed entitiesparsed entitiesparsed entitiesparsed entitiesparsed entitiesparsed entitiesparsed entities</termref> are often stored in are often stored in are often stored in are often stored in are often stored in are often stored in are often stored in are often stored in







computer files which, for editing convenience, are organized into lines.computer files which, for editing convenience, are organized into lines.computer files which, for editing convenience, are organized into lines.computer files which, for editing convenience, are organized into lines.computer files which, for editing convenience, are organized into lines.computer files which, for editing convenience, are organized into lines.computer files which, for editing convenience, are organized into lines.computer files which, for editing convenience, are organized into lines.







These lines are typically separated by some combination of the charactersThese lines are typically separated by some combination of the charactersThese lines are typically separated by some combination of the charactersThese lines are typically separated by some combination of the charactersThese lines are typically separated by some combination of the charactersThese lines are typically separated by some combination of the charactersThese lines are typically separated by some combination of the charactersThese lines are typically separated by some combination of the characters







carriage-return (#xD) and line-feed (#xA).carriage-return (#xD) and line-feed (#xA).carriage-return (#xD) and line-feed (#xA).carriage-return (#xD) and line-feed (#xA).carriage-return (#xD) and line-feed (#xA).carriage-return (#xD) and line-feed (#xA).carriage-return (#xD) and line-feed (#xA).carriage-return (#xD) and line-feed (#xA).</p>







<p>To simplify the tasks of To simplify the tasks of To simplify the tasks of To simplify the tasks of To simplify the tasks of To simplify the tasks of To simplify the tasks of To simplify the tasks of <termref def='dt-app'>applicationsapplicationsapplicationsapplicationsapplicationsapplicationsapplicationsapplications</termref>,,,,,,,,







wherever an external parsed entity or the literal entity valuewherever an external parsed entity or the literal entity valuewherever an external parsed entity or the literal entity valuewherever an external parsed entity or the literal entity valuewherever an external parsed entity or the literal entity valuewherever an external parsed entity or the literal entity valuewherever an external parsed entity or the literal entity valuewherever an external parsed entity or the literal entity value







of an internal parsed entity contains either the literal of an internal parsed entity contains either the literal of an internal parsed entity contains either the literal of an internal parsed entity contains either the literal of an internal parsed entity contains either the literal of an internal parsed entity contains either the literal of an internal parsed entity contains either the literal of an internal parsed entity contains either the literal 







two-character sequence "#xD#xA" or a standalone literaltwo-character sequence "#xD#xA" or a standalone literaltwo-character sequence "#xD#xA" or a standalone literaltwo-character sequence "#xD#xA" or a standalone literaltwo-character sequence "#xD#xA" or a standalone literaltwo-character sequence "#xD#xA" or a standalone literaltwo-character sequence "#xD#xA" or a standalone literaltwo-character sequence "#xD#xA" or a standalone literal







#xD, an #xD, an #xD, an #xD, an #xD, an #xD, an #xD, an #xD, an <termref def='dt-xml-proc'>XML processorXML processorXML processorXML processorXML processorXML processorXML processorXML processor</termref> must  must  must  must  must  must  must  must 







pass to the application the single character #xA.pass to the application the single character #xA.pass to the application the single character #xA.pass to the application the single character #xA.pass to the application the single character #xA.pass to the application the single character #xA.pass to the application the single character #xA.pass to the application the single character #xA.







(This behavior can (This behavior can (This behavior can (This behavior can (This behavior can (This behavior can (This behavior can (This behavior can 







conveniently be produced by normalizing all conveniently be produced by normalizing all conveniently be produced by normalizing all conveniently be produced by normalizing all conveniently be produced by normalizing all conveniently be produced by normalizing all conveniently be produced by normalizing all conveniently be produced by normalizing all 







line breaks to #xA on input, before parsing.)line breaks to #xA on input, before parsing.)line breaks to #xA on input, before parsing.)line breaks to #xA on input, before parsing.)line breaks to #xA on input, before parsing.)line breaks to #xA on input, before parsing.)line breaks to #xA on input, before parsing.)line breaks to #xA on input, before parsing.)







</p>







</div2>







<div2 id='sec-lang-tag'>







<head>Language IdentificationLanguage IdentificationLanguage IdentificationLanguage IdentificationLanguage IdentificationLanguage IdentificationLanguage IdentificationLanguage Identification</head>







<p>In document processing, it is often useful toIn document processing, it is often useful toIn document processing, it is often useful toIn document processing, it is often useful toIn document processing, it is often useful toIn document processing, it is often useful toIn document processing, it is often useful toIn document processing, it is often useful to







identify the natural or formal language identify the natural or formal language identify the natural or formal language identify the natural or formal language identify the natural or formal language identify the natural or formal language identify the natural or formal language identify the natural or formal language 







in which the content is in which the content is in which the content is in which the content is in which the content is in which the content is in which the content is in which the content is 







written.written.written.written.written.written.written.written.







A special A special A special A special A special A special A special A special <termref def='dt-attr'>attributeattributeattributeattributeattributeattributeattributeattribute</termref> named named named named named named named named







<kw>xml:langxml:langxml:langxml:langxml:langxml:langxml:langxml:lang</kw> may be inserted in may be inserted in may be inserted in may be inserted in may be inserted in may be inserted in may be inserted in may be inserted in







documents to specify the documents to specify the documents to specify the documents to specify the documents to specify the documents to specify the documents to specify the documents to specify the 







language used in the contents and attribute values language used in the contents and attribute values language used in the contents and attribute values language used in the contents and attribute values language used in the contents and attribute values language used in the contents and attribute values language used in the contents and attribute values language used in the contents and attribute values 







of any element in an XML document.of any element in an XML document.of any element in an XML document.of any element in an XML document.of any element in an XML document.of any element in an XML document.of any element in an XML document.of any element in an XML document.







In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be In valid documents, this attribute, like any other, must be 







<termref def='dt-attdecl'>declareddeclareddeclareddeclareddeclareddeclareddeclareddeclared</termref> if it is used. if it is used. if it is used. if it is used. if it is used. if it is used. if it is used. if it is used.







The values of the attribute are language identifiers as definedThe values of the attribute are language identifiers as definedThe values of the attribute are language identifiers as definedThe values of the attribute are language identifiers as definedThe values of the attribute are language identifiers as definedThe values of the attribute are language identifiers as definedThe values of the attribute are language identifiers as definedThe values of the attribute are language identifiers as defined







by by by by by by by by <bibref ref='RFC1766'></bibref>, "Tags for the Identification of Languages":, "Tags for the Identification of Languages":, "Tags for the Identification of Languages":, "Tags for the Identification of Languages":, "Tags for the Identification of Languages":, "Tags for the Identification of Languages":, "Tags for the Identification of Languages":, "Tags for the Identification of Languages":







<scrap lang='ebnf'>







<head>Language IdentificationLanguage IdentificationLanguage IdentificationLanguage IdentificationLanguage IdentificationLanguage IdentificationLanguage IdentificationLanguage Identification</head>







<prod id='NT-LanguageID'><lhs>LanguageIDLanguageIDLanguageIDLanguageIDLanguageIDLanguageIDLanguageIDLanguageID</lhs>







<rhs><nt def='NT-Langcode'>LangcodeLangcodeLangcodeLangcodeLangcodeLangcodeLangcodeLangcode</nt>        







('-' ('-' ('-' ('-' ('-' ('-' ('-' ('-' <nt def='NT-Subcode'>SubcodeSubcodeSubcodeSubcodeSubcodeSubcodeSubcodeSubcode</nt>)*)*)*)*)*)*)*)*</rhs></prod>







<prod id='NT-Langcode'><lhs>LangcodeLangcodeLangcodeLangcodeLangcodeLangcodeLangcodeLangcode</lhs>







<rhs><nt def='NT-ISO639Code'>ISO639CodeISO639CodeISO639CodeISO639CodeISO639CodeISO639CodeISO639CodeISO639Code</nt> |  |  |  |  |  |  |  | 







<nt def='NT-IanaCode'>IanaCodeIanaCodeIanaCodeIanaCodeIanaCodeIanaCodeIanaCodeIanaCode</nt> |  |  |  |  |  |  |  | 







<nt def='NT-UserCode'>UserCodeUserCodeUserCodeUserCodeUserCodeUserCodeUserCodeUserCode</nt></rhs>







</prod>







<prod id='NT-ISO639Code'><lhs>ISO639CodeISO639CodeISO639CodeISO639CodeISO639CodeISO639CodeISO639CodeISO639Code</lhs>







<rhs>([a-z] | [A-Z]) ([a-z] | [A-Z])([a-z] | [A-Z]) ([a-z] | [A-Z])([a-z] | [A-Z]) ([a-z] | [A-Z])([a-z] | [A-Z]) ([a-z] | [A-Z])([a-z] | [A-Z]) ([a-z] | [A-Z])([a-z] | [A-Z]) ([a-z] | [A-Z])([a-z] | [A-Z]) ([a-z] | [A-Z])([a-z] | [A-Z]) ([a-z] | [A-Z])</rhs></prod>







<prod id='NT-IanaCode'><lhs>IanaCodeIanaCodeIanaCodeIanaCodeIanaCodeIanaCodeIanaCodeIanaCode</lhs>







<rhs>('i' | 'I') '-' ([a-z] | [A-Z])+('i' | 'I') '-' ([a-z] | [A-Z])+('i' | 'I') '-' ([a-z] | [A-Z])+('i' | 'I') '-' ([a-z] | [A-Z])+('i' | 'I') '-' ([a-z] | [A-Z])+('i' | 'I') '-' ([a-z] | [A-Z])+('i' | 'I') '-' ([a-z] | [A-Z])+('i' | 'I') '-' ([a-z] | [A-Z])+</rhs></prod>







<prod id='NT-UserCode'><lhs>UserCodeUserCodeUserCodeUserCodeUserCodeUserCodeUserCodeUserCode</lhs>







<rhs>('x' | 'X') '-' ([a-z] | [A-Z])+('x' | 'X') '-' ([a-z] | [A-Z])+('x' | 'X') '-' ([a-z] | [A-Z])+('x' | 'X') '-' ([a-z] | [A-Z])+('x' | 'X') '-' ([a-z] | [A-Z])+('x' | 'X') '-' ([a-z] | [A-Z])+('x' | 'X') '-' ([a-z] | [A-Z])+('x' | 'X') '-' ([a-z] | [A-Z])+</rhs></prod>







<prod id='NT-Subcode'><lhs>SubcodeSubcodeSubcodeSubcodeSubcodeSubcodeSubcodeSubcode</lhs>







<rhs>([a-z] | [A-Z])+([a-z] | [A-Z])+([a-z] | [A-Z])+([a-z] | [A-Z])+([a-z] | [A-Z])+([a-z] | [A-Z])+([a-z] | [A-Z])+([a-z] | [A-Z])+</rhs></prod>







</scrap>







The The The The The The The The <nt def='NT-Langcode'>LangcodeLangcodeLangcodeLangcodeLangcodeLangcodeLangcodeLangcode</nt> may be any of the following: may be any of the following: may be any of the following: may be any of the following: may be any of the following: may be any of the following: may be any of the following: may be any of the following:







<ulist>







<item><p>a two-letter language code as defined by a two-letter language code as defined by a two-letter language code as defined by a two-letter language code as defined by a two-letter language code as defined by a two-letter language code as defined by a two-letter language code as defined by a two-letter language code as defined by 







<bibref ref='ISO639'></bibref>, "Codes, "Codes, "Codes, "Codes, "Codes, "Codes, "Codes, "Codes







for the representation of names of languages"for the representation of names of languages"for the representation of names of languages"for the representation of names of languages"for the representation of names of languages"for the representation of names of languages"for the representation of names of languages"for the representation of names of languages"</p></item>







<item><p>a language identifier registered with the Interneta language identifier registered with the Interneta language identifier registered with the Interneta language identifier registered with the Interneta language identifier registered with the Interneta language identifier registered with the Interneta language identifier registered with the Interneta language identifier registered with the Internet







Assigned Numbers Authority Assigned Numbers Authority Assigned Numbers Authority Assigned Numbers Authority Assigned Numbers Authority Assigned Numbers Authority Assigned Numbers Authority Assigned Numbers Authority <bibref ref='IANA'></bibref>; these begin with the ; these begin with the ; these begin with the ; these begin with the ; these begin with the ; these begin with the ; these begin with the ; these begin with the 







prefix "prefix "prefix "prefix "prefix "prefix "prefix "prefix "<code>i-i-i-i-i-i-i-i-</code>" (or "" (or "" (or "" (or "" (or "" (or "" (or "" (or "<code>I-I-I-I-I-I-I-I-</code>")")")")")")")")</p></item>







<item><p>a language identifier assigned by the user, or agreed ona language identifier assigned by the user, or agreed ona language identifier assigned by the user, or agreed ona language identifier assigned by the user, or agreed ona language identifier assigned by the user, or agreed ona language identifier assigned by the user, or agreed ona language identifier assigned by the user, or agreed ona language identifier assigned by the user, or agreed on







between parties in private use; these must begin with thebetween parties in private use; these must begin with thebetween parties in private use; these must begin with thebetween parties in private use; these must begin with thebetween parties in private use; these must begin with thebetween parties in private use; these must begin with thebetween parties in private use; these must begin with thebetween parties in private use; these must begin with the







prefix "prefix "prefix "prefix "prefix "prefix "prefix "prefix "<code>x-x-x-x-x-x-x-x-</code>" or "" or "" or "" or "" or "" or "" or "" or "<code>X-X-X-X-X-X-X-X-</code>" in order to ensure that they do not conflict " in order to ensure that they do not conflict " in order to ensure that they do not conflict " in order to ensure that they do not conflict " in order to ensure that they do not conflict " in order to ensure that they do not conflict " in order to ensure that they do not conflict " in order to ensure that they do not conflict 







with names later standardized or registered with IANAwith names later standardized or registered with IANAwith names later standardized or registered with IANAwith names later standardized or registered with IANAwith names later standardized or registered with IANAwith names later standardized or registered with IANAwith names later standardized or registered with IANAwith names later standardized or registered with IANA</p></item>







</ulist></p>







<p>There may be any number of There may be any number of There may be any number of There may be any number of There may be any number of There may be any number of There may be any number of There may be any number of <nt def='NT-Subcode'>SubcodeSubcodeSubcodeSubcodeSubcodeSubcodeSubcodeSubcode</nt> segments; if segments; if segments; if segments; if segments; if segments; if segments; if segments; if







the first the first the first the first the first the first the first the first 







subcode segment exists and the Subcode consists of two subcode segment exists and the Subcode consists of two subcode segment exists and the Subcode consists of two subcode segment exists and the Subcode consists of two subcode segment exists and the Subcode consists of two subcode segment exists and the Subcode consists of two subcode segment exists and the Subcode consists of two subcode segment exists and the Subcode consists of two 







letters, then it must be a country code from letters, then it must be a country code from letters, then it must be a country code from letters, then it must be a country code from letters, then it must be a country code from letters, then it must be a country code from letters, then it must be a country code from letters, then it must be a country code from 







<bibref ref='ISO3166'></bibref>, "Codes , "Codes , "Codes , "Codes , "Codes , "Codes , "Codes , "Codes 







for the representation of names of countries."for the representation of names of countries."for the representation of names of countries."for the representation of names of countries."for the representation of names of countries."for the representation of names of countries."for the representation of names of countries."for the representation of names of countries."







If the first If the first If the first If the first If the first If the first If the first If the first 







subcode consists of more than two letters, it must besubcode consists of more than two letters, it must besubcode consists of more than two letters, it must besubcode consists of more than two letters, it must besubcode consists of more than two letters, it must besubcode consists of more than two letters, it must besubcode consists of more than two letters, it must besubcode consists of more than two letters, it must be







a subcode for the language in question registered with IANA,a subcode for the language in question registered with IANA,a subcode for the language in question registered with IANA,a subcode for the language in question registered with IANA,a subcode for the language in question registered with IANA,a subcode for the language in question registered with IANA,a subcode for the language in question registered with IANA,a subcode for the language in question registered with IANA,







unless the unless the unless the unless the unless the unless the unless the unless the <nt def='NT-Langcode'>LangcodeLangcodeLangcodeLangcodeLangcodeLangcodeLangcodeLangcode</nt> begins with the prefix  begins with the prefix  begins with the prefix  begins with the prefix  begins with the prefix  begins with the prefix  begins with the prefix  begins with the prefix 







""""""""<code>x-x-x-x-x-x-x-x-</code>" or" or" or" or" or" or" or" or







""""""""<code>X-X-X-X-X-X-X-X-</code>". ". ". ". ". ". ". ". </p>







<p>It is customary to give the language code in lower case, andIt is customary to give the language code in lower case, andIt is customary to give the language code in lower case, andIt is customary to give the language code in lower case, andIt is customary to give the language code in lower case, andIt is customary to give the language code in lower case, andIt is customary to give the language code in lower case, andIt is customary to give the language code in lower case, and







the country code (if any) in upper case.the country code (if any) in upper case.the country code (if any) in upper case.the country code (if any) in upper case.the country code (if any) in upper case.the country code (if any) in upper case.the country code (if any) in upper case.the country code (if any) in upper case.







Note that these values, unlike other names in XML documents,Note that these values, unlike other names in XML documents,Note that these values, unlike other names in XML documents,Note that these values, unlike other names in XML documents,Note that these values, unlike other names in XML documents,Note that these values, unlike other names in XML documents,Note that these values, unlike other names in XML documents,Note that these values, unlike other names in XML documents,







are case insensitive.are case insensitive.are case insensitive.are case insensitive.are case insensitive.are case insensitive.are case insensitive.are case insensitive.</p>







<p>For example:For example:For example:For example:For example:For example:For example:For example:







<eg><![CDATA[<p xml:lang="en">The quick brown fox jumps over the lazy dog.</p><p xml:lang="en">The quick brown fox jumps over the lazy dog.</p><p xml:lang="en">The quick brown fox jumps over the lazy dog.</p><p xml:lang="en">The quick brown fox jumps over the lazy dog.</p><p xml:lang="en">The quick brown fox jumps over the lazy dog.</p><p xml:lang="en">The quick brown fox jumps over the lazy dog.</p><p xml:lang="en">The quick brown fox jumps over the lazy dog.</p><p xml:lang="en">The quick brown fox jumps over the lazy dog.</p>







<p xml:lang="en-GB">What colour is it?</p><p xml:lang="en-GB">What colour is it?</p><p xml:lang="en-GB">What colour is it?</p><p xml:lang="en-GB">What colour is it?</p><p xml:lang="en-GB">What colour is it?</p><p xml:lang="en-GB">What colour is it?</p><p xml:lang="en-GB">What colour is it?</p><p xml:lang="en-GB">What colour is it?</p>







<p xml:lang="en-US">What color is it?</p><p xml:lang="en-US">What color is it?</p><p xml:lang="en-US">What color is it?</p><p xml:lang="en-US">What color is it?</p><p xml:lang="en-US">What color is it?</p><p xml:lang="en-US">What color is it?</p><p xml:lang="en-US">What color is it?</p><p xml:lang="en-US">What color is it?</p>







<sp who="Faust" desc='leise' xml:lang="de"><sp who="Faust" desc='leise' xml:lang="de"><sp who="Faust" desc='leise' xml:lang="de"><sp who="Faust" desc='leise' xml:lang="de"><sp who="Faust" desc='leise' xml:lang="de"><sp who="Faust" desc='leise' xml:lang="de"><sp who="Faust" desc='leise' xml:lang="de"><sp who="Faust" desc='leise' xml:lang="de">







  <l>Habe nun, ach! Philosophie,</l>  <l>Habe nun, ach! Philosophie,</l>  <l>Habe nun, ach! Philosophie,</l>  <l>Habe nun, ach! Philosophie,</l>  <l>Habe nun, ach! Philosophie,</l>  <l>Habe nun, ach! Philosophie,</l>  <l>Habe nun, ach! Philosophie,</l>  <l>Habe nun, ach! Philosophie,</l>







  <l>Juristerei, und Medizin</l>  <l>Juristerei, und Medizin</l>  <l>Juristerei, und Medizin</l>  <l>Juristerei, und Medizin</l>  <l>Juristerei, und Medizin</l>  <l>Juristerei, und Medizin</l>  <l>Juristerei, und Medizin</l>  <l>Juristerei, und Medizin</l>







  <l>und leider auch Theologie</l>  <l>und leider auch Theologie</l>  <l>und leider auch Theologie</l>  <l>und leider auch Theologie</l>  <l>und leider auch Theologie</l>  <l>und leider auch Theologie</l>  <l>und leider auch Theologie</l>  <l>und leider auch Theologie</l>







  <l>durchaus studiert mit heißem Bemüh'n.</l>  <l>durchaus studiert mit heißem Bemüh'n.</l>  <l>durchaus studiert mit heißem Bemüh'n.</l>  <l>durchaus studiert mit heißem Bemüh'n.</l>  <l>durchaus studiert mit heißem Bemüh'n.</l>  <l>durchaus studiert mit heißem Bemüh'n.</l>  <l>durchaus studiert mit heißem Bemüh'n.</l>  <l>durchaus studiert mit heißem Bemüh'n.</l>







  </sp>  </sp>  </sp>  </sp>  </sp>  </sp>  </sp>  </sp>]]></eg></p>







<!--<p>The xml:lang value is considered to apply both to the contents of an
element and 
(unless otherwise via attribute default values) to the
values of all of its attributes with free-text (CDATA) values.  -->







<p>The intent declared with The intent declared with The intent declared with The intent declared with The intent declared with The intent declared with The intent declared with The intent declared with <kw>xml:langxml:langxml:langxml:langxml:langxml:langxml:langxml:lang</kw> is considered to apply to is considered to apply to is considered to apply to is considered to apply to is considered to apply to is considered to apply to is considered to apply to is considered to apply to







all attributes and content of the element where it is specified,all attributes and content of the element where it is specified,all attributes and content of the element where it is specified,all attributes and content of the element where it is specified,all attributes and content of the element where it is specified,all attributes and content of the element where it is specified,all attributes and content of the element where it is specified,all attributes and content of the element where it is specified,







unless overridden with an instance of unless overridden with an instance of unless overridden with an instance of unless overridden with an instance of unless overridden with an instance of unless overridden with an instance of unless overridden with an instance of unless overridden with an instance of <kw>xml:langxml:langxml:langxml:langxml:langxml:langxml:langxml:lang</kw>







on another element within that content.on another element within that content.on another element within that content.on another element within that content.on another element within that content.on another element within that content.on another element within that content.on another element within that content.</p>







<!--
If no
value is specified for xml:lang on an element, and no default value is
defined for it in the DTD, then the xml:lang attribute of any element
takes the same value it has in the parent element, if any.  The two
technical terms in the following example both have the same effective
value for xml:lang:

  <p xml:lang="en">Here the keywords are
  <term xml:lang="en">shift</term> and
  <term>reduce</term>. ...</p>

The application, not the XML processor, is responsible for this '
inheritance' of attribute values.
-->







<p>A simple declaration for A simple declaration for A simple declaration for A simple declaration for A simple declaration for A simple declaration for A simple declaration for A simple declaration for <kw>xml:langxml:langxml:langxml:langxml:langxml:langxml:langxml:lang</kw> might take might take might take might take might take might take might take might take







the formthe formthe formthe formthe formthe formthe formthe form







<eg>xml:lang  NMTOKEN  #IMPLIEDxml:lang  NMTOKEN  #IMPLIEDxml:lang  NMTOKEN  #IMPLIEDxml:lang  NMTOKEN  #IMPLIEDxml:lang  NMTOKEN  #IMPLIEDxml:lang  NMTOKEN  #IMPLIEDxml:lang  NMTOKEN  #IMPLIEDxml:lang  NMTOKEN  #IMPLIED</eg>







but specific default values may also be given, if appropriate.  In abut specific default values may also be given, if appropriate.  In abut specific default values may also be given, if appropriate.  In abut specific default values may also be given, if appropriate.  In abut specific default values may also be given, if appropriate.  In abut specific default values may also be given, if appropriate.  In abut specific default values may also be given, if appropriate.  In abut specific default values may also be given, if appropriate.  In a







collection of French poems for English students, with glosses andcollection of French poems for English students, with glosses andcollection of French poems for English students, with glosses andcollection of French poems for English students, with glosses andcollection of French poems for English students, with glosses andcollection of French poems for English students, with glosses andcollection of French poems for English students, with glosses andcollection of French poems for English students, with glosses and







notes in English, the xml:lang attribute might be declared this way:notes in English, the xml:lang attribute might be declared this way:notes in English, the xml:lang attribute might be declared this way:notes in English, the xml:lang attribute might be declared this way:notes in English, the xml:lang attribute might be declared this way:notes in English, the xml:lang attribute might be declared this way:notes in English, the xml:lang attribute might be declared this way:notes in English, the xml:lang attribute might be declared this way:







<eg><![CDATA[    <!ATTLIST poem   xml:lang NMTOKEN 'fr'>    <!ATTLIST poem   xml:lang NMTOKEN 'fr'>    <!ATTLIST poem   xml:lang NMTOKEN 'fr'>    <!ATTLIST poem   xml:lang NMTOKEN 'fr'>    <!ATTLIST poem   xml:lang NMTOKEN 'fr'>    <!ATTLIST poem   xml:lang NMTOKEN 'fr'>    <!ATTLIST poem   xml:lang NMTOKEN 'fr'>    <!ATTLIST poem   xml:lang NMTOKEN 'fr'>







    <!ATTLIST gloss  xml:lang NMTOKEN 'en'>    <!ATTLIST gloss  xml:lang NMTOKEN 'en'>    <!ATTLIST gloss  xml:lang NMTOKEN 'en'>    <!ATTLIST gloss  xml:lang NMTOKEN 'en'>    <!ATTLIST gloss  xml:lang NMTOKEN 'en'>    <!ATTLIST gloss  xml:lang NMTOKEN 'en'>    <!ATTLIST gloss  xml:lang NMTOKEN 'en'>    <!ATTLIST gloss  xml:lang NMTOKEN 'en'>







    <!ATTLIST note   xml:lang NMTOKEN 'en'>    <!ATTLIST note   xml:lang NMTOKEN 'en'>    <!ATTLIST note   xml:lang NMTOKEN 'en'>    <!ATTLIST note   xml:lang NMTOKEN 'en'>    <!ATTLIST note   xml:lang NMTOKEN 'en'>    <!ATTLIST note   xml:lang NMTOKEN 'en'>    <!ATTLIST note   xml:lang NMTOKEN 'en'>    <!ATTLIST note   xml:lang NMTOKEN 'en'>]]></eg>







</p>















</div2>







</div1>







<!-- &Elements; -->







        







<div1 id='sec-logical-struct'>







<head>Logical StructuresLogical StructuresLogical StructuresLogical StructuresLogical StructuresLogical StructuresLogical StructuresLogical Structures</head>







        







<p><termdef id='dt-element' term='Element'>Each Each Each Each Each Each Each Each <termref def='dt-xml-doc'>XML documentXML documentXML documentXML documentXML documentXML documentXML documentXML document</termref> contains one or more contains one or more contains one or more contains one or more contains one or more contains one or more contains one or more contains one or more







<term>elementselementselementselementselementselementselementselements</term>, the boundaries of which are , the boundaries of which are , the boundaries of which are , the boundaries of which are , the boundaries of which are , the boundaries of which are , the boundaries of which are , the boundaries of which are 







either delimited by either delimited by either delimited by either delimited by either delimited by either delimited by either delimited by either delimited by <termref def='dt-stag'>start-tagsstart-tagsstart-tagsstart-tagsstart-tagsstart-tagsstart-tagsstart-tags</termref>        







and and and and and and and and <termref def='dt-etag'>end-tagsend-tagsend-tagsend-tagsend-tagsend-tagsend-tagsend-tags</termref>, or, for , or, for , or, for , or, for , or, for , or, for , or, for , or, for <termref def='dt-empty'>emptyemptyemptyemptyemptyemptyemptyempty</termref> elements, by an  elements, by an  elements, by an  elements, by an  elements, by an  elements, by an  elements, by an  elements, by an <termref def='dt-eetag'>empty-element tagempty-element tagempty-element tagempty-element tagempty-element tagempty-element tagempty-element tagempty-element tag</termref>. Each element has a type,. Each element has a type,. Each element has a type,. Each element has a type,. Each element has a type,. Each element has a type,. Each element has a type,. Each element has a type,







identified by name, sometimes called its "genericidentified by name, sometimes called its "genericidentified by name, sometimes called its "genericidentified by name, sometimes called its "genericidentified by name, sometimes called its "genericidentified by name, sometimes called its "genericidentified by name, sometimes called its "genericidentified by name, sometimes called its "generic







identifier" (GI), and may have a set ofidentifier" (GI), and may have a set ofidentifier" (GI), and may have a set ofidentifier" (GI), and may have a set ofidentifier" (GI), and may have a set ofidentifier" (GI), and may have a set ofidentifier" (GI), and may have a set ofidentifier" (GI), and may have a set of







attribute specifications.attribute specifications.attribute specifications.attribute specifications.attribute specifications.attribute specifications.attribute specifications.attribute specifications.</termdef>  Each attribute specification   Each attribute specification   Each attribute specification   Each attribute specification   Each attribute specification   Each attribute specification   Each attribute specification   Each attribute specification 







has a has a has a has a has a has a has a has a <termref def='dt-attrname'>namenamenamenamenamenamenamename</termref> and a  and a  and a  and a  and a  and a  and a  and a <termref def='dt-attrval'>valuevaluevaluevaluevaluevaluevaluevalue</termref>........







</p>







<scrap lang='ebnf'><head>ElementElementElementElementElementElementElementElement</head>







<prod id='NT-element'><lhs>elementelementelementelementelementelementelementelement</lhs>







<rhs><nt def='NT-EmptyElemTag'>EmptyElemTagEmptyElemTagEmptyElemTagEmptyElemTagEmptyElemTagEmptyElemTagEmptyElemTagEmptyElemTag</nt></rhs>







<rhs>| | | | | | | | <nt def='NT-STag'>STagSTagSTagSTagSTagSTagSTagSTag</nt>        <nt def='NT-content'>contentcontentcontentcontentcontentcontentcontentcontent</nt>        







<nt def='NT-ETag'>ETagETagETagETagETagETagETagETag</nt></rhs>







<wfc def='GIMatch'></wfc>







<vc def='elementvalid'></vc>







</prod>







</scrap>







<p>This specification does not constrain the semantics, use, or (beyondThis specification does not constrain the semantics, use, or (beyondThis specification does not constrain the semantics, use, or (beyondThis specification does not constrain the semantics, use, or (beyondThis specification does not constrain the semantics, use, or (beyondThis specification does not constrain the semantics, use, or (beyondThis specification does not constrain the semantics, use, or (beyondThis specification does not constrain the semantics, use, or (beyond







syntax) names of the element types and attributes, except that namessyntax) names of the element types and attributes, except that namessyntax) names of the element types and attributes, except that namessyntax) names of the element types and attributes, except that namessyntax) names of the element types and attributes, except that namessyntax) names of the element types and attributes, except that namessyntax) names of the element types and attributes, except that namessyntax) names of the element types and attributes, except that names







beginning with a match to beginning with a match to beginning with a match to beginning with a match to beginning with a match to beginning with a match to beginning with a match to beginning with a match to <code>(('X'|'x')('M'|'m')('L'|'l'))(('X'|'x')('M'|'m')('L'|'l'))(('X'|'x')('M'|'m')('L'|'l'))(('X'|'x')('M'|'m')('L'|'l'))(('X'|'x')('M'|'m')('L'|'l'))(('X'|'x')('M'|'m')('L'|'l'))(('X'|'x')('M'|'m')('L'|'l'))(('X'|'x')('M'|'m')('L'|'l'))</code>







are reserved for standardization in this or future versions of thisare reserved for standardization in this or future versions of thisare reserved for standardization in this or future versions of thisare reserved for standardization in this or future versions of thisare reserved for standardization in this or future versions of thisare reserved for standardization in this or future versions of thisare reserved for standardization in this or future versions of thisare reserved for standardization in this or future versions of this







specification.specification.specification.specification.specification.specification.specification.specification.







</p>







<wfcnote id='GIMatch'>







<head>Element Type MatchElement Type MatchElement Type MatchElement Type MatchElement Type MatchElement Type MatchElement Type MatchElement Type Match</head>







<p>







The The The The The The The The <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> in an element's end-tag must match  in an element's end-tag must match  in an element's end-tag must match  in an element's end-tag must match  in an element's end-tag must match  in an element's end-tag must match  in an element's end-tag must match  in an element's end-tag must match 







the element type inthe element type inthe element type inthe element type inthe element type inthe element type inthe element type inthe element type in







the start-tag.the start-tag.the start-tag.the start-tag.the start-tag.the start-tag.the start-tag.the start-tag.







</p>







</wfcnote>







<vcnote id='elementvalid'>







<head>Element ValidElement ValidElement ValidElement ValidElement ValidElement ValidElement ValidElement Valid</head>







<p>An element isAn element isAn element isAn element isAn element isAn element isAn element isAn element is







valid ifvalid ifvalid ifvalid ifvalid ifvalid ifvalid ifvalid if







there is a declaration matching there is a declaration matching there is a declaration matching there is a declaration matching there is a declaration matching there is a declaration matching there is a declaration matching there is a declaration matching 







<nt def='NT-elementdecl'>elementdeclelementdeclelementdeclelementdeclelementdeclelementdeclelementdeclelementdecl</nt> where the where the where the where the where the where the where the where the







<nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> matches the element type, and matches the element type, and matches the element type, and matches the element type, and matches the element type, and matches the element type, and matches the element type, and matches the element type, and







one of the following holds:one of the following holds:one of the following holds:one of the following holds:one of the following holds:one of the following holds:one of the following holds:one of the following holds:</p>







<olist>







<item><p>The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches <kw>EMPTYEMPTYEMPTYEMPTYEMPTYEMPTYEMPTYEMPTY</kw> and the element has no  and the element has no  and the element has no  and the element has no  and the element has no  and the element has no  and the element has no  and the element has no 







<termref def='dt-content'>contentcontentcontentcontentcontentcontentcontentcontent</termref>........</p></item>







<item><p>The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches <nt def='NT-children'>childrenchildrenchildrenchildrenchildrenchildrenchildrenchildren</nt> and and and and and and and and







the sequence of the sequence of the sequence of the sequence of the sequence of the sequence of the sequence of the sequence of 







<termref def='dt-parentchild'>child elementschild elementschild elementschild elementschild elementschild elementschild elementschild elements</termref>







belongs to the language generated by the regular expression inbelongs to the language generated by the regular expression inbelongs to the language generated by the regular expression inbelongs to the language generated by the regular expression inbelongs to the language generated by the regular expression inbelongs to the language generated by the regular expression inbelongs to the language generated by the regular expression inbelongs to the language generated by the regular expression in







the content model, with optional white space (characters the content model, with optional white space (characters the content model, with optional white space (characters the content model, with optional white space (characters the content model, with optional white space (characters the content model, with optional white space (characters the content model, with optional white space (characters the content model, with optional white space (characters 







matching the nonterminal matching the nonterminal matching the nonterminal matching the nonterminal matching the nonterminal matching the nonterminal matching the nonterminal matching the nonterminal <nt def='NT-S'>SSSSSSSS</nt>) between each pair) between each pair) between each pair) between each pair) between each pair) between each pair) between each pair) between each pair







of child elements.of child elements.of child elements.of child elements.of child elements.of child elements.of child elements.of child elements.</p></item>







<item><p>The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches <nt def='NT-Mixed'>MixedMixedMixedMixedMixedMixedMixedMixed</nt> and  and  and  and  and  and  and  and 







the content consists of the content consists of the content consists of the content consists of the content consists of the content consists of the content consists of the content consists of <termref def='dt-chardata'>character character character character character character character character 







datadatadatadatadatadatadatadata</termref> and  and  and  and  and  and  and  and <termref def='dt-parentchild'>child elementschild elementschild elementschild elementschild elementschild elementschild elementschild elements</termref>







whose types match names in the content model.whose types match names in the content model.whose types match names in the content model.whose types match names in the content model.whose types match names in the content model.whose types match names in the content model.whose types match names in the content model.whose types match names in the content model.</p></item>







<item><p>The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches The declaration matches <kw>ANYANYANYANYANYANYANYANY</kw>, and the types, and the types, and the types, and the types, and the types, and the types, and the types, and the types







of any of any of any of any of any of any of any of any <termref def='dt-parentchild'>child elementschild elementschild elementschild elementschild elementschild elementschild elementschild elements</termref> have have have have have have have have







been declared.been declared.been declared.been declared.been declared.been declared.been declared.been declared.</p></item>







</olist>







</vcnote>















<div2 id='sec-starttags'>







<head>Start-Tags, End-Tags, and Empty-Element TagsStart-Tags, End-Tags, and Empty-Element TagsStart-Tags, End-Tags, and Empty-Element TagsStart-Tags, End-Tags, and Empty-Element TagsStart-Tags, End-Tags, and Empty-Element TagsStart-Tags, End-Tags, and Empty-Element TagsStart-Tags, End-Tags, and Empty-Element TagsStart-Tags, End-Tags, and Empty-Element Tags</head>







        







<p><termdef id='dt-stag' term='Start-Tag'>The beginning of everyThe beginning of everyThe beginning of everyThe beginning of everyThe beginning of everyThe beginning of everyThe beginning of everyThe beginning of every







non-empty XML element is marked by a non-empty XML element is marked by a non-empty XML element is marked by a non-empty XML element is marked by a non-empty XML element is marked by a non-empty XML element is marked by a non-empty XML element is marked by a non-empty XML element is marked by a <term>start-tagstart-tagstart-tagstart-tagstart-tagstart-tagstart-tagstart-tag</term>........







<scrap lang='ebnf'>







<head>Start-tagStart-tagStart-tagStart-tagStart-tagStart-tagStart-tagStart-tag</head>







<prodgroup pcw2='6' pcw4='15' pcw5='11.5'>







<prod id='NT-STag'><lhs>STagSTagSTagSTagSTagSTagSTagSTag</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;' ' ' ' ' ' ' ' <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>        







((((((((<nt def='NT-S'>SSSSSSSS</nt>        <nt def='NT-Attribute'>AttributeAttributeAttributeAttributeAttributeAttributeAttributeAttribute</nt>)* )* )* )* )* )* )* )* 







<nt def='NT-S'>SSSSSSSS</nt>? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'</rhs>







<wfc def='uniqattspec'></wfc>







</prod>







<prod id='NT-Attribute'><lhs>AttributeAttributeAttributeAttributeAttributeAttributeAttributeAttribute</lhs>







<rhs><nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>        <nt def='NT-Eq'>EqEqEqEqEqEqEqEq</nt>        







<nt def='NT-AttValue'>AttValueAttValueAttValueAttValueAttValueAttValueAttValueAttValue</nt></rhs>







<vc def='ValueType'></vc>







<wfc def='NoExternalRefs'></wfc>







<wfc def='CleanAttrVals'></wfc></prod>







</prodgroup>







</scrap>







The The The The The The The The <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> in in in in in in in in







the start- and end-tags gives the the start- and end-tags gives the the start- and end-tags gives the the start- and end-tags gives the the start- and end-tags gives the the start- and end-tags gives the the start- and end-tags gives the the start- and end-tags gives the 







element's element's element's element's element's element's element's element's <term>typetypetypetypetypetypetypetype</term>........</termdef>







<termdef id='dt-attr' term='Attribute'>







The The The The The The The The <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>--------<nt def='NT-AttValue'>AttValueAttValueAttValueAttValueAttValueAttValueAttValueAttValue</nt> pairs are pairs are pairs are pairs are pairs are pairs are pairs are pairs are







referred to as referred to as referred to as referred to as referred to as referred to as referred to as referred to as 







the the the the the the the the <term>attribute specificationsattribute specificationsattribute specificationsattribute specificationsattribute specificationsattribute specificationsattribute specificationsattribute specifications</term> of the element of the element of the element of the element of the element of the element of the element of the element</termdef>,,,,,,,,







<termdef id='dt-attrname' term='Attribute Name'>with the with the with the with the with the with the with the with the 







<nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> in each pair in each pair in each pair in each pair in each pair in each pair in each pair in each pair







referred to as the referred to as the referred to as the referred to as the referred to as the referred to as the referred to as the referred to as the <term>attribute nameattribute nameattribute nameattribute nameattribute nameattribute nameattribute nameattribute name</term></termdef> and and and and and and and and







<termdef id='dt-attrval' term='Attribute Value'>the content of thethe content of thethe content of thethe content of thethe content of thethe content of thethe content of thethe content of the







<nt def='NT-AttValue'>AttValueAttValueAttValueAttValueAttValueAttValueAttValueAttValue</nt> (the text between the (the text between the (the text between the (the text between the (the text between the (the text between the (the text between the (the text between the







<code>''''''''</code> or  or  or  or  or  or  or  or <code>""""""""</code> delimiters) delimiters) delimiters) delimiters) delimiters) delimiters) delimiters) delimiters)







as the as the as the as the as the as the as the as the <term>attribute valueattribute valueattribute valueattribute valueattribute valueattribute valueattribute valueattribute value</term>........</termdef>







</p>







<wfcnote id='uniqattspec'>







<head>Unique Att SpecUnique Att SpecUnique Att SpecUnique Att SpecUnique Att SpecUnique Att SpecUnique Att SpecUnique Att Spec</head>







<p>







No attribute name may appear more than once in the same start-tagNo attribute name may appear more than once in the same start-tagNo attribute name may appear more than once in the same start-tagNo attribute name may appear more than once in the same start-tagNo attribute name may appear more than once in the same start-tagNo attribute name may appear more than once in the same start-tagNo attribute name may appear more than once in the same start-tagNo attribute name may appear more than once in the same start-tag







or empty-element tag.or empty-element tag.or empty-element tag.or empty-element tag.or empty-element tag.or empty-element tag.or empty-element tag.or empty-element tag.







</p>







</wfcnote>







<vcnote id='ValueType'>







<head>Attribute Value TypeAttribute Value TypeAttribute Value TypeAttribute Value TypeAttribute Value TypeAttribute Value TypeAttribute Value TypeAttribute Value Type</head>







<p>







The attribute must have been declared; the value must be of the type The attribute must have been declared; the value must be of the type The attribute must have been declared; the value must be of the type The attribute must have been declared; the value must be of the type The attribute must have been declared; the value must be of the type The attribute must have been declared; the value must be of the type The attribute must have been declared; the value must be of the type The attribute must have been declared; the value must be of the type 







declared for it.declared for it.declared for it.declared for it.declared for it.declared for it.declared for it.declared for it.







(For attribute types, see (For attribute types, see (For attribute types, see (For attribute types, see (For attribute types, see (For attribute types, see (For attribute types, see (For attribute types, see <specref ref='attdecls'></specref>.).).).).).).).)







</p>







</vcnote>







<wfcnote id='NoExternalRefs'>







<head>No External Entity ReferencesNo External Entity ReferencesNo External Entity ReferencesNo External Entity ReferencesNo External Entity ReferencesNo External Entity ReferencesNo External Entity ReferencesNo External Entity References</head>







<p>







Attribute values cannot contain direct or indirect entity references Attribute values cannot contain direct or indirect entity references Attribute values cannot contain direct or indirect entity references Attribute values cannot contain direct or indirect entity references Attribute values cannot contain direct or indirect entity references Attribute values cannot contain direct or indirect entity references Attribute values cannot contain direct or indirect entity references Attribute values cannot contain direct or indirect entity references 







to external entities.to external entities.to external entities.to external entities.to external entities.to external entities.to external entities.to external entities.







</p>







</wfcnote>







<wfcnote id='CleanAttrVals'>







<head>No No No No No No No No <code>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;</code> in Attribute Values in Attribute Values in Attribute Values in Attribute Values in Attribute Values in Attribute Values in Attribute Values in Attribute Values</head>







<p>The The The The The The The The <termref def='dt-repltext'>replacement textreplacement textreplacement textreplacement textreplacement textreplacement textreplacement textreplacement text</termref> of any entity of any entity of any entity of any entity of any entity of any entity of any entity of any entity







referred to directly or indirectly in an attributereferred to directly or indirectly in an attributereferred to directly or indirectly in an attributereferred to directly or indirectly in an attributereferred to directly or indirectly in an attributereferred to directly or indirectly in an attributereferred to directly or indirectly in an attributereferred to directly or indirectly in an attribute







value (other than "value (other than "value (other than "value (other than "value (other than "value (other than "value (other than "value (other than "<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;lt;lt;lt;lt;lt;lt;lt;lt;</code>") must not contain") must not contain") must not contain") must not contain") must not contain") must not contain") must not contain") must not contain







a a a a a a a a <code>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;</code>........







</p></wfcnote>







<p>An example of a start-tag:An example of a start-tag:An example of a start-tag:An example of a start-tag:An example of a start-tag:An example of a start-tag:An example of a start-tag:An example of a start-tag:







<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;termdef id="dt-dog" term="dog"&gt;termdef id="dt-dog" term="dog"&gt;termdef id="dt-dog" term="dog"&gt;termdef id="dt-dog" term="dog"&gt;termdef id="dt-dog" term="dog"&gt;termdef id="dt-dog" term="dog"&gt;termdef id="dt-dog" term="dog"&gt;termdef id="dt-dog" term="dog"&gt;</eg></p>







<p><termdef id='dt-etag' term='End Tag'>The end of every element The end of every element The end of every element The end of every element The end of every element The end of every element The end of every element The end of every element 







that begins with a start-tag mustthat begins with a start-tag mustthat begins with a start-tag mustthat begins with a start-tag mustthat begins with a start-tag mustthat begins with a start-tag mustthat begins with a start-tag mustthat begins with a start-tag must







be marked by an be marked by an be marked by an be marked by an be marked by an be marked by an be marked by an be marked by an <term>end-tagend-tagend-tagend-tagend-tagend-tagend-tagend-tag</term>







containing a name that echoes the element's type as given in thecontaining a name that echoes the element's type as given in thecontaining a name that echoes the element's type as given in thecontaining a name that echoes the element's type as given in thecontaining a name that echoes the element's type as given in thecontaining a name that echoes the element's type as given in thecontaining a name that echoes the element's type as given in thecontaining a name that echoes the element's type as given in the







start-tag:start-tag:start-tag:start-tag:start-tag:start-tag:start-tag:start-tag:







<scrap lang='ebnf'>







<head>End-tagEnd-tagEnd-tagEnd-tagEnd-tagEnd-tagEnd-tagEnd-tag</head>







<prodgroup pcw2='6' pcw4='15' pcw5='11.5'>







<prod id='NT-ETag'><lhs>ETagETagETagETagETagETagETagETag</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;/' /' /' /' /' /' /' /' <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>        







<nt def='NT-S'>SSSSSSSS</nt>? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'</rhs></prod>







</prodgroup>







</scrap>







</termdef></p>







<p>An example of an end-tag:An example of an end-tag:An example of an end-tag:An example of an end-tag:An example of an end-tag:An example of an end-tag:An example of an end-tag:An example of an end-tag:<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;/termdef&gt;/termdef&gt;/termdef&gt;/termdef&gt;/termdef&gt;/termdef&gt;/termdef&gt;/termdef&gt;</eg></p>







<p><termdef id='dt-content' term='Content'>The The The The The The The The 







<termref def='dt-text'>texttexttexttexttexttexttexttext</termref> between the start-tag and between the start-tag and between the start-tag and between the start-tag and between the start-tag and between the start-tag and between the start-tag and between the start-tag and







end-tag is called the element'send-tag is called the element'send-tag is called the element'send-tag is called the element'send-tag is called the element'send-tag is called the element'send-tag is called the element'send-tag is called the element's







<term>contentcontentcontentcontentcontentcontentcontentcontent</term>::::::::







<scrap lang='ebnf'>







<head>Content of ElementsContent of ElementsContent of ElementsContent of ElementsContent of ElementsContent of ElementsContent of ElementsContent of Elements</head>







<prodgroup pcw2='6' pcw4='15' pcw5='11.5'>







<prod id='NT-content'><lhs>contentcontentcontentcontentcontentcontentcontentcontent</lhs>







<rhs>((((((((<nt def='NT-element'>elementelementelementelementelementelementelementelement</nt> |  |  |  |  |  |  |  | <nt def='NT-CharData'>CharDataCharDataCharDataCharDataCharDataCharDataCharDataCharData</nt>        







| | | | | | | | <nt def='NT-Reference'>ReferenceReferenceReferenceReferenceReferenceReferenceReferenceReference</nt> |  |  |  |  |  |  |  | <nt def='NT-CDSect'>CDSectCDSectCDSectCDSectCDSectCDSectCDSectCDSect</nt>        







| | | | | | | | <nt def='NT-PI'>PIPIPIPIPIPIPIPI</nt> |  |  |  |  |  |  |  | <nt def='NT-Comment'>CommentCommentCommentCommentCommentCommentCommentComment</nt>)*)*)*)*)*)*)*)*</rhs>







</prod>







</prodgroup>







</scrap>







</termdef></p>







<p><termdef id='dt-empty' term='Empty'>If an element is If an element is If an element is If an element is If an element is If an element is If an element is If an element is <term>emptyemptyemptyemptyemptyemptyemptyempty</term>,,,,,,,,







it must be represented either by a start-tag immediately followedit must be represented either by a start-tag immediately followedit must be represented either by a start-tag immediately followedit must be represented either by a start-tag immediately followedit must be represented either by a start-tag immediately followedit must be represented either by a start-tag immediately followedit must be represented either by a start-tag immediately followedit must be represented either by a start-tag immediately followed







by an end-tag or by an empty-element tag.by an end-tag or by an empty-element tag.by an end-tag or by an empty-element tag.by an end-tag or by an empty-element tag.by an end-tag or by an empty-element tag.by an end-tag or by an empty-element tag.by an end-tag or by an empty-element tag.by an end-tag or by an empty-element tag.</termdef>







<termdef id='dt-eetag' term='empty-element tag'>An An An An An An An An 







<term>empty-element tagempty-element tagempty-element tagempty-element tagempty-element tagempty-element tagempty-element tagempty-element tag</term> takes a special form: takes a special form: takes a special form: takes a special form: takes a special form: takes a special form: takes a special form: takes a special form:







<scrap lang='ebnf'>







<head>Tags for Empty ElementsTags for Empty ElementsTags for Empty ElementsTags for Empty ElementsTags for Empty ElementsTags for Empty ElementsTags for Empty ElementsTags for Empty Elements</head>







<prodgroup pcw2='6' pcw4='15' pcw5='11.5'>







<prod id='NT-EmptyElemTag'><lhs>EmptyElemTagEmptyElemTagEmptyElemTagEmptyElemTagEmptyElemTagEmptyElemTagEmptyElemTagEmptyElemTag</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;' ' ' ' ' ' ' ' <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> ( ( ( ( ( ( ( (<nt def='NT-S'>SSSSSSSS</nt>        







<nt def='NT-Attribute'>AttributeAttributeAttributeAttributeAttributeAttributeAttributeAttribute</nt>)* )* )* )* )* )* )* )* <nt def='NT-S'>SSSSSSSS</nt>? ? ? ? ? ? ? ? 







'/'/'/'/'/'/'/'/&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;''''''''</rhs>







<wfc def='uniqattspec'></wfc>







</prod>







</prodgroup>







</scrap>







</termdef></p>







<p>Empty-element tags may be used for any element which has noEmpty-element tags may be used for any element which has noEmpty-element tags may be used for any element which has noEmpty-element tags may be used for any element which has noEmpty-element tags may be used for any element which has noEmpty-element tags may be used for any element which has noEmpty-element tags may be used for any element which has noEmpty-element tags may be used for any element which has no







content, whether or not it is declared using the keywordcontent, whether or not it is declared using the keywordcontent, whether or not it is declared using the keywordcontent, whether or not it is declared using the keywordcontent, whether or not it is declared using the keywordcontent, whether or not it is declared using the keywordcontent, whether or not it is declared using the keywordcontent, whether or not it is declared using the keyword







<kw>EMPTYEMPTYEMPTYEMPTYEMPTYEMPTYEMPTYEMPTY</kw>........







<termref def='dt-interop'>For interoperabilityFor interoperabilityFor interoperabilityFor interoperabilityFor interoperabilityFor interoperabilityFor interoperabilityFor interoperability</termref>, the empty-element, the empty-element, the empty-element, the empty-element, the empty-element, the empty-element, the empty-element, the empty-element







tag must be used, and can only be used, for elements which aretag must be used, and can only be used, for elements which aretag must be used, and can only be used, for elements which aretag must be used, and can only be used, for elements which aretag must be used, and can only be used, for elements which aretag must be used, and can only be used, for elements which aretag must be used, and can only be used, for elements which aretag must be used, and can only be used, for elements which are







<termref def='dt-eldecl'>declareddeclareddeclareddeclareddeclareddeclareddeclareddeclared</termref>        <kw>EMPTYEMPTYEMPTYEMPTYEMPTYEMPTYEMPTYEMPTY</kw>........</p>







<p>Examples of empty elements:Examples of empty elements:Examples of empty elements:Examples of empty elements:Examples of empty elements:Examples of empty elements:Examples of empty elements:Examples of empty elements:







<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;IMG align="left"IMG align="left"IMG align="left"IMG align="left"IMG align="left"IMG align="left"IMG align="left"IMG align="left"







 src="http://www.w3.org/Icons/WWW/w3c_home" /&gt; src="http://www.w3.org/Icons/WWW/w3c_home" /&gt; src="http://www.w3.org/Icons/WWW/w3c_home" /&gt; src="http://www.w3.org/Icons/WWW/w3c_home" /&gt; src="http://www.w3.org/Icons/WWW/w3c_home" /&gt; src="http://www.w3.org/Icons/WWW/w3c_home" /&gt; src="http://www.w3.org/Icons/WWW/w3c_home" /&gt; src="http://www.w3.org/Icons/WWW/w3c_home" /&gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br&gt;br&gt;br&gt;br&gt;br&gt;br&gt;br&gt;br&gt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;/br&gt;/br&gt;/br&gt;/br&gt;/br&gt;/br&gt;/br&gt;/br&gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;br/&gt;br/&gt;br/&gt;br/&gt;br/&gt;br/&gt;br/&gt;br/&gt;</eg></p>







</div2>







        







<div2 id='elemdecls'>







<head>Element Type DeclarationsElement Type DeclarationsElement Type DeclarationsElement Type DeclarationsElement Type DeclarationsElement Type DeclarationsElement Type DeclarationsElement Type Declarations</head>







        







<p>The The The The The The The The <termref def='dt-element'>elementelementelementelementelementelementelementelement</termref> structure of an structure of an structure of an structure of an structure of an structure of an structure of an structure of an







<termref def='dt-xml-doc'>XML documentXML documentXML documentXML documentXML documentXML documentXML documentXML document</termref> may, for  may, for  may, for  may, for  may, for  may, for  may, for  may, for 







<termref def='dt-valid'>validationvalidationvalidationvalidationvalidationvalidationvalidationvalidation</termref> purposes,  purposes,  purposes,  purposes,  purposes,  purposes,  purposes,  purposes, 







be constrainedbe constrainedbe constrainedbe constrainedbe constrainedbe constrainedbe constrainedbe constrained







using element type and attribute-list declarations.using element type and attribute-list declarations.using element type and attribute-list declarations.using element type and attribute-list declarations.using element type and attribute-list declarations.using element type and attribute-list declarations.using element type and attribute-list declarations.using element type and attribute-list declarations.







An element type declaration constrains the element'sAn element type declaration constrains the element'sAn element type declaration constrains the element'sAn element type declaration constrains the element'sAn element type declaration constrains the element'sAn element type declaration constrains the element'sAn element type declaration constrains the element'sAn element type declaration constrains the element's







<termref def='dt-content'>contentcontentcontentcontentcontentcontentcontentcontent</termref>........







</p>















<p>Element type declarations often constrain which element types canElement type declarations often constrain which element types canElement type declarations often constrain which element types canElement type declarations often constrain which element types canElement type declarations often constrain which element types canElement type declarations often constrain which element types canElement type declarations often constrain which element types canElement type declarations often constrain which element types can







appear as appear as appear as appear as appear as appear as appear as appear as <termref def='dt-parentchild'>childrenchildrenchildrenchildrenchildrenchildrenchildrenchildren</termref> of the element. of the element. of the element. of the element. of the element. of the element. of the element. of the element.







At user option, an XML processor may issue a warningAt user option, an XML processor may issue a warningAt user option, an XML processor may issue a warningAt user option, an XML processor may issue a warningAt user option, an XML processor may issue a warningAt user option, an XML processor may issue a warningAt user option, an XML processor may issue a warningAt user option, an XML processor may issue a warning







when a declaration mentions an element type for which no declarationwhen a declaration mentions an element type for which no declarationwhen a declaration mentions an element type for which no declarationwhen a declaration mentions an element type for which no declarationwhen a declaration mentions an element type for which no declarationwhen a declaration mentions an element type for which no declarationwhen a declaration mentions an element type for which no declarationwhen a declaration mentions an element type for which no declaration







is provided, but this is not an error.is provided, but this is not an error.is provided, but this is not an error.is provided, but this is not an error.is provided, but this is not an error.is provided, but this is not an error.is provided, but this is not an error.is provided, but this is not an error.</p>







<p><termdef id='dt-eldecl' term='Element Type declaration'>An An An An An An An An <term>elementelementelementelementelementelementelementelement







type declarationtype declarationtype declarationtype declarationtype declarationtype declarationtype declarationtype declaration</term> takes the form: takes the form: takes the form: takes the form: takes the form: takes the form: takes the form: takes the form:







<scrap lang='ebnf'>







<head>Element Type DeclarationElement Type DeclarationElement Type DeclarationElement Type DeclarationElement Type DeclarationElement Type DeclarationElement Type DeclarationElement Type Declaration</head>







<prodgroup pcw2='5.5' pcw4='18' pcw5='9'>







<prod id='NT-elementdecl'><lhs>elementdeclelementdeclelementdeclelementdeclelementdeclelementdeclelementdeclelementdecl</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT' !ELEMENT' !ELEMENT' !ELEMENT' !ELEMENT' !ELEMENT' !ELEMENT' !ELEMENT' <nt def='NT-S'>SSSSSSSS</nt>        







<nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>        







<nt def='NT-S'>SSSSSSSS</nt>        







<nt def='NT-contentspec'>contentspeccontentspeccontentspeccontentspeccontentspeccontentspeccontentspeccontentspec</nt>







<nt def='NT-S'>SSSSSSSS</nt>? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'? '&gt;'</rhs>







<vc def='EDUnique'></vc></prod>







<prod id='NT-contentspec'><lhs>contentspeccontentspeccontentspeccontentspeccontentspeccontentspeccontentspeccontentspec</lhs>







<rhs>'EMPTY' 'EMPTY' 'EMPTY' 'EMPTY' 'EMPTY' 'EMPTY' 'EMPTY' 'EMPTY' 







| 'ANY' | 'ANY' | 'ANY' | 'ANY' | 'ANY' | 'ANY' | 'ANY' | 'ANY' 







| | | | | | | | <nt def='NT-Mixed'>MixedMixedMixedMixedMixedMixedMixedMixed</nt>        







| | | | | | | | <nt def='NT-children'>childrenchildrenchildrenchildrenchildrenchildrenchildrenchildren</nt>







</rhs>







</prod>







</prodgroup>







</scrap>







where the where the where the where the where the where the where the where the <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> gives the element type  gives the element type  gives the element type  gives the element type  gives the element type  gives the element type  gives the element type  gives the element type 







being declared.being declared.being declared.being declared.being declared.being declared.being declared.being declared.</termdef>







</p>















<vcnote id='EDUnique'>







<head>Unique Element Type DeclarationUnique Element Type DeclarationUnique Element Type DeclarationUnique Element Type DeclarationUnique Element Type DeclarationUnique Element Type DeclarationUnique Element Type DeclarationUnique Element Type Declaration</head>







<p>







No element type may be declared more than once.No element type may be declared more than once.No element type may be declared more than once.No element type may be declared more than once.No element type may be declared more than once.No element type may be declared more than once.No element type may be declared more than once.No element type may be declared more than once.







</p>







</vcnote>















<p>Examples of element type declarations:Examples of element type declarations:Examples of element type declarations:Examples of element type declarations:Examples of element type declarations:Examples of element type declarations:Examples of element type declarations:Examples of element type declarations:







<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT br EMPTY&gt;!ELEMENT br EMPTY&gt;!ELEMENT br EMPTY&gt;!ELEMENT br EMPTY&gt;!ELEMENT br EMPTY&gt;!ELEMENT br EMPTY&gt;!ELEMENT br EMPTY&gt;!ELEMENT br EMPTY&gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT p (#PCDATA|emph)* &gt;!ELEMENT p (#PCDATA|emph)* &gt;!ELEMENT p (#PCDATA|emph)* &gt;!ELEMENT p (#PCDATA|emph)* &gt;!ELEMENT p (#PCDATA|emph)* &gt;!ELEMENT p (#PCDATA|emph)* &gt;!ELEMENT p (#PCDATA|emph)* &gt;!ELEMENT p (#PCDATA|emph)* &gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT %name.para; %content.para; &gt;!ELEMENT %name.para; %content.para; &gt;!ELEMENT %name.para; %content.para; &gt;!ELEMENT %name.para; %content.para; &gt;!ELEMENT %name.para; %content.para; &gt;!ELEMENT %name.para; %content.para; &gt;!ELEMENT %name.para; %content.para; &gt;!ELEMENT %name.para; %content.para; &gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT container ANY&gt;!ELEMENT container ANY&gt;!ELEMENT container ANY&gt;!ELEMENT container ANY&gt;!ELEMENT container ANY&gt;!ELEMENT container ANY&gt;!ELEMENT container ANY&gt;!ELEMENT container ANY&gt;</eg></p>







        







<div3 id='sec-element-content'>







<head>Element ContentElement ContentElement ContentElement ContentElement ContentElement ContentElement ContentElement Content</head>







        







<p><termdef id='dt-elemcontent' term='Element content'>An element An element An element An element An element An element An element An element <termref def='dt-stag'>typetypetypetypetypetypetypetype</termref> has has has has has has has has







<term>element contentelement contentelement contentelement contentelement contentelement contentelement contentelement content</term> when elements of that when elements of that when elements of that when elements of that when elements of that when elements of that when elements of that when elements of that







type must contain only type must contain only type must contain only type must contain only type must contain only type must contain only type must contain only type must contain only <termref def='dt-parentchild'>childchildchildchildchildchildchildchild</termref>        







elements (no character data), optionally separated by elements (no character data), optionally separated by elements (no character data), optionally separated by elements (no character data), optionally separated by elements (no character data), optionally separated by elements (no character data), optionally separated by elements (no character data), optionally separated by elements (no character data), optionally separated by 







white space (characters matching the nonterminal white space (characters matching the nonterminal white space (characters matching the nonterminal white space (characters matching the nonterminal white space (characters matching the nonterminal white space (characters matching the nonterminal white space (characters matching the nonterminal white space (characters matching the nonterminal 







<nt def='NT-S'>SSSSSSSS</nt>).).).).).).).).







</termdef>







In this case, theIn this case, theIn this case, theIn this case, theIn this case, theIn this case, theIn this case, theIn this case, the







constraint includes a content model, a simple grammar governingconstraint includes a content model, a simple grammar governingconstraint includes a content model, a simple grammar governingconstraint includes a content model, a simple grammar governingconstraint includes a content model, a simple grammar governingconstraint includes a content model, a simple grammar governingconstraint includes a content model, a simple grammar governingconstraint includes a content model, a simple grammar governing







the allowed types of the childthe allowed types of the childthe allowed types of the childthe allowed types of the childthe allowed types of the childthe allowed types of the childthe allowed types of the childthe allowed types of the child







elements and the order in which they are allowed to appear.  elements and the order in which they are allowed to appear.  elements and the order in which they are allowed to appear.  elements and the order in which they are allowed to appear.  elements and the order in which they are allowed to appear.  elements and the order in which they are allowed to appear.  elements and the order in which they are allowed to appear.  elements and the order in which they are allowed to appear.  







The grammar is built onThe grammar is built onThe grammar is built onThe grammar is built onThe grammar is built onThe grammar is built onThe grammar is built onThe grammar is built on







content particles (content particles (content particles (content particles (content particles (content particles (content particles (content particles (<nt def='NT-cp'>cpcpcpcpcpcpcpcp</nt>s), which consist of names, s), which consist of names, s), which consist of names, s), which consist of names, s), which consist of names, s), which consist of names, s), which consist of names, s), which consist of names, 







choice lists of content particles, orchoice lists of content particles, orchoice lists of content particles, orchoice lists of content particles, orchoice lists of content particles, orchoice lists of content particles, orchoice lists of content particles, orchoice lists of content particles, or







sequence lists of content particles:sequence lists of content particles:sequence lists of content particles:sequence lists of content particles:sequence lists of content particles:sequence lists of content particles:sequence lists of content particles:sequence lists of content particles:







<scrap lang='ebnf'>







<head>Element-content ModelsElement-content ModelsElement-content ModelsElement-content ModelsElement-content ModelsElement-content ModelsElement-content ModelsElement-content Models</head>







<prodgroup pcw2='5.5' pcw4='16' pcw5='11'>







<prod id='NT-children'><lhs>childrenchildrenchildrenchildrenchildrenchildrenchildrenchildren</lhs>







<rhs>((((((((<nt def='NT-choice'>choicechoicechoicechoicechoicechoicechoicechoice</nt>        







| | | | | | | | <nt def='NT-seq'>seqseqseqseqseqseqseqseq</nt>) ) ) ) ) ) ) ) 







('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?</rhs></prod>







<prod id='NT-cp'><lhs>cpcpcpcpcpcpcpcp</lhs>







<rhs>((((((((<nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>        







| | | | | | | | <nt def='NT-choice'>choicechoicechoicechoicechoicechoicechoicechoice</nt>        







| | | | | | | | <nt def='NT-seq'>seqseqseqseqseqseqseqseq</nt>) ) ) ) ) ) ) ) 







('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?('?' | '*' | '+')?</rhs></prod>







<prod id='NT-choice'><lhs>choicechoicechoicechoicechoicechoicechoicechoice</lhs>







<rhs>'(' '(' '(' '(' '(' '(' '(' '(' <nt def='NT-S'>SSSSSSSS</nt>? cp ? cp ? cp ? cp ? cp ? cp ? cp ? cp 







( ( ( ( ( ( ( ( <nt def='NT-S'>SSSSSSSS</nt>? '|' ? '|' ? '|' ? '|' ? '|' ? '|' ? '|' ? '|' <nt def='NT-S'>SSSSSSSS</nt>? ? ? ? ? ? ? ? <nt def='NT-cp'>cpcpcpcpcpcpcpcp</nt> )* )* )* )* )* )* )* )*







<nt def='NT-S'>SSSSSSSS</nt>? ')'? ')'? ')'? ')'? ')'? ')'? ')'? ')'</rhs>







<vc def='vc-PEinGroup'></vc></prod>







<prod id='NT-seq'><lhs>seqseqseqseqseqseqseqseq</lhs>







<rhs>'(' '(' '(' '(' '(' '(' '(' '(' <nt def='NT-S'>SSSSSSSS</nt>? cp ? cp ? cp ? cp ? cp ? cp ? cp ? cp 







( ( ( ( ( ( ( ( <nt def='NT-S'>SSSSSSSS</nt>? ',' ? ',' ? ',' ? ',' ? ',' ? ',' ? ',' ? ',' <nt def='NT-S'>SSSSSSSS</nt>? ? ? ? ? ? ? ? <nt def='NT-cp'>cpcpcpcpcpcpcpcp</nt> )* )* )* )* )* )* )* )*







<nt def='NT-S'>SSSSSSSS</nt>? ')'? ')'? ')'? ')'? ')'? ')'? ')'? ')'</rhs>







<vc def='vc-PEinGroup'></vc></prod>















</prodgroup>







</scrap>







where each where each where each where each where each where each where each where each <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> is the type of an element which may is the type of an element which may is the type of an element which may is the type of an element which may is the type of an element which may is the type of an element which may is the type of an element which may is the type of an element which may







appear as a appear as a appear as a appear as a appear as a appear as a appear as a appear as a <termref def='dt-parentchild'>childchildchildchildchildchildchildchild</termref>.  .  .  .  .  .  .  .  







Any contentAny contentAny contentAny contentAny contentAny contentAny contentAny content







particle in a choice list may appear in the particle in a choice list may appear in the particle in a choice list may appear in the particle in a choice list may appear in the particle in a choice list may appear in the particle in a choice list may appear in the particle in a choice list may appear in the particle in a choice list may appear in the <termref def='dt-elemcontent'>element contentelement contentelement contentelement contentelement contentelement contentelement contentelement content</termref> at the location where at the location where at the location where at the location where at the location where at the location where at the location where at the location where







the choice list appears in the grammar;the choice list appears in the grammar;the choice list appears in the grammar;the choice list appears in the grammar;the choice list appears in the grammar;the choice list appears in the grammar;the choice list appears in the grammar;the choice list appears in the grammar;







content particles occurring in a sequence list must eachcontent particles occurring in a sequence list must eachcontent particles occurring in a sequence list must eachcontent particles occurring in a sequence list must eachcontent particles occurring in a sequence list must eachcontent particles occurring in a sequence list must eachcontent particles occurring in a sequence list must eachcontent particles occurring in a sequence list must each







appear in the appear in the appear in the appear in the appear in the appear in the appear in the appear in the <termref def='dt-elemcontent'>element contentelement contentelement contentelement contentelement contentelement contentelement contentelement content</termref> in the in the in the in the in the in the in the in the







order given in the list.  order given in the list.  order given in the list.  order given in the list.  order given in the list.  order given in the list.  order given in the list.  order given in the list.  







The optional character following a name or list governsThe optional character following a name or list governsThe optional character following a name or list governsThe optional character following a name or list governsThe optional character following a name or list governsThe optional character following a name or list governsThe optional character following a name or list governsThe optional character following a name or list governs







whether the element or the content particles in the list may occur onewhether the element or the content particles in the list may occur onewhether the element or the content particles in the list may occur onewhether the element or the content particles in the list may occur onewhether the element or the content particles in the list may occur onewhether the element or the content particles in the list may occur onewhether the element or the content particles in the list may occur onewhether the element or the content particles in the list may occur one







or more (or more (or more (or more (or more (or more (or more (or more (<code>++++++++</code>), zero or more (), zero or more (), zero or more (), zero or more (), zero or more (), zero or more (), zero or more (), zero or more (<code>********</code>), or zero or ), or zero or ), or zero or ), or zero or ), or zero or ), or zero or ), or zero or ), or zero or 







one times (one times (one times (one times (one times (one times (one times (one times (<code>????????</code>).  ).  ).  ).  ).  ).  ).  ).  







The absence of such an operator means that the element or content particleThe absence of such an operator means that the element or content particleThe absence of such an operator means that the element or content particleThe absence of such an operator means that the element or content particleThe absence of such an operator means that the element or content particleThe absence of such an operator means that the element or content particleThe absence of such an operator means that the element or content particleThe absence of such an operator means that the element or content particle







must appear exactly once.must appear exactly once.must appear exactly once.must appear exactly once.must appear exactly once.must appear exactly once.must appear exactly once.must appear exactly once.







This syntaxThis syntaxThis syntaxThis syntaxThis syntaxThis syntaxThis syntaxThis syntax







and meaning are identical to those used in the productions in thisand meaning are identical to those used in the productions in thisand meaning are identical to those used in the productions in thisand meaning are identical to those used in the productions in thisand meaning are identical to those used in the productions in thisand meaning are identical to those used in the productions in thisand meaning are identical to those used in the productions in thisand meaning are identical to those used in the productions in this







specification.specification.specification.specification.specification.specification.specification.specification.</p>







<p>







The content of an element matches a content model if and only if it isThe content of an element matches a content model if and only if it isThe content of an element matches a content model if and only if it isThe content of an element matches a content model if and only if it isThe content of an element matches a content model if and only if it isThe content of an element matches a content model if and only if it isThe content of an element matches a content model if and only if it isThe content of an element matches a content model if and only if it is







possible to trace out a path through the content model, obeying thepossible to trace out a path through the content model, obeying thepossible to trace out a path through the content model, obeying thepossible to trace out a path through the content model, obeying thepossible to trace out a path through the content model, obeying thepossible to trace out a path through the content model, obeying thepossible to trace out a path through the content model, obeying thepossible to trace out a path through the content model, obeying the







sequence, choice, and repetition operators and matching each element insequence, choice, and repetition operators and matching each element insequence, choice, and repetition operators and matching each element insequence, choice, and repetition operators and matching each element insequence, choice, and repetition operators and matching each element insequence, choice, and repetition operators and matching each element insequence, choice, and repetition operators and matching each element insequence, choice, and repetition operators and matching each element in







the content against an element type in the content model.  the content against an element type in the content model.  the content against an element type in the content model.  the content against an element type in the content model.  the content against an element type in the content model.  the content against an element type in the content model.  the content against an element type in the content model.  the content against an element type in the content model.  <termref def='dt-compat'>For compatibilityFor compatibilityFor compatibilityFor compatibilityFor compatibilityFor compatibilityFor compatibilityFor compatibility</termref>, it is an error, it is an error, it is an error, it is an error, it is an error, it is an error, it is an error, it is an error







if an element in the document canif an element in the document canif an element in the document canif an element in the document canif an element in the document canif an element in the document canif an element in the document canif an element in the document can







match more than one occurrence of an element type in the content model.match more than one occurrence of an element type in the content model.match more than one occurrence of an element type in the content model.match more than one occurrence of an element type in the content model.match more than one occurrence of an element type in the content model.match more than one occurrence of an element type in the content model.match more than one occurrence of an element type in the content model.match more than one occurrence of an element type in the content model.







For more information, see For more information, see For more information, see For more information, see For more information, see For more information, see For more information, see For more information, see <specref ref='determinism'></specref>........







<!-- appendix <specref ref="determinism"/>. -->







<!-- appendix on deterministic content models. -->







</p>







<vcnote id='vc-PEinGroup'>







<head>Proper Group/PE NestingProper Group/PE NestingProper Group/PE NestingProper Group/PE NestingProper Group/PE NestingProper Group/PE NestingProper Group/PE NestingProper Group/PE Nesting</head>







<p>Parameter-entity Parameter-entity Parameter-entity Parameter-entity Parameter-entity Parameter-entity Parameter-entity Parameter-entity 







<termref def='dt-repltext'>replacement textreplacement textreplacement textreplacement textreplacement textreplacement textreplacement textreplacement text</termref> must be properly nested must be properly nested must be properly nested must be properly nested must be properly nested must be properly nested must be properly nested must be properly nested







with parenthetized groups.with parenthetized groups.with parenthetized groups.with parenthetized groups.with parenthetized groups.with parenthetized groups.with parenthetized groups.with parenthetized groups.







That is to say, if either of the opening or closing parenthesesThat is to say, if either of the opening or closing parenthesesThat is to say, if either of the opening or closing parenthesesThat is to say, if either of the opening or closing parenthesesThat is to say, if either of the opening or closing parenthesesThat is to say, if either of the opening or closing parenthesesThat is to say, if either of the opening or closing parenthesesThat is to say, if either of the opening or closing parentheses







in a in a in a in a in a in a in a in a <nt def='NT-choice'>choicechoicechoicechoicechoicechoicechoicechoice</nt>, , , , , , , , <nt def='NT-seq'>seqseqseqseqseqseqseqseq</nt>, or, or, or, or, or, or, or, or







<nt def='NT-Mixed'>MixedMixedMixedMixedMixedMixedMixedMixed</nt> construct  construct  construct  construct  construct  construct  construct  construct 







is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a is contained in the replacement text for a 







<termref def='dt-PERef'>parameter entityparameter entityparameter entityparameter entityparameter entityparameter entityparameter entityparameter entity</termref>,,,,,,,,







both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.both must be contained in the same replacement text.</p>







<p><termref def='dt-interop'>For interoperabilityFor interoperabilityFor interoperabilityFor interoperabilityFor interoperabilityFor interoperabilityFor interoperabilityFor interoperability</termref>, , , , , , , , 







if a parameter-entity reference appears in a if a parameter-entity reference appears in a if a parameter-entity reference appears in a if a parameter-entity reference appears in a if a parameter-entity reference appears in a if a parameter-entity reference appears in a if a parameter-entity reference appears in a if a parameter-entity reference appears in a 







<nt def='NT-choice'>choicechoicechoicechoicechoicechoicechoicechoice</nt>, , , , , , , , <nt def='NT-seq'>seqseqseqseqseqseqseqseq</nt>, or, or, or, or, or, or, or, or







<nt def='NT-Mixed'>MixedMixedMixedMixedMixedMixedMixedMixed</nt> construct, its replacement text construct, its replacement text construct, its replacement text construct, its replacement text construct, its replacement text construct, its replacement text construct, its replacement text construct, its replacement text







should not be empty, and should not be empty, and should not be empty, and should not be empty, and should not be empty, and should not be empty, and should not be empty, and should not be empty, and 







neither the first nor last non-blankneither the first nor last non-blankneither the first nor last non-blankneither the first nor last non-blankneither the first nor last non-blankneither the first nor last non-blankneither the first nor last non-blankneither the first nor last non-blank







character of the replacement text should be a connector character of the replacement text should be a connector character of the replacement text should be a connector character of the replacement text should be a connector character of the replacement text should be a connector character of the replacement text should be a connector character of the replacement text should be a connector character of the replacement text should be a connector 







((((((((<code>||||||||</code> or  or  or  or  or  or  or  or <code>,,,,,,,,</code>).).).).).).).).







</p>







</vcnote>







<p>Examples of element-content models:Examples of element-content models:Examples of element-content models:Examples of element-content models:Examples of element-content models:Examples of element-content models:Examples of element-content models:Examples of element-content models:







<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT spec (front, body, back?)&gt;!ELEMENT spec (front, body, back?)&gt;!ELEMENT spec (front, body, back?)&gt;!ELEMENT spec (front, body, back?)&gt;!ELEMENT spec (front, body, back?)&gt;!ELEMENT spec (front, body, back?)&gt;!ELEMENT spec (front, body, back?)&gt;!ELEMENT spec (front, body, back?)&gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT div1 (head, (p | list | note)*, div2*)&gt;!ELEMENT div1 (head, (p | list | note)*, div2*)&gt;!ELEMENT div1 (head, (p | list | note)*, div2*)&gt;!ELEMENT div1 (head, (p | list | note)*, div2*)&gt;!ELEMENT div1 (head, (p | list | note)*, div2*)&gt;!ELEMENT div1 (head, (p | list | note)*, div2*)&gt;!ELEMENT div1 (head, (p | list | note)*, div2*)&gt;!ELEMENT div1 (head, (p | list | note)*, div2*)&gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*&gt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*&gt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*&gt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*&gt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*&gt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*&gt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*&gt;!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*&gt;</eg></p>







</div3>















<div3 id='sec-mixed-content'>







<head>Mixed ContentMixed ContentMixed ContentMixed ContentMixed ContentMixed ContentMixed ContentMixed Content</head>







        







<p><termdef id='dt-mixed' term='Mixed Content'>An element An element An element An element An element An element An element An element 







<termref def='dt-stag'>typetypetypetypetypetypetypetype</termref> has  has  has  has  has  has  has  has 







<term>mixed contentmixed contentmixed contentmixed contentmixed contentmixed contentmixed contentmixed content</term> when elements of that type may contain when elements of that type may contain when elements of that type may contain when elements of that type may contain when elements of that type may contain when elements of that type may contain when elements of that type may contain when elements of that type may contain







character data, optionally interspersed withcharacter data, optionally interspersed withcharacter data, optionally interspersed withcharacter data, optionally interspersed withcharacter data, optionally interspersed withcharacter data, optionally interspersed withcharacter data, optionally interspersed withcharacter data, optionally interspersed with







<termref def='dt-parentchild'>childchildchildchildchildchildchildchild</termref> elements. elements. elements. elements. elements. elements. elements. elements.</termdef>







In this case, the types of the child elementsIn this case, the types of the child elementsIn this case, the types of the child elementsIn this case, the types of the child elementsIn this case, the types of the child elementsIn this case, the types of the child elementsIn this case, the types of the child elementsIn this case, the types of the child elements







may be constrained, but not their order or their number of occurrences:may be constrained, but not their order or their number of occurrences:may be constrained, but not their order or their number of occurrences:may be constrained, but not their order or their number of occurrences:may be constrained, but not their order or their number of occurrences:may be constrained, but not their order or their number of occurrences:may be constrained, but not their order or their number of occurrences:may be constrained, but not their order or their number of occurrences:







<scrap lang='ebnf'>







<head>Mixed-content DeclarationMixed-content DeclarationMixed-content DeclarationMixed-content DeclarationMixed-content DeclarationMixed-content DeclarationMixed-content DeclarationMixed-content Declaration</head>







<prodgroup pcw2='5.5' pcw4='16' pcw5='11'>







<prod id='NT-Mixed'><lhs>MixedMixedMixedMixedMixedMixedMixedMixed</lhs>







<rhs>'(' '(' '(' '(' '(' '(' '(' '(' <nt def='NT-S'>SSSSSSSS</nt>? ? ? ? ? ? ? ? 







'#PCDATA''#PCDATA''#PCDATA''#PCDATA''#PCDATA''#PCDATA''#PCDATA''#PCDATA'







((((((((<nt def='NT-S'>SSSSSSSS</nt>? ? ? ? ? ? ? ? 







'|' '|' '|' '|' '|' '|' '|' '|' 







<nt def='NT-S'>SSSSSSSS</nt>? ? ? ? ? ? ? ? 







<nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>)* )* )* )* )* )* )* )* 







<nt def='NT-S'>SSSSSSSS</nt>? ? ? ? ? ? ? ? 







')*' ')*' ')*' ')*' ')*' ')*' ')*' ')*' </rhs>







<rhs>| '(' | '(' | '(' | '(' | '(' | '(' | '(' | '(' <nt def='NT-S'>SSSSSSSS</nt>? '#PCDATA' ? '#PCDATA' ? '#PCDATA' ? '#PCDATA' ? '#PCDATA' ? '#PCDATA' ? '#PCDATA' ? '#PCDATA' <nt def='NT-S'>SSSSSSSS</nt>? ')'? ')'? ')'? ')'? ')'? ')'? ')'? ')'







</rhs><vc def='vc-PEinGroup'></vc>







<vc def='vc-MixedChildrenUnique'></vc>







</prod>















</prodgroup>







</scrap>







where the where the where the where the where the where the where the where the <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>s give the types of elementss give the types of elementss give the types of elementss give the types of elementss give the types of elementss give the types of elementss give the types of elementss give the types of elements







that may appear as children.that may appear as children.that may appear as children.that may appear as children.that may appear as children.that may appear as children.that may appear as children.that may appear as children.







</p>







<vcnote id='vc-MixedChildrenUnique'>







<head>No Duplicate TypesNo Duplicate TypesNo Duplicate TypesNo Duplicate TypesNo Duplicate TypesNo Duplicate TypesNo Duplicate TypesNo Duplicate Types</head>







<p>The same name must not appear more than once in a single mixed-contentThe same name must not appear more than once in a single mixed-contentThe same name must not appear more than once in a single mixed-contentThe same name must not appear more than once in a single mixed-contentThe same name must not appear more than once in a single mixed-contentThe same name must not appear more than once in a single mixed-contentThe same name must not appear more than once in a single mixed-contentThe same name must not appear more than once in a single mixed-content







declaration.declaration.declaration.declaration.declaration.declaration.declaration.declaration.







</p></vcnote>







<p>Examples of mixed content declarations:Examples of mixed content declarations:Examples of mixed content declarations:Examples of mixed content declarations:Examples of mixed content declarations:Examples of mixed content declarations:Examples of mixed content declarations:Examples of mixed content declarations:







<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*&gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* &gt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* &gt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* &gt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* &gt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* &gt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* &gt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* &gt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* &gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT b (#PCDATA)&gt;!ELEMENT b (#PCDATA)&gt;!ELEMENT b (#PCDATA)&gt;!ELEMENT b (#PCDATA)&gt;!ELEMENT b (#PCDATA)&gt;!ELEMENT b (#PCDATA)&gt;!ELEMENT b (#PCDATA)&gt;!ELEMENT b (#PCDATA)&gt;</eg></p>







</div3>







</div2>







        







<div2 id='attdecls'>







<head>Attribute-List DeclarationsAttribute-List DeclarationsAttribute-List DeclarationsAttribute-List DeclarationsAttribute-List DeclarationsAttribute-List DeclarationsAttribute-List DeclarationsAttribute-List Declarations</head>







        







<p><termref def='dt-attr'>AttributesAttributesAttributesAttributesAttributesAttributesAttributesAttributes</termref> are used to associate are used to associate are used to associate are used to associate are used to associate are used to associate are used to associate are used to associate







name-value pairs with name-value pairs with name-value pairs with name-value pairs with name-value pairs with name-value pairs with name-value pairs with name-value pairs with <termref def='dt-element'>elementselementselementselementselementselementselementselements</termref>........







Attribute specifications may appear only within Attribute specifications may appear only within Attribute specifications may appear only within Attribute specifications may appear only within Attribute specifications may appear only within Attribute specifications may appear only within Attribute specifications may appear only within Attribute specifications may appear only within <termref def='dt-stag'>start-tagsstart-tagsstart-tagsstart-tagsstart-tagsstart-tagsstart-tagsstart-tags</termref>







and and and and and and and and <termref def='dt-eetag'>empty-element tagsempty-element tagsempty-element tagsempty-element tagsempty-element tagsempty-element tagsempty-element tagsempty-element tags</termref>; ; ; ; ; ; ; ; 







thus, the productions used tothus, the productions used tothus, the productions used tothus, the productions used tothus, the productions used tothus, the productions used tothus, the productions used tothus, the productions used to







recognize them appear in recognize them appear in recognize them appear in recognize them appear in recognize them appear in recognize them appear in recognize them appear in recognize them appear in <specref ref='sec-starttags'></specref>.  .  .  .  .  .  .  .  







Attribute-listAttribute-listAttribute-listAttribute-listAttribute-listAttribute-listAttribute-listAttribute-list







declarations may be used:declarations may be used:declarations may be used:declarations may be used:declarations may be used:declarations may be used:declarations may be used:declarations may be used:







<ulist>







<item><p>To define the set of attributes pertaining to a givenTo define the set of attributes pertaining to a givenTo define the set of attributes pertaining to a givenTo define the set of attributes pertaining to a givenTo define the set of attributes pertaining to a givenTo define the set of attributes pertaining to a givenTo define the set of attributes pertaining to a givenTo define the set of attributes pertaining to a given







element type.element type.element type.element type.element type.element type.element type.element type.</p></item>







<item><p>To establish type constraints for theseTo establish type constraints for theseTo establish type constraints for theseTo establish type constraints for theseTo establish type constraints for theseTo establish type constraints for theseTo establish type constraints for theseTo establish type constraints for these







attributes.attributes.attributes.attributes.attributes.attributes.attributes.attributes.</p></item>







<item><p>To provide To provide To provide To provide To provide To provide To provide To provide <termref def='dt-default'>default valuesdefault valuesdefault valuesdefault valuesdefault valuesdefault valuesdefault valuesdefault values</termref>







for attributes.for attributes.for attributes.for attributes.for attributes.for attributes.for attributes.for attributes.</p></item>







</ulist>







</p>







<p><termdef id='dt-attdecl' term='Attribute-List Declaration'>







<term>Attribute-list declarationsAttribute-list declarationsAttribute-list declarationsAttribute-list declarationsAttribute-list declarationsAttribute-list declarationsAttribute-list declarationsAttribute-list declarations</term> specify the name, data type, and default specify the name, data type, and default specify the name, data type, and default specify the name, data type, and default specify the name, data type, and default specify the name, data type, and default specify the name, data type, and default specify the name, data type, and default







value (if any) of each attribute associated with a given element type:value (if any) of each attribute associated with a given element type:value (if any) of each attribute associated with a given element type:value (if any) of each attribute associated with a given element type:value (if any) of each attribute associated with a given element type:value (if any) of each attribute associated with a given element type:value (if any) of each attribute associated with a given element type:value (if any) of each attribute associated with a given element type:







<scrap lang='ebnf'>







<head>Attribute-list DeclarationAttribute-list DeclarationAttribute-list DeclarationAttribute-list DeclarationAttribute-list DeclarationAttribute-list DeclarationAttribute-list DeclarationAttribute-list Declaration</head>







<prod id='NT-AttlistDecl'><lhs>AttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDecl</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ATTLIST' !ATTLIST' !ATTLIST' !ATTLIST' !ATTLIST' !ATTLIST' !ATTLIST' !ATTLIST' <nt def='NT-S'>SSSSSSSS</nt>        







<nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>        







<nt def='NT-AttDef'>AttDefAttDefAttDefAttDefAttDefAttDefAttDefAttDef</nt>********







<nt def='NT-S'>SSSSSSSS</nt>? '? '? '? '? '? '? '? '&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;''''''''</rhs>







</prod>







<prod id='NT-AttDef'><lhs>AttDefAttDefAttDefAttDefAttDefAttDefAttDefAttDef</lhs>







<rhs><nt def='NT-S'>SSSSSSSS</nt>        <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>        







<nt def='NT-S'>SSSSSSSS</nt>        <nt def='NT-AttType'>AttTypeAttTypeAttTypeAttTypeAttTypeAttTypeAttTypeAttType</nt>        







<nt def='NT-S'>SSSSSSSS</nt>        <nt def='NT-DefaultDecl'>DefaultDeclDefaultDeclDefaultDeclDefaultDeclDefaultDeclDefaultDeclDefaultDeclDefaultDecl</nt></rhs>







</prod>







</scrap>







The The The The The The The The <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> in the in the in the in the in the in the in the in the







<nt def='NT-AttlistDecl'>AttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDecl</nt> rule is the type of an element.  At rule is the type of an element.  At rule is the type of an element.  At rule is the type of an element.  At rule is the type of an element.  At rule is the type of an element.  At rule is the type of an element.  At rule is the type of an element.  At







user option, an XML processor may issue a warning if attributes areuser option, an XML processor may issue a warning if attributes areuser option, an XML processor may issue a warning if attributes areuser option, an XML processor may issue a warning if attributes areuser option, an XML processor may issue a warning if attributes areuser option, an XML processor may issue a warning if attributes areuser option, an XML processor may issue a warning if attributes areuser option, an XML processor may issue a warning if attributes are







declared for an element type not itself declared, but this is not andeclared for an element type not itself declared, but this is not andeclared for an element type not itself declared, but this is not andeclared for an element type not itself declared, but this is not andeclared for an element type not itself declared, but this is not andeclared for an element type not itself declared, but this is not andeclared for an element type not itself declared, but this is not andeclared for an element type not itself declared, but this is not an







error.  The error.  The error.  The error.  The error.  The error.  The error.  The error.  The <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> in the  in the  in the  in the  in the  in the  in the  in the 







<nt def='NT-AttDef'>AttDefAttDefAttDefAttDefAttDefAttDefAttDefAttDef</nt> rule is rule is rule is rule is rule is rule is rule is rule is







the name of the attribute.the name of the attribute.the name of the attribute.the name of the attribute.the name of the attribute.the name of the attribute.the name of the attribute.the name of the attribute.</termdef></p>







<p>







When more than one When more than one When more than one When more than one When more than one When more than one When more than one When more than one <nt def='NT-AttlistDecl'>AttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDeclAttlistDecl</nt> is provided for a is provided for a is provided for a is provided for a is provided for a is provided for a is provided for a is provided for a







given element type, the contents of all those provided are merged.  Whengiven element type, the contents of all those provided are merged.  Whengiven element type, the contents of all those provided are merged.  Whengiven element type, the contents of all those provided are merged.  Whengiven element type, the contents of all those provided are merged.  Whengiven element type, the contents of all those provided are merged.  Whengiven element type, the contents of all those provided are merged.  Whengiven element type, the contents of all those provided are merged.  When







more than one definition is provided for the same attribute of amore than one definition is provided for the same attribute of amore than one definition is provided for the same attribute of amore than one definition is provided for the same attribute of amore than one definition is provided for the same attribute of amore than one definition is provided for the same attribute of amore than one definition is provided for the same attribute of amore than one definition is provided for the same attribute of a







given element type, the first declaration is binding and latergiven element type, the first declaration is binding and latergiven element type, the first declaration is binding and latergiven element type, the first declaration is binding and latergiven element type, the first declaration is binding and latergiven element type, the first declaration is binding and latergiven element type, the first declaration is binding and latergiven element type, the first declaration is binding and later







declarations are ignored.  declarations are ignored.  declarations are ignored.  declarations are ignored.  declarations are ignored.  declarations are ignored.  declarations are ignored.  declarations are ignored.  







<termref def='dt-interop'>For interoperability,For interoperability,For interoperability,For interoperability,For interoperability,For interoperability,For interoperability,For interoperability,</termref> writers of DTDs writers of DTDs writers of DTDs writers of DTDs writers of DTDs writers of DTDs writers of DTDs writers of DTDs







may choose to provide at most one attribute-list declarationmay choose to provide at most one attribute-list declarationmay choose to provide at most one attribute-list declarationmay choose to provide at most one attribute-list declarationmay choose to provide at most one attribute-list declarationmay choose to provide at most one attribute-list declarationmay choose to provide at most one attribute-list declarationmay choose to provide at most one attribute-list declaration







for a given element type, at most one attribute definitionfor a given element type, at most one attribute definitionfor a given element type, at most one attribute definitionfor a given element type, at most one attribute definitionfor a given element type, at most one attribute definitionfor a given element type, at most one attribute definitionfor a given element type, at most one attribute definitionfor a given element type, at most one attribute definition







for a given attribute name, and at least one attribute definitionfor a given attribute name, and at least one attribute definitionfor a given attribute name, and at least one attribute definitionfor a given attribute name, and at least one attribute definitionfor a given attribute name, and at least one attribute definitionfor a given attribute name, and at least one attribute definitionfor a given attribute name, and at least one attribute definitionfor a given attribute name, and at least one attribute definition







in each attribute-list declaration.in each attribute-list declaration.in each attribute-list declaration.in each attribute-list declaration.in each attribute-list declaration.in each attribute-list declaration.in each attribute-list declaration.in each attribute-list declaration.







For interoperability, an XML processor may at user optionFor interoperability, an XML processor may at user optionFor interoperability, an XML processor may at user optionFor interoperability, an XML processor may at user optionFor interoperability, an XML processor may at user optionFor interoperability, an XML processor may at user optionFor interoperability, an XML processor may at user optionFor interoperability, an XML processor may at user option







issue a warning when more than one attribute-list declaration isissue a warning when more than one attribute-list declaration isissue a warning when more than one attribute-list declaration isissue a warning when more than one attribute-list declaration isissue a warning when more than one attribute-list declaration isissue a warning when more than one attribute-list declaration isissue a warning when more than one attribute-list declaration isissue a warning when more than one attribute-list declaration is







provided for a given element type, or more than one attribute definitionprovided for a given element type, or more than one attribute definitionprovided for a given element type, or more than one attribute definitionprovided for a given element type, or more than one attribute definitionprovided for a given element type, or more than one attribute definitionprovided for a given element type, or more than one attribute definitionprovided for a given element type, or more than one attribute definitionprovided for a given element type, or more than one attribute definition







is provided is provided is provided is provided is provided is provided is provided is provided 







for a given attribute, but this is not an error.for a given attribute, but this is not an error.for a given attribute, but this is not an error.for a given attribute, but this is not an error.for a given attribute, but this is not an error.for a given attribute, but this is not an error.for a given attribute, but this is not an error.for a given attribute, but this is not an error.







</p>















<div3 id='sec-attribute-types'>







<head>Attribute TypesAttribute TypesAttribute TypesAttribute TypesAttribute TypesAttribute TypesAttribute TypesAttribute Types</head>







        







<p>XML attribute types are of three kinds:  a string type, aXML attribute types are of three kinds:  a string type, aXML attribute types are of three kinds:  a string type, aXML attribute types are of three kinds:  a string type, aXML attribute types are of three kinds:  a string type, aXML attribute types are of three kinds:  a string type, aXML attribute types are of three kinds:  a string type, aXML attribute types are of three kinds:  a string type, a







set of tokenized types, and enumerated types.  The string type may takeset of tokenized types, and enumerated types.  The string type may takeset of tokenized types, and enumerated types.  The string type may takeset of tokenized types, and enumerated types.  The string type may takeset of tokenized types, and enumerated types.  The string type may takeset of tokenized types, and enumerated types.  The string type may takeset of tokenized types, and enumerated types.  The string type may takeset of tokenized types, and enumerated types.  The string type may take







any literal string as a value; the tokenized types have varying lexicalany literal string as a value; the tokenized types have varying lexicalany literal string as a value; the tokenized types have varying lexicalany literal string as a value; the tokenized types have varying lexicalany literal string as a value; the tokenized types have varying lexicalany literal string as a value; the tokenized types have varying lexicalany literal string as a value; the tokenized types have varying lexicalany literal string as a value; the tokenized types have varying lexical







and semantic constraints, as noted:and semantic constraints, as noted:and semantic constraints, as noted:and semantic constraints, as noted:and semantic constraints, as noted:and semantic constraints, as noted:and semantic constraints, as noted:and semantic constraints, as noted:







<scrap lang='ebnf'>







<head>Attribute TypesAttribute TypesAttribute TypesAttribute TypesAttribute TypesAttribute TypesAttribute TypesAttribute Types</head>







<prodgroup pcw4='14' pcw5='11.5'>







<prod id='NT-AttType'><lhs>AttTypeAttTypeAttTypeAttTypeAttTypeAttTypeAttTypeAttType</lhs>







<rhs><nt def='NT-StringType'>StringTypeStringTypeStringTypeStringTypeStringTypeStringTypeStringTypeStringType</nt>        







| | | | | | | | <nt def='NT-TokenizedType'>TokenizedTypeTokenizedTypeTokenizedTypeTokenizedTypeTokenizedTypeTokenizedTypeTokenizedTypeTokenizedType</nt>        







| | | | | | | | <nt def='NT-EnumeratedType'>EnumeratedTypeEnumeratedTypeEnumeratedTypeEnumeratedTypeEnumeratedTypeEnumeratedTypeEnumeratedTypeEnumeratedType</nt>







</rhs>







</prod>







<prod id='NT-StringType'><lhs>StringTypeStringTypeStringTypeStringTypeStringTypeStringTypeStringTypeStringType</lhs>







<rhs>'CDATA''CDATA''CDATA''CDATA''CDATA''CDATA''CDATA''CDATA'</rhs>







</prod>







<prod id='NT-TokenizedType'><lhs>TokenizedTypeTokenizedTypeTokenizedTypeTokenizedTypeTokenizedTypeTokenizedTypeTokenizedTypeTokenizedType</lhs>







<rhs>'ID''ID''ID''ID''ID''ID''ID''ID'</rhs>







<vc def='id'></vc>







<vc def='one-id-per-el'></vc>







<vc def='id-default'></vc>







<rhs>| 'IDREF'| 'IDREF'| 'IDREF'| 'IDREF'| 'IDREF'| 'IDREF'| 'IDREF'| 'IDREF'</rhs>







<vc def='idref'></vc>







<rhs>| 'IDREFS'| 'IDREFS'| 'IDREFS'| 'IDREFS'| 'IDREFS'| 'IDREFS'| 'IDREFS'| 'IDREFS'</rhs>







<vc def='idref'></vc>







<rhs>| 'ENTITY'| 'ENTITY'| 'ENTITY'| 'ENTITY'| 'ENTITY'| 'ENTITY'| 'ENTITY'| 'ENTITY'</rhs>







<vc def='entname'></vc>







<rhs>| 'ENTITIES'| 'ENTITIES'| 'ENTITIES'| 'ENTITIES'| 'ENTITIES'| 'ENTITIES'| 'ENTITIES'| 'ENTITIES'</rhs>







<vc def='entname'></vc>







<rhs>| 'NMTOKEN'| 'NMTOKEN'| 'NMTOKEN'| 'NMTOKEN'| 'NMTOKEN'| 'NMTOKEN'| 'NMTOKEN'| 'NMTOKEN'</rhs>







<vc def='nmtok'></vc>







<rhs>| 'NMTOKENS'| 'NMTOKENS'| 'NMTOKENS'| 'NMTOKENS'| 'NMTOKENS'| 'NMTOKENS'| 'NMTOKENS'| 'NMTOKENS'</rhs>







<vc def='nmtok'></vc></prod>







</prodgroup>







</scrap>







</p>







<vcnote id='id'>







<head>IDIDIDIDIDIDIDID</head>







<p>







Values of type Values of type Values of type Values of type Values of type Values of type Values of type Values of type <kw>IDIDIDIDIDIDIDID</kw> must match the  must match the  must match the  must match the  must match the  must match the  must match the  must match the 







<nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> production.   production.   production.   production.   production.   production.   production.   production.  







A name must not appear more than once inA name must not appear more than once inA name must not appear more than once inA name must not appear more than once inA name must not appear more than once inA name must not appear more than once inA name must not appear more than once inA name must not appear more than once in







an XML document as a value of this type; i.e., ID values must uniquelyan XML document as a value of this type; i.e., ID values must uniquelyan XML document as a value of this type; i.e., ID values must uniquelyan XML document as a value of this type; i.e., ID values must uniquelyan XML document as a value of this type; i.e., ID values must uniquelyan XML document as a value of this type; i.e., ID values must uniquelyan XML document as a value of this type; i.e., ID values must uniquelyan XML document as a value of this type; i.e., ID values must uniquely







identify the elements which bear them.   identify the elements which bear them.   identify the elements which bear them.   identify the elements which bear them.   identify the elements which bear them.   identify the elements which bear them.   identify the elements which bear them.   identify the elements which bear them.   







</p>







</vcnote>







<vcnote id='one-id-per-el'>







<head>One ID per Element TypeOne ID per Element TypeOne ID per Element TypeOne ID per Element TypeOne ID per Element TypeOne ID per Element TypeOne ID per Element TypeOne ID per Element Type</head>







<p>No element type may have more than one ID attribute specified.No element type may have more than one ID attribute specified.No element type may have more than one ID attribute specified.No element type may have more than one ID attribute specified.No element type may have more than one ID attribute specified.No element type may have more than one ID attribute specified.No element type may have more than one ID attribute specified.No element type may have more than one ID attribute specified.</p>







</vcnote>







<vcnote id='id-default'>







<head>ID Attribute DefaultID Attribute DefaultID Attribute DefaultID Attribute DefaultID Attribute DefaultID Attribute DefaultID Attribute DefaultID Attribute Default</head>







<p>An ID attribute must have a declared default of An ID attribute must have a declared default of An ID attribute must have a declared default of An ID attribute must have a declared default of An ID attribute must have a declared default of An ID attribute must have a declared default of An ID attribute must have a declared default of An ID attribute must have a declared default of <kw>#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED</kw> or or or or or or or or







<kw>#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED</kw>........</p>







</vcnote>







<vcnote id='idref'>







<head>IDREFIDREFIDREFIDREFIDREFIDREFIDREFIDREF</head>







<p>







Values of type Values of type Values of type Values of type Values of type Values of type Values of type Values of type <kw>IDREFIDREFIDREFIDREFIDREFIDREFIDREFIDREF</kw> must match must match must match must match must match must match must match must match







the the the the the the the the <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> production, and production, and production, and production, and production, and production, and production, and production, and







values of type values of type values of type values of type values of type values of type values of type values of type <kw>IDREFSIDREFSIDREFSIDREFSIDREFSIDREFSIDREFSIDREFS</kw> must match must match must match must match must match must match must match must match







<nt def='NT-Names'>NamesNamesNamesNamesNamesNamesNamesNames</nt>; ; ; ; ; ; ; ; 







each each each each each each each each <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> must match the value of an ID attribute on  must match the value of an ID attribute on  must match the value of an ID attribute on  must match the value of an ID attribute on  must match the value of an ID attribute on  must match the value of an ID attribute on  must match the value of an ID attribute on  must match the value of an ID attribute on 







some element in the XML document; i.e. some element in the XML document; i.e. some element in the XML document; i.e. some element in the XML document; i.e. some element in the XML document; i.e. some element in the XML document; i.e. some element in the XML document; i.e. some element in the XML document; i.e. <kw>IDREFIDREFIDREFIDREFIDREFIDREFIDREFIDREF</kw> values must  values must  values must  values must  values must  values must  values must  values must 







match the value of some ID attribute. match the value of some ID attribute. match the value of some ID attribute. match the value of some ID attribute. match the value of some ID attribute. match the value of some ID attribute. match the value of some ID attribute. match the value of some ID attribute. 







</p>







</vcnote>







<vcnote id='entname'>







<head>Entity NameEntity NameEntity NameEntity NameEntity NameEntity NameEntity NameEntity Name</head>







<p>







Values of type Values of type Values of type Values of type Values of type Values of type Values of type Values of type <kw>ENTITYENTITYENTITYENTITYENTITYENTITYENTITYENTITY</kw>        







must match the must match the must match the must match the must match the must match the must match the must match the <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> production, production, production, production, production, production, production, production,







values of type values of type values of type values of type values of type values of type values of type values of type <kw>ENTITIESENTITIESENTITIESENTITIESENTITIESENTITIESENTITIESENTITIES</kw> must match must match must match must match must match must match must match must match







<nt def='NT-Names'>NamesNamesNamesNamesNamesNamesNamesNames</nt>;;;;;;;;







each each each each each each each each <nt def='NT-Name'>NameNameNameNameNameNameNameName</nt> must  must  must  must  must  must  must  must 







match thematch thematch thematch thematch thematch thematch thematch the







name of an name of an name of an name of an name of an name of an name of an name of an <termref def='dt-unparsed'>unparsed entityunparsed entityunparsed entityunparsed entityunparsed entityunparsed entityunparsed entityunparsed entity</termref> declared in the declared in the declared in the declared in the declared in the declared in the declared in the declared in the







<termref def='dt-doctype'>DTDDTDDTDDTDDTDDTDDTDDTD</termref>........







</p>







</vcnote>







<vcnote id='nmtok'>







<head>Name TokenName TokenName TokenName TokenName TokenName TokenName TokenName Token</head>







<p>







Values of type Values of type Values of type Values of type Values of type Values of type Values of type Values of type <kw>NMTOKENNMTOKENNMTOKENNMTOKENNMTOKENNMTOKENNMTOKENNMTOKEN</kw> must match the must match the must match the must match the must match the must match the must match the must match the







<nt def='NT-Nmtoken'>NmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtoken</nt> production; production; production; production; production; production; production; production;







values of type values of type values of type values of type values of type values of type values of type values of type <kw>NMTOKENSNMTOKENSNMTOKENSNMTOKENSNMTOKENSNMTOKENSNMTOKENSNMTOKENS</kw> must  must  must  must  must  must  must  must 







match match match match match match match match <termref def='NT-Nmtokens'>NmtokensNmtokensNmtokensNmtokensNmtokensNmtokensNmtokensNmtokens</termref>........







</p>







</vcnote>







<!-- why?
<p>The XML processor must normalize attribute values before
passing them to the application, as described in 
<specref ref="AVNormalize"/>.</p>-->







<p><termdef id='dt-enumerated' term='Enumerated Attribute Values'><term>Enumerated attributesEnumerated attributesEnumerated attributesEnumerated attributesEnumerated attributesEnumerated attributesEnumerated attributesEnumerated attributes</term> can take one  can take one  can take one  can take one  can take one  can take one  can take one  can take one 







of a list of values provided in the declarationof a list of values provided in the declarationof a list of values provided in the declarationof a list of values provided in the declarationof a list of values provided in the declarationof a list of values provided in the declarationof a list of values provided in the declarationof a list of values provided in the declaration</termdef>. There are two. There are two. There are two. There are two. There are two. There are two. There are two. There are two







kinds of enumerated types:kinds of enumerated types:kinds of enumerated types:kinds of enumerated types:kinds of enumerated types:kinds of enumerated types:kinds of enumerated types:kinds of enumerated types:







<scrap lang='ebnf'>







<head>Enumerated Attribute TypesEnumerated Attribute TypesEnumerated Attribute TypesEnumerated Attribute TypesEnumerated Attribute TypesEnumerated Attribute TypesEnumerated Attribute TypesEnumerated Attribute Types</head>







<prod id='NT-EnumeratedType'><lhs>EnumeratedTypeEnumeratedTypeEnumeratedTypeEnumeratedTypeEnumeratedTypeEnumeratedTypeEnumeratedTypeEnumeratedType</lhs>        







<rhs><nt def='NT-NotationType'>NotationTypeNotationTypeNotationTypeNotationTypeNotationTypeNotationTypeNotationTypeNotationType</nt>        







| | | | | | | | <nt def='NT-Enumeration'>EnumerationEnumerationEnumerationEnumerationEnumerationEnumerationEnumerationEnumeration</nt>







</rhs></prod>







<prod id='NT-NotationType'><lhs>NotationTypeNotationTypeNotationTypeNotationTypeNotationTypeNotationTypeNotationTypeNotationType</lhs>        







<rhs>'NOTATION' 'NOTATION' 'NOTATION' 'NOTATION' 'NOTATION' 'NOTATION' 'NOTATION' 'NOTATION' 







<nt def='NT-S'>SSSSSSSS</nt>        







'(' '(' '(' '(' '(' '(' '(' '(' 







<nt def='NT-S'>SSSSSSSS</nt>?  ?  ?  ?  ?  ?  ?  ?  







<nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>        







((((((((<nt def='NT-S'>SSSSSSSS</nt>? '|' ? '|' ? '|' ? '|' ? '|' ? '|' ? '|' ? '|' <nt def='NT-S'>SSSSSSSS</nt>?  ?  ?  ?  ?  ?  ?  ?  







<nt def='NT-Name'>NameNameNameNameNameNameNameName</nt>)*)*)*)*)*)*)*)*







<nt def='NT-S'>SSSSSSSS</nt>? ')'? ')'? ')'? ')'? ')'? ')'? ')'? ')'







</rhs>







<vc def='notatn'></vc></prod>







<prod id='NT-Enumeration'><lhs>EnumerationEnumerationEnumerationEnumerationEnumerationEnumerationEnumerationEnumeration</lhs>        







<rhs>'(' '(' '(' '(' '(' '(' '(' '(' <nt def='NT-S'>SSSSSSSS</nt>????????







<nt def='NT-Nmtoken'>NmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtoken</nt>        







((((((((<nt def='NT-S'>SSSSSSSS</nt>? '|' ? '|' ? '|' ? '|' ? '|' ? '|' ? '|' ? '|' 







<nt def='NT-S'>SSSSSSSS</nt>?  ?  ?  ?  ?  ?  ?  ?  







<nt def='NT-Nmtoken'>NmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtoken</nt>)* )* )* )* )* )* )* )* 







<nt def='NT-S'>SSSSSSSS</nt>? ? ? ? ? ? ? ? 







')'')'')'')'')'')'')'')'</rhs>        







<vc def='enum'></vc></prod>







</scrap>







A A A A A A A A <kw>NOTATIONNOTATIONNOTATIONNOTATIONNOTATIONNOTATIONNOTATIONNOTATION</kw> attribute identifies a  attribute identifies a  attribute identifies a  attribute identifies a  attribute identifies a  attribute identifies a  attribute identifies a  attribute identifies a 







<termref def='dt-notation'>notationnotationnotationnotationnotationnotationnotationnotation</termref>, declared in the , declared in the , declared in the , declared in the , declared in the , declared in the , declared in the , declared in the 







DTD with associated system and/or public identifiers, toDTD with associated system and/or public identifiers, toDTD with associated system and/or public identifiers, toDTD with associated system and/or public identifiers, toDTD with associated system and/or public identifiers, toDTD with associated system and/or public identifiers, toDTD with associated system and/or public identifiers, toDTD with associated system and/or public identifiers, to







be used in interpreting the element to which the attributebe used in interpreting the element to which the attributebe used in interpreting the element to which the attributebe used in interpreting the element to which the attributebe used in interpreting the element to which the attributebe used in interpreting the element to which the attributebe used in interpreting the element to which the attributebe used in interpreting the element to which the attribute







is attached.is attached.is attached.is attached.is attached.is attached.is attached.is attached.







</p>















<vcnote id='notatn'>







<head>Notation AttributesNotation AttributesNotation AttributesNotation AttributesNotation AttributesNotation AttributesNotation AttributesNotation Attributes</head>







<p>







Values of this type must matchValues of this type must matchValues of this type must matchValues of this type must matchValues of this type must matchValues of this type must matchValues of this type must matchValues of this type must match







one of the one of the one of the one of the one of the one of the one of the one of the <titleref href='Notations'>notationnotationnotationnotationnotationnotationnotationnotation</titleref> names included in names included in names included in names included in names included in names included in names included in names included in







the declaration; all notation names in the declaration mustthe declaration; all notation names in the declaration mustthe declaration; all notation names in the declaration mustthe declaration; all notation names in the declaration mustthe declaration; all notation names in the declaration mustthe declaration; all notation names in the declaration mustthe declaration; all notation names in the declaration mustthe declaration; all notation names in the declaration must







be declared.be declared.be declared.be declared.be declared.be declared.be declared.be declared.







</p>







</vcnote>







<vcnote id='enum'>







<head>EnumerationEnumerationEnumerationEnumerationEnumerationEnumerationEnumerationEnumeration</head>







<p>







Values of this typeValues of this typeValues of this typeValues of this typeValues of this typeValues of this typeValues of this typeValues of this type







must match one of the must match one of the must match one of the must match one of the must match one of the must match one of the must match one of the must match one of the <nt def='NT-Nmtoken'>NmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtoken</nt> tokens in the tokens in the tokens in the tokens in the tokens in the tokens in the tokens in the tokens in the







declaration. declaration. declaration. declaration. declaration. declaration. declaration. declaration. 







</p>







</vcnote>







<p><termref def='dt-interop'>For interoperability,For interoperability,For interoperability,For interoperability,For interoperability,For interoperability,For interoperability,For interoperability,</termref> the same the same the same the same the same the same the same the same







<nt def='NT-Nmtoken'>NmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtokenNmtoken</nt> should not occur more than once in the should not occur more than once in the should not occur more than once in the should not occur more than once in the should not occur more than once in the should not occur more than once in the should not occur more than once in the should not occur more than once in the







enumerated attribute types of a single element type.enumerated attribute types of a single element type.enumerated attribute types of a single element type.enumerated attribute types of a single element type.enumerated attribute types of a single element type.enumerated attribute types of a single element type.enumerated attribute types of a single element type.enumerated attribute types of a single element type.







</p>







</div3>















<div3 id='sec-attr-defaults'>







<head>Attribute DefaultsAttribute DefaultsAttribute DefaultsAttribute DefaultsAttribute DefaultsAttribute DefaultsAttribute DefaultsAttribute Defaults</head>







        







<p>An An An An An An An An <termref def='dt-attdecl'>attribute declarationattribute declarationattribute declarationattribute declarationattribute declarationattribute declarationattribute declarationattribute declaration</termref> provides provides provides provides provides provides provides provides







information on whetherinformation on whetherinformation on whetherinformation on whetherinformation on whetherinformation on whetherinformation on whetherinformation on whether







the attribute's presence is required, and if not, how an XML processor shouldthe attribute's presence is required, and if not, how an XML processor shouldthe attribute's presence is required, and if not, how an XML processor shouldthe attribute's presence is required, and if not, how an XML processor shouldthe attribute's presence is required, and if not, how an XML processor shouldthe attribute's presence is required, and if not, how an XML processor shouldthe attribute's presence is required, and if not, how an XML processor shouldthe attribute's presence is required, and if not, how an XML processor should







react if a declared attribute is absent in a document.react if a declared attribute is absent in a document.react if a declared attribute is absent in a document.react if a declared attribute is absent in a document.react if a declared attribute is absent in a document.react if a declared attribute is absent in a document.react if a declared attribute is absent in a document.react if a declared attribute is absent in a document.







<scrap lang='ebnf'>







<head>Attribute DefaultsAttribute DefaultsAttribute DefaultsAttribute DefaultsAttribute DefaultsAttribute DefaultsAttribute DefaultsAttribute Defaults</head>







<prodgroup pcw4='14' pcw5='11.5'>







<prod id='NT-DefaultDecl'><lhs>DefaultDeclDefaultDeclDefaultDeclDefaultDeclDefaultDeclDefaultDeclDefaultDeclDefaultDecl</lhs>







<rhs>'#REQUIRED' '#REQUIRED' '#REQUIRED' '#REQUIRED' '#REQUIRED' '#REQUIRED' '#REQUIRED' '#REQUIRED' 







||||||||        '#IMPLIED' '#IMPLIED' '#IMPLIED' '#IMPLIED' '#IMPLIED' '#IMPLIED' '#IMPLIED' '#IMPLIED' </rhs>







<rhs>| (('#FIXED' S)? | (('#FIXED' S)? | (('#FIXED' S)? | (('#FIXED' S)? | (('#FIXED' S)? | (('#FIXED' S)? | (('#FIXED' S)? | (('#FIXED' S)? <nt def='NT-AttValue'>AttValueAttValueAttValueAttValueAttValueAttValueAttValueAttValue</nt>))))))))</rhs>







<vc def='RequiredAttr'></vc>







<vc def='defattrvalid'></vc>







<wfc def='CleanAttrVals'></wfc>







<vc def='FixedAttr'></vc>







</prod>







</prodgroup>







</scrap>















</p>







<p>In an attribute declaration, In an attribute declaration, In an attribute declaration, In an attribute declaration, In an attribute declaration, In an attribute declaration, In an attribute declaration, In an attribute declaration, <kw>#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED</kw> means that the means that the means that the means that the means that the means that the means that the means that the







attribute must always be provided, attribute must always be provided, attribute must always be provided, attribute must always be provided, attribute must always be provided, attribute must always be provided, attribute must always be provided, attribute must always be provided, <kw>#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED</kw> that no default  that no default  that no default  that no default  that no default  that no default  that no default  that no default 







value is provided.value is provided.value is provided.value is provided.value is provided.value is provided.value is provided.value is provided.







<!-- not any more!!
<kw>#IMPLIED</kw> means that if the attribute is omitted
from an element of this type,
the XML processor must inform the application
that no value was specified; no constraint is placed on the behavior
of the application. -->







<termdef id='dt-default' term='Attribute Default'>If the If the If the If the If the If the If the If the 







declarationdeclarationdeclarationdeclarationdeclarationdeclarationdeclarationdeclaration







is neither is neither is neither is neither is neither is neither is neither is neither <kw>#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED</kw> nor  nor  nor  nor  nor  nor  nor  nor <kw>#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED#IMPLIED</kw>, then the, then the, then the, then the, then the, then the, then the, then the







<nt def='NT-AttValue'>AttValueAttValueAttValueAttValueAttValueAttValueAttValueAttValue</nt> value contains the declared value contains the declared value contains the declared value contains the declared value contains the declared value contains the declared value contains the declared value contains the declared







<term>defaultdefaultdefaultdefaultdefaultdefaultdefaultdefault</term> value; the  value; the  value; the  value; the  value; the  value; the  value; the  value; the <kw>#FIXED#FIXED#FIXED#FIXED#FIXED#FIXED#FIXED#FIXED</kw> keyword states that keyword states that keyword states that keyword states that keyword states that keyword states that keyword states that keyword states that







the attribute must always have the default value.the attribute must always have the default value.the attribute must always have the default value.the attribute must always have the default value.the attribute must always have the default value.the attribute must always have the default value.the attribute must always have the default value.the attribute must always have the default value.







If a default valueIf a default valueIf a default valueIf a default valueIf a default valueIf a default valueIf a default valueIf a default value







is declared, when an XML processor encounters an omitted attribute, itis declared, when an XML processor encounters an omitted attribute, itis declared, when an XML processor encounters an omitted attribute, itis declared, when an XML processor encounters an omitted attribute, itis declared, when an XML processor encounters an omitted attribute, itis declared, when an XML processor encounters an omitted attribute, itis declared, when an XML processor encounters an omitted attribute, itis declared, when an XML processor encounters an omitted attribute, it







is to behave as though the attribute were present with is to behave as though the attribute were present with is to behave as though the attribute were present with is to behave as though the attribute were present with is to behave as though the attribute were present with is to behave as though the attribute were present with is to behave as though the attribute were present with is to behave as though the attribute were present with 







the declared default value.the declared default value.the declared default value.the declared default value.the declared default value.the declared default value.the declared default value.the declared default value.</termdef></p>







<vcnote id='RequiredAttr'>







<head>Required AttributeRequired AttributeRequired AttributeRequired AttributeRequired AttributeRequired AttributeRequired AttributeRequired Attribute</head>







<p>If the default declaration is the keyword If the default declaration is the keyword If the default declaration is the keyword If the default declaration is the keyword If the default declaration is the keyword If the default declaration is the keyword If the default declaration is the keyword If the default declaration is the keyword <kw>#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED#REQUIRED</kw>, then, then, then, then, then, then, then, then







the attribute must be specified forthe attribute must be specified forthe attribute must be specified forthe attribute must be specified forthe attribute must be specified forthe attribute must be specified forthe attribute must be specified forthe attribute must be specified for







all elements of the type in the attribute-list declaration.all elements of the type in the attribute-list declaration.all elements of the type in the attribute-list declaration.all elements of the type in the attribute-list declaration.all elements of the type in the attribute-list declaration.all elements of the type in the attribute-list declaration.all elements of the type in the attribute-list declaration.all elements of the type in the attribute-list declaration.







</p></vcnote>







<vcnote id='defattrvalid'>







<head>Attribute Default LegalAttribute Default LegalAttribute Default LegalAttribute Default LegalAttribute Default LegalAttribute Default LegalAttribute Default LegalAttribute Default Legal</head>







<p>







The declaredThe declaredThe declaredThe declaredThe declaredThe declaredThe declaredThe declared







default value must meet the lexical constraints of the declared attribute type.default value must meet the lexical constraints of the declared attribute type.default value must meet the lexical constraints of the declared attribute type.default value must meet the lexical constraints of the declared attribute type.default value must meet the lexical constraints of the declared attribute type.default value must meet the lexical constraints of the declared attribute type.default value must meet the lexical constraints of the declared attribute type.default value must meet the lexical constraints of the declared attribute type.







</p>







</vcnote>







<vcnote id='FixedAttr'>







<head>Fixed Attribute DefaultFixed Attribute DefaultFixed Attribute DefaultFixed Attribute DefaultFixed Attribute DefaultFixed Attribute DefaultFixed Attribute DefaultFixed Attribute Default</head>







<p>If an attribute has a default value declared with the If an attribute has a default value declared with the If an attribute has a default value declared with the If an attribute has a default value declared with the If an attribute has a default value declared with the If an attribute has a default value declared with the If an attribute has a default value declared with the If an attribute has a default value declared with the 







<kw>#FIXED#FIXED#FIXED#FIXED#FIXED#FIXED#FIXED#FIXED</kw> keyword, instances of that attribute must keyword, instances of that attribute must keyword, instances of that attribute must keyword, instances of that attribute must keyword, instances of that attribute must keyword, instances of that attribute must keyword, instances of that attribute must keyword, instances of that attribute must







match the default value.match the default value.match the default value.match the default value.match the default value.match the default value.match the default value.match the default value.







</p></vcnote>















<p>Examples of attribute-list declarations:Examples of attribute-list declarations:Examples of attribute-list declarations:Examples of attribute-list declarations:Examples of attribute-list declarations:Examples of attribute-list declarations:Examples of attribute-list declarations:Examples of attribute-list declarations:







<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ATTLIST termdef!ATTLIST termdef!ATTLIST termdef!ATTLIST termdef!ATTLIST termdef!ATTLIST termdef!ATTLIST termdef!ATTLIST termdef







          id      ID      #REQUIRED          id      ID      #REQUIRED          id      ID      #REQUIRED          id      ID      #REQUIRED          id      ID      #REQUIRED          id      ID      #REQUIRED          id      ID      #REQUIRED          id      ID      #REQUIRED







          name    CDATA   #IMPLIED&gt;          name    CDATA   #IMPLIED&gt;          name    CDATA   #IMPLIED&gt;          name    CDATA   #IMPLIED&gt;          name    CDATA   #IMPLIED&gt;          name    CDATA   #IMPLIED&gt;          name    CDATA   #IMPLIED&gt;          name    CDATA   #IMPLIED&gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ATTLIST list!ATTLIST list!ATTLIST list!ATTLIST list!ATTLIST list!ATTLIST list!ATTLIST list!ATTLIST list







          type    (bullets|ordered|glossary)  "ordered"&gt;          type    (bullets|ordered|glossary)  "ordered"&gt;          type    (bullets|ordered|glossary)  "ordered"&gt;          type    (bullets|ordered|glossary)  "ordered"&gt;          type    (bullets|ordered|glossary)  "ordered"&gt;          type    (bullets|ordered|glossary)  "ordered"&gt;          type    (bullets|ordered|glossary)  "ordered"&gt;          type    (bullets|ordered|glossary)  "ordered"&gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ATTLIST form!ATTLIST form!ATTLIST form!ATTLIST form!ATTLIST form!ATTLIST form!ATTLIST form!ATTLIST form







          method  CDATA   #FIXED "POST"&gt;          method  CDATA   #FIXED "POST"&gt;          method  CDATA   #FIXED "POST"&gt;          method  CDATA   #FIXED "POST"&gt;          method  CDATA   #FIXED "POST"&gt;          method  CDATA   #FIXED "POST"&gt;          method  CDATA   #FIXED "POST"&gt;          method  CDATA   #FIXED "POST"&gt;</eg></p>







</div3>







<div3 id='AVNormalize'>







<head>Attribute-Value NormalizationAttribute-Value NormalizationAttribute-Value NormalizationAttribute-Value NormalizationAttribute-Value NormalizationAttribute-Value NormalizationAttribute-Value NormalizationAttribute-Value Normalization</head>







<p>Before the value of an attribute is passed to the applicationBefore the value of an attribute is passed to the applicationBefore the value of an attribute is passed to the applicationBefore the value of an attribute is passed to the applicationBefore the value of an attribute is passed to the applicationBefore the value of an attribute is passed to the applicationBefore the value of an attribute is passed to the applicationBefore the value of an attribute is passed to the application







or checked for validity, theor checked for validity, theor checked for validity, theor checked for validity, theor checked for validity, theor checked for validity, theor checked for validity, theor checked for validity, the







XML processor must normalize it as follows:XML processor must normalize it as follows:XML processor must normalize it as follows:XML processor must normalize it as follows:XML processor must normalize it as follows:XML processor must normalize it as follows:XML processor must normalize it as follows:XML processor must normalize it as follows:







<ulist>







<item><p>a character reference is processed by appending the referenced    a character reference is processed by appending the referenced    a character reference is processed by appending the referenced    a character reference is processed by appending the referenced    a character reference is processed by appending the referenced    a character reference is processed by appending the referenced    a character reference is processed by appending the referenced    a character reference is processed by appending the referenced    







character to the attribute valuecharacter to the attribute valuecharacter to the attribute valuecharacter to the attribute valuecharacter to the attribute valuecharacter to the attribute valuecharacter to the attribute valuecharacter to the attribute value</p></item>







<item><p>an entity reference is processed by recursively processing thean entity reference is processed by recursively processing thean entity reference is processed by recursively processing thean entity reference is processed by recursively processing thean entity reference is processed by recursively processing thean entity reference is processed by recursively processing thean entity reference is processed by recursively processing thean entity reference is processed by recursively processing the







replacement text of the entityreplacement text of the entityreplacement text of the entityreplacement text of the entityreplacement text of the entityreplacement text of the entityreplacement text of the entityreplacement text of the entity</p></item>







<item><p>a whitespace character (#x20, #xD, #xA, #x9) is processed bya whitespace character (#x20, #xD, #xA, #x9) is processed bya whitespace character (#x20, #xD, #xA, #x9) is processed bya whitespace character (#x20, #xD, #xA, #x9) is processed bya whitespace character (#x20, #xD, #xA, #x9) is processed bya whitespace character (#x20, #xD, #xA, #x9) is processed bya whitespace character (#x20, #xD, #xA, #x9) is processed bya whitespace character (#x20, #xD, #xA, #x9) is processed by







appending #x20 to the normalized value, except that only a single #x20appending #x20 to the normalized value, except that only a single #x20appending #x20 to the normalized value, except that only a single #x20appending #x20 to the normalized value, except that only a single #x20appending #x20 to the normalized value, except that only a single #x20appending #x20 to the normalized value, except that only a single #x20appending #x20 to the normalized value, except that only a single #x20appending #x20 to the normalized value, except that only a single #x20







is appended for a "#xD#xA" sequence that is part of an externalis appended for a "#xD#xA" sequence that is part of an externalis appended for a "#xD#xA" sequence that is part of an externalis appended for a "#xD#xA" sequence that is part of an externalis appended for a "#xD#xA" sequence that is part of an externalis appended for a "#xD#xA" sequence that is part of an externalis appended for a "#xD#xA" sequence that is part of an externalis appended for a "#xD#xA" sequence that is part of an external







parsed entity or the literal entity value of an internal parsedparsed entity or the literal entity value of an internal parsedparsed entity or the literal entity value of an internal parsedparsed entity or the literal entity value of an internal parsedparsed entity or the literal entity value of an internal parsedparsed entity or the literal entity value of an internal parsedparsed entity or the literal entity value of an internal parsedparsed entity or the literal entity value of an internal parsed







entityentityentityentityentityentityentityentity</p></item>







<item><p>other characters are processed by appending them to the normalizedother characters are processed by appending them to the normalizedother characters are processed by appending them to the normalizedother characters are processed by appending them to the normalizedother characters are processed by appending them to the normalizedother characters are processed by appending them to the normalizedother characters are processed by appending them to the normalizedother characters are processed by appending them to the normalized







valuevaluevaluevaluevaluevaluevaluevalue</p>







</item></ulist>







</p>







<p>If the declared value is not CDATA, then the XML processor mustIf the declared value is not CDATA, then the XML processor mustIf the declared value is not CDATA, then the XML processor mustIf the declared value is not CDATA, then the XML processor mustIf the declared value is not CDATA, then the XML processor mustIf the declared value is not CDATA, then the XML processor mustIf the declared value is not CDATA, then the XML processor mustIf the declared value is not CDATA, then the XML processor must







further process the normalized attribute value by discarding anyfurther process the normalized attribute value by discarding anyfurther process the normalized attribute value by discarding anyfurther process the normalized attribute value by discarding anyfurther process the normalized attribute value by discarding anyfurther process the normalized attribute value by discarding anyfurther process the normalized attribute value by discarding anyfurther process the normalized attribute value by discarding any







leading and trailing space (#x20) characters, and by replacingleading and trailing space (#x20) characters, and by replacingleading and trailing space (#x20) characters, and by replacingleading and trailing space (#x20) characters, and by replacingleading and trailing space (#x20) characters, and by replacingleading and trailing space (#x20) characters, and by replacingleading and trailing space (#x20) characters, and by replacingleading and trailing space (#x20) characters, and by replacing







sequences of space (#x20) characters by a single space (#x20)sequences of space (#x20) characters by a single space (#x20)sequences of space (#x20) characters by a single space (#x20)sequences of space (#x20) characters by a single space (#x20)sequences of space (#x20) characters by a single space (#x20)sequences of space (#x20) characters by a single space (#x20)sequences of space (#x20) characters by a single space (#x20)sequences of space (#x20) characters by a single space (#x20)







character.character.character.character.character.character.character.character.</p>







<p>







All attributes for which no declaration has been read should be treatedAll attributes for which no declaration has been read should be treatedAll attributes for which no declaration has been read should be treatedAll attributes for which no declaration has been read should be treatedAll attributes for which no declaration has been read should be treatedAll attributes for which no declaration has been read should be treatedAll attributes for which no declaration has been read should be treatedAll attributes for which no declaration has been read should be treated







by a non-validating parser as if declaredby a non-validating parser as if declaredby a non-validating parser as if declaredby a non-validating parser as if declaredby a non-validating parser as if declaredby a non-validating parser as if declaredby a non-validating parser as if declaredby a non-validating parser as if declared







<kw>CDATACDATACDATACDATACDATACDATACDATACDATA</kw>........







</p>







</div3>







</div2>







<div2 id='sec-condition-sect'>







<head>Conditional SectionsConditional SectionsConditional SectionsConditional SectionsConditional SectionsConditional SectionsConditional SectionsConditional Sections</head>







<p><termdef id='dt-cond-section' term='conditional section'>







<term>Conditional sectionsConditional sectionsConditional sectionsConditional sectionsConditional sectionsConditional sectionsConditional sectionsConditional sections</term> are portions of the are portions of the are portions of the are portions of the are portions of the are portions of the are portions of the are portions of the







<termref def='dt-doctype'>document type declaration external subsetdocument type declaration external subsetdocument type declaration external subsetdocument type declaration external subsetdocument type declaration external subsetdocument type declaration external subsetdocument type declaration external subsetdocument type declaration external subset</termref>







which are which are which are which are which are which are which are which are 







included in, or excluded from, the logical structure of the DTD based onincluded in, or excluded from, the logical structure of the DTD based onincluded in, or excluded from, the logical structure of the DTD based onincluded in, or excluded from, the logical structure of the DTD based onincluded in, or excluded from, the logical structure of the DTD based onincluded in, or excluded from, the logical structure of the DTD based onincluded in, or excluded from, the logical structure of the DTD based onincluded in, or excluded from, the logical structure of the DTD based on







the keyword which governs them.the keyword which governs them.the keyword which governs them.the keyword which governs them.the keyword which governs them.the keyword which governs them.the keyword which governs them.the keyword which governs them.</termdef>







<scrap lang='ebnf'>







<head>Conditional SectionConditional SectionConditional SectionConditional SectionConditional SectionConditional SectionConditional SectionConditional Section</head>







<prodgroup pcw2='9' pcw4='14.5'>







<prod id='NT-conditionalSect'><lhs>conditionalSectconditionalSectconditionalSectconditionalSectconditionalSectconditionalSectconditionalSectconditionalSect</lhs>







<rhs><nt def='NT-includeSect'>includeSectincludeSectincludeSectincludeSectincludeSectincludeSectincludeSectincludeSect</nt>







| | | | | | | | <nt def='NT-ignoreSect'>ignoreSectignoreSectignoreSectignoreSectignoreSectignoreSectignoreSectignoreSect</nt>







</rhs>







</prod>







<prod id='NT-includeSect'><lhs>includeSectincludeSectincludeSectincludeSectincludeSectincludeSectincludeSectincludeSect</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;![' S? 'INCLUDE' S? '[' ![' S? 'INCLUDE' S? '[' ![' S? 'INCLUDE' S? '[' ![' S? 'INCLUDE' S? '[' ![' S? 'INCLUDE' S? '[' ![' S? 'INCLUDE' S? '[' ![' S? 'INCLUDE' S? '[' ![' S? 'INCLUDE' S? '[' 















<nt def='NT-extSubsetDecl'>extSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDeclextSubsetDecl</nt>







']]']]']]']]']]']]']]']]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;''''''''







</rhs>







</prod>







<prod id='NT-ignoreSect'><lhs>ignoreSectignoreSectignoreSectignoreSectignoreSectignoreSectignoreSectignoreSect</lhs>







<rhs>''''''''&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;![' S? 'IGNORE' S? '[' ![' S? 'IGNORE' S? '[' ![' S? 'IGNORE' S? '[' ![' S? 'IGNORE' S? '[' ![' S? 'IGNORE' S? '[' ![' S? 'IGNORE' S? '[' ![' S? 'IGNORE' S? '[' ![' S? 'IGNORE' S? '[' 







<nt def='NT-ignoreSectContents'>ignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContents</nt>********







']]']]']]']]']]']]']]']]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;''''''''</rhs>







</prod>















<prod id='NT-ignoreSectContents'><lhs>ignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContents</lhs>







<rhs><nt def='NT-Ignore'>IgnoreIgnoreIgnoreIgnoreIgnoreIgnoreIgnoreIgnore</nt>







('('('('('('('('&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;![' ![' ![' ![' ![' ![' ![' ![' <nt def='NT-ignoreSectContents'>ignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContentsignoreSectContents</nt> ']] ']] ']] ']] ']] ']] ']] ']]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;' ' ' ' ' ' ' ' 







<nt def='NT-Ignore'>IgnoreIgnoreIgnoreIgnoreIgnoreIgnoreIgnoreIgnore</nt>)*)*)*)*)*)*)*)*</rhs></prod>







<prod id='NT-Ignore'><lhs>IgnoreIgnoreIgnoreIgnoreIgnoreIgnoreIgnoreIgnore</lhs>







<rhs><nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt>* - * - * - * - * - * - * - * - 







((((((((<nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt>* ('* ('* ('* ('* ('* ('* ('* ('&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;![' | ']]![' | ']]![' | ']]![' | ']]![' | ']]![' | ']]![' | ']]![' | ']]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;') ') ') ') ') ') ') ') 







<nt def='NT-Char'>CharCharCharCharCharCharCharChar</nt>*)*)*)*)*)*)*)*)







</rhs></prod>















</prodgroup>







</scrap>







</p>







<p>Like the internal and external DTD subsets, a conditional sectionLike the internal and external DTD subsets, a conditional sectionLike the internal and external DTD subsets, a conditional sectionLike the internal and external DTD subsets, a conditional sectionLike the internal and external DTD subsets, a conditional sectionLike the internal and external DTD subsets, a conditional sectionLike the internal and external DTD subsets, a conditional sectionLike the internal and external DTD subsets, a conditional section







may contain one or more complete declarations,may contain one or more complete declarations,may contain one or more complete declarations,may contain one or more complete declarations,may contain one or more complete declarations,may contain one or more complete declarations,may contain one or more complete declarations,may contain one or more complete declarations,







comments, processing instructions, comments, processing instructions, comments, processing instructions, comments, processing instructions, comments, processing instructions, comments, processing instructions, comments, processing instructions, comments, processing instructions, 







or nested conditional sections, intermingled with white space.or nested conditional sections, intermingled with white space.or nested conditional sections, intermingled with white space.or nested conditional sections, intermingled with white space.or nested conditional sections, intermingled with white space.or nested conditional sections, intermingled with white space.or nested conditional sections, intermingled with white space.or nested conditional sections, intermingled with white space.







</p>







<p>If the keyword of theIf the keyword of theIf the keyword of theIf the keyword of theIf the keyword of theIf the keyword of theIf the keyword of theIf the keyword of the







conditional section is conditional section is conditional section is conditional section is conditional section is conditional section is conditional section is conditional section is <kw>INCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDE</kw>, then the contents of the conditional, then the contents of the conditional, then the contents of the conditional, then the contents of the conditional, then the contents of the conditional, then the contents of the conditional, then the contents of the conditional, then the contents of the conditional







section are part of the DTD.section are part of the DTD.section are part of the DTD.section are part of the DTD.section are part of the DTD.section are part of the DTD.section are part of the DTD.section are part of the DTD.







If the keyword of the conditionalIf the keyword of the conditionalIf the keyword of the conditionalIf the keyword of the conditionalIf the keyword of the conditionalIf the keyword of the conditionalIf the keyword of the conditionalIf the keyword of the conditional







section is section is section is section is section is section is section is section is <kw>IGNOREIGNOREIGNOREIGNOREIGNOREIGNOREIGNOREIGNORE</kw>, then the contents of the conditional section are, then the contents of the conditional section are, then the contents of the conditional section are, then the contents of the conditional section are, then the contents of the conditional section are, then the contents of the conditional section are, then the contents of the conditional section are, then the contents of the conditional section are







not logically part of the DTD.not logically part of the DTD.not logically part of the DTD.not logically part of the DTD.not logically part of the DTD.not logically part of the DTD.not logically part of the DTD.not logically part of the DTD.







Note that for reliable parsing, the contents of even ignoredNote that for reliable parsing, the contents of even ignoredNote that for reliable parsing, the contents of even ignoredNote that for reliable parsing, the contents of even ignoredNote that for reliable parsing, the contents of even ignoredNote that for reliable parsing, the contents of even ignoredNote that for reliable parsing, the contents of even ignoredNote that for reliable parsing, the contents of even ignored







conditional sections must be read in order toconditional sections must be read in order toconditional sections must be read in order toconditional sections must be read in order toconditional sections must be read in order toconditional sections must be read in order toconditional sections must be read in order toconditional sections must be read in order to







detect nested conditional sections and ensure that the end of thedetect nested conditional sections and ensure that the end of thedetect nested conditional sections and ensure that the end of thedetect nested conditional sections and ensure that the end of thedetect nested conditional sections and ensure that the end of thedetect nested conditional sections and ensure that the end of thedetect nested conditional sections and ensure that the end of thedetect nested conditional sections and ensure that the end of the







outermost (ignored) conditional section is properly detected.outermost (ignored) conditional section is properly detected.outermost (ignored) conditional section is properly detected.outermost (ignored) conditional section is properly detected.outermost (ignored) conditional section is properly detected.outermost (ignored) conditional section is properly detected.outermost (ignored) conditional section is properly detected.outermost (ignored) conditional section is properly detected.







If a conditional section with aIf a conditional section with aIf a conditional section with aIf a conditional section with aIf a conditional section with aIf a conditional section with aIf a conditional section with aIf a conditional section with a







keyword of keyword of keyword of keyword of keyword of keyword of keyword of keyword of <kw>INCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDEINCLUDE</kw> occurs within a larger conditional occurs within a larger conditional occurs within a larger conditional occurs within a larger conditional occurs within a larger conditional occurs within a larger conditional occurs within a larger conditional occurs within a larger conditional







section with a keyword of section with a keyword of section with a keyword of section with a keyword of section with a keyword of section with a keyword of section with a keyword of section with a keyword of <kw>IGNOREIGNOREIGNOREIGNOREIGNOREIGNOREIGNOREIGNORE</kw>, both the outer and the, both the outer and the, both the outer and the, both the outer and the, both the outer and the, both the outer and the, both the outer and the, both the outer and the







inner conditional sections are ignored.inner conditional sections are ignored.inner conditional sections are ignored.inner conditional sections are ignored.inner conditional sections are ignored.inner conditional sections are ignored.inner conditional sections are ignored.inner conditional sections are ignored.</p>







<p>If the keyword of the conditional section is a If the keyword of the conditional section is a If the keyword of the conditional section is a If the keyword of the conditional section is a If the keyword of the conditional section is a If the keyword of the conditional section is a If the keyword of the conditional section is a If the keyword of the conditional section is a 







parameter-entity reference, the parameter entity must be replaced by itsparameter-entity reference, the parameter entity must be replaced by itsparameter-entity reference, the parameter entity must be replaced by itsparameter-entity reference, the parameter entity must be replaced by itsparameter-entity reference, the parameter entity must be replaced by itsparameter-entity reference, the parameter entity must be replaced by itsparameter-entity reference, the parameter entity must be replaced by itsparameter-entity reference, the parameter entity must be replaced by its







content before the processor decides whether tocontent before the processor decides whether tocontent before the processor decides whether tocontent before the processor decides whether tocontent before the processor decides whether tocontent before the processor decides whether tocontent before the processor decides whether tocontent before the processor decides whether to







include or ignore the conditional section.include or ignore the conditional section.include or ignore the conditional section.include or ignore the conditional section.include or ignore the conditional section.include or ignore the conditional section.include or ignore the conditional section.include or ignore the conditional section.</p>







<p>An example:An example:An example:An example:An example:An example:An example:An example:







<eg>&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ENTITY % draft 'INCLUDE' &gt;!ENTITY % draft 'INCLUDE' &gt;!ENTITY % draft 'INCLUDE' &gt;!ENTITY % draft 'INCLUDE' &gt;!ENTITY % draft 'INCLUDE' &gt;!ENTITY % draft 'INCLUDE' &gt;!ENTITY % draft 'INCLUDE' &gt;!ENTITY % draft 'INCLUDE' &gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ENTITY % final 'IGNORE' &gt;!ENTITY % final 'IGNORE' &gt;!ENTITY % final 'IGNORE' &gt;!ENTITY % final 'IGNORE' &gt;!ENTITY % final 'IGNORE' &gt;!ENTITY % final 'IGNORE' &gt;!ENTITY % final 'IGNORE' &gt;!ENTITY % final 'IGNORE' &gt;







        







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;![%draft;[![%draft;[![%draft;[![%draft;[![%draft;[![%draft;[![%draft;[![%draft;[







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT book (comments*, title, body, supplements?)&gt;!ELEMENT book (comments*, title, body, supplements?)&gt;!ELEMENT book (comments*, title, body, supplements?)&gt;!ELEMENT book (comments*, title, body, supplements?)&gt;!ELEMENT book (comments*, title, body, supplements?)&gt;!ELEMENT book (comments*, title, body, supplements?)&gt;!ELEMENT book (comments*, title, body, supplements?)&gt;!ELEMENT book (comments*, title, body, supplements?)&gt;







]]]]]]]]]]]]]]]]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;![%final;[![%final;[![%final;[![%final;[![%final;[![%final;[![%final;[![%final;[







&lt;&lt;&lt;&lt;&lt;&lt;&lt;&lt;!ELEMENT book (title, body, supplements?)&gt;!ELEMENT book (title, body, supplements?)&gt;!ELEMENT book (title, body, supplements?)&gt;!ELEMENT book (title, body, supplements?)&gt;!ELEMENT book (title, body, supplements?)&gt;!ELEMENT book (title, body, supplements?)&gt;!ELEMENT book (title, body, supplements?)&gt;!ELEMENT book (title, body, supplements?)&gt;







]]]]]]]]]]]]]]]]&gt;&gt;&gt;&gt;&gt;&gt;&gt;&gt;







</eg>







</p>







</div2>























<!-- 
<div2 id='sec-pass-to-app'>
<head>XML Processor Treatment of Logical Structure</head>
<p>When an XML processor encounters a start-tag, it must make
at least the following information available to the application:
<ulist>
<item>
<p>the element type's generic identifier</p>
</item>
<item>
<p>the names of attributes known to apply to this element type
(validating processors must make available names of all attributes
declared for the element type; non-validating processors must
make available at least the names of the attributes for which
values are specified.
</p>
</item>
</ulist>
</p>
</div2>
-->        















</div1>







<!-- &Entities; -->







        







<div1 id='sec-physical-struct'>







<head>Physical StructuresPhysical StructuresPhysical StructuresPhysical StructuresPhysical StructuresPhysical StructuresPhysical StructuresPhysical Structures</head>







        







<p><termdef id='dt-entity' term='Entity'>An XML document may consistAn XML document may consistAn XML document may consistAn XML document may consistAn XML document may consistAn XML document may consistAn XML document may consistAn XML document may consist







of one or many storage units.   These are calledof one or many storage units.   These are calledof one or many storage units.   These are calledof one or many storage units.   These are calledof one or many storage units.   These are calledof one or many storage units.   These are calledof one or many storage units.   These are calledof one or many storage units.   These are called







<term>entitiesentitiesentitiesentitiesentitiesentitiesentitiesentities</term>; they all have ; they all have ; they all have ; they all have ; they all have ; they all have ; they all have ; they all have <term>contentcontentcontentcontentcontentcontentcontentcontent</term> and are all and are all and are all and are all and are all and are all and are all and are all







(except for the document entity, see below, and (except for the document entity, see below, and (except for the document entity, see below, and (except for the document entity, see below, and (except for the document entity, see below, and (except for the document entity, see below, and (except for the document entity, see below, and (except for the document entity, see below, and 







the the the the the the the the <termref def='dt-doctype'>external DTD subsetexternal DTD subsetexternal DTD subsetexternal DTD subsetexternal DTD subsetexternal DTD subsetexternal DTD subsetexternal DTD subset</termref>) ) ) ) ) ) ) ) 







identified by identified by identified by identified by identified by identified by identified by identified by <term>namenamenamenamenamenamenamename</term>........







</termdef>







Each XML document has one entityEach XML document has one entityEach XML document has one entityEach XML document has one entityEach XML document has one entityEach XML document has one entityEach XML document has one entityEach XML document has one entity







called the called the called the called the called the called the called the called the <termref def='dt-docent'>document entitydocument entitydocument entitydocument entitydocument entitydocument entitydocument entitydocument entity</termref>, which serves, which serves, which serves, which serves, which serves, which serves, which serves, which serves







as the starting point for the as the starting point for the as the starting point for the as the starting point for the as the starting point for the as the starting point for the as the starting point for the as the starting point for the <termref def='dt-xml-proc'>XMLXMLXMLXMLXMLXMLXMLXML







processorprocessorprocessorprocessorprocessorprocessorprocessorprocessor</termref> and may contain the whole document. and may contain the whole document. and may contain the whole document. and may contain the whole document. and may contain the whole document. and may contain the whole document. and may contain the whole document. and may contain the whole document.</p>







<p>Entities may be either parsed or unparsed.Entities may be either parsed or unparsed.Entities may be either parsed or unparsed.Entities may be either parsed or unparsed.Entities may be either parsed or unparsed.Entities may be either parsed or unparsed.Entities may be either parsed or unparsed.Entities may be either parsed or unparsed.







<termdef id='dt-parsedent' term='Text Entity'>A A A A A A A A <term>parsed entity'sparsed entity'sparsed entity'sparsed entity'sparsed entity'sparsed entity'sparsed entity'sparsed entity's</term>







contents are referred to as its contents are referred to as its contents are referred to as its contents are referred to as its contents are referred to as its contents are referred to as its contents are referred to as its contents are referred to as its 







<termref def='dt-repltext'>replacement textreplacement textreplacement textreplacement textreplacement textreplacement textreplacement textreplacement text</termref>;;;;;;;;







this this this this this this this this <termref def='dt-text'>texttexttexttexttexttexttexttext</termref> is considered an is considered an is considered an is considered an is considered an is considered an is considered an is considered an







integral part of the document.integral part of the document.integral part of the document.integral part of the document.integral part of the document.integral part of the document.integral part of the document.integral part of the document.</termdef></p>















<p><termdef id='dt-unparsed' term='Unparsed Entity'>An An An An An An An An 







<term>unparsed entityunparsed entityunparsed entityunparsed entityunparsed entityunparsed entityunparsed entityunparsed entity</term>        







is a resource whose contents may or may not beis a resource whose contents may or may not beis a resource whose contents may or may not beis a resource whose contents may or may not beis a resource whose contents may or may not beis a resource whose contents may or may not beis a resource whose contents may or may not beis a resource whose contents may or may not be







<termref def='dt-text'>texttexttexttexttexttexttexttext</termref>, and if text, may not be XML., and if text, may not be XML., and if text, may not be XML., and if text, may not be XML., and if text, may not be XML., and if text, may not be XML., and if text, may not be XML., and if text, may not be XML.







Each unparsed entityEach unparsed entityEach unparsed entityEach unparsed entityEach unparsed entityEach unparsed entityEach unparsed entityEach unparsed entity







has an associated has an associated has an associated has an associated has an associated has an associated has an associated has an associated <termref def='dt-notation'>notationnotationnotationnotationnotationnotationnotationnotation</termref>, identified by name., identified by name., identified by name., identified by name., identified by name., identified by name., identified by name., identified by name.







Beyond a requirementBeyond a requirementBeyond a requirementBeyond a requirementBeyond a requirementBeyond a requirementBeyond a requirementBeyond a requirement







that an XML processor make the identifiers for the entity and that an XML processor make the identifiers for the entity and that an XML processor make the identifiers for the entity and that an XML processor make the identifiers for the entity and that an XML processor make the identifiers for the entity and that an XML processor make the identifiers for the entity and that an XML processor make the identifiers for the entity and that an XML processor make the identifiers for the entity and 







notation available to the application,notation available to the application,notation available to the application,notation available to the application,notation available to the application,notation available to the application,notation available to the application,notation available to the application,







XML places no constraints on the contents of unparsed entities.XML places no constraints on the contents of unparsed entities.XML places no constraints on the contents of unparsed entities.XML places no constraints on the contents of unparsed entities.XML places no constraints on the contents of unparsed entities.XML places no constraints on the contents of unparsed entities.XML places no constraints on the contents of unparsed entities.XML places no constraints on the contents of unparsed entities.</termdef>        







</p>







<p>







Parsed entities are invoked by name using entity references;Parsed entities are invoked by name using entity references;Parsed entities are invoked by name using entity references;Parsed entities are invoked by name using entity references;Parsed entities are invoked by name using entity references;Parsed entities are invoked by name using entity references;Parsed entities are invoked by name using entity references;Parsed entities are invoked by name using entity references;







unparsed entities by name, given in the value of unparsed entities by name, given in the value of unparsed entities by name, given in the value of unparsed entities by name, given in the value of unparsed entities by name, given in the value of unparsed entities by name, given in the value of unparsed entities by name, given in the value of unparsed entities by name, given in the value of <kw>ENTITYENTITYENTITYENTITYENTITYENTITYENTITYENTITY</kw>







or or or or or or or or <kw>ENTITIESENTITIESENTITIESENTITIESENTITIESENTITIESENTITIESENTITIES</kw>







attributes.attributes.attributes.attributes.attributes.attributes.attributes.attributes.</p>







<p><termdef id='gen-entity' term='general entity'><term>General entitiesGeneral entitiesGeneral entitiesGeneral entitiesGeneral entitiesGeneral entitiesGeneral entitiesGeneral entities</term>







are entities for use within the document content.are entities for use within the document content.are entities for use within the document content.are entities for use within the document content.are entities for use within the document content.are entities for use within the document content.are entities for use within the document content.are entities for use within the document content.







In this specification, general entities are sometimes referred In this specification, general entities are sometimes referred In this specification, general entities are sometimes referred In this specification, general entities are sometimes referred In this specification, general entities are sometimes referred In this specification, general entities are sometimes referred In this specification, general entities are sometimes referred In this specification, general entities are sometimes referred 







to with the unqualified term to with the unqualified term to with the unqualified term to with the unqualified term to with the unqualified term to with the unqualified term to with the unqualified term to with the unqualified term <emph>entityentityentityentityentityentityentityentity</emph> when this leads when this leads when this leads when this leads when this leads when this leads when this leads when this leads







to no ambiguity.to no ambiguity.to no ambiguity.to no ambiguity.to no ambiguity.to no ambiguity.to no ambiguity.to no ambiguity.</termdef>        







<termdef id='dt-PE' term='Parameter entity'>Parameter entities Parameter entities Parameter entities Parameter entities Parameter entities Parameter entities Parameter entities Parameter entities 







are parsed entities for use within the DTD.are parsed entities for use within the DTD.are parsed entities for use within the DTD.are parsed entities for use within the DTD.are parsed entities for use within the DTD.are parsed entities for use within the DTD.are parsed entities for use within the DTD.are parsed entities for use within the DTD.</termdef>







These two types of entities use different forms of reference andThese two types of entities use different forms of reference andThese two types of entities use different forms of reference andThese two types of entities use different forms of reference andThese two types of entities use different forms of reference andThese two types of entities use different forms of reference andThese two types of entities use different forms of reference andThese two types of entities use different forms of reference and







are recognized in different contexts.are recognized in different contexts.are recognized in different contexts.are recognized in different contexts.are recognized in different contexts.are recognized in different contexts.are recognized in different contexts.are recognized in different contexts.







Furthermore, they occupy different namespaces; a parameter entity andFurthermore, they occupy different namespaces; a parameter entity andFurthermore, they occupy different namespaces; a parameter entity andFurthermore, they occupy different namespaces; a parameter entity andFurthermore, they occupy different namespaces; a parameter entity andFurthermore, they occupy different namespaces; a parameter entity andFurthermore, they occupy different namespaces; a parameter entity andFurthermore, they occupy different namespaces; a parameter entity and







a general entity with the same name are two distinct entities.a general entity with the same name are two distinct entities.a general entity with the same name are two distinct entities.a general entity with the same name are two distinct entities.a general entity with the same name are two distinct entities.a general entity with the same name are two distinct entities.a general entity with the same name are two distinct entities.a general entity with the same name are two distinct entities.







</p>















<div2 id='sec-references'>







<head>Character and Entity ReferencesCharacter and Entity ReferencesCharacter and Entity ReferencesCharacter and Entity ReferencesCharacter and Entity ReferencesCharacter and Entity ReferencesCharacter and Entity ReferencesCharacter and Entity References</head>







<p><termdef id='dt-charref' term='Character Reference'>







A A A A A A A A <term>character referencecharacter referencecharacter referencecharacter referencecharacter referencecharacter referencecharacter referencecharacter reference</term> refers to a specific character in the refers to a specific character in the refers to a specific character in the refers to a specific character in the refers to a specific character in the refers to a specific character in the refers to a specific character in the refers to a specific character in the







ISO/IEC 10646 character set, for example one not directly accessible fromISO/IEC 10646 character set, for example one not directly accessible fromISO/IEC 10646 character set, for example one not directly accessible fromISO/IEC 10646 character set, for example one not directly accessible fromISO/IEC 10646 character set, for example one not directly accessible fromISO/IEC 10646 character set, for example one not directly accessible fromISO/IEC 10646 character set, for example one not directly accessible fromISO/IEC 10646 character set, for example one not directly accessible from







available input devices.available input devices.available input devices.available input devices.available input devices.available input devices.available input devices.available input devices.







<scrap lang='ebnf'>







<head>Character ReferenceCharacter ReferenceCharacter ReferenceCharacter ReferenceCharacter ReferenceCharacter ReferenceCharacter ReferenceCharacter Reference</head>







<prod id='NT-CharRef'><lhs>CharRefCharRefCharRefCharRefCharRefCharRefCharRefCharRef</lhs>







<rhs>''''''''&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;#' [0-9]+ ';' #' [0-9]+ ';' #' [0-9]+ ';' #' [0-9]+ ';' #' [0-9]+ ';' #' [0-9]+ ';' #' [0-9]+ ';' #' [0-9]+ ';' </rhs>







<rhs>| '| '| '| '| '| '| '| '&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;#x#x#x#x#x#x#x#x' [0-9a-fA-F]+ ';'' [0-9a-fA-F]+ ';'' [0-9a-fA-F]+ ';'' [0-9a-fA-F]+ ';'' [0-9a-fA-F]+ ';'' [0-9a-fA-F]+ ';'' [0-9a-fA-F]+ ';'' [0-9a-fA-F]+ ';'</rhs>







<wfc def='wf-Legalchar'></wfc>







</prod>







</scrap>







<wfcnote id='wf-Legalchar'>







<head>Legal CharacterLegal CharacterLegal CharacterLegal CharacterLegal CharacterLegal CharacterLegal CharacterLegal Character</head>







<p>Characters referred to using character references mustCharacters referred to using character references mustCharacters referred to using character references mustCharacters referred to using character references mustCharacters referred to using character references mustCharacters referred to using character references mustCharacters referred to using character references mustCharacters referred to using character references must







match the production formatch the production formatch the production formatch the production formatch the production formatch the production formatch the production formatch the production for







<termref def='NT-Char'>CharCharCharCharCharCharCharChar</termref>........</p>







</wfcnote>







If the character reference begins with "If the character reference begins with "If the character reference begins with "If the character reference begins with "If the character reference begins with "If the character reference begins with "If the character reference begins with "If the character reference begins with "<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;#x#x#x#x#x#x#x#x</code>", the digits and", the digits and", the digits and", the digits and", the digits and", the digits and", the digits and", the digits and







letters up to the terminating letters up to the terminating letters up to the terminating letters up to the terminating letters up to the terminating letters up to the terminating letters up to the terminating letters up to the terminating <code>;;;;;;;;</code> provide a hexadecimal provide a hexadecimal provide a hexadecimal provide a hexadecimal provide a hexadecimal provide a hexadecimal provide a hexadecimal provide a hexadecimal







representation of the character's code point in ISO/IEC 10646.representation of the character's code point in ISO/IEC 10646.representation of the character's code point in ISO/IEC 10646.representation of the character's code point in ISO/IEC 10646.representation of the character's code point in ISO/IEC 10646.representation of the character's code point in ISO/IEC 10646.representation of the character's code point in ISO/IEC 10646.representation of the character's code point in ISO/IEC 10646.







If it begins just with "If it begins just with "If it begins just with "If it begins just with "If it begins just with "If it begins just with "If it begins just with "If it begins just with "<code>&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;########</code>", the digits up to the terminating", the digits up to the terminating", the digits up to the terminating", the digits up to the terminating", the digits up to the terminating", the digits up to the terminating", the digits up to the terminating", the digits up to the terminating







<code>;;;;;;;;</code> provide a decimal representation of the character's  provide a decimal representation of the character's  provide a decimal representation of the character's  provide a decimal representation of the character's  provide a decimal representation of the character's  provide a decimal representation of the character's  provide a decimal representation of the character's  provide a decimal representation of the character's 







code point.code point.code point.code point.code point.code point.code point.code point.







</termdef>







</p>







<p><termdef id='dt-entref' term='Entity Reference'>An An An An An An An An <term>entityentityentityentityentityentityentityentity







referencereferencereferencereferencereferencereferencereferencereference</term> refers to the content of a named entity. refers to the content of a named entity. refers to the content of a named entity. refers to the content of a named entity. refers to the content of a named entity. refers to the content of a named entity. refers to the content of a named entity. refers to the content of a named entity.</termdef>







<termdef id='d