Los Angeles Chinese Learning Center, providing private Chinese Mandarin classes, Chinese tutors, Mandarin interpreter and translators, China investment report, investment opportunity report, China intelligence report, information on Chinese herbal medicines in Los Angeles
Corporate Services Other Services
Private Instruction Invest in China
Curriculum FAQ
Business Culture Health Education
Textbooks Our Staff
Hours and Location Contact Us
¡@

W3CREC-xml-19980210-tw

Extensible Markup Language ( XML ) 1.0

¥»¤å¥ó¬O®Ú¾Ú W3C «ØÄ³®Ñ XML ª©¥» 1.0 (1998 ¦~ 2 ¤ë10¤é) ©Ò½Ķ¦¨ªºÁcÅ餤¤åª©¡A½Ķ¹Lµ{¤¤¤w¸g¤O¨D¥¿½T¡A¤£¹L¤´¥i¯à¦³¿ù»~¤Î¤£¾A·íªº¦a¤è¡C


°ß¤@¼Ð·Çªº¥¿¦¡ª©¥»¬°­^¤åª©¡A±z¥i¦b¤U¦C³sµ²¤¤§ä¨ì¦¹¥¿¦¡ª©¥»¡G

http://www.w3.org/TR/1998/REC-xml-19980210


This documented is a translated copy of the W3C's Extensible Markup Language (XML) 1.0.

This document may contain translation errors. The normative, English language, copy can be found at:

http://www.w3.org/TR/1998/REC-xml-19980210


¥»¤å¥ó¦ì©ó¡G

http://chinese-school.netfirms.com/XML_spec.htm

¡@

¼f¾\¡G
ĶªÌ¡G

ª`·N ! ¥»¤å¥ó¤¤ªº "(͵ù:)" ªí¥ÜĶªÌ¬°¨D©ö©óÁA¸Ñ©Ò¥[¤Jªº¶i¤@¨B»¡©ú¡A³o¨Ç»¡©úªº¥¿½T¸ÑÄÀ¬Ò¥H­^¤å¥¿¦¡ª©¬°¥D¡C


µÛ§@Åv«Å§i¦ì©ó¡Ghttp://www.w3.org/Consortium/Legal/copyright-documents.html

Copyright  ©  1998 W3C (MIT¡A INRIA¡A Keio )¡A All Rights Reserved. W3C liability¡A trademark¡A document use and software licensing rules apply.

W3CREC-xml-19980210-tw


¥iÂX®i¼Ð¥Ü»y¨¥(XML) 1.0

W3C «ØÄ³®Ñ 1998¦~2¤ë10¤é

¥»ª©¥»:
http://www.w3.org/TR/1998/REC-xml-19980210
http://www.w3.org/TR/1998/REC-xml-19980210.xml
http://www.w3.org/TR/1998/REC-xml-19980210.html
http://www.w3.org/TR/1998/REC-xml-19980210.pdf
http://www.w3.org/TR/1998/REC-xml-19980210.ps
³Ì·sª©¥»:
http://www.w3.org/TR/REC-xml
¤W¤@ª©¥»:
http://www.w3.org/TR/PR-xml-971208
½sªÌ:
Tim Bray (Textuality and Netscape) <tbray@textuality.com>
Jean Paoli (Microsoft) <jeanpa@microsoft.com>
C. M. Sperberg-McQueen (University of Illinois at Chicago) <cmsmcq@uic.edu>

ºK­n

¥»¤å¥ó§¹¾ã¦a´y­z¤F¥iÂX®i¼Ð¥Ü»y¨¥ (Extensible Markup Language¡AXML) ªº¦U¶µ¸ê°T¡CXML¥i»¡¬O¼Ð·Ç³q¥Î¼Ð¥Ü»y¨¥ (Standard Generalized Markup Language¡ASGML) ªº¤l¶°¦X¡A¨ä§@¥Î¥D­n¬OÅý³q¥Îªº SGML ¤]¯à¹³²{¦³ªº¶WÃìµ²¼Ð¥Ü»y¨¥ (HyperText Markup Language¡AHTML) ¤@¼Ë¡A¥i¥H¦b Web ¤W´£¨ÑªA°È¡B±µ¦¬¤Î³B²z¸ê®Æµ¥¤u§@¡CXML ³Q³]­p¦¨¤Q¤À®e©ö¹ê§@ (Implementation)¡A¨Ã¥B¤]´£¨Ñ XML »P SGML ©Î HTML ¤§¶¡ªº¤¬³q¥\¯à¡C

¥»¤å¥óªº¨î©w©l¥½»Pª¬ºA

¥»¤å¥ó¤w¸g¥Ñ W3C ²Õ´¤¤ªº¦¨­û¤Î¬ÛÃö¹ÎÅé¼f¾\¹L¡A¨Ã¤w³Q²Õ´¤¤ªº²z¨Æ§å­ã¬° W3C «ØÄ³®Ñ (W3C Recommendation)¡C¦¹¬°¤@¥÷í©wªº¤å¥ó (͵ù: ªí¥Ü¤£·|¸g±`­×§ï)¡A¥i¥H·í§@°Ñ¦Ò¸ê®Æ¡A¤]¥i§@¬°¨ä¥L¤å¥óªº¥¿¦¡°Ñ¦Ò¤åÄm¡CW3C ¦b¨î©w«ØÄ³®Ñ¹Lµ{¤¤ªº¨¤¦â¬O¬°¤F§l¤Þ¹ï©ó XML ³W®æªºª`·N¡A¥H«P¶i¨ä³Q¼sªx¦a¨Ï¥Î¡C¦p¦¹«K¯à¼W±j Web ªº¥\¯à¤Î¤¬°Ê©Ê¡C

¥»³W®æ®Ñ³W©w¤F¤@ºØ¥i¥Î©ó¥þ²y¸ê°Tºô (World Wide Web) ªº»yªk¡A¦¹»yªk¬O®Ú¾Ú¤@­Ó¤w¦s¦b¨Ã¼sªx¨Ï¥Îªº°ê»Ú¤å¦r³B²z¼Ð·Ç (´N¬O Standard Generalized Markup Language¡ASGML¡A¼Ð·Ç³q¥Î¼Ð¥Ü»y¨¥¡A¬°¸g¹L­×¥¿¹Lªº ISO 8879:1986(E) ¼Ð·Ç) ªº¤l¶°¦X¨Ó«Ø¥ßªº¡C¦¹¬° W3C XML ¨î©w¤u§@ (XML Activity) ªº¦¨ªG¡AÃö©ó XML ¨î©w¤u§@ªº¸Ô²Ó¸ê°T¥i¥H¦bhttp://www.w3.org/XML§ä¨ì¡C¦bhttp://www.w3.org/TR¥i¥H§ä¨ì¥Ø«e W3C «ØÄ³®Ñ©M¨ä¥L§Þ³N¤å¥óªº¦Cªí¡C

¥»³W®æ®Ñ¤¤¨Ï¥Î¤F [Berners-Lee µ¥¤H] ©w¸qªº¤@­Ó³N»y URI¡A¥L­Ì¥¿¦b±q¨Æ§ó·s[IETF RFC1738]©M[IETF RFC1808]ªº¤u§@¡C

¥»³W®æ®Ñªº¤wª¾¿ù»~¦Cªí¥i¥H¦bhttp://www.w3.org/XML/xml-19980210-errata§ä¨ì¡C

½Ð±N¥»¤å¥ó¤¤ªº¿ù»~¥H¹q¤l¶l¥óªº¤è¦¡¶Ç°eµ¹xml-editor@w3.org¡C

¥iÂX®i¼Ð¥Ü»y¨¥(XML) 1.0

¥Ø¿ý

1. ºü½×
    1.1 ½t°_©M³]­p¥Ø¼Ð
    1.2 ³N»y
2. ¤å¥ó
    2.1 §Î¦¡¦Xªkªº XML¤å¥ó
    2.2 ¦r¤¸
    2.3 ³q¥Î»yªk«Øºc
    2.4 ¦r¤¸¸ê®Æ©M¼Ð¥Ü
    2.5 µù¸Ñ
    2.6 ³B²z«ü¥Ü
    2.7 CDATA¬q
    2.8 «e¨¥©M¤å¥óÃþ«¬«Å§i
    2.9 ¿W¥ß¤å¥ó«Å§i
    2.10 ªÅ¥Õ³B²z
    2.11 ¦æ§À³B²z
    2.12 »y¨¥¿ëÃÑ
3. ÅÞ¿èµ²ºc
    3.1 °_©l¼ÐÅÒ¡Aµ²§ô¼ÐÅÒ©MªÅ¤¸¯À¼ÐÅÒ
    3.2 ¤¸¯ÀÃþ«¬«Å§i
        3.2.1 ¤¸¯À«¬¤º®e
        3.2.2 ²V¦X«¬¤º®e
    3.3 Äݩʪí«Å§i
        3.3.1 ÄÝ©ÊÃþ«¬
        3.3.2 Äݩʪº¹w³]­È
        3.3.3 ÄÝ©Ê-­È¹ïªº³W½d¤Æ
    3.4 ±ø¥ó¬q
4. ª«²zµ²ºc
    4.1 ¦r¤¸©M¹êÅé¤Þ¥Î
    4.2 ¹êÅé«Å§i
        4.2.1 ¤º³¡¹êÅé
        4.2.2 ¥~³¡¹êÅé
    4.3 ­åªR¹L¹êÅé
        4.3.1 ¤å¥»«Å§i
        4.3.2 §Î¦¡¦Xªkªº­åªR¹L¹êÅé
        4.3.3 ¹êÅ餤ªº¦r¤¸½s½X
    4.4 XML³B²z¾¹¹ï¹êÅé©M¤Þ¥Îªº³B²z
        4.4.1 ¤£³QÃѧO
        4.4.2 ³Q¥]§t
        4.4.3 ¶i¦æÅçÃҮɳQ¥]§t
        4.4.4 ³Q¸T¤î
        4.4.5 ³Q¥]§t¦b¦r­±¤W¸ê®Æ¤¤
        4.4.6 ³qª¾
        4.4.7 ¤£³B²z
        4.4.8 ·í¦¨ PE ¨Ó¥]§t
    4.5 ¤º³¡¹êÅé¸m´«¤å¥»ªººc«Ø
    4.6 ¹w©w¸q¹êÅé
    4.7 °Oªk«Å§i
    4.8 ¤å¥ó¹êÅé
5. ¤@­P©Ê
    5.1 ¶i¦æÅçÃÒ©M¤£¶i¦æÅçÃÒªº³B²z¾¹
    5.2 ¨Ï¥ÎXML³B²z¾¹
6. °Oªk

ªþ¿ý

A. °Ñ¦Ò¤åÄm
    A.1 ¥¿¦¡°Ñ¦Ò¤åÄm
    A.2 ¨ä¥L°Ñ¦Ò¤åÄm
B. ¦r¤¸ªºÃþ§O
C. XML©MSGML(«D¥¿¦¡)
D. ¹êÅé©M¦r¤¸°Ñ¤Þªº®i¶}(«D¥¿¦¡)
E. ¨M©w«¬ªº¤º®e¼Ò«¬ («D¥¿¦¡)
F. ¦r¤¸½s½Xªº¦Û°ÊÀË´ú(«D¥¿¦¡)
G. W3C XML¤u§@²Õ(«D¥¿¦¡)


1. ºü½×

¥iÂX®i¼Ð¥Ü»y¨¥ (ÁY¼g¬° XML) ¥Î¨Ó´y­z¤@ºØºÙ¬°XML¤å¥óªº¸ê®Æª«¥ó¡A¦P®É¤]³¡¤À¦a´y­z¤F³B²z³o¨Ç¸ê®Æª«¥óªºµ{¦¡³]­p¤è¦¡¡CXML ¬O SGML (¼Ð·Ç³q¥Î¼Ð¥Ü»y¨¥[ISO 8879]) ¦bÀ³¥Î¤Wªº¤@­Ó¤l¶°¦X¡A©Î¬° SGML ªº¬YºØ­­¨î§Î¦¡¡C®Ú¾Ú¨î©w³W®æªº©w¸q¡AXML¤å¥ó¬O²Å¦X³W®æªº SGML ¤å¥ó¡C

XML¤å¥ó¥ÑºÙ¬°¹êÅ骺Àx¦s³æ¤¸©Ò²Õ¦¨¡A¦Ó¹êÅé¥i¥H¥]§t­åªR¹L (Parsed) ©Î¥¼­åªR¹L (Unparsed) ªº¸ê®Æ¡C¤w­åªR¹Lªº¸ê®Æ¥Ñ¦r¤¸²Õ¦¨¡A¨ä¤¤¤@¨Ç¦r¤¸²Õ¦¨¦r¤¸¸ê®Æ¡A¥t¤@¨Ç¦r¤¸²Õ¦¨¼Ð¥Ü¡C¼Ð¥Ü¤¤¥]§t¤F¹ï©ó¤å¥óÀx¦s®æ¦¡ (Storage layout) ©MÅÞ¿èµ²ºc (Logical structure) ªº´y­z¡C¦]¦¹ XML ¥i»¡¬O´£¨Ñ¤F¤@ºØ¥i¥Î©ó³W½d¤Î­­¨îÀx¦s®æ¦¡©MÅÞ¿èµ²ºcªº¾÷¨î¡C

¤@ºØºÙ¬°XML ³B²z¾¹ (XML Processor) ªº³nÅé¼Ò²Õ¬O¥Î¨ÓŪ¨ú XML¤å¥ó¡A¨Ã´£¨Ñ¦s¨ú¤å¥ó¤º®e¤Îµ²ºcªº¤èªk¡C¥¦¤]¥i¥H³B²z À³¥Îµ{¦¡ (Application)¡C°w¹ï XML ³B²z¾¹À³¦p¦óŪ¨ú XML ¸ê®Æ¡A¥H¤ÎÀ³´£¨Ñ­þ¨Ç¸ê°Tµ¹À³¥Îµ{¦¡¨â¤è­±¡A¥»³W®æ®Ñ´y­z¤F¨ä©Ò»Ý¾Ö¦³ªº°Ê§@»P¾Þ§@¤è¦¡¡C

1.1 ½t°_©M³]­p¥Ø¼Ð

XML¥Ñ XML ¤u§@²Õ (­ì¥ýªº SGML ½s¿è¼f¬d©e­û·|) ©Ò¶}µo¡A¦¹¤u§@²Õ¦b 1996 ¦~¥Ñ¥þ²y¸ê°Tºô¨ó·| ( World Wide Web Consortium¡AW3C) ©Ò¦¨¥ß¡C¸Ó¤u§@²Õªº­t³d¤H¬O Sun Microsystemsªº Jon Bosak¡A¦P¼Ë W3C ²Õ´ªº XML Special Interest Group (­ì¥ý¬° SGML¤u§@²Õ) ¤]¿n·¥°Ñ»P¤F³o¶µ¤u§@¡C¦³Ãö XML ¤u§@²Õ¤§¦¨­û©m¦W½Ð°Ñ¦Òªþ¿ý¡C¤u§@²Õ»P W3C ªºÁpô¤H¬° Dan Connolly¡C

XML ªº³]­p¥Ø¼Ð¦p¤U¡G

  1. XML À³¸Ó¥i¥Hª½±µ¦b Internet ¤W¨Ï¥Î¡C
  2. XML À³¸Ó¥i¥H¤ä´©¦hºØ¤£¦PªºÀ³¥Î¡C
  3. XML À³¸Ó­n¯à»P SGML ¬Û®e¡C
  4. ³B²z XML ¤å¥óªºµ{¦¡À³¸Ó­n«Ü®e©ö¼¶¼g¡C
  5. XML ¤¤¥i¿ï¾Ü©Êªº¥\¯à (optional features) À³¾¨¥i¯à¦a´î¦Ü³Ì¤Ö¡A²z·Qª¬ªp¤UÀ³¸Ó 0 ­Ó¡C
  6. XML ¤å¥óÀ³¸Ó¯à°÷Åý¤Hª½±µ¾\Ū¡A¨Ã¥B¯à°÷²M·¡ªº³Q²z¸Ñ¡C
  7. XML ªº³]­pÀ³ºÉ³t§¹¦¨¡C
  8. XML ªº³]­pÀ³¸Ó¬O¥¿¦¡ªº (formal) ¤Î²¼äªº (concise)¡C
  9. XML ¤å¥óÀ³¸Ó¯à«Ü®e©öªº«Ø¥ß¡C
  10. XML ¼Ð¥Ü (Markup) ªºÂ²¤Æ³¡¤À¬O¤£­«­nªº¡C(͵ù¡G¦¹¥Ø¼Ð¬O¬°¤F¸Ñ¨M SGML ¦³Ãö²¤Æ (Minimization) ªº°ÝÃD)

¥»³W®æ®Ñ»P¨ä¥L¬ÛÃöªº¼Ð·Ç (Unicode ©M ISO/IEC 10646 ©w¸q¦r¤¸¶°¡AInternet RFC1766 ©w¸q»y¨¥ÃѧO½X¡AISO 639 ©w¸q»y¨¥¦WºÙ¥N½X¡AISO 3166 ©w¸q°ê®a¦WºÙ¥N½X)¡A¤@°_´£¨Ñ¯à¤F¸Ñ XML ª©¥» 1.0 ³W®æ¤Î«Ø¥ß¨ä³B²zµ{¦¡»Ý­nªº©Ò¦³¸ê°T¡C

¥u­n¯à§¹¾ã¦a«O¯d XML 1.0 ³W®æ®Ñ¤¤©Ò¦³ªº¤å¦r¤º®e¤Îª©Åvª`·N¨Æ¶µ (legal notices)¡A«h¦¹ª©¥»ªº XML ³W®æ®Ñ«K¥i¦Û¥Ñ´²§G (distributed freely)¡C

1.2 ³N»y

¦b»¡©ú XML ¤å¥ó®É©Ò¨Ï¥Îªº³N»y³£·|¦b¦¹³W®æ®Ñªº¤º¤å¤¤©w¸q¡C¦b«Ø¥ß³o¨Ç©w¸q¤Î´y­z¤@­Ó XML ³B²z¾¹ªº°Ê§@®É¡A¨Ï¥Î¤U­±¦Cªí¤¤ªº³N»y¡G

¥i¥H (may)
¤¹³\²Å¦X³W®æªº¤å¥ó©M XML ³B²z¾¹¨Ì·Ó©Ò´y­zªº¤è¦¡¶i¦æ¹B§@¡A¦ý¤£­n¨D¥²¶·¦p¦¹¡C
¥²¶· (must)
­n¨D²Å¦X³W®æªº¤å¥ó©M XML ³B²z¾¹¨Ì·Ó©Ò´y­zªº¤è¦¡¶i¦æ¹B§@¡F§_«h·|¥X²{¿ù»~¡C
¿ù»~ (error)
­Y¹H­I¥»³W®æ®Ñ¤¤ªº³W«h¡F«h±o¨ìªºµ²ªG¬O¨S¦³©w¸qªº¡C²Å¦X³W®æªº³nÅé¥i¥H°»´ú¤Î§iª¾¿ù»~¡A¥B¥i¥H±q¿ù»~¤¤«ì´_¡C
ÄY­«¿ù»~ (fatal error)
¦¹ºØ¿ù»~¬O²Å¦X³W®æªºXML³B²z¾¹¥²¶·¯àÀË´ú¥X¨Ó¡A¨Ã¦VÀ³¥Îµ{¦¡§iª¾ªº¡C¬°¤FÀ°§U­×¥¿¿ù»~¡A³B²z¾¹¥i±N¤å¥ó¤¤¥¼¸g³B²zªº¸ê®Æ (²V¦X¦r¤¸¸ê®Æ©M¼Ð¥Ü¸ê®Æ) ¶Ç°eµ¹À³¥Îµ{¦¡¡CµM¦Ó¤@¥¹ÀË´ú¨ì¤@­ÓÄY­«ªº¿ù»~¡A«h³B²z¾¹¥²¶·²×¤î¤@¯ëªº¸ê®Æ³B²z (¤]´N¬O»¡¡A¥¦¥²¶·°±¤î¥H¤@¯ëªº¤è¦¡¡A¶Ç»¼¦³Ãö¤å¥óÅÞ¿èµ²ºcªº¦r¤¸¸ê®Æ¤Î¸ê°Tµ¹À³¥Îµ{¦¡)¡C
¥Ñ¨Ï¥ÎªÌ¿ï¾Ü (at user option)
²Å¦X³W®æªº³nÅé¥i¥H©Î¥²¶· (ºÝµø©ó¥y¤l¤¤ªº»yºA°Êµü modal verb) «ö·Ó©Ò´y­zªº¦æ¬°¨Ó¹B§@¡F¦pªG¥¦²Å¦X¦¹¹B§@¦æ¬°¡A «h¥²¶·´£¨Ñ¨Ï¥ÎªÌ¤@ºØ¤èªk¡A¦¹¤èªk¯à°÷¨M©w¬O§_¨Ï¥Î (Enable) ©Î¸T¥Î (Disable) ©Ò´y­zªº¦æ¬°¹B§@¤è¦¡¡C
¥¿½T¦Xªk©Ê­­¨î (validity constraint)
¦¹¬°¯à¾A¥Î©ó©Ò¦³¥¿½T¦Xªkªº (valid) XML¤å¥ó¤§³W«h¡C­Y¹H­I¥¿½T¦Xªk©Êªº­­¨î´Nµø¬°¿ù»~;¶i¦æ¥¿½T¦Xªk©ÊÅçÃÒªº XML ³B²z¾¹¥²¶·¸g¥Ñ¨Ï¥ÎªÌ¿ï¾Ü (At user option) ¬O§_§iª¾³o¨Ç¿ù»~¡C
§Î¦¡¦Xªk©Ê­­¨î (well-formedness constraint)
¦¹¬°¯à¾A¥Î©ó©Ò¦³§Î¦¡¦Xªkªº (well-formed) XML ¤å¥ó¤§³W«h¡C­Y¹H­I§Î¦¡¦Xªk©Êªº­­¨î´Nµø¬°ÄY­«¿ù»~¡C
¬Û²Å (match)
(°w¹ï©ó¦r¦ê©M¦WºÙ¡G) ³Q¤ñ¸ûªº¨â­Ó¦r¦ê©Î¦WºÙ¥²¶·§¹¥þ¬Û¦P (Identical)¡C¦b ISO/IEC 10646 ¤¤¦³¦hºØ¥i¯àªí¥Ü¤è¦¡ªº¦r¤¸ (¨Ò¦p:¹w¥ý©w¸q (Precomposed) §Î¦¡¤Î°ò¦ (Base) + ÅÜ­µ²Å (Diacritic) §Î¦¡ªº¦r¤¸) ¥u¦b©ó¨â­Ó¦r¦êªºªí¥Ü¤è¦¡¬Û¦P®É¤~ªí¥Ü¬Û²Å¡C¥Ñ¨Ï¥ÎªÌ¿ï¾Ü¡A³B²z¾¹¥i±N³o¨Ç¦r¤¸ªº¬YºØ³W½d (Canonical) §Î¦¡¼Ð·Ç¤Æ¡C¦ý¦¹³B¨Ã¤£·|Âà´«¦r¤¸ªº¤j¤p¼g¡C(°w¹ï¤åªk¤¤ªº¦r¦ê©M³W«h¡G) ¦pªG¦r¦êÄÝ©ó¬Y­Ó¤åªk²£¥Í³W«h¦¡©Ò²£¥Íªº»y¨¥¡A«h¥¦¬Û²Å©ó³o­Ó²£¥Í³W«h¦¡¡C(°w¹ï¤º®e©M¤º®e¼Ò«¬¡G) ·í¤@­Ó¤¸¯À²Å¦X"¤¸¯À¥¿½T¦Xªk©Ê"­­¨îªº´y­z®É¡A¦¹¤¸¯À·|²Å¦X©ó¥»¨­ªº«Å§i (declaration)¡C
°w¹ï¬Û®e©Ê¦Ò¶q (for compatibility)
¦¹¯S©Ê¶È¨Ï¥Î©ó½T«O XML ¤´Â¬ۮe©ó SGML¡C
°w¹ï¤¬³q©Ê¦Ò¶q (for interoperability)
¥»³W®æ®Ñ¥]§t¤@­Ó¤£¨ã®Ä¤Oªº«ØÄ³¤º®e¡A¥Øªº¬O¬°¤F¼W¥[XML¤å¥ó¡A¯à³Q ISO 8879 WebSGML §ï½sªþ¥ó (WebSGML Adaptation Annex) ¤§«e´N¦s¦bªº SGML ³B²z¾¹³B²zªº¾÷·|¡C

2. ¤å¥ó

¦pªG¤@­Ó¸ê®Æª«¥ó²Å¦X¥»³W®æ®Ñ¤¤§Î¦¡¦Xªk (well-formed) ªº©w¸q®É¡A¥¦´N¬O¤@¥÷XML¤å¥ó (XML document)¡C¤@¥÷§Î¦¡¦XªkªºXML¤å¥ó¡A¦pªG¥¦º¡¨¬¬Y¨ÇÃB¥~ªº­­¨î¡A«h¥i¶i¤@¨B¦¨¬°¥¿½T¦Xªkªº (valid) ¤å¥ó¡C

¨C¥÷ XML ¤å¥ó³£¦³ÅÞ¿è¤W (Logical) ¤Îª«²z¤W (Physical) ªºµ²ºc¡C´Nª«²z¤W¦Ó¨¥¡A¤å¥ó¬O¥ÑºÙ¬° ¹êÅé (Entity)ªº³æ¤¸©Ò²Õ¦¨¡C¤@­Ó¹êÅé¥i¥H ¤Þ¥Î (refer)¨ä¥L¹êÅé¨Ã±N¤§¥]¬A¦b¤å¥ó¤¤¡C ¤å¥ó¶}©l©ó"®Ú¤¸¯À (Root ©Î Root element) " ©Î¤å¥ó¹êÅé (document entity) ¤¤¡C´NÅÞ¿è¤W¦Ó¨¥¡A´NÅÞ¿è¤W¦Ó¨¥¡A¤å¥ó¥Ñ«Å§i (Declarations)¡B¤¸¯À (Elements)¡Bµù¸Ñ (Comments)¡B¦r¤¸°Ñ¤Þ (Character references) »P³B²z«ü¥Ü (Processing Instructions¡API) ©Ò²Õ¦¨¡A©Ò¦³³o¨Ç²Õ¦¨³æ¤¸³£·|¦b¤å¥ó¤¤¨Ï¥Î©úÅ㪺¼Ð¥Ü¨Ó¥Nªí¡CÅÞ¿è©Mª«²zµ²ºc¥²¶·¹³" 4.3.2 §Î¦¡¦Xªkªº­åªR¹L¹êÅé"¤¤©Ò´y­z¨º¼ËÄY®æ¦a³B²z±_ª¬µ²ºc (nest)¡C

2.1 §Î¦¡¦Xªkªº XML¤å¥ó (Well-Formed XML Documents)

­Y¤@­Ó¤å¥»ª«¥ó (textual object) ¬O¤@¥÷§Î¦¡¦Xªkªº XML ¤å¥ó¡A¥¦»Ý­nº¡¨¬¥H¤U­n¥ó¡G

  1. ¬Û²Å©ó documentªº²£¥Í³W«h¦¡¡C
  2. º¡¨¬¥»³W®æ®Ñ¤¤©Ò©w¸qªº©Ò¦³§Î¦¡¦Xªk©Ê­­¨î¡C
  3. ¦¹¤å¥ó¤¤ª½±µ©Î¶¡±µ¤Þ¥Îªº¨C­Ó­åªR¹L¹êÅé³£¬O§Î¦¡¦Xªkªº¡C
¤å¥ó (Document)
[1]  document ::= prolog element Misc*

¬Û²Ådocument²£¥Í³W«h¦¡·N¿×µÛ¡G

  1. ¥¦¥]§t¤@­Ó©Î¦h­Ó¤¸¯À.
  2. ¤å¥ó¤¤¶È¦³¤@­Ó¤¸¯ÀºÙ¬°®Ú¤¸¯À (Root element)©Î¤å¥ó¤¸¯À (document element)¡A®Ú¤¸¯À¤£¥X²{¦b¨ä¥L¥ô¦ó¤¸¯Àªº¤º®e (content)¤¤¡C¹ï©ó¨ä¥L¤¸¯À¦Ó¨¥¡A¦pªG°_©l¼ÐÅÒ (start-tag) ¦b¥t¤@­Ó¤¸¯Àªº¤º®e¤¤¡A«h¨äµ²§ô¼ÐÅÒ (end-tag) ¤]·|¦b¦P¤@¤¸¯Àªº¤º®e¤¤¡C´«­Ó§ó²³æªº»¡ªk¡A¨Ï¥Î°_©l¼ÐÅÒ©Mµ²§ô¼ÐÅÒ§@¬°¤À¹jªº¦U­Ó¤¸¯À¡A¥²¶·ÄY®æ¦a¨Ì·Ó±_ª¬ªº¦¸§Ç¨Ó©ñ¸m (͵ù¡G¤£¦P²Õªº°_©l¼ÐÅÒ»Pµ²§ô¼ÐÅÒ¤£¥i¥æ¤e­«Å|)¡C

¦p¦¹°µªºµ²ªG¬O¡A°w¹ï¨C­Ó«D®Úªº¤¸¯À C¡A¤å¥ó¤¤¥t¦³¤@­Ó¤¸¯À P¡AC ¦ì©ó P ªº¤º®e¤¤¡A¦Ó¤£¦ì©ó¨ä¥L³Q P ©Ò¥]§tªº¥ô¦ó¤¸¯Àªº¤º®e¤¤¡CP «hºÙ¬° C ªº¤÷¤¸¯À (parent or parent element)¡A¦Ó C «hºÙ¬° P ªº¤l¤¸¯À (child or child element) ¡C

