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 "&#8232;"> -->
129<!ENTITY lt     "<">
130<!ENTITY gt     ">">
131<!--<!ENTITY amp    "&"> -->
132<!ENTITY xmlpio "'&lt;?xml'">
133<!ENTITY pic    "'?>'">
134<!ENTITY br     "\n">
135<!ENTITY cellback '#c0d9c0'>
136<!ENTITY mdash  "--"> <!-- was: <!ENTITY mdash  "&#38;#151;"> -->
137<!ENTITY com    "--">
138<!ENTITY como   "--">
139<!ENTITY comc   "--">
140<!ENTITY hcro   "&amp;#x">
141<!-- <!ENTITY nbsp ""> -->
142<!ENTITY nbsp   "&#160;">
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&subset;
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&subset;$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 &lt; 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 &amp;nbsp;
460and define nbsp as &amp;#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 &amp; 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 &amp; 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&subset;$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. -->&lt;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&lt;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(([^%&amp;"]
771| <nt def='NT-PEReference'>PEReference</nt>
772| <nt def='NT-Reference'>Reference</nt>)*
773- (<nt def='NT-Char'>Char</nt>* ']]&gt;' <nt def='NT-char'>Char</nt>*))
774' " '
775</rhs>
776<rhs>|&nbsp;
777" ' "
778(([^%&amp;']
779| <nt def='NT-PEReference'>PEReference</nt>
780| <nt def='NT-Reference'>Reference</nt>)*
781- (<nt def='NT-Char'>Char</nt>* ']]&gt;' <nt def='NT-char'>Char</nt>*))
782" ' "</rhs>
783</prod>
784<prod id='NT-AttValue'><lhs>AttValue</lhs>
785<rhs>'"'
786(([^&lt;&amp;"]
787| <nt def='NT-Reference'>Reference</nt>)*
788- (<nt def='NT-Char'>Char</nt>* ']]&gt;' <nt def='NT-char'>Char</nt>*))
789' " '
790</rhs>
791<rhs>|&nbsp;
792" ' "
793(([^&lt;&amp;']
794| <nt def='NT-Reference'>Reference</nt>)*
795- (<nt def='NT-Char'>Char</nt>* ']]&gt;' <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([^%&amp;"]
804| <nt def='NT-PEReference'>PEReference</nt>
805| <nt def='NT-Reference'>Reference</nt>)*
806' " '
807</rhs>
808<rhs>|&nbsp;
809" ' "
810([^%&amp;']
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([^&lt;&amp;"]
818| <nt def='NT-Reference'>Reference</nt>)*
819' " '
820</rhs>
821<rhs>|&nbsp;
822" ' "
823([^&lt;&amp;']
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|&nbsp;[a-zA-Z0-9]
844|&nbsp;[-'()+,./:=?]</rhs>
845</prod>
846<prod id="NT-SkipLit"><lhs>SkipLit</lhs>
847<rhs>(' " ' [^"]* ' " ')
848|&nbsp;(" ' " [^']* " ' ")</rhs>
849</prod>
850<!-- alternate form, making ms end illegal: -->
851<!--
852<prod id="NT-SkipLit"><lhs>SkipLit</lhs>
853<rhs>(' " ' ([^"]* - ([^"]* ']]&gt;' [^"]*)) ' " ')
854|&nbsp;(" ' " ([^']* - ([^']* ']]&gt;' [^']*)) " ' ")</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>&lt;</code>"
864or "<code>&amp;</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:  &lt; 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 &lt; &amp; 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 (&amp;)$B5Z$S(B&left-angle-bracket; (&lt;)$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;amp;</code>"$B5Z$S(B&string;"<code>&amp;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>&amp;gt;</code>"$B$r;HMQ$7$FI=8=$7$F$b$h$$!#FbMF$NCf$GNs(B"<code>]]&gt;</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>&amp;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>]]&gt;</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>&amp;apos;</code>"$B$H$7$FI=8=$7!$(B&double-quote;(")$B$O!$(B"<code>&amp;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>[^&lt;&amp;]* - ([^&lt;&amp;]* ']]&gt;' [^&lt;&amp;]*)</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>'&lt;!--'
921((<nt def='NT-Char'>Char</nt> - '-')
922| ('-' (<nt def='NT-Char'>Char</nt> - '-')))*
923'-->'</rhs>
924<!--
925<rhs>'&lt;!&como;'
926(<nt def='NT-Char'>Char</nt>* -
927(<nt def='NT-Char'>Char</nt>* '&comc;' <nt def='NT-Char'>Char</nt>*))
928'&comc;&gt;'</rhs> -->
929</prod>
930</scrap>
931</termdef></p>
932<p>$B%3%a%s%H$NNc$r<!$K<($9!#(B
933<eg>&lt;!&como; declarations for &lt;head> &amp; &lt;body> &comc;&gt;</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>'&lt;?' <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&target; (<nt def='NT-PITarget'>PITarget</nt>) $B$G;O$^$k!#(B&target;$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&target;$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>&lt;![CDATA[</code>"$B$G;O$^$j!$(B&string;
963"<code>]]&gt;</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>'&lt;![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>* ']]&gt;' <nt def='NT-Char'>Char</nt>*))
977</rhs>
978</prod>
979<prod id='NT-CDEnd'><lhs>CDEnd</lhs>
980<rhs>']]&gt;'</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>&amp;lt;</code>"$B5Z$S(B"<code>&amp;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>&lt;greeting></code>"$B5Z$S(B"<code>&lt;/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>&lt;![CDATA[&lt;greeting>Hello, world!&lt;/greeting>]]&gt;</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&subset;($BFCJL$J<oN`$N(B<termref def='dt-extent'>$B30It<BBN(B</termref>)$B$r;2>H$G$-!$Kt$OFbIt(B&subset;$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&subset;$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'>&parameter;$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>'&lt;!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&parameter;$B<BBN$,87L)$KF~$l;R$r$J$9$3$H(B</head>
1119<p>&parameter;$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'>&parameter;$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&subset;$BFb$N(B&parameter;$B<BBN(B</head>
1123<p>DTD$B$NFbIt(B&subset;$B$G$O!$(B<termref def='dt-PERef'>&parameter;$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&parameter;$B<BBNKt$O30It(B&subset;$B$G$N;2>H$K$OE,MQ$7$J$$!#(B)$B!#(B
1124</p>
1125</wfcnote>
1126<p>
1127$BFbIt(B&subset;$B$N$H$-$HF1MM$K!$30It(B&subset;$B5Z$S(BDTD$B$K$*$$$F;2>H$9$kG$0U$N30It(B&parameter;$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">&parameter;$B<BBN;2>H(B</termref>$B$rCV$$$F$b$h$$!#$7$+$7!$30It(B&subset;$BKt$O30It(B&parameter;$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&subset;</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&subset;$B5Z$S30It(B&parameter;$B<BBN$O!$$=$NFb$G$O!$(B&parameter;$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&subset;$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&subset;$B5Z$SFbIt(B&subset;$B$NN>J}$r;HMQ$9$k$H$-$O!$FbIt(B&subset;$B$,30It(B&subset;$B$h$j@h$K=P8=$7$?$H8+$J$9!#(B<!--* 'is considered to'? boo. whazzat mean? -->$B$3$l$O!$FbIt(B&subset;$B$N<BBN5Z$SB0@-%j%9%H@k8@$,!$30It(B&subset;$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&subset;$BFb$K!$Kt$OFbIt(B&subset;$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>&lt;?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&#x00F1;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&#223;em Bem&#252;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>'&lt;' <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>&lt;</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>&amp;lt;</code>$B$r=|$/!#(B)$B$N(B<termref def='dt-repltext'>&replacement-text;</termref>$B$K$O!$(B<code>&lt;</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>&lt;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>'&lt;/' <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>&lt;/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>'&lt;' <nt def='NT-Name'>Name</nt> (<nt def='NT-S'>S</nt> <nt def='NT-Attribute'>Attribute</nt>)* <nt def='NT-S'>S</nt>? '/&gt;'</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>&lt;IMG align="left" src="http://www.w3.org/Icons/WWW/w3c_home" />&lt;br>&lt;/br>&lt;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>'&lt;!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&lt;!ELEMENT br EMPTY>
1398&lt;!ELEMENT p (#PCDATA|emph)* >
1399&lt;!ELEMENT %name.para; %content.para; >
1400&lt;!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>&lt;!ELEMENT spec (front, body, back?)>
1435&lt;!ELEMENT div1 (head, (p | list | note)*, div2*)>
1436&lt;!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>&lt;!ELEMENT p (#PCDATA|a|ul|b|i|em)*>
1480&lt;!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* >
1481&lt;!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>'&lt;!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>? '&gt;'</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|&nbsp;'#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|&nbsp;'#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>&lt;!ATTLIST termdef
1694          id      ID      #REQUIRED
1695          name    CDATA   #IMPLIED>
1696&lt;!ATTLIST list
1697          type    (bullets|ordered|glossary)  "ordered">
1698&lt;!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&subset;</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>'&lt;![' 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']]&gt;'
1746</rhs>
1747</prod>
1748<prod id='NT-ignoreSect'><lhs>ignoreSect</lhs>
1749<rhs>'&lt;![' S? 'IGNORE' S? '['
1750<nt def="NT-ignoreSectContents">ignoreSectContents</nt>*
1751']]&gt;'</rhs>
1752</prod>
1753<prod id='NT-ignoreSectContents'><lhs>ignoreSectContents</lhs>
1754<rhs><nt def='NT-Ignore'>Ignore</nt>
1755('&lt;![' <nt def='NT-ignoreSectContents'>ignoreSectContents</nt>
1756']]&gt;'
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>* ('&lt;![' | ']]&gt;')
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>* ']]&gt;' <nt def='NT-Char'>Char</nt>*))
1768| ('&lt;![' <nt def='NT-ignoreSectContents'>ignoreSectContents</nt>*
1769']]&gt;')
1770</rhs>
1771<rhs>
1772| (<nt def='NT-Char'>Char</nt> - (']' | [&lt;'"]))
1773</rhs>
1774<rhs>
1775| ('&lt;!' (<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&subset;$B5Z$S30It(B&subset;$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>&lt;!ENTITY % draft 'INCLUDE' >
1793&lt;!ENTITY % final 'IGNORE' >
1794
1795&lt;![%draft;[
1796&lt;!ELEMENT book (comments*, title, body, supplements?)>
1797]]&gt;
1798&lt;![%final;[
1799&lt;!ELEMENT book (title, body, supplements?)>
1800]]&gt;
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&subset;</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>'&amp;#' [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>&amp;#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>&amp;#</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>&amp;</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>'&amp;' <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&subset;$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&subset;$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&subset;$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 &lt;key>less-than&lt;/key> (&hcro;3C;) to save options.
1988This document was prepared on &amp;docdate; and
1989is classified &amp;security-level;.</eg>
1990</p>
1991
1992<p>
1993$B%Q%i%a%?<BBN;2>H$NNc$r!$<!$K<($9!#(B
1994<eg>&lt;!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>'&lt;!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>? '&gt;'</rhs>
2018</prod>
2019<prod id='NT-PEDecl'><lhs>PEDecl</lhs>
2020<rhs>| '&lt;!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>? '&gt;'</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>&lt;!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&subset;$B$K$"$k<BBN@k8@$G$NAjBPE*$J(BURI$B$O!$J8=q$N0LCV$K$D$$$FAjBPE*$H$9$k!#30It(B&subset;$B$K$"$k<BBN@k8@$G$NAjBPE*$J(BURI$B$O!$$=$N30It(B&subset;$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>&lt;!ENTITY open-hatch
2136         SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml">
2137&lt;!ENTITY open-hatch
2138         PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN"
2139         "http://www.textuality.com/boilerplate/OpenHatch.xml">
2140&lt;!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>&lt;?xml encoding='UTF-8'?>
2248&lt;?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&subset;$BKt$O30It(B&subset;$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;amp;T;</code>"$B$O!$(B"<code>AT&amp;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;amp;T;</code>" expands to
2432"<code>AT&amp;T;</code>" since the ampersand replacing "<code>&amp;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>&amp;#60;</code>" and "<code>&amp;#38;</code>" may be used to
2465escape <code>&lt;</code> and <code>&amp;</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&parameter;$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&parameter;$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&parameter;$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    "&#xc9;ditions Gallimard" >
2522<!ENTITY   rights "All rights reserved" >
2523<!ENTITY   book   "La Peste: Albert Camus,
2524&#xA9; 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&#169; 1947 &#201;ditions Gallimard. &amp;rights;</eg>
2528$B;2>H(B"<code>&amp;book;</code>"$B$,!$J8=q$NFbMFKt$OB0@-CMFb$K=P8=$7$F$$$l$P!$0lHL<BBN;2>H(B"<code>&amp;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>&amp;#60;</code>"$B5Z$S(B"<code>&amp;#38;</code>"$B$O!$J8;z%G!<%?Fb$K=P8=$9$k(B<code>&lt;</code>$B5Z$S(B<code>&amp;</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     "&#38;#60;">
2581<!ENTITY gt     "&#62;">
2582<!ENTITY amp    "&#38;#38;">
2583<!ENTITY apos   "&#39;">
2584<!ENTITY quot   "&#34;">
2585]]></eg>
2586"<code>lt</code>"$B5Z$S(B"<code>amp</code>"$B@k8@Fb$N(B"<code>&lt;</code>"$B5Z$S(B"<code>&amp;</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>'&lt;!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&mdash; 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 &mdash; Universal
2808Multiple-Octet Coded Character Set (UCS) &mdash; 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&#252;ggemann-Klein'>Br&#252;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&#252;ggemann-Klein and Wood'>Br&#252;ggemann-Klein, Anne,
2849and Derick Wood.
2850<emph>Deterministic Regular Languages</emph>.
2851Universit&#228;t Freiburg, Institut f&#252;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 &mdash; Text and Office
2879Systems &mdash; Standard Generalized Markup Language (SGML).</emph>  First
2880edition &mdash; 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 &mdash;
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|&nbsp;[#x0061-#x007A]
2915|&nbsp;[#x00C0-#x00D6]
2916|&nbsp;[#x00D8-#x00F6]
2917|&nbsp;[#x00F8-#x00FF]
2918|&nbsp;[#x0100-#x0131]
2919|&nbsp;[#x0134-#x013E]
2920|&nbsp;[#x0141-#x0148]
2921|&nbsp;[#x014A-#x017E]
2922|&nbsp;[#x0180-#x01C3]
2923|&nbsp;[#x01CD-#x01F0]
2924|&nbsp;[#x01F4-#x01F5]
2925|&nbsp;[#x01FA-#x0217]
2926|&nbsp;[#x0250-#x02A8]
2927|&nbsp;[#x02BB-#x02C1]
2928|&nbsp;#x0386
2929|&nbsp;[#x0388-#x038A]
2930|&nbsp;#x038C
2931|&nbsp;[#x038E-#x03A1]
2932|&nbsp;[#x03A3-#x03CE]
2933|&nbsp;[#x03D0-#x03D6]
2934|&nbsp;#x03DA
2935|&nbsp;#x03DC
2936|&nbsp;#x03DE
2937|&nbsp;#x03E0
2938|&nbsp;[#x03E2-#x03F3]
2939|&nbsp;[#x0401-#x040C]
2940|&nbsp;[#x040E-#x044F]
2941|&nbsp;[#x0451-#x045C]
2942|&nbsp;[#x045E-#x0481]
2943|&nbsp;[#x0490-#x04C4]
2944|&nbsp;[#x04C7-#x04C8]
2945|&nbsp;[#x04CB-#x04CC]
2946|&nbsp;[#x04D0-#x04EB]
2947|&nbsp;[#x04EE-#x04F5]
2948|&nbsp;[#x04F8-#x04F9]
2949|&nbsp;[#x0531-#x0556]
2950|&nbsp;#x0559
2951|&nbsp;[#x0561-#x0586]
2952|&nbsp;[#x05D0-#x05EA]
2953|&nbsp;[#x05F0-#x05F2]
2954|&nbsp;[#x0621-#x063A]
2955|&nbsp;[#x0641-#x064A]
2956|&nbsp;[#x0671-#x06B7]
2957|&nbsp;[#x06BA-#x06BE]
2958|&nbsp;[#x06C0-#x06CE]
2959|&nbsp;[#x06D0-#x06D3]
2960|&nbsp;#x06D5
2961|&nbsp;[#x06E5-#x06E6]
2962|&nbsp;[#x0905-#x0939]
2963|&nbsp;#x093D
2964|&nbsp;[#x0958-#x0961]
2965|&nbsp;[#x0985-#x098C]
2966|&nbsp;[#x098F-#x0990]
2967|&nbsp;[#x0993-#x09A8]
2968|&nbsp;[#x09AA-#x09B0]
2969|&nbsp;#x09B2
2970|&nbsp;[#x09B6-#x09B9]
2971|&nbsp;[#x09DC-#x09DD]
2972|&nbsp;[#x09DF-#x09E1]
2973|&nbsp;[#x09F0-#x09F1]
2974|&nbsp;[#x0A05-#x0A0A]
2975|&nbsp;[#x0A0F-#x0A10]
2976|&nbsp;[#x0A13-#x0A28]
2977|&nbsp;[#x0A2A-#x0A30]
2978|&nbsp;[#x0A32-#x0A33]
2979|&nbsp;[#x0A35-#x0A36]
2980|&nbsp;[#x0A38-#x0A39]
2981|&nbsp;[#x0A59-#x0A5C]
2982|&nbsp;#x0A5E
2983|&nbsp;[#x0A72-#x0A74]
2984|&nbsp;[#x0A85-#x0A8B]
2985|&nbsp;#x0A8D
2986|&nbsp;[#x0A8F-#x0A91]
2987|&nbsp;[#x0A93-#x0AA8]
2988|&nbsp;[#x0AAA-#x0AB0]
2989|&nbsp;[#x0AB2-#x0AB3]
2990|&nbsp;[#x0AB5-#x0AB9]
2991|&nbsp;#x0ABD
2992|&nbsp;#x0AE0
2993|&nbsp;[#x0B05-#x0B0C]
2994|&nbsp;[#x0B0F-#x0B10]
2995|&nbsp;[#x0B13-#x0B28]
2996|&nbsp;[#x0B2A-#x0B30]
2997|&nbsp;[#x0B32-#x0B33]
2998|&nbsp;[#x0B36-#x0B39]
2999|&nbsp;#x0B3D
3000|&nbsp;[#x0B5C-#x0B5D]
3001|&nbsp;[#x0B5F-#x0B61]
3002|&nbsp;[#x0B85-#x0B8A]
3003|&nbsp;[#x0B8E-#x0B90]
3004|&nbsp;[#x0B92-#x0B95]
3005|&nbsp;[#x0B99-#x0B9A]
3006|&nbsp;#x0B9C
3007|&nbsp;[#x0B9E-#x0B9F]
3008|&nbsp;[#x0BA3-#x0BA4]
3009|&nbsp;[#x0BA8-#x0BAA]
3010|&nbsp;[#x0BAE-#x0BB5]
3011|&nbsp;[#x0BB7-#x0BB9]
3012|&nbsp;[#x0C05-#x0C0C]
3013|&nbsp;[#x0C0E-#x0C10]
3014|&nbsp;[#x0C12-#x0C28]
3015|&nbsp;[#x0C2A-#x0C33]
3016|&nbsp;[#x0C35-#x0C39]
3017|&nbsp;[#x0C60-#x0C61]
3018|&nbsp;[#x0C85-#x0C8C]
3019|&nbsp;[#x0C8E-#x0C90]
3020|&nbsp;[#x0C92-#x0CA8]
3021|&nbsp;[#x0CAA-#x0CB3]
3022|&nbsp;[#x0CB5-#x0CB9]
3023|&nbsp;#x0CDE
3024|&nbsp;[#x0CE0-#x0CE1]
3025|&nbsp;[#x0D05-#x0D0C]
3026|&nbsp;[#x0D0E-#x0D10]
3027|&nbsp;[#x0D12-#x0D28]
3028|&nbsp;[#x0D2A-#x0D39]
3029|&nbsp;[#x0D60-#x0D61]
3030|&nbsp;[#x0E01-#x0E2E]
3031|&nbsp;#x0E30
3032|&nbsp;[#x0E32-#x0E33]
3033|&nbsp;[#x0E40-#x0E45]
3034|&nbsp;[#x0E81-#x0E82]
3035|&nbsp;#x0E84
3036|&nbsp;[#x0E87-#x0E88]
3037|&nbsp;#x0E8A
3038|&nbsp;#x0E8D
3039|&nbsp;[#x0E94-#x0E97]
3040|&nbsp;[#x0E99-#x0E9F]
3041|&nbsp;[#x0EA1-#x0EA3]
3042|&nbsp;#x0EA5
3043|&nbsp;#x0EA7
3044|&nbsp;[#x0EAA-#x0EAB]
3045|&nbsp;[#x0EAD-#x0EAE]
3046|&nbsp;#x0EB0
3047|&nbsp;[#x0EB2-#x0EB3]
3048|&nbsp;#x0EBD
3049|&nbsp;[#x0EC0-#x0EC4]
3050|&nbsp;[#x0F40-#x0F47]
3051|&nbsp;[#x0F49-#x0F69]
3052|&nbsp;[#x10A0-#x10C5]
3053|&nbsp;[#x10D0-#x10F6]
3054|&nbsp;#x1100
3055|&nbsp;[#x1102-#x1103]
3056|&nbsp;[#x1105-#x1107]
3057|&nbsp;#x1109
3058|&nbsp;[#x110B-#x110C]
3059|&nbsp;[#x110E-#x1112]
3060|&nbsp;#x113C
3061|&nbsp;#x113E
3062|&nbsp;#x1140
3063|&nbsp;#x114C
3064|&nbsp;#x114E
3065|&nbsp;#x1150
3066|&nbsp;[#x1154-#x1155]
3067|&nbsp;#x1159
3068|&nbsp;[#x115F-#x1161]
3069|&nbsp;#x1163
3070|&nbsp;#x1165
3071|&nbsp;#x1167
3072|&nbsp;#x1169
3073|&nbsp;[#x116D-#x116E]
3074|&nbsp;[#x1172-#x1173]
3075|&nbsp;#x1175
3076|&nbsp;#x119E
3077|&nbsp;#x11A8
3078|&nbsp;#x11AB
3079|&nbsp;[#x11AE-#x11AF]
3080|&nbsp;[#x11B7-#x11B8]
3081|&nbsp;#x11BA
3082|&nbsp;[#x11BC-#x11C2]
3083|&nbsp;#x11EB
3084|&nbsp;#x11F0
3085|&nbsp;#x11F9
3086|&nbsp;[#x1E00-#x1E9B]
3087|&nbsp;[#x1EA0-#x1EF9]
3088|&nbsp;[#x1F00-#x1F15]
3089|&nbsp;[#x1F18-#x1F1D]
3090|&nbsp;[#x1F20-#x1F45]
3091|&nbsp;[#x1F48-#x1F4D]
3092|&nbsp;[#x1F50-#x1F57]
3093|&nbsp;#x1F59
3094|&nbsp;#x1F5B
3095|&nbsp;#x1F5D
3096|&nbsp;[#x1F5F-#x1F7D]
3097|&nbsp;[#x1F80-#x1FB4]
3098|&nbsp;[#x1FB6-#x1FBC]
3099|&nbsp;#x1FBE
3100|&nbsp;[#x1FC2-#x1FC4]
3101|&nbsp;[#x1FC6-#x1FCC]
3102|&nbsp;[#x1FD0-#x1FD3]
3103|&nbsp;[#x1FD6-#x1FDB]
3104|&nbsp;[#x1FE0-#x1FEC]
3105|&nbsp;[#x1FF2-#x1FF4]
3106|&nbsp;[#x1FF6-#x1FFC]
3107|&nbsp;#x2126
3108|&nbsp;[#x212A-#x212B]
3109|&nbsp;#x212E
3110|&nbsp;[#x2180-#x2182]
3111|&nbsp;[#x3041-#x3094]
3112|&nbsp;[#x30A1-#x30FA]
3113|&nbsp;[#x3105-#x312C]
3114|&nbsp;[#xAC00-#xD7A3]
3115</rhs></prod>
3116<prod id='NT-Ideographic'><lhs>Ideographic</lhs>
3117<rhs>[#x4E00-#x9FA5]
3118|&nbsp;#x3007
3119|&nbsp;[#x3021-#x3029]
3120</rhs></prod>
3121<prod id='NT-CombiningChar'><lhs>CombiningChar</lhs>
3122<rhs>[#x0300-#x0345]
3123|&nbsp;[#x0360-#x0361]
3124|&nbsp;[#x0483-#x0486]
3125|&nbsp;[#x0591-#x05A1]
3126|&nbsp;[#x05A3-#x05B9]
3127|&nbsp;#x05BB#x05BD
3128|&nbsp;#x05BF
3129|&nbsp;[#x05C1-#x05C2]
3130|&nbsp;#x05C4
3131|&nbsp;#x064B#x0652
3132|&nbsp;#x0670
3133|&nbsp;[#x06D6-#x06DC]
3134|&nbsp;#x06DD#x06DF
3135|&nbsp;[#x06E0-#x06E4]
3136|&nbsp;[#x06E7-#x06E8]
3137|&nbsp;[#x06EA-#x06ED]
3138|&nbsp;[#x0901-#x0903]
3139|&nbsp;#x093C
3140|&nbsp;[#x093E-#x094C]
3141|&nbsp;#x094D
3142|&nbsp;[#x0951-#x0954]
3143|&nbsp;[#x0962-#x0963]
3144|&nbsp;[#x0981-#x0983]
3145|&nbsp;#x09BC
3146|&nbsp;#x09BE
3147|&nbsp;#x09BF
3148|&nbsp;[#x09C0-#x09C4]
3149|&nbsp;[#x09C7-#x09C8]
3150|&nbsp;[#x09CB-#x09CD]
3151|&nbsp;#x09D7
3152|&nbsp;[#x09E2-#x09E3]
3153|&nbsp;#x0A02
3154|&nbsp;#x0A3C
3155|&nbsp;#x0A3E
3156|&nbsp;#x0A3F
3157|&nbsp;[#x0A40-#x0A42]
3158|&nbsp;[#x0A47-#x0A48]
3159|&nbsp;[#x0A4B-#x0A4D]
3160|&nbsp;[#x0A70-#x0A71]
3161|&nbsp;[#x0A81-#x0A83]
3162|&nbsp;#x0ABC
3163|&nbsp;[#x0ABE-#x0AC5]
3164|&nbsp;[#x0AC7-#x0AC9]
3165|&nbsp;[#x0ACB-#x0ACD]
3166|&nbsp;[#x0B01-#x0B03]
3167|&nbsp;#x0B3C
3168|&nbsp;[#x0B3E-#x0B43]
3169|&nbsp;[#x0B47-#x0B48]
3170|&nbsp;[#x0B4B-#x0B4D]
3171|&nbsp;[#x0B56-#x0B57]
3172|&nbsp;[#x0B82-#x0B83]
3173|&nbsp;[#x0BBE-#x0BC2]
3174|&nbsp;[#x0BC6-#x0BC8]
3175|&nbsp;[#x0BCA-#x0BCD]
3176|&nbsp;#x0BD7
3177|&nbsp;[#x0C01-#x0C03]
3178|&nbsp;[#x0C3E-#x0C44]
3179|&nbsp;[#x0C46-#x0C48]
3180|&nbsp;[#x0C4A-#x0C4D]
3181|&nbsp;[#x0C55-#x0C56]
3182|&nbsp;[#x0C82-#x0C83]
3183|&nbsp;[#x0CBE-#x0CC4]
3184|&nbsp;[#x0CC6-#x0CC8]
3185|&nbsp;[#x0CCA-#x0CCD]
3186|&nbsp;[#x0CD5-#x0CD6]
3187|&nbsp;[#x0D02-#x0D03]
3188|&nbsp;[#x0D3E-#x0D43]
3189|&nbsp;[#x0D46-#x0D48]
3190|&nbsp;[#x0D4A-#x0D4D]
3191|&nbsp;#x0D57
3192|&nbsp;#x0E31
3193|&nbsp;[#x0E34-#x0E3A]
3194|&nbsp;[#x0E47-#x0E4E]
3195|&nbsp;#x0EB1
3196|&nbsp;[#x0EB4-#x0EB9]
3197|&nbsp;[#x0EBB-#x0EBC]
3198|&nbsp;[#x0EC8-#x0ECD]
3199|&nbsp;[#x0F18-#x0F19]
3200|&nbsp;#x0F35
3201|&nbsp;#x0F37
3202|&nbsp;#x0F39
3203|&nbsp;#x0F3E
3204|&nbsp;#x0F3F
3205|&nbsp;[#x0F71-#x0F84]
3206|&nbsp;[#x0F86-#x0F8B]
3207|&nbsp;[#x0F90-#x0F95]
3208|&nbsp;#x0F97
3209|&nbsp;[#x0F99-#x0FAD]
3210|&nbsp;[#x0FB1-#x0FB7]
3211|&nbsp;#x0FB9
3212|&nbsp;[#x20D0-#x20DC]
3213|&nbsp;#x20E1
3214|&nbsp;[#x302A-#x302F]
3215|&nbsp;#x3099
3216|&nbsp;#x309A
3217</rhs></prod>
3218<prod id='NT-Digit'><lhs>Digit</lhs>
3219<rhs>[#x0030-#x0039]
3220|&nbsp;[#x0660-#x0669]
3221|&nbsp;[#x06F0-#x06F9]
3222|&nbsp;[#x0966-#x096F]
3223|&nbsp;[#x09E6-#x09EF]
3224|&nbsp;[#x0A66-#x0A6F]
3225|&nbsp;[#x0AE6-#x0AEF]
3226|&nbsp;[#x0B66-#x0B6F]
3227|&nbsp;[#x0BE7-#x0BEF]
3228|&nbsp;[#x0C66-#x0C6F]
3229|&nbsp;[#x0CE6-#x0CEF]
3230|&nbsp;[#x0D66-#x0D6F]
3231|&nbsp;[#x0E50-#x0E59]
3232|&nbsp;[#x0ED0-#x0ED9]
3233|&nbsp;[#x0F20-#x0F29]
3234</rhs></prod>
3235<prod id='NT-Extender'><lhs>Extender</lhs>
3236<rhs>#x00B7
3237|&nbsp;#x02D0
3238|&nbsp;#x02D1
3239|&nbsp;#x0387
3240|&nbsp;#x0640
3241|&nbsp;#x0E46
3242|&nbsp;#x0EC6
3243|&nbsp;#x3005
3244|&nbsp;[#x3031-#x3035]
3245|&nbsp;[#x309D-#x309E]
3246|&nbsp;[#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"&lt;"$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&subset;$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;#38;) may be escaped
3300numerically (&#38;#38;#38;) or with a general entity
3301(&amp;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 (&#38;) may be escaped
3305numerically (&#38;#38;) or with a general entity
3306(&amp;amp;).</p>
3307]]></eg>
3308$BJ8=qFb$G(B"<code>&amp;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 (&#38;) or with a general entity
3311(&amp;).
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 '&#37;zz;'>
33195 <!ENTITY % zz '&#60;!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>&amp;#60;</code>"$B$rD>$A$KE83+$7!$%Q%i%a%?<BBN(B"<code>zz</code>"$B$r(B"<code>&lt;!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>&lt;!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&#252;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>&lt;?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'&lt;'$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>[^&lt;&amp;]*</rhs>
3434<com>cf. PCData</com>
3435</prod>
3436<prod id="NT-SimpleLit"><lhs>SimpleLit</lhs>
3437<rhs>('"' [^"]* '"')</rhs>
3438<rhs>|&nbsp;("'" [^']* "'")</rhs>
3439<com>cf. SkipLit</com>
3440</prod>
3441<prod id='NT-Markup'><lhs>Markup</lhs>
3442<rhs>'&lt;' <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>? '&gt;'</rhs><com>start-tags </com>
3448<rhs>| '&lt;' <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>? '/&gt;'</rhs><com>empty elements</com>
3454<rhs>| '&lt;/'
3455<nt def='NT-Name'>Name</nt>
3456<nt def='NT-S'>S</nt>? '&gt;'</rhs>
3457<com>end-tags </com>
3458<rhs>| '&amp;' <nt def='NT-Name'>Name</nt> ';'</rhs>
3459<com>entity references </com>
3460<rhs>| '&amp;#' [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>| '&lt;!&como;'
3465(<nt def='NT-Char'>Char</nt>* -
3466(<nt def='NT-Char'>Char</nt>* '&comc;' <nt def='NT-Char'>Char</nt>*))
3467'&comc;&gt;'</rhs>
3468<com>comments </com>
3469<rhs>| '&lt;?'
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>| '&lt;![CDATA['
3475(<nt def='NT-Char'>Char</nt>* -
3476(<nt def='NT-Char'>Char</nt>* ']]&gt;' <nt def='NT-Char'>Char</nt>*))
3477']]&gt;'</rhs>
3478<com>CDATA sections</com>
3479<rhs>| '&lt;!DOCTYPE'
3480(<nt def="NT-Char">Char</nt> - ('[' | ']'))+
3481('['
3482<nt def="NT-simpleDTD">simpleDTD</nt>*
3483']')? '&gt;'</rhs>
3484<com>doc type declaration</com>
3485</prod>
3486<prod id="NT-simpleDTD"><lhs>simpleDTD</lhs>
3487<rhs>'&lt;!&como;'
3488(<nt def='NT-Char'>Char</nt>* -
3489(<nt def='NT-Char'>Char</nt>* '&comc;' <nt def='NT-Char'>Char</nt>*))
3490'&comc;&gt;'</rhs>
3491<com>comment </com>
3492<rhs>| '&lt;?'
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> - (']' | '&lt;' | '"' | "'"))+
3499</rhs>
3500
3501<rhs>'&lt;!' (<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