1<?xml version="1.0" encoding="iso-2022-jp"?> 2<!DOCTYPE spec SYSTEM "spec.dtd" [ 3 4<!-- $BF|K\8lLu$N$?$a$N2r@OBP>]<BBN!J$3$3$+$i!K(B --> 5 6<!ENTITY TR-or-Rec "$B;EMM=q(B"> 7<!-- <!ENTITY TR-or-Rec "$BI8=`>pJs(B(TR)"> --> 8<!ENTITY eTR-or-Rec "specification"> 9<!-- <!ENTITY eTR-or-Rec "technical report(TR)"> --> 10<!ENTITY application "$B%"%W%j%1!<%7%g%s(B"> 11<!ENTITY error "$B%(%i!<(B"> 12<!ENTITY fatal-error "$BCWL?E*%(%i!<(B"> 13<!ENTITY parsed-data "$B2r@O$5$l$k%G!<%?(B"> 14<!ENTITY unparsed-data "$B2r@O$5$l$J$$%G!<%?(B"> 15<!ENTITY parsed-entity "$B2r@OBP>]<BBN(B"> 16<!ENTITY parser "$B%Q!<%5(B"> 17<!ENTITY unparsed-entity "$B2r@OBP>]30<BBN(B"> 18<!ENTITY well-formed "$B@07A<0(B"> 19<!ENTITY valid "$BBEEv(B"> 20<!ENTITY validity "$BBEEv@-(B"> 21<!ENTITY escape "$BJL07$$(B"> 22<!ENTITY prolog "$B=q$-(B"> 23<!ENTITY surrogate-blocks "$B%5%m%2!<%H%V%m%C%/(B"> 24<!ENTITY letter "$B;z(B"> 25<!ENTITY ideographic "$BE}9g4A;z(B"> 26<!ENTITY markup "$B%^!<%/IU$1(B"> 27<!ENTITY left-angle-bracket "$BITEy9f(B($B>.$J$j(B)"> 28<!ENTITY right-angle-bracket "$BITEy9f(B($BBg$J$j(B)"> 29<!ENTITY string "$BJ8;zNs(B"> 30<!ENTITY char-string "$BJ8;zNs(B"><!-- string of chararacters, 31 character strings, strings, 32 characters $B$O$9$Y$FJ8;zNs$H$9$k(B --> 33<!ENTITY replacement-text "$BCV49%F%-%9%H(B"> 34<!ENTITY single-quote "$B0l=E0zMQId(B"> 35<!ENTITY double-quote "$BFs=E0zMQId(B"> 36<!ENTITY adaptations-annex "$BE,MQImB0=q(B"> 37<!ENTITY root "$B%k!<%H(B"> 38<!ENTITY base-character "$B4pDlJ8;z(B"> 39<!ENTITY diacritical-mark "$BH/2;Id(B"><!--($B%@%$%"%/%j%F%#%+%k%^!<%/(B)$B$r=i=P$N$H$-Jd$&(B--> 40<!ENTITY composed-form "$B9g@.7A<0(B"> 41<!ENTITY standalone "$B%9%?%s%I%"%m%s(B"> 42<!ENTITY double-hyphen "$BFsO"%O%$%U%s(B"> 43<!--<!ENTITY case-fold "$BBgJ8;z$+>.J8;z$X$NE}0l(B">--> 44<!-- <!ENTITY case-fold "$BHf3S$N$H$-!$BgJ8;z$H>.J8;z$NF10l;k(B">--> 45<!ENTITY parameter "$B%Q%i%a%?(B"> 46<!ENTITY stream "$B%9%H%j!<%`(B"> 47<!ENTITY validating "$BBEEv@-$r8!>Z$9$k(B"> 48<!ENTITY non-validating "$BBEEv@-$r8!>Z$7$J$$(B"> 49<!ENTITY user "$B%f!<%6(B"> 50<!--<!ENTITY at-user-option "$B%f!<%6$,%*%W%7%g%s$r;XDj$7$?$H$-(B">--> 51<!ENTITY at-user-option "$B%f!<%6$N%*%W%7%g%s;XDj$K$h$C$F$O(B"> 52<!ENTITY content-particle "$BFbMFAG;R(B"> 53<!ENTITY processor "$B%W%m%;%5(B"> 54<!ENTITY default "$B%G%U%)%k%H(B"> 55<!ENTITY default-value "$B%G%U%)%k%HCM(B"> 56<!ENTITY header "$B%X%C%@(B"> 57<!ENTITY target "$B%?!<%2%C%H(B"> 58<!ENTITY mixed-content "$B:.9gFbMF(B"> 59<!ENTITY country-code "$B9q%3!<%I(B"> 60<!ENTITY language-code "$B8@8l%3!<%I(B"> 61<!ENTITY version "$BHG(B"> <!-- version 1.0$B$OBh(B1.0$BHG(B --> 62<!ENTITY match "$B%^%C%A(B"> 63<!ENTITY character-value "$BJ8;zHV9f(B"> 64<!ENTITY byte-order-mark "$B%P%$%H=g%^!<%/(B"> 65<!ENTITY bypass "$B=hM}$7$J$$(B"> 66<!ENTITY identifier "$B<1JL;R(B"> 67<!-- <!ENTITY identify "$B<1JL$9$k(B"> --> 68<!ENTITY identify "$BFCDj$9$k(B"> 69<!-- <!ENTITY identified "$B<1JL$5$l$k(B"> --> 70<!ENTITY identified "$BFCDj$5$l$k(B"> 71<!ENTITY combining-character "$B7k9gJ8;z(B"> 72<!ENTITY subset "$B%5%V%;%C%H(B"> 73<!ENTITY token "$B%H!<%/%s(B"> 74<!ENTITY literal "$B%j%F%i%k(B"> 75 76<!ENTITY parenthesis "$B$+$C$3(B"> 77<!ENTITY left-parenthesis "$B3+$-$+$C$3(B"> 78<!ENTITY right-parenthesis "$BJD$8$+$C$3(B"> 79 80<!-- $B$"$H$G5$$,$D$$$?$b$N(B JIS X0221$B$r8+$kI,MW$"$j(B --> 81 82<!ENTITY extender "$B%(%/%9%F%s%@(B"> 83<!ENTITY property "$B%W%m%Q%F%#(B"> 84<!ENTITY property-list "$B%W%m%Q%F%#%j%9%H(B"> 85<!ENTITY property-file "$B%W%m%Q%F%#%U%!%$%k(B"> 86<!ENTITY font-decomposition "$B%U%)%s%HJ,2r(B"> 87<!ENTITY compatibility-decomposition "$B8_49@-J,2r(B"> 88<!ENTITY compatibility-area "$B8_49@-NN0h(B"> 89 90<!ENTITY language-identification "$B8@8l<1JL(B"> 91 92<!ENTITY space-character "$B%9%Z!<%9J8;z(B"> 93<!ENTITY space "$B%9%Z!<%9(B"> 94<!ENTITY code-value "$B%3!<%ICM(B"> 95<!ENTITY normative "$B5,Dj$N(B"> 96<!ENTITY hueristics "$B%R%e!<%j%9%F%#%C%/(B"> 97<!ENTITY informative ""> 98 99<!ENTITY WebSGML 'ISO 8879$B$X$N(BWebSGML&adaptations-annex;'> 100<!ENTITY XML.version "1.0"> 101<!ENTITY doc.date "1997$BG/(B12$B7n(B8$BF|(B"> 102<!ENTITY iso6.doc.date "971208"> 103<!ENTITY w3c.doc.date "97$BG/(B12$B7n(B3$BF|(B"> 104<!ENTITY draft.day '8$BF|(B'> 105<!ENTITY draft.month '12$B7n(B'> 106<!ENTITY draft.year '1997$BG/(B'> 107 108<!-- $BF|K\8lLu$N$?$a$N2r@OBP>]<BBN!J$3$3$^$G!K(B --> 109 110<!-- LAST TOUCHED BY: Tim Bray, 3 Dec 1997 --> 111 112<!-- The words 'FINAL EDIT' in comments mark places where changes 113need to be made after approval of the document by the ERB, before 114publication. --> 115 116<!ENTITY XML.version "1.0"> 117<!ENTITY doc.date "8 December 1997"> 118<!ENTITY iso6.doc.date "971208"> 119<!ENTITY w3c.doc.date "03-Dec-97"> 120<!ENTITY draft.day '8'> 121<!ENTITY draft.month 'December'> 122<!ENTITY draft.year '1997'> 123 124<!ENTITY WebSGML 125 'WebSGML Adaptations Annex to ISO 8879'> 126 127<!ENTITY newline " "> 128<!-- old: <!ENTITY newline "
"> --> 129<!ENTITY lt "<"> 130<!ENTITY gt ">"> 131<!--<!ENTITY amp "&"> --> 132<!ENTITY xmlpio "'<?xml'"> 133<!ENTITY pic "'?>'"> 134<!ENTITY br "\n"> 135<!ENTITY cellback '#c0d9c0'> 136<!ENTITY mdash "--"> <!-- was: <!ENTITY mdash "&#151;"> --> 137<!ENTITY com "--"> 138<!ENTITY como "--"> 139<!ENTITY comc "--"> 140<!ENTITY hcro "&#x"> 141<!-- <!ENTITY nbsp ""> --> 142<!ENTITY nbsp " "> 143<!ENTITY magicents "<code>amp</code>, 144<code>lt</code>, 145<code>gt</code>, 146<code>apos</code>, 147<code>quot</code>"> 148 149<!--$BF|K\8lLu$K$D$$$F(B: $B%3%a%s%H$OK]LuBP>]$+$i30$7$^$7$?!#NkLZOBIW(B --> 150<!-- audience and distribution status: for use at publication time --> 151<!-- --> 152<!ENTITY doc.audience "$B8x3+%l%S%e!<5Z$S5DO@(B"> 153<!ENTITY doc.distribution "$B%F%-%9%H5Z$SK!N'>e$NCm0U$r2~JQ$7$J$$8B$j!$(B 154$B<+M3$KG[I[$7$F$b$h$$(B"> 155 156]> 157 158<!-- for Panorama *--> 159<?VERBATIM "eg" ?> 160 161<spec> 162<header> 163<title>$B3HD%2DG=$J(B&markup;$B8@8l(B (XML)</title> 164<version>$BBh(B1.0&version;</version> 165<w3c-designation>PR-xml-&iso6.doc.date;</w3c-designation> 166<w3c-doctype>World Wide Web Consortium</w3c-doctype> 167<pubdate><day>&draft.day;</day><month>&draft.month;</month><year>&draft.year;</year></pubdate> 168<notice><p>$B$3$NAp0F$O!$(BXML WG$B5Z$SB>$N4X78<T$K$h$k%l%S%e!<$N$?$a$N$b$N$G$"$C$F!$8x3+$N5DO@$N$?$a$N$b$N$G$O$J$$!#(B 169<!-- FINAL EDIT: FIX --></p></notice> 170<publoc> 171<loc href="http://www.w3.org/TR/PR-xml-&iso6.doc.date;"> 172http://www.w3.org/TR/PR-xml-&iso6.doc.date;</loc></publoc> 173<prevlocs> 174<loc href='http://www.w3.org/TR/WD-xml-961114'> 175http://www.w3.org/TR/WD-xml-961114</loc> 176<loc href='http://www.w3.org/TR/WD-xml-lang-970331'> 177http://www.w3.org/TR/WD-xml-lang-970331</loc> 178<loc href='http://www.w3.org/TR/WD-xml-lang-970630'> 179http://www.w3.org/TR/WD-xml-lang-970630</loc> 180<loc href='http://www.w3.org/TR/WD-xml-970807'> 181http://www.w3.org/TR/WD-xml-970807</loc> 182<loc href='http://www.w3.org/TR/WD-xml-971117'> 183http://www.w3.org/TR/WD-xml-971117</loc> 184</prevlocs> 185<authlist> 186<author><name>Tim Bray</name> 187<affiliation>Textuality and Netscape</affiliation> 188<email 189href="mailto:tbray@textuality.com">tbray@textuality.com</email></author> 190<author><name>Jean Paoli</name> 191<affiliation>Microsoft</affiliation> 192<email href="mailto:jeanpa@microsoft.com">jeanpa@microsoft.com</email></author> 193<author><name>C. M. Sperberg-McQueen</name> 194<affiliation>University of Illinois at Chicago</affiliation> 195<email href="mailto:cmsmcq@uic.edu">cmsmcq@uic.edu</email></author> 196</authlist> 197<status> 198 <p>$B$3$N(B&TR-or-Rec;$B$O(B, 1997$BG/(B12$B7n$K(BWorld Wide Web Consortium$B$+$i(B 199$B8xI=$5$l$?4+9p0F(BExtensible Markup Language version$BBh(B1.0$BHG$rK]Lu$7(B, $B5;(B 200$B=QE*FbMF$rJQ99$9$k$3$H$J$/:n@.$7$?(B&TR-or-Rec;$B$G$"$k!#(BThis &eTR-or-Rec; 201is a translation of the XML proposed recommendation 1.0 202published by the World Wide Web Consortium in December 1997. It is 203intended that &eTR-or-Rec; is technically identical to the original.</p> 204 205<p>$B86J8$K$"$k!"Cx:n8"$K4X$7$F$N5-=R$r<!$K<($9!#(BThe 206original copyright notice is shown below:</p> 207 208<p>$B$3$NHG$N(BXML$B$N5,Dj$O!$8x3+%l%S%e!<5Z$S5DO@$r(B 209$BL\E*$H$9$k!#%F%-%9%H5Z$SK!N'>e$NCm0U$r2~JQ$7$J$$8B$j!$<+M3$K(B 210$BG[I[$7$F$b$h$$!#(BThis version of the XML specification is for 211public review and discussion. It may be distributed freely, 212as long as all text and legal notices remain intact.</p> 213 214<p>$B$3$N(B&TR-or-Rec;$B$N85$H$J$C$?(BXML$B4+9p0F$O!$(B1998$BG/(B2$B7n$K(BWorld 215Wide Web Consortium$B$+$i8xI=$5$l$?(BXML$B4+9p$K$h$C$F$9$G$KCV$-49(B 216$B$($i$l$F$$$k!#$3$NI8=`>pJs$O!$(BXML$B4+9p$K=>$C$FD{@5$9$k$3$H$r(B 217$BM=Dj$7$F$$$k!#(BThe XML Proposed Recommendation is superseded 218by the XML Recommendation which was published by the World 219Wide Web Consortium in February 1998. It is intended that 220this &eTR-or-Rec; be revised accordingly in the near future.</p> 221 222<p>$B$3$N(B&TR-or-Rec;$B$O!$0BDj$7$?$b$N$G$"$C$F!$:rG/Mh$N(B<loc 223href='http://www.w3.org/XML'>XML$B3hF0(B</loc>$B$rDL$8$F:n@.$5$l$?!$0lO"$N:n(B 224$B6HAp0F$r85$H$9$k!#8=:_!$9-HO0O$K;HMQ$5$l$F$$$k9q:]E*$J%F%-%9%H=hM}$NI8(B 225$B=`(B($BI8=`0lHL2=(B&markup;$B8@8l!$(BStandard Generalized Markup Language, ISO 2268879:1986$B$KDI2C5Z$SD{@5$r2C$($?$b$N(B)$B$N!$(BWWW$B>e$G$N;HMQ$N$?$a$K(B⊂ 227$B2=$7$?8@8l$r!$$3$N(B&TR-or-Rec;$B$O!$5,Dj$9$k!#(BISO 8879$B$N$I$N5!G=$r$3$N(B 228⊂$B$K;D$9$+!$$H$$$&7hDj$K$D$$$F$N>\:Y$O!$(B<loc 229href='http://www.w3.org/XML/#WG-decisions'>$BJLESMQ0U$9$k(B</loc>$B!#(BXML$B$O!$(B 230$B4{$K$$$/$D$+$N>&IJ$G%5%]!<%H$5$l!$(BXML$B$r%5%]!<%H$9$k(B<loc 231href='http://www.w3.org/XML/#software'>$B%U%j!<%&%'%"(B</loc>$B$N?t$bA}$($F(B 232$B$$$k!#(BXML$B$K4X$9$k8x3+$NO@5D$b!$%*%s%i%$%s$G(B<loc 233href='http://www.w3.org/XML/#discussion'>$BF~<j$G$-$k(B</loc>$B!#(BIt is a 234stable document derived from a series of working drafts produced over 235the last year as deliverables of the <loc 236href='http://www.w3.org/XML'>XML activity</loc>. It specifies a 237language created by subsetting an existing, widely used international 238text processing standard (Standard Generalized Markup Language, ISO 2398879:1986 as amended and corrected) for use on the World Wide Web. 240Details of the decisions regarding which features of ISO 8879 to 241retain in the subset <loc 242href='http://www.w3.org/XML/#WG-decisions'>are available 243separately</loc>. XML is already supported by some commercial 244products, and there are a growing number of <loc 245href='http://www.w3.org/XML/#software'>free implementations</loc>. 246Public discussions of XML <loc 247href='http://www.w3.org/XML/#discussion'>are accessible 248online</loc>.</p> 249 250<p>$B$3$N(B&TR-or-Rec;$B$G$O!$(B<bibref ref="Berners-Lee"/>$B$KDj5A$9$k(B 251URI(Uniform Resource Identifier)$B$r;HMQ$9$k!#(BURI$B$N@)Dj:n6H$O?J9TCf$G$"$C(B 252$B$F!$(B<bibref ref="RFC1738"/>$B5Z$S(B<bibref ref="RFC1808"/>$B$r99?7$9$kM=Dj$H(B 253$B$J$C$F$$$k!#$3$N:n6H$,(BRFC$B$H$7$F<u$1F~$l$i$l$J$$>l9g$O!$$3$N5,DxFb$N(BURI 254$B$X$N;2>H$O!$(BURL(Uniform Resource Locator)$B$X$N;2>H$KBe$o$k!#(BThis 255specification uses the term URI, which is defined by <bibref 256ref="Berners-Lee"/>, a work in progress expected to update <bibref 257ref="RFC1738"/> and <bibref ref="RFC1808"/>. Should the work not be 258accepted as an RFC, the references to uniform resource identifiers 259(URIs) in this specification will become references to uniform 260resource locators (URLs).</p> 261 262 <p>XML$B$N;EMM$K=`5r$7$F$$$k$+$I$&$+$N4p=`$H$J$k$O(BW3C$B$N%5%$%H$K$"(B 263$B$k86J8$G$"$k!#(BThe normative version of the specification is 264the English version found at the W3C site.</p> 265 266 <p>$B$3$NI8=`>pJs$O86;EMM$H5;=QE*$KF10l$G$"$k$3$H$r0U?^$7$F$$$k$,!"(B 267$BK]Lu>e$N8m$j$O$"$jF@$k!#(BAlthough this technical report is 268intended to be technically identical to the original, it may 269contain errors from the translation.</p> 270 271 <p>$BHw9M(B: $B865,Dj$H$N5,Dj2U=j$NBP1~4X78$rL@$i$+$K$9$k$?$a!"$3$N(B 272&TR-or-Rec;$B$N@a9=@.5Z$S@aHV9f$O!"865,Dj$N$=$l$i$r$G$-$k$@$1J]B8$7$F$$(B 273$B$k!#$3$N(B&TR-or-Rec;$B$N(BWeb$BHG$O!"865,Dj$N(BHTML$B%?%0$r$=$N$^$^J]B8$7$F$$$k!#(B 274</p> 275</status> 276<!-- out of date 277<statusp>This is a W3C Working Draft for review by W3C members and other 278interested parties. It is a draft document and may be updated, 279replaced, or obsoleted by other documents at any time. It is 280inappropriate to use W3C Working Drafts as reference material or to 281cite them as other than "work in progress". A list of current W3C 282working drafts can be found at 283<loc href="http://www.w3.org/TR">http://www.w3.org/TR</loc>.</statusp> 284<statusp><emph>Note:</emph> Since working drafts are subject to frequent 285change, you are advised to reference the above URL, rather than the 286URLs for working drafts themselves.</statusp> 287<statusp>This work is part of the W3C SGML Activity (for current 288status, see <loc href="http://www.w3.org/MarkUp/SGML/Activity" 289>http://www.w3.org/MarkUp/SGML/Activity</loc>).</statusp> 290<p>The current 291draft of this specification 292presupposes the successful completion of the current 293work on the &WebSGML;, being prepared by ISO/IEC JTC1 294at the time this draft specification was drafted. 295If it is not 296adopted in the expected form, some clauses of this specification 297may change, and some 298recommendations now labeled "<termref def="dt-interop">for 299interoperability</termref>" will become requirements labeled 300"<termref def="dt-compat">for compatibility</termref>". 301</p> 302<p>The current draft of this specification uses the term 303URI, which is defined by 304<bibref ref="Berners-Lee"/>, 305which is work in progress expected to update 306<bibref ref="RFC1738"/> and <bibref ref="RFC1808"/>. 307Should the work in this draft not be accepted as an RFC, the 308references to uniform resource identifiers (URIs) in this 309specification will become references to uniform resource 310locators (URLs).</p> 311</status> --> 312<abstract> 313<p>$B3HD%2DG=$J(B&markup;$B8@8l(B(XML)$B$O(BSGML$B$N4JC1$JJ}8@$G$"$C$F!$$3$N(B&TR-or-Rec;$B$G!$$=$N$9$Y$F$r5,Dj$9$k!#(BXML$B$NL\I8$O!$8=:_$N(BHTML$B$HF1MM$K!$0lHL@-$N$"$k(BSGML$B$r%&%'%V>e$GG[I[!$<u?.5Z$S=hM}$G$-$k$3$H$H$9$k!#(BXML$B$O<BAu$,MF0W$G$"$C$F!$(BSGML$B5Z$S(BHTML$B$N$I$A$i$KBP$7$F$bAj8_1?MQ@-$rJ]$D@_7W$,$J$5$l$F$$$k!#(B</p> 314</abstract> 315<pubstmt> 316<p>Chicago, Vancouver, Mountain View, et al.: 317World-Wide Web Consortium, XML$B:n6H%0%k!<%W(B, 1996, 1997.</p> 318</pubstmt> 319<sourcedesc> 320<p>Created in electronic form.</p> 321</sourcedesc> 322<langusage> 323<language id='EN'>English</language> 324<language id='ebnf'>Extended Backus-Naur Form (formal grammar)</language> 325</langusage> 326<revisiondesc> 327<slist> 328<sitem>1997-12-03 : CMSMcQ : yet further changes</sitem> 329<sitem>1997-12-02 : TB : further changes (see TB to XML WG, 3302 December 1997)</sitem> 331<sitem>1997-12-02 : CMSMcQ : deal with as many corrections and 332comments from the proofreaders as possible: 333entify hard-coded document date in pubdate element, 334change expansion of entity WebSGML, 335update status description as per Dan Connolly (am not sure 336about refernece to Berners-Lee et al.), 337add 'The' to abstract as per WG decision, 338move Relationship to Existing Standards to back matter and 339combine with References, 340re-order back matter so normative appendices come first, 341re-tag back matter so informative appendices are tagged informdiv1, 342remove XXX XXX from list of 'normative' specs in prose, 343move some references from Other References to Normative References, 344add RFC 1738, 1808, and 2141 to Other References (they are not 345normative since we do not require the processor to enforce any 346rules based on them), 347add reference to 'Fielding draft' (Berners-Lee et al.), 348move notation section to end of body, 349drop URIchar non-terminal and use SkipLit instead, 350lose stray reference to defunct nonterminal 'markupdecls', 351move reference to Aho et al. into appendix (Tim's right), 352add prose note saying that hash marks and fragment identifiers are 353NOT part of the URI formally speaking, and are NOT legal in 354system identifiers (processor 'may' signal an error). 355Work through: 356Tim Bray reacting to James Clark, 357Tim Bray on his own, 358Eve Maler, 359 360NOT DONE YET: 361change binary / text to unparsed / parsed. 362handle James's suggestion about < in attriubte values 363uppercase hex characters, 364namechar list, 365</sitem> 366<sitem>1997-12-01 : JB : add some column-width parameters</sitem> 367<sitem>1997-12-01 : CMSMcQ : begin round of changes to incorporate 368recent WG decisions and other corrections: 369binding sources of character encoding info (27 Aug / 3 Sept), 370correct wording of Faust quotation (restore dropped line), 371drop SDD from EncodingDecl, 372change text at version number 1.0, 373drop misleading (wrong!) sentence about ignorables and extenders, 374modify definition of PCData to make bar on msc grammatical, 375change grammar's handling of internal subset (drop non-terminal markupdecls), 376change definition of includeSect to allow conditional sections, 377add integral-declaration constraint on internal subset, 378drop misleading / dangerous sentence about relationship of 379entities with system storage objects, 380change table body tag to htbody as per EM change to DTD, 381add rule about space normalization in public identifiers, 382add description of how to generate our name-space rules from 383Unicode character database (needs further work!). 384</sitem> 385<sitem>1997-10-08 : TB : Removed %-constructs again, new rules 386for PE appearance.</sitem> 387<sitem>1997-10-01 : TB : Case-sensitive markup; cleaned up 388element-type defs, lotsa little edits for style</sitem> 389<sitem>1997-09-25 : TB : Change to elm's new DTD, with 390substantial detail cleanup as a side-effect</sitem> 391<sitem>1997-07-24 : CMSMcQ : correct error (lost *) in definition 392of ignoreSectContents (thanks to Makoto Murata)</sitem> 393<sitem>Allow all empty elements to have end-tags, consistent with 394SGML TC (as per JJC).</sitem> 395<sitem>1997-07-23 : CMSMcQ : pre-emptive strike on pending corrections: 396introduce the term 'empty-element tag', note that all empty elements 397may use it, and elements declared EMPTY must use it. 398Add WFC requiring encoding decl to come first in an entity. 399Redefine notations to point to PIs as well as binary entities. 400Change autodetection table by removing bytes 3 and 4 from 401examples with Byte Order Mark. 402Add content model as a term and clarify that it applies to both 403mixed and element content. 404</sitem> 405<sitem>1997-06-30 : CMSMcQ : change date, some cosmetic changes, 406changes to productions for choice, seq, Mixed, NotationType, 407Enumeration. Follow James Clark's suggestion and prohibit 408conditional sections in internal subset. TO DO: simplify 409production for ignored sections as a result, since we don't 410need to worry about parsers which don't expand PErefs finding 411a conditional section.</sitem> 412<sitem>1997-06-29 : TB : various edits</sitem> 413<sitem>1997-06-29 : CMSMcQ : further changes: 414Suppress old FINAL EDIT comments and some dead material. 415Revise occurrences of % in grammar to exploit Henry Thompson's pun, 416especially markupdecl and attdef. 417Remove RMD requirement relating to element content (?). 418</sitem> 419<sitem>1997-06-28 : CMSMcQ : Various changes for 1 July draft: 420Add text for draconian error handling (introduce 421the term Fatal Error). 422RE deleta est (changing wording from 423original announcement to restrict the requirement to validating 424parsers). 425Tag definition of validating processor and link to it. 426Add colon as name character. 427Change def of %operator. 428Change standard definitions of lt, gt, amp. 429Strip leading zeros from #x00nn forms.</sitem> 430<sitem>1997-04-02 : CMSMcQ : final corrections of editorial errors 431found in last night's proofreading. Reverse course once more on 432well-formed: Webster's Second hyphenates it, and that's enough 433for me.</sitem> 434<sitem>1997-04-01 : CMSMcQ : corrections from JJC, EM, HT, and self</sitem> 435<sitem>1997-03-31 : Tim Bray : many changes</sitem> 436<sitem>1997-03-29 : CMSMcQ : some Henry Thompson (on entity handling), 437some Charles Goldfarb, some ERB decisions (PE handling in miscellaneous 438declarations. Changed Ident element to accept def attribute. 439Allow normalization of Unicode characters. move def of systemliteral 440into section on literals.</sitem> 441<sitem>1997-03-28 : CMSMcQ : make as many corrections as possible, from 442Terry Allen, Norbert Mikula, James Clark, Jon Bosak, Henry Thompson, 443Paul Grosso, and self. Among other things: give in on "well formed" 444(Terry is right), tentatively rename QuotedCData as AttValue 445and Literal as EntityValue to be more informative, since attribute 446values are the <emph>only</emph> place QuotedCData was used, and 447vice versa for entity text and Literal. (I'd call it Entity Text, 448but 8879 uses that name for both internal and external entities.)</sitem> 449<sitem>1997-03-26 : CMSMcQ : resynch the two forks of this draft, reapply 450my changes dated 03-20 and 03-21. Normalize old 'may not' to 'must not' 451except in the one case where it meant 'may or may not'.</sitem> 452<sitem>1997-03-21 : TB : massive changes on plane flight from Chicago 453to Vancouver</sitem> 454<sitem>1997-03-21 : CMSMcQ : correct as many reported errors as possible. 455</sitem> 456<sitem>1997-03-20 : CMSMcQ : correct typos listed in CMSMcQ hand copy of spec.</sitem> 457<sitem>1997-03-20 : CMSMcQ : cosmetic changes preparatory to revision for 458WWW conference April 1997: restore some of the internal entity 459references (e.g. to docdate, etc.), change character xA0 to &nbsp; 460and define nbsp as &#160;, and refill a lot of paragraphs for 461legibility.</sitem> 462<sitem>1996-11-12 : CMSMcQ : revise using Tim's edits: 463Add list type of NUMBERED and change most lists either to 464BULLETS or to NUMBERED. 465Suppress QuotedNames, Names (not used). 466Correct trivial-grammar doc type decl. 467Rename 'marked section' as 'CDATA section' passim. 468Also edits from James Clark: 469Define the set of characters from which [^abc] subtracts. 470Charref should use just [0-9] not Digit. 471Location info needs cleaner treatment: remove? (ERB 472question). 473One example of a PI has wrong pic. 474Clarify discussion of encoding names. 475Encoding failure should lead to unspecified results; don't 476prescribe error recovery. 477Don't require exposure of entity boundaries. 478Ignore white space in element content. 479Reserve entity names of the form u-NNNN. 480Clarify relative URLs. 481And some of my own: 482Correct productions for content model: model cannot 483consist of a name, so "elements ::= cp" is no good. 484</sitem> 485<sitem>1996-11-11 : CMSMcQ : revise for style. 486Add new rhs to entity declaration, for parameter entities.</sitem> 487<sitem>1996-11-10 : CMSMcQ : revise for style. 488Fix / complete section on names, characters. 489Add sections on parameter entities, conditional sections. 490Still to do: Add compatibility note on deterministic content models. 491Finish stylistic revision.</sitem> 492<sitem>1996-10-31 : TB : Add Entity Handling section</sitem> 493<sitem>1996-10-30 : TB : Clean up term & termdef. Slip in 494ERB decision re EMPTY.</sitem> 495<sitem>1996-10-28 : TB : Change DTD. Implement some of Michael's 496suggestions. Change comments back to //. Introduce language for 497XML namespace reservation. Add section on white-space handling. 498Lots more cleanup.</sitem> 499<sitem>1996-10-24 : CMSMcQ : quick tweaks, implement some ERB 500decisions. Characters are not integers. Comments are /* */ not //. 501Add bibliographic refs to 10646, HyTime, Unicode. 502Rename old Cdata as MsData since it's <emph>only</emph> seen 503in marked sections. Call them attribute-value pairs not 504name-value pairs, except once. Internal subset is optional, needs 505'?'. Implied attributes should be signaled to the app, not 506have values supplied by processor.</sitem> 507<sitem>1996-10-16 : TB : track down & excise all DSD references; 508introduce some EBNF for entity declarations.</sitem> 509<sitem>1996-10-?? : TB : consistency check, fix up scraps so 510they all parse, get formatter working, correct a few productions.</sitem> 511<sitem>1996-10-10/11 : CMSMcQ : various maintenance, stylistic, and 512organizational changes: 513Replace a few literals with xmlpio and 514pic entities, to make them consistent and ensure we can change pic 515reliably when the ERB votes. 516Drop paragraph on recognizers from notation section. 517Add match, exact match to terminology. 518Move old 2.2 XML Processors and Apps into intro. 519Mention comments, PIs, and marked sections in discussion of 520delimiter escaping. 521Streamline discussion of doctype decl syntax. 522Drop old section of 'PI syntax' for doctype decl, and add 523section on partial-DTD summary PIs to end of Logical Structures 524section. 525Revise DSD syntax section to use Tim's subset-in-a-PI 526mechanism.</sitem> 527<sitem>1996-10-10 : TB : eliminate name recognizers (and more?)</sitem> 528<sitem>1996-10-09 : CMSMcQ : revise for style, consistency through 2.3 529(Characters)</sitem> 530<sitem>1996-10-09 : CMSMcQ : re-unite everything for convenience, 531at least temporarily, and revise quickly</sitem> 532<sitem>1996-10-08 : TB : first major homogenization pass</sitem> 533<sitem>1996-10-08 : TB : turn "current" attribute on div type into 534CDATA</sitem> 535<sitem>1996-10-02 : TB : remould into skeleton + entities</sitem> 536<sitem>1996-09-30 : CMSMcQ : add a few more sections prior to exchange 537 with Tim.</sitem> 538<sitem>1996-09-20 : CMSMcQ : finish transcribing notes.</sitem> 539<sitem>1996-09-19 : CMSMcQ : begin transcribing notes for draft.</sitem> 540<sitem>1996-09-13 : CMSMcQ : made outline from notes of 09-06, 541do some housekeeping</sitem> 542</slist> 543</revisiondesc> 544</header> 545<body> 546<div1 id='sec-intro'> 547<head>$B0lHL;v9`(B</head> 548<!-- <div2 id='sec-scope'> 549 <head>$BE,MQHO0O(B</head> --> 550<p>$B3HD%2DG=$J(B&markup;$B8@8l(BXML(eXtensible Markup Language)$B$O!$(B<termref def="dt-xml-doc">XML$BJ8=q(B</termref>$B$H$$$&%G!<%?%*%V%8%'%/%H$N%/%i%9$r5,Dj$7!$(BXML$BJ8=q$r=hM}$9$k%W%m%0%i%`$NF0:n$N0lIt$r5,Dj$9$k!#(BXML$B$O!$(BSGML($BI8=`0lHL2=(B&markup;$B8@8l!$(BStandard Generalized Markup Language)<bibref ref='ISO8879'/>$B$N@)8B$7$?(B⊂$B$H$9$k!#9=B$>e!$(BXML$BJ8=q$O!$$+$J$i$:(BSGML$B5,3J$KE,9g$9$k!#(B</p> 551<p>XML$BJ8=q$O!$(B<termref def="dt-entity">$B<BBN(B</termref>$B$H$$$&5-21C10L$+$i$J$j!$<BBN$O!$(B&parsed-data;$BKt$O(B&unparsed-data;$B$+$i$J$k!#(B&parsed-data;$B$O!$(B<termref def="dt-character">$BJ8;z(B</termref>$B$+$i$J$j!$$=$N0lIt$O!$J8=q$N(B<termref def="dt-chardata">$BJ8;z%G!<%?(B</termref>$B$r9=@.$7!$0lIt$O!$(B<termref def="dt-markup">&markup;</termref>$B$r9=@.$9$k!#(B&markup;$B$O!$J8=q$N5-21%l%$%"%&%H5Z$SO@M}9=B$$K$D$$$F$N5-=R$rI=$9Id9f$H$9$k!#(BXML$B$O!$5-21%l%$%"%&%H5Z$SO@M}9=B$$K$D$$$F$N@)Ls>r7o$r5-=R$9$k5!9=$rDs6!$9$k!#(B</p> 552<p><termdef id="dt-xml-proc" term="XML&processor;"><term>XML&processor;</term>$B$H$$$&%=%U%H%&%'%"%b%8%e!<%k$O!$(BXML$BJ8=q$rFI$_9~$_!$$=$NFbMF5Z$S9=B$$X$N%"%/%;%9$rDs6!$9$k$?$a$KMQ$$$k!#(B </termdef> <termdef id="dt-app" term="&application;">XML&processor;$B$O!$B>$N%b%8%e!<%k$N$?$a$KF0:n$9$k$3$H$rA0Ds$H$7!$$=$N%b%8%e!<%k$r(B<term>&application;</term>$B$H$$$&!#(B</termdef>$B$3$N(B&TR-or-Rec;$B$O!$(BXML&processor;$B$,9T$o$J$1$l$P$J$i$J$$?6Iq$$$r5,Dj$9$k!#$D$^$j!$(BXML$B%G!<%?$NFI9~$_J}K!$r5,Dj$7!$(B&application;$B$KDs6!$9$k>pJs$r5,Dj$9$k!#(B</p> 553<!-- </div2> --> 554<div2 id='sec-origin-goals'> 555<head>$B7P0^5Z$SL\I8(B</head> 556<p>1996$BG/$K(BWorld Wide Web Consortium(W3C)$B$NCf$K@_N)$7$?(BXML$B:n6H%0%k!<%W(B($B0JA0$O!$(B SGML$BJT=8%l%S%e!<0Q0w2q$H8F$P$l$?(B)$B$,!$(BXML$B$r3+H/$7$?!#$3$N:n6H%0%k!<%W$N5DD9$r!$(BSun Microsystems$B$N(BJon Bosak$B$,6P$a$k!#(BW3C$B$,AH?%$7!$0JA0$O(BSGML$B:n6H%0%k!<%W$H8F$P$l$?(BXML SIG(Special Interest Group)$B$b!$(BXML$B$N@)Dj$KHs>o$K3hH/$K;22h$7$?!#(B 557<!--JIS$B$G$O(B? XML$B:n6H%0%k!<%W$N%a%s%P$rIUO?$K<($9!#(B-->Dan Connolly$B$O!$:n6H%0%k!<%W$N(BW3C$B$K$*$1$kO"Mm78$rL3$a$?!#(B</p> 558<p>XML$B$N@_7WL\I8$r!$<!$K<($9!#(B<ulist> 559<item><p>a) XML$B$O!$(BInternet$B>e$G$=$N$^$^;HMQ$G$-$k!#(B</p></item> 560<item><p>b) XML$B$O!$9-HO0O$N(B&application;$B$r;Y1g$9$k!#(B</p></item> 561<item><p>c) XML$B$O!$(BSGML$B$H8_49@-$r$b$D!#(B</p></item> 562<item><p>d) XML$BJ8=q$r=hM}$9$k%W%m%0%i%`$r=q$/$3$H$O!$MF0W$G$J$1$l$P$J$i$J$$!#(B</p></item> 563<item><p>e) XML$B$G$O!$%*%W%7%g%s$N5!G=$O$G$-$k$@$1>/$J$/$7!$0l$D$bB8:_$7$J$$$3$H$rL\;X$9!#(B</p></item> 564<item><p>f) XML$BJ8=q$O!$?M4V$K$H$C$FFI$_$d$9$/!$==J,$KM}2r$7$d$9$$!#(B</p></item> 565<item><p>g) XML$B$N@_7W$O!$$9$_$d$+$K9T$($J$1$l$P$J$i$J$$!#(B</p></item> 566<item><p>h) XML$B$N@_7W$O!$87L)5Z$S4J7i$G$J$1$l$P$J$i$J$$!#(B</p></item> 567<item><p>i) XML$BJ8=q$O!$MF0W$K:n@.$G$-$k!#(B</p></item> 568<item><p>j) XML$B$G$O!$(B&markup;$B$N?t$r8:$i$9$3$H$O!$=EMW$G$O$J$$!#(B</p></item></ulist> 569</p> 570<p>XML$BBh(B&XML.version;&version;$B$rM}2r$7!$$=$l$r=hM}$9$k7W;;5!%W%m%0%i%`$r=q$/$?$a$K==J,$J>pJs$O!$$3$N(B&TR-or-Rec;$B5Z$S4XO"$9$k5,3J(B($BJ8;zMQ$H$7$F!$(BUnicode$B5Z$S(BISO/IEC 10646$B!$(B<!--* XXX for Uniform Resource Identifiers, *-->&language-identification;$B%?%0MQ$H$7$F!$%$%s%?%M%C%H(B RFC 1766$B!$(B&language-code;$BMQ$H$7$F!$(BISO 639$B!$JB$S$K(B&country-code;$BMQ$H$7$F!$(BISO 3166)$B$G!$$9$Y$F<($9!#(B</p> 571<p>$B$3$N(B&version;$B$N(BXML$B$N5,Dj(B<!-- (&doc.date;) -->$B$O!$8x3+%l%S%e!<5Z$S5DO@$rL\E*$H$9$k!#%F%-%9%H5Z$SK!N'>e$NCm0U$r2~JQ$7$J$$8B$j!$<+M3$KG[I[$7$F$b$h$$!#(B</p> 572</div2> 573<div2 id='sec-terminology'> 574<head>$BDj5A(B</head> 575<p>XML$BJ8=q$N5,Dj$N$?$a$K;HMQ$9$kMQ8l$O!$$3$N(B&TR-or-Rec;$BFb$GDj5A$9$k!#<!$K<($98l6g$O!$$=$l$i$NMQ8l$rDj5A$9$k$?$a!$5Z$S(BXML&processor;$B$NF0$-$r5,Dj$9$k$?$a$K;HMQ$9$k!#(B 576<glist> 577<gitem> 578<label>1.2.1 $B$7$F$b$h$$(B(may)</label> 579<def><p><termdef id="dt-may" term="$B$7$F$b$h$$(B">$BE,9g$9$kJ8=qKt$O(BXML&processor;$B$O!$5-=R$5$l$?$H$*$j$KF0:n$7$F$b$h$$$,!$$=$N$H$*$j$K$9$kI,MW$O$J$$!#(B</termdef></p></def> 580</gitem> 581<gitem> 582<label>1.2.2 $B$7$J$1$l$P$J$i$J$$(B(must)</label> 583<def><p>$BE,9g$9$kJ8=qKt$O(BXML&processor;$B$O!$5-=R$5$l$?$H$*$j$KF0:n$9$k$3$H$,MW5a$5$l$k!#$=$&$G$J$1$l$P!$(B&error;$B$H$9$k!#(B<!-- do NOT change this! this is what defines a violation ofa 'must' clause as 'an error'. -MSM --> 584</p></def> 585</gitem> 586<gitem> 587<label>1.2.3 &error;(error)</label> 588<def><p><termdef id="dt-error" term="&error;">$B$3$N(B&TR-or-Rec;$B$,Dj$a$k5,B'$KBP$9$k0cH?!#7k2L$ODj5A$7$J$$!#E,9g$9$k%=%U%H%&%'%"$O!$(B&error;$B$r8!=P$7$FJs9p$7$F$b$h$/!$(B&error;$B$+$i2sI|$7$F$b$h$$!#(B</termdef></p></def> 589</gitem> 590<gitem> 591<label>1.2.4 &fatal-error;(fatal error)</label> 592<def><p><termdef id="dt-fatal" term="&fatal-error;">$BE,9g$9$k(B<termref def="dt-xml-proc">XML&processor;</termref>$B$,8!=P$7$J$1$l$P$J$i$:!$(B&application;$B$KJs9p$7$J$1$l$P$J$i$J$$(B&error;$B!#(B&fatal-error;$B$rH/8+$7$?$"$H!$(B&processor;$B$O!$$=$l0J9_$N(B&error;$B$rC5$9$?$a$K%G!<%?=hM}$rB39T$7$F$b$h$/!$(B&error;$B$rH/8+$7$?>l9g$O!$$=$N(B&error;$B$r(B&application;$B$KJs9p$7$F$b$h$$!#(B&error;$BD{@5$r%5%]!<%H$9$k$?$a$K!$(B&processor;$B$O!$L$=hM}%G!<%?(B($BJ8;z%G!<%?5Z$S(B&markup;$B$N:.:_$7$?$b$N(B)$B$rJ8=q$+$i<h$j=P$7!$(B&application;$B$KEO$7$F$b$h$$!#$7$+$7!$0lEY!$(B&fatal-error;$B$r8!=P$7$?$i!$(B&processor;$B$O!$DL>o$N=hM}$rB39T$7$F$O$J$i$J$$!#$D$^$j!$(B&processor;$B$O!$J8;z%G!<%?5Z$SJ8=q$NO@M}9=B$$K$D$$$F$N>pJs$r!$DL>o$NJ}K!$G(B&application;$B$KEO$7B3$1$F$O$J$i$J$$!#(B</termdef></p></def> 593</gitem> 594<gitem> 595<label>1.2.5 &at-user-option;(at user option)</label> 596<def><p>$BE,9g$9$k%=%U%H%&%(%"$O!$5-=R$5$l$?$H$*$j$K?6$kIq$C$F$b$h$$(B(may)$B!$Kt$O?6$kIq$o$J$/$F$O$J$i$J$$(B(must)($BJ8>OCf$N=uF0;l$K$h$k!#(B)$B!#$=$N$H$*$j$K?6$kIq$&>l9g$O!$5-=R$5$l$??6Iq$$$rA*BrKt$O5qH]$9$k<jCJ$r(B&user;$B$KDs6!$7$J$1$l$P$J$i$J$$!#(B</p></def> 597</gitem> 598<gitem> 599<label>1.2.6 &validity;$B@)Ls(B(validity constraint)</label> 600<def><p>$B$9$Y$F$N(B<termref def="dt-valid">&valid;$B$J(B</termref>XML$BJ8=q$KE,MQ$9$k5,B'!#(B&validity;$B@)Ls$N0cH?$O!$(B&error;$B$H$9$k!#(B&at-user-option;$B!$(B<termref def="dt-validating">$B8!>Z$r9T$&(BXML&processor;</termref>$B$O!$$3$N(B&error;$B$rJs9p$7$J$1$l$P$J$i$J$$!#(B</p></def> 601</gitem> 602<gitem> 603<label>1.2.7 &well-formed;$B@)Ls(B(well-formedness constraint)</label> 604<def><p>$B$9$Y$F$N(B<termref def="dt-wellformed">&well-formed;</termref>$B$N(BXML$BJ8=q$KE,MQ$9$k5,B'!#(B&well-formed;$B@)Ls$N0cH?$O!$(B<termref def="dt-fatal">&fatal-error;</termref>$B$H$9$k!#(B</p></def> 605</gitem> 606<gitem> 607<label>1.2.8 &match;(match)</label> 608<def><p>a) <termdef id="dt-match" term="&match;">&string;$BKt$OL>A0$N(B&match;$B!!Hf3S$9$kFs$D$N(B&string;$BKt$OL>A0$O!$F10l$G$J$1$l$P$J$i$J$$!#(BISO/IEC 10646$B$K$*$$$F!$J#?t$NI=8=$,2DG=$JJ8;z!NNc$($P!$(B&composed-form;$B5Z$S4pDl(B+&diacritical-mark;($B%@%$%"%/%j%F%#%+%k%^!<%/(B)$B7A<0!O$O!$$I$A$i$N(B&string;$B$bF1$8I=8=$N$H$-$K8B$j!$(B&match;$B$9$k!#(B&at-user-option;$B!$(B&processor;$B$O!$$=$NJ8;z$rI8=`7A$K@55,2=$7$F$b$h$$!#Hf3S$N$H$-!"BgJ8;z$H>.J8;z$H$N6hJL$r$9$k!#(B<!-- Note that no processing of characters with respect to case is part of the matching process. --><BR>b) &string;$B$HJ8K!Cf$N5,B'$H$N(B&match;$B!!$"$k@8@.5,B'$+$i@8@.$9$k8@8l$K!$$"$k(B&string;$B$,B0$9$k$H$-!$$3$N(B&string;$B$O!$$3$N@8@.5,B'$K(B&match;$B$9$k$H$$$&!#(B<BR>c) $BFbMF$HFbMF%b%G%k$H$N(B&match;$B!!$"$kMWAG$,!$(B<titleref href='elementvalid'>$BMWAG$N(B&validity;</titleref>$B$N@)Ls$K<($90UL#$GE,9g$9$k$H$-!$$3$NMWAG$O!$$=$N@k8@$K(B&match;$B$9$k$H$$$&!#(B</termdef></p></def> 609</gitem> 610<gitem> 611<label>1.2.9 $B8_49@-$N$?$a(B(for compatibility)</label> 612<def><p><termdef id="dt-compat" term="$B8_49@-$N$?$a(B">XML$B$N5!G=$G$"$C$F!$(BXML$B$,(BSGML$B$H8_49$G$"$k$3$H$rJ]>Z$9$k$?$a$@$1$KF3F~$5$l$k$b$N!#(B</termdef></p></def> 613</gitem> 614<gitem> 615<label>1.2.10 $BAj8_1?MQ@-$N$?$a(B(for interoperability)</label> 616<def><p><termdef id="dt-interop" term="$BAj8_1?MQ@-$N$?$a(B">$B94B+NO$O$b$?$J$$?d>);v9`!#(B&WebSGML;$B0JA0$+$iB8:_$9$k(BSGML&processor;$B$,!$(BXML$BJ8=q$r=hM}$G$-$k2DG=@-$r9b$a$k$?$a$K<h$jF~$l$k$b$N!#(B</termdef></p></def> 617</gitem> 618</glist> 619</p> 620</div2> 621</div1> 622<!-- &Docs; --> 623<div1 id='sec-documents'> 624<head>$BJ8=q(B</head> 625<p><termdef id="dt-xml-doc" term="XML$BJ8=q(B"> 626<!-- A textual object --> 627$B$3$N(B&TR-or-Rec;$B$GDj5A$9$k0UL#$G!$(B<termref def="dt-wellformed">&well-formed;</termref>$B$H$9$k%G!<%?%*%V%8%'%/%H$r!$(B<term>XML$BJ8=q(B</term>$B$H$$$&!#(B&well-formed;$B$N(BXML$BJ8=q$,!$$5$i$K!$$"$k@)Ls>r7o$rK~B-$9$l$P!$(B<termref def="dt-valid">&valid;</termref>$B$J(BXML$BJ8=q$H$9$k!#(B 628</termdef></p> 629 630<!-- why this div? -TB 631<div2 id='sec-log-phys'> 632<head>Logical and Physical Structure</head> --> 633 634<p>$B$$$:$l$N(BXML$BJ8=q$b!$O@M}9=B$5Z$SJ*M}9=B$$r$b$D!#J*M}E*$K$O!$J8=q$O!$(B<termref def="dt-entity">$B<BBN(B</termref>$B$H8F$VC10L$+$i$J$k!#$"$k<BBN$O!$J8=qFb$KB>$N<BBN$r4^$`$?$a$K!$$=$NB>$N<BBN$r(B<termref def="dt-entref">$B;2>H(B</termref>$B$7$F$b$h$$!#J8=q$O!$!H%k!<%H!I$9$J$o$A(B<termref def="dt-docent">$BJ8=q<BBN(B</termref>$B$+$i;O$^$k!#O@M}E*$K$O!$J8=q$O!$@k8@!$MWAG!$%3%a%s%H!$J8;z;2>H5Z$S=hM}L?Na$r4^$_!$$3$l$i$9$Y$F$O!$J8=qFb$GL@<(E*$J(B&markup;$B$K$h$C$F<($9!#O@M}9=B$5Z$SJ*M}9=B$$O!$(B<titleref href="wf-entities">$B0J9_(B</titleref>$B$K<($9$H$*$j$K!$87L)$KF~$l;R$K$J$C$F$$$J$1$l$P$J$i$J$$!#(B</p> 635 636<!-- 637</div2> --> 638 639<div2 id='sec-well-formed'> 640<head>&well-formed;$B$N(BXML$BJ8=q(B</head> 641<p><termdef id="dt-wellformed" term="&well-formed;">$B$"$k%F%-%9%H%*%V%8%'%/%H$,!$<!$N$$$:$l$+$N$H$-!$$=$N%F%-%9%H%*%V%8%'%/%H$r(B&well-formed;$B$N(BXML$BJ8=q$H8F$V!#(B</termdef> 642<ulist> 643<item><p>a) $BA4BN$H$7$F!$(B<nt def='NT-document'>document</nt>$B$H$$$&%i%Y%k$r$b$D@8@.5,B'$K(B&match;$B$9$k!#(B</p></item> 644<item><p>b) $B$3$N(B&TR-or-Rec;$B$GDj5A$9$k!$$9$Y$F$N(B&well-formed;$B@)Ls$K=>$&!#(B</p> 645</item> 646<item><p>c) $B$=$l$>$l$N(B<termref def='dt-parsedent'>&parsed-entity;</termref>$B$,!$(B<titleref href='wf-entities'>&well-formed;</titleref>$B$H$J$k!#(B</p></item> 647</ulist></p> 648<p> 649<scrap lang='ebnf' id='document'> 650<head>$BJ8=q(B</head> 651<prod id='NT-document'><lhs>document</lhs> 652<rhs><nt def='NT-prolog'>prolog</nt> 653<nt def='NT-element'>element</nt> 654<nt def='NT-Misc'>Misc</nt>*</rhs></prod> 655</scrap> 656</p> 657<p><nt def="NT-document">document</nt>$B@8@.5,B'$K(B&match;$B$9$k$H$O!$<!$r0UL#$9$k!#(B 658<ulist> 659<item><p>a) $B0l$D0J>e$N(B<termref def="dt-element">$BMWAG(B</termref>$B$r4^$`!#(B</p> 660</item> 661 662<!--* N.B. some readers (notably JC) find the following 663paragraph awkward and redundant. I agree it's logically redundant: 664it *says* it is summarizing the logical implications of 665matching the grammar, and that means by definition it's 666logically redundant. I don't think it's rhetorically 667redundant or unnecessary, though, so I'm keeping it. It 668could however use some recasting when the editors are feeling 669stronger. -MSM *--> 670 671<item><p>b) <termdef id="dt-root" term="$B%k!<%HMWAG(B"><term>$B%k!<%H(B</term>$BKt$OJ8=qMWAG$H$$$&MWAG$,0l$D$@$1B8:_$7!$$3$l$O!$B>$NMWAG$N(B<termref def="dt-content">$BFbMF(B</termref>$B$K4^$^$l$J$$!#(B</termdef>$B$3$l0J30$N$9$Y$F$NMWAG$O!$$=$N3+;O%?%0$,B>$NMWAG$NFbMF$K4^$^$l$l$P!$BP1~$9$k=*N;%?%0$bF1$8MWAG$NFbMF$K4^$^$l$k!#$D$^$j!$MWAG$O!$3+;O%?%05Z$S=*N;%?%0$K$h$C$F6h@Z$i$l!$F~$l;R9=B$$r$J$9!#(B 672</p></item> 673</ulist> 674</p> 675<p><termdef id="dt-parentchild" term="$B?FMWAG(B/$B;RMWAG(B">$B$3$l$i$N7k2L$H$7$F!$J8=qFb$N$I$NHs%k!<%HMWAG(B<code>C</code>$B$KBP$7$F$b!$$"$kB>$NMWAG(B<code>P</code>$B$,B8:_$7!$(B<code>C</code>$B$O!$(B<code>P</code>$B$NFbMF$K4^$^$l$k$,!$(B<code>P</code>$B$NFbMF$K4^$^$l$kB>$NMWAG$K4^$^$l$k$3$H$O$J$$!#$3$N$H$-!$(B<code>P</code>$B$r(B<code>C</code>$B$N(B<code>$B?F(B</code>$B$H$$$$!$(B<code>C</code>$B$r(B<code>P</code>$B$N(B<code>$B;R(B</code>$B$H$$$&!#(B</termdef></p> 676</div2> 677<div2 id="charsets"> 678<head>$BJ8;z(B</head> 679<p> 680 681<!--The data stored in an XML <termref def="dt-entity">entity</termref> is 682either <termref def="dt-text">parsed</termref> or <termref 683def="dt-unparsed">unparsed</termref>. --> 684 685<termdef id="dt-text" term="$B%F%-%9%H(B">&parsed-entity;$B$O!$(B<term>$B%F%-%9%H(B</term>(<termref def="dt-character">$BJ8;z(B</termref>$B$NJB$S$G$"$C$F!$(B&markup;$BKt$OJ8;z%G!<%?$rI=$7$F$b$h$$!#(B)$B$r4^$`!#(B</termdef><termdef id="dt-character" term="$BJ8;z(B"><term>$BJ8;z(B</term>$B$O!$%F%-%9%H$N:G>.C10L$G$"$C$F!$(BISO/IEC 10646<bibref ref="ISO10646"/>$B$K5,Dj$5$l$k!#(B<!--Users may extend the ISO/IEC 10646 character repertoire by exploiting the private use areas. -->$B5vMF$9$kJ8;z$O!$%?%V!$2~9T!$I|5"JB$S$K(BUnicode$B5Z$S(BISO/IEC 10646$B$,5vMF$9$k?^7AJ8;z$H$9$k!#(B</termdef> 686<scrap lang="ebnf" id="char32"> 687<head>$BJ8;z$NHO0O(B</head> 688<prodgroup pcw2="4" pcw4="17.5" pcw5="11"> 689<prod id="NT-Char"><lhs>Char</lhs> 690<rhs>#x9 | #xA | #xD | [#x20-#D7FF] | [#xE000-#xFFFD] 691| [#x10000-#x10FFFF]</rhs> 692<com>$BG$0U$N(BUnicode$BJ8;z!#$?$@$7!$(B&surrogate-blocks;$B!$(BFFFE$B5Z$S(BFFFF$B$O=|$/!#(B</com> 693</prod> 694</prodgroup> 695</scrap> 696</p> 697<p>&character-value;$B$r%S%C%H%Q%?%s$KId9f2=$9$k5!9=$O!$<BBN$4$H$K0c$C$F$b$h$$!#$9$Y$F$N(BXML&processor;$B$O!$(BISO/IEC 10646$B$N(BUTF-8$BId9f2=5Z$S(BUTF-16$BId9f2=$r<u$1IU$1$J$1$l$P$J$i$J$$!#Fs$D$N$I$A$i$,MQ$$$i$l$F$$$k$+$rL@<($9$k$?$a$N5!9=!$5Z$SB>$NId9f2=J}K!$rMxMQ$9$k$?$a$N5!9=$O!$(B<titleref href='charencoding'>$BJ8;z$NId9f2=(B</titleref>$B$K5-=R$9$k!#(B</p> 698<p>$B$I$NId9f2=J}K!$rMQ$$$k$+$K4X78$J$/!$(BISO/IEC 10646$B$NJ8;z=89g$K$"$k$9$Y$F$NJ8;z$O!$$=$N(BUCS-4&code-value;<!-- bit string. -->$B$HEy2A$J(B10$B?J?tKt$O(B16$B?J?t$K$h$C$F!$;2>H$G$-$k!#(B</p> 699</div2> 700 701<div2 id='sec-common-syn'> 702<head>$B6&DL$N9=J89=@.;R(B</head> 703 704<p>2.3$B$G$O!$J8K!Fb$G9-$/;HMQ$9$k$$$/$D$+$N5-9f$rDj5A$9$k!#(B</p> 705<p><nt def="NT-S">S</nt> ($B6uGr(B)$B$O!$0l$D<c$7$/$OJ#?t$N(B&space-character;(#x20)$B!$I|5"!$2~9TKt$O%?%V$+$i@.$k!#(B 706 707<scrap lang="ebnf" id='white'> 708<head>$B6uGr(B</head> 709<prodgroup pcw2="4" pcw4="17.5" pcw5="11"> 710<prod id='NT-S'><lhs>S</lhs> 711<rhs>(#x20 | #x9 | #xD | #xA)+</rhs> 712</prod> 713</prodgroup> 714</scrap></p> 715<p>$BJX59>e!$J8;z$r!$(B&letter;$B!$?t;zKt$OB>$NJ8;z$KJ,N`$9$k!#(B&letter;$B$O!$%"%k%U%!%Y%C%HE*Kt$OI=2;E*$G$"$k4pK\J8;z(B($B0l$DKt$OJ#?t$N(B&combining-character;$B$,!$8e$KB3$/$3$H$b$"$k!#(B)$B!$(B&ideographic;$B$+$i@.$k!#(B 716<!-- 717Certain layout and format-control characters defined by ISO/IEC 10646 718should be ignored when recognizing identifiers; these are defined by the 719classes <nt def='NT-Ignorable'>Ignorable</nt> and <nt def='NT- 720Extender'>Extender</nt>. 721--> 722$B3F%/%i%9$K$*$1$k<B:]$NJ8;z$K$D$$$F$N40A4$JDj5A$O!$(B<titleref href='CharClasses'>$BJ8;z%/%i%9(B</titleref>$B$K4X$9$kIUO?$K5,Dj$9$k!#(B</p> 723<p><termdef id="dt-name" term="Name"><term>Name</term>$B$O!$(B&letter;$BKt$O$$$/$D$+$N6h@Z$jJ8;z$N0l$D$G;O$^$j!$$=$N8e$K(B&letter;$B!$?t;z!$%O%$%U%s!$2<@~!$%3%m%sKt$O%T%j%*%I$,B3$/(B($B$3$l$i$rL>A0J8;z$H$$$&!#(B)$B!#(B</termdef>&string;"<code>xml</code>"$BKt$O(B<code>(('X'|'x') ('M'|'m') ('L'|'l'))</code>$B$K(B&match;$B$9$kG$0U$N(B&string;$B$G;O$^$kL>A0$O!$$3$N(B&TR-or-Rec;$B$N8=:_$NHGKt$O>-Mh$NHG$G$NI8=`2=$N$?$a$KM=Ls$9$k!#(B 724</p> 725<note> 726<p>XML$B$NL>A0$NCf$N%3%m%s$O!$L>A06u4V$G$N<B83$N$?$a$KM=Ls$9$k!#%3%m%s$N0UL#$O!$>-Mh$N$"$k;~E@$GI8=`2=$9$k$b$N$H$7!$$=$N$H$-$K$O!$<B83E*$JL\E*$G%3%m%s$r;HMQ$9$kJ8=q$r99?7$9$kI,MW$,@8$8$k2DG=@-$,$"$k!#(BXML$B$G:NMQ$9$kL>A06u4V$N5!9=$,!$6h@Z$j;R$H$7$F<B:]$K%3%m%s$r;HMQ$9$k$H$$$&J]>Z$O$J$$!#;v<B>e!$$3$l$O!$L>A06u4V$N<B83$N0l$D$H$7$F0J30$K$O!$(BXML$B$NL>A0$NCf$G%3%m%s$r;HMQ$7$J$$$[$&$,$h$$$3$H$r0UL#$9$k!#$7$+$7!$(BXML&processor;$B$O!$L>A0J8;z$H$7$F%3%m%s$r<u$1IU$1$k$3$H$,K>$^$7$$!#(B 727</p> 728</note> 729<p> 730<nt def='NT-Nmtoken'>Nmtoken</nt> ($BL>A0(B&token;)$B$O!$L>A0J8;z$G9=@.$9$kNs$H$9$k!#(B 731<scrap lang='ebnf'> 732<head>$BL>A05Z$S(B&token;</head> 733<!-- 734<prod id='NT-MiscName'><lhs>MiscName</lhs> 735<rhs></rhs> 736</prod>--> 737<prod id='NT-NameChar'><lhs>NameChar</lhs> 738<rhs><nt def="NT-Letter">Letter</nt> 739| <nt def='NT-Digit'>Digit</nt> 740<!--| <nt def='NT-MiscName'>MiscName</nt>--> 741| '.' | '-' | '_' | ':' 742| <nt def='NT-CombiningChar'>CombiningChar</nt> 743<!-- | <nt def='NT-Ignorable'>Ignorable</nt> --> 744| <nt def='NT-Extender'>Extender</nt></rhs> 745</prod> 746<prod id='NT-Name'><lhs>Name</lhs> 747<rhs>(<nt def='NT-Letter'>Letter</nt> | '_' | ':') 748(<nt def='NT-NameChar'>NameChar</nt>)*</rhs></prod> 749<prod id='NT-Names'><lhs>Names</lhs> 750<rhs><nt def='NT-Name'>Name</nt> 751(<nt def='NT-S'>S</nt> <nt def='NT-Name'>Name</nt>)*</rhs></prod> 752<prod id='NT-Nmtoken'><lhs>Nmtoken</lhs> 753<rhs>(<nt def='NT-NameChar'>NameChar</nt>)+</rhs></prod> 754<prod id='NT-Nmtokens'><lhs>Nmtokens</lhs> 755<rhs><nt def='NT-Nmtoken'>Nmtoken</nt> (<nt def='NT-S'>S</nt> <nt 756def='NT-Nmtoken'>Nmtoken</nt>)*</rhs></prod> 757</scrap> 758</p> 759<p>&literal;$B%G!<%?$O!$0zMQId$G0O$^$l$?(B&string;$B$H$7!$$=$NNs$N6h@Z$j;R$H$7$F;HMQ$9$k0zMQId$O4^$^$J$$!#(B&literal;$B$O!$FbIt<BBN(B(<nt def='NT-EntityValue'>EntityValue</nt>)$B!$B0@-CM(B(<nt def='NT-AttValue'>AttValue</nt>)$B!$30It(B&identifier;(<nt def="NT-SystemLiteral">SystemLiteral</nt>)$B$NFbMF$N;XDj$K;HMQ$9$k!#L\E*$K$h$C$F$O!$(B&literal;$BA4BN$r!$$=$NCf$N(B&markup;$B$NAv::$r9T$J$o$:$K!$%9%-%C%W$9$k$3$H$,$"$k(B(<nt def='NT-SkipLit'>SkipLit</nt>$B!#(B)$B!#(B 760<scrap lang='ebnf'> 761<head>&literal;</head> 762<!-- is marked section end legal in entity values etc.? 763James says yes. Handbook page 392, sec. 10.4 seems to me to say no. 764If James is right, leave as is. Otherwise, uncomment 765the next comment and ... 766--> 767<!-- 768<prod id='NT-EntityValue'><lhs>EntityValue</lhs> 769<rhs>' " ' 770(([^%&"] 771| <nt def='NT-PEReference'>PEReference</nt> 772| <nt def='NT-Reference'>Reference</nt>)* 773- (<nt def='NT-Char'>Char</nt>* ']]>' <nt def='NT-char'>Char</nt>*)) 774' " ' 775</rhs> 776<rhs>| 777" ' " 778(([^%&'] 779| <nt def='NT-PEReference'>PEReference</nt> 780| <nt def='NT-Reference'>Reference</nt>)* 781- (<nt def='NT-Char'>Char</nt>* ']]>' <nt def='NT-char'>Char</nt>*)) 782" ' "</rhs> 783</prod> 784<prod id='NT-AttValue'><lhs>AttValue</lhs> 785<rhs>'"' 786(([^<&"] 787| <nt def='NT-Reference'>Reference</nt>)* 788- (<nt def='NT-Char'>Char</nt>* ']]>' <nt def='NT-char'>Char</nt>*)) 789' " ' 790</rhs> 791<rhs>| 792" ' " 793(([^<&'] 794| <nt def='NT-Reference'>Reference</nt>)* 795- (<nt def='NT-Char'>Char</nt>* ']]>' <nt def='NT-char'>Char</nt>*)) 796" ' "</rhs> 797<wfc def="CleanAttrVals"/> 798</prod> 799--> 800<!-- ... and comment out the following, down to ... --> 801<prod id='NT-EntityValue'><lhs>EntityValue</lhs> 802<rhs>' " ' 803([^%&"] 804| <nt def='NT-PEReference'>PEReference</nt> 805| <nt def='NT-Reference'>Reference</nt>)* 806' " ' 807</rhs> 808<rhs>| 809" ' " 810([^%&'] 811| <nt def='NT-PEReference'>PEReference</nt> 812| <nt def='NT-Reference'>Reference</nt>)* 813" ' "</rhs> 814</prod> 815<prod id='NT-AttValue'><lhs>AttValue</lhs> 816<rhs>' " ' 817([^<&"] 818| <nt def='NT-Reference'>Reference</nt>)* 819' " ' 820</rhs> 821<rhs>| 822" ' " 823([^<&'] 824| <nt def='NT-Reference'>Reference</nt>)* 825" ' "</rhs> 826<!--<wfc def="WF-Attvaldelim"/>--> 827</prod> 828<!-- ... down to here. --> 829<prod id="NT-SystemLiteral"><lhs>SystemLiteral</lhs> 830<rhs><nt def='NT-SkipLit'>SkipLit</nt></rhs> 831</prod> 832<!-- <prod id="NT-URIchar"><lhs>URIchar</lhs> 833<rhs><com>See <loc href="http://www.w3.org/XXX">XXX</loc></com> 834</rhs></prod> 835--> 836<prod id="NT-PubidLiteral"><lhs>PubidLiteral</lhs> 837<rhs>' " ' <nt def='NT-PubidChar'>PubidChar</nt>* 838' " ' 839| " ' " (<nt def='NT-PubidChar'>PubidChar</nt> - " ' ")* " ' "</rhs> 840</prod> 841<prod id="NT-PubidChar"><lhs>PubidChar</lhs> 842<rhs>#x20 | #xD | #xA 843| [a-zA-Z0-9] 844| [-'()+,./:=?]</rhs> 845</prod> 846<prod id="NT-SkipLit"><lhs>SkipLit</lhs> 847<rhs>(' " ' [^"]* ' " ') 848| (" ' " [^']* " ' ")</rhs> 849</prod> 850<!-- alternate form, making ms end illegal: --> 851<!-- 852<prod id="NT-SkipLit"><lhs>SkipLit</lhs> 853<rhs>(' " ' ([^"]* - ([^"]* ']]>' [^"]*)) ' " ') 854| (" ' " ([^']* - ([^']* ']]>' [^']*)) " ' ")</rhs> 855</prod> 856--> 857</scrap> 858</p> 859<!-- 860<wfcnote id="WF-Attvaldelim"> 861<head>Delimiters in Attribute Values</head> 862<p>After the expansion of character and entity references, 863an attribute value must not contain a "<code><</code>" 864or "<code>&</code>" character unless that character was 865introduced by the expansion of a character reference 866or one of the entities &magicents;.</p> 867</wfcnote>--> 868<!-- 869This is not quite right: < should be legal, should it not? 870Suppress this WFC until we get it right. 871--> 872<!-- Henry Thompson suggests (in substance, not form: the wording needs 873to be clarified): 874"Cooked Attribute values must not contain < & or the 875quote which closed their uncooked literal, 876unless arising from the expansion of a character reference or 877magic reference 878directly contained in their uncooked literal." 879I'm not sure I agree with this rule, but it's at least coherent, 880which is more than I can say for my attempt. 881--> 882</div2> 883 884<div2 id='syntax'> 885<head>$BJ8;z%G!<%?5Z$S(B&markup;</head> 886<p><termref def='dt-text'>$B%F%-%9%H(B</termref>$B$O!$(B<termref def="dt-chardata">$BJ8;z%G!<%?(B</termref>$B5Z$S(B&markup;$B$,:.:_$9$k$b$N$H$7$F9=@.$9$k!#(B<termdef id="dt-markup" term="Markup"><term>&markup;</term>$B$O!$(B<termref def="dt-stag">$B3+;O%?%0(B</termref>$B!$(B<termref def="dt-etag">$B=*N;%?%0(B</termref>$B!$(B<termref def="dt-empty">$B6uMWAG(B</termref>$B!$(B<termref def="dt-entref">$B<BBN;2>H(B</termref>$B!$(B<termref def="dt-charref">$BJ8;z;2>H(B</termref>$B!$(B<termref def="dt-comment">$B%3%a%s%H(B</termref>$B!$(B<termref def="dt-cdsection">CDATA$B%;%/%7%g%s(B</termref> $B$N6h@Z$j;R!$(B<termref def="dt-doctype">$BJ8=q7?@k8@(B</termref>$B5Z$S(B<termref def="dt-pi">$B=hM}L?Na(B</termref>$B$N7A$r<h$k!#(B 887</termdef> 888</p> 889<p><termdef id="dt-chardata" term="Character Data">&markup;$B$G$O$J$$$9$Y$F$N%F%-%9%H$O!$J8=q$N(B<term>$BJ8;z%G!<%?(B</term>$B$r9=@.$9$k!#(B</termdef></p> 890<p>$B%"%s%Q%5%s%IJ8;z(B (&)$B5Z$S(B&left-angle-bracket; (<)$B$O!$(B&markup;$B$N6h@Z$j;R$H$7$F!$Kt$O(B<termref def="dt-comment">$B%3%a%s%H(B</termref>$B!$(B<termref def="dt-pi">$B=hM}L?Na(B</termref>$B<c$7$/$O(B<termref def="dt-cdsection">CDATA$B%;%/%7%g%s(B</termref>$BFb$G;HMQ$9$k>l9g$K(B<emph>$B$@$1(B</emph>$B!$$=$N$^$^$N7A$G=P8=$7$F$h$$!#$3$l$i$NJ8;z$O!$FbIt<BBN@k8@$N(B<termref def='dt-litentval'>&literal;$B<BBNCM(B</termref>$BFb$K5-=R$7$F$b$h$$!#(B $B>\$7$/$O!$(B<titleref href='wf-entities'>&well-formed;$B$N<BBN(B</titleref>$B$K4X$9$k5,Dj$r;2>H!#(B<!-- FINAL EDIT: restore internal entity decl or leave it out. -->$B$3$l$i$NJ8;z$,B>$NItJ,$GI,MW$J>l9g!$?tCM$K$h$kJ8;z;2>HKt$O(B&string;"<code>&amp;</code>"$B5Z$S(B&string;"<code>&lt;</code>"$B$r;HMQ$7!$(B<termref def="dt-escape">&escape;</termref>$B$7$J$1$l$P$J$i$J$$!#(B&right-angle-bracket; (>) $B$O!$(B&string;"<code>&gt;</code>"$B$r;HMQ$7$FI=8=$7$F$b$h$$!#FbMF$NCf$GNs(B"<code>]]></code>"$B$r;HMQ$9$k$H$-$O!$$=$l$,!$(B<termref def="dt-cdsection">CDATA$B%;%/%7%g%s(B</termref>$B$N=*N;$r(B&markup;$B$7$J$$8B$j!$(B<termref def='dt-compat'>$B8_49@-$N$?$a(B</termref>$B!$(B"<code>&gt;</code>"$BKt$OJ8;z;2>H$r;HMQ$7!$(B&escape;$B$7$J$1$l$P$J$i$J$$!#(B</p> 891 892<p>$BMWAG$NFbMF$G$O!$J8;z%G!<%?$O!$$$$+$J$k(B&markup;$B$N3+;O6h@Z$j;R$r4^$^$J$$G$0U$N(B&char-string;$B$H$9$k!#(BCDATA$B%;%/%7%g%s$G$O!$J8;z%G!<%?$H$O!$(BCDATA$B%;%/%7%g%s$N=*N;6h@Z$j;R(B"<code>]]></code>"$B$r4^$^$J$$G$0U$N(B&char-string;$B$H$9$k!#(B 893</p> 894<p> 895$BB0@-CM$K(B&single-quote;$B5Z$S(B&double-quote;$B$r4^$`$?$a$K$O!$%"%]%9%H%m%U%#Kt$O(B&single-quote;(') $B$O!$(B"<code>&apos;</code>"$B$H$7$FI=8=$7!$(B&double-quote;(")$B$O!$(B"<code>&quot;</code>"$B$H$7$FI=8=$9$k!#(B 896<scrap lang="ebnf"> 897<head>$BJ8;z%G!<%?(B</head> 898<prod id='NT-CharData'> 899<lhs>CharData</lhs> 900<rhs>[^<&]* - ([^<&]* ']]>' [^<&]*)</rhs> 901</prod> 902</scrap> 903</p> 904</div2> 905 906<div2 id='sec-comments'> 907<head>$B%3%a%s%H(B</head> 908 909<p><termdef id="dt-comment" term="Comment"><term>$B%3%a%s%H(B</term>$B$O!$B>$N(B<termref def='dt-markup'>&markup;</termref>$B$N30$J$i$P!$J8=q$N$I$3$K8=$l$F$b$h$$!#$5$i$K!$J8=q7?@k8@Fb$G!$J8K!$,5v$9>l=j$K8=$l$F$b$h$$!#(B 910<!-- TB 911except in a <termref def="dt-cdsection">CDATA section</termref>, i.e. within 912<termref def="dt-elemcontent">element content</termref>, in 913<termref def="dt-mixed">mixed content</termref>, or in the prolog. They must 914not occur within declarations or tags. --> 915$B%3%a%s%H$O!$J8=q$N(B<termref def="dt-chardata">$BJ8;z%G!<%?(B</termref>$B$N0lIt$G$O$J$$!#(BXML&processor;$B$O!$(B&application;$B$,%3%a%s%H$N%F%-%9%H$r<h$j=P$9$3$H$r2DG=$H$7$F$b$h$$$,!$$=$&$7$J$/$H$b$h$$!#(B 916<termref def="dt-compat">$B8_49@-$N$?$a(B</termref>$B!$(B&string;"<code>--</code>" $B!J(B&double-hyphen;$B!K$O!$%3%a%s%HFb$G8=$l$F$O$J$i$J$$!#(B 917<scrap lang="ebnf"> 918<head>$B%3%a%s%H(B</head> 919<prod id='NT-Comment'><lhs>Comment</lhs> 920<rhs>'<!--' 921((<nt def='NT-Char'>Char</nt> - '-') 922| ('-' (<nt def='NT-Char'>Char</nt> - '-')))* 923'-->'</rhs> 924<!-- 925<rhs>'<!&como;' 926(<nt def='NT-Char'>Char</nt>* - 927(<nt def='NT-Char'>Char</nt>* '&comc;' <nt def='NT-Char'>Char</nt>*)) 928'&comc;>'</rhs> --> 929</prod> 930</scrap> 931</termdef></p> 932<p>$B%3%a%s%H$NNc$r<!$K<($9!#(B 933<eg><!&como; declarations for <head> & <body> &comc;></eg> 934</p> 935</div2> 936 937<div2 id='sec-pi'> 938<head>$B=hM}L?Na(B</head> 939 940<p><termdef id="dt-pi" term="Processing instruction"><term>$B=hM}L?Na(B</term>(PI)$B$K$h$C$F!$(B&application;$B$N$?$a$NL?Na$rJ8=q$KF~$l$k$3$H$,$G$-$k!#(B 941 942<scrap lang="ebnf"> 943<head>$B=hM}L?Na(B</head> 944<prod id='NT-PI'><lhs>PI</lhs> 945<rhs>'<?' <nt def='NT-PITarget'>PITarget</nt> 946(<nt def='NT-S'>S</nt> 947(<nt def='NT-Char'>Char</nt>* - 948(<nt def='NT-Char'>Char</nt>* &pic; <nt def='NT-Char'>Char</nt>*)))? 949&pic;</rhs></prod> 950<prod id='NT-PITarget'><lhs>PITarget</lhs> 951<rhs><nt def='NT-Name'>Name</nt> - 952(('X' | 'x') ('M' | 'm') ('L' | 'l'))</rhs> 953</prod> 954</scrap></termdef> 955PI$B$O!$J8=q$N(B<termref def="dt-chardata">$BJ8;z%G!<%?(B</termref>$B$N0lIt$G$O$J$$$,!$(B&application;$B$KEO$5$l$J$1$l$P$J$i$J$$!#(BPI$B$O!$L?Na$,EO$5$l$k(B&application;$B$r(B&identify;$B$?$a$K;HMQ$9$k(B⌖ (<nt def='NT-PITarget'>PITarget</nt>) $B$G;O$^$k!#(B⌖$BL>(B "<code>XML</code>"$B!$(B"<code>xml</code>"$B$J$I$O!$$3$N(B&TR-or-Rec;$B$N8=:_$NHGKt$O>-Mh$NHG$N5,3J2=MQ$KM=Ls$9$k!#(BXML$B$N(B<termref def='dt-notation'>$B5-K!(B</termref>$B5!9=$r!$(BPI$B$N(B⌖$B$r@k8@$9$k$?$a$K;HMQ$7$F$b$h$$!#(B 956</p> 957</div2> 958 959<div2 id='sec-cdata-sect'> 960<head>CDATA$B%;%/%7%g%s(B</head> 961 962<p><termdef id="dt-cdsection" term="CDATA Section"><term>CDATA$B%;%/%7%g%s(B</term>$B$O!$J8;z%G!<%?$,=P8=$9$k$H$3$m$G$"$l$P!$$I$3$K=P8=$7$F$b$h$$!#$3$l$O!$$=$&$G$J$1$l$P!$(B&markup;$B$H$7$FG'<1$9$kJ8;z$r4^$`!$%F%-%9%H$N6h2h$r(B&escape;$B$9$k$N$K;HMQ$9$k!#(BCDATA$B%;%/%7%g%s$O!$(B&string;"<code><![CDATA[</code>"$B$G;O$^$j!$(B&string; 963"<code>]]></code>"$B$G=*$o$k!#(B 964<scrap lang="ebnf"> 965<head>CDATA$B%;%/%7%g%s(B</head> 966<prod id='NT-CDSect'><lhs>CDSect</lhs> 967<rhs><nt def='NT-CDStart'>CDStart</nt> 968<nt def='NT-CData'>CData</nt> 969<nt def='NT-CDEnd'>CDEnd</nt></rhs></prod> 970<prod id='NT-CDStart'><lhs>CDStart</lhs> 971<rhs>'<![CDATA['</rhs> 972</prod> 973<prod id='NT-CData'><lhs>CData</lhs> 974 975<rhs>(<nt def='NT-Char'>Char</nt>* - 976(<nt def='NT-Char'>Char</nt>* ']]>' <nt def='NT-Char'>Char</nt>*)) 977</rhs> 978</prod> 979<prod id='NT-CDEnd'><lhs>CDEnd</lhs> 980<rhs>']]>'</rhs> 981</prod> 982</scrap> 983 984CDATA$B%;%/%7%g%sFb$G$O!$Ns(B<nt def='NT-CDEnd'>CDEnd</nt>$B$@$1$r(B&markup;$B$H$7$FG'<1$9$k$N$G!$(B&left-angle-bracket;$B5Z$S%"%s%Q%5%s%I$O!$$=$N(B&literal;$B7A<0$G=P8=$7$F$h$$!#$=$l$i$O!$(B"<code>&lt;</code>"$B5Z$S(B"<code>&amp;</code>"$B$r;HMQ$7$F(B&escape;$B$9$kI,MW$O$J$$!#(BCDATA$B%;%/%7%g%s$O!$F~$l;R$K$O$G$-$J$$!#(B 985</termdef> 986</p> 987 988<p>"<code><greeting></code>"$B5Z$S(B"<code></greeting></code>"$B$r!$(B<termref def='dt-markup'>&markup;</termref>$B$G$O$J$/!$(B<termref def='dt-chardata'>$BJ8;z%G!<%?(B</termref>$B$H$7$FG'<1$9$k(BCDATA$B%;%/%7%g%s$NNc$r!$<!$K<($9!#(B 989<eg><![CDATA[<greeting>Hello, world!</greeting>]]></eg> 990</p> 991</div2> 992 993<div2 id='sec-prolog-dtd'> 994<head>&prolog;$B5Z$SJ8=q7?@k8@(B</head> 995 996<p><termdef id='dt-xmldecl' term='XML Declaration'>XML$BJ8=q$O!$;HMQ$9$k(BXML$B$N(B&version;$B$r;XDj$9$k(B<term>XML$B@k8@(B</term>$B$G;O$a$F$b$h$/!$Kt$=$&$9$k$N$,K>$^$7$$!#(B 997</termdef> 998</p> 999<p>$B$3$N(B&TR-or-Rec;$B$N$3$N(B&version;$B$KE,9g$9$k$3$H$r<($9$?$a$K$O!$(B&version;$BHV9f(B "<code>1.0</code>" $B$r;HMQ$7$J$1$l$P$J$i$J$$!#$"$kJ8=q$,!$$3$N(B&TR-or-Rec;$B$N$3$N(B&version;$B$KE,9g$7$J$$$H$-!$CM(B"<code>1.0</code>"$B$r;HMQ$9$k$N$O!$(B&error;$B$H$9$k!#$3$N(B&TR-or-Rec;$B$N:#8e$N(B&version;$B$K(B"<code>1.0</code>"$B0J30$NCM$rIUM?$9$k$3$H$,!$(BXML$B:n6H%0%k!<%W$N0U?^$@$,!$(BXML$B$N>-Mh$N(B&version;$B$r:n@.$9$k$3$H$N3NLs$r<($9$o$1$G$O$J$/!$:n@.$7$?$H$7$F$b!$HV9fIU$1$K$D$$$F!$FCDj$NJ}K!$r;HMQ$9$k$3$H$N3NLs$r<($9$o$1$G$b$J$$!#>-Mh$N(B&version;$B$N2DG=@-$r=|30$7$J$$$N$G!$I,MW$J>l9g!$<+F0E*$J(B&version;$B$NG'<1$r2DG=$H$9$k<jCJ$H$7$F!$$3$N9=@.;R$rDs6!$9$k!#(B&processor;$B$O!$%5%]!<%H$7$F$$$J$$(B&version;$B$G%i%Y%kIU$1$7$?J8=q$r<u$1<h$C$?$H$-!$(B&error;$B$rDLCN$7$F$b$h$$!#(B 1000</p> 1001<p>XML$BJ8=qFb$N(B&markup;$B$N5!G=$O!$5-219=B$5Z$SO@M}9=B$$r5-=R$9$k$3$H!$JB$S$KB0@-5Z$SB0@-CM$NBP$rO@M}9=B$$K4XO"$E$1$k$3$H$K$"$k!#(BXML$B$O!$O@M}9=B$$K$D$$$F$N@)Ls>r7o$rDj5A$9$k$?$a!$5Z$S$"$i$+$8$aDj5A$5$l$?5-21C10L$r;HMQ$G$-$k$?$a$N5!9=$H$7$F!$(B<termref def="dt-doctype">$BJ8=q7?@k8@(B</termref>$B$rDs6!$9$k!#(B<!-- old 1002The function of the markup in an XML document is to describe its 1003storage and logical structures, and associate attribute-value pairs with the 1004logical structure. 1005XML provides a 1006mechanism, the <termref def="dt-doctype">document type declaration</termref>, 1007to 1008define constraints on that logical structure and to support the use of 1009predefined storage units. --><termdef id="dt-valid" term="Validity">XML$BJ8=q$,(B<term>&valid;</term>$B$H$O!$J8=q7?@k8@$r$b$A!$$=$NJ8=q7?@k8@$K<($9@)Ls>r7o$rK~$?$9$3$H$H$9$k!#(B 1010</termdef></p> 1011<p>$BJ8=q7?@k8@$O!$J8=q$N:G=i$N(B<termref def="dt-element">$BMWAG(B</termref>$B$NA0$K8=$l$J$1$l$P$J$i$J$$!#(B 1012<scrap lang="ebnf" id='xmldoc'> 1013<head>&prolog;</head> 1014<prodgroup pcw2="6" pcw4="17.5" pcw5="9"> 1015<prod id='NT-prolog'><lhs>prolog</lhs> 1016<rhs><nt def='NT-XMLDecl'>XMLDecl</nt>? 1017<nt def='NT-Misc'>Misc</nt>* 1018(<nt def='NT-doctypedecl'>doctypedecl</nt> 1019<nt def='NT-Misc'>Misc</nt>*)?</rhs></prod> 1020<prod id='NT-XMLDecl'><lhs>XMLDecl</lhs> 1021<rhs>&xmlpio; 1022<nt def='NT-VersionInfo'>VersionInfo</nt> 1023<nt def='NT-EncodingDecl'>EncodingDecl</nt>? 1024<nt def='NT-SDDecl'>SDDecl</nt>? 1025<nt def="NT-S">S</nt>? 1026&pic;</rhs> 1027</prod> 1028<prod id='NT-VersionInfo'><lhs>VersionInfo</lhs> 1029<rhs><nt def="NT-S">S</nt> 'version' <nt def='NT-Eq'>Eq</nt> 1030('"<nt def="NT-VersionNum">VersionNum</nt>"' 1031| "'<nt def="NT-VersionNum">VersionNum</nt>'")</rhs> 1032</prod> 1033<prod id='NT-Eq'><lhs>Eq</lhs> 1034<rhs><nt def='NT-S'>S</nt>? '=' <nt def='NT-S'>S</nt>?</rhs></prod> 1035<prod id="NT-VersionNum"> 1036<lhs>VersionNum</lhs> 1037<rhs>([a-zA-Z0-9_.:] | '-')+</rhs> 1038</prod> 1039<prod id='NT-Misc'><lhs>Misc</lhs> 1040<rhs><nt def='NT-Comment'>Comment</nt> | <nt def='NT-PI'>PI</nt> | 1041<nt def='NT-S'>S</nt></rhs></prod> 1042</prodgroup> 1043</scrap></p> 1044 1045<p> 1046$BNc$($P!$<!$K<($940A4$J(BXML$BJ8=q$O!$(B<termref def="dt-wellformed">&well-formed;</termref>$B$G$"$k$,(B<termref def="dt-valid">&valid;</termref>$B$G$O$J$$!#(B 1047<eg><![CDATA[<?xml version="1.0"?> 1048<greeting>Hello, world!</greeting> 1049]]></eg> 1050$B<!$NJ8=q$bF1MM$H$9$k!#(B 1051<eg><![CDATA[<greeting>Hello, world!</greeting> 1052]]></eg> 1053</p> 1054<p><termdef id="dt-doctype" term="Document Type Declaration"> 1055XML$B$N(B<term>$BJ8=q7?@k8@(B</term>$B$O!$$"$kJ8=q%/%i%9$N$?$a$NJ8K!$rDs6!$9$k(B<termref def='dt-markupdecl'>&markup;$B@k8@(B</termref>$B$r4^$`$+!$Kt$O;2>H$9$k!#$3$NJ8K!$r!$J8=q7?Dj5AKt$O(B<term>DTD</term>$B$H$$$&!#J8=q7?@k8@$O!$(B&markup;$B@k8@$r4^$s$@30It(B⊂($BFCJL$J<oN`$N(B<termref def='dt-extent'>$B30It<BBN(B</termref>)$B$r;2>H$G$-!$Kt$OFbIt(B⊂$B$KD>@\(B&markup;$B@k8@$r4^$`$3$H$b$G$-$k!#$5$i$K!$$=$NN>J}$b2DG=$H$9$k!#$"$kJ8=q$N(BDTD$B$O!$N>J}$N(B⊂$B$r$^$H$a$?$b$N$H$7$F9=@.$9$k!#(B</termdef> 1056</p> 1057<p><termdef id="dt-markupdecl" term="markup declaration"> 1058<term>&markup;$B@k8@(B</term>$B$O!$(B<termref def="dt-eldecl">$BMWAG7?@k8@(B</termref>$B!$(B <termref def="dt-attdecl">$BB0@-%j%9%H@k8@(B</termref>$B!$(B<termref def="dt-entdecl">$B<BBN@k8@(B</termref>$BKt$O(B<termref def="dt-notdecl">$B5-K!@k8@(B</termref>$B$H$9$k!#(B</termdef>$B<!$K<($9(B&well-formed;$B@)Ls5Z$S(B&validity;$B@)Ls$K5,Dj$9$k$,!$$3$l$i$N@k8@$O!$(B<termref def='dt-PE'>¶meter;$B<BBN(B</termref>$BFb$KA4BNKt$O0lIt$,4^$^$l$F$b$h$$!#>\$7$$5,Dj$O!$(B<titleref xml-link="simple" href="sec-physical-struct">$BJ*M}9=B$(B</titleref>$B$K4X$9$k5,Dj$r;2>H$N$3$H!#(B</p> 1059<scrap lang="ebnf" id='dtd'> 1060<head>$BJ8=q7?Dj5A(B</head> 1061<prodgroup pcw2="6" pcw4="17.5" pcw5="9"> 1062<prod id='NT-doctypedecl'><lhs>doctypedecl</lhs> 1063<rhs>'<!DOCTYPE' <nt def='NT-S'>S</nt> 1064<nt def='NT-Name'>Name</nt> (<nt def='NT-S'>S</nt> 1065<nt def='NT-ExternalID'>ExternalID</nt>)? 1066<nt def='NT-S'>S</nt>? ('[' 1067(<nt def='NT-markupdecl'>markupdecl</nt> 1068| <nt def='NT-PEReference'>PEReference</nt> 1069| <nt def='NT-S'>S</nt>)* 1070']' 1071<nt def='NT-S'>S</nt>?)? '>'</rhs> 1072<vc def="vc-roottype"/> 1073<!--<vc def="vc-nonnullDTD"/>--> 1074</prod> 1075<!-- 1076<prod id='NT-markupdecls'><lhs>markupdecls</lhs> 1077<rhs> 1078(<nt def='NT-S'>S</nt>? 1079<nt def='NT-markupdecl'>markupdecl</nt> 1080<nt def='NT-S'>S</nt>?)* 1081</rhs></prod> 1082--> 1083<prod id='NT-markupdecl'><lhs>markupdecl</lhs> 1084<rhs><nt def='NT-elementdecl'>elementdecl</nt> 1085| <nt def='NT-AttlistDecl'>AttlistDecl</nt> 1086| <nt def='NT-EntityDecl'>EntityDecl</nt> 1087| <nt def='NT-NotationDecl'>NotationDecl</nt> 1088| <nt def='NT-PI'>PI</nt> 1089| <nt def='NT-Comment'>Comment</nt> 1090<!--| <nt def='NT-InternalPERef'>InternalPERef</nt> --></rhs> 1091<vc def='vc-PEinMarkupDecl'/> 1092<wfc def="wfc-PEinInternalSubset"/> 1093</prod> 1094<!-- 1095<prod id="NT-InternalPERef"><lhs>InternalPERef</lhs> 1096<rhs><nt def="NT-PEReference">PEReference</nt></rhs> 1097<wfc def="wfc-integraldec"/> 1098</prod> 1099--> 1100</prodgroup> 1101</scrap> 1102<vcnote id="vc-roottype"> 1103<head>&root;$BMWAG7?(B</head> 1104<p> 1105$BJ8=q7?@k8@$K$*$1$k(B<nt def='NT-Name'>Name</nt>$B$O!$(B&root;$BMWAG$N7?$H(B&match;$B$7$J$1$l$P$J$i$J$$!#(B 1106</p> 1107</vcnote> 1108<!-- 1109<vcnote id="vc-nonnullDTD"> 1110<head>Non-null DTD</head> 1111<p> 1112The internal and external subsets of the DTD must not both 1113be empty. 1114</p> 1115</vcnote> 1116--> 1117<vcnote id='vc-PEinMarkupDecl'> 1118<head>$B@k8@5Z$S(B¶meter;$B<BBN$,87L)$KF~$l;R$r$J$9$3$H(B</head> 1119<p>¶meter;$B<BBN(B<termref def='dt-repltext'>$B$N(B&replacement-text;</termref>$B$O!$(B&markup;$B@k8@Fb$K$*$$$F!$87L)$KF~$l;R$K$J$C$F$$$J$1$l$P$J$i$J$$!#$D$^$j!$(B&markup;$B@k8@(B(<nt def='NT-markupdecl'>markupdecl</nt>)$B$N:G=iKt$O:G8e$NJ8;z$,!$(B<termref def='dt-PERef'>¶meter;$B<BBN;2>H(B</termref>$B$NBP>]$H$J$k(B&replacement-text;$B$K4^$^$l$l$P!$N>J}$H$bF1$8(B&replacement-text;$B$K4^$^$l$J$1$l$P$J$i$J$$!#(B</p> 1120</vcnote> 1121<wfcnote id="wfc-PEinInternalSubset"> 1122<head>$BFbIt(B⊂$BFb$N(B¶meter;$B<BBN(B</head> 1123<p>DTD$B$NFbIt(B⊂$B$G$O!$(B<termref def='dt-PERef'>¶meter;$B<BBN;2>H(B</termref>$B$O!$(B&markup;$B@k8@$,=P8=2DG=$J>l=j$@$1$K=P8=$G$-$k!#(B&markup;$B@k8@Fb$K$O=P8=$G$-$J$$(B($B$3$N@)Ls$O!$30It(B¶meter;$B<BBNKt$O30It(B⊂$B$G$N;2>H$K$OE,MQ$7$J$$!#(B)$B!#(B 1124</p> 1125</wfcnote> 1126<p> 1127$BFbIt(B⊂$B$N$H$-$HF1MM$K!$30It(B⊂$B5Z$S(BDTD$B$K$*$$$F;2>H$9$kG$0U$N30It(B¶meter;$B<BBN$O!$Hs=*C<5-9f(B<nt def="NT-markupdecl">markupdecl</nt>$B$K$h$C$F5v$5$l$k7?$N!$0lO"$N40A4$J(B&markup;$B@k8@$G9=@.$5$l$J$1$l$P$J$i$J$$!#(B&markup;$B@k8@$N4V$K$O!$6uGrKt$O(B<termref def="dt-PERef">¶meter;$B<BBN;2>H(B</termref>$B$rCV$$$F$b$h$$!#$7$+$7!$30It(B⊂$BKt$O30It(B¶meter;$B<BBN$NFbMF$N0lIt$O!$(B<termref def="dt-cond-section">$B>r7oIU$-%;%/%7%g%s(B</termref>$B$r;HMQ$7$FL5;k$7$F$b$h$$!#FbIt%5%V%;%C%H$G$O!$$3$l$O5v$5$l$J$$!#(B 1128<!--In the external subset, however, parameter-entity references can 1129be used to replace constructs prefixed by "<code>%</code>" in a production of 1130the grammar, and <termref def="dt-cond-section">conditional sections</termref> 1131may occur. 1132In the internal subset, by contrast, conditional sections may not 1133occur and the only parameter-entity references 1134allowed are those which match the non-terminal 1135<nt def="NT-InternalPERef">InternalPERef</nt> 1136within the rule for <nt def="NT-doctypedecl">markupdecl</nt>. 1137--> 1138<scrap id="ext-Subset"> 1139<head>$B30It(B⊂</head> 1140<prodgroup pcw2="6" pcw4="17.5" pcw5="9"> 1141<prod id='NT-extSubset'><lhs>extSubset</lhs> 1142<rhs>( 1143<nt def='NT-markupdecl'>markupdecl</nt> 1144| <nt def='NT-conditionalSect'>conditionalSect</nt> 1145| <nt def='NT-PEReference'>PEReference</nt> 1146| <nt def='NT-S'>S</nt> 1147)*</rhs> 1148</prod> 1149</prodgroup> 1150</scrap></p> 1151<p>$B30It(B⊂$B5Z$S30It(B¶meter;$B<BBN$O!$$=$NFb$G$O!$(B¶meter;$B<BBN$,(B&markup;$B@k8@$N(B<emph>$B4V(B</emph>$B$@$1$G$J$/!$(B&markup;$B@k8@$N(B<emph>$BFb(B</emph>$B$G$bG'<1$5$l$k!$$H$$$&E@$G$bFbIt(B⊂$B$H$O0[$J$k!#(B 1152</p> 1153<p>$BJ8=q7?@k8@IU$-$N(BXML$BJ8=q$NNc$r!$<!$K<($9!#(B 1154<eg><![CDATA[<?xml version="1.0"?> 1155<!DOCTYPE greeting SYSTEM "hello.dtd"> 1156<greeting>Hello, world!</greeting> 1157]]></eg> 1158<termref def="dt-sysid">$B%7%9%F%`(B&identifier;</termref> "<code>hello.dtd</code>"$B$,!$J8=q$N(BDTD$B$N(BURI$B$H$J$k!#(B</p> 1159<p>$B<!$NNc$N$H$*$j!$@k8@$r6I=jE*$KM?$($k$3$H$b$G$-$k!#(B 1160<eg><![CDATA[<?xml version="1.0" encoding="UTF-8" ?> 1161<!DOCTYPE greeting [ 1162 <!ELEMENT greeting (#PCDATA)> 1163]> 1164<greeting>Hello, world!</greeting> 1165]]></eg> 1166$B30It(B⊂$B5Z$SFbIt(B⊂$B$NN>J}$r;HMQ$9$k$H$-$O!$FbIt(B⊂$B$,30It(B⊂$B$h$j@h$K=P8=$7$?$H8+$J$9!#(B<!--* 'is considered to'? boo. whazzat mean? -->$B$3$l$O!$FbIt(B⊂$B$N<BBN5Z$SB0@-%j%9%H@k8@$,!$30It(B⊂$B$N<BBN5Z$SB0@-%j%9%H@k8@$h$jM%@h$9$k$H$$$&8z2L$r$b$?$i$9!#(B 1167</p> 1168</div2> 1169 1170<div2 id='sec-rmd'> 1171<head>&standalone;$BJ8=q@k8@(B</head> 1172<p><termref def="dt-xml-proc">XML&processor;</termref>$B$O!$(B&application;$B$KJ8=q$NFbMF$rEO$9$,!$(B&markup;$B@k8@$O!$$3$NFbMF$K1F6A$rM?$($k$3$H$,$"$k!#B0@-$N(B&default-value;$B5Z$S<BBN@k8@$r$=$NNc$H$9$k!#(BXML$B@k8@$N0lItJ,$H$7$F=P8=$G$-$k(B&standalone;$BJ8=q@k8@$O!$J8=q$,!$$=$N(B&markup;$B@k8@$NB8:_$K$h$C$F1F6A$5$l$J$$$3$H$r;X$7<($9!JIaDL!$$=$N(B&markup;$B@k8@$,B8:_$7$J$$$?$a$K!$$3$l$,$$$($k!#!K!#(B 1173<scrap lang="ebnf" id='fulldtd'> 1174<head>&standalone;$BJ8=q@k8@(B</head> 1175<prodgroup pcw2="4" pcw4="19.5" pcw5="9"> 1176<prod id='NT-SDDecl'><lhs>SDDecl</lhs> 1177<rhs> 1178<nt def="NT-S">S</nt> 1179'standalone' <nt def='NT-Eq'>Eq</nt> "'" ('yes' | 'no') "'" 1180</rhs> 1181<rhs> 1182| <nt def="NT-S">S</nt> 1183'standalone' <nt def='NT-Eq'>Eq</nt> '"' ('yes' | 'no') '"' 1184</rhs><vc def='vc-check-rmd'/></prod> 1185</prodgroup> 1186</scrap></p> 1187<p>&standalone;$BJ8=q@k8@$K$*$$$F$O(B, "<code>yes</code>"$B$NCM$O!$(B<termref def='dt-docent'>$BJ8=q<BBN(B</termref>$B$N30It$K!J(BDTD$B$N30It(B⊂$BFb$K!$Kt$OFbIt(B⊂$B$+$i;2>H$5$l$k30It%Q%i%a%?<BBNFb$K!K!$(BXML&processor;$B$+$i(B&application;$B$X$HEO$5$l$k>pJs$K1F6A$9$k(B&markup;$B@k8@$,B8:_$7$J$$$3$H$r0UL#$9$k!#(B"<code>no</code>"$B$NCM$O!$$=$N30It(B&markup;$B@k8@$,B8:_$9$k$+!$Kt$OB8:_$9$k2DG=@-$,$"$k$3$H$r0UL#$9$k!#(B&standalone;$BJ8=q@k8@$O!$$=$N(B<emph>$B@k8@(B</emph>$B$,J8=q30It$KB8:_$9$k$+$I$&$+$r<($9$@$1$KCm0U$9$k$3$H!#30It<BBN$X$N;2>H$,J8=qFb$KB8:_$7$F$$$F$b!$$=$N<BBN$,FbItE*$K@k8@$5$l$F$$$k$H$-$O!$J8=q$N(B&standalone;$B$N>uBV$K$O1F6A$rM?$($J$$!#(B</p> 1188 1189<p>$B30It$K(B&markup;$B@k8@$,B8:_$7$J$1$l$P!$(B&standalone;$BJ8=q@k8@$O0UL#$r$b$?$J$$!#30It$K(B&markup;$B@k8@$,B8:_$7!$(B&standalone;$BJ8=q@k8@$,B8:_$7$J$$>l9g$O!$(B<code>"no"</code> $B$NCM$N@_Dj$r2>Dj$9$k!#(B</p> 1190<p>XML$BJ8=q$G(B <code>standalone="no"</code> $B$,@_Dj$5$l$F$$$k$b$N$O!$$"$k%"%k%4%j%:%`$G(B&standalone;$BJ8=q$KJQ49$G$-!$$3$NJ8=q$O!$%M%C%H%o!<%/G[?.(B&application;$B$K$H$C$FK>$^$7$$$+$b$7$l$J$$!#(B</p> 1191<vcnote id='vc-check-rmd'> 1192<head>&standalone;$BJ8=q@k8@(B</head> 1193<p>&standalone;$BJ8=q@k8@$O!$2?$i$+$N30It(B&markup;$B@k8@$,<!$N$$$:$l$+$r@k8@$7$F$$$k$H$-$O!$CM(B "<code>no</code>" $B$r<h$i$J$1$l$P$J$i$J$$!#(B 1194<ulist> 1195<item><p>a) <termref def="dt-default">&default;</termref>$BCMIU$-$NB0@-$G$"$C$F!$$3$NB0@-$,E,MQ$5$l$kMWAG$,!$B0@-CM$r;XDj$;$:$KJ8=qFb$K8=$l$k$b$N!#(B</p></item> 1196<item><p>b) &magicents;$B0J30$N<BBN$G$"$C$F!$$=$N<BBN$KBP$9$k(B<termref def="dt-entref">$B;2>H(B</termref>$B$,J8=qFb$K=P8=$9$k$b$N!#(B</p> 1197</item> 1198<item><p>c) $BCM$,(B<titleref href='AVNormalize'>$B@55,2=(B</titleref>$B$NBP>]$H$J$kB0@-$G$"$C$F!$@55,2=$N7k2L$H$7$FJQ2=$9$kCM$,J8=qFb$GB0@-$K;XDj$5$l$k$b$N!#(B</p></item> 1199<item> 1200<p>d) <termref def="dt-elemcontent">$BMWAGFbMF(B</termref>$B$r$b$DMWAG7?$G$"$C$F!$6uGr$,$=$NMWAG7?$N$$$:$l$+$N%$%s%9%?%s%9Fb$KD>@\8=$l$k$b$N!#(B 1201</p></item> 1202</ulist> 1203</p> 1204</vcnote> 1205<p>&standalone;$BJ8=q@k8@IU$-$N(BXML$B@k8@$NNc$r!$<!$K<($9!#(B 1206<eg><?xml version="&XML.version;" standalone='yes'?></eg></p> 1207</div2> 1208<div2 id='sec-white-space'> 1209<head>$B6uGr$N<h07$$(B</head> 1210<p>XML$BJ8=q$rJT=8$9$k$H$-$O!$(B&markup;$B$rL\N)$?$;FI$_$d$9$/$9$k$?$a$K!$!H6uGr!I(B(&space;$B!$%?%V5Z$S6uGr9T!#$3$N(B&TR-or-Rec;$B$G$O!$Hs=*C<5-9f$N(B<nt def='NT-S'>S</nt>$B$GI=$9(B)$B$r;H$&$HJXMx$J$3$H$,B?$$!#$=$N6uGr$O!$G[I[$9$k(B&version;$B$NJ8=q$N0lIt$H$7$F4^$a$k$3$H$r0U?^$7$J$$$N$rIaDL$H$9$k!#$7$+$7!$!H0UL#$N$"$k!I6uGr$G$"$C$F!$G[I[$9$k(B&version;$B$K;D$5$J$1$l$P$J$i$J$$$b$N$bB?$$!#Nc$($P!$;m5Z$S%=!<%9%3!<%I$K$*$1$k6uGr$,$"$k!#(B</p> 1211<p><termref def='dt-xml-proc'>XML&processor;</termref>$B$O!$J8=qFb$N(B&markup;$B0J30$N$9$Y$F$NJ8;z$r!$$=$N$^$^JQ99$;$:$K(B&application;$B$KEO$5$J$1$l$P$J$i$J$$!#(B<termref def='dt-validating'>&validating;XML&processor;</termref>$B$O!$(B<termref def="dt-elemcontent">$BMWAGFbMF(B</termref>$B$NCf$N6uGr$rB>$NHs(B&markup;$BJ8;z$+$i6hJL$7!$(B&application;$BB&$KMWAGFbMF$NCf$N6uGr$,=EMW$G$J$$$H$$$&$3$H$rEA$($J$1$l$P$J$i$J$$!#(B</p> 1212<p> 1213"<code>xml:space</code>"$B$H$$$&FCJL$J(B<termref def='dt-attr'>$BB0@-(B</termref>$B$rJ8=q$KA^F~$9$k$3$H$K$h$C$F!$6uGr$r=EMW$H$9$k0U?^$r<($7$F$b$h$$!#$3$NB0@-$rE,MQ$9$kMWAG$K8=$l$k6uGr$r!$%"%W%j%1!<%7%g%s$,=EMW$J$b$N$H$7$F07$&$3$H$rMW5a$9$k!$$H$$$&0U?^$r<($9!#(B</p> 1214<p>&valid;$B$JJ8=q$G$O!$$3$NB0@-$r;HMQ$9$k>l9g$O!$B>$NB0@-$HF1$8$h$&$K(B<termref def="dt-attdecl">$B@k8@(B</termref>$B$7$J$1$l$P$J$i$J$$!#@k8@$9$k$H$-$O!$<h$jF@$kCM$r(B"<code>default</code>"$B5Z$S(B "<code>preserve</code>"$B$@$1$H$9$k(B<termref def='dt-enumerated'>$BNs5s7?(B</termref>$B$G$J$1$l$P$J$i$J$$!#(B 1215</p> 1216<p>$BCM(B"<code>default</code>"$B$O!$(B&application;$B$N(B&default;$B$N6uGr=hM}%b!<%I$r!$$=$NMWAG$KE,MQ2DG=$H$9$k$3$H$r0UL#$9$k!#CM(B"<code>preserve</code>"$B$O!$(B&application;$B$,$9$Y$F$N6uGr$rJ]B8$9$k$3$H$r0UL#$9$k!#$3$N@k8@$N0U?^$O!$(B"<code>xml:space</code>" $BB0@-$NJL$N;XDj$G>e=q$-$7$J$$8B$j!$MWAG$NFbMF$K8=$l$k$9$Y$F$NMWAG$KE,MQ$9$k$H2r<a$9$k!#(B</p> 1217<p>$BJ8=q$N(B<termref def='dt-root'>&root;$BMWAG(B</termref>$B$K$D$$$F$O!$$3$NB0@-$NCM$r;XDj$9$k$+!$Kt$O$3$NB0@-$N(B&default-value;$B$,$"$k>l9g$r=|$$$F$O!$(B&application;$B$K$h$k6uGr$N<h07$$$K$D$$$F!$$$$+$J$k0U?^$b<($5$J$$$H2r<a$9$k!#(B</p> 1218<p>$BNc$r<!$K<($9!#(B 1219<eg><![CDATA[ <!ATTLIST poem xml:space (default|preserve) 'preserve'>]]></eg> 1220</p> 1221</div2> 1222<div2 id='sec-line-ends'> 1223<head>$B9TKv$N<h07$$(B</head> 1224<p>XML$B$N(B<termref def='dt-parsedent'>$B9=J8(B&parsed-entity;</termref>$B$O!$DL>o%3%s%T%e!<%?$N%U%!%$%kFb$KJ]B8$5$l!$JT=8$NJX59$N$?$a$KJ#?t$N9T$KJ,$1$k$3$H$,B?$$!#$3$l$i$N9T$O!$IaDL$O!$(B<code>CR</code> (#xD)$B%3!<%I5Z$S(B <code>LF</code> (#xA)$B%3!<%I$N2?$i$+$NAH9g$;$K$h$C$FJ,$1$i$l$k!#(B</p> 1225<p><termref def='dt-app'>&application;</termref>$B$N=hM}$r4JC1$K$9$k$?$a!$30It(B&parsed-entity;$BKt$OFbIt(B&parsed-entity;$B$N(B&literal;$B<BBNCM$,!$(B"<code>#xD#xA</code>" $B$N#2J8;z$NO"B3$H$9$k(B&literal;$BKt$O(B<code>#xD</code>$B$NC1FH$N(B&literal;$B$r4^$`>l9g$K!$(B<termref def='dt-xml-proc'>XML&processor;</termref>$B$O!$(B&application;$B$KC10l$NJ8;z(B<code>#xA</code>$B$@$1$rEO$5$J$1$l$P$J$i$J$$(B($B$3$N=hM}$O!$F~NOFb$KB8:_$9$k2~9T%3!<%I$r9=J82r@O$NA0$K@55,2=$9$k$3$H$K$h$C$F!$MF0W$K<B8=$G$-$k!#(B)$B!#(B</p> 1226</div2> 1227<div2 id='sec-lang-tag'> 1228<head>&language-identification;</head> 1229<p>$BJ8=q=hM}$K$*$$$F$O!$$=$NJ8=q$NCf?H$,$I$s$J<+A38@8lKt$O7A<08@8l$G=q$+$l$F$$$k$+L@<($9$k$3$H$,!$Lr$KN)$D$3$H$,B?$$!#(B<!--$B$3$3$G;HMQ$9$k!H8@8l!I$H$$$&8@MU$N0UL#$O!$(B"Español" $B5Z$S(B"EBNF"$B$NAPJ}$GNc<($5$l$k0UL#$H$9$k!#(B--><!-- x00F1: spanish's small ntilde--></p> 1230<!--; $B$3$N>pJs$O!JNc$r$"$2$l$P!KJ8=q$NJ8;z$NI=<(!$JB$S$K>pJsCj=P$N$?$a$N8l44!&7ABVAG2r@O5Z$S%F%-%9%H%V%m%C%/$N@07A$K1F6A$r5Z$\$92DG=@-$,$"$k!#(B--> 1231<p>XML$BJ8=qFb$NMWAG$N$b$DFbMFKt$OB0@-CM$K$*$$$F;HMQ$9$k(B<!--$B<+A3Kt$O7A<0(B-->$B8@8l$r;XDj$9$k$?$a$K!$(B"<code>xml:lang</code>" $B$H$$$&L>A0$NFCJL$J(B<termref def="dt-attr">$BB0@-(B</termref>$B$r!$J8=qFb$KA^F~$7$F$b$h$$!#(B 1232<!--; $B$3$NB0@-$O(BXML$B5,Dj$N0lIt$H$7$F!$J#?t$N(BXML&application;$B$NAj8_1?MQ@-$r9b$a$k$?$a$KDj5A$9$k!#(B--> 1233$BB0@-$NCM$O!$(B<bibref ref="RFC1766"/>$B!H(BRFC1766$B!'(B&language-identification;$B$N$?$a$N%?%0!I$K$h$C$F5,Dj$5$l$k(B&language-identification;$B%3!<%I$K=>$&!#(B 1234<scrap lang='ebnf'> 1235<head>&language-identification;</head> 1236<prod id='NT-LanguageID'><lhs>LanguageID</lhs> 1237<rhs><nt def='NT-Langcode'>Langcode</nt> 1238('-' <nt def='NT-Subcode'>Subcode</nt>)*</rhs></prod> 1239<prod id='NT-Langcode'><lhs>Langcode</lhs> 1240<rhs><nt def='NT-ISO639Code'>ISO639Code</nt> | 1241<nt def='NT-IanaCode'>IanaCode</nt> | 1242<nt def='NT-UserCode'>UserCode</nt></rhs> 1243</prod> 1244<prod id='NT-ISO639Code'><lhs>ISO639Code</lhs> 1245<rhs>([a-z] | [A-Z]) ([a-z] | [A-Z])</rhs></prod> 1246<prod id='NT-IanaCode'><lhs>IanaCode</lhs> 1247<rhs>('i' | 'I') '-' ([a-z] | [A-Z])+</rhs></prod> 1248<prod id='NT-UserCode'><lhs>UserCode</lhs> 1249<rhs>('x' | 'X') '-' ([a-z] | [A-Z])+</rhs></prod> 1250<prod id='NT-Subcode'><lhs>Subcode</lhs> 1251<rhs>([a-z] | [A-Z])+</rhs></prod> 1252</scrap> 1253<nt def='NT-Langcode'>Langcode</nt>$B$O!$<!$N$I$l$G$b$h$$!#(B 1254<ulist> 1255<item><p>a) <bibref ref="ISO639"/>$B!H8@8l$NL>A0I=8=$N$?$a$N%3!<%I!I$G5,Dj$5$l$k(B2$BJ8;z$N(B&language-code;</p></item> 1256<item><p>b) Internet Assigned Numbers Authority (IANA)$B$GEPO?$5$l$F$$$k(B&language-code;$B!#$3$l$O!$@hF,$,(B "<code>i-</code>" ($BKt$O(B"<code>I-</code>")$B$G;O$^$k!#(B</p></item> 1257<item><p>c) &user;$B$K$h$C$FDj$a$i$l$?(B&language-code;$B!$Kt$O;dE*$J;HMQ$N$?$a$KJ#?t$NCDBN4V$,<h$j7h$a$?%3!<%I!#$3$l$i$O!$:#8e(BIANA$B$K$*$$$FI8=`2=Kt$OEPO?$5$l$k%3!<%I$H$N6%9g$rHr$1$k$?$a$K!$@hF,$r(B"<code>x-</code>" $BKt$O(B "<code>X-</code>" $B$G;O$a$k!#(B</p></item> 1258</ulist></p> 1259<p><nt def='NT-Subcode'>Subcode</nt>$B$O!$J#?t2s;H$C$F$b$h$$!#:G=i$N%5%V%3!<%I$,B8:_$7!$$=$NFbMF$,Fs$D$NJ8;z$+$i@.$k$H$-$O!$(B<bibref ref="ISO3166"/>ISO3166$B$N!H9qL>$rI=$9%3!<%I(B($B9q%3!<%I(B)$B!I$G$J$1$l$P$J$i$J$$!#:G=i$N%5%V%3!<%I$,(B3$BJ8;z0J>e$+$i@.$k$H$-$O!$(B<nt def='NT-Langcode'>Langcode</nt>$B$N@hF,$,!$(B"<code>x-</code>" $BKt$O(B "<code>X-</code>"$B$G;O$^$i$J$$8B$j!$;XDj$7$?8@8l$KBP$9$k%5%V%3!<%I$H$7!$(BIANA$B$KEPO?$5$l$?$b$N$G$J$1$l$P$J$i$J$$!#(B</p> 1260<p>&language-code;$B$O!$>.J8;z$G$NI=5-$r!$(B&country-code;$B$O!$(B($BB8:_$9$k$J$i$P(B)$BBgJ8;z$G$NI=5-$r479T$H$9$k!#$7$+$7!$(BXML$BJ8=qFb$K$*$1$kB>$NL>A0$H$O0[$J$j!$$3$l$i$NCM$K$D$$$F$O!$BgJ8;z5Z$S>.J8;z$N6hJL$r$7$J$$$3$H$KCm0U$9$k$3$H!#(B</p> 1261<p>$BNc$r<!$K<($9!#(B 1262<eg><![CDATA[<p xml:lang="en">The quick brown fox jumps over the lazy dog.</p> 1263<p xml:lang="en-GB">What colour is it?</p> 1264<p xml:lang="en-US">What color is it?</p> 1265<sp who="Faust" desc='leise' xml:lang="de"> 1266 <l>Habe nun, ach! Philosophie,</l> 1267 <l>Juristerei, und Medizin</l> 1268 <l>und leider auch Theologie</l> 1269 <l>]]><!-- x00DF german's es-zet; x00FC german's u-umlaut -->durchaus studiert mit heißem Bemüh'n.<![CDATA[</l> 1270 </sp>]]></eg></p> 1271<!--<p>xml:lang $B$NCM$O!$MWAG$NFbMF5Z$S(B($BB0@-$N(B&default-value;$B$GDj$a$J$$8B$j(B)$B%U%j!<%F%-%9%H(B(CDATA)$B$NCM$r$b$D$=$NMWAG$X$N$9$Y$F$NB0@-$NCM$K$D$$$F!$$=$NN>J}$KE,MQ$9$k!#(B--> 1272<p><code>xml:lang</code>$B$G@k8@$9$k0U?^$O!$(B<code>xml:lang</code>$B$NJL$N;XDj$G>e=q$7$J$$8B$j!$;XDj$7$?MWAG$NFbMF$K4^$`$9$Y$F$NMWAG$KE,MQ$9$k!#(B</p> 1273<!--$B$"$kMWAG$K$*$1$k(B xml:lang $BB0@-$NCM$,Dj$a$i$l$F$*$i$:!$(BDTD$B$K$*$$$F$=$N(B&default-value;$B$,Dj$a$i$l$F$$$J$$>l9g!$$=$NMWAG$N(Bxml:lang $BB0@-$NCM$O!$?FMWAG$G$NCM$,B8:_$9$k>l9g$O!$$=$l$r0z$-7Q$0!#(B $B<!$NNc$K$*$1$kFs$D$N(B<term>$B$H$$$&L>A0$N@lLgMQ8l$rI=$9MWAG$O!$(Bxml:lang$B$NCM$K4X$7$F$O!$<B:]>e!$F1$8CM$r$b$D!#(B 1274 1275 <p xml:lang="en">Here the keywords are 1276 <term xml:lang="en">shift</term> and 1277 <term>reduce</term>. ...</p> 1278 1279XML&processor;$B$G$O$J$/(B&application;$B$,!$$3$NB0@-CM$N7Q>5$K$D$$$F@UG$$r$b$D!#(B 1280--> 1281<p> 1282&valid;$B$JJ8=q$K$*$$$F$O!$$3$N(B&TR-or-Rec;$B$NB>$N>l=j$G5,Dj$9$k$H$*$j!$$3$NB0@-$rI,$:@k8@$7$J$1$l$P$J$i$J$$!#DL>o!$@k8@$O!$<!$N7A$H$9$k!#(B 1283<eg>xml:lang NMTOKEN #IMPLIED</eg> 1284$BI,MW$J$i$P!$FCDj$N(B&default-value;$B$rM?$($F$b$h$$!#1Q8l$rJl8l$H$9$k3X@8MQ$N%U%i%s%98l$N;m=8$G$O!$@bL@5Z$SCm$r1Q8l$G5-=R$9$l$P!$(Bxml:lang $BB0@-$r<!$N$H$*$j$K@k8@$9$k$3$H$H$J$k!#(B 1285<eg><![CDATA[ <!ATTLIST poem xml:lang NMTOKEN 'fr'> 1286 <!ATTLIST gloss xml:lang NMTOKEN 'en'> 1287 <!ATTLIST note xml:lang NMTOKEN 'en'>]]></eg> 1288</p> 1289<!-- 1290DTD$B$N@_7W<T$O!$%9%/%j%W%H$r8@8l(B($B5Z$S$=$NGI@8BN(B)$B$KJq@]$7$F07$&$N$G$O$J$/!$%9%/%j%W%H5Z$S8@8l$rF1<!85$G07$&$N$,E,Ev$J>l9g!$8@8lB0@-$HF1MM$K%9%/%j%W%HB0@-$,B8:_$9$l$PM-MQ$@$H;W$&$+$b$7$l$J$$!#%j%s%/MWAG$K$*$$$F!$;2>H$5$l$?Kt$O%j%s%/$5$l$?%j%=!<%9$K$*$1$k(B($B<gMW$J(B)$B8@8l(B($B>l9g$K$h$C$F$OJ#?t(B)$B$rI=$9MWAG$rDj5A$9$k$N$bK>$^$7$$!#$7$+$7!$$3$l$i$N(B&application;$B$O!$$3$N(B&TR-or-Rec;$B$,5,Dj$9$kHO0O30$H$9$k!#(B--> 1291</div2> 1292</div1> 1293<!-- &Elements; --> 1294 1295<div1 id='sec-logical-struct'> 1296<head>$BO@M}9=B$(B</head> 1297 1298<p><termdef id="dt-element" term="Element">$B$$$+$J$k(B<termref def="dt-xml-doc">XML$BJ8=q(B</termref>$B$b!$0l$D0J>e$N(B<term>$BMWAG(B</term>$B$r4^$`!#MWAG$N6-3&$O(B, <termref def="dt-stag">$B3+;O%?%0(B</termref>$B5Z$S(B<termref def="dt-etag">$B=*N;%?%0(B</termref>$B$K$h$C$F6h@Z$k!#MWAG$,(B<termref def="dt-empty">$B6u(B</termref>$BMWAG$N$H$-$O!$(B<termref def="dt-eetag">$B6uMWAG%?%0(B</termref>$B$G<($9!#3F!9$NMWAG$O!$7?$r$b$D!#MWAG7?$OL>A0(B($B6&DL(B&identifier;(generic identifier)$BKt$O(BGI$B$H8F$V$3$H$,$"$k!#(B)$B$K$h$C$F(B&identified;$B!#MWAG$O!$$$$/$D$+$NB0@-$r$b$D$3$H$,$G$-$k!#(B</termdef>$BB0@-$O!$(B<termref def="dt-attrname">$BL>A0(B</termref>$B5Z$S(B<termref def="dt-attrval">$BCM(B</termref>$B$r$b$D!#(B</p> 1299 1300<scrap lang='ebnf'><head>$BMWAG(B</head> 1301<prod id='NT-element'><lhs>element</lhs> 1302<rhs><nt def='NT-EmptyElemTag'>EmptyElemTag</nt></rhs> 1303<rhs>| <nt def='NT-STag'>STag</nt> <nt def='NT-content'>content</nt> 1304<nt def='NT-ETag'>ETag</nt></rhs><wfc def='GIMatch'/></prod> 1305</scrap> 1306<p>$B$3$N(B&TR-or-Rec;$B$O!$MWAG7?5Z$SB0@-$N0UL#!$;HMQJ}K!!$Kt$O(B($B9=J8$K4X$9$k$3$H$r=|$-(B)$BL>A0$K@)Ls$rM?$($J$$!#$?$@$7!$@hF,$,(B<code>(('X'|'x')('M'|'m')('L'|'l'))</code>$B$K(B&match;$B$9$kL>A0$O!$$3$NHGKt$O:#8e$NHG$N$3$N(B&TR-or-Rec;$B$G$NI8=`2=$N$?$a$KM=Ls$9$k!#(B</p> 1307 1308<wfcnote id='GIMatch'><head>$BMWAG7?$N(B&match;</head> 1309<p>$BMWAG$N=*N;%?%0$N(B<nt def='NT-Name'>$BL>A0(B</nt>$B$O!$$=$NMWAG$N3+;O%?%0$K$*$1$k7?$H(B&match;$B$7$J$1$l$P$J$i$J$$!#(B</p> 1310</wfcnote> 1311 1312<div2 id='sec-starttags'> 1313<head>$B3+;O%?%0!$=*N;%?%05Z$S6uMWAG%?%0(B</head> 1314<p><termdef id="dt-stag" term="Start-Tag">$B6u$G$J$$G$0U$N(BXML$BMWAG$N;O$^$j$O!$(B<term>$B3+;O%?%0(B</term>$B$K$h$C$F(B&markup;$B$9$k!#(B 1315<scrap lang='ebnf'><head>$B3+;O%?%0(B</head> 1316<prodgroup pcw2="6" pcw4="15" pcw5="11.5"> 1317<prod id='NT-STag'><lhs>STag</lhs><rhs>'<' <nt def='NT-Name'>Name</nt> (<nt def='NT-S'>S</nt> <nt def='NT-Attribute'>Attribute</nt>)* <nt def='NT-S'>S</nt>? '>'</rhs><wfc def="uniqattspec"/></prod> 1318<prod id='NT-Attribute'><lhs>Attribute</lhs><rhs><nt def='NT-Name'>Name</nt> <nt def='NT-Eq'>Eq</nt> <nt def='NT-AttValue'>AttValue</nt></rhs><vc def='ValueType'/><wfc def='NoExternalRefs'/><wfc def='CleanAttrVals'/></prod> 1319</prodgroup> 1320</scrap> 1321$B3+;O%?%05Z$S=*N;%?%0Fb$N(B<nt def='NT-Name'>Name</nt>$B$O!$MWAG$N(B<term>$B7?(B</term>$B$rI=$o$9!#(B</termdef><termdef id="dt-attr" term="Attribute"><nt def='NT-Name'>Name</nt>$B5Z$S(B<nt def='NT-AttValue'>AttValue</nt>$B$NBP$rMWAG$N(B<term>$BB0@-;XDj(B</term>$B$H$$$$(B</termdef>$B!$(B<termdef id="dt-attrname" term="Attribute Name">$B8D!9$NBP$K$*$1$k(B<nt def='NT-Name'>Name</nt>$B$O!$(B<term>$BB0@-L>(B</term></termdef>$B5Z$S(B<termdef id="dt-attrval" term="Attribute Value"><nt def='NT-AttValue'>AttValue</nt>$B$NFbMF(B($B6h@Z$j;R(B<code>'</code>$BKt$O(B<code>"</code>$B$N4V$N(B&string;)$B$r(B<term>$BB0@-CM(B</term>$B$H$$$&!#(B</termdef></p> 1322 1323<wfcnote id='uniqattspec'><head>$BB0@-;XDj$N0l0U@-(B</head> 1324<p>$B3+;O%?%0Kt$O6uMWAG%?%0$G$O!$F10l$NB0@-L>$,#2EY0J>e=P8=$7$F$O$J$i$J$$!#(B</p></wfcnote> 1325<vcnote id='ValueType'><head>$BB0@-CM$N7?(B</head> 1326<p>$BB0@-$O@k8@$5$l$F$$$J$1$l$P$J$i$J$$!#B0@-CM$N7?$O!$$=$NB0@-$KBP$7$F@k8@$7$?7?$G$J$1$l$P$J$i$J$$(B($BB0@-$N7?$K$D$$$F$O!$(B<titleref href='AttDecls'>$BB0@-%j%9%H@k8@(B</titleref>$B$K$D$$$F$N5,Dj$r;2>H!#(B)$B!#(B</p></vcnote> 1327<wfcnote id='NoExternalRefs'><head>$B30It<BBN$X$N;2>H$,$J$$$3$H(B</head> 1328<p>$BB0@-CM$K$O!$30It<BBN$X$ND>@\E*Kt$O4V@\E*$J;2>H$r4^$`$3$H$O$G$-$J$$!#(B</p></wfcnote> 1329<wfcnote id='CleanAttrVals'><head>$BB0@-CM$K(B<code><</code>$B$r4^$^$J$$$3$H(B</head> 1330<p>$BB0@-CMFb$GD>@\E*Kt$O4V@\E*$K;2>H$9$k<BBN(B(<code>&lt;</code>$B$r=|$/!#(B)$B$N(B<termref def='dt-repltext'>&replacement-text;</termref>$B$K$O!$(B<code><</code>$B$r4^$s$G$O$J$i$J$$!#(B</p></wfcnote> 1331 1332<p>$B3+;O%?%0$NNc$r!$<!$K<($9!#(B 1333<eg><termdef id="dt-dog" term="dog"></eg></p> 1334<p><termdef id="dt-etag" term="End Tag">$B3+;O%?%0$G;O$^$kMWAG$N=*$o$j$O!$(B<term>$B=*N;%?%0(B</term>$B$G(B&markup;$B$7$J$1$l$P$J$i$J$$!#$3$N=*N;%?%0$O!$BP1~$9$k3+;O%?%0$NMWAG7?$HF1$8L>A0$r$b$D!#(B 1335<scrap lang='ebnf'><head>$B=*N;%?%0(B</head><prodgroup pcw2="6" pcw4="15" pcw5="11.5"><prod id='NT-ETag'><lhs>ETag</lhs><rhs>'</' <nt def='NT-Name'>Name</nt> <nt def='NT-S'>S</nt>? '>'</rhs></prod></prodgroup></scrap></termdef></p> 1336<p>$B=*N;%?%0$NNc$r!$<!$K<($9!#(B 1337<eg></termdef></eg></p> 1338 1339<p><termdef id="dt-content" term="Content">$BMWAG$N3+;O%?%0$H=*N;%?%0$H$N4V$N(B<termref def='dt-text'>$B%F%-%9%H(B</termref>$B$r!$$=$NMWAG$N(B<term>$BFbMF(B</term>$B$H$$$&!#(B 1340<scrap lang='ebnf'><head>$BMWAG$NFbMF(B</head> 1341<prodgroup pcw2="6" pcw4="15" pcw5="11.5"><prod id='NT-content'><lhs>content</lhs><rhs>(<nt def='NT-element'>element</nt> | <nt def='NT-CharData'>CharData</nt> | <nt def='NT-Reference'>Reference</nt> | <nt def='NT-CDSect'>CDSect</nt> | <nt def='NT-PI'>PI</nt> | <nt def='NT-Comment'>Comment</nt>)*</rhs></prod></prodgroup></scrap></termdef></p> 1342 1343<p><termdef id="dt-empty" term="Empty">$BMWAG$,(B<term>$B6u(B</term>$B$N$H$-!$$=$NMWAG$O!$D>8e$K=*N;%?%0$r$b$D3+;O%?%0Kt$O6uMWAG%?%0$GI=8=$7$J$1$l$P$J$i$J$$!#(B</termdef><termdef id="dt-eetag" term="empty-element tag"><term>$B6uMWAG%?%0(B</term>$B$O!$<!$NFCJL$J7A<0$r$H$k!#(B 1344<scrap lang='ebnf'><head>$B6uMWAG$N$?$a$N%?%0(B</head><prodgroup pcw2="6" pcw4="15" pcw5="11.5"><prod id='NT-EmptyElemTag'><lhs>EmptyElemTag</lhs><rhs>'<' <nt def='NT-Name'>Name</nt> (<nt def='NT-S'>S</nt> <nt def='NT-Attribute'>Attribute</nt>)* <nt def='NT-S'>S</nt>? '/>'</rhs><wfc def="uniqattspec"/></prod></prodgroup></scrap></termdef></p> 1345 1346<!-- $BLgGO!'>e$N!H6uMWAG$N$?$a$N%?%0(B(tags for empty elements)$B!I$O!H6uMWAG%?%0(B(empty-element tag)$B!I$H$9$Y$-$@$H;W$$$^$9$,!$$$$+$,$G$7$g$&$+(B --> 1347 1348<p>$B6uMWAG%?%0$O!$FbMF$r$b$?$J$$G$0U$NMWAG$NI=8=$KMxMQ$G$-$k!#6uMWAG%?%0$GI=8=$9$kMWAG$r!$%-!<%o!<%I(B<kw>EMPTY</kw>$B$rMQ$$$F@k8@$7$J$/$H$b$h$$!#(B</p> 1349<p>$B6uMWAG$NNc$r!$<!$K<($9!#(B 1350<eg><IMG align="left" src="http://www.w3.org/Icons/WWW/w3c_home" /><br></br><br/></eg></p> 1351</div2> 1352 1353<div2 id='elemdecls'><head>$BMWAG@k8@(B</head> 1354<p><termref def="dt-valid">&validity;</termref>$B$rJ]>Z$9$k$?$a!$MWAG@k8@5Z$SB0@-%j%9%H@k8@$rMQ$$$F(B<termref def="dt-xml-doc">XML$BJ8=q(B</termref>$B$N(B<termref def="dt-element">$BMWAG(B</termref>$B$N9=B$$K!$@)Ls$r2C$($k$3$H$,$G$-$k!#(B</p> 1355<p>$BMWAG@k8@$O!$MWAG$N(B<termref def="dt-content">$BFbMF(B</termref>$B$K$D$$$F$N@)Ls$H$9$k!#(B</p> 1356<p>$BMWAG@k8@$O!$MWAG$N(B<termref def="dt-parentchild">$B;R(B</termref>$B$H$7$F=P8=2DG=$JMWAG7?$K$D$$$F!$@)Ls$r2C$($k$3$H$,B?$$!#(B&at-user-option;$B!$MWAG@k8@$r$b$?$J$$MWAG7?$,B>$NMWAG@k8@$K$h$C$F;2>H$5$l$l$P!$(BXML&processor;$B$O!$7Y9p$r=P$7$F$b$h$$!#$7$+$7!$$3$l$O(B&error;$B$H$O$7$J$$!#(B</p> 1357 1358<p><termdef id="dt-eldecl" term="Element Type declaration"><term>$BMWAG7?@k8@(B</term>$B$O!$<!$N7A<0$r$H$k!#(B 1359<scrap lang='ebnf'><head>$BMWAG7?@k8@(B</head><prodgroup pcw2="5.5" pcw4="18" pcw5="9"> 1360<prod id='NT-elementdecl'><lhs>elementdecl</lhs> 1361<rhs>'<!ELEMENT' <nt def='NT-S'>S</nt> 1362<nt def='NT-Name'>Name</nt> 1363<nt def='NT-S'>S</nt> 1364<nt def='NT-contentspec'>contentspec</nt> 1365<nt def='NT-S'>S</nt>? '>'</rhs> 1366<vc def='EDUnique'/></prod> 1367<prod id='NT-contentspec'><lhs>contentspec</lhs> 1368<rhs>'EMPTY' 1369| 'ANY' 1370| <nt def='NT-Mixed'>Mixed</nt> 1371| <nt def='NT-children'>children</nt> 1372</rhs> 1373<vc def='elementvalid'/> 1374</prod> 1375</prodgroup> 1376</scrap> 1377$B$3$3$G!$(B<nt def='NT-Name'>Name</nt>$B$O!$@k8@$5$l$F$$$kMWAG$N7?$H$9$k!#(B</termdef></p> 1378 1379<vcnote id='EDUnique'><head>$BMWAG@k8@$N0l0U@-(B</head> 1380<p>$BMWAG7?$r#2EY0J>e@k8@$G$-$J$$!#(B</p></vcnote> 1381 1382<vcnote id='elementvalid'><head>$BMWAG$N(B&validity;</head> 1383<p>$BMWAG$,(B<!-- said to be -->&valid;$B$H$O!$(B<nt def='NT-elementdecl'>elementdecl</nt>$B$K(B&match;$B$9$k@k8@$G$"$C$F!$$=$N(B<nt def='NT-Name'>Name</nt>$B$,$=$NMWAG7?$H(B&match;$B$7!$<!$N$$$:$l$+$N>r7o$rK~$?$9>l9g$H$9$k!#(B<ulist> 1384<item><p>a) $B@k8@$,(B<kw>EMPTY</kw>$B$K(B&match;$B$7!$MWAG$,(B<termref def='dt-content'>$BFbMF(B</termref>$B$r$b$?$J$$!#(B</p></item> 1385<item><p>b) $B@k8@$,(B<nt def='NT-children'>children</nt>$B$K(B&match;$B$7!$MWAG$N(B<termref def="dt-parentchild">$B;RMWAG(B</termref>$B$NJB$S$,!$FbMF%b%G%k$N@55,I=8=$K$h$C$F@8@.$5$l$k8@8l$KB0$9$k!#(B</p></item> 1386<item><p>c) $B@k8@$,(B<nt def='NT-Mixed'>mixed</nt>$B$K(B&match;$B$7!$MWAG$NFbMF$,(B<termref def='dt-chardata'>$BJ8;z%G!<%?(B</termref>$B5Z$S(B<termref def='dt-parentchild'>$B;RMWAG(B</termref>$B$+$i$J$k!#;RMWAG$NMWAG7?$O!$MWAG$NFbMF%b%G%k$K=P8=$9$kL>A0$K(B&match;$B$9$k!#(B</p></item> 1387<item><p>d) $B@k8@$,(B<kw>ANY</kw>$B$K(B&match;$B$7!$$I$N(B<termref def='dt-parentchild'>$B;RMWAG(B</termref>$B$NMWAG7?$b@k8@$5$l$F$$$k!#(B</p></item></ulist> 1388 1389</p></vcnote> 1390<!-- with the new VC, I don't think the next few paras add anything -TWB 1391<p><termdef id="dt-model" term="content model">An element can declared using a <term>content model</term>, in which case its content can be categorized as <termref def="dt-elemcontent">element content</termref> or <termref def='dt-mixed'>mixed content</termref>, as explained below.</termdef></p> 1392<p>An element whose type declared using the keyword <kw>EMPTY</kw> must be <termref def="dt-empty">empty</termref> and may be tagged using an <termref def="dt-eetag">empty-element tag</termref> when it appears in the document.</p> 1393<p>If an element type is declared using the keyword <kw>ANY</kw>, then there are no validity constraints on its content: it may contain <termref def='dt-parentchild'>child elements</termref> of any type and number, interspersed with character data.</p> --> 1394 1395<p>$BMWAG@k8@$NNc$r!$<!$K<($9!#(B 1396<eg> 1397<!ELEMENT br EMPTY> 1398<!ELEMENT p (#PCDATA|emph)* > 1399<!ELEMENT %name.para; %content.para; > 1400<!ELEMENT container ANY> 1401</eg></p> 1402 1403<div3 id='sec-element-content'><head>$BMWAGFbMF(B</head> 1404 1405<p><termdef id='dt-elemcontent' term='Element content'>$B$"$k7?$NMWAG$,(B<termref def='dt-parentchild'>$B;R(B</termref>$BMWAG$@$1$r4^$`(B($BJ8;z%G!<%?$r4^$^$J$$!#(B)$B$H$-!$$=$NMWAG(B<termref def="dt-stag">$B7?(B</termref>$B$O!$(B<term>$BMWAGFbMF(B</term>$B$r$b$D!$$H$$$&!#(B</termdef>$B$3$N>l9g!$@)Ls$O!$FbMF%b%G%k$r4^$`!#FbMF%b%G%k$O!$;RMWAG$N7?5Z$S;RMWAG$N=P8==g=x$r@)8f$9$k4JC1$JJ8K!$H$9$k!#$3$NJ8K!$O!$(B&content-particle;(<nt def='NT-cp'>cp</nt>s)$B$+$i$J$k!#(B&content-particle;$B$O!$L>A0!$(B&content-particle;$B$NA*Br%j%9%HKt$O(B&content-particle;$B$NNs%j%9%H$+$i9=@.$5$l$k!#(B 1406<scrap lang='ebnf'><head>$BMWAGFbMF%b%G%k(B</head><prodgroup pcw2="5.5" pcw4="16" pcw5="11"> 1407<prod id='NT-children'><lhs>children</lhs><rhs>(<nt def='NT-choice'>choice</nt> | <nt def='NT-seq'>seq</nt>) ('?' | '*' | '+')?</rhs></prod><prod id='NT-cp'><lhs>cp</lhs><rhs>(<nt def='NT-Name'>Name</nt> | <nt def='NT-choice'>choice</nt> | <nt def='NT-seq'>seq</nt>) ('?' | '*' | '+')?</rhs></prod> 1408<prod id='NT-choice'><lhs>choice</lhs><rhs>'(' <nt def='NT-S'>S</nt>? cp ( <nt def='NT-S'>S</nt>? '|' <nt def='NT-S'>S</nt>? <nt def='NT-cp'>cp</nt> )*<nt def='NT-S'>S</nt>? ')'</rhs><vc def='vc-PEinGroup'/></prod> 1409<prod id='NT-seq'><lhs>seq</lhs><rhs>'(' <nt def='NT-S'>S</nt>? cp ( <nt def='NT-S'>S</nt>? ',' <nt def='NT-S'>S</nt>? <nt def='NT-cp'>cp</nt> )*<nt def='NT-S'>S</nt>? ')'</rhs><vc def='vc-PEinGroup'/></prod> 1410<!-- <prod id='NT-cps'><lhs>cps</lhs><rhs><nt def='NT-S'>S</nt>? <nt def='NT-cp'>cp</nt> <nt def='NT-S'>S</nt>?</rhs></prod> 1411<prod id='NT-choice'><lhs>choice</lhs><rhs>'(' <nt def='NT-S'>S</nt>? <nt def='NT-ctokplus'>ctokplus</nt> (<nt def='NT-S'>S</nt>? '|' <nt def='NT-S'>S</nt>? <nt def='NT-ctoks'>ctoks</nt>)* <nt def='NT-S'>S</nt>? ')'</rhs></prod> 1412<prod id="NT-ctokplus"><lhs>ctokplus</lhs><rhs><nt def="NT-cps">cps</nt>('|' <nt def="NT-cps">cps</nt>)+</rhs></prod> 1413<prod id="NT-ctoks"><lhs>ctoks</lhs><rhs><nt def="NT-cps">cps</nt>('|' <nt def="NT-cps">cps</nt>)*</rhs></prod> 1414<prod id='NT-seq'><lhs>seq</lhs><rhs>'(' <nt def='NT-S'>S</nt>?<nt def='NT-stoks'>stoks</nt> (<nt def='NT-S'>S</nt>? ',' <nt def='NT-S'>S</nt>? <nt def='NT-stoks'>stoks</nt>)*<nt def='NT-S'>S</nt>? ')'</rhs></prod> 1415<prod id="NT-stoks"><lhs>stoks</lhs><rhs><nt def="NT-cps">cps</nt>(',' <nt def="NT-cps">cps</nt>)*</rhs></prod> 1416--> 1417</prodgroup></scrap> 1418$B$3$3$G!$(B<nt def='NT-Name'>Name</nt>$B$O!$(B<termref def="dt-parentchild">$B;R(B</termref>$B$H$7$F=P8=$7$F$h$$MWAG$N7?$r<($9!#$3$NJ8K!$GA*Br%j%9%H$,8=$l$k0LCV$G$O!$A*Br%j%9%HFb$N$$$:$l$N(B&content-particle;$B$b(B<termref def="dt-elemcontent">$BMWAGFbMF(B</termref>$B$NCf$K8=$l$F$h$$!#Ns%j%9%H$K8=$l$k(B&content-particle;$B$O!$%j%9%H$G;XDj$9$k=gHV$N$H$*$j$K!$(B<termref def="dt-elemcontent">$BMWAGFbMF(B</termref>$B$K8=$l$J$1$l$P$J$i$J$$!#L>A0Kt$O%j%9%H$N8e$K=P8=$9$k%*%W%7%g%s$NJ8;z(B<!-- $BLgGO!'(Bcharacter$B$rJ8;z$HLu$7$^$7$?(B -->$B$O!$%j%9%HFb$NMWAGKt$O(B&content-particle;$B$,!$(B1$B2s0J>eG$0U$N2s?t(B(<code>+</code>)$B!$(B0$B2s0J>eG$0U$N2s?t(B(<code>*</code>)$BKt$O(B0$B2s<c$7$/$O(B1$B2s(B(<code>?</code>)$B=P8=2DG=$J$3$H$r5,Dj$9$k!#$3$3$G<($99=J85Z$S0UL#$O!$$3$N(B&TR-or-Rec;$B$K$*$1$k@8@.5,B'$GMQ$$$k$b$N$HF10l$H$9$k!#(B</p> 1419 1420<!-- $BLgGO!'>e$NJ8$G$O!$!H(Bname$BKt$O(Blist$B$N8e$KB3$/J8;z!I$,!H(Blist$B$N=P8=$r5,Dj$9$k!I$H$"$C$F!$(Bname$B$N=P8=$r5,Dj$9$k$H$O=q$$$F$"$j$^$;$s!#=$@5$,I,MW$H9M$($^$9!#(B --> 1421 1422<p>$BMWAG$NFbMF$,FbMF%b%G%k$K(B&match;$B$9$k$N$O!$Ns!$A*Br5Z$S7+JV$71i;;;R$K$7$?$,$C$F!$FbMF$NCf$NMWAG$HFbMF%b%G%kFb$NMWAG7?$H$r(B&match;$B$5$;$J$,$i!$FbMF%b%G%kFb$N0l$D$N%Q%9$r$?$I$l$k$H$-$K8B$k!#(B<termref def='dt-compat'>$B8_49@-$N$?$a(B</termref>$B!$J8=qFb$NMWAG$,!$FbMF%b%G%k$K$*$1$kMWAG7?$NJ#?t$N=P8=0LCV$H(B&match;$B$9$k$3$H$O!$(B&error;$B$H$9$k!#>\:Y$J5,Dj$K$D$$$F$O!$ImB0=q$N(B<titleref xml-link="simple" href="determinism">$B7hDjE*FbMF%b%G%k(B</titleref>$B$N9`$r;2>H!#(B 1423<!-- appendix <specref ref="determinism"/>. --> 1424<!-- appendix on deterministic content models. --> 1425</p> 1426 1427<vcnote id='vc-PEinGroup'> 1428<head>$B%0%k!<%W5Z$S%Q%i%a%?<BBN$,87L)$JF~$l;R$r$J$7$F$$$k$3$H(B</head> 1429<p>$B%Q%i%a%?<BBN$N(B<termref def='dt-repltext'>&replacement-text;</termref>$B$O!$(B&parenthesis;$B$G0O$^$l$?%0%k!<%W$K$h$C$F!$87L)$JF~$l;R$r9=@.$7$J$1$l$P$J$i$J$$!#$D$^$j!$(B<nt def='NT-choice'>$BA*Br(B</nt>$B!$(B<nt def='NT-seq'>$BNs(B</nt>$BKt$O(B<nt def='NT-Mixed'>$B:.:_(B</nt>$BItIJ$K!$(B&left-parenthesis;$BKt$O(B&right-parenthesis;$B$N$$$:$l$+0lJ}$,(B<termref def='dt-PERef'>$B%Q%i%a%?<BBN(B</termref>$B$N(B&replacement-text;$B$K4^$l$l$P!$B>J}$bF1$8(B&replacement-text;$B$K4^$^$l$J$1$l$P$J$i$J$$!#(B</p> 1430<p><termref def='dt-interop'>$BAj8_1?MQ@-$N$?$a(B</termref>$B!$%Q%i%a%?<BBN;2>H$,(B<nt def='NT-choice'>$BA*Br(B</nt>$B!$(B<nt def='NT-seq'>$BNs(B</nt>$BKt$O(B<nt def='NT-Mixed'>$B:.:_(B</nt>$BFbMF$K4^$^$l$l$P!$$=$N(B&replacement-text;$B$O6u$G$J$$$3$H$,K>$^$7$/!$(B&replacement-text;$B$N@hF,5Z$SKvHx$N6uGr$G$J$$J8;z$O!$%3%M%/%?(B(<code>|</code>$BKt$O(B<code>,</code>)$B$G$J$$J}$,$h$$!#(B 1431</p> 1432</vcnote> 1433<p>$BMWAGFbMF%b%G%k$N$$$/$D$+$NNc$r!$<!$K<($9!#(B 1434<eg><!ELEMENT spec (front, body, back?)> 1435<!ELEMENT div1 (head, (p | list | note)*, div2*)> 1436<!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*></eg></p> 1437</div3> 1438 1439<div3 id='sec-mixed-content'> 1440<head>&mixed-content;</head> 1441 1442<p><termdef id='dt-mixed' term='Mixed Content'>$B$"$kMWAG7?$NMWAGFb$K!$(B<termref def="dt-parentchild">$B;R(B</termref>$BMWAG$K:.:_$7$FJ8;z%G!<%?$,4^$^$l$k2DG=@-$,$"$k$H$-!$$=$NMWAG(B<termref def='dt-stag'>$B7?(B</termref>$B$O!$(B<term>&mixed-content;</term>$B$r$b$D$H$$$&!#(B</termdef>$B$3$N>l9g!$;RMWAG$N7?$K$D$$$F$N@)Ls$,B8:_$7$F$b$h$$(B<!-- $BLgGO!'!H(Bmay be constrained$B!I$rC1$K!V@)Ls$5$l$k!W$HLu$7$^$7$?!#(B -->$B$,!$;RMWAG$N=g=xKt$O=P8=2s?t$K$D$$$F$N@)Ls$O$J$$$H$9$k!#(B 1443<scrap lang='ebnf'> 1444<head>&mixed-content;$B@k8@(B</head> 1445<prodgroup pcw2="5.5" pcw4="16" pcw5="11"> 1446<prod id='NT-Mixed'><lhs>Mixed</lhs> 1447<rhs>'(' <nt def='NT-S'>S</nt>? 1448'#PCDATA' 1449(<nt def='NT-S'>S</nt>? 1450'|' 1451<nt def='NT-S'>S</nt>? 1452<nt def='NT-Name'>Name</nt>)* 1453<nt def='NT-S'>S</nt>? 1454')*' </rhs> 1455<rhs>| '(' <nt def='NT-S'>S</nt>? '#PCDATA' <nt def='NT-S'>S</nt>? ')' 1456</rhs><vc def='vc-PEinGroup'/> 1457<vc def='vc-MixedChildrenUnique'/> 1458</prod> 1459<!-- 1460<prod id="NT-Mtoks"><lhs>Mtoks</lhs> 1461<rhs><nt def="NT-Name">Name</nt> 1462(<nt def='NT-S'>S</nt>? 1463'|' 1464<nt def='NT-S'>S</nt>? 1465<nt def="NT-Name">Name</nt>)* 1466</rhs> 1467</prod> 1468--> 1469</prodgroup> 1470</scrap> 1471$B$3$3$G!$(B<nt def='NT-Name'>Name</nt>$B$O!$;R$H$7$F=P8=$7$F$b$h$$MWAG$N7?$r<($9!#(B 1472</p> 1473 1474<vcnote id='vc-MixedChildrenUnique'> 1475<head>$BMWAG7?$N=EJ#$N6X;_(B</head> 1476<p>$B0l$D$N(B&mixed-content;$B@k8@Fb$K!$F1$8L>A0$,J#?t2s=P8=$7$F$O$J$i$J$$!#(B 1477</p></vcnote> 1478<p>&mixed-content;$B@k8@$NNc$r!$<!$K<($9!#(B 1479<eg><!ELEMENT p (#PCDATA|a|ul|b|i|em)*> 1480<!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* > 1481<!ELEMENT b (#PCDATA)></eg></p> 1482</div3> 1483</div2> 1484 1485 1486<div2 id='attdecls'> 1487<head>$BB0@-%j%9%H@k8@(B</head> 1488<p> 1489<termref def="dt-attr">$BB0@-(B</termref>$B$O!$L>A05Z$SCM$NBP$r(B<termref def="dt-element">$BMWAG(B</termref>$B$K4XO"IU$1$k$?$a$KMQ$$$k!#B0@-;XDj$O!$(B<termref def="dt-stag">$B3+;O%?%0(B</termref>$BKt$O(B<termref def="dt-eetag">$B6uMWAG(B</termref>$B%?%0Fb$G$@$12DG=$H$9$k!#$7$?$,$C$F!$B0@-$rG'<1$9$k$?$a$N@8@.5,B'$O!$(B<titleref href='sec-starttags'>$B3+;O%?%0(B</titleref>$B$K$D$$$F$N5,Dj$G<($9!#B0@-%j%9%H@k8@$O!$<!$NL\E*$GMQ$$$k!#(B 1490<ulist> 1491<item><p>a) $B$"$kMWAG7?$KE,MQ$9$kB0@-$N=89g$r5,Dj$9$k!#(B</p></item> 1492<item><p>b) $BB0@-$X$N7?@)Ls$r@_Dj$9$k!#(B</p></item> 1493<item><p>c) $BB0@-$N(B<termref def="dt-default">&default-value;</termref>$B$r5,Dj$9$k!#(B</p></item> 1494</ulist> 1495</p> 1496<p> 1497<termdef id="dt-attdecl" term="Attribute-List Declaration"> 1498<term>$BB0@-%j%9%H@k8@(B</term>$B$O!$$"$kMWAG7?$H4XO"IU$1$i$l$?3FB0@-$KBP$7!$L>A0!$%G!<%?7?5Z$S(B($BB8:_$9$l$P(B)&default-value;$B$r5,Dj$9$k!#(B 1499<scrap lang='ebnf'> 1500<head>$BB0@-%j%9%H@k8@(B</head> 1501<prod id='NT-AttlistDecl'><lhs>AttlistDecl</lhs> 1502<rhs>'<!ATTLIST' <nt def='NT-S'>S</nt> 1503<nt def='NT-Name'>Name</nt> 1504<nt def='NT-AttDef'>AttDef</nt>* 1505<nt def='NT-S'>S</nt>? '>'</rhs> 1506</prod> 1507<prod id='NT-AttDef'><lhs>AttDef</lhs> 1508<rhs><nt def='NT-S'>S</nt> <nt def='NT-Name'>Name</nt> 1509<nt def='NT-S'>S</nt> <nt def='NT-AttType'>AttType</nt> 1510<nt def='NT-S'>S</nt> <nt def='NT-Default'>Default</nt></rhs> 1511</prod> 1512</scrap> 1513 1514<nt def='NT-AttlistDecl'>AttlistDecl</nt>$B5,B'$KB8:_$9$k(B<nt def="NT-Name">Name</nt>$B$O!$MWAG7?$NL>A0$H$9$k!#(B&at-user-option;$B!$@k8@$7$F$$$J$$MWAG7?$KBP$7B0@-$r@k8@$7$?$J$i$P!$(BXML&processor;$B$O!$7Y9p$r=P$7$F$b$h$$!#$7$+$7!$$3$l$O(B&error;$B$H$O$7$J$$!#(B 1515<nt def='NT-AttDef'>AttDef</nt>$B5,B'$K$*$1$k(B<nt def='NT-Name'>Name</nt>$B$O!$B0@-$NL>A0$H$9$k!#(B 1516</termdef> 1517</p> 1518<p> 1519$B$"$kMWAG$KBP$7$F!$J#?t$N(B<nt def='NT-AttlistDecl'>AttlistDecl</nt>$B$rM?$($k>l9g!$$3$l$i$9$Y$F$NFbMF$O%^!<%8$9$k!#$"$kMWAG7?$NF1$8B0@-$K!$J#?t$NDj5A$rM?$($k>l9g$K$O!$:G=i$N@k8@$rM-8z$H$7!$B>$N@k8@$OL5;k$9$k!#(B<termref def='dt-interop'>$BAj8_1?MQ@-$N$?$a$K(B</termref>$B!$(BDTD$B$N:n@.<T$O!$$"$kMWAG7?$K$O9b!90l$D$NB0@-%j%9%H@k8@$7$+M?$($J$$!$$"$kB0@-L>$K$O9b!90l$D$NB0@-Dj5A$7$+M?$($J$$!$5Z$S$9$Y$F$NB0@-%j%9%H@k8@$K$O>/$J$/$H$b0l$D$NB0@-Dj5A$rM?$($k!$$H$$$&A*Br$r$7$F$b$h$$!#Aj8_1?MQ@-$N$?$a$K!$(BXML&processor;$B$O!$(B&at-user-option;$B!$$"$kMWAG7?$KJ#?t$NB0@-%j%9%H@k8@$rM?$($?$j!$$"$kB0@-$KJ#?t$NB0@-Dj5A$rM?$($?$j$7$?$H$-$K!$7Y9p$r=P$7$F$b$h$$!#$7$+$7!$$3$l$O!$(B&error;$B$H$O$7$J$$!#(B 1520</p> 1521 1522<div3 id='sec-attribute-types'> 1523<head>$BB0@-$N7?(B</head> 1524<p> 1525XML$B$NB0@-$N7?$O!$#3<oN`$H$9$k!#$3$l$i$O!$(B&string;$B7?!$(B&token;$B2=7?5Z$SNs5s7?$H$9$k!#(B&string;$B7?$O!$CM$H$7$FG$0U$N(B&string;$B$r$H$k!#(B&token;$B2=7?$O!$<!$K<($9;z6g5Z$S0UL#$K4X$9$kMM!9$J@)Ls$r$b$D!#(B 1526 1527<scrap lang='ebnf'> 1528<head>Attribute Types</head> 1529<prodgroup pcw4="14" pcw5="11.5"> 1530<prod id='NT-AttType'><lhs>AttType</lhs> 1531<rhs><nt def='NT-StringType'>StringType</nt> 1532| <nt def='NT-TokenizedType'>TokenizedType</nt> 1533| <nt def='NT-EnumeratedType'>EnumeratedType</nt> 1534</rhs> 1535</prod> 1536<prod id='NT-StringType'><lhs>StringType</lhs> 1537<rhs>'CDATA'</rhs> 1538</prod> 1539<prod id='NT-TokenizedType'><lhs>TokenizedType</lhs> 1540<rhs>'ID'</rhs> 1541<vc def='id'/> 1542<vc def='one-id-per-el'/> 1543<vc def='id-default'/> 1544<rhs>| 'IDREF'</rhs> 1545<vc def='idref'/> 1546<rhs>| 'IDREFS'</rhs> 1547<vc def='idref'/> 1548<rhs>| 'ENTITY'</rhs> 1549<vc def='entname'/> 1550<rhs>| 'ENTITIES'</rhs> 1551<vc def='entname'/> 1552<rhs>| 'NMTOKEN'</rhs> 1553<vc def='nmtok'/> 1554<rhs>| 'NMTOKENS'</rhs> 1555<vc def='nmtok'/></prod> 1556</prodgroup> 1557</scrap> 1558</p> 1559 1560<vcnote id='id' > 1561<head>ID</head> 1562<p> 1563$B$3$N7?$NCM$O!$@8@.5,B'(B<code>Name</code>$B$K(B&match;$B$7$J$1$l$P$J$i$J$$!#0l$D$N(BXML$BJ8=qFb$G$O!$0l$D$NL>A0$,!$$3$N7?$NCM$H$7$FJ#?t2s8=$l$F$O$J$i$J$$!#$D$^$j!$(BID$B$NCM$O!$MWAG$r0l0U$K(B&identify;$B$7$J$1$l$P$J$i$J$$!#(B 1564</p> 1565</vcnote> 1566<vcnote id='one-id-per-el'> 1567<head>1$BMWAG$4$H$K(B1ID</head> 1568<p> 1569$BMWAG7?$O!$J#?t$N(BID$BB0@-CM$r$b$C$F$O$J$i$J$$!#(B 1570</p> 1571</vcnote> 1572<vcnote id='id-default'> 1573<head>ID$BB0@-$N(B&default;</head> 1574<p> 1575ID$BB0@-$O!$(B&default;$B$H$7$F!$(B<code>#IMPLIED</code>$BKt$O(B<code>#REQUIRED</code>$B$r@k8@$7$J$1$l$P$J$i$J$$!#(B 1576</p> 1577</vcnote> 1578<vcnote id='idref'> 1579<head>IDREF</head> 1580<p> 1581<kw>IDREF</kw>$B7?$NCM$O!$@8@.5,B'(B<nt def="NT-Name">Name</nt>$B$K(B&match;$B$7$J$1$l$P$J$i$J$$!#(B<kw>IDREFS</kw>$B7?$NCM$O!$@8@.5,B'(B<nt def="NT-Names">Names</nt>$B$K(B&match;$B$7$J$1$l$P$J$i$J$$!#3F!9$N(B<nt def='NT-Name'>Name</nt>$B$O!$(BXML$BJ8=qFb$KB8:_$9$kMWAG$N(BID$BB0@-$NCM$H(B&match;$B$7$J$1$l$P$J$i$J$$!#$D$^$j!$(B<kw>IDREF</kw>$B$NCM$O!$$"$k(BID$BB0@-$NCM$H(B&match;$B$7$J$1$l$P$J$i$J$$!#(B 1582</p> 1583</vcnote> 1584<vcnote id='entname'> 1585<head>$B<BBNL>(B</head> 1586<p> 1587<kw>ENTITY</kw>$B7?$NCM$O!$@8@.5,B'(B<nt def="NT-Name">Name</nt>$B$K(B&match;$B$7$J$1$l$P$J$i$J$$!#(B<kw>ENTITIES</kw>$B7?$NCM$O!$@8@.5,B'(B<nt def="NT-Names">Names</nt>$B$K(B&match;$B$7$J$1$l$P$J$i$J$$!#3F!9$N(B<nt def="NT-Name">Name</nt>$B$O!$(B<termref def="dt-doctype">DTD</termref>$B$G@k8@$9$k(B<termref def="dt-unparsed">&unparsed-entity;</termref>$B$H(B&match;$B$7$J$1$l$P$J$i$J$$!#(B 1588</p> 1589</vcnote> 1590<vcnote id='nmtok'> 1591<head>$BL>A0(B&token;</head> 1592<p> 1593<kw>NMTOKEN</kw>$B7?$NCM$O!$Hs=*C<5-9f(B<termref def="NT-Nmtoken">Nmtoken</termref>$B$H(B&match;$B$9$k(B&string;$B$+$i9=@.$5$l$J$1$l$P$J$i$J$$!#(B<kw>NMTOKENS</kw>$B7?$NCM$O!$Hs=*C<5-9f(B<termref def="NT-Nmtokens">Nmtokens</termref>$B$H(B&match;$B$9$k(B&string;$B$+$i9=@.$5$l$J$1$l$P$J$i$J$$!#(B 1594</p> 1595</vcnote> 1596<p> 1597XML&processor;$B$O!$(B&application;$B$KB0@-CM$rEO$9A0$K!$(B<titleref href="AVNormalize">$BB0@-CM$N@55,2=(B</titleref>$B$G5,Dj$9$k$H$*$j$K!$B0@-CM$r@55,2=$7$J$1$l$P$J$i$J$$!#(B 1598</p> 1599<p> 1600<termdef id='dt-enumerated' term='Enumerated Attribute Values'><term>$BNs5s7?$NB0@-(B</term>$B$O!$@k8@$7$?CM$N0l$D$r<h$k$3$H$,$G$-$k!#(B</termdef>$BNs5s7?$K$O!$(B2$B<oN`$"$k!#(B 1601 1602<scrap lang='ebnf'> 1603<head>$BNs5sB0@-$N7?(B</head> 1604<prod id='NT-EnumeratedType'><lhs>EnumeratedType</lhs> 1605<rhs><nt def='NT-NotationType'>NotationType</nt> 1606| <nt def='NT-Enumeration'>Enumeration</nt> 1607</rhs></prod> 1608<prod id='NT-NotationType'><lhs>NotationType</lhs> 1609<rhs>'NOTATION' 1610<nt def='NT-S'>S</nt> 1611'(' 1612<nt def='NT-S'>S</nt>? 1613<nt def='NT-Name'>Name</nt> 1614(<nt def='NT-S'>S</nt>? '|' <nt def='NT-Name'>Name</nt>)* 1615<nt def='NT-S'>S</nt>? ')' 1616</rhs> 1617<vc def='notatn' /></prod> 1618<prod id='NT-Enumeration'><lhs>Enumeration</lhs> 1619<rhs>'(' <nt def='NT-S'>S</nt>? 1620<nt def='NT-Nmtoken'>Nmtoken</nt> 1621(<nt def='NT-S'>S</nt>? '|' 1622<nt def='NT-S'>S</nt>? 1623<nt def='NT-Nmtoken'>Nmtoken</nt>)* 1624<nt def='NT-S'>S</nt>? 1625')'</rhs> 1626<vc def='enum'/></prod> 1627</scrap> 1628</p> 1629 1630<vcnote id='notatn'> 1631<head>$B5-K!B0@-(B</head> 1632<p>$B$3$N7?$NCM$O!$@k8@$7$F$$$k(B<titleref href='Notations'>$B5-K!(B</titleref>$B$NL>A0$N0l$D$H(B&match;$B$7$J$1$l$P$J$i$J$$!#$D$^$j!$@k8@$KB8:_$9$k5-K!L>$O!$$9$Y$F@k8@$5$l$F$$$J$1$l$P$J$i$J$$!#(B 1633</p> 1634</vcnote> 1635<vcnote id='enum'> 1636<head>$BNs5s(B</head> 1637<p> 1638$B$3$N7?$NCM$O!$@k8@$KB8:_$9$k(B<nt def='NT-Nmtoken'>Nmtoken</nt>&token;$B$N0l$D$H(B&match;$B$7$J$1$l$P$J$i$J$$!#(B 1639</p> 1640</vcnote> 1641<p> 1642<termref def='dt-interop'>$BAj8_1?MQ@-$N$?$a(B</termref>$B!$F1$8(B<nt def='NT-Nmtoken'>Nmtoken</nt>$B$O!$C10lMWAG7?$NNs5s7?$NB0@-$H$7$F!$J#?t2s8=$l$J$$J}$,$h$$!#(B 1643</p> 1644</div3> 1645 1646<div3 id='sec-attr-defaults'> 1647<head>$BB0@-$N(B&default;</head> 1648 1649<p> 1650<termref def="dt-attdecl">$BB0@-@k8@(B</termref>$B$O!$B0@-$N;XDj$,I,?\$+$I$&$+$K$D$$$F$N>pJs$rM?$($k!#I,?\$G$J$$>l9g$K$O!$J8=qFb$GB0@-$r;XDj$7$J$$$H$-!$(BXML&processor;$B$N=hM}J}K!$N>pJs$bM?$($k!#(B 1651 1652<scrap lang='ebnf'> 1653<head>$BB0@-$N(B&default;</head> 1654<prodgroup pcw4="14" pcw5="11.5"> 1655<prod id='NT-Default'><lhs>Default</lhs> 1656<rhs>'#REQUIRED' 1657| '#IMPLIED' </rhs> 1658<rhs>| (('#FIXED' S)? <nt def='NT-AttValue'>AttValue</nt>)</rhs> 1659<vc def='defattrvalid'/> 1660<wfc def="CleanAttrVals"/> 1661</prod> 1662</prodgroup> 1663</scrap> 1664<!-- improved by bosak 1665<scrap lang='ebnf'> 1666<head>Attribute Defaults</head> 1667<prod id='NT-Default'><lhs>Default</lhs> 1668<rhs>'#REQUIRED' 1669| '#IMPLIED' </rhs> 1670<vc def='defattrvalid'/> 1671<wfc def="CleanAttrVals"/> 1672<rhs>| (('#FIXED' S)? <nt def='NT-AttValue'>AttValue</nt>)</rhs> 1673</prod> 1674</scrap>--> 1675</p> 1676 1677<vcnote id='defattrvalid'> 1678<head>$BB0@-(B&default;$B$N@5$7$5(B</head> 1679<p> 1680$B@k8@$7$?(B&default-value;$B$O!$@k8@$7$?B0@-7?$N;z6g@)Ls$rK~$?$5$J$1$l$P$J$i$J$$!#(B 1681</p> 1682</vcnote> 1683<p> 1684<kw>#REQUIRED</kw>$B$r;XDj$7$?$H$-!$$3$NMWAG7?$N(B<termref def="dt-stag">$B3+;O%?%0(B</termref>$B$G$"$C$F!$$3$NB0@-$KCM$rM?$($J$$$b$N$r(BXML&processor;$B$,8+$D$1$?$J$i$P!$$=$NJ8=q$O(B<termref def="dt-valid">&valid;</termref>$B$H$O$7$J$$!#(B<kw>#IMPLIED</kw>$B$r;XDj$7$?$H$-!$$3$NB0@-$r>JN,$7$?$i!$(BXML&processor;$B$O!$B0@-CM$r;XDj$7$J$$$3$H$r%"%W%j%1!<%7%g%s$KEA$($J$1$l$P$J$i$J$$!#$3$N$H$-!$(B&application;$B$N?6Iq$$$K$D$$$F$N@)Ls$O$J$$!#(B 1685</p> 1686<p> 1687<termdef id="dt-default" term="Attribute Default"> 1688$BB0@-$,(B<kw>#REQUIRED</kw>$B$G$b(B<kw>#IMPLIED</kw>$B$G$b$J$$$H$-$K$O!$(B<nt def='NT-AttValue'>AttValue</nt>$B$NCM$,!$(B<term>&default-value;</term>$B$H$J$k!#(B<kw>#FIXED</kw>$B$N>l9g!$(B&default-value;$B$H0[$J$kCM$,;XDj$5$l$l$P!$$=$NJ8=q$O!$(B<termref def="dt-valid">&valid;</termref>$B$H$7$J$$!#(B&default-value;$B$r@k8@$7$F$$$k>l9g!$$3$NB0@-$N>JN,$r8+$D$1$?$i!$@k8@$7$?(B&default-value;$B$rB0@-CM$K;XDj$7$F$$$k$H$7$F!$(BXML&processor;$B$O?6$kIq$&$3$H$,K>$^$7$$!#(B 1689</termdef></p> 1690 1691<p>$BB0@-%j%9%H@k8@$NNc$r!$<!$K<($9!#(B 1692 1693<eg><!ATTLIST termdef 1694 id ID #REQUIRED 1695 name CDATA #IMPLIED> 1696<!ATTLIST list 1697 type (bullets|ordered|glossary) "ordered"> 1698<!ATTLIST form 1699 method CDATA #FIXED "POST"></eg></p> 1700</div3> 1701 1702<div3 id='AVNormalize'> 1703<head>$BB0@-CM$N@55,2=(B</head> 1704<p> 1705XML&processor;$B$O!$B0@-CM$r(B&application;$B$KEO$9A0$K!$<!$N$H$*$j$K@55,2=$7$J$1$l$P$J$i$J$$!#(B 1706 1707<ulist> 1708<item> 1709<p>a) $B$^$:!$B0@-CM5Z$S$=$NCf$N<BBNFb$G!$9TKvKt$O9T6-3&(B($BKt$O%7%9%F%`$K$h$C$F$O%l%3!<%I6-3&(B)$B$H$7$F;H$o$l$k(B&string;$B$r!$(B&space-character;(#x20)$B0l$D$KCV$-49$($J$1$l$P$J$i$J$$(B($B!V(B<titleref xml-link="simple" href="sec-line-ends">$B9TKv$N07$$(B</titleref>$B!W$b;2>H$N$3$H!#(B)$B!#(B 1710</p></item> 1711<item> 1712<p>b) $B<!$K!$J8;z;2>H5Z$SFbIt(B&parsed-entity;$B$X$N;2>H$O!$E83+$7$J$1$l$P$J$i$J$$!#30It<BBN$X$N;2>H$O!$(B&error;$B$H$9$k!#(B 1713</p></item> 1714<item> 1715<p>c) $B:G8e$K!$B0@-$N7?$,(B<kw>CDATA</kw>$B$G$J$1$l$P!$6uGr(B&string;$B$O!$$9$Y$F(B&space-character;(#x20)$B0l$D$K@55,2=$7!$;D$j$N6uGrJ8;z$O!$:o=|$7$J$1$l$P$J$i$J$$!#(B 1716</p></item> 1717</ulist> 1718 1719&non-validating;&parser;$B$O!$@k8@$,8+$D$+$i$J$$B0@-$O!$$9$Y$F!$(B<kw>CDATA</kw>$B$r@k8@$7$F$$$k$H$7$F07$&$3$H$,K>$^$7$$!#(B</p> 1720</div3> 1721</div2> 1722 1723<div2 id='sec-condition-sect'> 1724<head>$B>r7oIU$-%;%/%7%g%s(B</head> 1725<p> 1726<termdef id='dt-cond-section' term='conditional section'> 1727<term>$B>r7oIU$-%;%/%7%g%s(B</term>$B$H$O!$(B<termref def='dt-doctype'>$BJ8=q7?@k8@$N30It(B⊂</termref>$B$N0lIt$H$7!$@)8f%-!<%o!<%I$N;XDj$K$h$C$F!$(BDTD$B$NO@M}9=B$$K4^$a$?$j!$=|$$$?$j$9$kItJ,$H$9$k!#(B 1728</termdef> 1729 1730<scrap lang='ebnf'> 1731<head>$B>r7oIU$-%;%/%7%g%s(B</head> 1732<prodgroup pcw2="9" pcw4="14.5"> 1733<prod id='NT-conditionalSect'><lhs>conditionalSect</lhs> 1734<rhs><nt def='NT-includeSect'>includeSect</nt> 1735| <nt def='NT-ignoreSect'>ignoreSect</nt> 1736</rhs> 1737</prod> 1738<prod id='NT-includeSect'><lhs>includeSect</lhs> 1739<rhs>'<![' S? 'INCLUDE' S? '[' 1740<!-- (<nt def='NT-markupdecl'>markupdecl</nt> 1741 | <nt def="NT-conditionalSect">conditionalSect</nt> 1742 | <nt def="NT-S">S</nt>)* 1743--> 1744<nt def="NT-extSubset">extSubset</nt> 1745']]>' 1746</rhs> 1747</prod> 1748<prod id='NT-ignoreSect'><lhs>ignoreSect</lhs> 1749<rhs>'<![' S? 'IGNORE' S? '[' 1750<nt def="NT-ignoreSectContents">ignoreSectContents</nt>* 1751']]>'</rhs> 1752</prod> 1753<prod id='NT-ignoreSectContents'><lhs>ignoreSectContents</lhs> 1754<rhs><nt def='NT-Ignore'>Ignore</nt> 1755('<![' <nt def='NT-ignoreSectContents'>ignoreSectContents</nt> 1756']]>' 1757<nt def='NT-Ignore'>Ignore</nt>)*</rhs></prod> 1758<prod id='NT-Ignore'><lhs>Ignore</lhs> 1759<rhs><nt def='NT-Char'>Char</nt>* - 1760(<nt def='NT-Char'>Char</nt>* ('<![' | ']]>') 1761<nt def='NT-Char'>Char</nt>*) 1762</rhs></prod> 1763<!--<rhs> 1764((<nt def='NT-SkipLit'>SkipLit</nt> 1765| <nt def='NT-Comment'>Comment</nt> 1766| <nt def='NT-PI'>PI</nt>) - 1767(<nt def='NT-Char'>Char</nt>* ']]>' <nt def='NT-Char'>Char</nt>*)) 1768| ('<![' <nt def='NT-ignoreSectContents'>ignoreSectContents</nt>* 1769']]>') 1770</rhs> 1771<rhs> 1772| (<nt def='NT-Char'>Char</nt> - (']' | [<'"])) 1773</rhs> 1774<rhs> 1775| ('<!' (<nt def='NT-Char'>Char</nt> - ('-' | '['))) 1776</rhs>--> 1777</prodgroup> 1778</scrap> 1779</p> 1780 1781<p>$B>r7oIU$-%;%/%7%g%s$O!$(BDTD$B$NFbIt(B⊂$B5Z$S30It(B⊂$B$HF1MM$K!$40A4$J@k8@!$%3%a%s%HKt$OF~$l;R$K$J$C$?>r7oIU$-%;%/%7%g%s$r!$$$$/$D$+4^$s$G$h$$!#$3$l$i$N4V$K!$6uGr$,8=$l$F$b$h$$!#(B 1782</p> 1783<p> 1784$B>r7oIU$-%;%/%7%g%s$N%-!<%o!<%I$,(B<code>INCLUDE</code>$B$J$i$P!$(BXML&processor;$B$O!$$3$N>r7oIU$-%;%/%7%g%s$NFbMF$r!$J8=q$N0lIt$H$7$F07$o$J$1$l$P$J$i$J$$!#>r7oIU$-%;%/%7%g%s$N%-!<%o!<%I$,(B<code>IGNORE</code>$B$J$i$P!$$=$N>r7oIU$-%;%/%7%g%s$NFbMF$O!$J8=q$N0lIt$H$7$F07$o$J$$!#9=J82r@O$r@5$7$/9T$&$?$a$K$O!$L5;k$9$k>r7oIU$-%;%/%7%g%s(B(IGNORE)$B$K4X$7$F$b!$FbMF$rFI$^$J$1$l$P$J$i$J$$$3$H$KCm0U$9$k$3$H!#$3$l$O!$F~$l;R$K$J$C$?>r7oIU$-%;%/%7%g%s$r8+$D$1!$(B($BL5;k$9$k(B)$B:G$b30B&$N>r7oIU$-%;%/%7%g%s$r@5$7$/8!=P$9$k$?$a$H$9$k!#%-!<%o!<%I$r(B<code>INCLUDE</code>$B$H$9$k>.$5$J>r7oIU$-%;%/%7%g%s$,!$%-!<%o!<%I$r(B<code>IGNORE</code>$B$H$9$k$h$jBg$-$J>r7oIU$-%;%/%7%g%s$K4^$^$l$k$J$i$P!$30B&5Z$SFbB&$N>r7oIU$-%;%/%7%g%s$NN>J}$H$bL5;k$9$k!#(B 1785</p> 1786<p> 1787$B>r7oIU$-%;%/%7%g%s$N%-!<%o!<%I$,%Q%i%a%?<BBN;2>H$J$i$P!$(BXML&processor;$B$O>r7oIU$-%;%/%7%g%s$N07$$$rH=CG$9$kA0$K!$$3$N%Q%i%a%?<BBN$rE83+$7$J$1$l$P$J$i$J$$!#(B 1788</p> 1789 1790<p>$BNc$r<!$K<($9!#(B 1791 1792<eg><!ENTITY % draft 'INCLUDE' > 1793<!ENTITY % final 'IGNORE' > 1794 1795<![%draft;[ 1796<!ELEMENT book (comments*, title, body, supplements?)> 1797]]> 1798<![%final;[ 1799<!ELEMENT book (title, body, supplements?)> 1800]]> 1801</eg> 1802</p> 1803</div2> 1804<!-- 1805<div2 id='sec-pass-to-app'> 1806<head>XML Processor Treatment of Logical Structure</head> 1807<p>When an XML processor encounters a start-tag, it must make 1808at least the following information available to the application: 1809<ulist> 1810<item> 1811<p>the element type's generic identifier</p> 1812</item> 1813<item> 1814<p>the names of attributes known to apply to this element type 1815(validating processors must make available names of all attributes 1816declared for the element type; non-validating processors must 1817make available at least the names of the attributes for which 1818values are specified. 1819</p> 1820</item> 1821</ulist> 1822</p> 1823</div2> 1824--> 1825 1826</div1> 1827<!-- &Entities; --> 1828 1829<div1 id='sec-physical-struct'> 1830<head>$BJ*M}9=B$(B</head> 1831 1832<p> 1833<termdef id="dt-entity" term="Entity"> 1834XML$BJ8=q$O!$0l$D0J>e$N5-21C10L$+$i9=@.$9$k!#$3$N5-21C10L$r!$(B<term>$B<BBN(B</term>$B$H$$$&!#<BBN$O!$(B<term>$BFbMF(B</term>$B$r$b$A!$J8=q<BBN(B($B0J9_;2>H(B)$B5Z$S(B<termref def='dt-doctype'>$B30It(BDTD⊂</termref>$B$r=|$$$F!$(B<term>$BL>A0(B</term>$B$G(B&identified;$B!#(B 1835</termdef> 1836 1837<!-- Added for CFG --> 1838<!-- obscurity amputated by TWB --> 1839<!-- entire sentence amputated by CMSMcQ: no one but NO ONE is 1840ready for entities declared as 1841<!ENTITY foo "http://www.foo.com/bar.xml#id"> 1842and it's pointless to suggest that it's possible 1843under current circumstances. --> 1844<!-- An entity may be stored in, --> 1845<!--but need not be coterminous with, --> 1846<!-- but need not comprise the whole of, --> 1847<!-- a single physical storage object such as a file or --> 1848<!-- database field. --> 1849<!-- End sentence added for CFG -->$B3F(BXML$BJ8=q$O!$(B<termref def="dt-docent">$BJ8=q<BBN(B</termref>$B$H8F$V<BBN$r0l$D$b$D!#(B<termref def="dt-xml-proc">XML&processor;</termref>$B$O!$$3$NJ8=q<BBN$+$i=hM}$r3+;O$9$k!#J8=q<BBN$,!$J8=q$N$9$Y$F$r4^$s$G$b$h$$!#(B</p> 1850 1851<p>$B<BBN$O!$(B&parsed-entity;$BKt$O(B&unparsed-entity;$B$H$9$k!#(B<termdef id="dt-parsedent" term="Text Entity"><term>&parsed-entity;</term>$B$NFbMF$O!$(B&parsed-entity;$B$N(B<termref def='dt-repltext'>&replacement-text;</termref>$B$H8F$V!#$3$N(B<termref def="dt-text">$B%F%-%9%H(B</termref>$B$O!$J8=q$NK\BN$N0lIt$H$7$F2r<a$9$k!#(B 1852</termdef> 1853</p> 1854 1855<p> 1856<termdef id="dt-unparsed" term="Unparsed Entity"> 1857<term>&unparsed-entity;</term>$B$O!$FbMF$,(B<termref def='dt-text'>$B%F%-%9%H(B</termref>$B$G$b$=$&$G$J$/$H$b$h$$%j%=!<%9$H$9$k!#%F%-%9%H$N>l9g!$(BXML$B$G$J$/$H$b$h$$!#3F(B&unparsed-entity;$B$K$O!$(B<termref def="dt-notation">$B5-K!(B</termref>$B$,4XO"IU$1$i$l!$$3$N5-K!$O!$L>A0$G(B&identified;$B!#5-K!$NL>A05Z$S4XO"IU$1$i$l$?(B&identifier;$B$r!$(BXML&processor;$B$,(B&application;$B$KEO$9$H$$$&MW7o0J30$O!$(BXML$B$O!$(B&unparsed-entity;$B$NFbMF$r@)8B$7$J$$!#(B 1858</termdef> 1859</p> 1860 1861<p>&parsed-entity;$B$O!$<BBN;2>H$K$h$C$FL>A0$G8F$S=P$9!#(B&unparsed-entity;$B$O!$(B<kw>ENTITY</kw>$B7?Kt$O(B<kw>ENTITIES</kw>$B7?$NB0@-$NCM$H$7$F!$L>A0$G;2>H$9$k!#(B</p> 1862 1863<p> 1864<termdef id='gen-entity' term='general entity'><term>$B0lHL<BBN(B</term>$B$O!$J8=qFbMF$NCf$G;HMQ$9$k(B&parsed-entity;$B$H$9$k!#$"$$$^$$$K$J$i$J$$8B$j!$$3$N(B&TR-or-Rec;$B$G$O!$0lHL<BBN$rC1$K(B<emph>$B<BBN(B</emph>$B$H8F$V!#(B</termdef><termdef id='dt-PE' term='Parameter entity'>$B%Q%i%a%?<BBN$O!$(BDTD$BFb$G;HMQ$9$k(B&parsed-entity;$B$H$9$k!#(B</termdef>$B$3$l$i$N#2<oN`$N<BBN$O!$0[$J$k=q<0$G;2>H$7!$0[$J$kJ8L.$GG'<1$9$k!#(B</p> 1865 1866<!-- 1867<div2 id='sec-synchro'> 1868<head>Logical and Physical Structures</head> 1869<p>The logical and physical structures (elements and entities) 1870in an XML document must 1871be properly nested. 1872<termref def='dt-stag'>Tags</termref> and <termref def='dt-element'>elements</termref> must 1873each begin and end in the same <termref def='dt-entity'>entity</termref>, but may 1874refer to other 1875entities internally; <termref def='dt-comment'>comments</termref>, 1876<termref def='dt-pi'>processing instructions</termref>, 1877<termref def='dt-charref'>character 1878references</termref>, and 1879<termref def='dt-entref'>entity references</termref> must each be contained entirely 1880within a single entity. Entities must each contain an integral number 1881of elements, comments, processing instructions, and references, 1882possibly together with character data not contained within any element 1883in the entity, or else they must contain non-textual data, which by 1884definition contains no elements.</p></div2> 1885--> 1886 1887<div2 id='sec-references'> 1888<head>$BJ8;z;2>H5Z$S<BBN;2>H(B</head> 1889<p> 1890<termdef id="dt-charref" term="Character Reference"> 1891<term>$BJ8;z;2>H(B</term>$B$O!$(BISO/IEC 10646$BJ8;z=89g$NFCDj$NJ8;z!$Nc$($P!$F~NO5!4o$+$iD>@\F~NOIT2DG=$JJ8;z$r;2>H$9$k!#(B 1892 1893<scrap lang='ebnf'> 1894<head>$BJ8;z;2>H(B</head> 1895<prod id='NT-CharRef'><lhs>CharRef</lhs> 1896<rhs>'&#' [0-9]+ ';' </rhs> 1897<rhs>| '&hcro;' [0-9a-fA-F]+ ';'</rhs> 1898<wfc def="wf-Legalchar"/> 1899</prod> 1900</scrap> 1901<wfcnote id="wf-Legalchar"> 1902<head>$B@5Ev$JJ8;z(B</head> 1903<p>$BJ8;z;2>H$G;2>H$9$kJ8;z$O!$Hs=*C<5-9f(B<termref def="NT-Char">Char</termref>$B$K=>$o$J$1$l$P$J$i$J$$!#(B</p> 1904</wfcnote> 1905$BJ8;z$,(B "<code>&#x</code>" $B$G;O$^$l$P!$=*C<$N(B "<code>;</code>" $B$^$G$N?t;z5Z$S%"%k%U%!%Y%C%H$O!$(BISO/IEC 10646 $B$NJ8;z%3!<%I$N(B16$B?J?tI=8=$H$9$k!#(B 1906<!--$BF|K\8lLu$K$D$$$F(B: letter$B$O%"%k%U%!%Y%C%H$HLu$7$?!#(B $B;09%(B --> 1907$BJ8;z$,(B "<code>&#</code>" $B$G;O$^$l$P!$=*C<$N(B "<code>;</code>" $B$^$G$N?t;z$O!$J8;z%3!<%I$N(B10$B?J?tI=8=$H$9$k!#(B 1908</termdef> 1909</p> 1910 1911<p> 1912<termdef id="dt-entref" term="Entity Reference"> 1913<term>$B<BBN;2>H(B</term>$B$O!$L>A0$NIU$$$?<BBN$NFbMF$r;2>H$9$k!#(B</termdef><termdef id='dt-GERef' term='General Entity Reference'>$B0lHL<BBN$X$N;2>H$O!$%"%s%Q%5%s%I(B(<code>&</code>)$B5Z$S%;%_%3%m%s(B(<code>;</code>)$B$r6h@Z$j;R$H$7$FMQ$$$k!#(B</termdef><termdef id='dt-PERef' term='Parameter-entity reference'><term>$B%Q%i%a%?<BBN(B</term>$B$X$N;2>H$O!$%Q!<%;%s%H5-9f(B(<code>%</code>)$B5Z$S%;%_%3%m%s(B(<code>;</code>)$B$r6h@Z$j;R$H$7$FMQ$$$k!#(B 1914</termdef> 1915</p> 1916 1917<scrap lang="ebnf"> 1918<head>$B<BBN;2>H(B</head> 1919<prod id='NT-Reference'><lhs>Reference</lhs> 1920<rhs><nt def='NT-EntityRef'>EntityRef</nt> 1921| <nt def='NT-CharRef'>CharRef</nt></rhs></prod> 1922<prod id='NT-EntityRef'><lhs>EntityRef</lhs> 1923<rhs>'&' <nt def='NT-Name'>Name</nt> ';'</rhs> 1924<wfc def='wf-entdeclared'/> 1925<vc def='vc-entdeclared'/> 1926<wfc def='textent'/> 1927<wfc def='norecursion'/> 1928</prod> 1929<prod id='NT-PEReference'><lhs>PEReference</lhs> 1930<rhs>'%' <nt def='NT-Name'>Name</nt> ';'</rhs> 1931<wfc def='wf-entdeclared'/> 1932<vc def='vc-entdeclared'/> 1933<wfc def='textent'/> 1934<wfc def='norecursion'/> 1935<wfc def='indtd'/> 1936</prod> 1937</scrap> 1938 1939<wfcnote id='wf-entdeclared'> 1940<head>$B<BBN$,@k8@$5$l$F$$$k$3$H(B</head> 1941<p>DTD$B$r$b$?$J$$J8=q!$%Q%i%a%?<BBN;2>H$r4^$^$J$$FbIt(BDTD⊂$B$@$1$r$b$DJ8=q!$Kt$O(B "<code>standalone='yes'</code>" $B$r$b$DJ8=q$K$*$$$F!$<BBN;2>H$GMQ$$$k(B <nt def='NT-Name'>Name</nt> $B$O!$$=$N<BBN$N@k8@$GM?$($kL>A0$H!$(B<termref def="dt-match">&match;</termref>$B$7$J$1$l$P$J$i$J$$!#$?$@$7!$(B&well-formed;$B$NJ8=q$O!$<BBN(B&magicents; $B$r@k8@$9$kI,MW$O$J$$!#%Q%i%a%?<BBN$N>l9g$O!$@k8@$O!$;2>H$K@h9T$7$J$1$l$P$J$i$J$$!#F1MM$K!$0lHL<BBN$N>l9g$O!$B0@-%j%9%H@k8@$N(B&default-value;$BFb$G$N;2>H$h$j@h$K!$@k8@$,8=$l$J$1$l$P$J$i$J$$!#(B</p> 1942 1943<p>$B30It(B⊂$BKt$O30It%Q%i%a%?<BBN$G<BBN$r@k8@$9$k$H$-!$(B&non-validating;&processor;$B$,!$@k8@$rFI$_!$=hM}$9$k$3$H$r(B<titleref href='include-if-valid'>$B5AL3$E$1$J$$(B</titleref>$B!#$=$l$i$NJ8=q$G$O!$<BBN$O@k8@$5$l$J$1$l$P$J$i$J$$$H$$$&5,B'$O!$(B&well-formed;$B@)Ls$G$O$J$$!#(B 1944</p> 1945</wfcnote> 1946 1947<vcnote id="vc-entdeclared"> 1948<head>$B<BBN$,@k8@$5$l$F$$$k$3$H(B</head> 1949<p> 1950$B30It(B⊂$BKt$O30It%Q%i%a%?<BBN$r$b$C$F$$$F!$(B"<code>standalone='no'</code>"$B$r$b$DJ8=q$K$*$$$F!$<BBN;2>H$GMQ$$$k(B <nt def='NT-Name'>Name</nt> $B$O!$$=$N<BBN$N@k8@$GM?$($kL>A0$H(B<termref def="dt-match">&match;</termref>$B$7$J$1$l$P$J$i$J$$!#Aj8_1?MQ@-$N$?$a!$(B&valid;$B$JJ8=q$O(B<titleref href="sec-escapes">$B$"$i$+$8$aDj5A$7$?<BBN$N5,Dj(B</titleref>$B$G;XDj$7$?=q<0$K$h$C$F!$<BBN(B &magicents;$B$r@k8@$9$k$3$H$,K>$^$7$$!#%Q%i%a%?<BBN$N>l9g$O!$@k8@$O!$;2>H$K@h9T$7$J$1$l$P$J$i$J$$!#F1MM$K!$0lHL<BBN$N>l9g$O!$B0@-%j%9%H@k8@$N(B&default-value;$BFb$G$N;2>H$h$j$b@h$K!$@k8@$,8=$l$J$1$l$P$J$i$J$$!#(B 1951</p> 1952</vcnote> 1953 1954<!-- FINAL EDIT: is this duplication too clumsy? --> 1955 1956<wfcnote id='textent'> 1957<head>&parsed-entity;</head> 1958<p> 1959$B<BBN;2>H$O!$(B<termref def="dt-unparsed">&unparsed-entity;</termref>$B$NL>A0$r4^$s$G$$$F$O$J$i$J$$!#(B&unparsed-entity;$B$O!$(B<kw>ENTITY</kw>$B7?Kt$O(B<kw>ENTITIES</kw> $B7?$H$7$F@k8@$7$?(B<termref def="dt-attrval">$BB0@-CM(B</termref>$B$H$7$F$@$1;2>H$G$-$k!#(B 1960</p> 1961</wfcnote> 1962 1963<wfcnote id='norecursion'> 1964<head>$B:F5"$J$7(B</head> 1965<p>&parsed-entity;$B$O!$$=$l<+BN$X$N;2>H$r!$D>@\$K$b4V@\$K$b4^$s$G$O$J$i$J$$!#(B</p> 1966</wfcnote> 1967 1968<wfcnote id='indtd'> 1969<head>DTD$B$NCf(B</head> 1970<p> 1971$B%Q%i%a%?<BBN;2>H$O!$(B<termref def='dt-doctype'>DTD</termref>$BFb$K$@$1!$=P8=$7$F$h$$!#(B 1972<!-- 1973In the external DTD subset, a parameter-entity reference is 1974recognized only at the locations where 1975the nonterminal <nt def="NT-PEReference">PEReference</nt> or the 1976special operator <code>%</code> appears in a production of the 1977grammar. In the internal subset, parameter-entity references 1978are recognized only when they match 1979the <nt def="NT-InternalPERef">InternalPERef</nt> non-terminal 1980in the production for <nt def="NT-markupdecl">markupdecl</nt>. 1981--> 1982</p> 1983</wfcnote> 1984 1985<p> 1986$BJ8;z;2>H5Z$S<BBN;2>H$NNc$r!$<!$K<($9!#(B 1987<eg>Type <key>less-than</key> (&hcro;3C;) to save options. 1988This document was prepared on &docdate; and 1989is classified &security-level;.</eg> 1990</p> 1991 1992<p> 1993$B%Q%i%a%?<BBN;2>H$NNc$r!$<!$K<($9!#(B 1994<eg><!ENTITY % ISOLat2 1995 SYSTEM "http://www.xml.com/iso/isolat2-xml.entities" > 1996%ISOLat2; 1997</eg> 1998</p> 1999</div2> 2000 2001<div2 id='sec-entity-decl'> 2002<head>$B<BBN@k8@(B</head> 2003 2004<p> 2005<termdef id="dt-entdecl" term="entity declaration"> 2006$B<BBN$O!$<!$N$H$*$j$K@k8@$9$k!#(B 2007<scrap lang='ebnf'> 2008<head>$B<BBN@k8@(B</head> 2009<prodgroup pcw2="5" pcw4="18.5"> 2010<prod id='NT-EntityDecl'><lhs>EntityDecl</lhs> 2011<rhs><nt def="NT-GEDecl">GEDecl</nt></rhs><com>$B0lHL<BBN(B</com> 2012<rhs>| <nt def="NT-PEDecl">PEDecl</nt></rhs><com>$B%Q%i%a%?<BBN(B</com> 2013</prod> 2014<prod id='NT-GEDecl'><lhs>GEDecl</lhs> 2015<rhs>'<!ENTITY' <nt def='NT-S'>S</nt> <nt def='NT-Name'>Name</nt> 2016<nt def='NT-S'>S</nt> <nt def='NT-EntityDef'>EntityDef</nt> 2017<nt def='NT-S'>S</nt>? '>'</rhs> 2018</prod> 2019<prod id='NT-PEDecl'><lhs>PEDecl</lhs> 2020<rhs>| '<!ENTITY' <nt def='NT-S'>S</nt> '%' <nt def='NT-S'>S</nt> 2021<nt def='NT-Name'>Name</nt> <nt def='NT-S'>S</nt> 2022<nt def='NT-PEDef'>PEDef</nt> <nt def='NT-S'>S</nt>? '>'</rhs> 2023<com>$B%Q%i%a%?<BBN(B</com> 2024</prod> 2025<prod id='NT-EntityDef'><lhs>EntityDef</lhs> 2026<rhs><nt def='NT-EntityValue'>EntityValue</nt> 2027</rhs> 2028<!--<wfc def="WF-EntityValue"/>--> 2029<rhs>| <nt def='NT-ExternalDef'>ExternalDef</nt></rhs> 2030<!--<wfc def="WF-External"/>--> 2031</prod> 2032<!-- FINAL EDIT: what happened to WFs here? --> 2033<prod id='NT-PEDef'><lhs>PEDef</lhs> 2034<rhs><nt def='NT-EntityValue'>EntityValue</nt> 2035| <nt def='NT-ExternalID'>ExternalID</nt></rhs></prod> 2036</prodgroup> 2037</scrap> 2038 2039<nt def='NT-Name'>Name</nt> $B$O!$(B<termref def="dt-entref">$B<BBN;2>H(B</termref>$B$K$*$$$F<BBN$r(B&identify;$B!#(B&unparsed-entity;$B$J$i$P!$(B<kw>ENTITY</kw> $B7?Kt$O(B<kw>ENTITIES</kw>$B7?$NB0@-CMFb$G!$<BBN$r(B&identify;$B!#F10l$N<BBN$,0l2s0J>e@k8@$5$l$l$P!$:G=i$N@k8@$rMQ$$$k!#(B&at-user-option;$B!$J#?t2s@k8@$5$l$k<BBN$K4X$7!$(BXML&processor;$B$O!$7Y9p$r=P$7$F$b$h$$!#(B 2040</termdef> 2041</p> 2042 2043<!-- 2044<wfcnote id="WF-Entityvalue"> 2045<head>Well-Formed Internal Entity</head> 2046<p>General entities defined by an <nt 2047def="NT-EntityValue">EntityValue</nt> must be well-formed, as defined 2048in section <specref ref="wf-entities"/>. 2049</p> 2050</wfcnote> 2051<wfcnote id="WF-External"> 2052<head>Well-Formed External Entity</head> 2053<p>General text entities defined by an <nt 2054def="NT-ExternalDef">ExternalDef</nt>, must be well-formed, as defined 2055in the section on <titleref xml-link="simple" 2056href="wf-entities">well-formed entities.</titleref>.</p> 2057</wfcnote> 2058--> 2059 2060<div3 id='sec-internal-ent'> 2061<head>$BFbIt<BBN(B</head> 2062<p> 2063<termdef id='dt-internent' term="Internal Entity Replacement Text"> 2064$B<BBN$NDj5A$,(B <nt def='NT-EntityValue'>EntityValue</nt>$B$N$H$-!$$3$l$r(B<term>$BFbIt<BBN(B</term>$B$H$$$&!#$3$l$O!$JL8D$NJ*M}E*5-21C10L$r$b$?$:!$<BBN$NFbMF$O!$@k8@Fb$GM?$($k!#(B</termdef>$B@5$7$/(B<termref def='dt-repltext'>&replacement-text;</termref>$B$r@8@.$9$k$K$O!$(B<termref def='dt-litentval'>&literal;$B<BBNCM(B</termref>$BFb$G$N<BBN;2>H5Z$SJ8;z;2>H$N=hM}$,!$I,MW$H$J$k$+$b$7$l$J$$$3$H$KCm0U$9$k!#>\:Y$O!$(B<titleref href='intern-replacement'>$BFbIt<BBN$N(B&replacement-text;$B$N9=C[(B</titleref>$B$r;2>H!#(B 2065 2066<!-- redundant -TWB 2067Within the <nt def="NT-EntityValue">EntityValue</nt>, 2068parameter-entity references and character references are recognized 2069and expanded immediately. 2070General-entity references within the 2071replacement text are not recognized 2072at the time the entity declaration is parsed, though they may be 2073recognized when the entity itself is referred to. 2074--> 2075 2076</p> 2077 2078<p> 2079$BFbIt<BBN$O!$(B<termref def="dt-parsedent">&parsed-entity;</termref>$B$H$9$k!#(B 2080</p> 2081 2082<p>$BFbIt<BBN@k8@$NNc$r!$<!$K<($9!#(B 2083<eg><!ENTITY Pub-Status "This is a pre-release of the specification."></eg></p> 2084</div3> 2085 2086<div3 id='sec-external-ent'> 2087<head>$B30It<BBN(B</head> 2088<p> 2089<termdef id="dt-extent" term="External Entity"> 2090$B<BBN$,FbIt<BBN$G$J$1$l$P!$(B<term>$B30It<BBN(B</term>$B$H$7!$<!$N$H$*$j$K@k8@$9$k!#(B 2091 2092<scrap lang='ebnf'> 2093<head>$B30It<BBN@k8@(B</head> 2094<prod id='NT-ExternalDef'><lhs>ExternalDef</lhs> 2095<rhs><nt def='NT-ExternalID'>ExternalID</nt> 2096<nt def='NT-NDataDecl'>NDataDecl</nt>?</rhs></prod> 2097<prod id='NT-ExternalID'><lhs>ExternalID</lhs> 2098<rhs>'SYSTEM' <nt def='NT-S'>S</nt> 2099<nt def='NT-SystemLiteral'>SystemLiteral</nt></rhs> 2100<rhs>| 'PUBLIC' <nt def='NT-S'>S</nt> 2101<nt def='NT-PubidLiteral'>PubidLiteral</nt> 2102<nt def='NT-S'>S</nt> 2103<nt def='NT-SystemLiteral'>SystemLiteral</nt> 2104</rhs> 2105</prod> 2106<prod id='NT-NDataDecl'><lhs>NDataDecl</lhs> 2107<rhs><nt def='NT-S'>S</nt> 'NDATA' <nt def='NT-S'>S</nt> 2108<nt def='NT-Name'>Name</nt></rhs> 2109<vc def='not-declared'/></prod> 2110</scrap> 2111 2112<nt def='NT-NDataDecl'>NDataDecl</nt> $B$,B8:_$9$l$P!$$3$N<BBN$O!$(B<termref def="dt-unparsed">&unparsed-entity;</termref>$B$H$7!$$=$&$G$J$1$l$P!$(B&parsed-entity;$B$H$9$k!#(B</termdef> 2113</p> 2114 2115<vcnote id='not-declared'> 2116<head>$B5-K!$,@k8@$5$l$F$$$k$3$H(B</head> 2117<p> 2118<nt def='NT-Name'>Name</nt> $B$O!$@k8@$7$?(B<termref def="dt-notation">$B5-K!(B</termref>$B$NL>A0$H(B&match;$B$7$J$1$l$P$J$i$J$$!#(B 2119</p> 2120</vcnote> 2121 2122<p> 2123<termdef id="dt-sysid" term="System Identifier"> 2124$B%-!<%o!<%I(B <kw>SYSTEM</kw> $B$N8e$N(B <nt def='NT-SystemLiteral'>SystemLiteral</nt> $B$r!$<BBN$N(B<term>$B%7%9%F%`(B&identifier;</term>$B$H8F$V!#$3$l$O(BURI$B$H$7!$$=$N<BBN$NFbMF$r<h$j=P$9$N$KMQ$$$F$b$h$$!#(B</termdef>URI$B$H6&$K;H$&$3$H$NB?$$%O%C%7%e(B("<code>#</code>")$B5Z$S%U%i%0%a%s%H(B&identifier;$B$O!$@5<0$K$O!$(BURI$B<+BN$N0lIt$H$O$7$J$$!#%U%i%0%a%s%H(B&identifier;$B$,!$%7%9%F%`(B&identifier;$B$NItJ,$H$7$FM?$($i$l$F$$$k>l9g!$(BXML&processor;$B$O!$(B&error;$B$r=P$7$F$b$h$$!#$3$N(B&TR-or-Rec;$B$NHO0O30$N>pJs(B($BNc$($P!$$"$kFCDj$N(BDTD$B$NFCJL$J(BXML$BMWAGKt$OFCDj$N(B&application;$B$N;EMM$K$h$C$FDj5A$5$l$?=hM}L?Na(B)$B$K$h$C$F>e=q$-$5$l$J$$8B$j!$AjBPE*$J(BURI$B$O!$$=$N<BBN$N0LCV!$$9$J$o$A!$$=$N<BBN$N@k8@$,$"$k%U%!%$%k$KAjBPE*$H$9$k!#$7$?$,$C$F!$(BDTD$B$NFbIt(B⊂$B$K$"$k<BBN@k8@$G$NAjBPE*$J(BURI$B$O!$J8=q$N0LCV$K$D$$$FAjBPE*$H$9$k!#30It(B⊂$B$K$"$k<BBN@k8@$G$NAjBPE*$J(BURI$B$O!$$=$N30It(B⊂$B$r4^$`%U%!%$%k$N0LCV$KAjBPE*$H$9$k!#(B 2125</p> 2126 2127<p> 2128<termdef id="dt-pubid" term="Public identifier"> 2129$B%7%9%F%`(B&identifier;$B0J30$K!$30It<BBN$O!$(B<term>$B8x3+(B&identifier;</term>$B$r4^$s$G$b$h$$!#(B 2130</termdef> 2131$B<BBN$NFbMF$r<h$j=P$9(BXML&processor;$B$O!$$3$N8x3+(B&identifier;$B$rMQ$$$F!$Be$o$j$N(BURI$B$N@8@.$r;n$_$F$b$h$$!#(BXML&processor;$B$,$3$l$K<:GT$7$?>l9g$O!$%7%9%F%`(B&literal;$B$H$7$F;XDj$7$?(BURI$B$rMQ$$$J$1$l$P$J$i$J$$!#(B&match;$B$9$kA0$K!$8x3+(B&identifier;$BFb$K$"$k6uGrJ8;z$+$i$J$k(B&string;$B$O!$$9$Y$FC10l$N(B&space-character;(#x20)$B$K@55,2=$7$J$1$l$P$J$i$:!$A08e$N6uGrJ8;z$O:o=|$7$J$1$l$P$J$i$J$$!#(B 2132</p> 2133 2134<p>$B30It<BBN@k8@$NNc$r!$<!$K<($9!#(B 2135<eg><!ENTITY open-hatch 2136 SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml"> 2137<!ENTITY open-hatch 2138 PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN" 2139 "http://www.textuality.com/boilerplate/OpenHatch.xml"> 2140<!ENTITY hatch-pic 2141 SYSTEM "../grafix/OpenHatch.gif" 2142 NDATA gif ></eg></p> 2143</div3> 2144 2145</div2> 2146 2147<div2 id='TextEntities'> 2148<head>&parsed-entity;</head> 2149<div3 id='sec-TextDecl'> 2150<head>$B%F%-%9%H@k8@(B</head> 2151<p>$B30It(B&parsed-entity;$B$O!$(B<term>$B%F%-%9%H@k8@(B</term>$B$G;O$^$C$F$b$h$$!#(B 2152<scrap lang='ebnf'> 2153<head>$B%F%-%9%H@k8@(B</head> 2154<prodgroup pcw4="12.5" pcw5="13"> 2155<prod id='NT-TextDecl'><lhs>TextDecl</lhs> 2156<rhs>&xmlpio; 2157<nt def='NT-VersionInfo'>VersionInfo</nt>? 2158<nt def='NT-EncodingDecl'>EncodingDecl</nt> 2159<nt def='NT-S'>S</nt>? &pic;</rhs> 2160<!-- <wfc def='wfc-xmldecliteral'/> --> 2161<!-- <wfc def='wfc-no-nonleading-encdec'/> --> 2162</prod> 2163</prodgroup> 2164</scrap> 2165</p> 2166<p>$B%F%-%9%H@k8@$O!$$=$N$^$^$N7A$G8=$l$J$1$l$P$J$i$:!$(B&parsed-entity;$B$X$N;2>H$r7PM3$7$F$O$J$i$J$$$3$H$KCm0U$9$k!#(B</p> 2167<p>$B30It(B&parsed-entity;$B$K$*$$$F!$%F%-%9%H@k8@$O!$@hF,0J30$N$$$+$J$k0LCV$K$b=P8=$7$J$$!#(B</p> 2168</div3> 2169<div3 id='wf-entities'> 2170<head>&well-formed;$B$N(B&parsed-entity;</head> 2171<p>$B%i%Y%k(B<nt def='NT-document'>document</nt>$B$r$b$D@8@.5,B'$K(B&match;$B$9$l$P!$J8=q<BBN$O!$(B&well-formed;$B$H$9$k!#%i%Y%k(B<nt def='NT-ExtParsedEnt'>ExtParsedEnt</nt>$B$r$b$D@8@.5,B'$K(B&match;$B$9$l$P!$30It$N0lHL(B&parsed-entity;$B$O!$(B&well-formed;$B$H$9$k!#%i%Y%k(B<nt def='NT-ExtPE'>ExtPE</nt>$B$r$b$D@8@.5,B'$K(B&match;$B$9$l$P!$30It%Q%i%a%?<BBN$O!$(B&well-formed;$B$H$9$k!#(B 2172 2173<scrap lang='ebnf'> 2174<head>&well-formed;$B$N(B&parsed-entity;</head> 2175<prod id='NT-ExtParsedEnt'><lhs>ExtParsedEnt</lhs> 2176<rhs><nt def='NT-TextDecl'>TextDecl</nt>? 2177<nt def='NT-content'>content</nt></rhs> 2178</prod> 2179<prod id='NT-ExtPE'><lhs>ExtPE</lhs> 2180<rhs><nt def='NT-TextDecl'>TextDecl</nt>? 2181<nt def='NT-extSubset'>extSubset</nt></rhs> 2182</prod> 2183</scrap> 2184&replacement-text;$B$,!$%i%Y%k(B<nt def='NT-content'>content</nt>$B$r$b$D@8@.5,B'$K(B&match;$B$9$l$P!$FbIt$N0lHL(B&parsed-entity;$B$O!$(B&well-formed;$B$H$9$k!#(BDTD$B$r:G8e$^$GFI$_9~$^$J$$$H!$3N<B$K$3$l$rH=Dj$G$-$J$$$3$H$KCm0U!#$9$Y$F$NFbIt$N%Q%i%a%?<BBN$O!$Dj5A$K$h$C$F(B&well-formed;$B$H$9$k!#(B 2185</p> 2186<p>$B<BBN$,(B&well-formed;$B$J7k2L$H$7$F!$(BXML$BJ8=q$NO@M}E*5Z$SJ*M}E*9=B$$O!$@5$7$/F~$l;R$H$J$k!#(B<termref def='dt-stag'>$B3+;O%?%0(B</termref>$B!$(B<termref def='dt-etag'>$B=*N;%?%0(B</termref>$B!$(B<termref def="dt-empty">$B6uMWAG%?%0(B</termref>$B!$(B<termref def='dt-element'>$BMWAG(B</termref>$B!$(B<termref def='dt-comment'>$B%3%a%s%H(B</termref>$B!$(B<termref def='dt-pi'>$B=hM}L?Na(B</termref>$B!$(B<termref def='dt-charref'>$BJ8;z;2>H(B</termref>$B5Z$S(B<termref def='dt-entref'>$B<BBN;2>H(B</termref>$B$,!$0l$D$N<BBN$G3+;O$7!$JL$N<BBN$G=*N;$9$k$3$H$O$J$$!#(B</p> 2187</div3> 2188<div3 id='charencoding'> 2189<head>$B<BBN$K$*$1$kJ8;zId9f2=(B</head> 2190 2191<p>XML$BJ8=qFb$N30It(B&parsed-entity;$B$O!$3F!9!$JL$NJ8;zId9f2=J}<0$rMQ$$$F$b$h$$!#$9$Y$F$N(BXML&processor;$B$O!$(BUTF-8$B$GId9f2=$7$?<BBN!$(BUTF-16$B$GId9f2=$7$?<BBN$r=hM}$G$-$J$1$l$P$J$i$J$$!#(B 2192<!-- 2193It is recognized that for some purposes, the use of additional 2194ISO/IEC 10646 planes other than the Basic Multilingual Plane 2195may be required. 2196A facility for handling characters in these planes is therefore a 2197desirable characteristic in XML processors and applications. 2198--> 2199</p> 2200<p>UTF-16$B$GId9f2=$7$?<BBN$O!$(BISO/IEC 10646$B$NIUO?(BE$B5Z$S(BUnicode$B$NIUO?(BB$B$G5,Dj$9$k(B&byte-order-mark;(ZERO WIDTH NO-BREAK SPACE$BJ8;z!$(B#xFEFF)$B$G;O$^$i$J$1$l$P$J$i$J$$!#$3$l$O!$Id9f2=$NI8<1$G$"$C$F!$(BXML$BJ8=q$N(B&markup;$B$N0lIt$G$b!$J8;z%G!<%?$N0lIt$G$b$J$$!#(BXML&processor;$B$O!$(BUTF-8$B$GId9f2=$7$?J8=q$H(BUTF-16$B$GId9f2=$7$?J8=q$H$N6hJL$r9T$&$?$a$K!$$3$NJ8;z$r;HMQ2DG=$G$J$1$l$P$J$i$J$$!#(B</p> 2201<p>XML&processor;$B$O!$(BUTF-8$B5Z$S(BUTF-16$B$GId9f2=$7$?<BBN$@$1$rFI$`$3$H$rI,?\$H$9$k$,!$B>$NId9f2=$r@$3&$G$OMQ$$$F$*$j!$$=$l$i$NId9f2=$rMQ$$$k<BBN$r(BXML&processor;$B$,=hM}$G$-$k$3$H$,K>$^$7$$!#(BUTF-8$BKt$O(BUTF-16$B0J30$NId9f2=J}<0$rMQ$$$F3JG<$9$k(B&parsed-entity;$B$O!$Id9f2=@k8@$r4^$`(B<titleref href='TextDecl'>$B%F%-%9%H@k8@(B</titleref>$B$G;O$a$J$1$l$P$J$i$J$$!#(B 2202<scrap lang='ebnf'> 2203<head>$BId9f2=@k8@(B</head> 2204<prod id='NT-EncodingDecl'><lhs>EncodingDecl</lhs> 2205<rhs><nt def="NT-S">S</nt> 2206'encoding' <nt def='NT-Eq'>Eq</nt> 2207'"' <nt def='NT-EncName'>EncName</nt> '"' | "'" 2208<nt def='NT-EncName'>EncName</nt> "'" 2209</rhs> 2210</prod> 2211<prod id='NT-EncName'><lhs>EncName</lhs> 2212<rhs>[A-Za-z] ([A-Za-z0-9._] | '-')*</rhs> 2213<com>$B%i%F%sJ8;z$@$1$r4^$`Id9f2=L>(B</com> 2214</prod> 2215</scrap> 2216<termref def='dt-docent'>$BJ8=q<BBN(B</termref>$B$G$O!$Id9f2=@k8@$O!$(B<termref def="dt-xmldecl">XML$B@k8@(B</termref>$B$N0lIt$H$9$k!#(B<nt def="NT-EncName">EncName</nt>$B$O!$;HMQ$9$kId9f2=J}<0$NL>A0$H$9$k!#(B 2217</p> 2218<!-- FINAL EDIT: check name of IANA and charset names --> 2219<p>$BId9f2=@k8@$G$O!$CM(B<code>UTF-8</code>$B!$(B<code>UTF-16</code>$B!$(B<code>ISO-10646-UCS-2</code>$B5Z$S(B<code>ISO-10646-UCS-4</code>$B$O!$(BUnicode$B5Z$S(BISO/IEC 10646$B$N3F<oId9f2=$N$?$a$KMQ$$$k!#CM(B<code>ISO-8859-1</code>$B$+$i(B<code>ISO-8859-9</code>$B$^$G$O!$(BISO 8859$B$NBP1~$9$k%Q!<%H$N$?$a$KMQ$$$k!#CM(B<code>ISO-2022-JP</code>$B!$(B<code>Shift_JIS</code>$B5Z$S(B<code>EUC-JP</code>$B$O!$(BJIS X-0208-1997$B$N3F<oId9f2=$N$?$a$KMQ$$$k!#(BXML&processor;$B$O!$$=$l0J30$NId9f2=J}<0$rG'<1$7$F$b$h$$!#(BInternet Assigned Numbers Authority (IANA)$B$K!$(B(<emph>charset</emph>s$B$H$7$F(B)$BEPO?$5$l$?J8;zId9f2=J}<0$K$D$$$F$O!$$3$l$i0J30$K$D$$$F$b!$EPO?$5$l$?L>A0$G;2>H$9$k$3$H$,K>$^$7$$!#$3$l$i$NEPO?$5$l$?L>A0$O!$BgJ8;z!&>.J8;z$N6hJL$r$;$:$KDj5A$5$l$F$$$k$N$G!$$3$l$i$KBP$9$kHf3S$r;n$_$k(B&processor;$B$O!$BgJ8;z!&>.J8;z$N6hJL$r$7$J$$J}K!$r$H$k$N$,K>$^$7$$$3$H$KCm0U$9$k!#(B</p> 2220<p>XML$B=hM}7O$KEO$5$l$?<BBN$,!$Id9f2=@k8@$r4^$`$K$b$+$+$o$i$:!$@k8@$G<($7$?$b$N0J30$NJ}<0$GId9f2=$5$l$F$$$?$j!$Id9f2=@k8@$,!$30It<BBN$N:G=i0J30$N0LCV$K=P8=$9$l$P!$(B<termref def="dt-error">&error;</termref>$B$H$9$k!#(B 2221</p> 2222<p>&byte-order-mark;$B$G$bId9f2=@k8@$G$b;O$^$i$J$$<BBN$O!$(BUTF-8$BId9f2=$G$J$1$l$P$J$i$J$$!#(B</p> 2223 2224<p><!-- XML processors should make an effort to use all available 2225information, internal and external, to aid in detecting an entity's correct 2226encoding. Such information may include, but is not limited to: 2227<ulist><item><p>An HTTP header</p></item> 2228<item><p>A MIME header obtained other than through HTTP</p></item> 2229<item><p>Metadata provided by the native OS file system or by document 2230management software</p></item> 2231<item><p>The bit patterns at the front of an entity, which may 2232be analyzed to determine if 2233the application of any known encoding yields a valid encoding 2234declaration. See <titleref href='sec-guessing'>the appendix on 2235autodetection of character sets</titleref> 2236for a fuller description.</p></item></ulist> --> 2237$B=hM}$G$-$J$$Id9f2=$r$b$C$?<BBN$r(BXML&processor;$B$,H/8+$7$?$H$-$O!$(B&application;$B$K$=$N;v<B$rDLCN$7!$(B<termref def='dt-fatal'>&fatal-error;</termref>$B$H$7$F!$=hM}$r=*N;$7$J$1$l$P$J$i$J$$!#(B 2238<!-- 2239inform the application of this fact and 2240may 2241allow the application to 2242request either that the entity should be treated as an <termref 2243def="dt-unparsed">unparsed entity</termref>, or that processing should 2244cease.--> 2245</p> 2246<p>$BId9f2=@k8@$NNc$r!$<!$K<($9!#(B 2247<eg><?xml encoding='UTF-8'?> 2248<?xml encoding='EUC-JP'?></eg></p> 2249</div3> 2250</div2> 2251<div2 id='entproc'> 2252<head>XML&processor;$B$K$h$k<BBN5Z$S;2>H$N07$$(B</head> 2253<p>$B<!$NI=$O!$J8;z;2>H!$<BBN;2>H5Z$S(B&unparsed-entity;$B$N8F=P$7$,8=$l$kJ8L.5Z$S3F!9$N>l9g$K$*$1$k(B<termref def='dt-xml-proc'>XML&processor;</termref>$B$KMW5a$9$k?6Iq$$$rMWLs$9$k!#0lHV:8$NNs$N%i%Y%k$O!$G'<1$NJ8L.$r<($9!#(B 2254<glist> 2255<gitem><label>$BFbMF$K$*$1$k;2>H(B</label> 2256<def><p>$BMWAG$N(B<termref def='dt-stag'>$B3+;O%?%0(B</termref>$B5Z$S(B<termref def='dt-etag'>$B=*N;%?%0(B</termref>$B$N4V$NG$0U$N>l=j$G$N;2>H!#Hs=*C<5-9f(B<nt def='NT-content'>content</nt>$B$KBP1~$9$k!#(B</p></def> 2257</gitem> 2258<gitem> 2259<label>$BB0@-CM$K$*$1$k;2>H(B</label> 2260<def><p><termref def='dt-stag'>$B3+;O%?%0(B</termref>$B$NB0@-$NCM!$Kt$O(B<termref def='dt-attdecl'>$BB0@-@k8@(B</termref>$B$K$*$1$k(B&default-value;$B$N$$$:$l$+$G$N;2>H!#Hs=*C<5-9f(B<nt def='NT-AttValue'>AttValue</nt>$B$KBP1~$9$k!#(B</p></def></gitem> 2261<gitem> 2262<label>$BB0@-CM$H$7$F=P8=(B</label> 2263<def><p>$B;2>H$G$O$J$/!$(B<nt def='NT-Name'>Name</nt>$B$H$7$F=P8=!#(B<code>ENTITY</code>$B7?$H$7$F@k8@$7$?B0@-$NCM!$Kt$O(B<code>ENTITIES</code>$B7?$H$7$F@k8@$7$?B0@-$NCM$K$*$1$k(B&space;$B$G6h@Z$k(B&token;$B$N0l$D$H$7$F=P8=$9$k!#(B</p> 2264</def></gitem> 2265<gitem><label>$B<BBNCM$K$*$1$k;2>H(B</label> 2266<def><p>$B<BBN$N@k8@$K$*$1$k!$%Q%i%a%?Kt$OFbIt<BBN$N(B<termref def='dt-litentval'>&literal;$B<BBNCM(B</termref>$BFb$N;2>H!#Hs=*C<5-9f(B<nt def='NT-EntityValue'>EntityValue</nt>$B$KBP1~$9$k!#(B</p></def></gitem> 2267<gitem><label>DTD$B$K$*$1$k;2>H(B</label> 2268<def><p><termref def='dt-doctype'>DTD</termref>$B$NFbIt(B⊂$BKt$O30It(B⊂$B$G$N;2>H!#$?$@$7!$(B<nt def='NT-EntityValue'>EntityValue</nt>$BKt$O(B<nt def="NT-AttValue">AttValue</nt>$B$N30B&$H$9$k!#(B</p></def> 2269</gitem> 2270</glist></p> 2271<!-- border value changed by bosak --> 2272<htable border='1' cellpadding='7' align='center'> 2273<!-- tbody wrapper added by bosak --> 2274<htbody> 2275<tr><td bgcolor='&cellback;' rowspan='2' colspan='1'></td> 2276<td bgcolor='&cellback;' align='center' valign='bottom' colspan='4'>$B<BBN$N7?(B</td> 2277<td bgcolor='&cellback;' rowspan='2' align='center'>$BJ8;z(B</td> 2278</tr> 2279<tr align='center' valign='bottom'> 2280<td bgcolor='&cellback;'>$B%Q%i%a%?(B</td> 2281<td bgcolor='&cellback;'>$BFbIt(B&newline;$B0lHL(B</td> 2282<td bgcolor='&cellback;'>$B30It(B&newline;&parsed-entity;&newline;$B0lHL(B</td> 2283<td bgcolor='&cellback;'>&unparsed-entity;</td> 2284</tr> 2285<tr align='center' valign='middle'> 2286<!--<td bgcolor='&cellback;' rowspan='4'>Recognition 2287Context</td>--> 2288<td bgcolor='&cellback;' align='right'>$BFbMF$G$N(B&newline;$B;2>H(B</td> 2289<td bgcolor='&cellback;'><titleref href='not-recognized'>$BG'<1(B&newline;$B$7$J$$(B</titleref></td> 2290<td bgcolor='&cellback;'><titleref href='included'>$B<h9~$_(B</titleref></td> 2291<td bgcolor='&cellback;'><titleref href='include-if-valid'>$B8!>Z$N$?$a$K<h9~$_(B</titleref></td> 2292<td bgcolor='&cellback;'><titleref href='forbidden'>$B6X;_(B</titleref></td> 2293<td bgcolor='&cellback;'><titleref href='included'>$B<h9~$_(B</titleref></td> 2294</tr> 2295<tr align='center' valign='middle'> 2296<td bgcolor='&cellback;' align='right'>$BB0@-CM$G$N(B&newline;$B;2>H(B</td> 2297<td bgcolor='&cellback;'><titleref href='not-recognized'>$BG'<1(B&newline;$B$7$J$$(B</titleref></td> 2298<td bgcolor='&cellback;'><titleref href='included'>$B<h9~$_(B</titleref></td> 2299<td bgcolor='&cellback;'><titleref href='forbidden'>$B6X;_(B</titleref></td> 2300<td bgcolor='&cellback;'><titleref href='forbidden'>$B6X;_(B</titleref></td> 2301<td bgcolor='&cellback;'><titleref href='included'>$B<h9~$_(B</titleref></td> 2302</tr> 2303<tr align='center' valign='middle'> 2304<td bgcolor='&cellback;' align='right'>$BB0@-CM$H$7$F(B&newline;$B=P8=(B</td> 2305<td bgcolor='&cellback;'><titleref href='not-recognized'>$BG'<1(B&newline;$B$7$J$$(B</titleref></td> 2306<td bgcolor='&cellback;'><titleref href='not-recognized'>$B6X;_(B</titleref></td> 2307<td bgcolor='&cellback;'><titleref href='not-recognized'>$B6X;_(B</titleref></td> 2308<td bgcolor='&cellback;'><titleref href='notify'>$BDLCN(B</titleref></td> 2309<td bgcolor='&cellback;'><titleref href='not recognized'>$BG'<1(B&newline;$B$7$J$$(B</titleref></td> 2310</tr> 2311<tr align='center' valign='middle'> 2312<td bgcolor='&cellback;' align='right'>$B<BBNCM$G$N(B&newline;$B;2>H(B</td> 2313<td bgcolor='&cellback;'><titleref href='included'>$B<h9~$_(B</titleref></td> 2314<td bgcolor='&cellback;'><titleref href='bypass'>&bypass;</titleref></td> 2315<td bgcolor='&cellback;'><titleref href='bypass'>&bypass;</titleref></td> 2316<td bgcolor='&cellback;'><titleref href='forbidden'>$B6X;_(B</titleref></td> 2317<td bgcolor='&cellback;'><titleref href='included'>$B<h9~$_(B</titleref></td> 2318</tr> 2319<tr align='center' valign='middle'> 2320<td bgcolor='&cellback;' align='right'>DTD$B$G$N(B&newline;$B;2>H(B</td> 2321<td bgcolor='&cellback;'><titleref href='as-PE'>PE$B$H$7$F(B&newline;$B<h9~$_(B</titleref></td> 2322<td bgcolor='&cellback;'><titleref href='forbidden'>$B6X;_(B</titleref></td> 2323<td bgcolor='&cellback;'><titleref href='forbidden'>$B6X;_(B</titleref></td> 2324<td bgcolor='&cellback;'><titleref href='forbidden'>$B6X;_(B</titleref></td> 2325<td bgcolor='&cellback;'><titleref href='forbidden'>$B6X;_(B</titleref></td> 2326</tr> 2327</htbody> 2328</htable> 2329<div3 id='not-recognized'> 2330<head>$B!HG'<1$7$J$$!I(B</head> 2331<p>DTD$B$N30$G$O!$(B<code>%</code>$BJ8;z$O!$$$$+$J$kFCDj$N0UL#$b!$$b$?$J$$!#$7$?$,$C$F!$(BDTD$B$G$O%Q%i%a%?<BBN;2>H$H$7$FG'<1$9$k$b$N$G$"$C$F$b!$(B<nt def='NT-content'>content</nt>$BFb$G$O(B&markup;$B$H$7$F$OG'<1$7$J$$!#F1MM$K!$E,@Z$K@k8@$7$?B0@-$NCM$NCf$K8=$l$k>l9g$r=|$-!$(B&unparsed-entity;$B$NL>A0$O!$G'<1$7$J$$!#(B 2332</p> 2333</div3> 2334<div3 id='included'> 2335<head>$B!H<h9~$_!I(B</head> 2336<p><termdef id="dt-include" term="Include">$B<BBN$O!$$=$N(B<termref def='dt-repltext'>&replacement-text;</termref>$B$r<h$j=P$7!$=hM}$9$k$H!$;2>H<+BN$NBe$o$j$K!$;2>H$,$"$C$?0LCV$G!$J8=q$N0lIt$H$7$F4^$^$l$k$+$N$h$&$K(B<term>$B<h$j9~$^$l$k(B</term>$B!#(B&replacement-text;$B$O!$(B<termref def='dt-chardata'>$BJ8;z%G!<%?(B</termref>$B5Z$S(B($B%Q%i%a%?<BBN$r=|$/!#(B)<termref def="dt-markup">&markup;</termref>$B$N$$$:$l$r4^$s$G$b$h$/!$$3$l$i$O!$DL>o$NJ}K!$GG'<1$5$l$J$1$l$P$J$i$J$$!#$?$@$7!$(B&markup;$B$N6h@Z$j;R$r(B&escape;$B$9$k$?$a$KMQ$$$k<BBN(B(&magicents;)$B$N(B&replacement-text;$B$O!$>o$K%G!<%?$H$7$F07$&(B(&string;"<code>AT&amp;T;</code>"$B$O!$(B"<code>AT&T;</code>"$B$KE83+$5$l!$;D$5$l$?%"%s%Q%5%s%I$O!$<BBN;2>H$N6h@Z$j;R$H$7$F$OG'<1$7$J$$!#(B)$B!#J8;z;2>H$O!$<($7$?J8;z$r;2>H<+BN$NBe$o$j$K=hM}$9$k$H$-!$(B<term>$B<h$j9~$^$l$k(B</term>$B!#(B 2337</termdef></p> 2338</div3> 2339<div3 id='include-if-valid'> 2340<head>$B!H8!>Z$N$?$a$K<h9~$_!I(B</head> 2341<p>$BJ8=q$N(B&validity;$B$r(B<termref def="dt-valid">$B8!>Z(B</termref>$B$9$k$K$O!$(BXML&processor;$B$,(B&parsed-entity;$B$X$N;2>H$rG'<1$7$?$H$-!$$=$N(B&replacement-text;$B$r(B<termref def="dt-include">$B<h$j9~$^(B</termref>$B$J$1$l$P$J$i$J$$!#<BBN$,30It<BBN$G$"$C$F!$(BXML$BJ8=q$N(B&validity;$B$r8!>Z$7$J$1$l$P!$<BBN$N(B&replacement-text;$B$r<h$j9~$s$G$b(B<termref def="dt-may">$B$h$$(B</termref>$B$,!$$=$&$7$J$/$H$b$h$$!#(B</p> 2342<p>$B$3$N<h7h$a$O!$(BSGML$B5Z$S(BXML$B$N<BBN$N5!9=$,Ds6!$9$k<+F0<h9~$_5!G=$,!$J8=q:n@.;~$N%b%8%e!<%k2=$r<g$JL\E*$H$7$F@_7W$5$l$F$*$j!$$=$NB>$N(B&application;($BFC$K!$J8=q$N%V%i%&%:(B)$B$K$O!$I,$:$7$bE,@Z$G$O$J$$!$$H$$$&G'<1$K$h$k!#Nc$($P!$%V%i%&%6$O30It(B&parsed-entity;$B$X$N;2>H$r8+$D$1$k$H!$$=$N<BBN$,B8:_$9$k$H$$$&I=<($@$1$r9T$$!$I=<($rMW5a$5$l$?$H$-$K$@$1!$FbMF$r<h$j=P$9$+$b$7$l$J$$!#(B 2343</p> 2344</div3> 2345<div3 id='forbidden'> 2346<head>$B!H6X;_!I(B</head> 2347<p>$B<!$O6X;_$5$l$F$*$j!$(B<termref def='dt-fatal'>&fatal-error;</termref>$B$H$9$k!#(B 2348<ulist> 2349<item><p>a) <termref def='dt-unparsed'>&unparsed-entity;</termref>$B$X$N;2>H$N=P8=!#(B 2350</p></item> 2351<item><p>b) DTD$B$N(B<nt def='NT-EntityValue'>EntityValue</nt>$BKt$O(B<nt def="NT-AttValue">AttValue</nt>$B0J30$NItJ,$K$*$1$k!$J8;z;2>HKt$O0lHL<BBN$X$N;2>H$N=P8=!#(B</p></item> 2352<item><p>c) $BB0@-CMFb$N30It<BBN$X$N;2>H!#(B</p> 2353</item> 2354</ulist> 2355</p> 2356</div3> 2357<div3 id='notify'> 2358<head>$B!HDLCN!I(B</head> 2359<p><termref def='dt-unparsed'>&unparsed-entity;</termref>$B$NL>A0$,!$(B<kw>ENTITY</kw>$BKt$O(B<kw>ENTITIES</kw>$B$NB0@-$NCM$K$*$$$F(B&token;$B$H$7$F8=$l$?$H$-!$(B&processor;$B$O!$(B&application;$B$KBP$7$F!$4XO"IU$1$i$l$?(B<termref def="dt-notation">$B5-K!(B</termref>$BL>!$5-K!$KBP$9$k(B<termref def='dt-sysid'>$B%7%9%F%`(B</termref>&identifier;$B5Z$S(B($BB8:_$9$l$P(B)<termref def='dt-pubid'>$B8x3+(B</termref>&identifier;$B$rDLCN$7$J$1$l$P$J$i$J$$!#(B</p> 2360</div3> 2361<div3 id='bypass'> 2362<head>$B!H(B&bypass;$B!I(B</head> 2363<p>$B0lHL<BBN;2>H$,!$<BBN@k8@$K$*$1$k(B<nt def='NT-EntityValue'>EntityValue</nt>$BFb$K8=$l$k$H$-!$$=$l$OL5;k$5$l!$$=$N$^$^;D$k!#(B</p> 2364</div3> 2365<div3 id='as-PE'> 2366<head>$B!H(BPE$B$H$7$F<h9~$_!I(B</head> 2367<p>$B30It(B&parsed-entity;$B$N>l9g$HF1MM$K!$%Q%i%a%?<BBN$O!$(B&validity;$B$r(B<titleref href='include-if-valid'>$B8!>Z$9$k$H$-$@$1<h$j9~$^$l$k(B</titleref>$BI,MW$,$"$k!#%Q%i%a%?<BBN;2>H$r(BDTD$BFb$KG'<1$7$F<h$j9~$`$H$-!$$=$N(B<termref def='dt-repltext'>&replacement-text;</termref>$B$O!$$=$NA08e$K0l$D$N(B&space-character;(#x20)$B$NIU2C$K$h$C$F0z$-?-$P$5$l$k!#$3$N0U?^$O!$%Q%i%a%?<BBN$N(B&replacement-text;$B$,!$(BDTD$BFb$N$$$/$D$+$NJ8K!E*(B&token;$B$r40A4$K4^$`$H!$@)Ls$9$k$3$H$K$"$k!#(B 2368</p> 2369</div3> 2370<!-- 2371<div3 id='gen-char-entproc'> 2372<head>General and Character Entity Processing</head> 2373<p>General-entity and character references are recognized in three 2374contexts: wherever the nonterminal <nt def='NT-content'>content</nt> may 2375appear, at any point within the nonterminal 2376<nt def='NT-AttValue'>AttValue</nt>, 2377and within the 2378<termref def='dt-litentval'>literal entity value</termref> 2379(<nt def='NT-EntityValue'>EntityValue</nt>) 2380of an internal entity declaration. 2381This section discusses the first two cases; the third 2382is discussed <titleref href='intern-replacement'>below</titleref>. 2383When an <termref def="dt-xml-proc">XML processor</termref> encounters 2384such a reference, or the name of an unparsed entity as the value 2385of an <kw>ENTITY</kw> or <kw>ENTITIES</kw> attribute, then: 2386<olist> 2387 2388<item><p>In all cases, the XML processor may 2389inform the application of the reference's occurrence and its identifier 2390(for an entity reference, the name; for a character 2391reference, 2392the character number in decimal, hexadecimal, or binary form).</p></item> 2393 2394<item><p>For both character and entity references, the processor must 2395remove the reference itself from the <termref def="dt-text">text</termref> data 2396before passing the data to the application. 2397</p></item> 2398 2399<item><p>For character references, the processor must 2400pass the character indicated 2401to the application in 2402place of the reference. 2403</p></item> 2404 2405<item><p>For an external entity, the processor must inform the 2406application of the entity's <termref def="dt-sysid">system 2407identifier</termref>, and <termref def="dt-pubid">public identifier</termref> 2408if any. 2409All strings 2410of white space in the public identifier must be normalized to single space characters (#x20), 2411and leading and trailing white space must be removed.</p></item> 2412 2413<item><p>If the external entity is binary, the processor must inform the 2414application of the associated <termref def="dt-notation">notation</termref> 2415name, and the notation's associated <termref def='dt-sysid'>system</termref> 2416and <termref def='dt-pubid'>public</termref> (if any) 2417identifiers.</p></item> 2418 2419<item><p><termdef id="dt-include" term="Include">For an internal 2420(parsed) entity, the processor must <term>include</term> the 2421entity; that is, retrieve its replacement text 2422and process it as a part of the document 2423(i.e. as <nt def="NT-content">content</nt> or <nt 2424def="NT-AttValue">AttValue</nt>, whichever was being processed when 2425the reference was recognized), passing the result to the application 2426in place of the reference. The replacement text may contain both 2427<termref def='dt-chardata'>character data</termref> 2428and <termref def="dt-markup">markup</termref>, which must be recognized in 2429the usual way, except that the replacement text of entities used to escape 2430markup delimiters (the entities &magicents;) is always treated as 2431data. (The string "<code>AT&amp;T;</code>" expands to 2432"<code>AT&T;</code>" since the ampersand replacing "<code>&amp;</code>" 2433is not recognized 2434as an entity-reference delimiter.) </termdef></p> 2435<p>Since the entity may contain other entity references, 2436an XML processor may have to repeat the inclusion process recursively.</p> 2437</item> 2438<item><p>If the entity is an external parsed entity, then in order to 2439<termref def="dt-valid">validate</termref> the XML document, the processor must 2440<termref def="dt-include">include</termref> the content of the 2441entity.</p></item> 2442 2443<item><p>If the entity is an external parsed entity, and the processor is not 2444attempting to <termref def="dt-valid">validate</termref> the XML document, the 2445processor <termref def="dt-may">may</termref>, but need not, <termref 2446def="dt-include">include</termref> the entity's content.</p> 2447<p>This rule is based on the recognition that the automatic inclusion 2448provided by the SGML and XML entity mechanism, primarily designed 2449to support modularity in authoring, is not necessarily 2450appropriate for other applications, in particular document browsing. 2451Browsers, for example, when encountering an external parsed entity reference, 2452might choose to provide a visual indication of the entity's 2453presence and retrieve it for display only on demand. 2454</p></item> 2455</olist> 2456</p> 2457<p><termdef id="dt-escape" term="escape">Entity and character 2458references can both be used to <term>escape</term> the left angle bracket, 2459ampersand, and other delimiters. A set of general entities 2460(&magicents;) is specified for this purpose. 2461Numeric character references may also be used; they are 2462expanded immediately when recognized, and must be treated as 2463character data, so the numeric character references 2464"<code>&#60;</code>" and "<code>&#38;</code>" may be used to 2465escape <code><</code> and <code>&</code> when they occur 2466in character data.</termdef></p> 2467</div3> 2468<div3 id='PE-proc'> 2469<head>Parameter Entity Processing</head> 2470<p>Parameter-entity references are only recognized in the 2471<termref def='dt-doctype'>DTD</termref>. 2472Their processing, when they appear 2473within the 2474<termref def='dt-litentval'>literal entity value</termref> 2475(<nt def='NT-EntityValue'>EntityValue</nt>) 2476of an internal entity declaration, 2477is discussed <titleref href='intern-replacement'>below</titleref>. 2478They have these intended uses: 2479<olist> 2480<item><p>as a replacement for one or more complete markup declarations</p></item> 2481<item><p>as a replacement for one or more complete "groups" in 2482element declarations</p></item> 2483<item><p>as a replacement for one or more complete "tokens" in 2484markup declarations</p></item> 2485</olist> 2486</p> 2487<p>The constraints requiring that PE replacement texts be properly nested 2488with <titleref href='vc-PEinMarkupDecl'>markup declarations</titleref> 2489and <titleref href='vc-PEinGroup'>content groups</titleref> 2490govern the first two usages.</p> 2491<p>To support the third intended usage, 2492when an XML processor encounters a parameter-entity reference 2493(outside of the 2494<termref def='dt-litentval'>literal entity value</termref> in an entity 2495declaration), 2496it must <termref def="dt-include">include</termref> 2497the named entity, but first expand its 2498<termref def='dt-repltext'>replacement text</termref> by attaching 2499space (#x20) characters to its beginning and the end, before 2500processing it.</p> 2501<p>The DTD text must match the relevant 2502rules of this specification's grammar after all parameter-entity 2503references have been expanded. 2504<!-In addition, parameter entities referred to in specific 2505contexts are required to satisfy certain constraints in their 2506replacement text; for example, a parameter entity referred to within 2507the internal DTD subset must match the rule for <nt 2508def="NT-markupdecl">markupdecl</nt>. -> 2509</p> 2510</div3> 2511--> 2512</div2> 2513<div2 id='intern-replacement'> 2514<head>$BFbIt<BBN(B&replacement-text;$B$N9=C[(B</head> 2515<p>$BFbIt<BBN$N<h07$$$N5,Dj$G!$<BBNCM$rFs$D$N7A<0$K6hJL$9$k$3$H$OLr$KN)$D!#(B<termdef id="dt-litentval" term='Literal Entity Value'><term>&literal;$B<BBNCM(B</term>$B$O!$<BBN@k8@Fb$K<B:]$KB8:_$9$k!$0zMQId$G0O$`(B&string;$B$H$9$k!#$3$l$O!$Hs=*C<5-9f(B<nt def='NT-EntityValue'>EntityValue</nt>$B$K(B&match;$B$9$k!#(B</termdef><termdef id='dt-repltext' term='Replacement Text'><term>&replacement-text;</term>$B$O!$J8;z;2>H5Z$S(B¶meter;$B<BBN;2>H$NCV49$(8e$K$*$1$k!$<BBN$NFbMF$H$9$k!#(B</termdef></p> 2516 2517<p>$BFbIt<BBN@k8@Fb$GM?$($k(B&literal;$B<BBNCM(B<!-- replacement text -->(<nt def='NT-EntityValue'>EntityValue</nt>)$B$O!$J8;z;2>H!$(B¶meter;$B<BBN;2>H5Z$S0lHL<BBN;2>H$r4^$s$G$h$$!#$3$l$i$N;2>H$O!$(B<!-- replacement text. -->&literal;$B<BBNCMFb$K40A4$K4^$^$l$F$$$J$1$l$P$J$i$J$$!#(B<termref def='dt-include'>$BE83+$9$k(B</termref>$B<B:]$N(B&replacement-text;($B@h$K<($7$?$b$N(B)$B$O!$;2>H$9$k(B¶meter;$B<BBN$N(B<emph>&replacement-text;</emph>$B$r4^$^$J$1$l$P$J$i$:!$(B&literal;$B<BBNCMFb$G$NJ8;z;2>H$NBe$o$j$K;2>H$7$?J8;z$r4^$^$J$1$l$P$J$i$J$$!#$7$+$7!$0lHL<BBN;2>H$O!$$=$N$^$^;D$7(B, $BE83+$7$F$O$J$i$J$$!#(B 2518<!-- in the replacement text that is to be included. --> 2519$BNc$($P!$<!$N@k8@$rM?$($?$H$9$k!#(B 2520 2521<eg><![CDATA[<!ENTITY % pub "Éditions Gallimard" > 2522<!ENTITY rights "All rights reserved" > 2523<!ENTITY book "La Peste: Albert Camus, 2524© 1947 %pub;. &rights;" >]]></eg> 2525$B<BBN$N(B&replacement-text;"<code>book</code>"$B$O!$<!$N$H$*$j$H$J$k!#(B 2526<eg>La Peste: Albert Camus, 2527© 1947 Éditions Gallimard. &rights;</eg> 2528$B;2>H(B"<code>&book;</code>"$B$,!$J8=q$NFbMFKt$OB0@-CMFb$K=P8=$7$F$$$l$P!$0lHL<BBN;2>H(B"<code>&rights;</code>"$B$O!$E83+$5$l$F$$$k!#(B</p> 2529<p>$B$3$l$i$NC1=c$J5,B'$O!$J#9gAj8_:nMQ$r$b$D!#(B 2530<!-- $BF|K\8lLu$K$D$$$F!'(B interaction = $BAj8_:nMQ!J6bK\!K(B--> 2531$BFq$7$$Nc$K$D$$$F$N>\:Y$O!$(B<titleref href='sec-entexpand'>$B<BBN;2>H$NE83+$NIUO?(B</titleref>$B$r;2>H$N$3$H!#(B 2532</p> 2533<!-- Replaced by the above -TB 2534<p>Implementors of XML processors need to know the rules for 2535expansion of references in more detail. These rules only come into 2536play when the replacement text for an internal entity itself contains 2537other references. 2538<olist> 2539<item><p>In the replacement text of an internal entity, parameter-entity 2540references and character references in the replacement text 2541are recognized and resolved 2542when the entity declaration is parsed, 2543before the replacement text is stored in 2544the processor's symbol table. 2545General-entity references in the replacement text are not 2546resolved when the entity declaration is parsed.</p></item> 2547<item><p>In the document, when a general-entity reference is 2548resolved, its replacement text is parsed. Character references 2549encountered in the replacement text are 2550resolved immediately; general-entity references encountered in the 2551replacement text may be resolved or left unresolved, as described 2552<titleref href="entproc">above</titleref>. 2553Character and general-entity references must be 2554contained entirely within the entity's replacement text. 2555</p></item> 2556</olist> 2557</p> 2558 2559<p>Simple character references do not suffice to escape delimiters 2560within the replacement text of an internal entity: they will be 2561expanded when the entity declaration is parsed, before the replacement 2562text is stored in the symbol table. When the entity itself is 2563referred to, the replacement text will be parsed again, and the 2564delimiters (no longer character references) 2565will be recognized as delimiters. To escape the 2566characters &magicents; in an entity replacement text, use 2567a general-entity reference or a doubly-escaped character reference. 2568See <titleref href='sec-entexpand'>the appendix on expansion 2569of entity references</titleref> 2570for detailed examples.</p> 2571--> 2572 2573 2574</div2> 2575<div2 id='sec-predefined-ent'> 2576<head>$BDj5A:Q$_<BBN(B</head> 2577<p><termdef id="dt-escape" term="escape"> 2578$B<BBN;2>H5Z$SJ8;z;2>H$N$$$:$l$b!$(B&left-angle-bracket;$B!$%"%s%P%5%s%I5Z$SB>$N6h@Z$j;R$r(B<term>&escape;</term>$B$9$k$?$a$K;HMQ$G$-$k!#$$$/$D$+$N0lHL<BBN!J(B&magicents;$B!K$r!$$3$NL\E*$N$?$a$K;XDj$9$k!#?tCM$K$h$kJ8;z;2>H$b!$F1MM$NL\E*$N$?$a$K;HMQ$G$-$k!#J8;z;2>H$O!$G'<1$5$l$k$HD>$A$KE83+$5$l!$J8;z%G!<%?$H$7$F07$o$l$k$N$G!$?tCM$K$h$kJ8;z;2>H(B"<code>&#60;</code>"$B5Z$S(B"<code>&#38;</code>"$B$O!$J8;z%G!<%?Fb$K=P8=$9$k(B<code><</code>$B5Z$S(B<code>&</code>$B$r(B&escape;$B$9$k$?$a$K;HMQ$G$-$k!#(B</termdef></p> 2579<p>$B$9$Y$F$N(BXML&processor;$B$O!$@k8@$5$l$F$$$k$+$I$&$+$K4X78$J$/!$$3$l$i$N<BBN$rG'<1$7$J$/$F$O$J$i$J$$!#(B<termref def='dt-interop'>$BAj8_1?MQ@-$N$?$a(B</termref>$B!$(B&valid;$B$J(BXML$BJ8=q$O!$$3$l$i$N<BBN$r;HMQ$9$kA0$K!$B>$N<BBN$HF1MM$K!$@k8@$9$k$3$H$,K>$^$7$$!#<BBN$r@k8@$9$k>l9g$O!$(B&replacement-text;$B$r(B&escape;$B$9$k0lJ8;z$H$9$kFbIt<BBN$H$7$F!$<!$N$H$*$j$K@k8@$7$J$1$l$P$J$i$J$$!#(B 2580<eg><![CDATA[<!ENTITY lt "&#60;"> 2581<!ENTITY gt ">"> 2582<!ENTITY amp "&#38;"> 2583<!ENTITY apos "'"> 2584<!ENTITY quot """> 2585]]></eg> 2586"<code>lt</code>"$B5Z$S(B"<code>amp</code>"$B@k8@Fb$N(B"<code><</code>"$B5Z$S(B"<code>&</code>"$BJ8;z$O!$<BBN$NCV49%F%-%9%H$,!$(B&well-formed;$B$H$J$k$h$&$KFs=E$K(B&escape;$B$5$l$k$3$H$KCm0U!#(B 2587</p> 2588</div2> 2589 2590 2591<div2 id='Notations'> 2592<head>$B5-K!@k8@(B</head> 2593 2594 2595<p> 2596<termdef id="dt-notation" term="Notation"> 2597<term>$B5-K!(B</term>$B$O!$(B<termref def="dt-extent">&unparsed-entity;</termref>$B$N7A<0$r(B&identify;$BL>A0$+!$Kt$O(B<termref def="dt-pi">$B=hM}L?Na(B</termref>$B$NBP>]$H$9$k(B&application;$B$r(B&identify;$BL>A0$H$9$k!#(B</termdef></p> 2598<p><termdef id="dt-notdecl" term="Notation Declaration"> 2599<term>$B5-K!@k8@(B</term>$B$O!$5-K!$NL>A05Z$S30It(B&identifier;$B$rDs6!$9$k!#$3$NL>A0$O!$<BBN5Z$SB0@-%j%9%H@k8@JB$S$KB0@-;XDj$KMQ$$$k!#30It(B&identifier;$B$O!$M?$($i$l$?5-K!$N%G!<%?$r=hM}$G$-$k%X%k%Q(B&application;$B$r!$(BXML&processor;$BKt$O%/%i%$%"%s%H%"%W%j%1!<%7%g%s$,C5$9$?$a$K!$MxMQ$G$-$k!#(B 2600<scrap lang='ebnf'> 2601<head>$B5-K!@k8@(B</head> 2602<prod id='NT-NotationDecl'><lhs>NotationDecl</lhs> 2603<rhs>'<!NOTATION' <nt def='NT-S'>S</nt> <nt def='NT-Name'>Name</nt> 2604<nt def='NT-S'>S</nt> 2605(<nt def='NT-ExternalID'>ExternalID</nt> | 2606<nt def='NT-PublicID'>PublicID</nt>) 2607<nt def='NT-S'>S</nt>? '>'</rhs></prod> 2608<prod id='NT-PublicID'><lhs>PublicID</lhs> 2609<rhs>'PUBLIC' <nt def='NT-S'>S</nt> 2610<nt def='NT-PubidLiteral'>PubidLiteral</nt> 2611</rhs></prod> 2612</scrap> 2613</termdef></p> 2614<p>$B@k8@$7!$B0@-CM!$B0@-Dj5AKt$O<BBN@k8@$G;2>H$9$k$9$Y$F$N5-K!$K$D$$$F!$(BXML&processor;$B$O!$5-K!$NL>A05Z$S30It(B&identifier;$B$r(B&application;$B$KDs6!$7$J$1$l$P$J$i$J$$!#$5$i$K!$30It(B&identifier;$B$r!$(B<termref def="dt-sysid">$B%7%9%F%`(B&identifier;</termref>$B!$%U%!%$%kL>Kt$O$=$NB>$N>pJs$KE83+$7$F$b$h$/!$$3$l$i$rMQ$$$F!$(B&application;$B$O!$$=$N5-K!$N%G!<%?$r=hM}$9$k(B&processor;$B$r5/F0$9$k!#(B($B$7$+$7!$(BXML&processor;$BKt$O(B&application;$B$,F0:n$9$k%7%9%F%`$G$OMxMQ$G$-$J$$5-K!$r!$(BXML$BJ8=q$,@k8@$7;2>H$7$F$b!$$3$l$O!$(B&error;$B$H$O$7$J$$!#!K(B</p> 2615</div2> 2616 2617 2618<div2 id='sec-doc-entity'> 2619<head>$BJ8=q<BBN(B</head> 2620 2621<p><termdef id="dt-docent" term="Document Entity"><term>$BJ8=q<BBN(B</term>$B$O!$<BBN$N7A@.$9$kLZ9=B$$N(B&root;$B$G$"$C$F!$(B<termref def="dt-xml-proc">XML&processor;</termref>$B$,!$=hM}$r3+;O$9$kCOE@$H$9$k!#(B</termdef>$B$3$N(B&TR-or-Rec;$B$O!$(BXML&processor;$B$,!$J8=q<BBN$NB8:_$9$k>l=j$r$I$N$h$&$K8+$D$1$k$+$O!$5,Dj$7$J$$!#B>$N<BBN$H0[$J$j!$J8=q<BBN$OL>A0$r$b$?$:!$$$$+$J$k<1JL$b$J$7$K(B&processor;$B$X$NF~NO(B&stream;$B$K=P8=$7$F$b$h$$!#(B</p> 2622</div2> 2623 2624 2625</div1> 2626<!-- &Conformance; --> 2627<div1 id='sec-conformance'> 2628<head>$BE,9g@-(B</head> 2629 2630<p>$BE,9g$9$k(B<termref def="dt-xml-proc">XML&processor;</termref>$B$O!$(B&validating;$B$b$N5Z$S(B&non-validating;$B$b$N$N!$Fs$D$KJ,N`$5$l$k!#(B</p> 2631<p>&validating;$B%7%9%F%`5Z$S(B&non-validating;$B%7%9%F%`$O!$$3$N(B&TR-or-Rec;$B$,5,Dj$9$k(B&well-formed;$B@)Ls$X$N0cH?$rJs9p$7$J$1$l$P$J$i$J$$!#(B</p> 2632<p><termdef id="dt-validating" term="Validating Processor"><term>&validating;&processor;</term>$B$O!$(B<termref def="dt-doctype">DTD</termref>$BFb$N@k8@$K$h$C$F<($5$l$?!$@)Ls$X$N0cH?$rJs9p$7$J$1$l$P$J$i$J$$!#$5$i$K!$$3$N(B&TR-or-Rec;$B$,5,Dj$9$k(B&validity;$B@)Ls$X$N0cH?$r!$$9$Y$FJs9p$7$J$1$l$P$J$i$J$$!#(B 2633</termdef> 2634</p> 2635</div1> 2636 2637<div1 id='sec-notation'> 2638<head>$B5-K!(B</head> 2639 2640<p>XML$B$N7A<0E*$JJ8K!$O!$4JC1$J3HD%(BBackus-Naur Form(EBNF)$B5-K!$K$h$C$FM?$($k!#J8K!$N3F5,B'$O!$<!$N7A<0$G!$5-9f$r0l$DDj5A$9$k!#(B 2641<eg>symbol ::= expression</eg></p> 2642<p>$B5-9f$O!$@55,I=8=$GDj5A$9$k$H$-$OBgJ8;z$G;O$a!$$=$&$G$J$1$l$P!$>.J8;z$G;O$a$k!#(B&string;&literal;$B$O!$0zMQId$G0O$`!#(B 2643<!--* The distinction between symbols which can and cannot be 2644recognized using simple regular expressions may be used to set the 2645boundary between an implementation's lexical scanner and its parser, 2646but this specification neither constrains the placement of that 2647boundary nor presupposes that all implementations will have one. *--> 2648</p> 2649 2650<p>$B5,B'$N1&B&$N<0Fb$G$O!$0l$DKt$OJ#?t$NJ8;z$+$i$J$k(B&string;$B$H(B&match;$B$9$k$?$a$K!$<!$N<0$r;HMQ$9$k!#(B 2651<glist> 2652<gitem> 2653<label><code>#xN</code></label> 2654<def><p>$B$3$3$G!$(B<code>N</code>$B$O(B16$B?J$N@0?t$H$9$k!#(BISO/IEC 10646$B$NJ8;z$G$"$C$F!$@55,7A(B(UCS-4)$B$N(B&code-value;$B$rId9f$J$7(B2$B?J?t$H$7$F2r<a$7$?$H$-!$;XDj$7$?CM$HEy$7$$$b$N$H(B&match;$B$9$k!#(B<code>#xN</code>$B7A<0$N@hF,$K%<%m$,$$$/$D$+8=$l$k$+$O!$0UL#$r$b$?$J$$!#(B&code-value;<!-- bit string -->$B$K$*$1$k@hF,$N%<%m$N?t$O!$J8;z$NId9f2=$K$h$C$F7hDj$5$l$k$N$G!$(BXML$B$K$H$C$F$O0UL#$,$J$$!#(B 2655</p></def> 2656</gitem> 2657<gitem> 2658<label><code>[a-zA-Z]</code>, <code>[#xN-#xN]</code></label> 2659<def><p>$B;XDj$7$?HO0O$NCM(B($BN>C<$NCM$r4^$`!#!K$r$b$DG$0U$N(B<termref def='dt-character'>$BJ8;z(B</termref>$B$H(B&match;$B$9$k!#(B</p></def> 2660</gitem> 2661<gitem> 2662<label><code>[^a-z]</code>, <code>[^#xN-#xN]</code></label> 2663<def><p>$B;XDj$7$?HO0O(B<emph>$B30(B</emph>$B$NCM$r$b$DG$0U$N(B<termref def='dt-character'>$BJ8;z(B</termref>$B$H(B&match;$B$9$k!#(B</p></def> 2664</gitem> 2665<gitem> 2666<label><code>[^abc]</code>, <code>[^#xN#xN#xN]</code></label> 2667<def><p>$B;XDj$7$?J8;z0J30$NCM$r$b$DG$0U$N(B<termref def='dt-character'>$BJ8;z(B</termref>$B$H(B&match;$B$9$k!#(B</p></def> 2668</gitem> 2669<gitem> 2670<label><code>"string"</code></label> 2671<def><p>&double-quote;$B$G0O$`(B&string;&literal;$B$H(B<termref def="dt-match">&match;$B$7$F$$$k(B</termref>&string;&literal;$B$H(B&match;$B$9$k!#(B</p></def> 2672</gitem> 2673<gitem> 2674<label><code>'string'</code></label> 2675<def><p>&single-quote;$B$G0O$`(B&string;&literal;$B$H(B<termref def="dt-match">&match;$B$7$F$$$k(B</termref>&string;&literal;$B$H(B&match;$B$9$k!#(B</p></def> 2676</gitem> 2677</glist> 2678$B$3$l$i$N5-9f$O!$<!$N7A<0$NAH9g$;$G;HMQ$9$k!#$3$3$G!$(B<code>A</code>$B5Z$S(B<code>B</code>$B$O!$C1=c$J<0$H$9$k!#(B 2679<glist> 2680<gitem> 2681<label>(<code>expression</code>)</label> 2682<def><p><code>expression</code>$B$O!$0l$D$N$^$H$^$j$H$7$F07$$!$$3$3$K<($9AH9g$;$G;H$C$F$b$h$$!#(B</p></def> 2683</gitem> 2684<gitem> 2685<label><code>A?</code></label> 2686<def><p><code>A</code>$BKt$O2?$b$J$7$H(B&match;$B$9$k(B($B%*%W%7%g%s$N(B<code>A</code>)$B!#(B</p></def> 2687</gitem> 2688<gitem> 2689<label><code>A B</code></label> 2690<def><p><code>A</code>$B$N<!$K(B<code>B</code>$B$,=P8=$9$k$b$N$H(B&match;$B$9$k!#(B 2691</p></def> 2692</gitem> 2693<gitem> 2694<label><code>A | B</code></label> 2695<def><p><code>A</code>$BKt$O(B<code>B</code>$B!$$?$@$7!$N>J}$G$O$J$$!$$H(B&match;$B$9$k!#(B 2696</p></def> 2697</gitem> 2698<gitem> 2699<label><code>A - B</code></label> 2700<def><p><code>A</code>$B$H(B&match;$B$9$k$,!$(B<code>B</code>$B$H$O(B&match;$B$7$J$$!$G$0U$N(B&string;$B$H(B&match;$B$9$k!#(B</p></def> 2701</gitem> 2702<gitem> 2703<label><code>A+</code></label> 2704<def><p><code>A</code>$B$N(B1$B2s0J>e$N7+JV$7$H(B&match;$B$9$k!#(B</p></def> 2705</gitem> 2706<gitem> 2707<label><code>A*</code></label> 2708<def><p><code>A</code>$B$N(B0$B2s0J>e$N7+JV$7$H(B&match;$B$9$k!#(B</p></def> 2709</gitem> 2710<!-- DEATH TO %'s 2711<gitem> 2712<label><code>%a</code></label> 2713<def><p>specifies that <emph>in the external DTD subset</emph> a 2714<termref def='dt-param-entity'>parameter entity</termref> may occur in the 2715text at the position where <code>a</code> may occur; if so, its 2716replacement text must match <code>S? a S?</code>. If 2717the expression <code>a</code> is governed by a suffix operator, then 2718the suffix operator determines both the maximum number of parameter-entity 2719references allowed and the number of occurrences of <code>a</code> 2720in the replacement text of the parameter entities: <code>%a*</code> 2721means that <code>a</code> must occur zero or more times, and 2722that some of its occurrences may be replaced by references to 2723parameter entities whose replacement text must contain zero or 2724more occurrences of <code>a</code>; it is thus a more compact way 2725of writing <code>%(a*)*</code>. 2726Similarly, <code>%a+</code> means that <code>a</code> 2727must occur one or more times, and may be replaced by 2728parameter entities with replacement text matching 2729<code>S? (a S?)+</code>. 2730The recognition of parameter entities in the internal subset is much more 2731highly constrained. 2732</p></def> 2733</gitem> 2734--> 2735</glist> 2736$B@8@.5,B'Fb$G;HMQ$9$kB>$N5-K!$r!$<!$K<($9!#(B 2737<glist> 2738<gitem> 2739<label><code>/* ... */</code></label> 2740<def><p>$B%3%a%s%H!#(B</p></def> 2741</gitem> 2742<gitem> 2743<label><code>[ wfc: ... ]</code></label> 2744<def><p>&well-formed;$B@)Ls!#@8@.5,B'$KIUM?$7$?!$(B<termref def="dt-wellformed">&well-formed;</termref>$B$NJ8=q$K4X$9$k@)Ls$r!$L>A0$K$h$C$F(B&identify;$B!#(B</p></def> 2745</gitem> 2746<gitem> 2747<label><code>[ vc: ... ]</code></label> 2748<def><p>&validity;$B@)Ls!#@8@.5,B'$KIUM?$7$?!$(B<termref def="dt-valid">&valid;</termref>$B$JJ8=q$K4X$9$k@)Ls$r!$L>A0$K$h$C$F(B&identify;$B!#(B 2749</p></def> 2750</gitem> 2751</glist> 2752</p></div1> 2753 2754</body> 2755<back> 2756<!-- &SGML; --> 2757 2758<!-- &Biblio; --> 2759<div1 id='sec-bibliography'> 2760 2761<head>$B;29MJ88%(B</head> 2762<div2 id='sec-existing-stds'> 2763<head>&normative;$B;29MJ88%(B</head> 2764<!--* <ulist><item> 2765<p>Unicode and ISO/IEC 10646. This specification depends on the 2766international standard ISO/IEC 10646 (with amendments AM 1 through AM 7) 2767and the Unicode Standard, Version 2.0 <bibref ref='Unicode'/>, 2768which define the encodings and meanings of 2769the <termref def="dt-character">characters</termref> which 2770make up XML <termref def="dt-text">text</termref>. 2771All the characters in ISO/IEC 10646 are present, at the same code points, 2772in Unicode.</p></item> 2773<item><p>XXX XXX defines the syntax and semantics of 2774Uniform Resource Identifiers, or URIs.</p></item> 2775<item><p>IETF RFC 1766, with ISO 639 and 3166, 2776describe the codes that may be used in the 2777special <titleref href='sec-lang-tag'>xml:lang</titleref> attribute.</p> 2778</item></ulist> 2779*--> 2780 2781<blist> 2782 2783<bibl id='RFC1766' key='IETF RFC 1766'> 2784IETF (Internet Engineering Task Force). 2785<emph>RFC 1766: Tags for the Identification of Languages</emph>, 2786ed. H. Alvestrand. 27871995. 2788</bibl> 2789 2790<bibl id='ISO639' key='ISO 639'> 2791(International Organization for Standardization). 2792<emph>ISO 8879:1988 (E). 2793Code for the representation of names of languages.</emph> 2794[Geneva]: International Organization for 2795Standardization, 1988.</bibl> 2796 2797<bibl id='ISO3166' key='ISO 3166'> 2798(International Organization for Standardization). 2799<emph>ISO 3166-1:1997 (E). 2800Codes for the representation of names of countries and their subdivisions 2801— Part 1: Country codes</emph> 2802[Geneva]: International Organization for 2803Standardization, 1997.</bibl> 2804 2805<bibl id='ISO10646' key='ISO/IEC 10646'>ISO 2806(International Organization for Standardization). 2807<emph>ISO/IEC 10646-1993 (E). Information technology — Universal 2808Multiple-Octet Coded Character Set (UCS) — Part 1: 2809Architecture and Basic Multilingual Plane.</emph> 2810[Geneva]: International Organization for 2811Standardization, 1993 (plus amendments AM 1 through AM 7). 2812</bibl> 2813 2814<bibl id='Unicode' key='Unicode'>The Unicode Consortium. 2815<emph>The Unicode Standard, Version 2.0.</emph> 2816Reading, Mass.: Addison-Wesley Developers Press, 1996.</bibl> 2817 2818</blist> 2819 2820</div2> 2821 2822<div2><head>$BB>$N;29MJ88%(B</head> 2823 2824<blist> 2825 2826<bibl id='Aho' key='Aho/Ullman'>Aho, Alfred V., 2827Ravi Sethi, and Jeffrey D. Ullman. 2828<emph>Compilers: Principles, Techniques, and Tools</emph>. 2829Reading: Addison-Wesley, 1986, rpt. corr. 1988.</bibl> 2830 2831<bibl id="Berners-Lee" xml-link="simple" key="Berners-Lee et al."> 2832Berners-Lee, T., R. Fielding, and L. Masinter. 2833<emph>Uniform Resource Identifiers (URI): Generic Syntax and 2834Semantics</emph>. 28351997. 2836(Work in progress; see updates to RFC1738.)</bibl> 2837 2838<bibl id='ABK' key='Brüggemann-Klein'>Brüggemann-Klein, Anne. 2839<emph>Regular Expressions into Finite Automata</emph>. 2840Extended abstract in I. Simon, Hrsg., LATIN 1992, 2841S. 97-98. Springer-Verlag, Berlin 1992. 2842Full Version in Theoretical Computer Science 120: 197-213, 1993. 2843<!-- 2844Universitat Freiburg, Institut fur Informatik, 2845Bericht 33, Juli 1991.--> 2846</bibl> 2847 2848<bibl id='ABKDW' key='Brüggemann-Klein and Wood'>Brüggemann-Klein, Anne, 2849and Derick Wood. 2850<emph>Deterministic Regular Languages</emph>. 2851Universität Freiburg, Institut für Informatik, 2852Bericht 38, Oktober 1991. 2853</bibl> 2854 2855<bibl id="RFC1738" xml-link="simple" key="IETF RFC1738"> 2856IETF (Internet Engineering Task Force). 2857<emph>RFC 1738: Uniform Resource Locators (URL)</emph>, 2858ed. T. Berners-Lee, L. Masinter, M. McCahill. 28591994. 2860</bibl> 2861 2862<bibl id="RFC1808" xml-link="simple" key="IETF RFC1808"> 2863IETF (Internet Engineering Task Force). 2864<emph>RFC 1808: Relative Uniform Resource Locators</emph>, 2865ed. R. Fielding. 28661995. 2867</bibl> 2868 2869<bibl id="RFC2141" xml-link="simple" key="IETF RFC2141"> 2870IETF (Internet Engineering Task Force). 2871<emph>RFC 2141: URN Syntax</emph>, 2872ed. R. Moats. 28731997. 2874</bibl> 2875 2876<bibl id='ISO8879' key='ISO/IEC 8879'>ISO 2877(International Organization for Standardization). 2878<emph>ISO/IEC 8879-1986 (E). Information processing — Text and Office 2879Systems — Standard Generalized Markup Language (SGML).</emph> First 2880edition — 1986-10-15. [Geneva]: International Organization for 2881Standardization, 1986. 2882</bibl> 2883 2884 2885<bibl id='ISO10744' key='ISO/IEC 10744'>ISO 2886(International Organization for Standardization). 2887<emph>ISO/IEC 10744-1992 (E). Information technology — 2888Hypermedia/Time-based Structuring Language (HyTime). 2889</emph> 2890[Geneva]: International Organization for 2891Standardization, 1992. 2892<emph>Extended Facilities Annexe.</emph> 2893[Geneva]: International Organization for 2894Standardization, 1996. 2895</bibl> 2896 2897 2898 2899</blist> 2900</div2> 2901</div1> 2902<div1 id='CharClasses'> 2903<head>$BJ8;z%/%i%9(B</head> 2904 2905<p>Unicode$BI8=`$KDj5A$9$k(B&property;$B$K$7$?$,$C$F!$J8;z$O!$(B&base-character;(BaseChar)($B$3$l$i$O!$(B&diacritical-mark;$B$r=|$/%i%F%s%"%k%U%!%Y%C%H$N%"%k%U%!%Y%C%HJ8;z$r4^$`(B)$B!$(B&ideographic;(ideographic)$B5Z$S(B&combining-character;(CombiningChar)($B$3$N%/%i%9$O!$$[$H$s$I$N(B&diacritical-mark;$B$r4^$`(B)$B$K%/%i%9J,$1$9$k!#$3$l$i$N%/%i%9$O!$7k9g$7!$(B&letter;(Letter)$B$N%/%i%9$H$J$k!#(B10$B?J?tCM(B(Digit)$B5Z$S(B&extender;(Extender)$B$b6hJL$9$k!#(B 2906<scrap lang="ebnf" id="CHARACTERS"> 2907<head>$BJ8;z(B</head> 2908<prodgroup pcw3="3" pcw4="15"> 2909<prod id="NT-Letter"><lhs>Letter</lhs> 2910<rhs><nt def="NT-BaseChar">BaseChar</nt> 2911| <nt def="NT-Ideographic">Ideographic</nt></rhs> </prod> 2912<prod id='NT-BaseChar'><lhs>BaseChar</lhs> 2913<rhs>[#x0041-#x005A] 2914| [#x0061-#x007A] 2915| [#x00C0-#x00D6] 2916| [#x00D8-#x00F6] 2917| [#x00F8-#x00FF] 2918| [#x0100-#x0131] 2919| [#x0134-#x013E] 2920| [#x0141-#x0148] 2921| [#x014A-#x017E] 2922| [#x0180-#x01C3] 2923| [#x01CD-#x01F0] 2924| [#x01F4-#x01F5] 2925| [#x01FA-#x0217] 2926| [#x0250-#x02A8] 2927| [#x02BB-#x02C1] 2928| #x0386 2929| [#x0388-#x038A] 2930| #x038C 2931| [#x038E-#x03A1] 2932| [#x03A3-#x03CE] 2933| [#x03D0-#x03D6] 2934| #x03DA 2935| #x03DC 2936| #x03DE 2937| #x03E0 2938| [#x03E2-#x03F3] 2939| [#x0401-#x040C] 2940| [#x040E-#x044F] 2941| [#x0451-#x045C] 2942| [#x045E-#x0481] 2943| [#x0490-#x04C4] 2944| [#x04C7-#x04C8] 2945| [#x04CB-#x04CC] 2946| [#x04D0-#x04EB] 2947| [#x04EE-#x04F5] 2948| [#x04F8-#x04F9] 2949| [#x0531-#x0556] 2950| #x0559 2951| [#x0561-#x0586] 2952| [#x05D0-#x05EA] 2953| [#x05F0-#x05F2] 2954| [#x0621-#x063A] 2955| [#x0641-#x064A] 2956| [#x0671-#x06B7] 2957| [#x06BA-#x06BE] 2958| [#x06C0-#x06CE] 2959| [#x06D0-#x06D3] 2960| #x06D5 2961| [#x06E5-#x06E6] 2962| [#x0905-#x0939] 2963| #x093D 2964| [#x0958-#x0961] 2965| [#x0985-#x098C] 2966| [#x098F-#x0990] 2967| [#x0993-#x09A8] 2968| [#x09AA-#x09B0] 2969| #x09B2 2970| [#x09B6-#x09B9] 2971| [#x09DC-#x09DD] 2972| [#x09DF-#x09E1] 2973| [#x09F0-#x09F1] 2974| [#x0A05-#x0A0A] 2975| [#x0A0F-#x0A10] 2976| [#x0A13-#x0A28] 2977| [#x0A2A-#x0A30] 2978| [#x0A32-#x0A33] 2979| [#x0A35-#x0A36] 2980| [#x0A38-#x0A39] 2981| [#x0A59-#x0A5C] 2982| #x0A5E 2983| [#x0A72-#x0A74] 2984| [#x0A85-#x0A8B] 2985| #x0A8D 2986| [#x0A8F-#x0A91] 2987| [#x0A93-#x0AA8] 2988| [#x0AAA-#x0AB0] 2989| [#x0AB2-#x0AB3] 2990| [#x0AB5-#x0AB9] 2991| #x0ABD 2992| #x0AE0 2993| [#x0B05-#x0B0C] 2994| [#x0B0F-#x0B10] 2995| [#x0B13-#x0B28] 2996| [#x0B2A-#x0B30] 2997| [#x0B32-#x0B33] 2998| [#x0B36-#x0B39] 2999| #x0B3D 3000| [#x0B5C-#x0B5D] 3001| [#x0B5F-#x0B61] 3002| [#x0B85-#x0B8A] 3003| [#x0B8E-#x0B90] 3004| [#x0B92-#x0B95] 3005| [#x0B99-#x0B9A] 3006| #x0B9C 3007| [#x0B9E-#x0B9F] 3008| [#x0BA3-#x0BA4] 3009| [#x0BA8-#x0BAA] 3010| [#x0BAE-#x0BB5] 3011| [#x0BB7-#x0BB9] 3012| [#x0C05-#x0C0C] 3013| [#x0C0E-#x0C10] 3014| [#x0C12-#x0C28] 3015| [#x0C2A-#x0C33] 3016| [#x0C35-#x0C39] 3017| [#x0C60-#x0C61] 3018| [#x0C85-#x0C8C] 3019| [#x0C8E-#x0C90] 3020| [#x0C92-#x0CA8] 3021| [#x0CAA-#x0CB3] 3022| [#x0CB5-#x0CB9] 3023| #x0CDE 3024| [#x0CE0-#x0CE1] 3025| [#x0D05-#x0D0C] 3026| [#x0D0E-#x0D10] 3027| [#x0D12-#x0D28] 3028| [#x0D2A-#x0D39] 3029| [#x0D60-#x0D61] 3030| [#x0E01-#x0E2E] 3031| #x0E30 3032| [#x0E32-#x0E33] 3033| [#x0E40-#x0E45] 3034| [#x0E81-#x0E82] 3035| #x0E84 3036| [#x0E87-#x0E88] 3037| #x0E8A 3038| #x0E8D 3039| [#x0E94-#x0E97] 3040| [#x0E99-#x0E9F] 3041| [#x0EA1-#x0EA3] 3042| #x0EA5 3043| #x0EA7 3044| [#x0EAA-#x0EAB] 3045| [#x0EAD-#x0EAE] 3046| #x0EB0 3047| [#x0EB2-#x0EB3] 3048| #x0EBD 3049| [#x0EC0-#x0EC4] 3050| [#x0F40-#x0F47] 3051| [#x0F49-#x0F69] 3052| [#x10A0-#x10C5] 3053| [#x10D0-#x10F6] 3054| #x1100 3055| [#x1102-#x1103] 3056| [#x1105-#x1107] 3057| #x1109 3058| [#x110B-#x110C] 3059| [#x110E-#x1112] 3060| #x113C 3061| #x113E 3062| #x1140 3063| #x114C 3064| #x114E 3065| #x1150 3066| [#x1154-#x1155] 3067| #x1159 3068| [#x115F-#x1161] 3069| #x1163 3070| #x1165 3071| #x1167 3072| #x1169 3073| [#x116D-#x116E] 3074| [#x1172-#x1173] 3075| #x1175 3076| #x119E 3077| #x11A8 3078| #x11AB 3079| [#x11AE-#x11AF] 3080| [#x11B7-#x11B8] 3081| #x11BA 3082| [#x11BC-#x11C2] 3083| #x11EB 3084| #x11F0 3085| #x11F9 3086| [#x1E00-#x1E9B] 3087| [#x1EA0-#x1EF9] 3088| [#x1F00-#x1F15] 3089| [#x1F18-#x1F1D] 3090| [#x1F20-#x1F45] 3091| [#x1F48-#x1F4D] 3092| [#x1F50-#x1F57] 3093| #x1F59 3094| #x1F5B 3095| #x1F5D 3096| [#x1F5F-#x1F7D] 3097| [#x1F80-#x1FB4] 3098| [#x1FB6-#x1FBC] 3099| #x1FBE 3100| [#x1FC2-#x1FC4] 3101| [#x1FC6-#x1FCC] 3102| [#x1FD0-#x1FD3] 3103| [#x1FD6-#x1FDB] 3104| [#x1FE0-#x1FEC] 3105| [#x1FF2-#x1FF4] 3106| [#x1FF6-#x1FFC] 3107| #x2126 3108| [#x212A-#x212B] 3109| #x212E 3110| [#x2180-#x2182] 3111| [#x3041-#x3094] 3112| [#x30A1-#x30FA] 3113| [#x3105-#x312C] 3114| [#xAC00-#xD7A3] 3115</rhs></prod> 3116<prod id='NT-Ideographic'><lhs>Ideographic</lhs> 3117<rhs>[#x4E00-#x9FA5] 3118| #x3007 3119| [#x3021-#x3029] 3120</rhs></prod> 3121<prod id='NT-CombiningChar'><lhs>CombiningChar</lhs> 3122<rhs>[#x0300-#x0345] 3123| [#x0360-#x0361] 3124| [#x0483-#x0486] 3125| [#x0591-#x05A1] 3126| [#x05A3-#x05B9] 3127| #x05BB#x05BD 3128| #x05BF 3129| [#x05C1-#x05C2] 3130| #x05C4 3131| #x064B#x0652 3132| #x0670 3133| [#x06D6-#x06DC] 3134| #x06DD#x06DF 3135| [#x06E0-#x06E4] 3136| [#x06E7-#x06E8] 3137| [#x06EA-#x06ED] 3138| [#x0901-#x0903] 3139| #x093C 3140| [#x093E-#x094C] 3141| #x094D 3142| [#x0951-#x0954] 3143| [#x0962-#x0963] 3144| [#x0981-#x0983] 3145| #x09BC 3146| #x09BE 3147| #x09BF 3148| [#x09C0-#x09C4] 3149| [#x09C7-#x09C8] 3150| [#x09CB-#x09CD] 3151| #x09D7 3152| [#x09E2-#x09E3] 3153| #x0A02 3154| #x0A3C 3155| #x0A3E 3156| #x0A3F 3157| [#x0A40-#x0A42] 3158| [#x0A47-#x0A48] 3159| [#x0A4B-#x0A4D] 3160| [#x0A70-#x0A71] 3161| [#x0A81-#x0A83] 3162| #x0ABC 3163| [#x0ABE-#x0AC5] 3164| [#x0AC7-#x0AC9] 3165| [#x0ACB-#x0ACD] 3166| [#x0B01-#x0B03] 3167| #x0B3C 3168| [#x0B3E-#x0B43] 3169| [#x0B47-#x0B48] 3170| [#x0B4B-#x0B4D] 3171| [#x0B56-#x0B57] 3172| [#x0B82-#x0B83] 3173| [#x0BBE-#x0BC2] 3174| [#x0BC6-#x0BC8] 3175| [#x0BCA-#x0BCD] 3176| #x0BD7 3177| [#x0C01-#x0C03] 3178| [#x0C3E-#x0C44] 3179| [#x0C46-#x0C48] 3180| [#x0C4A-#x0C4D] 3181| [#x0C55-#x0C56] 3182| [#x0C82-#x0C83] 3183| [#x0CBE-#x0CC4] 3184| [#x0CC6-#x0CC8] 3185| [#x0CCA-#x0CCD] 3186| [#x0CD5-#x0CD6] 3187| [#x0D02-#x0D03] 3188| [#x0D3E-#x0D43] 3189| [#x0D46-#x0D48] 3190| [#x0D4A-#x0D4D] 3191| #x0D57 3192| #x0E31 3193| [#x0E34-#x0E3A] 3194| [#x0E47-#x0E4E] 3195| #x0EB1 3196| [#x0EB4-#x0EB9] 3197| [#x0EBB-#x0EBC] 3198| [#x0EC8-#x0ECD] 3199| [#x0F18-#x0F19] 3200| #x0F35 3201| #x0F37 3202| #x0F39 3203| #x0F3E 3204| #x0F3F 3205| [#x0F71-#x0F84] 3206| [#x0F86-#x0F8B] 3207| [#x0F90-#x0F95] 3208| #x0F97 3209| [#x0F99-#x0FAD] 3210| [#x0FB1-#x0FB7] 3211| #x0FB9 3212| [#x20D0-#x20DC] 3213| #x20E1 3214| [#x302A-#x302F] 3215| #x3099 3216| #x309A 3217</rhs></prod> 3218<prod id='NT-Digit'><lhs>Digit</lhs> 3219<rhs>[#x0030-#x0039] 3220| [#x0660-#x0669] 3221| [#x06F0-#x06F9] 3222| [#x0966-#x096F] 3223| [#x09E6-#x09EF] 3224| [#x0A66-#x0A6F] 3225| [#x0AE6-#x0AEF] 3226| [#x0B66-#x0B6F] 3227| [#x0BE7-#x0BEF] 3228| [#x0C66-#x0C6F] 3229| [#x0CE6-#x0CEF] 3230| [#x0D66-#x0D6F] 3231| [#x0E50-#x0E59] 3232| [#x0ED0-#x0ED9] 3233| [#x0F20-#x0F29] 3234</rhs></prod> 3235<prod id='NT-Extender'><lhs>Extender</lhs> 3236<rhs>#x00B7 3237| #x02D0 3238| #x02D1 3239| #x0387 3240| #x0640 3241| #x0E46 3242| #x0EC6 3243| #x3005 3244| [#x3031-#x3035] 3245| [#x309D-#x309E] 3246| [#x30FC-#x30FE] 3247</rhs></prod> 3248 3249</prodgroup> 3250</scrap> 3251</p> 3252<p>$B$3$3$GDj5A$9$kJ8;z%/%i%9$O!$(BUnicode$BJ8;z%G!<%?%Y!<%9$+$i!$<!$N$H$*$j$KF@$k$3$H$,$G$-$k!#(B 3253<ulist> 3254<item> 3255<p>a) $BL>A03+;OJ8;z$O!$(BLl, Lu, Lo, Lt, Nl$B%+%F%4%jFb$N0l$D$G$J$1$l$P$J$i$J$$!#(B</p> 3256</item> 3257<item> 3258<p>b) $BL>A03+;OJ8;z0J30$NL>A0J8;z$O!$(BMc, Me, Mn, Lm, Nd$B%+%F%4%jFb$N0l$D$G$J$1$l$P$J$i$J$$!#(B</p> 3259</item> 3260<item> 3261<p>c) &compatibility-area;$B$K$"$kJ8;z(B($BJ8;zId9f$G(B#xF900$B$h$jBg$-$/(B#xFFFE$B$h$j>.$5$$J8;z(B)$B$O!$(BXML$B$K$*$1$kL>A0$H$7$F$O!$5v$5$l$J$$!#(B</p> 3262</item> 3263<item> 3264<p>d) &font-decomposition;$B$+(B&compatibility-decomposition;$B$r$b$DJ8;z(B($B$D$^$j!$%G!<%?%Y!<%9Fb$N#5HVL\$N%U%#!<%k%I$K(B"compatibility formatting tag"$B$,$"$k$b$N!#$3$l$O!$#5HVL\$N%U%#!<%k%I$,!$(B"<"$B$G;O$^$k$3$H$K$h$C$F%^!<%/IU$1$5$l$k!#(B)$B$O!$5v$5$l$J$$!#(B</p> 3265</item> 3266<item> 3267<p>e) $B<!$NJ8;z$O!$L>A03+;OJ8;z$H$7$F07$&!#$3$l$O!$(B&property-file;$B$,!$$3$l$i$NJ8;z$r%"%k%U%!%Y%C%H$KN`;w$9$k$H8+$J$9$3$H$K$h$k!#$=$l$i$O(B 3268[#x02BB-#x02C1], #x0559, #x06E5, #x06E6$B$H$9$k!#(B</p> 3269</item> 3270<item> 3271<p>f) $BJ8;zId9f$,(B#x20DD-#x20E0$B$NJ8;z$O!$(B(Unicode $B$N(B5.14$B$K$7$?$,$C$F(B)$B=|30$9$k!#(B</p> 3272</item> 3273<item> 3274<p>g) $BJ8;zId9f$,(B#x00B7$B$NJ8;z$O!$(B&property-list;$B$K$7$?$,$C$F!$(B&extender;(extender)$B$KJ,N`$9$k!#(B</p> 3275</item> 3276<item> 3277<p>h) $BJ8;z(B#x0387$B$O!$$3$l$KAjEv$9$k@55,7A$,(B#x00B7$B$J$N$G!$L>A0J8;z$KDI2C$9$k!#(B</p> 3278</item> 3279<item> 3280<p>i) $BJ8;z(B':'$B5Z$S(B'_'$B$O!$L>A03+;OJ8;z$H$7$F5v$9!#(B</p> 3281</item> 3282<item> 3283<p>j) $BJ8;z(B'-'$B5Z$S(B'.'$B$O!$L>A0J8;z$H$7$F5v$9!#(B</p> 3284</item> 3285</ulist> 3286</p> 3287</div1> 3288<inform-div1 id="sec-xml-and-sgml"> 3289<head>XML$B5Z$S(BSGML</head> 3290 3291<p>XML$B$O!$(BSGML$B$N(B⊂$B$H$7$F@_7W$5$l$F$$$k!#$9$J$o$A!$$9$Y$F$N(B<termref def="dt-valid">&valid;</termref>$B$J(BXML$BJ8=q$O!$5,3J$KE,9g$9$k(BSGML$BJ8=q$K$b$J$k!#(BSGML$B$,J8=q$K2]$9@)8B0J30$K!$(BXML$B$,$$$+$J$k@)8B$r2]$9$+$K4X$9$k>\:Y$O!$JL$N(B<loc href='http://www.w3.org/TR/NOTE-sgml-xml'>$B5,Dx(B</loc>$B$r;2>H$N$3$H!#$3$N5,Dx$O!$(BXML$B$N@)Ls>r7o$r<($9(BSGML$B@k8@$r4^$_!$$3$l$O!$(BSGML&parser;$B$K;HMQ$G$-$k!#(B 3292</p> 3293</inform-div1> 3294<inform-div1 id="sec-entexpand"> 3295<head>$B<BBN;2>H5Z$SJ8;z;2>H$NE83+(B</head> 3296<p>$B$3$NIUO?$O!$<BBN;2>H5Z$SJ8;z;2>H$rG'<1$7!$E83+$9$k!$0lO"$NN.$l$r!$Nc$K;H$C$F<($9!#(B</p> 3297<p> 3298DTD$B$,!$<!$N@k8@$r4^$`>l9g$r9M$($k!#(B 3299<eg><![CDATA[<!ENTITY example "<p>An ampersand (&#38;) may be escaped 3300numerically (&#38;#38;) or with a general entity 3301(&amp;).</p>" > 3302]]></eg> 3303XML&processor;$B$O!$<BBN$N@k8@$r9=J82r@O$7$?;~E@$GJ8;z;2>H$rG'<1$7!$$3$l$r2r7h$9$k!#<BBN(B"<code>example</code>"$B$NCM$H$7$F!$<!$N(B&string;$B$rJ]B8$9$k!#(B 3304<eg><![CDATA[<p>An ampersand (&) may be escaped 3305numerically (&#38;) or with a general entity 3306(&amp;).</p> 3307]]></eg> 3308$BJ8=qFb$G(B"<code>&example;</code>"$B$r;2>H$9$k$H!$$3$N%F%-%9%H$O!$:F$S9=J82r@O$5$l$k!#$3$N$H$-!$MWAG(B"<code>p</code>"$B$N3+;O%?%05Z$S=*N;%?%0$rG'<1$7!$;0$D$N;2>H$rG'<1$7E83+$9$k!#$=$N7k2L!$MWAG(B"<code>p</code>"$B$O!$<!$NFbMF$r$b$D(B($B$9$Y$F%G!<%?$H$7!$6h@Z$j;RKt$O(B&markup;$B$OB8:_$7$J$$!#(B)$B!#(B 3309<eg><![CDATA[An ampersand (&) may be escaped 3310numerically (&) or with a general entity 3311(&). 3312]]></eg> 3313</p> 3314<p>$B5,B'5Z$S$=$N8z2L$r$h$j>\:Y$K<($9$?$a!$$5$i$KJ#;($JNc$r<($9!#<!$NNc$G!$9THV9f$O!$;2>H$NJX59$N$?$a$@$1$KIU$1$k!#(B 3315<eg><![CDATA[1 <?xml version='1.0'?> 33162 <!DOCTYPE test [ 33173 <!ELEMENT test (#PCDATA) > 33184 <!ENTITY % xx '%zz;'> 33195 <!ENTITY % zz '<!ENTITY tricky "error-prone" >' > 33206 %xx; 33217 ]> 33228 <test>This sample shows a &tricky; method.</test> 3323]]></eg> 3324$B$3$l$r=hM}$9$k$H!$<!$N$H$*$j$H$J$k!#(B 3325<ulist spacing="compact"> 3326<item><p>a) 4$B9TL\$G!$(B37$BHVL\$NJ8;z$X$N;2>H$rD>$A$KE83+$7!$%Q%i%a%?<BBN(B"<code>xx</code>"$B$r!$%7%s%\%k%F!<%V%k$K(B"<code>%zz;</code>"$B$H$$$&CM$H$H$b$KJ]B8$9$k!#(B&replacement-text;$B$r:F$SAv::$9$k$3$H$O$J$$$N$G!$%Q%i%a%?<BBN(B"<code>zz</code>"$B$X$N;2>H$OG'<1$7$J$$(B("<code>zz</code>"$B$O!$$^$@@k8@$5$l$F$$$J$$$N$G!$Av::$5$l$l$P!$(B&error;$B$H$J$k!#(B)$B!#(B</p></item> 3327<item><p>b) 5$B9TL\$G!$J8;z;2>H(B"<code>&#60;</code>"$B$rD>$A$KE83+$7!$%Q%i%a%?<BBN(B"<code>zz</code>"$B$r(B"<code><!ENTITY tricky "error-prone" ></code>"$B$H$$$&(B&replacement-text;$B$H$H$b$KJ]B8$9$k!#$3$l$O!$(B&well-formed;$B$N<BBN@k8@$H$9$k!#(B</p></item> 3328<item><p>c) 6$B9TL\$G!$(B"<code>xx</code>"$B$X$N;2>H$rG'<1$7!$(B"<code>xx</code>"$B$N(B&replacement-text;($B$9$J$o$A!$(B"<code>%zz;</code>")$B$r9=J82r@O$9$k!#(B"<code>zz</code>"$B$X$N;2>H$rB3$$$FG'<1$7!$(B&replacement-text;("<code><!ENTITY tricky "error-prone" ></code>")$B$r9=J82r@O$9$k!#0lHL<BBN(B"<code>tricky</code>"$B$O!$$3$N;~E@$G$O!$@k8@$5$l$F$*$j!$$=$N(B&replacement-text;$B$O!$(B"<code>error-prone</code>"$B$H$9$k!#(B </p></item> 3329<item><p>d) 8$B9TL\$G!$0lHL<BBN(B"<code>tricky</code>"$B$X$N;2>H$rG'<1$7!$E83+$9$k!#MWAG(B"<code>test</code>"$B$N40A4$JFbMF$O!$<!$N(B($BFbMF$r$=$l<+BNI=8=$9$k!#(B)&string;$B$H$J$k!#$D$^$j!$(B<emph>This sample shows a error-prone method.</emph> 3330</p></item> 3331</ulist> 3332</p> 3333</inform-div1> 3334<inform-div1 id="determinism"> 3335<head>$B7hDjE*FbMF%b%G%k(B</head> 3336<p><termref def='dt-compat'>$B8_49@-$N$?$a(B</termref>$B!$MWAG@k8@$K$*$1$kFbMF%b%G%k$O!$7hDjE*$H$9$kI,MW$,$"$k!#(B 3337</p> 3338<!-- FINAL EDIT: WebSGML allows ambiguity? --> 3339<p>SGML$B$O!$7hDjE*FbMF%b%G%k(B(SGML$B$G$O!$Hs$"$$$^$$$H8F$V!#(B)$B$rMW5a$9$k!#(BSGML$B%7%9%F%`$rMQ$$$F:n@.$7$?(BXML&processor;$B$O!$Hs7hDjE*FbMF%b%G%k$r(B&error;$B$H$7$F$b$h$$!#(B</p> 3340<p>$BNc$($P!$FbMF%b%G%k(B<code>((b, c) | (b, d))</code>$B$OHs7hDjE*$H$J$k!#$3$l$O!$:G=i$K(B<code>b</code>$B$rM?$($?$H$-!$%b%G%kFb$N$$$:$l$N(B<code>b</code>$B$H(B&match;$B$9$k$N$,K>$^$7$$$+!$$=$N<!$NMWAG$r@hFI$_$9$k$3$H$J$7$K$O!$(B&parser;$B$OCN$k$3$H$,$G$-$J$$$3$H$K$h$k!#$3$N>l9g$O!$(B<code>b</code>$B$X$NFs$D$N;2>H$O!$0l$D$N;2>H$K$^$H$a$k$3$H$,$G$-!$%b%G%k$O!$(B<code>(b, (c | d))</code>$B$H$J$k!#$3$l$G!$:G=i$N(B<code>b</code>$B$,!$FbMF%b%G%kFb$N0l$D$NL>A0$H$@$1(B&match;$B$9$k$3$H$OL@$i$+$H$J$k!#(B&parser;$B$O!$@hFI$_$7$F!$<!$KMh$k$b$N$rCN$kI,MW$,$J$$!#(B<code>c</code>$B$b(B<code>d</code>$B$b!$<uM}$5$l$k!#(B</p> 3341<p>$B7A<0E*$K<($9!#(BAho, Sethi, and Ullman <bibref ref='Aho'/>$B$N(B3.9$B$N%"%k%4%j%:%`(B3.5$B$NI8=`E*$J%"%k%4%j%:%`$rMQ$$$F!$FbMF%b%G%k$+$iM-8B%*!<%H%^%H%s$r9=@.$9$k$3$H$,$G$-$k!#$3$N<o$NB?$/$N%"%k%4%j%:%`$G$O!$@55,I=8=$K$*$1$k3F!9$N0LCV(B($B$D$^$j!$@55,I=8=$N9=J8LZ$K$*$1$k3F!9$NKvC<%N!<%I(B)$B$KBP$7$F!$(Bfollow set($B<!$K$I$N0LCV$K0\F02DG=$+$rI=$9$b$N(B)$B$r9=@.$9$k!#$"$k0LCV$KBP$9$k(Bfollow set$B$K$*$$$F!$J#?t$N0LCV$,F1$8MWAG7?L>$G%i%Y%kIU$1$5$l$F$$$l$P!$$=$NFbMF%b%G%k$O(B&error;$B$H$J$j!$(B&error;$B$rJV$9>l9g$b$"$k!#(B 3342</p> 3343<p>$B$9$Y$F$NHs7hDjE*FbMF%b%G%k$rEy2A$J7hDjE*FbMF%b%G%k$KJQ49$9$k$3$H$O$G$-$J$$$,!$B?$/$NHs7hDjE*FbMF%b%G%k$rJQ49$9$k%"%k%4%j%:%`$,B8:_$9$k!#(BBrüggemann-Klein 1991 <bibref ref='ABK'/>$B$r;2>H$N$3$H!#(B</p> 3344</inform-div1> 3345<inform-div1 id="sec-guessing"> 3346<head>$BJ8;zId9f2=$N<+F08!=P(B</head> 3347<p> 3348XML$B$NId9f2=@k8@$O!$3F<BBN$NFbIt%i%Y%k$H$7$F5!G=$7!$$I$NJ8;zId9f2=$r;HMQ$9$k$+$r<($9!#$7$+$7!$(BXML&processor;$B$O!$FbIt%i%Y%k$rFI$`A0$K!$$I$NJ8;zId9f2=$r;HMQ$9$k$+$rCN$kI,MW$,$"$j!$$3$l$,!$FbIt%i%Y%k$,<($=$&$H$9$k$3$H$K$J$k!#0lHLE*$K$O!$$3$l$O!$@dK>E*$J>uBV$H$J$k!#$7$+$7!$(BXML$B$K$*$$$F$O!$40A4$K$O@dK>E*$G$O$J$$!#$3$l$O!$(BXML$B$,!$<!$NFs$D$NE@$G0lHLE*$J>l9g$KBP$9$k@)8B$r2C$($k$3$H$K$h$k!#0l$D$N@)8B$O!$$I$N<BAu$bM-8B8D$NJ8;zId9f2=$@$1$N%5%]!<%H$rA[Dj$9$k$3$H$H$9$k!#B>$N0l$D$N@)8B$O!$3F<BBN$G;HMQ$9$kJ8;zId9f2=$r<+F08!=P2DG=$H$9$k!$(BXML$B$NId9f2=@k8@$N0LCV5Z$SFbMF$K4X$9$k@)8B$H$9$k!#B?$/$N>l9g$K!$(BXML$B$N%G!<%?%9%H%j!<%`$K2C$(!$B>$N>pJs$,MxMQ$G$-$k!#$3$3$G$O!$(BXML$B$N<BBN$,(B&processor;$B$KEO$5$l$k$H$-!$(B($B30It(B)$B>pJs$rH<$&$+$I$&$+$K$h$C$F!$Fs$D$N>l9g$KJ,$1$k!#$^$::G=i$N>l9g$r<($9!#(B</p> 3349<p> 3350UTF-8$B7A<0Kt$O(BUTF-16$B7A<0$G$O$J$$(BXML$B<BBN$O!$:G=i$NJ8;z$r!F(B<code><?xml</code>'$B$H$9$k(BXML$BId9f2=@k8@$G;O$^$i(B<emph>$B$J$1$l$P$J$i$J$$(B</emph>$B$N$G!$$I$NE,9g$7$?(B&processor;$B$b!$F~NO$K$"$k(B2$B%*%/%F%C%HKt$O(B4$B%*%/%F%C%H$rD4$Y$l$P!$<!$N$I$N>l9g$,$"$F$O$^$k$+$r8!=P$G$-$k!#$3$N%j%9%H$rFI$`:]$K$O!$(BUCS-4$B$N(B'<'$B$,(B"<code>#x0000003C</code>"$B!$(B'?'$B$,(B"<code>#x0000003F</code>"$B!$5Z$S(BUTF-16$B$N%G!<%?(B&stream;$B$NI,MW$H$9$k(B&byte-order-mark;$B$,(B"<code>#xFEFF</code>"$B$H$$$&$3$H$rCN$C$F$*$/$HLrN)$D$+$b$7$l$J$$!#(B</p> 3351<p> 3352<ulist> 3353<item> 3354<p>a) <code>00 00 00 3C</code>: UCS-4, big-endian $B%^%7%s(B (1234$B=g(B)</p> 3355</item> 3356<item> 3357<p>b) <code>3C 00 00 00</code>: UCS-4, little-endian $B%^%7%s(B (4321$B=g(B)</p> 3358</item> 3359<item> 3360<p>c) <code>00 00 3C 00</code>: UCS-4, $BIaDL$G$O$J$$%*%/%F%C%H=g(B (2143)</p> 3361</item> 3362<item> 3363<p>d) <code>00 3C 00 00</code>: UCS-4, $BIaDL$G$O$J$$%*%/%F%C%H=g(B (3412)</p> 3364</item> 3365<item> 3366<p>e) <code>FE FF</code>: UTF-16, big-endian</p> 3367</item> 3368<item> 3369<p>f) <code>FF FE</code>: UTF-16, little-endian</p> 3370</item> 3371<item> 3372<p>g) <code>00 3C 00 3F</code>: UTF-16, big-endian, &byte-order-mark;$B$J$7(B($B$7$?$,$C$F!$87L)$K$$$($P!$(B&error;$B$H$9$k!#(B)$B!#(B</p> 3373</item> 3374<item> 3375<p>h) <code>3C 00 3F 00</code>: UTF-16, little-endian, &byte-order-mark;$B$J$7(B($B$7$?$,$C$F!$87L)$K$$$($P!$(B&error;$B$H$9$k!#(B)$B!#(B</p> 3376</item> 3377<item> 3378<p>i) <code>3C 3F 78 6D</code>: UTF-8, ISO 646, ASCII, ISO 8859$B$N3F%Q!<%H!$(BShift-JIS$B!$(BEUC$B!$JB$S$KG$0U$NB>$N(B7$B%S%C%H!$(B8$B%S%C%HKt$O:.:_I}$NId9f2=$G$"$C$F!$(BASCII$BJ8;z$rDL>o$N0LCV!$I}5Z$SCM$H$9$k$3$H$rJ]>Z$9$k$b$N!#$3$l$i$N$I$l$KBP1~$9$k$+$r8!=P$9$k$?$a$K$O!$<B:]$NId9f2=@k8@$rFI$_9~$^$J$1$l$P$J$i$J$$!#$7$+$7!$$3$l$i$9$Y$F$NId9f2=$O!$(BASCII$BJ8;z$KBP$7$FF1$8%S%C%H%Q%?!<%s$r;HMQ$9$k$N$G!$Id9f2=@k8@<+BN$O!$@53N$KFI9~$_2DG=$H$9$k!#(B 3379</p> 3380</item> 3381<item> 3382<p>j) <code>4C 6F A7 94</code>: EBCDIC ($BKt$O$=$NJQ<o!#$I$N%3!<%I%Z!<%8$r;HMQ$9$k$+$rCN$k$?$a$K$O!$Id9f2=@k8@A4BN$rFI$_9~$^$l$J$1$l$P$J$i$J$$!#(B)</p> 3383</item> 3384<item> 3385<p>k) $B$=$NB>(B: $BId9f2=@k8@$J$7$N(BUTF-8$B!#$=$&$G$J$$$H$-$K$O!$%G!<%?(B&stream;$B$,2u$l$F$$$k$+!$CGJRE*$K$J$C$F$$$k$+!$2?$i$+$N7A<0$K$7$?$,$C$FKd$a9~$^$l$F$$$k!#(B</p> 3386</item> 3387</ulist> 3388</p> 3389<p> 3390$B$3$NDxEY$N<+F0H=JL$G$b!$(BXML$B$NId9f2=@k8@$rFI$_9~$_!$J8;zId9f2=$N(B&identifier;$B$r2r@O$9$k$K$O==J,$H$9$k!#(B&identifier;$B$N2r@O$O!$N`;w$9$k3F!9$NId9f2=$N0l$D0l$D$r6hJL$9$k$?$a$KI,MW$H$9$k(B($BNc$($P!$(BUTF-8$B5Z$S(B8859$B$r6hJL$9$k$?$a!$(B8859$B$N3F%Q!<%H$r6hJL$9$k$?$a!$;HMQ$7$F$$$kFCDj$N(BEBCDIC$B%3!<%I%Z!<%8$r6hJL$9$k$?$a!$$J$I!#(B)$B!#(B 3391</p> 3392<p> 3393$BId9f2=@k8@$NFbMF$r(BASCII$BJ8;z$K8BDj$7$F$$$k$N$G!$$I$NJ,N`$NId9f2=$r;HMQ$9$k$+$r8!=P$9$l$P!$(B&processor;$B$O!$Id9f2=@k8@A4BN$r@53N$KFI$_9~$`$3$H$,$G$-$k!#8=<BLdBj$H$7$F!$9-$/;HMQ$5$l$F$$$kJ8;zId9f2=$O!$>e$NJ,N`$N$$$:$l$+$K$"$F$O$^$k$N$G!$%*%Z%l!<%F%#%s%0%7%9%F%`Kt$OEAAw%W%m%H%3%k$,M?$($k30It>pJs$r?.MjIT2DG=$J$H$-$G$5$($b!$FbIt%i%Y%k$GJ8;zId9f2=$r$+$J$j@53N$K<($9$3$H$,!$(BXML$BId9f2=@k8@$K$h$C$F2DG=$H$J$k!#(B 3394</p> 3395<p> 3396&processor;$B$,;HMQ$9$kJ8;zId9f2=$r8!=P$7$5$($9$l$P!$$=$l$>$l$N>l9g$KBP$7$FJL8D$NF~NO%k!<%A%s$r8F$S=P$9!$Kt$OF~NO$9$k3FJ8;z$KBP$7E,@Z$JJQ494X?t$r8F$S=P$9$3$H$K$h$C$F!$E,@Z$JF0:n$,2DG=$H$J$k!#(B</p> 3397<p> 3398$B<+J,<+BN$K%i%Y%kIU$1$r$9$k$$$+$J$k%7%9%F%`$G$bF1MM$@$,!$%=%U%H%&%'%"$,!$Id9f2=@k8@$r99?7$;$:$K<BBN$NJ8;z=89gKt$OId9f2=$rJQ$($?$J$i$P!$(BXML$B$NId9f2=@k8@$O!$5!G=$7$J$$!#J8;zId9f2=%k!<%A%s$N<BAu<T$O!$<BBN$N%i%Y%kIU$1$K;HMQ$9$kFbIt5Z$S30It$N>pJs$N@53N$5$NJ]>Z$KCm0U$9$k$N$,K>$^$7$$!#(B 3399</p> 3400<p>$B#2HVL\$N>l9g$O!$(BXML$B$N<BBN$NB>$K!$Id9f2=>pJs$,B8:_$9$k$H$-$G$"$C$F!$$$$/$D$+$N%U%!%$%k%7%9%F%`5Z$S%M%C%H%o!<%/%W%m%H%3%k$G$O!$$=$NId9f2=>pJs$,B8:_$9$k!#J#?t$N>pJs$,MxMQ$G$-$k$H$-!$(B<!-- (e.g. both the 3401internal encoding declaration and an external label), -->$B$=$l$i$NAjBPE*$JM%@hEY5Z$S$=$l$i$,L7=b$7$?$H$-$NK>$^$7$$=hM}J}K!$O!$(BXML$B$NG[Aw$K;HMQ$9$k!$$h$j9b?e=`$N%W%m%H%3%k$N0lIt$H$7$F5,Dx$9$k$N$,$h$$!#Nc$($P!$FbIt%i%Y%k5Z$S30It(B&header;$B$KB8:_$9$k(BMIME$B7A<0$N%i%Y%k$NAjBPE*$JM%@hEY$KBP$9$k5,B'$O!$(Btext/xml$B5Z$S(Bapplication/xml$B$N(BMIME$B7?$rDj5A$9$k(BRFC$BJ8=q$N0lIt$H$J$kJ}$,$h$$!#$7$+$7!$Aj8_1?MQ@-$N$?$a$K!$<!$N5,B'$K=>$&$3$H$,K>$^$7$$!#(B 3402<ulist> 3403<item><p>a) XML$B$N<BBN$,%U%!%$%k$KB8:_$9$l$P!$(B&byte-order-mark;$B5Z$SId9f2=@k8@(BPI$B$O!$(B($BB8:_$9$l$P(B)$BJ8;zId9f2=$r7hDj$9$k$?$a$K;HMQ$9$k!#B>$N$9$Y$F$N(B&hueristics;$B5Z$S>pJs$O!$(B&error;$B2sI|$N$?$a$@$1$KMQ$$$k!#(B 3404</p></item> 3405<item><p>b) XML$B$N<BBN$r(BMIME$B7?(Btext/xml$B$GG[Aw$9$k$H$-$O!$$3$N(BMIME$B7?$N$b$D(Bcharset$B%Q%i%a%?$,J8;zId9f2=J}K!$r7hDj$9$k!#B>$N$9$Y$F$N(B&hueristics;$B5Z$S>pJs$O!$(B&error;$B2sI|$N$?$a$@$1$KMQ$$$k!#(B 3406</p></item> 3407<item><p>c) XML$B$N<BBN$r(B <!-- via the HTTP protocol -->MIME$B7?(Bapplication/xml$B$GG[Aw$9$k$H$-$O!$(B&byte-order-mark;$B5Z$SId9f2=@k8@(BPI$B$r(B($BB8:_$9$l$P(B)$BJ8;zId9f2=$N7hDj$N$?$a$K;HMQ$9$k!#B>$N$9$Y$F$N(B&hueristics;$B5Z$S>pJs$O(B&error;$B2sI|$N$?$a$@$1$KMQ$$$k!#(B 3408</p></item> 3409</ulist> 3410$B$3$l$i$N5,B'$O!$%W%m%H%3%k$K$D$$$F$N;qNA$,$J$$$H$-$K$@$1MQ$$$k!#FC$K!$(BMIME$B7?(Btext/xml$B5Z$S(Bapplication/xml$B$rDj5A$7$?$i!$$3$l$i$r5,Dj$9$k(BRFC$B$KB8:_$9$k5,Dj$,!$$3$l$i$N5,B'$K<h$C$FBe$o$k!#(B 3411</p> 3412</inform-div1> 3413<!-- 3414<div1 id='sec-trival-grammar'> 3415<head>A Trivial Grammar for XML Documents</head> 3416<p>The grammar given in the body of this specification is relatively 3417simple, but for some purposes it is convenient to have an even simpler 3418one. 3419A very simple, though non-conforming, <termref def="dt-xml-proc">XML 3420processor</termref> could parse a <termref 3421def="dt-wellformed">well-formed</termref> XML document using the 3422following simplified grammar, recognizing all element boundaries 3423correctly, though not expanding entity references and not detecting 3424all errors: 3425 3426<scrap lang="ebnf"> 3427<head>Trivial text grammar</head> 3428<prodgroup pcw2="5.5" pcw4="17" pcw5="10"> 3429<prod id='NT-simpleDoc'><lhs>simpleDoc</lhs> 3430<rhs>(<nt def='NT-SimpleData'>SimpleData</nt> 3431| <nt def='NT-Markup'>Markup</nt>)*</rhs></prod> 3432<prod id="NT-SimpleData"><lhs>SimpleData</lhs> 3433<rhs>[^<&]*</rhs> 3434<com>cf. PCData</com> 3435</prod> 3436<prod id="NT-SimpleLit"><lhs>SimpleLit</lhs> 3437<rhs>('"' [^"]* '"')</rhs> 3438<rhs>| ("'" [^']* "'")</rhs> 3439<com>cf. SkipLit</com> 3440</prod> 3441<prod id='NT-Markup'><lhs>Markup</lhs> 3442<rhs>'<' <nt def='NT-Name'>Name</nt> 3443(<nt def='NT-S'>S</nt> 3444<nt def='NT-Name'>Name</nt> 3445<nt def='NT-S'>S</nt>? '=' <nt def='NT-S'>S</nt>? 3446<nt def='NT-SimpleLit'>SimpleLit</nt>)* 3447<nt def='NT-S'>S</nt>? '>'</rhs><com>start-tags </com> 3448<rhs>| '<' <nt def='NT-Name'>Name</nt> 3449(<nt def='NT-S'>S</nt> 3450<nt def='NT-Name'>Name</nt> 3451<nt def='NT-S'>S</nt>? '=' <nt def='NT-S'>S</nt>? 3452<nt def='NT-SimpleLit'>SimpleLit</nt>)* 3453<nt def='NT-S'>S</nt>? '/>'</rhs><com>empty elements</com> 3454<rhs>| '</' 3455<nt def='NT-Name'>Name</nt> 3456<nt def='NT-S'>S</nt>? '>'</rhs> 3457<com>end-tags </com> 3458<rhs>| '&' <nt def='NT-Name'>Name</nt> ';'</rhs> 3459<com>entity references </com> 3460<rhs>| '&#' [0-9]+ ';'</rhs> 3461<com>decimal character references </com> 3462<rhs>| '&hcro;' [0-9a-fA-F]+ ';'</rhs> 3463<com>hexadecimal character references </com> 3464<rhs>| '<!&como;' 3465(<nt def='NT-Char'>Char</nt>* - 3466(<nt def='NT-Char'>Char</nt>* '&comc;' <nt def='NT-Char'>Char</nt>*)) 3467'&comc;>'</rhs> 3468<com>comments </com> 3469<rhs>| '<?' 3470(<nt def='NT-Char'>Char</nt>* - 3471(<nt def='NT-Char'>Char</nt>* &pic; <nt def='NT-Char'>Char</nt>*)) 3472'&pic;'</rhs> 3473<com>processing instructions </com> 3474<rhs>| '<![CDATA[' 3475(<nt def='NT-Char'>Char</nt>* - 3476(<nt def='NT-Char'>Char</nt>* ']]>' <nt def='NT-Char'>Char</nt>*)) 3477']]>'</rhs> 3478<com>CDATA sections</com> 3479<rhs>| '<!DOCTYPE' 3480(<nt def="NT-Char">Char</nt> - ('[' | ']'))+ 3481('[' 3482<nt def="NT-simpleDTD">simpleDTD</nt>* 3483']')? '>'</rhs> 3484<com>doc type declaration</com> 3485</prod> 3486<prod id="NT-simpleDTD"><lhs>simpleDTD</lhs> 3487<rhs>'<!&como;' 3488(<nt def='NT-Char'>Char</nt>* - 3489(<nt def='NT-Char'>Char</nt>* '&comc;' <nt def='NT-Char'>Char</nt>*)) 3490'&comc;>'</rhs> 3491<com>comment </com> 3492<rhs>| '<?' 3493(<nt def='NT-Char'>Char</nt>* - 3494(<nt def='NT-Char'>Char</nt>* &pic; <nt def='NT-Char'>Char</nt>*)) 3495'&pic;'</rhs> 3496<com>processing instruction </com> 3497<rhs><nt def="NT-SimpleLit">SimpleLit</nt></rhs> 3498<rhs>(<nt def="NT-Char">Char</nt> - (']' | '<' | '"' | "'"))+ 3499</rhs> 3500 3501<rhs>'<!' (<nt def="NT-Char">Char</nt> - ('-'))+</rhs> 3502<com>declarations other than comment</com> 3503</prod> 3504</prodgroup> 3505</scrap> 3506Most processors will require the more complex 3507grammar given in the body of this specification. 3508 3509</p> 3510</div1> 3511--> 3512 3513<inform-div1 id="sec-xml-wg"> 3514<head>&informative;W3C XML $B%o!<%-%s%0%0%k!<%W(B</head> 3515 3516<p>$B$3$N(B&TR-or-Rec;$B$O!$(BW3C XML $B%o!<%-%s%0%0%k!<%W(B(WG)$B$,=`Hw$7!$8x3+$r>5G'$7$?!#(BWG$B$,$3$N(B&TR-or-Rec;$B$r>5G'$9$k$H$$$&$3$H$O!$(BWG$B$N$9$Y$F$N0Q0w$,>5G'EjI<$r9T$C$?$H$$$&$3$H$rI,$:$7$b0UL#$7$J$$!#(BXML WG$B$N8=:_$N0Q0w5Z$S0JA0$N0Q0w$r<!$K<($9!#(B</p> 3517 3518<!-- parens and spaces removed from role elements by bosak 1997.11.07 --> 3519<orglist> 3520<member><name>Jon Bosak, Sun</name><role>Chair</role></member> 3521<member><name>James Clark</name><role>Technical Lead</role></member> 3522<member><name>Tim Bray, Textuality and Netscape</name><role>XML Co-editor</role></member> 3523<member><name>Jean Paoli, Microsoft</name><role>XML Co-editor</role></member> 3524<member><name>C. M. Sperberg-McQueen, U. of Ill.</name><role>XML Co-editor</role></member> 3525<member><name>Dan Connolly, W3C</name></member> 3526<member><name>Steve DeRose, INSO</name></member> 3527<member><name>Dave Hollander, HP</name></member> 3528<member><name>Eliot Kimber, Highland</name></member> 3529<member><name>Eve Maler, ArborText</name></member> 3530<member><name>Tom Magliery, NCSA</name></member> 3531<member><name>Murray Maloney, Muzmo and Grif</name></member> 3532<member><name>$BB<ED!!??!$IY;N%<%m%C%/%9>pJs%7%9%F%`(B($B3t(B)</name></member> 3533<member><name>Joel Nava, Adobe</name></member> 3534<member><name>Peter Sharpe, SoftQuad</name></member> 3535<member><name>John Tigue, DataChannel</name></member> 3536</orglist> 3537 3538</inform-div1> 3539</back> 3540</spec> 3541<!-- Keep this comment at the end of the file 3542Local variables: 3543mode: sgml 3544sgml-omittag:t 3545sgml-shorttag:t 3546End: 3547--> 3548 3549 3550