2.2 ¦r¤¸

¤@­Ó­åªR¹L¹êÅé¥]§t¤å¥» (text)¡A¤å¥»¬°¤@¦ê ¦r¤¸(character)§Ç¦C¡A¥i¥Nªí¼Ð¥Ü©Î¦r¤¸¸ê®Æ¡C¤@­Ó ¦r¤¸¬O ISO/IEC 10646[ISO/IEC 10646]¤¤©w¸qªº¤å¥»³Ì¤p°ò¥»³æ¤¸¡C¦Xªkªº¦r¤¸¥]¬A¸õ¦ì¦r¤¸ (Tab)¡BÂk¦ì¦r¤¸ (Carriage return)¡B´«¦æ¦r¤¸ (Line feed) ¥H¤Î Unicode ©M ISO/IEC 10646 ¤¤©w¸qªº¦Xªk¹Ï§Î¦r¤¸¡C¤£«ØÄ³¨Ï¥Î[Unicode] 6.8 ¸`¤¤©w¸qªº"¬Û®e¦r¤¸(compatibility characters)"¡C

¦r¤¸½d³ò (Character Range)
[2]  Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* °£¤F¥N¥Î°Ï°ì (surrogate block) FFFE ¤Î FFFF ¥H¥~ªº¥ô·N Unicode ¦r¤¸¡C*/

±N¦r¤¸¥N½X«ü©w¦¨¦ì¤¸«¬ºAªº¾÷¨î¡A¦U¹êÅé¶¡¥i¯à¤£ºÉ¬Û¦P¡C©Ò¦³ªº XML ³B²z¾¹¥²¶·³£¯à±µ¨ü 10646 ¤¤ªº UTF-8 ©M UTF-16 ½s½X¡F«ü©w¨Ï¥Î¦¹¨âºØ½s½Xªº¨ä¤¤¤@ºØ©Î«ü©w¨Ï¥Î¨ä¥L½s½Xªº¾÷¨î¡A±N¦bµy«áªº" 4.3.3 ¹êÅ餤ªº¦r¤¸½s½X "¤¤°Q½×¡C

2.3 ³q¥Î»yªk«Øºc

¥»¸`¤¤©w¸q¤F¤@¨Ç¦b¤åªk¤¤¼sªx¨Ï¥Îªº²Å¸¹¡C

S (ªÅ¥Õ White space) ¥]¬A¤@­Ó©Î¦h­ÓªÅ®æ¦r¤¸ (#x20)¡BÂk¦ì¦r¤¸¡A´«¦æ¦r¤¸¤Î¸õ¦ì¦r¤¸¡C

ªÅ¥Õ (White Space)
[3]  S ::= (#x20 | #x9 | #xD | #xA)+

¬°¤F¤è«K°_¨£¡A¦r¤¸³Q¤ÀÃþ¦¨¦r¥À (Letters)¡A¼Æ¦r (Digits) ©M¨ä¥L¦r¤¸¤TÃþ¡C¦r¥À¥i¥H¬O­^¤å¦r¥Àªí¤¤ªº¦r¥À¡A©Î¬O¤@­Ó­µ¸`¦r¤¸ (Syllabic base character) «á­±¸òµÛ¤@©Î¦h­Ó²Õ¦X¦r¤¸¡A¤]¥i¥H¬O¤@­Óªí·N¦r¤¸ (Ideographic character)¡C¦b"B. ¦r¤¸ªº¤ÀÃþ"¤¤·|µ¹¤©¨CÃþ¦r¤¸ªº§¹¾ã©w¸q¡C

¦WºÙ(name)¬O¥H¦r¥À©Î¬Y¨Ç¼ÐÂI²Å¸¹¦r¤¸¶}ÀYªº²Å°O(token)¡A«á­±·|±µµÛ¦r¥À¡B¼Æ¦r¡B³s¦r¤¸¡B©³½u¡B«_¸¹©Î¥y¸¹¡A³o¨Ç²Å¸¹²ÎºÙ¬°¦WºÙ¦r¤¸(Name character)¡C¥H"xml"©Î¨ä¥L¥ô¦ó¬Û²Å©ó (('X'|'x') ('M'|'m') ('L'|'l')) ªº¦r¦ê¶}ÀY¦WºÙ¡A¦b¦¹ª©¥»©Î«áÄòª©¥»ªº³W®æ®Ñ¤¤³Q«O¯d¨Ï¥Î¡C(͵ù: ªí¥Ü¦WºÙ¦r¤¸¤£¯à¥H xml¡AXml¡A...XML ¬°¶}ÀY)

ª`·N¡GXML ¦WºÙ¤¤ªº«_¸¹³Q«O¯dµ¹¦WºÙªÅ¶¡ (name space) ´ú¸Õ¹êÅç®É¨Ï¥Î¡C¥¦ªº·N¸q¥²¶·µ¥«Ý¥¼¨Ó¦WºÙªÅ¶¡ªº³W®æ¼Ð·Ç¤Æ¡A¦Ó¨º®É±N«_¸¹¥Î©ó¹êÅç¥Î³~ªº¤å¥ó¥i¯à»Ý­n§ó·s¡C(¤£«OÃÒ¥¼¨Ó XML ªº¦WºÙªÅ¶¡¾÷¨î¡A·|±Ä¥Î«_¸¹§@¬°©w¬É²Å¡C)¹ê»Ú¤W¡A³o·N¿×µÛ°£«D¦b´ú¸Õ¦WºÙªÅ¶¡´ú¸Õ¹êÅç®É¨Ï¥Î¡AXML ¤å¥ó§@ªÌ¤£À³¸Ó¦b XML ¦WºÙ¤¤¨Ï¥Î«_¸¹¡A¦ý XML ³B²z¾¹À³¸Ó±µ¨ü±N«_¸¹µø¬°¤@­Ó¦WºÙ¦r¤¸ (Name Character)¡C

Nmtoken(¦WºÙ°O²Å¡Aname token) ¬O¥ô¦ó¦WºÙ¦r¤¸ªº²V¦XÅé¡C

¦WºÙ©M°O²Å (Names and Tokens)
[4]  NameChar ::= LetterDigit | '.' | '-' | '_' | ':' | CombiningCharExtender
[5]  Name ::= (Letter | '_' | ':') (NameChar)*
[6]  Names ::= Name (S Name)*
[7]  Nmtoken ::= (NameChar)+
[8]  Nmtokens ::= Nmtoken (S Nmtoken)*

¦r­±¸ê®Æ (Literal data) ¬O¥ô¦ó¨Ï¥Î¤Þ¸¹¬A°_¨Óªº¦r¦ê¡A¦ý¤£¥]¬A¥Î¨Ó§@©w¬É²Å (Delimiter) ªº¤Þ¸¹¡C¦r­±¸ê®Æ¥Î¨Ó«ü©ú¤º³¡¹êÅ骺¤º®e (EntityValue)¡BÄÝ©Ê­È (AttValue)¥H¤Î¥~³¡ÃѧO¦r (SystemLiteral)¡Cª`·N¡G¹ï©ó SystemLiteralªº»yªk¤ÀªR¤£»Ý±½´y¼Ð¥Ü¡A ¤]¯à°÷§@­åªR¡C

¦r­±¸ê®Æ (Literals)
[9]  EntityValue ::= '"' ([^%&"] | PEReferenceReference)* '"'
| "'" ([^%&'] | PEReferenceReference)* "'"
[10]  AttValue ::= '"' ([^<&"] | Reference)* '"'
| "'" ([^<&'] | Reference)* "'"
[11]  SystemLiteral ::= ('"' [^"]* '"') | "'" [^']* "'")
[12]  PubidLiteral ::= '"' PubidChar* '"' | "'" (PubidChar - "'")* "'"
[13]  PubidChar ::= #x20 | #xD | #xA | [a-zA-Z0-9] | [-'()+,./:=?;!*#@$_%]

2.4 ¦r¤¸¸ê®Æ©M¼Ð¥Ü

¤å¥»¥Ñ¦r¤¸¸ê®Æ©M¼Ð¥Ü²V¦Xºc¦¨¡C¼Ð¥Ü¥]¬A°_©l¼ÐÅÒ¡Bµ²§ô¼ÐÅÒ¡BªÅ¤¸¯À¼ÐÅÒ(Empty-element tags)¡B¹êÅé°Ñ¤Þ(Entity references)¡B¦r¤¸°Ñ¤Þ(Character references)¡Bµù¸Ñ¡BCDATA ¬q(CDATA section delimiters)©w¬É²Å¡A¤å¥óÃþ«¬«Å§i(Document type declarations) ©M³B²z«ü¥Ü¡C

©Ò¦³«D¼Ð¥Üªº¤å¥»²Õ¦¨¤å¥óªº¦r¤¸¸ê®Æ¡C

" And " ²Å¸¹ (&) ©M¥ª¤T¨¤¬A©· (<) ¥u¦³ §@¬°¼Ð¥Ü©w¬É²Å¡A©Î¦bµù¸Ñ¡B³B²z«ü¥Ü¡A©ÎCDATA¬q¤¤®É¤~¯à¥H¦r­±¸ê®Æ§Î¦¡¥X²{¡C¥¦­Ì¦b¤@­Ó¤º³¡¹êÅé«Å§iªº¦r­±¸ê®Æ¹êÅ鼯­È¤¤¤]¬O¦Xªkªº¡A°Ñ¨£"4.3.2 §Î¦¡¦Xªkªº­åªR¹L¹êÅé"¡C¦pªG¦b¨ä¥L¦a¤è»Ý­n¨Ï¥Î¨ì¦¹¨â¦r¤¸¡A¥¦­Ì¥²¶·¥Î¼Æ¦r¦r¤¸°Ñ¤Þ¨Ó¸õ²æ (escaped) ¥»·N©Î¤À§O¥Î¦r¦ê "&amp;" ©M "&lt;" ¨Óªí¥Ü¡C¥k¤T¨¤¬A©·(>)¥i¥H¥Î "&gt;" ¦r¦ê¨Óªí¥Ü¡A¦Ó·í¥¦¥X²{¦b¤å¥ó¤º®eªº"]]>" ¦r¦ê¤¤¡A¦Ó¦¹¦r¦ê¨Ã¤£¥Nªí¤@­ÓCDATA ¬qªºµ²§ô©w¬É²Å®É¡A¬°¤F¬Û®e©Êªº¦Ò¶q¡A¥²¶·¨Ï¥Î "&gt;" ©Î¤@­Ó¦r¤¸°Ñ¤Þ¨Ó¸õ²æ¥»·N (©ÎÂà¸q)¡C

¦b¤¸¯Àªº¤º®e¤¤¡A¦r¤¸¸ê®Æ¬O¤£¥i¥]¬A¥ô¦ó¼Ð¥Üªº°_©l©w¬É²Å¤§¥ô·N¦r¦ê¡C¦b¤@­Ó CDATA¬q¤¤¡A¦r¤¸¸ê®Æ«h¬°¤£¥]¬A CDATA ¬qµ²§ô©w¬É²Å"]]>"ªº¥ô·N¦r¦ê¡C

¬°¤F¤¹³\¦bÄݩʭȤ¤¥]§t³æ¤Þ¸¹©MÂù¤Þ¸¹¡A¬Ù²¤²Å¸¹©ÎºÙ³æ¤Þ¸¹ (')¥i¥H³Qªí¥Ü¬° "&apos;"¡A¦ÓÂù¤Þ¸¹ (") ¥i¥H³Qªí¥Ü¬° "&quot;"¡C

¦r¤¸¸ê®Æ (Character Data)
[14]  CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)

2.5 µù¸Ñ

µù¸Ñ¥i¥H¥X²{¦b¤å¥ó¤¤¨ä¥L¼Ð¥Ü¥~ªº¥ô¦ó¦ì¸m¤W¡C¦¹¥~¡A¥¦­Ì¥i©ñ¸m¦b¤å¥óÃþ«¬«Å§i¤¤¤åªk©Ò¤¹³\¥X²{ªº¦ì¸m¡C¥¦­Ì¤£¬O¤å¥ó¤¤¦r¤¸¸ê®Æªº¤@³¡¤À¡AXML³B²z¾¹¥i¥H¡A¦ý¤£¥²¶·´£¨Ñ¡AÅý¤@­ÓÀ³¥Î¯à°÷À˯Á¥Xµù¸Ñ¤å¦r¡C°w¹ï¬Û®e©Êªº¦Ò¶q¡A¦r¦ê "--" (Âù³s¦r¤¸) ¤£¯à¦bµù¸Ñ¤¤¥X²{¡C

µù¸Ñ (Comments)
[15]  Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'

µù¸Ñªº¤@­Ó¨Ò¤l¡G

<!-- declarations for <head> & <body> -->

2.6 ³B²z«ü¥Ü

³B²z«ü¥Ü (PIs)¤¹³\¤å¥ó¤¤¯à°÷¥]§tÀ³¥Îªº«ü¥O¡C

³B²z«ü¥Ü (Process Instructions)
[16]  PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
[17]  PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))

PI ¨Ã¤£¬O¤å¥ó¦r¤¸¸ê®Æªº¤@³¡¤À¡A¦ý¥²¶·¶Ç»¼µ¹À³¥Îµ{¦¡³B²z¡CPI ¥H¤@­Ó¥Ø¼Ð¦WºÙ(PITarget)¬°¶}ÀY¡A¦¹¥Ø¼Ð¦WºÙ (target) ¬O¥Î¨Ó¿ë§O«ü¥Ü©Ò«ü¦VªºÀ³¥Îµ{¦¡¡A¥Ø¼Ð¦WºÙ"XML"¡A"xml"¡Aµ¥µ¥¡A«O¯d¥Î©ó¥»³W½dªº¦¹ª©¥»©Î«áÄòª©¥»ªº¼Ð·Ç¤Æ¡CXML°Oªk (notation)¾÷¨î¥i¥H¥Î©ó PI ¥Ø¼Ðªº§Î¦¡¤Æ«Å§i¡C

2.7 CDATA¬q

CDATA¬q¯à°÷©ñ¸m¦b¥ô¦ó¦r¤¸¸ê®Æ¥i¥X²{ªº¦ì¸m¤W¡A¥¦­Ì¥Î¨Ó±N·|³QÃѧO¬°¼Ð¥Ü¦r¦êªº¤å¦r°Ï¶ô¸õ²æ¥»·N (͵ù:·N¿×µÛ CDATA ¬q¤¤ªº¼Ð¥Ü¸ê®Æ¤£·|³Q·í¦¨¼Ð¥Ü)¡CCDATA¬q¥H"<![CDATA["¦r¦ê°µ¬°¶}©l¡A¥H"]]>"¦r¦ê°µ¬°µ²§ô¡G

CDATA ¬q (CDATA Sections)
[18]  CDSect ::= CDStart CData CDEnd
[19]  CDStart ::= '<![CDATA['
[20]  CData ::= (Char* - (Char* ']]>' Char*))
[21]  CDEnd ::= ']]>'

¦b¤@­Ó CDATA ¬q¤º¡A¥u¦³CDEnd¦r¦ê·|³QÃѧO¦¨¼Ð¥Ü¡A¦]¦¹¥ª¤T¨¤¬A©·©M"&" ²Å¸¹¯à°÷¥H¥¦­Ìªº¦r­±¸ê®Æ§Î¦¡¥X²{¡A¤£»Ý­n (¤]¤£¯à) ¨Ï¥Î "&lt;" ©M "&amp;" ¨â¦r¦ê¨Ó¸õ²æ¥»·N (͵ù: ¦]¬°¥iª½±µ¨Ï¥Î¥¦­Ìªº¦r­±¸ê®Æ§Î¦¡)¡CCDATA¬q¤£¯à¨Ï¥Î±_ª¬µ²ºc¡C

¤@­ÓCDATA¬qªº¨Ò¤l¡A¨ä¤¤"<greeting>"©M"</greeting>"³QÃѧO¬°¦r¤¸¸ê®Æ¡A¦Ó¨Ã«D¼Ð¥Ü¡G

<![CDATA[<greeting>Hello, world!</greeting>]]>

2.8 «e¨¥ (prolog) ©M¤å¥óÃþ«¬«Å§i

XML¤å¥ó¥i¥H¥BÀ³¸Ó¥Ñ¤@­ÓXML«Å§i°µ¬°¤å¥ó¶}ÀY¡A¨ä¤¤«ü©ú¨Ï¥Îªº XML ª©¥»¡C ¨Ò¦p¡A¥H¤U¬O¤@­Ó§¹¾ãªº XML¤å¥ó¡A¥¦¬O§Î¦¡¦Xªkªº¡A¦ý¤£¬O¥¿½T¦Xªkªº¡G

<?xml version="1.0"?>
<greeting>Hello, world!</greeting>

¤U­±¦¹¨Ò¤]¦P¼Ë¦p¦¹¡G

<greeting>Hello, world!</greeting>

ª©¥»½s¸¹ "1.0"¬O¥Î¨Óªí¥Ü¸Ó¤å¥ó²Å¦X¦¹ª©¥»ªº³W®æ®Ñ³W©w¡A¦pªG¤å¥ó¤¤¨Ï¥Îª©¥»½s¸¹ "1.0" ¤£¹L¨Ã¤£²Å¦X¦¹ª©¥»ªº³W®æ®Ñ¡A«h·|¦³¿ù»~¡CXML ¤u§@²Õ­p¹º¶}µo¥»³W®æ®Ñªº«áÄòª©¥»¡A¦Ó¸Óª©¥»½s¸¹´N·|¤£¦P©ó"1.0" (͵ù: ¥i¯à¬° 1.1 ©Î 1.2)¡A¦ý³o¨Ã¤£ªí¥Ü¤@©w·|¶}µo«áÄòª©¥»¡A¤]¤£ªí¥Ü¦pªG¦³¤F«áÄòª©¥»¡A·|¨Ï¥Î¥ô¦ó¯S®íª©¥»½s¸¹ªº©R¦W¤è¦¡¡C¥Ñ©ó¨Ã¤£±Æ°£¦³«áÄòª©¥»ªº¥i¯à¡A¦]¦¹´£¨Ñ¥»«Øºc (Construct) §@¬°¤@¥¹»Ý­n®É¯à¦Û°ÊÃѧOª©¥»ªº¤èªk¡C·í³B²z¾¹±µ¦¬ªº¤å¥ó¼ÐÅÒ¤¤¦³³B²z¾¹¤£¤ä´©ªºª©¥»®É¡A·|°e¥X¤@­Ó¿ù»~°T®§¡C

XML¤å¥ó¤¤¼Ð¥Üªº¥\¯à¬O´y­z¤å¥óªºÀx¦s®æ¦¡©MÅÞ¿èµ²ºc¡A¨Ã±NÄݩʻP­È²Õ(Attribute-value pairs) ©MÅÞ¿èµ²ºc°µÃöÁp¡CXML´£¨Ñ¤@ºØ¤å¥óÃþ«¬«Å§i (Document type declaration) ªº¾÷¨î¡A¥Î¨Ó©w¸qÅÞ¿èµ²ºcªº­­¨î¡A¨Ã¤ä´©¨Ï¥Î¹w¥ý©w¸qÀx¦s³æ¤¸¡C¦pªG¤@­Ó XML ¤å¥ó¦³¹ïÀ³ªº¤å¥óÃþ«¬«Å§i¨Ã¥B¿í´`¨ä¤¤©Ò´y­zªº­­¨î¡A«hºÙ¦¹¤å¥ó¬O¥¿½T¦Xªkªº (valid)¡C

¤å¥óÃþ«¬«Å§i¥²¶·¦ì©ó¤å¥ó²Ä¤@­Ó¤¸¯À (͵ù: §Y®Ú¤¸¯À) ¤§«e¡C

«e¨¥ (Prolog)
[22]  prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
[23]  XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
[24]  VersionInfo ::= S 'version' Eq (' VersionNum ' | " VersionNum ")
[25]  Eq ::= S? '=' S?
[26]  VersionNum ::= ([a-zA-Z0-9_.:] | '-')+
[27]  Misc ::= CommentPIS

XML¤å¥óÃþ«¬«Å§i¥]§t©Î«ü¦V¼Ð¥Ü«Å§i¡A¦¹¼Ð¥Ü«Å§i´£¨Ñ¬Y¤@Ãþ¤å¥óªº¤åªk¡C¦¹ºØ¤åªk³QºÙ¬°¤å¥óÃþ«¬©w¸q (Document type definition¡ADTD)¡C¤å¥óÃþ«¬©w¸q¥i¥H«ü¦V¤@­Ó¥]§t¼Ð¥Ü«Å§iªº¥~³¡¤l¶° (¤@ºØ¯S®íÃþ«¬ªº¥~³¡¹êÅé)¡A©Î¥i¥H¦b¤@­Ó¤º³¡¤l¶°¤¤ª½±µ¥]§t¼Ð¥Ü«Å§i¡A©Î¨âªÌ²V¦X¨Ï¥Î¡C¤@­Ó¤å¥óªº¤å¥ó®æ¦¡©w¸q¥Ñ¦¹¨â¤l¶°¦X¤@¦P²Õ¦¨¡C

¼Ð¥Ü«Å§i¥i¥H¬O¤¸¯ÀÃþ«¬«Å§i(Element type declaration)¡BÄݩʪí«Å§i(Attribute-list declaration)¡B¹êÅé«Å§i©Î¬O°Oªk«Å§i¡C³o¨Ç«Å§i¥i¥H¥þ³¡©Î³¡¤À¦a¥]§t¦b°Ñ¼Æ¹êÅ餤¡A¦p¦P±µ¤U¨Ó­n»¡©úªº§Î¦¡¦Xªk©Ê (well-formedness) ©M¥¿½T¦Xªk©Ê (valid) ªº­­¨î¡A§¹¾ãªº¸ê°T°Ñ¨£"4. ª«²zµ²ºc"¡C

¤å¥óÃþ«¬©w¸q (Document Type Definition)
[28]  doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdeclPEReferenceS)* ']' S?)? '>' [ VC: ®Ú¤¸¯ÀÃþ«¬ ]
[29]  markupdecl ::= elementdeclAttlistDeclEntityDeclNotationDeclPIComment [ VC: ÄY®æªº«Å§i / PE±_ª¬µ²ºc ]
[ WFC: ¤º³¡¤l¶°¤¤ªºPE ]

¼Ð¥Ü«Å§i¥i¥H¥þ³¡©Î³¡¤À¦a¥Ñ°Ñ¼Æ¹êÅ骺¸m´«¤å¥» (replacement text) ©Ò²Õ¦¨¡C¥»³W®æ®Ñµy«á­Ó§O«D²×ºÝ²Å¸¹(elementdecl¡AAttlistDecl¡Aµ¥µ¥) ªº²£¥Í³W«h¦¡·|´y­z±N©Ò¦³°Ñ¼Æ¹êÅé³Q¥]§t(include)¤§«áªº«Å§i¡C

¥¿½T¦Xªk©Ê­­¨î: ®Ú¤¸¯ÀÃþ«¬ (Root Element Type)
¤å¥óÃþ«¬«Å§i¤¤ªºName¥²¶·¬Û²Å®Ú¤¸¯ÀªºÃþ«¬¡C 

¥¿½T¦Xªk©Ê­­¨î: ÄY®æªº«Å§i / PE ±_ª¬µ²ºc
°Ñ¼Æ¹êÅ骺¸m´«¤å¥»¥²¶·¥Î¼Ð¥Ü«Å§iÄY®æ¦a¨Ï¥Î±_ª¬¦¸§Ç¨Ó±Æ¦C¡C¤]´N¬O»¡¡A¦pªG¤@­Ó¼Ð¥Ü«Å§i (¤W­±ªºmarkupdecl) ªº²Ä¤@­Ó¡A©ÎªÌ³Ì«á¤@­Ó¦r¤¸³Q¥]§t©ó¤@­Ó°Ñ¼Æ¹êÅé°Ñ¤Þªº¸m´«¤å¥»¤¤¡A¨âªÌ¥²¶·³£¥]§t¦b¦¹¸m´«¤å¥»¤¤¡C

§Î¦¡¦Xªk©Ê­­¨î: ¤º³¡¤l¶°¤¤ªº PEs
¦b¤º³¡ DTD ¤l¶°¤¤¡A°Ñ¼Æ¹êÅé°Ñ¤Þ¥u¯à¥X²{¦b¼Ð¥Ü«Å§i¥i¥H¥X²{ªº¦a¤è¡A¦Ó¤£¯à¦b¼Ð¥Ü«Å§i¤º³¡¥X²{¡C(³o­Ó­­¨î¤£¾A¥Î©ó¥X²{¦b¥~³¡°Ñ¼Æ¹êÅ餺ªº°Ñ¤Þ¡A¤]¤£¾A¥Î©ó¥~³¡¤l¶°¡C)

¦p¦P¤º³¡¤l¶°¤@¼Ë¡A¥~³¡¤l¶°©M¥ô¦óDTD¤¤°Ñ¤Þªº¥~³¡°Ñ¼Æ¹êÅé¡A¥²¶·¥Ñ¤@¨t¦C«D²×ºÝ²Å¸¹markupdecl©Ò¤¹³\ªº§¹¾ã¼Ð¥Ü«Å§i©Ò²Õ¦¨¡A¨ä¤¤¥i¥H²VÂøªÅ¥Õ¦r¤¸©Î°Ñ¼Æ¹êÅé°Ñ¤Þ¡CµM¦Ó¡A¥~³¡¤l¶°©M¥~³¡°Ñ¼Æ¹êÅ骺³¡¤À¤º®e¥i¥H¸g¥Ñ¨Ï¥Î±ø¥ó¬q (conditional section)¦³±ø¥ó¦a±N¤§©¿²¤¡A¦b¤º³¡¤l¶°¤¤«h¤£¤¹³\³o¶µ°Ê§@¡C

¥~³¡¤l¶° (External Subset)
[30]  extSubset ::= TextDecl? extSubsetDecl
[31]  extSubsetDecl ::= ( markupdeclconditionalSectPEReferenceS )*

¥~³¡¤l¶°©M¥~³¡°Ñ¼Æ¹êÅé»P¤º³¡¤l¶°ÁÙ¦³¤£¦P¤§³B¦b©ó¡G°Ñ¼Æ¹êÅé°Ñ¤Þ¤£¶È¥u¯à¥X²{¦b¼Ð¥Ü«Å§i¤§¶¡¡A¤]¤¹³\¥X²{¦b¼Ð¥Ü«Å§i¤§¤º¡C

¥H¤U¬O¤@­Ó¾Ö¦³¤å¥óÃþ«¬«Å§iªº XML¤å¥ó¨Ò¤l¡G

<?xml version="1.0"?>
<!DOCTYPE greeting SYSTEM "hello.dtd">
<greeting>Hello, world!</greeting>

¨t²ÎÃѧO¦r (system identifier) "hello.dtd"´£¨Ñ¤F¤å¥ó DTD ªº URI¡C

¤]¥i¦p¦P¤U­±¨Ò¤l¤@¼Ë¦b¦P­Ó¤å¥ó¤W (locally) ª½±µ´£¨Ñ«Å§i¡G

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE greeting [
  <!ELEMENT greeting (#PCDATA)>
]>
<greeting>Hello, world!</greeting>

¦pªG¦P®É¨Ï¥Î¥~³¡©M¤º³¡¤l¶°¡A¤º³¡¤l¶°·|¦b¥~³¡¤l¶°¤§«eµo¥Í¡A³oªí¥Ü¤º³¡¤l¶°¤¤ªº¹êÅé©MÄݩʦCªí«Å§iªºÀu¥ý¶¶§Ç­n¤ñ¥~³¡¤l¶°¬°¥ý¡C

2.9 ¿W¥ß¤å¥ó«Å§i

·í¤å¥ó±qXML ³B²z¾¹¶Ç»¼µ¹À³¥Îµ{¦¡¨Ó³B²z®É¡A¼Ð¥Ü«Å§i·|¼vÅT¥¦ªº¤º®e¡AÄݩʹw³]­È©M¹êÅé«Å§i´N¬O¨ä¤¤ªº¨Ò¤l¡C¿W¥ß¤å¥ó«Å§i¬° XML «Å§iªº¤@³¡¥÷¡A¥¦¯à«ü¥X¤å¥ó¹êÅé¬O§_¦s¦b¥~³¡ªº«Å§i¡C

¿W¥ß¤å¥ó«Å§i (Standalone Document Declaration)
[32]  SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) [ VC: ¿W¥ß¤å¥ó«Å§i ]

¦b¤@­Ó¿W¥ß¤å¥ó«Å§i¤¤¡A³]©w­È"yes"ªí¥Ü¤å¥ó¹êÅé¨S¦³¥~³¡ªº¼Ð¥Ü«Å§i (¤£½×¬O¦b DTD ¥~³¡¤l¶°¤¤¡AÁÙ¬O±q¤º³¡¤l¶°¤¤ªº¥~³¡°Ñ¼Æ¹êÅé°Ñ¤Þ)¡A¦p¦¹·|¼vÅT±q XML ³B²z¾¹¶Ç»¼µ¹À³¥Îµ{¦¡ªº¸ê°T¡C³]©w­È"no"ªí¥Ü¦³©Î¥i¯à¦s¦b¥~³¡¼Ð¥Ü«Å§i¡C½Ðª`·N¿W¥ß¤å¥ó«Å§i¥u¬Oªí¥Ü¥~³¡«Å§iªº¦s¦b¡A¦pªG¤å¥ó¤¤¦s¦b¹ï¥~³¡¹êÅ骺¤Þ¥Î¡A¦Ó·í³o¨Ç¹êÅé¦b¤º³¡«Å§i®É¡A¨Ã¤£¼vÅT¤å¥óªº¿W¥ßª¬ºA¡C

¦pªG¨S¦³¥~³¡¼Ð¥Ü«Å§i¡A¿W¥ß¤å¥ó«Å§i¨S¦³·N¸q¡C¦pªG¦³¥~³¡¼Ð¥Ü«Å§i¡A¦ý¨S¦³¿W¥ß¤å¥ó«Å§i¡A«h°²©w³]©w­È¬° "no"¡C

¥ô¦ó¾Ö¦³standalone="no"³]©wªº XML ¤å¥ó¥i³q¹Lºtºâªk±N¤§Âà´«¦¨¿W¥ß¤å¥ó¡C¦Ó¬Y¨Çºô¸ô¶Ç¿éÀ³¥Îµ{¦¡¥i¯à»Ý­n¿W¥ßªº¤å¥ó¡A

¥¿½T¦Xªk©Ê­­¨î : ¿W¥ß¤å¥ó«Å§i
¿W¥ß¤å¥ó«Å§i¥²¶·±N­È³]©w¬° "no"¡A¦pªG¥ô¦ó¥~³¡¼Ð¥Ü«Å§i¤¤¥]§t¡G

  • ¦³¹w³]­ÈªºÄݩʫŧi¡A¦pªG®M¥Î³o¨ÇÄݩʪº¤¸¯À¥X²{¦b¤å¥ó¤¤¦Ó¨S¦³µ¹¤©³o¨ÇÄݩʳ]©w­Èªº¸Ü¡A©Î
  • ¹êÅé (°£¤Famp¡Alt¡Agt¡Aapos¡Aquotªº¹êÅ餧¥~) °Ñ¤Þ¥X²{¦b¤å¥ó¤¤ªº¸Ü¡A©Î
  • »Ý­n³W½d¤ÆªºÄݩʭȫŧi¡A¦pªG³o¨Ç¥X²{¦b¤å¥ó¤¤ªºÄݩʭȡA·|¦]¬°³W½d¤Æ¦Ó§ïÅܪº¸Ü¡A©Î
  • ¨ã¦³¤¸¯À«¬¤º®eªº¤¸¯ÀÃþ«¬«Å§i¡A¦pªG¦b³o¨ÇÃþ«¬ªº¥ô¤@¹ê¨Ò¤¤ª½±µ¥X²{ªÅ¥Õªº¸Ü¡C

¨ã¦³¿W¥ß¤å¥ó«Å§iªº XML«Å§i¨Ò¤l¡G

<?xml version="1.0" standalone='yes'?>

2.10 ªÅ¥Õ³B²z

¦b½s¿è XML ¤å¥ó®É¡A¨Ï¥Î"ªÅ¥Õ"(ªÅ®æ¡B¸õ¦ì¦r¤¸¤ÎªÅ¦æ¡A¦b¥»³W®æ®Ñ¤¤¥Î«D²×ºÝ²Å¸¹S ¨Óªí¥Ü) ¨Ó±N¼Ð¥Ü¤À¹j¥H¼W¶i¥iŪ©Ê¬O«Ü¤è«Kªº¡C¤@¯ë¤å¥ó¥i¥æ¥Iªºª©¥» (delivered version) ¤¤¨Ã¤£·Q­n¥]¬A³o¨ÇªÅ¥Õ¡C¥t¤@¤è­±¡A¦b¥i¥æ¥Iªºª©¥»¤¤¥²¶·«O¯d¦³·N¸qªºªÅ¥Õ¦r¤¸¤]¬OÆZ±`¨£ªº¡A¨Ò¦p¦b¸Öºq¤Î­ì©l½X¤¤ªºªÅ¥Õ¦r¤¸¡C

XML ³B²z¾¹Á`¬O¥²¶·±N©Ò¦³¤£¬O¼Ð¥Üªº¦r¤¸¶Ç°eµ¹À³¥Îµ{¦¡¡C¤@­ÓÅçÃÒ¥¿½T¦Xªkªº XML ³B²z¾¹¥²¶·¦P®É³qª¾À³¥Îµ{¦¡¦b³o¨Ç¦r¤¸¤¤¡A¨º¨Ç¦r¤¸²Õ¦¨¤F¥X²{¦b¤¸¯À¤º®e¤¤ªºªÅ¥Õ¡C

¥i¦b¤¸¯À¤¤ªþ¥[¤@­Ó¦WºÙ¬°xml:spaceªº¯S®íÄݩʡA¥H³qª¾À³¥Îµ{¦¡À³¸Ó«O¯d¦¹¤¸¯À¤¤ªºªÅ¥Õ¡C¦b¥¿½T¦Xªkªº¤å¥ó¤¤¡A¦¹ÄݩʩM¨ä¥LÄݩʤ@¼Ë¡A¨Ï¥Î®É¥²¶·¥ý«Å§i¡C«Å§i®É¥¦¥²¶·³Q³]©w¬°¦CÁ|Ãþ«¬ (enumerated type)¡A¦¹Ãþ«¬¥u¦³"default"©M"preserve"¨â­Ó¥i¯àªº­È¡C¨Ò¦p¡G

    <!ATTLIST poem   xml:space (default|preserve) 'preserve'>

"default" ªí¥Ü¦¹¤¸¯À¥i¥H±µ¨ü¨Ï¥ÎÀ³¥Îµ{¦¡ªº¹w³]ªÅ¥Õ³B²z¼Ò¦¡¡A"preserve"ªí¥ÜÀ³¥Îµ{¦¡·|±N©Ò¦³ªºªÅ¥Õ«O¯d¡C¦¹Äݩʷ|®M¥Î©ó©Ò³]©w¤¸¯Àªº¤º®e¤¤©Ò¦³¤¸¯À¡A°£«D³Q¥t¤@­Óxml:spaceÄݩʪº³]©w­È©Ò¨ú¥N¡C

¥ô¦ó¤å¥óªº®Ú¤¸¯À¨Ã¤£­n¨DÀ³¥Îµ{¦¡ªºªÅ¥Õ³B²z¤è¦¡¡A°£«D¥¦´£¨Ñµ¹¦¹Äݩʳ]©w­È¡A©Î±N¦¹Äݩʫŧi¦¨¹w³]­È¡C

2.11 ¦æ§À³B²z

XML­åªR¹L¹êÅé¸g±`·|Àx¦s¦b¹q¸£Àɮפ¤¡A¥B¬°¤F½s¿èªº¤è«K¡A·|¥H¦æªº¤è¦¡¨Ó²Õ´¡C¤@¯ë³o¨Ç¦æ·|¨Ï¥ÎÂk¦ì¦r¤¸(#xD)©M´«¦æ¦r¤¸(#xA) ªº²Õ¦X¨Ó°µ¤À¹j¡C

¬°¤F²¤ÆÀ³¥Îµ{¦¡ªº¤u§@¡A¹ï©ó¤@­Ó¥~³¡­åªR¹L¹êÅé©Î¤º³¡­åªR¹L¹êÅ骺¦r­±¸ê®Æ¹êÅé­È¤¤¥]§tªº¥ô¦ó¨â¦r¤¸¦r­±¸ê®Æ§Ç¦C"#xD#xA"©Î³æ¿Wªº¦r­±¸ê®Æ#xD¡AXML³B²z¾¹³£À³´«¦¨#xA¶Ç»¼µ¹À³¥Îµ{¦¡¡C(³o¥i¥H¦b¶i¦æ­åªR«e±N©Ò¦³¦æ¤À¹j²Å¸¹³W½d¦¨#xA¦Ó¤è«K¦a¹ê²{¡C)

2.12 »y¨¥¿ëÃÑ

¦b¶i¦æ¤å¥ó³B²z®É¡A³q±`³£¬O­n¿ëÃÑ¥X¨ä¤º®e©Ò¨Ï¥Îªº¦ÛµM©Î¥¿¦¡ªº»y¨¥¡C¥i¥H¦b¤å¥ó¤¤´¡¤J¤@­Ó¦W¬° xml:lang ªº¯S®íÄݩʡA¦¹ÄݩʥΩó«ü¥X XML ¤å¥ó¤¤¥ô¦ó¤¸¯Àªº¤º®e©MÄݩʩҨϥΪº»y¨¥¡C¦b¥¿½T¦Xªkªº¤å¥ó¤¤¡A©M¨ä¥LÄݩʤ@¼Ë¡A¨Ï¥Î¦¹Äݩʮɥ²¶·¥ý«Å§i¡C¦¹Äݩʪº³]©w­È¬O¦b[IETF RFC 1766]¡A"¬°¤F¿ëÃÑ»y¨¥ªº¼ÐÅÒ"¤¤©w¸qªº»y¨¥ÃѧO¦r¡G

»y¨¥¿ëÃÑ (Lang Identification)
[33]  LanguageID ::= Langcode ('-' Subcode)*
[34]  Langcode ::= ISO639CodeIanaCodeUserCode
[35]  ISO639Code ::= ([a-z] | [A-Z]) ([a-z] | [A-Z])
[36]  IanaCode ::= ('i' | 'I') '-' ([a-z] | [A-Z])+
[37]  UserCode ::= ('x' | 'X') '-' ([a-z] | [A-Z])+
[38]  Subcode ::= ([a-z] | [A-Z])+

Langcode¥i¥H¬O¦p¤U³]©w­È¡G

  • ¥Ñ[ISO 639]¡A"ªí¥Ü»y¨¥¦WºÙªº¥N½X"¤¤©w¸q¨â­Ó¦r¥Àªº»y¨¥½X¡C
  • ¦b Internet Assigned Numbers Authority [IANA]µù¥Uªº»y¨¥¿ëÃѽX¡A¨Ï¥Î"i-"(©Î"I-")ªº«e¸m¦r (prefix) ¬°¶}ÀY¡C
  • ¨Ï¥ÎªÌ¦Û­q©Î¸g¥Ñ¦U¤è¦P·Nªº±M¥Î»y¨¥ÃѧO¦r¡A¥²¶·¨Ï¥Î "x-"©Î"X-" ªº«e¸m¦r¬°¶}ÀY¡A¥H«OÃÒ¥¦­Ì¤£·|©M¥¼¨Ó¸g¥Ñ IANA ¼Ð·Ç¤Æ©Î¦b IANA µù¥Uªº¦WºÙ¬Û½Ä¬ð¡C

¥i¥H¦³¥ô·N¦h­Ó¤l¥N½X(Subcode)°Ï¬q¡A¦pªG¦s¦b²Ä¤@­Ó¤l¥N½X°Ï¬q¡A¨Ã¥B¤l¥N½X¥Ñ¨â­Ó¦r¥À²Õ¦¨¡A«h¦¹¤l¥N½X¥²¶·¬O[ISO3166]¡A"ªí¥Ü°ê®a¦WºÙªº¥N½X"¤¤©w¸qªº°ê®a¥N½X¡C¦pªG²Ä¤@­Ó¤l¥N½X¦h©ó¨â­Ó¦r¥À¡A«h¥¦¥²¶·¬O¦b IANA µù¥U»y¨¥ªº¤l¥N½X¡A°£«DLangcode¬O¨Ï¥Î"x-"©Î"X-"«e¸m¦r¬°¶}ÀY¡C

²ßºD¤W»y¨¥¥N½X·|¨Ï¥Î¤p¼g¦r¥À¡A°ê®a¥N½X (¦pªG¦³ªº¸Ü) ·|¨Ï¥Î¤j¼g¦r¥À¡C½Ðª`·N³o¨Ç­È»P XML ¤å¥ó¤¤¨ä¥L¦WºÙ¤£¦P¡A¥¦­Ì¬O»P¤j¤p¼gµLÃöªº¡C

Á|¨Ò¦p¤U¡G

<p xml:lang="en">The quick brown fox jumps over the lazy dog.</p>
<p xml:lang="en-GB">What colour is it?</p>
<p xml:lang="en-US">What color is it?</p>
<sp who="Faust" desc='leise' xml:lang="de">
  <l>Habe nun, ach! Philosophie,</l>
  <l>Juristerei, und Medizin</l>
  <l>und leider auch Theologie</l>
  <l>durchaus studiert mit hei»¾m BemÄÒ'n.</l>
  </sp>

xml:langªí¥Ü©Ò«ü©wªº»y¨¥³]©w¯à®M¥Î©ó©Ò³B¤¸¯Àªº©Ò¦³ÄݩʩM¤º®e¡A°£«D³Q¤º®e¤¤¤¸¯À¤ºªº¥t¤@­Óxml:langÄݩʪº³]©w­È©Ò¨ú¥N¡C

¤@­Ó²³æªºxml:lang«Å§i¥i¥H±Ä¥Î¦p¤U§Î¦¡¡G

xml:lang  NMTOKEN  #IMPLIED

µM¦Ó­Y¦b¾A·íªº±¡ªp¤U¤]¥i¥H«ü©w¯S©wªº¹w³]­È¡C¦b¤@¥»µ¹­^°ê¾Ç¥Í¨Ï¥Îªºªk¤å¸Öºq¿ï¶°¤¤¡Aµûµù (glosses) ©Mµù¸Ñ (notes) ¨Ï¥Î­^»y¡A«h xml:langÄݩʥi¥H¦p¤U¦C¤è¦¡«Å§i¡G

    <!ATTLIST poem   xml:lang NMTOKEN 'fr'>
    <!ATTLIST gloss  xml:lang NMTOKEN 'en'>
    <!ATTLIST note   xml:lang NMTOKEN 'en'>

3. ÅÞ¿èµ²ºc

¨C­ÓXML¤å¥ó¥]§t¤@­Ó©Î¦h­Ó¤¸¯À¡A³o¨Ç¤¸¯ÀªºÃä¬É¨Ï¥Î°_©l¼ÐÅÒ©Mµ²§ô¼ÐÅÒ¤À¹j¡A©ÎªÌ¹ï©óªÅ¤¸¯À¨Ó»¡¡A¨Ï¥Î¤@­ÓªÅ¤¸¯À¼ÐÅÒ¨Ó¤À¹j¡C¨C¤@­Ó¤¸¯À¨Ï¥Î¦WºÙ¨Ó¿ëÃѺØÃþ¡A³o¨Ç¦WºÙ¦³®ÉºÙ¬°¤¸¯Àªº"³q¥ÎÃѧO¦r (generic identifier)"(GI)¡A¦P®É¥¦¥i¥H¦³¤@­ÓÄݩʭȳ]©w (attribute specification)¶°¡C¨C¤@­ÓÄݩʭȳ]©w¦³¤@­Ó¦WºÙ©M¤@­Ó³]©w­È¡C

¤¸¯À (element)
[39]  element ::= EmptyElemTag
STag content ETag [ WFC: ¤¸¯ÀºØÃþ¬Û²Å ]
[ VC: ¤¸¯À¥¿½T¦Xªk©Ê ]

°£¤F¨º¨Ç¶}ÀY¬Û²Å (('X'|'x')('M'|'m')('L'|'l')) ªº¦r¦ê¡A¦b¦¹ª©¥»©Î«áÄòª©¥»ªº³W®æ®Ñ¤¤³Q«O¯d¨Ï¥Î¥~¡A¥»³W®æ®Ñ¤£¹ï¤¸¯ÀºØÃþ©MÄݩʪº»y¸q¡A¥Îªk©M¦WºÙ (»yªk¤§¥~) °µ¥ô¦ó­­¨î¡C

§Î¦¡¦Xªk©Ê­­¨î: ¤¸¯ÀºØÃþ¬Û²Å
¤¸¯Àµ²§ô¼ÐÅÒ¤¤ªº¦WºÙ¥²¶·©M°_©l¼ÐÅÒ¤¤ªº¤¸¯ÀºØÃþ¬Û²Å¡C 

¥¿½T¦Xªk­­¨î: ¤¸¯À¥¿½T¦Xªk©Ê
¦pªG¦³¤@­Ó»Pelementdecl¬Û²Åªº«Å§i¦WºÙ»P¤¸¯ÀÃþ«¬¬Û²Å¥B¤U­z¥ô¤@¶µ¦¨¥ß®É¡A«hºÙ¦¹¤¸¯À¬O¥¿½T¦Xªkªº¡G

  1. ¦¹«Å§i»PEMPTY¬Û²Å¡A¦P®É¦¹¤¸¯À¨S¦³¤º®e¡C
  2. ¦¹«Å§i»Pchildren¬Û²Å¡A¦P®É¤l¤¸¯Àªº§Ç¦CÄݩ󤺮e¼Ò«¬¤¤ªº¥¿«h¹Bºâ¦¡©Ò²£¥Íªº»y¨¥¡A¦b¨C¹ï¤l¤¸¯À¶¡¤¹³\¦³ªÅ¥Õ(¬Û²Å«D²×ºÝ²Å¸¹Sªº¦r¤¸)¡C
  3. ¦¹«Å§i»PMixed¬Û²Å¡A¨Ã¥B¤º®e¥ÑºØÃþ¬Û²Å©ó¤º®e¼Ò«¬¤¤¦WºÙªº¦r¤¸¸ê®Æ©M¤l¤¸¯À²Õ¦¨¡C
  4. ¦¹«Å§i»PANY¬Û²Å¡A¨Ã¥B¥ô¦ó¤l¤¸¯ÀªººØÃþ³£¤w¸g«Å§i¡C

3.1 °_©l¼ÐÅÒ¡Aµ²§ô¼ÐÅÒ©MªÅ¤¸¯À¼ÐÅÒ

¨C­Ó¤£¬OªÅªº XML ¤¸¯À¨Ï¥Î¤@­Ó°_©l¼ÐÅÒ§@¬°¶}©l¼Ð¥Ü¡C

°_©l¼ÐÅÒ (Start-tag)
[40]  STag ::= '<' Name (S Attribute)* S? '>' [ WFC: °ß¤@ªºÄݩʭȳ]©w ]
[41]  Attribute ::= Name Eq AttValue [ VC: ÄݩʭȺØÃþ ]
[ WFC: µL¥~³¡¹êÅé°Ñ¤Þ ]
[ WFC: ¦bÄݩʭȤ¤¨S¦³< ]

°_©l¼ÐÅÒ©Mµ²§ô¼ÐÅÒ¤¤ªºName´£¨Ñ¤¸¯ÀªººØÃþ¡CName-AttValue¹ï³QºÙ¬°¤¸¯ÀªºÄݩʭȳ]©w¡A¨ä¤¤¨C¤@¹ï¤¤ªºName³QºÙ¬°ÄݩʦWºÙ¡AAttValueªº¤º®e(¦b'©Î"©w¬É²Å¤§¶¡ªº¤å¦r) ³QºÙ¬°ÄݩʭȡC

§Î¦¡¦Xªk©Ê­­¨î: °ß¤@ªºÄݩʭȳ]©w
¤@­ÓÄݩʦWºÙ¥u¯à¦b¦P¤@­Ó°_©l¼ÐÅҩΪŤ¸¯À¼ÐÅÒ¤¤¥X²{¤@¦¸¡C

¥¿½T¦Xªk­­¨î: ÄݩʭȺØÃþ
Äݩʥ²¶·³Q«Å§i¡A¨ä­È¥²¶·¬O¨ã¦³«Å§iªººØÃþ¡C(ÄݩʺØÃþ°Ñ¨£"3.3 Äݩʪí«Å§i"¡C) 

§Î¦¡¦Xªk©Ê­­¨î: µL¥~³¡¹êÅé°Ñ¤Þ
ÄݩʭȤ£¯à¥]§t¹ï¥~³¡¹êÅ骽±µ©Î¶¡±µªº¹êÅé°Ñ¤Þ¡C

¥¿½T¦Xªk©Ê­­¨î: ¦bÄݩʭȤ¤¨S¦³<
¦b¤@­ÓÄݩʭȤ¤ª½±µ©Î¶¡±µ¹êÅé°Ñ¤Þªº¸m´«¤å¥» (°£¤F"&lt;")¤£¯à¥]§t<¡C

°_©l¼ÐÅÒªº¤@­Ó¨Ò¤l¡G

<termdef id="dt-dog" term="dog">

¨C­Ó¥Ñ¤@­Ó°_©l¼ÐÅÒ¶}©lªº¤¸¯À¥²¶·¨Ï¥Î¤@­Óµ²§ô¼ÐÅҼХܨ䵲§ô¡Aµ²§ô¼ÐÅÒ¤¤ªº¦WºÙ¥²¶·»P°_©l¼ÐÅÒ¤¤µ¹¤©ªº¤¸¯ÀºØÃþ¬Û¦P¡G

µ²§ô¼ÐÅÒ (End-tag)
[42]  ETag ::= '</' Name S? '>'

µ²§ô¼ÐÅÒªº¤@­Ó¨Ò¤l¡G

</termdef>

¦b°_©l¼ÐÅÒ©Mµ²§ô¼ÐÅÒ¤¤ªº¤å¥»³QºÙ¬°¤¸¯Àªº¤º®e¡G

¤¸¯Àªº¤º®e (Content of Elements)
[43]  content ::= (elementCharDataReferenceCDSectPIComment)*

¦pªG¤¸¯Àªº¤º®e¬OªÅªº¡A¥¦¥²¶·³Qªí¥Ü¬°¤@­Ó°_©l¼ÐÅÒºò¸ò¤@­Óµ²§ô¼ÐÅҩΪŤ¸¯À¼ÐÅÒ¡CªÅ¤¸¯À¼ÐÅұĥΤ@ºØ¯S®íªº§Î¦¡¡G

ªÅ¤¸¯À¼ÐÅÒ (Tags for Empty Elements)
[44]  EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' [ WFC: °ß¤@ªºÄݩʭȳ]©w ]

¤£½×¤¸¯À¬O§_¥ÎÃöÁä¦rEMPTY¨Ó«Å§i¡AªÅ¤¸¯À¼ÐÅÒ³£¥i¥H¥Î©ó¥ô¦ó¨S¦³¤º®eªº¤¸¯À¡C­Y°w¹ï©ó¤¬³q¨Ï¥Î¡A«hªÅ¤¸¯À¥²¶·¥Î©ó¥B¥u¯à¥Î©ó«Å§i¦¨EMPTYªº¤¸¯À¡C

ªÅ¤¸¯Àªº¨Ò¤l¡G

<IMG align="left"
 src="http://www.w3.org/Icons/WWW/w3c_home" />
<br></br>
<br/>

3.2 ¤¸¯ÀÃþ«¬«Å§i

¬°¤FÅçÃÒ (validation) ªº¥Øªº¡A¥i¥H¨Ï¥Î¤¸¯ÀÃþ«¬©MÄݩʪí«Å§i¨Ó­­¨îXML¤å¥ó¤¤¤¸¯Àªºµ²ºc¡C¤¸¯ÀÃþ«¬«Å§i­­¨î¤F¤¸¯Àªº¤º®e¡C

¤¸¯ÀÃþ«¬«Å§i³q±`­­¨î¤F¤l¤¸¯À¥i¥H¥X²{ªºÃþ«¬¡C¥Ñ¨Ï¥ÎªÌ¿ï¾Ü¡A·í«Å§i´£¨ìªº¤¸¯ÀÃþ«¬¨S¦³¬Û¹ïÀ³ªº«Å§i®É¡AXML ³B²z¾¹¥i¥H´£¥Xĵ§i¡A¦ý³o¨Ã¤£¬O¤@­Ó¿ù»~¡C

¤¸¯ÀÃþ«¬«Å§i§Î¦¡¦p¤U¡G

¤¸¯ÀÃþ«¬«Å§i (Element type declaration)
[45]  elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>' [ VC: °ß¤@ªº¤¸¯ÀÃþ«¬«Å§i ]
[46]  contentspec ::= 'EMPTY' | 'ANY' | Mixedchildren

¨ä¤¤Name³]©w¤F©Ò«Å§iªº¤¸¯ÀÃþ«¬¡C

¥¿½T¦Xªk©Ê­­¨î: °ß¤@ªº¤¸¯ÀÃþ«¬«Å§i
¤¸¯ÀÃþ«¬¥u¯à«Å§i¤@¦¸¡C

¤¸¯ÀÃþ«¬«Å§iªº¨Ò¤l¡G

<!ELEMENT br EMPTY>
<!ELEMENT p (#PCDATA|emph)* >
<!ELEMENT %name.para; %content.para; >
<!ELEMENT container ANY>

3.2.1 ¤¸¯À«¬¤º®e

·í¬Y¤@Ãþ«¬ªº¤¸¯À¥u¯à¥]§t¤l¤¸¯À(µL¦r¤¸¸ê®Æ)¡A¥B¥i¿ï¥ÎªÅ¥Õ (¬Û²Å«D²×ºÝ²Å¸¹S) ¨Ó°µ¤À¹j®É¡AºÙ¦¹¤¸¯ÀÃþ«¬¨ã¦³¤¸¯À«¬¤º®e¡C¦b³oºØ±¡ªp¤U¡A³o­­¨î¥]§t¤F¤º®e¼Ò«¬¡A¤º®e¼Ò«¬¬O¥Î¨Ó±±¨î¤l¤¸¯À¥i¥X²{ªºÃþ«¬©M¤l¤¸¯À¥i¥X²{¶¶§Çªº¤@ºØÂ²³æ¤åªk¡C¦¹¤åªk¥Î¤º®e²É¤l(Content Particles¡Acp)¨Ó«Øºc¡A¤º®e²É¤l¥Ñ¦WºÙ¡A¤º®e²É¤lªº¿ï¾Üªí(choice list)©Î¤º®e²É¤lªº§Ç¦Cªí(sequence list)²Õ¦¨¡G

¤¸¯À«¬¤º®eªº¼Ò«¬ (Element-content Models)
[47]  children ::= (choiceseq) ('?' | '*' | '+')?
[48]  cp ::= (Namechoiceseq) ('?' | '*' | '+')?
[49]  choice ::= '(' S? cp ( S? '|' S? cp )* S? ')' [ VC: ÄY®æªº¸s²Õ/PE±_ª¬µ²ºc ]
[50]  seq ::= '(' S? cp ( S? ',' S? cp )* S? ')' [ VC: ÄY®æªº¸s²Õ/PE±_ª¬µ²ºc ]

¨ä¤¤¨C­ÓName¬O¥i¥H¥X²{ªº¤l¤¸¯À¤¸¯ÀÃþ«¬¡C¥ô¦ó¦b¿ï¾Üªí¤¤¥X²{ªº¤º®e²É¤l¦b¤¸¯À«¬¤º®e¤¤¤¹³\¥X²{ªº¦ì¸m¹ïÀ³©ó¿ï¾Üªí¦b¤åªk¤¤ªº¦ì¸m¡C§Ç¦Cªí¤¤¥X²{ªº©Ò¦³¤º®e²É¤l¥²¶·¥H¬Û¦Pªº¶¶§Ç¥X²{¦b¤¸¯À«¬¤º®e¤¤¡C¦b¦WºÙ©Î¦Cªí¤§«áªº¥i¿ï¦r¤¸ (optional character) ¨M©w¤Fªí¤¤¤¸¯À©Î¤º®e²É¤l¥i¥H¥X²{¤@¦¸©Î¦h¦¸(+)¡AÁÙ¬O¹s¦¸©Î¦h¦¸(*)¡A©Î¬O¹s¦¸©Î¤@¦¸(?)¡C­Y¨S¦³¨Ï¥Î¦p¦¹ªº¾Þ§@²Å¸¹ªí¥Ü¤¸¯À©Î¤º®e²É¤l¥²¶·«ê¦n¥X²{¤@¦¸¡C³oºØ»yªk©M·N¸q©M¥»³W®æ®Ñ¤¤ªº²£¥Í³W«h¦¡¤¤©Ò¨Ï¥Îªº¬Û¦P¡C

¥u¦³·í¤¸¯Àªº¤º®e¥i¥H³z¹L¤º®e¼Ò«¬ªº°lÂܸô®|¡A¤Î¿í¦u§Ç¦C¡A¿ï¾Ü»P­«½Æ¾Þ§@²Å¸¹¡A¨Ã¥B¤º®e¤¤ªº¨C¤@­Ó¤¸¯À»P¤º®e¼Ò«¬¤¤ªº¤@ºØ¤¸¯ÀÃþ«¬¬Û²Å®É¡A«h¦¹¤¸¯Àªº¤º®e»P¸Ó¤º®e¼Ò«¬¬Û²Å¡C°w¹ï¬Û®e©Êªº¦Ò¶q¡A­Y¤å¥óªº¬Y­Ó¤¸¯À¥i¥H»P¤º®e¼Ò«¬¤¤ªº¤¸¯ÀÃþ«¬¤£¥u¤@¦¸¬Û²Å¡A«h·|µo¥Í¿ù»~¡C§ó¸Ô²Óªº¸ê°T°Ñ¨£"E. ½T©w«¬¤º®e¼Ò«¬"¡C

¥¿½T¦Xªk©Ê­­¨î: ÄY®æªº¸s²Õ/PE±_ª¬µ²ºc
°Ñ¼Æ¹êÅ骺¸m´«¤å¦rÄY®æ¦a¥H±_ª¬µ²ºc¨Ï¥Î¬A©·¨Ó²Õ¦¨¡C³o´N¬O»¡¡A¦pªGchoice¡Aseq©ÎMixed²Õ¦¨¤å¦rªº¶}©l©Îµ²§ô¬A©·¥X²{¦b¬Y­Ó°Ñ¼Æ¹êÅ骺¸m´«¤å¦r¤¤¡A«h¨âªÌ¥²¶·¥]§t¦b¦P¤@­Ó¸m´«¤å¦r¤¤¡C°ò©ó¤¬³q©Ê¦Ò¶q¡A¦pªG¤@­Ó°Ñ¼Æ¹êÅé°Ñ¤Þ¥X²{¦bchoice¡Aseq©ÎMixed²Õ¦¨¤å¦r¤¤®É¡A¥¦ªº¸m´«¤å¦r¤£À³¸Ó¬°ªÅ¡A¦P®É¨ä¸m´«¤å¦rªº²Ä¤@­Ó©M³Ì«á¤@­Ó«DªÅ¦r¤¸¤£À³¬°¤@­Ó³s±µ²Å¸¹ (|©Î,)¡C

¥H¤U¬O¤¸¯À«¬¤º®e¼Ò«¬ªº¹ê¨Ò¡G

<!ELEMENT spec (front, body, back?)>
<!ELEMENT div1 (head, (p | list | note)*, div2*)>
<!ELEMENT dictionary-body (%div.mix; | %dict.mix;)*>

3.2.2 ²V¦X«¬¤º®e(Mixed Content)

·í¬YÃþ«¬ªº¤¸¯À¥i¥H¥]§t¦r¤¸¸ê®Æ¡A¥B¨ä¶¡¥i¥H¥ô·N´¡¤J¤l¤¸¯À®É¡AºÙ¦¹¤¸¯ÀÃþ«¬¨ã¦³²V¦X«¬¤º®e¡C¦b³oºØ±¡ªp¤U¡A¹ï¤l¤¸¯ÀªºÃþ«¬¥i¯à¦³©Ò­­¨î¡A¦ý¹ï¶¶§Ç©M¥X²{¦¸¼Æ«h¨ÃµL­­¨î¡G

²V¦X«¬¤º®e«Å§i (Mixed Content)
[51]  Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*'
| '(' S? '#PCDATA' S? ')' [ VC: ÄY®æªº¸s²Õ/PE±_ª¬µ²ºc ]
[ VC: µL­«ÂÐÃþ«¬ ]

¨ä¤¤Nameµ¹¤©¤l¤¸¯À¥i¥X²{ªº¤¸¯ÀÃþ«¬¡C

¥¿½T¦Xªk©Ê­­¨î: µL­«ÂÐÃþ«¬
¦P¤@¦WºÙ¦b³æ­Ó²V¦X«¬¤º®e«Å§i¤¤¥u¯à¥X²{¤@¦¸¡C

²V¦X¤º®e«Å§iªº¨Ò¤l¡G

<!ELEMENT p (#PCDATA|a|ul|b|i|em)*>
<!ELEMENT p (#PCDATA | %font; | %phrase; | %special; | %form;)* >
<!ELEMENT b (#PCDATA)>

3.3 Äݩʪí«Å§i

ÄݩʬO¥Î©ó±N¤@¹ï¦WºÙ»P­È (name-value pair)©M¤¸¯ÀÃöÁp°_¨Ó¡CÄݩʭȳ]©w¥u¯à¦b°_©l¼ÐÅÒ©MªÅ¤¸¯À¼ÐÅÒ¤¤¥X²{; ¦]¦¹¡A¥Î©óÃѧO¥¦­Ìªº²£¥Í³W«h¦¡·|¦b"3.1 °_©l¼ÐÅÒ¡Bµ²§ô¼ÐÅÒ©MªÅ¤¸¯À¼ÐÅÒ"¤¤¥X²{¡CÄݩʪí«Å§i¥i¥H¥Î©ó¡G

  • ©w¸q¤@²Õ¦³Ãöµ¹©w¤¸¯ÀÃþ«¬ªºÄݩʶ°¦X¡C
  • ½T¥ß³o¨ÇÄݩʪºÃþ«¬­­¨î¡C
  • ´£¨ÑÄݩʪº¹w³]­È (default values) ¡C

  Äݩʪí«Å§i³]©w¤Fµ¹©w¤¸¯ÀÃþ«¬¬ÛÃöÁpªº¨C­ÓÄݩʤ§ªº¦WºÙ¡A¸ê®ÆÃþ«¬©M¹w³]­È (¦pªG¦³ªº¸Ü)¡G

Äݩʪí«Å§i (Attribute-list Delcaration)
[52]  AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'
[53]  AttDef ::= S Name S AttType S DefaultDecl

AttlistDecl³W«h¤¤Name¬O¤¸¯ÀªºÃþ«¬¡C¥Ñ¨Ï¥ÎªÌ¿ï¾Ü¡A·íÄݩʫŧiªº¬ÛÃö¤¸¯ÀÃþ«¬¨Ã¨S¦³³Q«Å§i®É¡AXML ³B²z¾¹¥i¥Hµo¥Íĵ§i¡A¦ý³o¨Ã«D¬O­Ó¿ù»~¡CAttDef³W«h¤¤ªºName¬OÄݩʪº¦WºÙ¡C

·íµ¹©w¤¸¯ÀÃþ«¬ªºAttlistDecl¶W¹L¤@­Ó®É¡A³o¨Ç«Å§iªº¤º®e·|³Q¦X¨Ö°_¨Ó¡C·íµ¹©w¤¸¯ÀÃþ«¬ªº¦P¤@­ÓÄݩʪº©w¸q¶W¹L¤@­Ó®É¡A·|³sµ²¨ì²Ä¤@­Ó©w¸q¡A©¹«áªº©w¸q·|³Q©¿²¤¡C°ò©ó¤¬°Ê©Êªº¦Ò¶q¡ADTD ªº¼¶¼gªÌ¥i¯à·|¿ï¾Ü¹ï©óµ¹©wªº¤¸¯ÀÃþ«¬¡A³Ì¦h¦³¤@­ÓÄݩʪí«Å§i¡A¤@­Óµ¹©wªºÄݩʦWºÙ³Ì¦h¤@­ÓÄݩʩw¸q¡A¥H¤Î¨C­ÓÄݩʪí«Å§i³Ì¤Ö¦³¤@­ÓÄݩʩw¸q¡C°ò©ó¤¬°Ê©Êªº¦Ò¶q¡A·íµ¹©w¤¸¯À¦³¶W¹L¤@­ÓªºÄݩʪí«Å§i©Îµ¹©wÄݩʦ³¶W¹L¤@­ÓªºÄݩʩw¸q®É¡AXML ³B²z¾¹¥i¥H¨Ì·Ó¨Ï¥ÎªÌ¿ï¾Üµ¹¤©Äµ§i¡A¤£¹L³o¨Ã«D¬O­Ó¿ù»~¡C

3.3.1 ÄÝ©ÊÃþ«¬

XML Äݩʦ³¤TºØÃþ«¬¡G¦r¦êÃþ«¬¡B¤@²Õ²Å°O¤Æ (tokenized) Ãþ«¬©M¦CÁ| (enumerated) Ãþ«¬¡C¦r¦êÃþ«¬¥i¥H¨Ï¥Î¥ô·N¦r­±¸ê®Æ¦r¦ê¬°­È;¦U­Ó²Å°O¤ÆÃþ«¬¦³¤£¦Pªºµü·Jªk©M»y·N­­¨î¡A¦p¤U©Ò¥Ü¡G

ÄÝ©ÊÃþ«¬ (Attribute Types)
[54]  AttType ::= StringTypeTokenizedTypeEnumeratedType
[55]  StringType ::= 'CDATA'
[56]  TokenizedType ::= 'ID' [ VC: ID ]
[ VC: ¨CºØ¤¸¯ÀÃþ«¬¤@­Ó ID ]
[ VC: ID Äݩʪº¹w³]­È ]
| 'IDREF' [ VC: IDREF ]
| 'IDREFS' [ VC: IDREF ]
| 'ENTITY' [ VC: ¹êÅé¦WºÙ ]
| 'ENTITIES' [ VC: ¹êÅé¦WºÙ ]
| 'NMTOKEN' [ VC: ¦WºÙ°O²Å ]
| 'NMTOKENS' [ VC: ¦WºÙ°O²Å ]

¡@

¥¿½T¦Xªk©Ê­­¨î: ID
IDÃþ«¬ªº­È¥²¶·¬Û²Å©óNameªº²£¥Í³W«h¦¡¡C§@¬° ID Ãþ«¬­Èªº¦WºÙ¦b XML ¤å¥ó¤¤¥u¯à¥X²{¤@¦¸;¥ç§Y ID ªº­È¥²¶·¬O°ß¤@¯à¼Ð§O¤¸¯Àªº­È¡C

¥¿½T¦Xªk©Ê­­¨î: ¨CºØÄÝ©ÊÃþ«¬¤@­Ó ID
¨CºØÄÝ©ÊÃþ«¬¥u¯à¦³¤@­Ó ID ÄݩʡC

¥¿½T¦Xªk©Ê­­¨î: ID Äݩʪº¹w³]­È
ID Äݩʥ²¶·¦³¤@­Ó«Å§i¬°#IMPLIED©Î#REQUIREDªº¹w³]­È¡C 

¥¿½T¦Xªk©Ê­­¨î: IDREF
IDREFÃþ«¬ªº­È¥²¶·¬Û²Å©óNameªº²£¥Í³W«h¦¡¡AIDREFSÃþ«¬ªº­È¥²¶·¬Û²ÅNamesªº²£¥Í³W«h¦¡¡F¨C¤@­ÓName¥²¶·¬Û²Å XML ¤å¥ó¤¤¬Y¨Ç¤¸¯À ID Äݩʪº­È¡F¤]´N¬O»¡¡AIDREFÃþ«¬ªº­È¥²¶·¬Û²Å¬Y¨Ç ID Äݩʪº­È¡C

¥¿½T¦Xªk©Ê­­¨î: ¹êÅé¦WºÙ
ENTITYÃþ«¬ªº­È¥²¶·¬Û²Å©óNameªº²£¥Í³W«h¦¡¡AENTITIESÃþ«¬ªº­È¥²¶·¬Û²Å©óNamesªº²£¥Í³W«h¦¡¡F¨C¤@­ÓName¥²¶·¬Û²ÅDTD¤¤«Å§iªº¥¼­åªR¹êÅ骺¦WºÙ¡C

¥¿½T¦Xªk©Ê­­¨î: ¦WºÙ²Å°O
NMTOKENÃþ«¬ªº­È¥²¶·¬Û²Å©óNmtokenªº²£¥Í³W«h¦¡;NMTOKENSÃþ«¬ªº­È¥²¶·¬Û²Å©óNmtokensªº²£¥Í³W«h¦¡¡C

¦CÁ|Ãþ«¬ªºÄݩʥi¥H¦b«Å§i´£¨Ñªº­È¦Cªí¤¤¨ú±o¨ä¤¤ªº³]©w­È¡C¦³¨âºØ¦CÁ|Ãþ«¬¡G

¦CÁ|ÄÝ©ÊÃþ«¬ (Enumerated Attribute Types)
[57]  EnumeratedType ::= NotationTypeEnumeration
[58]  NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')' [ VC: °OªkÄÝ©Ê ]
[59]  Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')' [ VC: ¦CÁ| ]

¤@­ÓNOTATIONÃþ«¬ªºÄݩʥiÃѧO¤@ºØ°Oªk¡A¦b DTD ¤¤«Å§i¤¤¡A¦¹°Oªk¨Ï¥Î¬ÛÃöªº¨t²Î (system) ©M/©Î¤½¦@ (public) ÃѧO¦r¡A¥B¥Î©ó¸Ñͦ¹Äݩʪº¬ÛÃö¤¸¯À¡C

¥¿½T¦Xªk©Ê­­¨î: °OªkÄÝ©Ê
¦¹Ãþ«¬ªº­È¥²¶·»P«Å§i¤¤©Ò¥]§tªº°Oªk¦WºÙ¤§¤@¬Û²Å¦X;«Å§i¤¤ªº©Ò¦³°Oªk¦WºÙ³£¥²¶·«Å§i¡C

¥¿½T¦Xªk©Ê­­¨î: ¦CÁ|
¦¹Ãþ«¬ªº­È¥²¶·»P«Å§i¤¤¥]§tªºNmtoken°O¸¹¤§¤@¬Û²Å¦X¡C

°ò©ó¤¬³q©Ê¦Ò¶q¡A¦P¤@Nmtoken¥u¯à¦b³æ­Ó¤¸¯ÀÃþ«¬ªº¦CÁ|ÄÝ©ÊÃþ«¬¤¤¥X²{¤@¦¸¡C

3.3.2 Äݩʹw³]­È

Äݩʫŧi´£¨Ñ¬YÄݩʬO§_¶·­n¥X²{ªº¸ê°T¡A­Y¤£»Ý¥X²{ªº¸Ü¡A¥B¤å¥ó¤¤¨S¦³¥X²{¦¹«Å§iªºÄÝ©Ê®É XML ³B²z¾¹À³¦p¦ó³B²z¡C

Äݩʹw³]­È (Attribute Defaults)
[60]  DefaultDecl ::= '#REQUIRED' | '#IMPLIED'
| (('#FIXED' S)? AttValue) [ VC: ¥²¶·ªºÄÝ©Ê ]
[ VC: ¦XªkªºÄݩʹw³]­È ]
[ WFC: ¦bÄݩʭȤ¤µL<­È ]
[ VC: ©T©wªºÄݩʹw³]­È ]

¦b¤@­ÓÄݩʫŧi¤¤¡A#REQUIREDªí¥Ü¥²¶·¥Ã»·´£¨ÑÄݩʡA#IMPLIEDªí¥Ü¤£´£¨Ñ¹w³]­È¡C¦pªG«Å§i¬J¤£¬O#REQUIRED¡A¤]¤£¬O#IMPLIED¡A«hAttValue­È¥]§t¤F©Ò«Å§iªº¹w³]­È;ÃöÁä¦r#FIXED³W©w¦¹Äݩʥ²¶·¥Ã»·¦³¹w³]­È¡C¦pªG«Å§i¤F¤@­Ó¹w³]­È¡A·í XML ³B²z¾¹¹J¨ìÄݩʳQ¬Ù²¤®É¡A¦¹Äݩʷ|¥H«Å§i®Éªº¹w³]­È¦s¦b

¥¿½T¦Xªk©Ê­­¨î: ¥²¶·ªºÄÝ©Ê
¦pªG¹w³]­È«Å§i¨Ï¥ÎÃöÁä¦r#REQUIRED¡A«hÄݩʪí«Å§i©Ò«üÃþ«¬ªº¤¸¯À¤¤³£¥²¶·¦³¦¹ÄݩʡC

¥¿½T¦Xªk©Ê­­¨î: ¦XªkªºÄݩʹw³]­È
³Q«Å§iªºÄݩʹw³]­È¥²¶·º¡¨¬³Q«Å§iÄÝ©ÊÃþ«¬ªºµüªk­­¨î¡C

¥¿½T¦Xªk©Ê­­¨î: ©T©wªºÄݩʹw³]­È
¦pªG¬YÄݩʪº¹w³]­È¥ÎÃöÁä¦r#FIXED«Å§i¡A¦¹Äݩʪº¹ê¨Ò¥²¶·¬Û²Å©ó¸Ó¹w³]­È¡C

Äݩʪí«Å§iªº¨Ò¤l¡G

<!ATTLIST termdef
          id      ID      #REQUIRED
          name    CDATA   #IMPLIED>
<!ATTLIST list
          type    (bullets|ordered|glossary)  "ordered">
<!ATTLIST form
          method  CDATA   #FIXED "POST">

3.3.3 ÄݩʻP­Èªº³W½d¤Æ (Attribute-Value Normalization)

¦b±NÄݩʭȶǰeµ¹À³¥Îµ{¦¡©ÎÀËÅ祿½T¦Xªk©Ê¤§«e¡AXML ³B²z¾¹¥²¶·¨Ì·Ó¤U¦C±N¨ä³W½d¤Æ¡G

  • ¹ï¦r¤¸°Ñ¤Þªº³B²z¤è¦¡¬O±N³Q¤Þ¥Îªº¦r¤¸ªþ¥[¦bÄݩʭȤ§«á
  • ¹ï¹êÅé°Ñ¤Þªº³B²z¬O»¼°j¦a³B²z¹êÅ骺¸m´«¤å¦r
  • ¹ïªÅ¥Õ¦r¤¸ (#x20¡B#xD¡B#xA »P #x9) ªº³B²z¬O±N #x20 ªþ¥[©ó³W½d¤Æªº­È¤§«á¡A¨Ò¥~¬O¹ï§@¬°¤º³¡­åªR¹L¹êÅé©Î¤º³¡­åªR¹L¹êÅé¦r­±¹êÅé­È¤@³¡¤Àªº "#xD#xA" ¦r¤¸§Ç¦C¥u·|ªþ¥[¤@­Ó #x20¡C
  • ¹ï©ó¨ä¥L¦r¤¸ªº³B²z¬O±N¥¦­Ìªþ¥[©ó³W½d¤Æªº­È¤§«á

¦pªG³Q«Å§iªº­È¤£¬O CDATA¡A«h XML ³B²z¾¹¥²¶·¶i¤@¨B³B²z³W½d¤Æ«áÄݩʪº­È¡A¥h±¼¨ä«e¸m©M§ÀÀHªºªÅ®æ (#x20) ¦r¤¸¡A¨Ã±NªÅ®æ (#x20) ¦r¤¸§Ç¦C´À´«¦¨³æ­ÓªÅ®æ (#x20) ¦r¤¸¡C

©Ò¦³¥¼«Å§iªºÄݩʡAÀ³¸Ó³Q«D¶i¦æÅçÃÒ­åªR¾¹ (non-validating parser) ·í¦¨«Å§i¬°CDATA¡C

3.4 ±ø¥ó¬q (Conditional Sections)

±ø¥ó¬q¬O¤å¥óÃþ«¬«Å§i¥~³¡¤l¶°ªº¤@³¡¤À¡A¥¦­Ì³Q¥]§t¦b DTD ÅÞ¿èµ²ºc¤§¤º¡A©Î³Q±Æ°£¦b DTD ÅÞ¿èµ²ºc¤§¥~¡A®Ú¾Ú©ó¤ä°t¥¦­ÌªºÃöÁä¦r¡C

±ø¥ó¬q (Conditional Section)
[61]  conditionalSect ::= includeSectignoreSect
[62]  includeSect ::= '<![' S? 'INCLUDE' S? '[' extSubsetDecl ']]>'
[63]  ignoreSect ::= '<![' S? 'IGNORE' S? '[' ignoreSectContents* ']]>'
[64]  ignoreSectContents ::= Ignore ('<![' ignoreSectContents ']]>' Ignore)*
[65]  Ignore ::= Char* - (Char* ('<![' | ']]>') Char*)

´N¹³¤º³¡©Î¥~³¡ DTD ¤l¶°¤@¼Ë¡A±ø¥ó¬q¥i¥H¥]§t¤@­Ó©Î¦h­Ó§¹¾ãªº«Å§i¡Aµù¸Ñ¡A³B²z«ü¥Ü¡A©Î±_ª¬ªº±ø¥ó¬q¡A¨ä¤¤¥i¥H§¨ÂøªÅ¥Õ¡C

¦pªG±ø¥ó¬qªºÃöÁä¦r¬O INCLUDE ¡A«h±ø¥ó¬qªº¤º®e¬O DTD ªº¤@³¡¤À¡A¦pªG±ø¥ó¬qªºÃöÁä¦r¬OIGNORE¡A«h±ø¥ó¬qªº¤º®e¤£¬O DTD ÅÞ¿è¤Wªº¤@³¡¤À¡C°w¹ï¥i¾aªº­åªR¹Lµ{¨Ó»¡¡A³Q©¿²¤ªº±ø¥ó¬q¤º®e¥²¶·³QŪ¨ú¡A¥Øªº¬O¬°¤FÀË´ú±ø¥ó¬qªº±_ª¬µ²ºc¡A¨Ã«OÃÒ¯à¾A·í¦aÀË´ú¨ì³Ì¥~¼hªº (³Q©¿²¤ªº) ±ø¥ó¬qµ²§À¡C¦pªG¤@­Ó¨Ï¥ÎÃöÁä¦rINCLUDEªº±ø¥ó¬q¥X²{¦b¨Ï¥ÎÃöÁä¦rIGNOREªº§ó¤j±ø¥ó¬q¤¤¡A¤º¥~¨â­Ó±ø¥ó¬q³£·|³Q©¿²¤¡C

¦pªG±ø¥ó¬qªºÃöÁä¦r¬O¤@­Ó°Ñ¼Æ¹êÅé°Ñ¤Þ¡A³B²z¾¹¦b¨M©w¬O§_¥]§t©Î©¿²¤¦¹±ø¥ó¬q«e¡A¥²¶·¥ý±N¸Ó°Ñ¼Æ¹êÅé¸m´«¦¨¨ä¤º®e¡C

¤@­Ó¨Ò¤l¡G

<!ENTITY % draft 'INCLUDE' >
<!ENTITY % final 'IGNORE' >
 
<![%draft;[
<!ELEMENT book (comments*, title, body, supplements?)>
]]>
<![%final;[
<!ELEMENT book (title, body, supplements?)>
]]>

4. ª«²zµ²ºc

¤@­Ó XML ¤å¥ó¥i¯à¥]§t¤@­Ó©Î¦h­ÓÀx¦s³æ¤¸¡C¥¦­Ì³QºÙ¬°¹êÅé(entity);¥¦­Ì³£¨ã¦³¤º®e¨Ã¥B³£¥H¦WºÙ¨Ó°µÃѧO (°£¤F¤å¥ó¹êÅé©M¥~³¡ DTD ¤l¶°¤§¥~¡A¸Ô¨£¤U­±»¡©ú)¡C¨C¤@­Ó XML ¤å¥ó³£¦³¤@­ÓºÙ¬°¤å¥ó¹êÅé (document entity)ªº¹êÅé¡A¥¦§@¬°XML ³B²z¾¹ªº³B²z°_ÂI¡A¨Ã¥i¥H¥]§t¤F¾ã­Ó¤å¥ó¡C

¹êÅé¥i¥H¬O¤w­åªRªº©Î¥¼­åªRªº¡C­åªR¹L¹êÅé(parsed entity)ªº¤º®e³QºÙ¬°¥¦ªº¸m´«¤å¥»;¦¹¤å¥»³Q¬Ý¦¨¬O¤å¥ó¾ãÅ骺¤@³¡¤À¡C

¥¼­åªR¹êÅé(unparsed entity)¬O¤@ºØ¸ê·½¡A¨ä¤º®e¥i¥H¬O¤]¥i¥H¤£¬O¤å¦r¡A¥B­Y¬°¤å¦rªº¸Ü¡A¥i¥H¤£¬O XML¡C¨C­Ó¥¼­åªR¹êÅ馳¤@­Ó¬ÛÃöªº°Oªk¡A¦¹°Oªk¨Ï¥Î¦WºÙ¨Ó°µÃѧO¡C°£¤F­n¨D XML ³B²z¾¹¯à¦VÀ³¥Îµ{¦¡´£¨Ñ¹êÅé©M°OªkªºÃѧO¦r¤§¥~¡AXML ¹ï¥¼­åªR¹êÅ骺¤º®e¤£§@¥ô¦ó­­¨î¡C

­åªR¹L¹êÅé¥H¹êÅé°Ñ¤Þªº¤è¦¡¨Ï¥Î¦WºÙ¨Ó°µ¤Þ¥Î;¥¼­åªR¹êÅé¥ÎENTITY©ÎENTITIESÄݩʤ¤©Ò´£¨Ñªº¦WºÙ¨Ó¤Þ¥Î¡C

³q¥Î¹êÅé (general entity)¬O¨º¨Ç¦b¤å¥ó¤º®e¤¤¨Ï¥Îªº¹êÅé¡C¦b¥»³W®æ®Ñ¤¤¡A³q¥Î¹êÅ馳®É·|¨Ï¥Î¥¼®Ö¥iªº³N»yentity¨Óªí¥Ü¡C°Ñ¼Æ¹êÅé¬O¥Î©óDTD ¤ºªº­åªR¹L¹êÅé¡C³o¨âÃþ¹êÅé¥Î¤£¦P§Î¦¡ªº°Ñ¤Þ¤è¦¡¡A¥B¦b¤£¦Pªº¤W¤U¤å¤¤³QÃѧO¡C¦¹¥~¡A¥¦­Ì¨Ï¥Î¤£¦Pªº¦WºÙªÅ¶¡;¨ã¦³¬Û¦P¦WºÙªº°Ñ¼Æ¹êÅé©M³q¥Î¹êÅé¬O§¹¥þ¤£¦Pªº¨â­Ó¹êÅé¡C

4.1 ¦r¤¸©M¹êÅé¤Þ¥Î(Character and Entity References)

¤@­Ó¦r¤¸°Ñ¤Þ·|¤Þ¥Î ISO/IEC 10646 ¦r¤¸¶°¤¤ªº¤@­Ó¦r¤¸¡C¨Ò¦p¤£¯à¥Î¿é¤J³]³Æª½±µ¿é¤Jªº¦r¤¸¡C

¦r¤¸°Ñ¤Þ (Character and Entity References)
[66]  CharRef ::= '&#' [0-9]+ ';'
| '&#x' [0-9a-fA-F]+ ';' [ WFC: ¦Xªk¦r¤¸ ]

¡@

§Î¦¡¦Xªk©Ê­­¨î: ¦Xªk¦r¤¸
¥Î¦r¤¸°Ñ¤Þ¤Þ¥Îªº¦r¤¸¥²¶·¬Û²Å©óCharªº²£¥Í³W«h¦¡¡C

¦pªG¦r¤¸°Ñ¤Þ¥H"&#x"¬°¶}ÀY¡A¥B¼Æ¦r©M¦r¥À«á­±±µ¤W²×µ²²Å¸¹©Î¤À¸¹ ";" ¡A¦p¦¹´£¨Ñ¤F¬Y¦r¤¸¦b ISO/IEC 10646 ¤¤¥N½Xªº¤@­Ó¤Q¤»¶i¦ìªí¥Ü¡C¦pªG¥¦¶È¥H"&#"¶}ÀY¡A¼Æ¦r«á­±±µ¤W²×µ²²Å¸¹©Î¤À¸¹ (";")¡A«h´£¨Ñ¤F¬Y¦r¤¸ªº¥N½Xªº¤Q¶i­Èªí¥Ü¡C

¹êÅé°Ñ¤Þ(entity reference)¤Þ¥Î¤@­Ó¦WºÙ¹êÅ骺¤º®e¡C¹ï¤w­åªR³q¥Î¹êÅé¤Þ¥Î¨Ï¥Î "and" ²Å¸¹ (&) ©M¤À¸¹ (;)§@¬°©w¬É²Å¡C°Ñ¼Æ¹êÅé°Ñ¤Þ«h¨Ï¥Î¦Ê¤À¸¹(%)©M¤À¸¹(;)§@¬°©w¬É²Å¡C

¹êÅé¤Þ¥Î (Entity Reference)
[67]  Reference ::= EntityRefCharRef
[68]  EntityRef ::= '&' Name ';' [ WFC: «Å§i¹êÅé ]
[ VC: «Å§i¹êÅé ]
[ WFC: ­åªR¹L¹êÅé ]
[ WFC: µL»¼°j ]
[69]  PEReference ::= '%' Name ';' [ VC: «Å§i¹êÅé ]
[ WFC: µL»¼°j ]
[ WFC: ¦b DTD ¤º ]

¡@

§Î¦¡¦Xªk©Ê­­¨î: «Å§i¹êÅé
¦b¤@¥÷¨S¦³¥ô¦ó DTD ªº¤å¥ó¡A©Î¤@¥÷¤£¥]§t°Ñ¼Æ¹êÅé°Ñ¤Þ¥Îªº¤º³¡ DTD ¤l¶°ªº¤å¥ó¡A©Î¤@¥÷"standalone='yes'"ªº¤å¥ó¤º¡A¦b¹êÅé°Ñ¤Þ¤¤´£¨ÑªºName¥²¶·»P¹êÅé«Å§i¤¤©Ò´£¨Ñªº¬Û²Å¦X¡A°£¤F§Î¦¡¦Xªkªº¤å¥ó¤£»Ý­n«Å§i¤U¦Cªº³o¨Ç¹êÅé¡Gamp¡Alt¡Agt¡Aapos©Mquot¡C°Ñ¼Æ¹êÅ饲¶·¦b¥ô¦ó¹ï¥¦ªº¤Þ¥Î¤§«e«Å§i¡C¬Û¦P¦a¡A¥X²{¦bÄݩʪí«Å§i¹w³]­È¤¤ªº³q¥Î¹êÅ饲¶·¦b¥ô¦ó¹ï¥¦ªº¤Þ¥Î¤§«e«Å§i¡C­nª`·N­Y¦b¥~³¡¤l¶°©Î¥~³¡°Ñ¼Æ¹êÅ餤«Å§iªº¹êÅé¡A¤£¶i¦æÅçÃÒªº³B²z¾¹¤£¥²­nŪ¨ú©M³B²z¥¦­Ìªº«Å§i;¹ï©ó¦p¦¹ªº¤å¥ó¡A¥u·í³]©w¬°standalone='yes'®É¡A¹êÅ饲¶·³Q«Å§iªº³W«h¤~¬O¤@­Ó§Î¦¡¦Xªk©Êªº­­¨î¡C

¥¿½T¦Xªk©Ê­­¨î: «Å§i¹êÅé
¦b¤@­Ó¦³¥~³¡¤l¶°©Î¥~³¡°Ñ¼Æ¹êÅé¥B³]©w¬°"standalone='no'"ªº¹êÅ餤¡A¹êÅé°Ñ¤Þ¤¤´£¨ÑªºName¥²¶·»P¹êÅé«Å§i¤¤©Ò´£¨Ñªº¬Û²Å¦X¡C°ò©ó¤¬³q©Ê¦Ò¶q¡A¥¿½T¦Xªkªº¤å¥óÀ³¸Ó¨Ï¥Î"4.6 ¹w©w¸q¹êÅé"¤¤©Ò­zªº§Î¦¡¨Ó«Å§i¹êÅéamp¡Alt¡Agt¡Aapos©Mquot¡C°Ñ¼Æ¹êÅ饲¶·¦b¥ô¦ó¹ï¥¦ªº¤Þ¥Î¤§«e«Å§i¡C¬Û¦P¦a¡A¥X²{¦bÄݩʪí«Å§i¹w³]­È¤¤ªº³q¥Î¹êÅ饲¶·¦b¥ô¦ó¹ï¥¦ªº¤Þ¥Î¤§«e«Å§i¡C

§Î¦¡¦Xªk©Ê­­¨î: ­åªR¹L¹êÅé
¹êÅé°Ñ¤Þ¤£¯à¥]§t¤@­Ó¥¼­åªR¹êÅ骺¦WºÙ¡C¥¼­åªR¹êÅé¥u¯à¦b«Å§i¬°ENTITY©ÎENTITIESªºÄݩʭȤ¤¤Þ¥Î¡C

§Î¦¡¦Xªk©Ê­­¨î: µL»¼°j
­åªR¹L¹êÅ餣¯àª½±µ©Î¶¡±µ¦a¥]§t¹ï¥»¨­ªº»¼°j¤Þ¥Î¡C

§Î¦¡¦Xªk©Ê­­¨î: ¦bDTD¤º
°Ñ¼Æ¹êÅé°Ñ¤Þ¥u¯à¦bDTD¤¤¥X²{¡C

¦r¤¸©M¹êÅé¤Þ¥Îªº¨Ò¤l¡G

Type <key>less-than</key> (&#x3C;) to save options.
This document was prepared on &docdate; and
is classified &security-level;.

°Ñ¼Æ¹êÅé¤Þ¥Îªº¨Ò¤l¡G

<!-- declare the parameter entity "ISOLat2"... -->
<!ENTITY % ISOLat2
         SYSTEM "http://www.xml.com/iso/isolat2-xml.entities" >
<!-- ... now reference it. -->
%ISOLat2;

4.2 ¹êÅé«Å§i (Entity Declaration)

 ¹êÅé¨Ï¥Î¤U¦C¤è¦¡«Å§i¡G

¹êÅé«Å§i (Entity Declaration)
[70]  EntityDecl ::= GEDeclPEDecl
[71]  GEDecl ::= '<!ENTITY' S Name S EntityDef S? '>'
[72]  PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>'
[73]  EntityDef ::= EntityValue | (ExternalID NDataDecl?)
[74]  PEDef ::= EntityValueExternalID

Name¿ëÃѤF¦b¹êÅé°Ñ¤Þ¤¤ªº¹êÅé;©Î°w¹ï¥¼­åªR¹êÅ骺±¡ªp¡A¿ëÃѤFENTITY©ÎENTITIESÄݩʭȤ¤ªº¹êÅé¡C¦pªG¦P¼Ëªº¹êÅé³Q«Å§i¤F¤£¤î¤@¦¸¡A«h·|³sµ²¨ì²Ä¤@­Ó¹J¨ìªº«Å§i¡C¥Ñ¨Ï¥ÎªÌ¿ï¾Ü¡A¦pªG¹êÅé³Q¦h¦¸«Å§i¡AXML³B²z¾¹¥i¥H´£¥Xĵ§i¡C

4.2.1 ¤º³¡¹êÅé (Internal Entities)

¦pªG¹êÅé©w¸q¬O¤@­ÓEntityValue¡A³Q©w¸qªº¹êÅé³QºÙ¬°¤º³¡¹êÅé¡C¤º³¡¹êÅé¨S¦³³æ¿Wªºª«²z (Physical) Àx¦sª«¥ó¡A¹êÅ骺¤º®e¦b«Å§i¤¤´£¨Ñ¡Cª`·N¦r­±¹êÅé­È¤¤¤@¨Ç¹êÅé©M¦r¤¸°Ñ¤Þªº³B²z¥i¯à­n¨D²£¥Í¥¿½Tªº¸m´«¤å¦r¡G°Ñ¨£"4.5 ¤º³¡¸m´«¤å¦rªººc³y"¡C

¤º³¡¹êÅé¬O­åªR¹L¹êÅé¡C

¤º³¡¹êÅé«Å§iªº¨Ò¤l¡G

<!ENTITY Pub-Status "This is a pre-release of the
 specification.">

4.2.2 ¥~³¡¹êÅé(External Entities)

¦pªG¹êÅ餣¬O¤º³¡ªº¡A«h¥¦¬O¤@­Ó¥~³¡¹êÅé¡A«Å§i¦p¤U¡G

¥~³¡¹êÅé«Å§i (external entity)
[75]  ExternalID ::= 'SYSTEM' S SystemLiteral
| 'PUBLIC' S PubidLiteral S SystemLiteral
[76]  NDataDecl ::= S 'NDATA' S Name [ VC: «Å§i°Oªk ]

¦pªG¦³NDataDecl¡A«h¦¹¬°¤@¯ëªº¥¼­åªR¹êÅé;§_«h¥¦¬O¤@­Ó­åªR¹L¹êÅé¡C

¥¿½T¦Xªk©Ê­­¨î: «Å§i°Oªk
Name¥²¶·»P°Oªkªº¦WºÙ¬Û²Å¡C

SystemLiteral³QºÙ¬°¸Ó¹êÅ骺¨t²ÎÃѧO¦r¡C¦¹¬°¤@­Ó URI¡A¥i¥H¥Î¨Ó¦s¨ú¦¹¹êÅé¡Cª`·N¤«¸¹ (#) ©M URI ¤¤±`¨Ï¥ÎªºÃѧO¦r¤ù¬q¦b§Î¦¡¤W¨Ã«D URI ªº¤@³¡¤À¡F¦pªG©Ò´£¨ÑªºÃѧO¦r¤ù¬q¬°¨t²ÎÃѧO¦rªº¤@³¡¤À¡A«h XML ³B²z¾¹¥i¥H°e¥X¤@­Ó¿ù»~°T®§¡C°£«D¦b¥»³W½d®Ñ½d³ò¤§¥~ªº¸ê°T¡A©Ò´£¨Ñªº¨Ò¥~±¡ªp (¨Ò¦p¤@­Ó¯S®í DTD ¤¤©w¸qªº¯S©w¨Ï¥Îªº XML ¤¸¯ÀÃþ«¬¡A©Î¤@­Ó¯S®íÀ³¥Îµ{¦¡³W½d¤¤©w¸qªº³B²z«ü¥Ü)¡A¬Û¹ï URI ¬O«ü¬Û¹ï©ó¹êÅé«Å§iµo¥Íªº¸ê·½¦ì¸m¡C¦]¦¹¡A¤@­Ó URI ¥i¯à¬Û¹ï©ó¤å¥ó¹êÅé¡A©Î¬Û¹ï©ó¥]§t¥~³¡ DTD ¤l¶°ªº¹êÅé¡A©Î¬Û¹ï©ó¤@¨Ç¨ä¥Lªº¥~³¡°Ñ¼Æ¹êÅé¡C

XML ³B²z¾¹³B²z URI ¤¤ªº«D ASCII ¦r¤¸®É¡AÀ³¸Ó±N UTF-8 ¤¤ªº¦r¤¸¥Î¤@­Ó©Î¦h­Ó¦ì¤¸²Õªí¥Ü¡AµM«á±N³o¨Ç¦r¤¸¨Ï¥Î URI ¸õ²æ¾÷¨î¨Ó¸õ²æ¥»·N (§Y¬°±N¨C­Ó¦ì¤¸²ÕÂà´«¦¨ %HH¡A¨ä¤¤ HH ¬O¦ì¤¸²Õ­Èªº¤Q¤»¶i¦ì°Oªk)¡C

°£¤F¨t²ÎÃѧO¦r¤§¥~¡A¥~³¡ÃѧO¦rÁÙ¥i¥H¥]§t¤½¦@ÃѧO¦r¡C¸Õ¹Ï¦s¨ú¹êÅ餺®eªº XML ³B²z¾¹¡A¥i¥H¨Ï¥Î¤½¦@ÃѧO¦r¸ÕµÛ²£¥Í¥t¤@­Ó¤£¦Pªº URI¡C¦pªG³B²z¾¹µLªk°µ¨ì¦¹ÂI¡A«h¥¦¥²¶·¨Ï¥Î¨t²ÎÃѧO¦r (systemLiteral) ©Ò«ü©wªº URI¡C¦b¸Õ¹Ï¬Û²Å¤§«e¡A¤½¦@ÃѧO¦r¤¤©Ò¦³ªÅ¥Õ¦r¦ê¥²¶·³Q³W½d¦¨¬°³æ¿WªºªÅ®æ¦r¤¸(#x20)¡A¦P®É¥²¶·±N«e¸m¤Î§ÀÀHªÅ¥Õ²¾°£¡C

¥~³¡¹êÅé«Å§iªº¨Ò¤l¡G

<!ENTITY open-hatch
         SYSTEM "http://www.textuality.com/boilerplate/OpenHatch.xml">
<!ENTITY open-hatch
         PUBLIC "-//Textuality//TEXT Standard open-hatch boilerplate//EN"
         "http://www.textuality.com/boilerplate/OpenHatch.xml">
<!ENTITY hatch-pic
         SYSTEM "../grafix/OpenHatch.gif"
         NDATA gif >

4.3 ­åªR¹L¹êÅé (Parsed Entities)

4.3.1 ¤å¥»«Å§i (Text Declaration)

¨C­Ó¥~³¡­åªR¹L¹êÅé¥i¨Ï¥Î¤å¥»«Å§i§@¬°¶}©l¡C

¤å¥»«Å§i (Text Declaration)
[77]  TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'

¤å¥»«Å§i¥²¶·¥H¦r­±¤Wªº§Î¦¡¨Ó´£¨Ñ¡A¦Ó¤£¯à³z¹L­åªR¹L¹êÅ骺¤Þ¥Î¡C¤å¥»«Å§i°£¤F¯à¥X²{¦b¥~³¡­åªR¹L¹êÅ骺¶}ÀY¤§¥~¡A¨Ã¤£¤¹³\¦b¨ä¥L¥ô¦ó¦ì¸m¥X²{¡C

4.3.2 §Î¦¡¦Xªkªº­åªR¹L¹êÅé (Well-Formed Parsed Entities)

¦pªG¤å¥ó¹êÅé¬Û²Ådocument²£¥Í³W«h¦¡¡A«h¥¦¬O§Î¦¡¦Xªkªº¡C¦pªG¥~³¡´¶³q­åªR¹L¹êÅé¬Û²ÅextParsedEnt²£¥Í³W«h¦¡¡A«h¥¦¬O§Î¦¡¦Xªkªº¡C¦pªG¥~³¡°Ñ¼Æ¹êÅé¬Û²ÅextPE²£¥Í³W«h¦¡¡A«h¥¦¬O§Î¦¡¦Xªkªº¡C

³W½dªº¥~³¡­åªR¹L¹êÅé (Well-Formed Parsed Entity)
[78]  extParsedEnt ::= TextDecl? content
[79]  extPE ::= TextDecl? extSubsetDecl

¦pªG¤º³¡´¶³q­åªR¹L¹êÅ骺¸m´«¤å¦r¬Û²Åcontent²£¥Í³W«h¦¡¡A«h¥¦¬O§Î¦¡¦Xªkªº¡C®Ú¾Ú©w¸q¡A©Ò¦³¤º³¡ªº°Ñ¼Æ¹êÅé³£¬O§Î¦¡¦Xªkªº¡C

¦b¹êÅ餤²Å¦X§Î¦¡¦Xªk©Êªºµ²ªG¬O¡AXML ¤å¥ó¤¤ªºÅÞ¿è©Mª«²zµ²ºc¬OÄY®æ²Å¦X±_ª¬µ²ºcªº;°_©l¼ÐÅ