Extensible Markup Language (XML) 1.0 (Second Edition)±¾ÎĵµÊÇ W3C ½¨Òé XML 1.0 µÚ¶þ°æ£¨2000 Äê 10 Ô 6 ÈÕ£©µÄ¼òÌåÖÐÎÄ·Òë°æ£¬ÆäÖпÉÄÜÓдíÎóºÍ²»Í×Ö®´¦¡£ Ó¢ÎİæÊÇΨһµÄÕýʽ°æ£¬Î»ÓÚ£º http://www.w3.org/TR/2000/REC-xml-20001006 ±¾ÎĵµÎ»ÓÚ£º http://lightning.prohosting.com/~qqiu/REC-xml-20001006-cn.html
Öø×÷ȨÉùÃ÷λÓÚ£ºhttp://www.w3.org/Consortium/Legal/copyright-documents.html Copyright © 1998 W3C® (MIT, INRIA, Keio ), All Rights Reserved. W3C liability, trademark, document use and software licensing rules apply. |
±¾ÎĵµÍêÕûµØÃèÊöÁË¿ÉÀ©Õ¹±ê¼ÇÓïÑÔ£¨Extensible Markup Language£¬XML£©£¬ËüÊDZê׼ͨÓñê¼ÇÓïÑÔ£¨Standard Generic Markup Language£¬SGML£©µÄÒ»¸ö×Ó¼¯¡£ÆäÄ¿µÄÔÚÓÚʹµÃÔÚ Web ÉÏÄÜÒÔÏÖÓг¬Îı¾±ê¼ÇÓïÑÔ£¨Hypertext Markup Language£¬HTML£©µÄʹÓ÷½Ê½Ìṩ£¬½ÓÊպʹ¦ÀíͨÓÃµÄ SGML ³ÉΪ¿ÉÄÜ¡£XML µÄÉè¼Æ¼È¿¼ÂÇÁËʵÏֵķ½±ãÐÔ£¬Í¬Ê±Ò²¹Ë¼°ÁËÓë SGML ºÍ HTML µÄ»¥²Ù×÷ÐÔ¡£
±¾ÎĵµÒÑÓÉ W3C ×éÖ¯³ÉÔ±ºÍÆäËûÏà¹Ø¸÷·½ÉóÔÄ£¬²¢Òѱ»×éÖ¯ÀíÊÂÅú׼Ϊ W3C ½¨Òé¡£ÕâÊÇÒ»·ÝÎȶ¨µÄÎĵµ£¬¿ÉÒÔÓÃ×÷²Î¿¼²ÄÁÏ£¬Ò²¿ÉÒÔ×÷ΪÆäËûÎĵµµÄÕýʽ²Î¿¼ÎÄÏס£W3C ÔÚ½¨ÒéÖÆ¶¨¹ý³ÌÖеÄ×÷ÓÃÊÇÎüÒý¶Ô±¾½¨ÒéµÄ×¢Òâ²¢´Ù½øËüµÄ¹ã·ºÊ¹Óá£ÕâÄÜÔöÇ¿WebµÄ¹¦Äܺͻ¥²Ù×÷ÐÔ¡£
±¾Îĵµ¹æ¶¨ÁËÒ»ÖÖÓÃÓÚ World Wide Web µÄÓï·¨£¬´ËÓï·¨ÊÇͨ¹ýȡһ¸öÒµÒÑ´æÔÚ²¢Òѹ㷺ʹÓõÄÎı¾´¦Àí¹ú¼Ê±ê×¼£¨±ê׼ͨÓñê¼ÇÓïÑÔ£¬¾Ôö²¹ºÍ¸üÕýµÄ ISO 8879:1986(E)£©µÄ×Ó¼¯¶ø´´½¨µÄ¡£ËüÊÇ W3C XML Ðж¯×飨XML Activity£©µÄ¹¤×÷³É¹û£¬¹ØÓÚ XML Ðж¯×éµÄÏêϸÐÅÏ¢¿ÉÒÔÔÚ http://www.w3.org/XML ÕÒµ½¡£Ó¢ÎİæÊÇΨһµÄÕýʽ°æ¡£±¾ÎĵµµÄ·Òë¼û http://www.w3.org/XML/#trans¡£ÔÚ http://www.w3.org/TR ¿ÉÒÔÕÒµ½ÏÖÓÐ W3C ½¨ÒéºÍÆäËû¼¼ÊõÎĵµµÄÒ»¸öÁÐ±í¡£
XML 1.0 µÚ¶þ°æ²»ÊÇ XML µÄÒ»¸öа汾£¨1998 Äê 2 Ô 10 ÈÕÊ״η¢±í£©£»ËüÖ»ÊÇΪÁË·½±ã¶ÁÕߣ¬²¢ÈëÁ˵ÚÒ»°æ¿±Îó±íÖÐÖ¸³öµÄ´íÎóºÍÐ޸ģ¨ÔÚ http://www.w3.org/XML/xml-19980210-errata£©¡£ ±¾µÚ¶þ°æµÄ¿±Îó±íÔÚ http://www.w3.org/XML/xml-V10-2e-errata¡£
Ç뽫±¾ÎĵµÖеĴíÎó±¨¸æ¸ø xml-editor@w3.org¡£¿ÉÒÔÔÚ´ËÕÒµ½Ïà¹ØµÄ´æµµ¡£
×¢£º
C. M. Sperberg-McQueen ÔÚµÚÒ»°æ·¢±íÖ®ºó¹©Ö°Ö®´¦ÒÑÓб仯¡£ËûÏÖÔÚ¹©Ö°ÓÚ W3C£¬¿ÉÒÔͨ¹ý cmsmcq@w3.org ºÍËûÁªÏµ¡£
1. Ð÷ÂÛ
1.1 ¿ª·¢ÕߺͿª·¢Ä¿±ê
1.2 ÊõÓï
2. Îļþ
2.1 ¸ñʽÕýÈ·µÄ XML Îļþ
2.2 ×Ö·û
2.3 ͨÓÃÓï·¨³É·Ö
2.4 ×Ö·ûÊý¾ÝºÍ±ê¼Ç
2.5 ×¢ÊÍ
2.6 ´¦ÀíÖ¸Áî
2.7 CDATA ¶Î
2.8 ÐòÑÔºÍÎļþÀàÐÍÉùÃ÷
2.9 ¶ÀÁ¢ÎļþÉùÃ÷
2.10 ¿Õ°×´¦Àí
2.11 ÐÐβ´¦Àí
2.12 ÓïÑÔ±êʶ
3. Âß¼½á¹¹
3.1 Æðʼ±êÇ©£¬½áÊø±êÇ©ºÍ¿ÕÔªËØ±êÇ©
3.2 ÔªËØÀàÐÍÉùÃ÷
3.2.1 ÔªËØÐÍÄÚÈÝ
3.2.2 »ìºÏÐÍÄÚÈÝ
3.3 ÊôÐÔ±íÉùÃ÷
3.3.1 ÊôÐÔÀàÐÍ
3.3.2 ÊôÐÔµÄȱʡֵ
3.3.3 ÊôÐÔ-Öµ¶ÔµÄ¹æ·¶»¯
3.4 Ìõ¼þ¶Î
4. ÎïÀí½á¹¹
4.1 ×Ö·ûºÍʵÌåÒýÓÃ
4.2 ʵÌåÉùÃ÷
4.2.1 ÄÚ²¿ÊµÌå
4.2.2 ÍⲿʵÌå
4.3 ÒÑÎöʵÌå
4.3.1 Îı¾ÉùÃ÷
4.3.2 ¸ñʽÕýÈ·µÄÒÑÎöʵÌå
4.3.3 ʵÌåÖеÄ×Ö·û±àÂë
4.4 XML ´¦ÀíÆ÷¶ÔʵÌåºÍÒýÓõĴ¦Àí
4.4.1 ²»±»Ê¶±ð
4.4.2 ±»°üº¬
4.4.3 ½øÐÐÑé֤ʱ±»°üº¬
4.4.4 ±»½ûÖ¹
4.4.5 ×÷Ϊ³£Á¿±»°üº¬
4.4.6 ֪ͨ
4.4.7 ²»´¦Àí
4.4.8 ×÷Ϊ²ÎÊýʵÌå±»°üº¬
4.5 ÄÚ²¿ÊµÌåÖû»Îı¾µÄ¹¹½¨
4.6 Ô¤¶¨ÒåʵÌå
4.7 ¼Ç·¨ÉùÃ÷
4.8 ÎļþʵÌå
5. Ò»ÖÂÐÔ
5.1 ½øÐÐÑéÖ¤ºÍ²»½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷
5.2 ʹÓà XML ´¦ÀíÆ÷
6. ¼Ç·¨
A. ²Î¿¼ÎÄÏ×
A.1 Õýʽ²Î¿¼ÎÄÏ×
A.2 ÆäËû²Î¿¼ÎÄÏ×
B. ×Ö·ûµÄ·ÖÀà
C. XML ºÍ SGML£¨·ÇÕýʽ£©
D. ʵÌåºÍ×Ö·ûÒýÓõÄÕ¹¿ª£¨·ÇÕýʽ£©
E. È·¶¨ÐÍÄÚÈÝÄ£ÐÍ£¨·ÇÕýʽ£©
F. ×Ö·û±àÂëµÄ×Ô¶¯¼ì²â£¨·ÇÕýʽ£©
F.1 ÎÞÍⲿ±àÂëÐÅϢʱµÄ¼ì²â
F.2 ÓÐÍⲿ±àÂëÐÅϢʱµÄÓÅÏȼ¶
G. W3C XML ¹¤×÷×飨·ÇÕýʽ£©
H. W3C XML ºËÐŤ×÷×飨·ÇÕýʽ£©
I. ÎĵµÖÆ×÷˵Ã÷£¨·ÇÕýʽ£©
¿ÉÀ©Õ¹±ê¼ÇÓïÑÔ£¬ËõдΪ XML£¬ÃèÊöÁËÒ»Àà³ÆÎª XML ÎļþµÄÊý¾Ý¶ÔÏó£¬Í¬Ê±Ò²²¿·ÖµØÃèÊöÁË´¦ÀíÕâЩÊý¾Ý¶ÔÏóµÄ¼ÆËã»ú³ÌÐòµÄ¶¯×÷¡£XML ÊÇ SGML£¨±ê׼ͨÓñê¼ÇÓïÑÔ [ISO 8879]£©Õë¶ÔÌØ¶¨Ó¦ÓÃÁìÓòµÄÒ»¸ö×Ó¼¯£¬»òÕß˵ÊÇ SGML µÄÒ»ÖÖÊÜÏÞÐÎʽ¡£¸ù¾Ý¶¨Ò壬XML ÎļþÊǺϺõ¹æ·¶µÄ SGML Îļþ¡£
XML ÎļþÓɳÆÎªÊµÌåµÄ´æ´¢µ¥Ôª×é³É£¬ÊµÌå¿ÉÒÔ°üº¬ÒÑÎö£¨parsed£©Êý¾Ý»òδÎö£¨unparsed£©Êý¾Ý¡£ÒÑÎöÊý¾ÝÓÉ×Ö·û×é³É£¬ÆäÖÐһЩ×Ö·û×é³É×Ö·ûÊý¾Ý£¬ÁíһЩ×Ö·û×é³É±ê¼Ç¡£±ê¼ÇÖаüº¬Á˶ÔÎļþ´æ´¢¸ñʽ£¨storage layout£©ºÍÂß¼½á¹¹µÄÃèÊö¡£XML ÌṩÁËÒ»ÖÖ»úÖÆÓÃÓÚÔ¼Êø´æ´¢¸ñʽºÍÂß¼½á¹¹¡£
[¶¨Ò壺³ÆÎª XML ´¦ÀíÆ÷µÄÈí¼þÄ£¿éÓÃÓÚ¶ÁÈ¡ XML Îļþ£¬´æÈ¡ÆäÖеÄÄÚÈݺͽṹ¡£] [¶¨Ò壺XML ´¦ÀíÆ÷±»ÉèÏëΪÊÇΪÁíÒ»¸ö³ÆÎªÓ¦ÓõÄÄ£¿é×÷´¦Àí¡£] ±¾¹æ·¶´Ó XML ´¦ÀíÆ÷Ó¦ÈçºÎ¶ÁÈ¡ XML Êý¾ÝÒÔ¼°Ó¦ÏòÓ¦ÓÃÌṩÄÄЩÐÅÏ¢µÄÕâÁ½¸ö·½Ã棬ÃèÊöÁËÒªÇó XML ´¦ÀíÆ÷×÷³öµÄ¶¯×÷¡£
XML ÓÉ XML ¹¤×÷×飨ÔÏ鵀 SGML ±à¼Éó²éίԱ»á£©¿ª·¢£¬´Ë¹¤×÷×éÓÉ World Wide Web Consortium (W3C) ÔÚ 1996 ÄêÖ÷³Ö³ÉÁ¢¡£¹¤×÷×éÓÉ Sun Microsystems µÄ Jon Bosak ¸ºÔð£¬Í¬ÑùÓÉ W3C ×éÖ¯µÄ XML SIG (Special Interest Group)£¨ÔÏ鵀 SGML ¹¤×÷×飩»ý¼«²ÎÓëÁË XML ¹¤×÷×éµÄ¹¤×÷¡£XML ¹¤×÷×éµÄ³ÉÔ±ÔÚ¸½Â¼Öиø³ö¡£ ¹¤×÷×éÓë W3C µÄÁªÏµÈËÊÇ Dan Connolly¡£
XML µÄÉè¼ÆÄ¿±êÈçÏ£º
±¾¹æ·¶ÓëÆäËûÏà¹ØµÄ±ê×¼Ò»Æð£¨Unicode ºÍ ISO/IEC 10646 ¶¨ÒåÁË×Ö·û¼¯£¬Internet RFC1766 ¶¨ÒåÁËÓïÑÔʶ±ðÂ룬ISO 639 ¶¨ÒåÁËÓïÑÔÃû³Æ´úÂ룬ISO 3166 ¶¨ÒåÁ˹ú¼ÒÃû³Æ´úÂ룩£¬ÌṩÁËÀí½â XML °æ±¾ 1.0 ºÍ¹¹½¨ÏàÓ¦¼ÆËã»ú´¦Àí³ÌÐòËùÐèµÄËùÓÐÐÅÏ¢¡£
ÔÚÍêÕû±£ÁôËùÓÐÎı¾ºÍ·¨ÂÉ×¢ÒâÊÂÏîµÄǰÌáÏ£¬±¾°æ±¾µÄ XML ¹æ·¶¿ÉÒÔ×ÔÓÉ·Ö·¢¡£
ÓÃÓÚÃèÊö XML ÎļþµÄÊõÓïÔڴ˹淶µÄÕýÎÄÖж¨Òå¡£ ÔÚÕâЩ¶¨ÒåÖÐÒÔ¼°ÃèÊöÒ»¸ö XML ´¦ÀíÆ÷µÄ¶¯×÷ʱ£¬Ê¹ÓÃÁËϱíÖеÄÊõÓ
[¶¨Ò壺Èç¹ûÒ»¸öÊý¾Ý¶ÔÏóÂú×ã±¾¹æ·¶ÖиñʽÕýÈ·µÄÖ®¶¨Òåʱ£¬ËüÊÇÒ»¸ö XML Îļþ¡£Ò»¸ö¸ñʽÕýÈ·µÄ XML Îļþ¿ÉÒÔ¸ü½øÒ»²½ÊÇÓÐЧµÄ£¬Èç¹ûËüÂú×ãijЩ½øÒ»²½µÄÔ¼ÊøµÄ»°¡£]
ÿһ¸ö XML Îļþ¶¼ÓÐÂß¼ºÍÎïÀí½á¹¹¡£ÎïÀíÉ϶øÑÔ£¬ÎļþÓɳÆÎªÊµÌåµÄµ¥Ôª×é³É¡£Ò»¸öʵÌå¿ÉÒÔÒýÓã¨refer£©ÆäËûʵÌ壬½«ËüÃǰüº¬ÔÚÎļþÖС£Îļþ¿ªÊ¼ÓÚ"¸ù£¨root£©"»òÎļþʵÌå¡£Âß¼É϶øÑÔ£¬ÎļþÓÉÉùÃ÷£¬ÔªËØ£¬×¢ÊÍ£¬×Ö·ûÒýÓúʹ¦ÀíÖ¸Áî×é³É£¬ËùÓÐÕâЩ¶¼ÔÚÎļþÖÐÓÃÏÔʽ±ê¼ÇÖ¸Ã÷¡£Âß¼ºÍÎïÀí½á¹¹±ØÐëÈç"4.3.2 ¸ñʽÕýÈ·µÄÒÑÎöʵÌå"ÖÐËùÃèÊöµÄÄÇÑùÑϸñµØÇ¶Ìס£
[¶¨Ò壺һ¸öÎı¾¶ÔÏóÊÇÒ»¸ö¸ñʽÕýÈ·µÄ XML ÎļþÈç¹ûËüÂú×㣺]
document ²úÉúʽ¡£| [1] | document |
::= | prolog element
Misc* |
Æ¥Åä document ²úÉúʽÒâζ×Å£º
[¶¨Ò壺ÕâÑù×öµÄ½á¹ûÊÇ£¬¶ÔÓÚÿһ¸ö·Ç¸ùµÄÔªËØ C£¬ÎļþÖÐÁíÓÐÒ»¸öÔªËØ P£¬C ÔÚ P µÄÄÚÈÝÖУ¬¶ø²»ÔÚÆäËûÈκα» P Ëù°üº¬µÄÔªËØµÄÄÚÈÝÖС£P ±»³ÆÎª C µÄ¸¸ÔªËØ£¨parent£©£¬¶ø C ±»³ÆÎª P µÄ×ÓÔªËØ£¨child£©¡£]
[¶¨Ò壺һ¸öÒÑÎöʵÌå°üº¬Îı¾£¨text£©£¬Îı¾ÊÇÒ»¸ö×Ö·û£¨character£©ÐòÁУ¬¿ÉÒÔ±íʾ±ê¼Ç»ò×Ö·ûÊý¾Ý¡£] [¶¨Ò壺һ¸ö×Ö·ûÊÇ ISO/IEC 10646 [ISO/IEC 10646]£¨»ò [ISO/IEC 10646-2000]£©Öж¨ÒåµÄÎı¾×îСµ¥Ôª¡£ºÏ·¨µÄ×Ö·û°üÀ¨ÖƱí·û£¬»Ø³µ£¬»»ÐÐÒÔ¼° Unicode ºÍ ISO/IEC 10646 Öж¨ÒåµÄºÏ·¨×Ö·û¡£ÔÚÖÆ¶¨±¾ÎĵµÊ±£¬ÔÚ¸½Â¼ A.1 Õýʽ²Î¿¼ÎÄÏ×ÖÐÒýÓõıê×¼¶¼Êǵ±Ê±µÄ×îа汾£¬ÔÚÕâЩ±ê×¼µÄÔö²¹°æ»òаæÖпÉÄÜ»á¼ÓÈëеÄ×Ö·û¡£Òò´Ë£¬XML ´¦ÀíÆ÷±ØÐëÄܽÓÊܲúÉúʽ Char ÖÐËù¶¨Ò巶ΧÄÚµÄÈÎÒâ×Ö·û¡£²»ÌᳫʹÓà [Unicode] 6.8 ½Ú£¨»ò [Unicode3] 3.6 ½Ú D21 £©Öж¨ÒåµÄ"¼æÈÝ×Ö·û£¨compatibility characters£©"¡£]
| [2] | Char |
::= | #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] |
[#x10000-#x10FFFF] |
/* ³ýÁË´úÓÿ飨surrogate block£©£¬FFFE ºÍ FFFF ÒÔÍâµÄÈÎÒâ Unicode ×Ö·û¡£*/ |
½«×Ö·û´úÂë±àÂë³ÉλģʽµÄ»úÖÆ¸÷¸öʵÌå¼ä¿ÉÄÜ»áÓÐËù²»Í¬¡£ËùÓÐµÄ XML ´¦ÀíÆ÷±ØÐë½ÓÊÜ 10646 ÖÐµÄ UTF-8 ºÍ UTF-16 ±àÂ룻ÓÃÓÚÖ¸³öËùÓñàÂë»òÖ¸¶¨Ê¹ÓÃÆäËû±àÂëµÄ»úÖÆÔÚºóÃæµÄ"4.3.3 ʵÌåÖеÄ×Ö·û±àÂë"ÖÐÌÖÂÛ¡£
±¾½ÚÖж¨ÒåÁËһЩÔÚÎÄ·¨Öй㷺ʹÓõķûºÅ¡£
S£¨¿Õ°×£©°üÀ¨Ò»¸ö»ò¶à¸ö¿Õ¸ñ×Ö·û£¨#x20£©£¬»Ø³µ£¬»»ÐкÍÖÆ±í·û¡£
| [3] | S |
::= | (#x20 | #x9 | #xD | #xA)+ |
Ϊ·½±ãÆð¼û£¬×Ö·û±»·ÖΪ×Öĸ£¬Êý×ÖºÍÆäËû×Ö·ûÈýÀà¡£×Öĸ¿ÉÒÔÊÇ×Öĸ±íÖеÄ×Öĸ£¬»òÊÇÒ»¸öÒô½Ú»ù×Ö·û£¨syllabic base character£©£¬Ò²¿ÉÒÔÊÇÒ»¸ö±íÒâ×Ö·û¡£ÔÚ"B. ×Ö·ûµÄ·ÖÀà"Öиø³öÁËÿһÀà×Ö·ûµÄÍêÕû¶¨Òå¡£
[¶¨Ò壺Ãû×Ö£¨name£©ÊÇÒÔ×Öĸ»òijЩ±êµã·ûºÅ¿ªÍ·µÄ¼ÇºÅ£¬ºó¸ú×Öĸ£¬Êý×Ö£¬Á¬×Ö·û£¬Ï»®Ïߣ¬Ã°ºÅ»ò¾äºÅ£¬ÕâЩ·ûºÅͳ³ÆÎªÃüÃû×Ö·û£¨name character£©¡£] ÒÔ "xml" »òÆäËûÈÎºÎÆ¥Åä (('X'|'x') ('M'|'m') ('L'|'l')) µÄ×Ö·û´®¿ªÍ·µÄÃû×Ö£¬±»±£ÁôÓÃÓÚ±¾¹æ·¶µÄ´Ë°æ±¾»òºóÐø°æ±¾µÄ±ê×¼»¯¡£
×¢£º
XML ½¨ÒéÖеÄÃûÓò [XML Names] ¸³ÓèÁ˰üº¬Ã°ºÅµÄÃû×ÖijÖÖº¬Òå¡£Òò´Ë³ý·ÇÓÃÓÚÃûÓò£¬XML Îļþ×÷Õß²»Ó¦¸ÃÔÚ XML Ãû×ÖÖÐʹÓÃðºÅ£¬µ« XML ´¦ÀíÆ÷Ó¦¸Ã½ÓÊÜðºÅ×÷Ϊһ¸öÃüÃû×Ö·û¡£
Nmtoken£¨Ãû×ּǺţ¬name token£©ÊÇÈκÎÃüÃû×Ö·ûµÄ»ìºÏÌå¡£
| [4] | NameChar |
::= | Letter |
Digit |
'.' | '-' | '_' | ':' | CombiningChar
| Extender |
| [5] | Name |
::= | (Letter |
'_' | ':') (NameChar)* |
| [6] | Names |
::= | Name (S Name)* |
| [7] | Nmtoken |
::= | (NameChar)+ |
| [8] | Nmtokens |
::= | Nmtoken
(S Nmtoken)* |
³£Á¿Êý¾ÝÊÇÈκÎÓÃÒýºÅÀ¨ÆðµÄ×Ö·û´®£¬²»°üÀ¨ÓÃ×÷¶¨½ç·ûµÄÒýºÅ¡£³£Á¿ÓÃÓÚÖ¸Ã÷ÄÚ²¿ÊµÌåµÄÄÚÈÝ£¨EntityValue£©£¬ÊôÐÔÖµ£¨AttValue£©£¬ÒÔ¼°Íⲿ±êʶ·û£¨SystemLiteral£©¡£×¢Ò⣬¶Ô SystemLiteral µÄÓï·¨·ÖÎö¿ÉÒÔ²»É¨Ãè±ê¼Ç¡£
| [9] | EntityValue |
::= | '"' ([^%&"] | PEReference
| Reference)*
'"' |
| "'" ([^%&'] | PEReference
| Reference)*
"'" | |||
| [10] | AttValue |
::= | '"' ([^<&"] | Reference)*
'"' |
| "'" ([^<&'] | Reference)*
"'" | |||
| [11] | SystemLiteral |
::= | ('"' [^"]* '"') | ("'" [^']* "'") |
| [12] | PubidLiteral |
::= | '"' PubidChar*
'"' | "'" (PubidChar
- "'")* "'" |
| [13] | PubidChar |
::= | #x20 | #xD | #xA | [a-zA-Z0-9]
| [-'()+,./:=?;!*#@$_%] |
×¢£º
ËäÈ»²úÉúʽ EntityValue ÔÊÐí¶¨ÒåÖ»°üº¬µ¥¸ö < µÄʵÌ壨È磬<!ENTITY mylt "<">£©£¬µ«ÊÇÇ¿ÁÒ½¨Òé±ÜÃâÕâÖÖÓ÷¨£¬ÒòΪ¶Ô´ËʵÌåµÄÈκÎÒýÓö¼»áÒýÆðÒ»¸ö¸ñʽÕýÈ·ÐÔ´íÎó¡£
Îı¾ÓÉ×Ö·ûÊý¾ÝºÍ±ê¼Ç»ìºÏ¹¹³É¡£[¶¨Ò壺±ê¼Ç°üÀ¨Æðʼ±êÇ©£¬½áÊø±êÇ©£¬¿ÕÔªËØ±êÇ©£¬ÊµÌåÒýÓã¬×Ö·ûÒýÓã¬×¢ÊÍ£¬CDATA ¶Î¶¨½ç·û£¬ÎļþÀàÐÍÉùÃ÷£¬´¦ÀíÖ¸ÁXML ÉùÃ÷£¬Îı¾ÉùÃ÷£¬ÒÔ¼°ÈκÎÔÚÎļþʵÌå¶¥²ãµÄ¿Õ°×£¨¼´£¬ÔÚÎļþÔªËØÖ®ÍâÇÒ²»ÔÚÈÎºÎÆäËûµÄ±ê¼ÇÖУ©¡£]
[¶¨Ò壺ÆäËûËùÓзDZê¼ÇµÄÎı¾×é³ÉÎļþµÄ×Ö·ûÊý¾Ý¡£]
"and"ºÅ£¨&£©ºÍ×ó¼âÀ¨ºÅ£¨<£©Ö»ÓÐ×÷Ϊ±ê¼Ç¶¨½ç·û£¬»òÔÚ×¢ÊÍ£¬´¦ÀíÖ¸Á»ò CDATA ¶ÎÖÐʱ²ÅÄÜÒÔ³£Á¿ÐÎʽ³öÏÖ¡£Èç¹ûÔÚÆäËûµØ·½ÐèÒªÓõ½ÕâÁ½¸ö×Ö·û£¬ËüÃDZØÐëÓÃÊýֵʽ×Ö·ûÒýÓÃÀ´×ªÒå»ò·Ö±ðÓÃ×Ö·û´®"&"ºÍ"<"±íʾ¡£ÓÒ¼âÀ¨ºÅ(>£©¿ÉÒÔÓÃ">"±íʾ£¬¶øµ±ËüÔÚÄÚÈÝÖеÄ×Ö·û´®"]]>"ÖгöÏÖ£¬µ«´Ë×Ö·û´®²»±íʾһ¸ö CDATA ¶ÎµÄ½áÊøÊ±£¬³öÓÚ¼æÈÝÐÔ¿¼ÂÇ£¬±ØÐëÓÃ">"»òÒ»¸ö×Ö·ûÒýÓÃתÒåµÃµ½¡£
ÔÚÒ»¸öÔªËØµÄÄÚÈÝÖУ¬×Ö·ûÊý¾Ý¿ÉÒÔÊDz»°üÀ¨Èκαê¼ÇµÄÆðʼ¶¨½ç·ûµÄÈÎÒâ×Ö·û´®¡£ÔÚÒ»¸ö CDATA ¶ÎÖУ¬×Ö·ûÊý¾Ý¿ÉÒÔÊDz»°üÀ¨ CDATA ¶Î½áÊø¶¨½ç·û"]]>"µÄÈÎÒâ×Ö·û´®¡£
ΪÁËÔÊÐíÔÚÊôÐÔÖµÖаüº¬µ¥ÒýºÅºÍË«ÒýºÅ£¬Ê¡ÂÔ·û»ò³Æµ¥ÒýºÅ£¨'£©¿ÉÒÔ±»±íʾΪ"'"£¬¶øË«ÒýºÅ£¨"£©¿ÉÒÔ±»±íʾΪ"""¡£
| [14] | CharData |
::= | [^<&]* - ([^<&]* ']]>'
[^<&]*) |
[¶¨Ò壺עÊÍ¿ÉÒÔÔÚÆäËû±ê¼ÇÖ®ÍâµÄÎļþÖеÄÈκÎλÖóöÏÖ¡£ÁíÍ⣬ËüÃÇ¿ÉÒÔÔÚÎļþÀàÐÍÉùÃ÷ÖÐÎÄ·¨ÔÊÐíµÄµØ·½³öÏÖ¡£ËüÃDz»ÊÇÎļþ×Ö·ûÊý¾ÝµÄÒ»²¿·Ö£¬XML ´¦ÀíÆ÷¿ÉÒÔ£¬µ«²»ÊDZØÐ룬ÔÊÐíÒ»¸öÓ¦ÓüìË÷×¢Ê͵ÄÎı¾¡£³öÓÚ¼æÈÝÐÔ¿¼ÂÇ£¬×Ö·û´®"--"£¨Ë«Á¬×Ö·û£©²»ÄÜÔÚ×¢ÊÍÖгöÏÖ¡£] ×¢ÊÍÖеIJÎÊýʵÌå²»±»Ê¶±ð¡£
| [15] | Comment |
::= | '<!--' ((Char - '-')
| ('-' (Char -
'-')))* '-->' |
×¢Ê͵ÄÒ»¸öÀý×Ó£º
<!-- declarations for <head> & <body> --> |
×¢Ò⣬´ËÎÄ·¨²»ÔÊÐí×¢ÊÍÒÔ ---> ½áβ¡£ÏÂÃæµÄÀý×Ó²»ÊǸñʽÕýÈ·µÄ¡£
<!-- B+, B, or B---> |
[¶¨Ò壺´¦ÀíÖ¸ÁPI£©ÔÊÐíÎļþÖаüº¬ÓÉÓ¦ÓÃÀ´´¦ÀíµÄÖ¸Áî¡£]
| [16] | PI |
::= | '<?' PITarget
(S (Char* - (Char*
'?>' Char*)))?
'?>' |
| [17] | PITarget |
::= | Name - (('X'
| 'x') ('M' | 'm') ('L' | 'l')) |
PI ²»ÊÇÎļþ×Ö·ûÊý¾ÝµÄÒ»²¿·Ö£¬µ«±ØÐë´«µÝ¸øÓ¦Óá£PI ÒÔÓÃÓÚָʾ´«µÝ¸øÄĸöÓ¦ÓõÄÄ¿±ê£¨PITarget£©¿ªÍ·¡£Ä¿±êÃû×Ö "XML"£¬"xml"£¬µÈµÈ£¬±£ÁôÓÃÓÚ±¾¹æ·¶µÄ´Ë°æ±¾»òºóÐø°æ±¾µÄ±ê×¼»¯¡£XML ¼Ç·¨»úÖÆ¿ÉÒÔÓÃÓÚ PI Ä¿±êµÄÐÎʽ»¯ÉùÃ÷¡£²ÎÊýʵÌåÔÚ´¦ÀíÖ¸ÁîÖв»±»Ê¶±ð¡£
[¶¨Ò壺CDATA ¶Î¿ÉÒÔ³öÏÖÔÚ×Ö·ûÊý¾Ý¿ÉÒÔ³öÏÖµÄÈκεط½£¬ËüÃÇÓÃÓÚתÒå°üº¬»á±»Ê¶±ðΪ±ê¼ÇµÄ×Ö·û´®µÄÎı¾¿é¡£CDATA ¶ÎÒÔ×Ö·û´® "<![CDATA[" ¿ªÊ¼£¬ÒÔ×Ö·û´® "]]>" ½áÊø£º]
| [18] | CDSect |
::= | CDStart
CData CDEnd |
| [19] | CDStart |
::= | '<![CDATA[' |
| [20] | CData |
::= | (Char* - (Char*
']]>' Char*))
|
| [21] | CDEnd |
::= | ']]>' |
ÔÚÒ»¸ö CDATA ¶ÎÄÚ£¬Ö»ÓÐ CDEnd ×Ö·û´®±»Ê¶±ðΪ±ê¼Ç£¬Òò´Ë×ó¼âÀ¨ºÅºÍ"&"¿ÉÒÔÒÔËüÃǵij£Á¿ÐÎʽ³öÏÖ£¬²»ÐèÒª£¨Ò²²»ÄÜ£©±»»»ÂëΪ"<"ºÍ"&"¡£CDATA ¶Î²»ÄÜǶÌס£
Ò»¸ö CDATA ¶ÎµÄÀý×Ó£¬ÆäÖÐ"<greeting>"ºÍ"</greeting>"±»Ê¶±ðΪ×Ö·ûÊý¾Ý£¬¶ø²»ÊDZê¼Ç£º
<![CDATA[<greeting>Hello, world!</greeting>]]> |
[¶¨Ò壺XML ÎļþÓ¦¸ÃÒÔÒ»¸ö XML ÉùÃ÷¿ªÊ¼£¬ÆäÖÐÖ¸Ã÷ÁËËùÓà XML µÄ°æ±¾¡£] ÀýÈ磬ÒÔÏÂÊÇÒ»¸öÍêÕûµÄ XML Îļþ£¬ËüÊǸñʽÕýÈ·µÄ£¬µ«²»ÊÇÓÐЧµÄ£º
<?xml version="1.0"?> |
ÏÂÃæÕâ¸öҲͬÑù£º
<greeting>Hello, world!</greeting> |
°æ±¾ºÅ "1.0" Ó¦¸ÃÓÃÓÚ±íÃ÷Óë±¾¹æ·¶µÄ±¾°æ±¾ÏàÒ»Ö£¬Èç¹ûʹÓÃÁËÖµ "1.0" µ«ÓÖÓë±¾¹æ·¶µÄ±¾°æ±¾²»Ò»Ö£¬ÄÇôÕâÊÇÎļþµÄÒ»¸ö´íÎó¡£XML ¹¤×÷×é´òË㸳Óè±¾¹æ·¶µÄºóÐø°æ±¾²»Í¬ÓÚ "1.0" µÄÊýÖµ£¬µ«Õâ²¢²»´ú±í¿ª·¢ºóÐø°æ±¾µÄ³Ðŵ£¬Ò²²»´ú±íÈç¹ûÓкóÐø°æ±¾£¬»áʹÓÃÈκÎÌØÊâµÄÃüÃû·½°¸µÄ³Ðŵ¡£ÒòΪ²»ÅųýÓкóÐø°æ±¾µÄ¿ÉÄÜÐÔ£¬ÌṩÁ˱¾¹¹Ô죨construct£©×÷Ϊһµ©ÐèҪʱ½øÐÐ×Ô¶¯°æ±¾Ê¶±ðµÄÊֶΡ£µ±´¦ÀíÆ÷ÊÕµ½µÄÎļþ±êÓÐËüÃDz»Ö§³ÖµÄ°æ±¾Ê±£¬¿ÉÒÔ¸ø³öÒ»¸ö´íÎó¡£
XML ÎļþÖбê¼ÇµÄ¹¦ÄÜÊÇÃèÊöÎļþµÄ´æ´¢¸ñʽºÍÂß¼½á¹¹£¬²¢½«ÊôÐÔ-Öµ¶ÔºÍÂß¼½á¹¹¹ØÁªÆðÀ´¡£XML ÌṩһÖÖ³ÆÎªÎļþÀàÐÍÉùÃ÷µÄ»úÖÆ£¬ÓÃÓÚ¶¨Òå¶ÔÂß¼½á¹¹µÄÔ¼Êø£¬Ö§³ÖÔ¤¶¨Òå´æ´¢µ¥ÔªµÄʹÓá£[¶¨Ò壺Èç¹ûÒ»¸ö XML ÎļþÓÐÏàÓ¦µÄÎļþÀàÐÍÉùÃ÷²¢ÇÒËü×ñÑÆäÖеÄÔ¼Êø£¬Ôò³ÆËüÊÇÓÐЧµÄ£¨valid£©¡£]
ÎļþÀàÐÍÉùÃ÷±ØÐëλÓÚÎļþµÚÒ»¸öÔªËØÖ®Ç°¡£
| [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 |
::= | Comment |
PI | S |
[¶¨Ò壺XML ÎļþÀàÐÍÉùÃ÷°üº¬»òÖ¸Ïò±ê¼ÇÉùÃ÷£¬±ê¼ÇÉùÃ÷ÌṩijһÀàÎļþµÄÎÄ·¨¡£ÕâÖÖÎÄ·¨±»³ÆÎªÎļþÀàÐͶ¨Ò壨document type difinition£¬DTD£©¡£ÎļþÀàÐͶ¨Òå¿ÉÒÔÖ¸ÏòÒ»¸öÍⲿ×Ó¼¯£¨Ò»ÖÖÌØÊâÀàÐ͵ÄÍⲿʵÌ壩£¬»òÕß¿ÉÒÔÔÚÒ»¸öÄÚ²¿×Ó¼¯ÖÐÖ±½Ó°üº¬±ê¼ÇÉùÃ÷£¬»òÕßÁ½Õß¼æÓá£Ò»¸öÎļþµÄÎļþÀàÐͶ¨ÒåÓÉÕâÁ½¸ö×Ó¼¯ºÏÔÚÒ»Æð×é³É¡£]
[¶¨Ò壺±ê¼ÇÉùÃ÷¿ÉÒÔÊÇÔªËØÀàÐÍÉùÃ÷£¬ÊôÐÔ±íÉùÃ÷£¬ÊµÌåÉùÃ÷£¬»òÊǼǷ¨ÉùÃ÷¡£] ÕâЩÉùÃ÷¿ÉÒÔÈçÏÂÃæ¸ñʽÕýÈ·ÐÔºÍÓÐЧÐÔÔ¼ÊøÖÐËùÊö£¬È«²¿»ò²¿·ÖµØ°üº¬ÔÚ²ÎÊýʵÌåÖУ¬"4. ÎïÀí½á¹¹"ÖÐÓиü¶àµÄÐÅÏ¢¡£
| [28] | doctypedecl |
::= | '<!DOCTYPE' S Name (S ExternalID)?
S? ('[' (markupdecl
| DeclSep)*
']' S?)?
'>' |
[VC: ¸ùÔªËØÀàÐÍ] |
| [WFC: Íⲿ×Ó¼¯] | ||||
| /* */ | ||||
| [28a] | DeclSep |
::= | PEReference
| S |
[WFC: ÉùÃ÷¼äµÄ²ÎÊýʵÌå] |
| /* */ | ||||
| [29] | markupdecl |
::= | elementdecl
| AttlistDecl
| EntityDecl
| NotationDecl
| PI | Comment
|
[VC: ÑϸñµÄÉùÃ÷/²ÎÊýʵÌåǶÌ×] |
| [WFC: ÄÚ²¿×Ó¼¯ÖеIJÎÊýʵÌå] |
×¢Ò⣬Ҫ¹¹½¨°üº¬ÁËÒ»¸ö¼È²»Ö¸ÏòÍⲿ×Ó¼¯Ò²²»°üº¬ÄÚ²¿×Ó¼¯µÄ doctypedecl ¶ø¸ñʽÕýÈ·µÄÎļþÊÇ¿ÉÄܵġ£
±ê¼ÇÉùÃ÷¿ÉÒÔÈ«²¿»ò²¿·ÖµØÓɲÎÊýʵÌåµÄÖû»Îı¾×é³É¡£±¾¹æ·¶ºóÃæµÄ¸÷¸ö·ÇÖÕ½á·û£¨elementdecl£¬AttlistDecl£¬µÈµÈ£©²úÉúʽÃèÊöµÄÊÇÔÚËùÓеIJÎÊýʵÌå±»°üº¬£¨include£©Ö®ºóµÄÉùÃ÷¡£
³ýÁËÔÚ³£Á¿£¬´¦ÀíÖ¸ÁעÊͺͱ»ºöÂÔµÄÌõ¼þ¶ÎµÄÄÚÈÝÖгöÏֵIJÎÊýʵÌåÒýÓÃÒÔÍ⣬DTD ÖÐµÄÆäËûÈκεط½£¨ÄÚ²¿»òÍⲿ×Ó¼¯ÒÔ¼°Íⲿ²ÎÊýʵÌ壩µÄ²ÎÊýʵÌåÒýÓö¼±»Ê¶±ð£¨¼û 3.4 Ìõ¼þ¶Î£©¡£ÔÚʵÌåÖµ³£Á¿ÖеIJÎÊýʵÌåÒýÓÃÒ²±»Ê¶±ð¡£ÄÚ²¿×Ó¼¯ÖвÎÊýʵÌåÒýÓõÄʹÓÃÏÞÖÆÈçÏÂËùÊö¡£
ÓÐЧÐÔÔ¼Êø: ÑϸñµÄÉùÃ÷/²ÎÊýʵÌåǶÌ×
²ÎÊýʵÌåµÄÖû»Îı¾±ØÐëÓñê¼ÇÉùÃ÷ÑϸñǶÌס£¼´£¬Èç¹ûÒ»¸ö±ê¼ÇÉùÃ÷£¨ÉÏÃæµÄ markupdecl£©µÄµÚÒ»¸ö»ò×îºóÒ»¸ö×Ö·û±»°üº¬ÓÚÒ»¸ö²ÎÊýʵÌåÒýÓõÄÖû»Îı¾ÖУ¬Á½Õß±ØÐë¶¼ÔÚ´ËÖû»Îı¾ÖС£
¸ñʽÕýÈ·ÐÔÔ¼Êø: ÄÚ²¿×Ó¼¯ÖеIJÎÊýʵÌå
ÔÚÄÚ²¿ DTD ×Ó¼¯ÖУ¬²ÎÊýʵÌåÒýÓÃÖ»ÄܳöÏÖÔÚ±ê¼ÇÉùÃ÷¿ÉÒÔ³öÏֵĵط½£¬¶ø²»ÄÜÔÚ±ê¼ÇÉùÃ÷ÄÚ²¿³öÏÖ¡££¨Õâ¸öÔ¼Êø²»ÊÊÓÃÓÚ³öÏÖÔÚÍⲿ²ÎÊýʵÌåÄÚµÄÒýÓã¬Ò²²»ÊÊÓÃÓÚÍⲿ×Ó¼¯¡££©
Íⲿ×Ó¼¯£¨Èç¹ûÓеϰ£©±ØÐëÆ¥Åä²úÉúʽ extSubset¡£
¸ñʽÕýÈ·ÐÔÔ¼Êø: ÉùÃ÷¼äµÄ²ÎÊýʵÌå
Ò»¸ö DeclSep ÄڵIJÎÊýʵÌåÒýÓõÄÖû»Îı¾±ØÐëÆ¥Åä²úÉúʽ extSubsetDecl¡£
ͬÄÚ²¿×Ó¼¯Ò»Ñù£¬Íⲿ×Ó¼¯ºÍÈκΠDeclSep ÖÐÒýÓõÄÍⲿ²ÎÊýʵÌ壬±ØÐëÓÉһϵÁб»·ÇÖÕ½á·û markupdecl ËùÔÊÐíµÄÍêÕûµÄ±ê¼ÇÉùÃ÷×é³É£¬ÆäÖпÉÒÔ¼ÐÔÓ¿Õ°××Ö·û»ò²ÎÊýʵÌåÒýÓᣵ«ÊÇ£¬Íⲿ×Ó¼¯ºÍÍⲿ²ÎÊýʵÌåµÄ²¿·ÖÄÚÈÝ¿ÉÒÔͨ¹ýʹÓÃÌõ¼þ¶Î£¨conditional
section£©±»ÓÐÌõ¼þµØºöÂÔ£¬ÔÚÄÚ²¿×Ó¼¯ÖÐÔò²»ÔÊÐíÕâô×ö¡£
| [30] | extSubset |
::= | TextDecl?
extSubsetDecl | |
| [31] | extSubsetDecl |
::= | ( markupdecl
| conditionalSect
| DeclSep)* |
/* */ |
Íⲿ×Ó¼¯ºÍÍⲿ²ÎÊýʵÌåÓëÄÚ²¿ÊµÌ岻֮ͬ´¦»¹ÔÚÓÚ£ºÔÚËüÃÇÄÚ£¬²ÎÊýʵÌåÒýÓò»½ö¿ÉÒÔ³öÏÖÔÚ±ê¼ÇÉùÃ÷¼ä£¬»¹¿ÉÒÔ³öÏÖÔÚ±ê¼ÇÉùÃ÷ÄÚ¡£
ÓÐÎļþÀàÐÍÉùÃ÷µÄ XML ÎļþµÄÀý×Ó£º
<?xml version="1.0"?> |
ϵͳ±êʶ·û "hello.dtd" ¸ø³öÁË´ËÎļþµÄ DTD µÄµØÖ·£¨Ò»¸ö URI ÒýÓã©¡£
ÉùÃ÷Ò²¿ÉÒÔÈçͬÏÂÃæÕâ¸öÀý×ÓÒ»ÑùÖ±½Ó£¨locally£©¸ø³ö£º
<?xml version="1.0" encoding="UTF-8" ?> |
Èç¹ûͬʱʹÓÃÍⲿºÍÄÚ²¿×Ó¼¯£¬×Ó¼¯×Ó¼¯±»¿´³É³öÏÖÔÚÍⲿ×Ó¼¯Ö®Ç°£¬ÕâÒâζ×ÅÄÚ²¿×Ó¼¯ÖеÄʵÌåºÍÊôÐÔ±íÉùÃ÷µÄÓÅÏȼ¶Òª±ÈÔÚÍⲿ×Ó¼¯Öеĸߡ£
µ±Îļþ´Ó XML ´¦ÀíÆ÷µÝ¸øÓ¦ÓÃʱ£¬±ê¼ÇÉùÃ÷¿ÉÒÔÓ°ÏìËüµÄÄÚÈÝ£¬ÊôÐÔȱʡֵºÍʵÌåÉùÃ÷ÊÇÆäÖеÄÀý×Ó¡£¿ÉÒÔ×÷Ϊ XML ÉùÃ÷Ò»¸ö³É·ÖµÄ¶ÀÁ¢ÎļþÉùÃ÷£¬Ö¸Ã÷ÁËÊÇ·ñ´æÔÚ×ÅÔÚÎļþʵÌåÍâ»òÔÚ²ÎÊýʵÌåÖеÄÉùÃ÷¡£[¶¨Ò壺Íⲿ±ê¼ÇÉùÃ÷±»¶¨ÒåΪ³öÏÖÔÚÍⲿ×Ó¼¯»ò²ÎÊýʵÌ壨Íⲿ»òÄÚ²¿£¬°üÀ¨ÄÚ²¿²ÎÊýʵÌåÊÇÒòΪ²¢²»Ç¿ÖƲ»½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷¶ÁÈ¡ÆäÖеıê¼ÇÉùÃ÷£©Öеıê¼ÇÉùÃ÷¡£]
| [32] | SDDecl |
::= | S
'standalone' Eq (("'"
('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) |
[VC: ¶ÀÁ¢ÎļþÉùÃ÷] |
ÔÚÒ»¸ö¶ÀÁ¢ÎļþÉùÃ÷ÖУ¬Öµ "yes" ±íʾ¶ÔÓÚÎļþʵÌåûÓÐÍⲿ±ê¼ÇÉùÃ÷£¨²»ÂÛÊÇÔÚ DTD Íⲿ×Ó¼¯ÖУ¬»¹ÊÇÔÚÓÉÄÚ²¿ÊµÌåÒýÓõÄÍⲿ²ÎÊýʵÌåÖУ©»áÓ°Ïì´Ó XML ´¦ÀíÆ÷´«µÝ¸øÓ¦ÓõÄÐÅÏ¢¡£Öµ "no" ±íʾÓлò¿ÉÄÜÓÐÕâÑùµÄÍⲿ±ê¼ÇÉùÃ÷¡£×¢Ò⣬¶ÀÁ¢ÎļþÉùÃ÷Ö»ÊDZíʾÍⲿÉùÃ÷µÄ´æÔÚ£¬Èç¹ûÎļþÖдæÔÚ¶ÔÍⲿʵÌåµÄÒýÓ㬶øÕâЩʵÌåÒÑÔÚÄÚ²¿ÉùÃ÷ʱ£¬²»Ó°ÏìËüµÄ¶ÀÁ¢×´Ì¬¡£
Èç¹û²»´æÔÚÍⲿ±ê¼ÇÉùÃ÷£¬¶ÀÁ¢ÎļþÉùÃ÷ûÓÐÒâÒå¡£Èç¹û´æÔÚÍⲿ±ê¼ÇÉùÃ÷£¬µ«Ã»ÓжÀÁ¢ÎļþÉùÃ÷£¬¾Í¼Ù¶¨È¡Öµ "no"¡£
Ä³Ð©ÍøÂç´«ÊäÓ¦ÓÃÒ²ÐíÐèÒª¶ÀÁ¢µÄÎļþ£¬ÈκÎÂú×ã standalone="no" µÄ XML Îļþ¿ÉÒÔͨ¹ýÒ»¶¨µÄË㷨ת»»Îª¶ÀÁ¢Îļþ¡£
ÓÐЧÐÔÔ¼Êø: ¶ÀÁ¢ÎļþÉùÃ÷
¶ÀÁ¢ÎļþÉùÃ÷±ØÐëȡֵΪ "no"£¬Èç¹ûÈκÎÍⲿ±ê¼ÇÉùÃ÷Öаüº¬£º
amp£¬lt£¬gt£¬apos£¬quot ÍâµÄ£©ÊµÌåµÄÉùÃ÷£¬¶ø¶ÔÕâЩʵÌåµÄÒýÓóöÏÖÔÚÎļþÖеϰ¡£¾ßÓжÀÁ¢ÎļþÉùÃ÷µÄ XML ÉùÃ÷µÄÀý×Ó£º
<?xml version="1.0" standalone='yes'?> |
Ôڱ༠XML Îļþʱ£¬Ê¹ÓÃ"¿Õ°×"£¨¿Õ¸ñ£¬ÖƱí·û£¬¿ÕÐУ©À´·Ö¿ª±ê¼ÇÒÔ»ñµÃ¸üºÃµÄ¿É¶ÁÐÔÊǺܷ½±ãµÄ¡£Í¨³£ÔÚÎļþµÄ½»¸¶°æ±¾Öв»Ïë°üº¬ÕâЩ¿Õ°×¡£ÁíÒ»·½Ã棬±ØÐë±£ÁôÔÚ½»¸¶°æ±¾ÖеÄÓÐÒâÒåµÄ¿Õ°×ÊǺܳ£¼ûµÄ£¬ÈçÔÚÊ«¸èºÍÔ´ÂëÖеĿհס£
XML ´¦ÀíÆ÷±ØÐëʼÖհѲ»ÊDZê¼ÇµÄËùÓÐ×Ö·û´«µÝ¸øÓ¦Óᣠһ¸ö½øÐÐÑéÖ¤µÄ XML ´¦ÀíÆ÷±ØÐëͬʱ֪ͨӦÓÃÕâЩ×Ö·ûÖеÄÄÇһЩ×é³ÉÁ˳öÏÖÔÚÔªËØÐÍÄÚÈÝÖеĿհס£
¿ÉÒÔÔÚÔªËØÖи½¼ÓÒ»¸öÃûΪ xml:space µÄÌØÊâÊôÐÔ£¬ÒÔ֪ͨӦÓÃÓ¦¸Ã±£Áô´ËÔªËØÖеĿհס£ÔÚÓÐЧµÄÎļþÖУ¬´ËÊôÐÔºÍÆäËûÊôÐÔÒ»Ñù£¬Ê¹ÓÃʱ±ØÐëÉùÃ÷¡£Ëü±ØÐë±»ÉùÃ÷Ϊö¾ÙÀàÐÍ£¬¿ÉÒÔȡֵ "default" ºÍ "preserve" Á½ÕßÖ®Ò»£¬Ò²¿ÉÒÔÁ½¸ö¶¼È¡¡£ÀýÈ磺
<!ATTLIST poem xml:space (default|preserve) 'preserve'> <!-- --> <!ATTLIST pre xml:space (preserve) #FIXED 'preserve'> |
"default" ±íʾ¿ÉÒÔ¶Ô´ËÔªËØÊ¹ÓÃÓ¦ÓõÄȱʡ¿Õ°×´¦Àíģʽ£¬"preserve" ±íʾӦÓÃÓ¦¸Ã±£ÁôËùÓеĿհס£ÕâÊÊÓÃÓÚÆäËù´¦ÔªËصÄÄÚÈÝÖеÄËùÓÐÔªËØ£¬³ý·Ç±»ÁíÒ»¸ö xml:space ÊôÐÔµÄʵÀýËù¸²¸Ç¡£
ÈκÎÎļþµÄ¸ùÔªËØ±»ÈÏΪ¶ÔÓ¦ÓõĿհ״¦Àí·½Ê½²»×÷ÒªÇ󣬳ý·ÇËü¸ø´ËÊôÐÔ¸³ÁËÖµ»ò½«´ËÊôÐÔÉùÃ÷Ϊ´øÈ±Ê¡Öµ¡£
Ϊ±à¼µÄ·½±ãÆð¼û£¬´æ´¢ XML ÒÑÎöʵÌåµÄ¼ÆËã»úÎļþ¾³£ÓÃÐÐÀ´×éÖ¯¡£Í¨³£ÕâЩÐÐÓûسµ·û£¨#xD£©ºÍ»»Ðзû£¨#xA£©µÄһЩ×éºÏÀ´·Ö¸ô¡£
ΪÁËʹӦÓõŤ×÷¼òµ¥»¯£¬XML ´¦ÀíÆ÷Ó¦ÔÚ½«×Ö·û´«¸øÓ¦ÓÃǰ£¬½«ÍⲿÒÑÎöʵÌ壨°üÀ¨ÎļþʵÌ壩ÖеÄÁ½×Ö·ûÐòÁÐ "#xD#xA" »òûÓÐÎ²Ëæ #xA µÄ #xD ÔÚ½øÐÐÓï·¨·ÖÎöǰת»»³Éµ¥¸ö #xA ×Ö·û¡£ÔÚ½øÐÐÎļþ´¦Àíʱ£¬±êʶ³öÆäÄÚÈÝËùʹÓõÄ×ÔÈ»»òÐÎʽ»¯ÓïÑÔ¾³£ÊǺÜÓÐÓõġ£¿ÉÒÔÔÚÎļþÖвåÈëÒ»¸öÃûΪ xml:lang µÄÌØÊâÊôÐÔÓÃÓÚÖ¸³ö XML ÎļþÖÐÈκÎÔªËØµÄÄÚÈݺÍÊôÐÔËùʹÓõÄÓïÑÔ¡£ÔÚÓÐЧµÄÎļþÖУ¬´ËÊôÐÔºÍÆäËûÊôÐÔÒ»Ñù£¬Ê¹ÓÃʱ±ØÐëÉùÃ÷¡£´ËÊôÐÔµÄÖµÊÇ [IETF RFC 1766]£¬Tags for the Identification of Languages »òÆäºóµÄ ITEF ±ê×¼Öж¨ÒåµÄÓïÑÔ±êʶ·û¡£
×¢£º
[IETF RFC 1766] ÖеıêÇ©ÓÉ [ISO 639] Öж¨ÒåµÄÁ½×ÖĸÓïÑÔÂëºÍ [ISO 3166] Öж¨ÒåµÄÁ½×Öĸ¹ú¼ÒÂë¹¹³É£¬»òÕßÓÉ Internet Assigned Numbers Authority [IANA-LANGCODES] ×¢²áµÄÓïÑÔ±êʶ·û¹¹³É¡£ Ô¤¼Æ [IETF RFC 1766] µÄºó¼Ì±ê×¼½«»áÒýÈëÈý×ÖĸÓïÑÔÂëÓÃÓÚ±íʾ [ISO 639] ÖÐûÓÐÉæ¼°µÄÓïÑÔ¡£
£¨²úÉúʽ 33 µ½ 38 Òѱ»É¾³ý¡££©
¾ÙÀýÈçÏ£º
<p xml:lang="en">The quick brown fox jumps over the lazy dog.</p> |
xml:lang Ëù±íʾµÄÓïÑÔÑ¡ÔñÊÊÓÃÓÚËüËù´¦ÔªËصÄËùÓÐÊôÐÔºÍÄÚÈÝ£¬³ý·Ç±»´ËÄÚÈÝÖеÄÔªËØÄÚµÄÁíÒ»¸ö xml:lang µÄʵÀýËù¸²¸Ç¡£
xml:lang µÄÒ»¸ö¼òµ¥ÉùÃ÷¿ÉÒÔ²ÉÓÃÈçÏÂÐÎʽ£º
xml:lang NMTOKEN #IMPLIED |
µ«ÊÇÈç¹ûºÏÊʵϰ£¬Ò²¿ÉÒÔ¸ø³öÌØ¶¨µÄȱʡֵ¡£ÔÚÒ»±¾¹©Ó¢¹úѧÉúʹÓõķ¨ÎÄÊ«¸è¼¯ÖУ¬ÆÀ×¢ºÍ×¢½âʹÓÃÓ¢Óxml:lang ÊôÐÔ¿ÉÒÔÕâÑùÉùÃ÷£º
<!ATTLIST poem xml:lang NMTOKEN 'fr'> |
[¶¨Ò壺ÿ¸ö XML Îļþ°üº¬Ò»¸ö»ò¶à¸öÔªËØ£¬ËüÃǵı߽çÓÃÆðʼ±êÇ©ºÍ½áÊø±êÇ©·Ö¸ô£¬»òÕߣ¬¶ÔÓÚ¿ÕÔªËØ£¬ÓÃÒ»¸ö¿ÕÔªËØ±êÇ©·Ö¸ô¡£Ã¿Ò»¸öÔªËØÓÐÒ»¸öÓÃÃû×Ö±êʶµÄÀàÐÍ£¬ÓÐʱ³ÆÖ®ÎªËüµÄ"ͨÓñêʶ·û£¨generic identifier£©"£¨GI£©£¬Í¬Ê±Ëü¿ÉÒÔÓÐÒ»¸öÊôÐÔֵ˵Ã÷£¨attribute specification£©¼¯¡£] ÿһ¸öÊôÐÔֵ˵Ã÷ÓÐÒ»¸öÃû×ÖºÍÒ»¸öÖµ¡£
| [39] | element |
::= | EmptyElemTag | |
| STag content
ETag |
[WFC: ÔªËØÀàÐÍÆ¥Åä] | |||
| [VC: ÔªËØÓÐЧÐÔ] |
³ýÁËÄÇЩ¿ªÍ·Æ¥Åä(('X'|'x')('M'|'m')('L'|'l'))µÄÃû×Ö±£ÁôÓÃÓÚ±¾¹æ·¶µÄ´Ë°æ±¾ºÍºó¼Ì°æ±¾µÄ±ê×¼»¯Í⣬±¾¹æ·¶²»¶ÔÔªËØÀàÐͺÍÊôÐÔµÄÓïÒ壬Ó÷¨ºÍÃû×Ö£¨Óï·¨Ö®Í⣩×÷³öÏÞÖÆ¡£
¸ñʽÕýÈ·ÐÔÔ¼Êø: ÔªËØÀàÐÍÆ¥Åä
ÔªËØ½áÊø±êÇ©ÖÐµÄ Name ±ØÐëºÍÆðʼ±êÇ©ÖеÄÔªËØÀàÐÍÏàÆ¥Åä¡£
ÓÐЧÐÔÔ¼Êø: ÔªËØÓÐЧÐÔ
Èç¹ûÓÐÒ»¸öÓë elementdecl ÏàÆ¥ÅäµÄÉùÃ÷µÄ Name ÓëÔªËØÀàÐÍÏàÆ¥Å䣬ÇÒÏÂÊöÖ®Ò»³ÉÁ¢Ê±£¬³Æ´ËÔªËØÊÇÓÐЧµÄ£º
children ÏàÆ¥Å䣬ͬʱ×ÓÔªËØµÄÐòÁÐÊôÓÚÄÚÈÝÄ£ÐÍÖеÄÕýÔò±í´ïʽËù²úÉúµÄÓïÑÔ£¬ÔÚÆðʼ±êÇ©ºÍµÚÒ»¸ö×ÓÔªËØÖ®¼ä£¬×ÓÔªËØÖ®¼äÒÔ¼°×îºóÒ»¸ö×ÓÔªËØºÍ½áÊø±êǩ֮¼äÔÊÐíÓпհף¨Æ¥Åä·ÇÖÕ½á·û S µÄ×Ö·û£©¡£×¢Ò⣬½ö°üÀ¨¿Õ°×µÄ CDATA ¶Î²»Æ¥Åä·ÇÖÕ½á·û S£¬Òò´Ë²»ÄÜÔÚÕâЩλÖóöÏÖ¡£ Mixed ÏàÆ¥Å䣬ͬʱÄÚÈÝÓÉÆäÀàÐÍÆ¥ÅäÄÚÈÝÄ£ÐÍÖеÄÃû×ÖµÄ×Ö·ûÊý¾ÝºÍ×ÓÔªËØ×é³É¡£[¶¨Ò壺ÿһ¸ö·Ç¿Õ XML ÔªËØÒÔÒ»¸öÆðʼ±êÇ©×÷Ϊ¿ªÊ¼µÄ±ê¼Ç¡£]
| [40] | STag |
::= | '<' Name (S Attribute)*
S?
'>' |
[WFC: ΨһµÄÊôÐÔֵ˵Ã÷] |
| [41] | Attribute |
::= | Name Eq AttValue |
[VC: ÊôÐÔÖµÀàÐÍ] |
| [WFC: ÎÞÍⲿʵÌåÒýÓÃ] | ||||
| [WFC: ÔÚÊôÐÔÖµÖÐûÓÐ<] |
Æðʼ±êÇ©ºÍ½áÊø±êÇ©ÖÐµÄ Name ¸ø³öÁËÔªËØµÄÀàÐÍ¡£[¶¨Ò壺Name-AttValue ¶Ô±»Í³³ÆÎªÔªËصÄÊôÐÔֵ˵Ã÷]£¬[¶¨Ò壺ÆäÖÐÿһ¶ÔÖÐµÄ Name ±»³ÆÎªÊôÐÔÃû]£¬[¶¨Ò壺AttValue µÄÄÚÈÝ£¨ÔÚ'»ò"¶¨½ç·û¼äµÄÎı¾£©±»³ÆÎªÊôÐÔÖµ]¡£×¢Ò⣬ÔÚÆðʼ±êÇ©ºÍ¿ÕÔªËØ±êÇ©Öи÷¸öÊôÐÔÖµÉùÃ÷µÄ´ÎÐòûÓÐÒâÒå¡£
¸ñʽÕýÈ·ÐÔÔ¼Êø: ΨһµÄÊôÐÔֵ˵Ã÷
Ò»¸öÊôÐÔÃûÖ»ÄÜÔÚͬһ¸öÆðʼ±êÇ©»ò¿ÕÔªËØ±êÇ©ÖгöÏÖÒ»´Î¡£
ÓÐЧÐÔÔ¼Êø: ÊôÐÔÖµÀàÐÍ
ÊôÐÔ±ØÐë±»ÉùÃ÷£¬ÆäÖµ±ØÐë¾ßÓÐËùÉùÃ÷µÄÀàÐÍ¡££¨ÊôÐÔÀàÐͲμû"3.3 ÊôÐÔ±íÉùÃ÷"¡££©
¸ñʽÕýÈ·ÐÔÔ¼Êø: ÎÞÍⲿʵÌåÒýÓÃ
ÊôÐÔÖµ²»Äܰüº¬¶ÔÍⲿʵÌåÖ±½Ó»ò¼ä½ÓµÄʵÌåÒýÓá£
¸ñʽÕýÈ·ÐÔÔ¼Êø: ÔÚÊôÐÔÖµÖÐûÓÐ <
ÔÚÒ»¸öÊôÐÔÖµÖÐÖ±½Ó»ò¼ä½ÓÒýÓõÄʵÌåµÄÖû»Îı¾²»Äܰüº¬ < ¡£
Æðʼ±êÇ©µÄÒ»¸öÀý×Ó£º
<termdef id="dt-dog" term="dog"> |
[¶¨Ò壺ÓÉÒ»¸öÆðʼ±êÇ©¿ªÊ¼µÄÿһ¸öÔªËØ±ØÐëÓÃÒ»¸ö½áÊø±êÇ©±ê¼ÇÆä½áÊø£¬½áÊø±êÇ©ÖеÄÃû×Ö±ØÐëÓëÆðʼ±êÇ©Öиø³öµÄÔªËØÀàÐÍÏàͬ£º]
| [42] | ETag |
::= | '</' Name S?
'>' |
½áÊø±êÇ©µÄÒ»¸öÀý×Ó£º
</termdef> |
[¶¨Ò壺ÔÚÆðʼ±êÇ©ºÍ½áÊø±êÇ©ÖеÄÎı¾±»³ÆÎªÔªËصÄÄÚÈÝ£º]
| [43] | content |
::= | CharData?
((element |
Reference
| CDSect |
PI | Comment)
CharData?)* |
/* */ |
[¶¨Ò壺³ÆÃ»ÓÐÄÚÈݵÄÔªËØÆäÄÚÈÝΪ¿Õ¡£] ¿ÕÔªËØ¿ÉÒÔÓÃÒ»¸öÆðʼ±êÇ©½ô¸úÒ»¸ö½áÊø±êÇ©µÄ·½Ê½»ò¿ÕÔªËØ±êÇ©À´±íʾ¡£[¶¨Ò壺¿ÕÔªËØ±êÇ©ÓÐÒ»ÖÖÌØÊâµÄÐÎʽ£º]
| [44] | EmptyElemTag |
::= | '<' Name (S Attribute)*
S?
'/>' |
[WFC: ΨһµÄÊôÐÔֵ˵Ã÷] |
²»ÂÛÔªËØÊÇ·ñÓùؼü×Ö EMPTY ÉùÃ÷£¬¿ÕÔªËØ±êÇ©¶¼¿ÉÒÔÓÃÓÚÈκÎûÓÐÄÚÈݵÄÔªËØ¡£³öÓÚ»¥²Ù×÷ÐÔ¿¼ÂÇ£¬¿ÕÔªËØÓ¦¸ÃÓÃÓÚ£¬ÇÒÖ»Ó¦ÓÃÓÚÉùÃ÷Ϊ EMPTY µÄÔªËØ¡£
¿ÕÔªËØµÄÀý×Ó£º
<IMG align="left" |
³öÓÚÑéÖ¤µÄÄ¿µÄ£¬¿ÉÒÔÓÃÔªËØÀàÐͺÍÊôÐÔ±íÉùÃ÷ÏÞÖÆ XML ÎļþÖÐÔªËØµÄ½á¹¹¡£ÔªËØÀàÐÍÉùÃ÷ÏÞÖÆÁËÔªËØµÄÄÚÈÝ¡£
ÔªËØÀàÐÍÉùÃ÷ͨ³£ÏÞÖÆÁË×ÓÔªËØµÄÀàÐÍ¡£ÓÉʹÓÃÕßÑ¡Ôñ£¬µ±ÉùÃ÷Ìáµ½µÄÔªËØÀàÐÍûÓÐÏàÓ¦µÄÉùÃ÷ʱ£¬XML ´¦ÀíÆ÷¿ÉÒÔ¸ø³ö¾¯¸æ£¬µ«Õâ²»ÊÇÒ»¸ö´íÎó¡£
[¶¨Òå£ºÔªËØÀàÐÍÉùÃ÷µÄÐÎʽÈçÏ£º]
| [45] | elementdecl |
::= | '<!ELEMENT' S Name S contentspec
S?
'>' |
[VC: ΨһµÄÔªËØÀàÐÍÉùÃ÷] |
| [46] | contentspec |
::= | 'EMPTY' | 'ANY' | Mixed | children
|
ÆäÖÐ Name ¸ø³öÁËËùÉùÃ÷µÄÔªËØÀàÐÍ¡£
ÓÐЧÐÔÔ¼Êø: ΨһµÄÔªËØÀàÐÍÉùÃ÷
ÔªËØÀàÐÍÖ»ÄÜÉùÃ÷Ò»´Î¡£
ÔªËØÀàÐÍÉùÃ÷µÄÀý×Ó£º
<!ELEMENT br EMPTY> |
[¶¨Ò壺µ±Ä³Ò»ÀàÐ͵ÄÔªËØÖ»Äܰüº¬ÓÿÉÑ¡¿Õ°×£¨Æ¥Åä·ÇÖÕ½á·û S£©·Ö¸ôµÄ×ÓÔªËØ£¨ÎÞ×Ö·ûÊý¾Ý£©Ê±£¬³Æ´ËÔªËØÀàÐ;ßÓÐÔªËØÐÍÄÚÈÝ¡£] [¶¨Ò壺ÔÚÕâÖÖÇé¿öÏ£¬ÓÐÄÚÈÝÄ£ÐÍ×÷ΪÀàÐÍÏÞÖÆÖ®Ò»£¬ÄÚÈÝÄ£ÐÍÊǾö¶¨×ÓÔªËØÀàÐͺÍ×ÓÔªËØ³öÏÖ˳ÐòµÄÒ»ÖÖ¼òµ¥ÎÄ·¨¡£] ´ËÎÄ·¨ÓÃÄÚÈÝÁ£×Ó£¨ cp £©¹¹½¨£¬ÄÚÈÝÁ£×ÓÓÉÃû×Ö£¬ÄÚÈÝÁ£×ÓµÄÑ¡Ôñ±í£¨choice list£©»òÄÚÈÝÁ£×ÓµÄÐòÁÐ±í£¨sequence list£©×é³É£º
| [47] | children |
::= | (choice |
seq) ('?'
| '*' | '+')? | |
| [48] | cp |
::= | (Name | choice |
seq) ('?'
| '*' | '+')? | |
| [49] | choice |
::= | '(' S? cp ( S? '|' S? cp )+ S?
')' |
/* */ |
| /* */ | ||||
| [VC: ÑϸñµÄ×é/²ÎÊýʵÌåǶÌ×] | ||||
| [50] | seq |
::= | '(' S? cp ( S? ',' S? cp )* S?
')' |
/* */ |
| [VC: ÑϸñµÄ×é/²ÎÊýʵÌåǶÌ×] |
ÆäÖÐÿһ¸ö Name ÊÇ¿ÉÒÔ×÷Ϊ×ÓÔªËØµÄÔªËØµÄÀàÐÍ¡£Ñ¡Ôñ±íÖгöÏÖµÄÈÎÒâÄÚÈÝÁ£×ÓÔÚÔªËØÐÍÄÚÈÝÖÐÔÊÐí³öÏÖµÄλÖöÔÓ¦ÓÚÑ¡Ôñ±íÔÚÎÄ·¨ÖеÄλÖá£ÐòÁбíÖгöÏÖµÄËùÓÐÄÚÈÝÁ£×Ó±ØÐëÒÔÏàͬµÄ˳Ðò³öÏÖÔÚÔªËØÐÍÄÚÈÝÖС£ÔÚÃû×Ö»ò±íÖ®ºóµÄ¿ÉÑ¡×Ö·û£¨optional character£©¾ö¶¨Á˱íÖÐÔªËØ»òÄÚÈÝÁ£×Ó¿ÉÒÔ³öÏÖÒ»´Î»ò¶à´Î£¨+£©£¬»¹ÊÇÁã´Î»ò¶à´Î£¨*£©£¬»òÊÇÁã´Î»òÒ»´Î£¨?£©¡£Ã»ÓÐÕâÑùÒ»¸ö²Ù×÷·ûÒâζ×ÅÔªËØ»òÄÚÈÝÁ£×Ó±ØÐëÇ¡ºÃ³öÏÖÒ»´Î¡£ÕâÖÖÓï·¨ºÍÒâÒåºÍ±¾¹æ·¶ÖеIJúÉúʽÖÐËùʹÓõÄÏàͬ¡£
µ±ÇÒ½öµ±Ò»¸öÔªËØµÄÄÚÈÝ¿ÉÒÔͨ¹ýÂú×ãÄÚÈÝÄ£ÐÍÖеÄÑ¡Ôñ£¬ÐòÁкÍÖØ¸´²Ù×÷·ûµÃµ½£¬²¢ÇÒÄÚÈÝÖеÄÿһ¸öÔªËØÓëÄÚÈÝÄ£ÐÍÖеÄÒ»ÖÖÔªËØÀàÐÍÏàÆ¥Åäʱ£¬³Æ´ËÔªËØµÄÄÚÈÝÓë¸ÃÄÚÈÝÄ£ÐÍÏàÆ¥Åä¡£³öÓÚ¼æÈÝÐÔ¿¼ÂÇ£¬ Èç¹ûÎļþµÄij¸öÔªËØ¿ÉÒÔºÍÄÚÈÝÄ£ÐÍÖеÄÒ»ÖÖÔªËØÀàÐͶà´ÎÆ¥Å䣬ÕâÊÇÒ»¸ö´íÎó¡£ ¸üÏêϸµÄÐÅÏ¢²Î¼û"E. È·¶¨ÐÍÄÚÈÝÄ£ÐÍ".
ÓÐЧÐÔÔ¼Êø: ÑϸñµÄ×é/²ÎÊýʵÌåǶÌ×
²ÎÊýʵÌåµÄÖû»Îı¾±ØÐëÓÉÀ¨ºÅÀ¨ÆðµÄ×éÑϸñǶÌס£¼´£¬Èç¹û choice£¬seq »ò Mixed Óï·¨³É·ÖµÄ¿ªÊ¼»ò½áÊøÀ¨ºÅ³öÏÖÔÚij¸ö²ÎÊýʵÌåµÄÖû»Îı¾ÖУ¬Á½Õß±ØÐëͬÔÚ´ËÖû»Îı¾ÖС£
³öÓÚ»¥²Ù×÷ÐÔ¿¼ÂÇ£¬Èç¹ûÒ»¸ö²ÎÊýʵÌåÒýÓóöÏÖÔÚchoice£¬seq»òMixedÓï·¨³É·ÖÖÐʱ£¬ËüµÄÖû»Îı¾ÖÁÉÙÓ¦¸Ã°üº¬Ò»¸ö·Ç¿Õ×Ö·û£¬Í¬Ê±ÆäÖû»Îı¾µÄµÚÒ»¸öºÍ×îºóÒ»¸ö·Ç¿Õ×Ö·û¶¼²»Ó¦ÎªÒ»¸öÁ¬½Ó·û£¨| »ò ,£©¡£
ÔªËØÐÍÄÚÈݵÄÄ£Ð;ÙÀý£º
<!ELEMENT spec (front, body, back?)> |
[¶¨Ò壺µ±Ä³ÔªËØÀàÐÍ¿ÉÒÔ°üº¬×Ö·ûÊý¾Ý£¬Æä¼ä¿ÉÒÔËæÒâ´©²å×ÓÔªËØÊ±£¬³Æ´ËÔªËØÀàÐ;ßÓлìºÏÐÍÄÚÈÝ¡£] ÔÚÕâÖÖÇé¿öÏ£¬¶Ô×ÓÔªËØµÄÀàÐÍ¿ÉÄÜÓÐËùÏÞÖÆ£¬µ«¶ÔËüÃǵĴÎÐòºÍ³öÏÖ´ÎÊýûÓÐÏÞÖÆ£º
| [51] | Mixed |
::= | '(' S? '#PCDATA'
(S? '|' S? Name)* S? ')*'
| |
| '(' S? '#PCDATA' S? ')'
|
[VC: ÑϸñµÄ×é/²ÎÊýʵÌåǶÌ×] | |||
| [VC: ÎÞÖØ¸´ÀàÐÍ] |
ÆäÖÐ Name ¸ø³öÁË×ÓÔªËØµÄÔªËØµÄÀàÐÍ¡£¹Ø¼ü×Ö #PCDATA À´×ÔÊõÓï"ÒÑÎö×Ö·ûÊý¾Ý£¨parsed character data£©"¶øÀ´
ÓÐЧÐÔÔ¼Êø: ÎÞÖØ¸´ÀàÐÍ
ͬһÃû×ÖÔÚµ¥¸ö»ìºÏÐÍÄÚÈÝÉùÃ÷ÖÐÖ»ÄܳöÏÖÒ»´Î¡£
»ìºÏÄÚÈÝÉùÃ÷µÄÀý×Ó£º
<!ELEMENT p (#PCDATA|a|ul|b|i|em)*> |
ÊôÐÔÓÃÓÚ¹ØÁªÃû×Ö-Öµ¶ÔºÍÔªËØ¡£ÊôÐÔֵ˵Ã÷Ö»ÄÜÔÚÆðʼ±êÇ©ºÍ¿ÕÔªËØ±êÇ©ÖгöÏÖ; Òò´Ë£¬ÓÃÓÚʶ±ðËüÃǵIJúÉúʽ³öÏÖÔÚ"3.1 Æðʼ±êÇ©£¬½áÊø±êÇ©ºÍ¿ÕÔªËØ±êÇ©"ÖС£ÊôÐÔ±íÉùÃ÷¿ÉÒÔÓÃÓÚ£º
[¶¨Ò壺ÊôÐÔ±íÉùÃ÷Ïêϸ˵Ã÷ÁËÓë¸ø¶¨ÔªËØÀàÐÍÏà¹ØÁªµÄÿһ¸öÊôÐÔµÄÃû×Ö£¬Êý¾ÝÀàÐͺÍȱʡֵ£¨Èç¹ûÓеϰ£©£º]
| [52] | AttlistDecl |
::= | '<!ATTLIST' S Name AttDef* S?
'>' |
| [53] | AttDef |
::= | S
Name S AttType
S DefaultDecl |
AttlistDecl ¹æÔòÖÐ Name ÊÇÔªËØµÄÀàÐÍ¡£ÓÉʹÓÃÕßÑ¡Ôñ£¬µ±ÊôÐÔÉùÃ÷Ïà¹ØµÄÔªËØÀàÐÍûÓб»ÉùÃ÷ʱ£¬XML ´¦ÀíÆ÷¿ÉÒÔ¸ø³öÒ»¸ö¾¯¸æ£¬µ«Õâ²»ÊÇÒ»¸ö´íÎó¡£AttDef ¹æÔòÖÐµÄ Name ÊÇÊôÐÔµÄÃû×Ö¡£
µ±Óëij¸ö¸ø¶¨ÔªËØÀàÐÍÏà¹ØµÄ AttlistDecl ³¬¹ýÒ»¸öʱ£¬ÕâЩÉùÃ÷ÖеÄÄÚÈݱ»ºÏ²¢ÔÚÒ»Æð¡£µ±¸ø¶¨ÔªËØÀàÐ͵Äij¸öÊôÐԵ͍Ò峬¹ýÒ»¸öʱ£¬°ó¶¨µÚÒ»¸ö¶¨Ò壬ÆäÓඨÒå±»ºöÂÔ¡£³öÓÚ»¥²Ù×÷ÐÔ¿¼ÂÇ£¬DTD µÄ×÷Õß¿ÉÒÔÕâÑù×ö£ºÒ»¸ö¸ø¶¨µÄÔªËØÀàÐÍÖÁ¶àÓÐÒ»¸öÊôÐÔ±íÉùÃ÷£¬Ò»¸öÊôÐÔ±íÖÐÒ»¸ö¸ø¶¨µÄÊôÐÔÃûÖÁ¶àÓÐÒ»¸öÊôÐÔ¶¨Ò壬ÿ¸öÊôÐÔ±íÉùÃ÷ÖÁÉÙÓÐÒ»¸öÊôÐÔ¶¨Òå¡£³öÓÚ»¥²Ù×÷ÐÔ¿¼ÂÇ£¬µ±Ò»¸ö¸ø¶¨ÔªËØÓг¬¹ýÒ»¸öµÄÊôÐÔ±íÉùÃ÷»òÒ»¸ö¸ø¶¨ÊôÐÔÓг¬¹ýÒ»¸öµÄÊôÐÔ¶¨Òåʱ£¬XML ´¦ÀíÆ÷¿ÉÒÔ£¬ÓÉʹÓÃÕßÑ¡Ôñ£¬¸ø³ö¾¯¸æ£¬µ«Õâ²»ÊÇÒ»¸ö´íÎó¡£
XML ÊôÐÔÓÐÈýÖÖÀàÐÍ£º×Ö·û´®ÀàÐÍ£¬Ò»×é¼ÇºÅ»¯ÀàÐͺÍö¾ÙÀàÐÍ¡£×Ö·û´®ÀàÐÍ¿ÉÒÔÒÔÈÎÒâ³£Á¿×Ö·û´®ÎªÖµ; ¸÷¸ö¼ÇºÅ»¯ÀàÐÍÓв»Í¬µÄ´Ê·¨ºÍÓïÒåÔ¼Êø¡£ÎÄ·¨ÖÐÖ¸³öµÄÓÐЧÐÔÔ¼ÊøÊÊÓÃÓÚÊôÐÔÖµÒѰ´ 3.3 ½Ú 3.3 ÊôÐÔ±íÉùÃ÷ÖÐËùÊö¹æ·¶»¯ÁËÖ®ºóµÄÇé¿ö¡£
| [54] | AttType |
::= | StringType
| TokenizedType
| EnumeratedType
| |
| [55] | StringType |
::= | 'CDATA' | |
| [56] | TokenizedType |
::= | 'ID' |
[VC: ID] |
| [VC: ÿÖÖÔªËØÀàÐÍÒ»¸ö ID] | ||||
| [VC: ID ÊôÐÔµÄȱʡֵ] | ||||
| 'IDREF' |
[VC: IDREF] | |||
| 'IDREFS' |
[VC: IDREF] | |||
| 'ENTITY' |
[VC: ʵÌåÃû] | |||
| 'ENTITIES' |
[VC: ʵÌåÃû] | |||
| 'NMTOKEN' |
[VC: Ãû×ּǺÅ] | |||
| 'NMTOKENS' |
[VC: Ãû×ּǺÅ] |
ÓÐЧÐÔÔ¼Êø: ID
ID ÀàÐ͵ÄÖµ±ØÐëÆ¥Åä Name ²úÉúʽ¡£×÷Ϊ´ËÀàÐÍÖµµÄÃû×ÖÖ»ÄÜÔÚ XML ÎļþÖгöÏÖÒ»´Î£»¼´£¬ID ÀàÐ͵ÄÖµ±ØÐëÄÜΨһ±êÊ¶ÔªËØ¡£
ÓÐЧÐÔÔ¼Êø: ÿÖÖÊôÐÔÀàÐÍÒ»¸öID
ÿÖÖÊôÐÔÀàÐÍÖ»ÄÜÓÐÒ»¸ö ID ÊôÐÔ¡£
ÓÐЧÐÔÔ¼Êø: ID ÊôÐÔµÄȱʡֵ
ID ÊôÐÔ±ØÐëÓÐÒ»¸öÉùÃ÷Ϊ #IMPLIED »ò #REQUIRED µÄȱʡֵ¡£
ÓÐЧÐÔÔ¼Êø: IDREF
IDREF ÀàÐ͵ÄÖµ±ØÐëÆ¥Åä Name ²úÉúʽ£¬IDREFS ÀàÐ͵ÄÖµ±ØÐëÆ¥Åä Names ²úÉúʽ£»Ã¿Ò»¸ö Name ±ØÐëÆ¥Åä XML ÎļþÖÐÄ³Ð©ÔªËØ ID ÊôÐÔµÄÖµ£»Ò²¾ÍÊÇ˵£¬IDREF ÀàÐ͵ÄÖµ±ØÐëÆ¥ÅäijЩ ID ÊôÐÔµÄÖµ¡£
ÓÐЧÐÔÔ¼Êø: ʵÌåÃû
ENTITY ÀàÐ͵ÄÖµ±ØÐëÆ¥Åä Name ²úÉúʽ£¬ENTITIES ÀàÐ͵ÄÖµ±ØÐëÆ¥Åä Names ²úÉúʽ£»
ÿһ¸ö Name ±ØÐëÆ¥Åä DTD ÖÐÉùÃ÷µÄδÎöʵÌåµÄÃû×Ö¡£
ÓÐЧÐÔÔ¼Êø: Ãû×ּǺÅ
NMTOKEN ÀàÐ͵ÄÖµ±ØÐëÆ¥Åä Nmtoken ²úÉúʽ£»NMTOKENS ÀàÐ͵ÄÖµ±ØÐëÆ¥Åä Nmtokens ²úÉúʽ¡£
[¶¨Ò壺ö¾ÙÀàÐ͵ÄÊôÐÔ¿ÉÒÔÔÚÉùÃ÷ÖÐÌṩµÄȡֵ±íÖÐȡֵ¡£] ÓÐÁ½ÖÖö¾ÙÀàÐÍ£º
| [57] | EnumeratedType |
::= | NotationType
| Enumeration
| |
| [58] | NotationType |
::= | 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')'
|
[VC: ¼Ç·¨ÊôÐÔ] |
| [VC: ÿÖÖÊôÐÔÀàÐÍÒ»ÖּǷ¨] | ||||
| [VC: ¿ÕÔªËØÃ»ÓмǷ¨] | ||||
| [59] | Enumeration |
::= | '(' S? Nmtoken
(S? '|' S? Nmtoken)*
S?
')' |
[VC: ö¾Ù] |
Ò»¸ö NOTATION ÀàÐ͵ÄÊôÐÔ±êʶÁËÒ»ÖÖÓÃÓÚ½âÊÍÓë´ËÊôÐÔÏà¹ØµÄÔªËØµÄ¼Ç·¨£¬´Ë¼Ç·¨ÖÐÓÃϵͳ»ò¹«¹²±êʶ·ûÔÚ DTD ÖÐÉùÃ÷¡£
ÓÐЧÐÔÔ¼Êø: ¼Ç·¨ÊôÐÔ
´ËÀàÐ͵ÄÖµ±ØÐëÓëÉùÃ÷ÖÐËù°üº¬µÄ¼Ç·¨ÃûÖ®Ò»ÏàÆ¥Åä;ÉùÃ÷ÖеÄËùÓмǷ¨Ãû¶¼±ØÐëÉùÃ÷¡£
³öÓÚ¼æÈÝÐÔ¿¼ÂÇ£¬ÉùÃ÷Ϊ EMPTY µÄÔªËØ²»ÄÜÉùÃ÷ÀàÐÍΪ NOTATION µÄÊôÐÔ¡£
ÓÐЧÐÔÔ¼Êø: ö¾Ù
´ËÀàÐ͵ÄÖµ±ØÐëÓëÉùÃ÷ÖÐËù°üº¬µÄ Nmtoken ¼ÇºÅÖ®Ò»ÏàÆ¥Åä¡£
³öÓÚ»¥²Ù×÷ÐÔ¿¼ÂÇ£¬Í¬Ò» Nmtoken Ö»ÄÜÔÚµ¥¸öÔªËØÀàÐ͵Äö¾ÙÊôÐÔÀàÐÍÖгöÏÖÒ»´Î¡£
ÊôÐÔÉùÃ÷ÌṩµÄÐÅÏ¢Ö¸Ã÷ÁËijÊôÐÔÊÇ·ñ±ØÐë³öÏÖ£¬Í¬Ê±Ö¸Ã÷ÁËÔÚ±»ÉùÃ÷µÄÊôÐÔ²»ÊDZØÐë³öÏÖ¶øÎļþÖÐûÓгöÏÖ´ËÊôÐÔµÄÇé¿öÏ£¬XML ´¦ÀíÆ÷Ó¦ÈçºÎ´¦Àí¡£
| [60] | DefaultDecl |
::= | '#REQUIRED' | '#IMPLIED' | |
| (('#FIXED' S)? AttValue) |
[VC: ±ØÐëµÄÊôÐÔ] | |||
| [VC: ºÏ·¨µÄÊôÐÔȱʡֵ] | ||||
| [WFC: ÔÚÊôÐÔÖµÖÐÎÞ < ] | ||||
| [VC: ¹Ì¶¨µÄÊôÐÔȱʡֵ] |
ÔÚÒ»¸öÊôÐÔÉùÃ÷ÖУ¬#REQUIRED ±íʾ±ØÐë×ÜÊÇÌṩ´ËÊôÐÔ£¬#IMPLIED ±íʾ²»Ìṩȱʡֵ¡£Èç¹ûÉùÃ÷¼È²»ÊÇ #REQUIRED£¬Ò²²»ÊÇ #IMPLIED£¬ÄÇô AttValue Öµ°üº¬ÁËËùÉùÃ÷µÄȱʡֵ;¹Ø¼ü×Ö #FIXED ¹æ¶¨´ËÊôÐÔ±ØÐë×ÜÊÇÓÐȱʡֵ¡£Èç¹ûÉùÃ÷ÁËÒ»¸öȱʡֵ£¬µ± XML ´¦ÀíÆ÷Óöµ½Ò»¸ö±»Ê¡ÂÔµÄÊôÐÔʱ£¬Ëü½«µ±³É´ËÊôÐÔÒÔȱʡֵ³öÏÖ
ÓÐЧÐÔÔ¼Êø: ±ØÐëµÄÊôÐÔ
Èç¹ûȱʡֵÉùÃ÷Êǹؼü×Ö #REQUIRED£¬ÄÇôÊôÐÔ±íÉùÃ÷ËùÖ¸ÀàÐ͵ÄÔªËØÖж¼±ØÐëÓдËÊôÐÔ¡£
ÓÐЧÐÔÔ¼Êø: ºÏ·¨µÄÊôÐÔȱʡֵ
±»ÉùÃ÷µÄÊôÐÔȱʡֵ±ØÐëÂú×ã±»ÉùÃ÷µÄÊôÐÔÀàÐ͵Ĵʷ¨Ô¼Êø¡£
ÓÐЧÐÔÔ¼Êø: ¹Ì¶¨µÄÊôÐÔȱʡֵ
Èç¹ûijÊôÐÔµÄȱʡֵÓùؼü×Ö #FIXED ÉùÃ÷£¬´ËÊôÐÔµÄËùÓÐʵÀý±ØÐëÆ¥Åä¸Ãȱʡֵ¡£
ÊôÐÔ±íÉùÃ÷µÄÀý×Ó£º
<!ATTLIST termdef |
ÔÚ½«ÊôÐÔµÄÖµ´«¸øÓ¦Óûò¼ìÑéÆäÓÐЧÐÔ֮ǰ£¬XML ´¦ÀíÆ÷±ØÐëʹÓÃÏÂÃæµÄËã·¨£¨»òʹÓÃÆäËûÄÜʹ´«¸øÓ¦ÓõÄÖµÓëÓôËËã·¨µÃµ½µÄÖµÏàͬµÄ·½·¨£©½«Æä¹æ·¶»¯¡£
ËùÓеÄÐÐβ±ØÐëÔÚÊäÈëʱÈç 2.11 ÐÐβ´¦ÀíÖÐËùÊö¹æ·¶³É #xA£¬±¾Ëã·¨µÄÆäÓಿ·Ö×÷ÓÃÓÚÒÔ´Ë·½·¨¹æ·¶»¯Ö®ºóµÄÎı¾¡£
¿ªÊ¼Ê±¹æ·¶»¯Ö®ºóµÄÖµ°üº¬¿Õ×Ö·û´®¡£
¶ÔÓÚδ¾¹æ·¶»¯µÄÊôÐÔÖµÖеÄÿ¸ö×Ö·û£¬ÊµÌåÒýÓûò×Ö·ûÒýÓ㬴ӵÚÒ»¸ö¿ªÊ¼£¬Ö±µ½×îºóÒ»¸ö£¬×öÈçϲÙ×÷£º
¶ÔÓÚÒ»¸ö×Ö·ûÒýÓ㬽«ÆäËùÒýÓõÄ×Ö·û¼ÓÔڹ淶»¯Ö®ºóµÄÖµµÄĩβ¡£
¶ÔÓÚÒ»¸öʵÌåÒýÓ㬶ԴËʵÌåµÄÖû»Îı¾µÝ¹éµØÊ¹Óñ¾Ëã·¨µÄµÚ 3 ²½¡£
¶ÔÓÚÒ»¸ö¿Õ°××Ö·û£¨#x20, #xD, #xA, #x9£©£¬Ôڹ淶»¯Ö®ºóµÄÖµµÄĩβ¼ÓÒ»¸ö¿Õ¸ñ×Ö·û£¨#x20£©¡£
¶ÔÓÚÆäËû×Ö·û£¬½«Æä¼ÓÔڹ淶»¯Ö®ºóµÄÖµµÄĩβ¡£
Èç¹ûÊôÐÔÖµµÄÀàÐͲ»ÊÇ CDATA£¬ÄÇô XML ´¦ÀíÆ÷±ØÐë¼ÌÐø´¦Àí¹æ·¶»¯Ö®ºóµÄÖµ£¬È¥µôÆäǰµ¼ºÍÎ²Ëæ¿Õ¸ñ£¨#x20£©×Ö·û£¬²¢½«¿Õ¸ñ£¨#x20£©×Ö·ûÐòÁÐÌæ»»³Éµ¥¸ö¿Õ¸ñ£¨#x20£©×Ö·û¡£
×¢Ò⣬Èç¹ûδ¾¹æ·¶»¯µÄÊôÐÔÖµÖаüº¬¶Ô¿Õ¸ñ×Ö·û£¨#x20£©ÒÔÍâµÄ¿Õ°××Ö·ûµÄÒýÓã¬ÄÇô¹æ·¶»¯Ö®ºóµÄÖµ°üº¬±»ÒýÓõÄ×Ö·û±¾Éí£¨#xD, #xA or #x9£©£¬¶ø²»Êǿոñ£¨#x20£©¡£ÕâÓëδ¾¹æ·¶»¯µÄÊôÐÔÖµÖаüº¬¿Õ°××Ö·û£¨²»ÊÇÒýÓ㩵ÄÇé¿ö²»Í¬£¬ÔÚÄÇÖÖÇé¿öÏ¿հ××Ö·û±»Öû»³É¿Õ¸ñ×Ö·û£¨#x20£©¡£Í¬Ê±ÕâÒ²Óëδ¾¹æ·¶»¯µÄÊôÐÔÖµÖÐËù°üº¬µÄʵÌåÒýÓõÄÖû»Îı¾Öаüº¬¿Õ°××Ö·ûµÄµÄÇé¿ö²»Í¬£¬ÔÚÄÇÖÖÇé¿öÏ£¬ÊµÌåÒýÓõÄÖû»Îı¾±»µÝ¹é´¦Àí£¬¿Õ°××Ö·û±»Öû»³É¿Õ¸ñ×Ö·û£¨#x20£©¡£
²»½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷Ó¦¸Ã½«ËùÓÐÉÐδ¶Áµ½ÆäÉùÃ÷µÄÊôÐÔµ±³ÉÉùÃ÷Ϊ CDATA ´¦Àí¡£
ÒÔÏÂÊÇÊôÐԹ淶»¯µÄÀý×Ó¡£ÓÐÈçÏÂÉùÃ÷£º
<!ENTITY d "
"> <!ENTITY a "
"> <!ENTITY da "
"> |
ϱíÖÐ×ó±ßÒ»ÁÐÖеÄÊôÐÔֵ˵Ã÷ÔÚ a ÉùÃ÷Ϊ NMTOKENS µÄÇé¿öϹ淶»¯ÎªÖмäÒ»ÁеÄ×Ö·ûÐòÁУ¬ÔÚ a ÉùÃ÷Ϊ CDATA µÄÇé¿öϹ淶»¯ÎªÓÒ±ßÒ»ÁÐÖеÄ×Ö·ûÐòÁС£
| ÊôÐÔֵ˵Ã÷ | a ÉùÃ÷Ϊ NMTOKENS | a ÉùÃ÷Ϊ CDATA | |
|---|---|---|---|
|
x y z |
#x20 #x20 x y z | |
|
A #x20 B |
#x20 #x20 A #x20 #x20 B #x20 #x20 | |
|
#xD #xD A #xA #xA B #xD #xA |
#xD #xD A #xA #xA B #xD #xD |
×¢Ò⣬ÔÚ a ÉùÃ÷Ϊ NMTOKENS ÀàÐ͵ÄÇé¿öÏ£¬×îºóÒ»¸öÀý×Ó²»ÊÇÓÐЧµÄ£¨µ«ÊÇÊǸñʽÕýÈ·µÄ£©¡£
[¶¨Ò壺Ìõ¼þ¶ÎÊÇÎļþÀàÐÍÉùÃ÷Íⲿ×Ó¼¯µÄÒ»²¿·Ö£¬È¡¾öÓÚÏàÓ¦µÄ¹Ø¼ü×Ö£¬ËüÃÇ»ò±»°üº¬ÔÚ DTD Âß¼½á¹¹Ö®ÄÚ£¬»ò±»ÅųýÔÚ DTD Âß¼½á¹¹Ö®Íâ¡£]
| [61] | conditionalSect |
::= | includeSect
| ignoreSect
| |
| [62] | includeSect |
::= | '<![' S? 'INCLUDE' S? '[' extSubsetDecl
']]>' |
/* */ |
| [VC: ÑϸñµÄÌõ¼þ¶Î/²ÎÊýʵÌåǶÌ×] | ||||
| [63] | ignoreSect |
::= | '<![' S? 'IGNORE' S? '[' ignoreSectContents*
']]>' |
/* */ |
| [VC: ÑϸñµÄÌõ¼þ¶Î/²ÎÊýʵÌåǶÌ×] | ||||
| [64] | ignoreSectContents |
::= | Ignore
('<![' ignoreSectContents
']]>' Ignore)* | |
| [65] | Ignore |
::= | Char* - (Char*
('<![' | ']]>') Char*)
|
ÓÐЧÐÔÔ¼Êø: ÑϸñµÄÌõ¼þ¶Î/²ÎÊýʵÌåǶÌ×
Èç¹ûÒ»¸öÌõ¼þ¶ÎµÄ "<!["£¬"[" »ò
"]]>" ÖеÄÈÎÒâÒ»¸ö°üº¬ÔÚÒ»¸ö²ÎÊýʵÌåÖеÄÖû»Îı¾ÖУ¬ËüÃDZØÐëÈ«²¿ÔÚ´ËͬһÖû»Îı¾ÖС£
ͬÄÚ²¿»òÍⲿ DTD ×Ó¼¯Ò»Ñù£¬Ìõ¼þ¶Î¿ÉÒÔ°üº¬Ò»¸ö»ò¶à¸öÍêÕûµÄÉùÃ÷£¬×¢ÊÍ£¬´¦ÀíÖ¸Á»òǶÌ×µÄÌõ¼þ¶Î£¬Æä¼ä¿ÉÒÔ¼ÐÔӿհס£
Èç¹ûÌõ¼þ¶ÎµÄ¹Ø¼ü×ÖÊÇ INCLUDE£¬ÄÇôÌõ¼þ¶ÎµÄÄÚÈÝÊÇ DTD µÄÒ»²¿·Ö£¬Èç¹ûÌõ¼þ¶ÎµÄ¹Ø¼ü×ÖÊÇ IGNORE£¬ÄÇôÌõ¼þ¶ÎµÄÄÚÈÝÂß¼Éϲ»ÊÇ DTD µÄÒ»²¿·Ö¡£Èç¹ûÒ»¸ö¹Ø¼ü×ÖΪ INCLUDE µÄÌõ¼þ¶Î³öÏÖÔÚ¸ü´óµÄ¹Ø¼ü×ÖΪ IGNORE µÄÌõ¼þ¶ÎÖУ¬ÄÚÍâÁ½¸öÌõ¼þ¶Î¶¼±»ºöÂÔ¡£ÔÚ¶Ô±»ºöÂÔµÄÌõ¼þ¶ÎµÄÄÚÈݽøÐÐÓï·¨·ÖÎöʱ£¬´Ó½ôËæ¹Ø¼ü×ÖµÄ "[" Ö®ºó¿ªÊ¼£¬³ýÁËÌõ¼þ¶ÎµÄ¿ªÊ¼ "<![" ºÍ½áβ "]]>" ÒÔÍâµÄËùÓÐ×Ö·û¶¼±»ºöÂÔ£¬Ö±µ½ÕÒµ½ÏàÆ¥ÅäµÄÌõ¼þ¶Î½áβ¡£Ôڴ˹ý³ÌÖвÎÊýʵÌå²»±»Ê¶±ð¡£
Èç¹ûÌõ¼þ¶ÎµÄ¹Ø¼ü×ÖÊÇÒ»¸ö²ÎÊýʵÌåÒýÓ㬴¦ÀíÆ÷ÔÚ¾ö¶¨ÊÇ·ñ°üº¬»òºöÂÔ´ËÌõ¼þ¶Îǰ£¬±ØÐëÏȽ«¸Ã²ÎÊýʵÌåÖû»³ÉÆäÄÚÈÝ¡£
Ò»¸öÀý×Ó£º
<!ENTITY % draft 'INCLUDE' > |
[¶¨Ò壺һ¸ö XML Îļþ¿ÉÄܰüº¬Ò»¸ö»ò¶à¸ö´æ´¢µ¥Ôª¡£ËüÃDZ»³ÆÎªÊµÌ壨entity£©;ËüÃǶ¼¾ßÓÐÄÚÈݲ¢ÇÒ¶¼ÓÃÃû×Ö½øÐбêʶ£¨³ýÁËÎļþʵÌ壬¼ûÏ£¬ºÍÍⲿ DTD ×Ó¼¯Ö®Í⣩¡£] ÿһ¸ö XML ÎļþÓÐÒ»¸ö³ÆÎªÎļþʵÌåµÄʵÌ壬Ëü×÷Ϊ XML ´¦ÀíÆ÷´¦ÀíµÄÆðµã²¢¿ÉÄܰüº¬ÁËÕû¸öÎļþ¡£
ʵÌå¿ÉÒÔÊÇÒÑÎöµÄ»òδÎöµÄ¡£[¶¨Ò壺ÒÑÎöʵÌ壨parsed entity£©µÄÄÚÈݱ»³ÆÎªËüµÄÖû»Îı¾;´ËÎı¾±»¿´³ÉÊÇÎļþÕûÌåµÄÒ»²¿·Ö¡£]
δÎöʵÌ壨unparsed entity£©ÊÇÒ»ÖÖ×ÊÔ´£¬ÆäÄÚÈÝ¿ÉÒÔÊÇÒ²¿ÉÒÔ²»ÊÇÎı¾£¬²¢ÇÒ£¬Èç¹ûÊÇÎı¾µÄ»°£¬¿ÉÒÔ²»ÊÇ XML Îı¾¡£Ã¿Ò»¸öδÎöʵÌåÓÐÒ»¸öÏà¹ØÁªµÄÓÃÃû×Ö±êʶµÄ¼Ç·¨¡£³ýÁËÒªÇó XML ´¦ÀíÆ÷ÄÜÏòÓ¦ÓÃÌṩʵÌåºÍ¼Ç·¨µÄ±êʶ·ûÖ®Í⣬XML ¶ÔδÎöʵÌåµÄÄÚÈݲ»×÷ÈκÎÏÞÖÆ¡£]
ÒÑÎöʵÌåÒÔʵÌåÒýÓõķ½Ê½Ê¹ÓÃÃû×ÖÀ´µ÷ÓÃ;δÎöʵÌåÓà ENTITY »ò ENTITIES ÊôÐÔÖиø³öµÄÃû×Öµ÷Óá£
[¶¨Ò壺ÆÕͨʵÌ壨general entity£©ÊÇÄÇЩÔÚÎļþÄÚÈÝÖÐʹÓõÄʵÌå¡£ÔÚ±¾¹æ·¶ÖУ¬ÆÕͨʵÌåÓÐʱÓÃδÐÞÊεÄÊõÓïentityÀ´±íʾ¡£] [¶¨Ò壺²ÎÊýʵÌåÊÇÓÃÓÚ DTD ÄÚµÄÒÑÎöʵÌå¡£]ÕâÁ½ÀàʵÌåÓò»Í¬ÐÎʽµÄÒýÓã¬ÔÚ²»Í¬µÄÉÏÏÂÎÄÖÐʶ±ð¡£ÁíÍ⣬ËüÃÇʹÓò»Í¬µÄÃûÓò£»¾ßÓÐÏàͬÃû×ֵIJÎÊýʵÌåºÍÆÕͨʵÌåÊÇÁ½¸ö½ØÈ»²»Í¬µÄÁ½¸öʵÌå¡£
Ò»¸ö×Ö·ûÒýÓÃÒýÓà ISO/IEC 10646 ×Ö·û¼¯ÖеÄÒ»¸ö×Ö·û¡£ÀýÈç²»ÄÜÓÃÊäÈëÉ豸ֱ½ÓÊäÈëµÄ×Ö·û¡£
| [66] | CharRef |
::= | '&#' [0-9]+ ';' | |
| '&#x' [0-9a-fA-F]+ ';' |
[WFC: ºÏ·¨×Ö·û] |
¸ñʽÕýÈ·ÐÔÔ¼Êø: ºÏ·¨×Ö·û
ÓÃ×Ö·ûÒýÓÃÒýÓõÄ×Ö·û±ØÐëÆ¥Åä Char ²úÉúʽ¡£
Èç¹û×Ö·ûÒýÓÃÒÔ "&#x" ¿ªÍ·£¬Ö±µ½ÖÕ½á ; µÄÊý×ÖºÍ×ÖĸÌṩÁËij×Ö·ûÔÚ ISO/IEC 10646 ÖдúÂëµÄÒ»¸öÊ®Áù½øÖƱíʾ¡£Èç¹ûËü½öÒÔ "&#" ¿ªÍ·£¬Ö±µ½ÖÕ½á ; µÄÊý×ÖÌṩÁËij×Ö·ûµÄ´úÂëµÄÊ®½øÖµ±íʾ¡£
ʵÌåÒýÓã¨entity reference£©ÒýÓÃÒ»¸öÃüÃûʵÌåµÄÄÚÈÝ¡£¶ÔÒÑÎöÆÕͨʵÌåµÄÒýÓÃʹÓà "and" ºÅ£¨&£©ºÍ·ÖºÅ£¨;£©×÷Ϊ¶¨½ç·û¡£²ÎÊýʵÌåÒýÓÃÔòʹÓðٷֺţ¨%£©ºÍ·ÖºÅ£¨;£©×÷Ϊ¶¨½ç·û¡£
| [67] | Reference |
::= | EntityRef
| CharRef | |
| [68] | EntityRef |
::= | '&' Name
';' |
[WFC: ÉùÃ÷ʵÌå] |
| [VC: ÉùÃ÷ʵÌå] | ||||
| [WFC: ÒÑÎöʵÌå] | ||||
| [WFC: Î޵ݹé] | ||||
| [69] | PEReference |
::= | '%' Name
';' |
[VC: ÉùÃ÷ʵÌå] |
| [WFC: Î޵ݹé] | ||||
| [WFC: ÔÚ DTD ÄÚ] |
¸ñʽÕýÈ·ÐÔÔ¼Êø: ÉùÃ÷ʵÌå
ÔÚÒ»¸öûÓÐÈκΠDTD µÄÎļþ£¬»òÒ»¸öÖ»Óв»°üº¬²ÎÊýʵÌåÒýÓõÄÄÚ²¿ DTD ×Ó¼¯µÄÎļþ£¬»òÒ»¸ö "standalone='yes'" µÄÎļþÄÚ£¬²»ÔÚÍⲿ×Ó¼¯»ò²ÎÊýʵÌåÄÚµÄʵÌåÒýÓÃÖиø³öµÄ Name ±ØÐëÓë²»ÔÚÍⲿ×Ó¼¯»ò²ÎÊýʵÌåÄÚʵÌåÉùÃ÷ÖÐËù¸ø³öµÄÏàÆ¥Å䣬µ«¸ñʽÕýÈ·µÄÎļþ²»ÐèÒªÉùÃ÷ÒÔϵÄÕâЩʵÌ壺amp£¬lt£¬gt£¬apos ºÍ quot¡£ÆÕͨʵÌåµÄÉùÃ÷±ØÐëÏÈÓÚÈκÎÔÚÊôÐÔ±íÉùÃ÷ÖеÄȱʡֵÖгöÏֵĶÔËüµÄÒýÓá£×¢Ò⣬¶ÔÓÚÔÚÍⲿ×Ó¼¯»òÍⲿ²ÎÊýʵÌåÖÐÉùÃ÷µÄʵÌ壬²»½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷²»±ØÒª¶ÁÈ¡ºÍ´¦ÀíËüÃǵÄÉùÃ÷£»¶ÔÕâЩÎļþ£¬½öµ± standalone='yes' ʱ£¬ÊµÌ屨Ðë±»ÉùÃ÷µÄ¹æÔò²ÅÊÇÒ»¸ö¸ñʽÕýÈ·ÐÔÔ¼Êø¡£
ÓÐЧÐÔÔ¼Êø: ÉùÃ÷ʵÌå
ÔÚÒ»¸öÓÐÍⲿ×Ó¼¯»òÍⲿ²ÎÊýʵÌåÇÒ "standalone='no'" µÄʵÌåÖУ¬ÊµÌåÒýÓÃÖиø³öµÄ Name ±ØÐëÓëʵÌåÉùÃ÷ÖÐËù¸ø³öµÄÏàÆ¥Åä¡£³öÓÚ»¥²Ù×÷ÐÔ¿¼ÂÇ£¬ÓÐЧµÄÎļþÓ¦¸ÃÒÔ"4.6 Ô¤¶¨ÒåʵÌå"Öеļò»¯ÐÎʽÉùÃ÷ʵÌå amp£¬lt£¬gt£¬apos ºÍ quot¡£²ÎÊýʵÌåµÄÉùÃ÷±ØÐëÏÈÓÚÈκζÔËüµÄÒýÓá£ÀàËÆµØ£¬ÆÕͨʵÌåµÄÉùÃ÷±ØÐëÏÈÓÚÈκÎÔÚÊôÐÔ±íÉùÃ÷ÖеÄȱʡֵÖгöÏֵĶÔËüÖ±½Ó»ò¼ä½ÓµÄÒýÓá£
¸ñʽÕýÈ·ÐÔÔ¼Êø: ÒÑÎöʵÌå
ʵÌåÒýÓò»Äܰüº¬Ò»¸öδÎöʵÌåµÄÃû×Ö¡£Î´ÎöʵÌåÖ»ÄÜÔÚÉùÃ÷Ϊ ENTITY »ò ENTITIES µÄÊôÐÔÖµÖÐÒýÓá£
¸ñʽÕýÈ·ÐÔÔ¼Êø: Î޵ݹé
ÒÑÎöʵÌå²»ÄÜÖ±½Ó»ò¼ä½ÓµØ°üº¬¶Ô×ÔÉíµÄµÝ¹éÒýÓá£
¸ñʽÕýÈ·ÐÔÔ¼Êø: ÔÚ DTD ÄÚ
²ÎÊýʵÌåÒýÓÃÖ»ÄÜÔÚ DTD ÖгöÏÖ¡£
×Ö·ûÒýÓúÍʵÌåÒýÓõÄÀý×Ó£º
Type <key>less-than</key> (<) to save options. |
²ÎÊýʵÌåÒýÓõÄÀý×Ó£º
<!-- declare the parameter entity "ISOLat2"... --> |
| [70] | EntityDecl |
::= | GEDecl
| PEDecl |
| [71] | GEDecl |
::= | '<!ENTITY' S
Name
S
EntityDef
S?
'>' |
| [72] | PEDecl |
::= | '<!ENTITY' S
'%' S
Name
S
PEDef
S?
'>' |
| [73] | EntityDef |
::= | EntityValue
| (ExternalID
NDataDecl?) |
| [74] | PEDef |
::= | EntityValue
| ExternalID |
ʵÌåÒýÓÃÖÐµÄ Name ±êʶÁ˸ÃʵÌå;¶ÔÓÚδÎöʵÌ壬ENTITY »ò ENTITIES ÊôÐÔµÄÖµ±êʶÁ˸ÃʵÌå¡£Èç¹ûͬһʵÌå±»ÉùÃ÷Á˲»Ö¹Ò»´Î£¬°ó¶¨µÚÒ»¸öÓöµ½µÄÉùÃ÷¡£ÓÉʹÓÃÕßÑ¡Ôñ£¬Èç¹ûʵÌå±»¶à´ÎÉùÃ÷£¬XML ´¦ÀíÆ÷¿ÉÒÔ¸ø³ö¾¯¸æ¡£
[¶¨Ò壺Èç¹ûʵÌ嶨ÒåÊÇÒ»¸ö EntityValue£¬±»¶¨ÒåµÄʵÌå±»³ÆÎªÄÚ²¿ÊµÌå¡£] ÄÚ²¿ÊµÌåûÓе¥¶ÀµÄÎïÀí´æ´¢¶ÔÏó£¬ÊµÌåµÄÄÚÈÝÔÚÉùÃ÷Öиø³ö¡£×¢Òâ³£Á¿ÊµÌåÖµÖÐһЩʵÌåºÍ×Ö·ûÒýÓõĴ¦Àí¿ÉÄÜÒªÇó²úÉúÕýÈ·µÄÖû»Îı¾£º²Î¼û"4.5 ÄÚ²¿Öû»Îı¾µÄ¹¹Ôì"¡£
ÄÚ²¿ÊµÌåÊÇÒÑÎöʵÌå¡£
ÄÚ²¿ÊµÌåÉùÃ÷µÄÀý×Ó£º
<!ENTITY Pub-Status "This is a pre-release of the |
[¶¨Ò壺Èç¹ûʵÌå²»ÊÇÄÚ²¿µÄ£¬ÄÇôËüÊÇÒ»¸öÍⲿʵÌ壬ÉùÃ÷ÈçÏ£º]
| [75] | ExternalID |
::= | 'SYSTEM' S
SystemLiteral | |
| 'PUBLIC' S
PubidLiteral
S
SystemLiteral
| ||||
| [76] | NDataDecl |
::= | S
'NDATA' S
Name |
[VC: ÉùÃ÷¼Ç·¨] |
Èç¹ûÓÐ NDataDecl£¬ÄÇôÕâÊÇÒ»¸öÆÕͨδÎöʵÌ壻·ñÔòËüÊÇÒ»¸öÒÑÎöʵÌå¡£
ÓÐЧÐÔÔ¼Êø: ÉùÃ÷¼Ç·¨
Name±ØÐëÓë¼Ç·¨µÄÃû×ÖÏàÆ¥Åä¡£
[¶¨Ò壺SystemLiteral ±»³ÆÎª¸ÃʵÌåµÄϵͳ±êʶ·û¡£ÕâÊÇÒ»¸ö URI ÒýÓã¨ÔÚ [IETF RFC 2396] Öж¨Ò壬ÔÚ [IETF RFC 2732] ÖиüУ©£¬¿ÉÒÔÓÉ´Ë»ñµÃ XML ´¦ÀíÆ÷µÄÊäÈëÓÃÓÚ¹¹½¨´ËʵÌåµÄÖû»Îı¾¡£] Ƭ¶Ï±êʶ·û£¨ÒÔ # ¿ªÍ·£©³öÏÖÔÚϵͳ±êʶ·ûÖÐÊÇÒ»¸ö´íÎó¡£Èç¹ûÒ»¸öƬ¶Ï±êʶ·û×÷Ϊϵͳ±êʶ·ûµÄ²¿·Ö¸ø³ö£¬XML ´¦ÀíÆ÷¿ÉÒÔ¸ø³öÒ»¸ö´íÎó¡£³ý·ÇÔÚ±¾¹æ·¶·¶Î§Ö®ÍâÁíÍâ¸ø³ö£¨È磬һ¸öÌØÊâ DTD Öж¨ÒåµÄרÓà XML ÔªËØÀàÐÍ£¬»òÒ»¸öÌØÊâÓ¦Óù淶Öж¨ÒåµÄ´¦ÀíÖ¸Á£¬Ïà¶Ô URI Ö¸Ïà¶ÔÓÚʵÌåÉùÃ÷ËùÔÚ×ÊÔ´µÄλÖá£Òò´Ë£¬Ò»¸ö URI ¿ÉÄÜÊÇÏà¶ÔÓÚÎļþʵÌ壬»òÏà¶ÔÓÚ°üº¬Íⲿ DTD ×Ó¼¯µÄʵÌ壬»òÏà¶ÔÓÚÆäËûһЩÍⲿ²ÎÊýʵÌå¡£
URI ÒýÓÃÐèÒª¶ÔijЩ×Ö·û½øÐбàÂëºÍתÒå¡£²»ÔÊÐí³öÏÖµÄ×Ö·û°üÀ¨ËùÓÐ·Ç ASCII ×Ö·û£¬ÒÔ¼° [IETF RFC
2396] µÚ 2.4 ½ÚÖÐÁгöµÄ²»±»ÔÊÐíµÄ×Ö·û£¬¾®ºÅ£¨#£©¡¢°Ù·ÖºÅ£¨%£©£© ºÍ [IETF RFC 2732] ÖÐÔÊÐíµÄ·½À¨ºÅ³ýÍâ¡£²»±»ÔÊÐíµÄ×Ö·û±ØÐëÓÃÈçÏµķ½·¨×ªÒ壺
ÿ¸ö²»±»ÔÊÐíµÄ×Ö·ûÊ×Ïȱ»×ª»»³ÉÒ»¸ö»ò¶à¸ö×Ö½ÚµÄ UTF-8 [IETF RFC 2279] ±àÂë¡£
ÈκζÔÓ¦ÓÚÒ»¸ö²»±»ÔÊÐíµÄ×Ö·ûµÄ°Ëλ×éÓà URI תÒå»úÖÆ×ªÒ壨¼´£¬½«Æäת»»³É%HH£¬ÆäÖÐ HH ÊÇ×Ö½ÚÖµµÄÊ®Áù½øÖƼǷ¨£©¡£
Óõõ½µÄ×Ö·ûÐòÁÐÖû»ÔÀ´µÄ×Ö·û¡£
³ýÁËϵͳ±êʶ·ûÖ®Í⣬Íⲿ±êʶ·û»¹¿ÉÒÔ°üº¬¹«¹²±êʶ·û¡£ÊÔͼ´æÈ¡ÊµÌåÄÚÈÝµÄ XML ´¦ÀíÆ÷¿ÉÒÔÓù«¹²±êʶ·ûÊÔ×ŲúÉúÒ»¸ö¿ÉÑ¡ URI ÒýÓá£Èç¹û´¦ÀíÆ÷ÎÞ·¨×öµ½ÕâÒ»µã£¬Ëü±ØÐëʹÓÃϵͳ³£Á¿ÖÐµÄ URI ÒýÓá£ÔÚÊÔ×ÅÆ¥Åä֮ǰ£¬¹«¹²±êʶ·ûÖÐËùÓпհ××Ö·û´®±ØÐë±»¹æ·¶Îªµ¥¸ö¿Õ¸ñ×Ö·û£¨#x20£©£¬Í¬Ê±±ØÐëÈ¥µôǰµ¼ºÍÎ²Ëæ¿Õ°×¡£
ÍⲿʵÌåÉùÃ÷µÄÀý×Ó£º
<!ENTITY open-hatch |
[¶¨Ò壺ÿ¸öÍⲿÒÑÎöʵÌåÓ¦¸ÃÒÔÎı¾ÉùÃ÷×÷Ϊ¿ªÊ¼¡£]
| [77] | TextDecl |
::= | '<?xml' VersionInfo?
EncodingDecl
S?
'?>' |
Îı¾ÉùÃ÷±ØÐëÒÔ³£Á¿ÐÎʽ¸ø³ö£¬¶ø²»ÄÜʹÓÃÒÑÎöʵÌåµÄÒýÓá£Îı¾ÉùÃ÷Ö»ÄÜÔÚÍⲿÒÑÎöʵÌåµÄ¿ªÍ·³öÏÖ£¬²»ÔÊÐíÔÚÆäËûÈκεط½³öÏÖ¡£ÔÚÍⲿÒÑÎöʵÌåÖеÄÎı¾ÉùÃ÷²»±»ÈÏΪÊÇÆäÖû»Îı¾µÄÒ»²¿·Ö
Èç¹ûÎļþʵÌ寥Åä document ²úÉúʽ£¬ÄÇôËüÊǸñʽÕýÈ·µÄ¡£Èç¹ûÍⲿÆÕͨÒÑÎöʵÌ寥Åä extParsedEnt ²úÉúʽ£¬ÄÇôËüÊǸñʽÕýÈ·µÄ¡£Èç¹ûÍⲿ²ÎÊýʵÌ寥Åä extPE ²úÉúʽ£¬ÄÇôËüÊǸñʽÕýÈ·µÄ¡£¸ù¾Ý¶¨Ò壬Íⲿ²ÎÊýʵÌåÊǸñʽÕýÈ·µÄ¡£
| [78] | extParsedEnt |
::= | TextDecl?
content |
Èç¹ûÄÚ²¿ÆÕͨÒÑÎöʵÌåµÄÖû»Îı¾Æ¥Åä content ²úÉúʽ£¬ÄÇôËüÊǸñʽÕýÈ·µÄ¡£¸ù¾Ý¶¨Ò壬ËùÓÐÄÚ²¿µÄ²ÎÊýʵÌå¶¼ÊǸñʽÕýÈ·µÄ¡£
ʵÌå·ûºÏ¸ñʽÕýÈ·ÐÔµÄÒ»¸ö½á¹ûÊÇ XML ÎļþµÄÂß¼ºÍÎïÀí½á¹¹ÊÇÑϸñǶÌ׵컯ðʼ±êÇ©£¬½áÊø±êÇ©£¬¿ÕÔªËØ±êÇ©£¬ÔªËØ£¬×¢ÊÍ£¬´¦ÀíÖ¸Á×Ö·ûÒýÓ㬻òʵÌåÒýÓö¼²»ÄÜÔÚÒ»¸öʵÌåÖпªÊ¼¶øÔÚÁíÒ»¸öʵÌåÖнáÊø¡£
XML ÎļþÖеÄÿ¸öÍⲿÒÑÎöʵÌå¶¼¿ÉÒÔ¶ÔÆä×Ö·û²ÉÓÃÒ»ÖÖ²»Í¬µÄ±àÂë·½°¸¡£ËùÓÐ XML ´¦ÀíÆ÷±ØÐëÄܶÁÈ¡±àÂëΪ UTF-8 ºÍ UTF-16 µÄʵÌå¡£±¾¹æ·¶ÖеÄÊõÓï "UTF-8" ºÍ "UTF-16" ²»ÊÊÓÃÓÚÈκβÉÓÃÆäËû±êʶ£¨label£©µÄ×Ö·û±àÂ룬¼´Ê¹ÕâÖÖ±àÂë»ò±êʶÓë UTF-8 »ò UTF-16 ·Ç³£ÀàËÆ¡£
ÒÔ UTF-16 ±àÂëµÄʵÌ屨ÐëÒÔ ISO/IEC 10646 Ôö²¹ F£¬[ISO/IEC 10646-2000] Ôö²¹ H£¬ [Unicode] µÄ 2.4 ½ÚºÍ [Unicode3] 2.7 ½Ú£¨Áã¿í¶È²»¼ä¶Ï¿Õ¸ñ×Ö·û£¬#xFEFF£©ÖÐËùÃèÊöµÄ×Ö½Ú´ÎÐò±ê¼Ç£¨Byte Order Mark£©¿ªÍ·¡£ÕâÊÇÒ»¸ö±àÂëÇ©Ãû£¬¼´²»ÊÇ XML ÎļþÖбê¼ÇµÄÒ»²¿·Ö£¬Ò²²»ÊÇ XML Îļþ×Ö·ûÊý¾ÝµÄÒ»²¿·Ö¡£XML ´¦ÀíÆ÷±ØÐëÄÜÓôË×Ö·ûÇø·Ö UTF-8 ±àÂëºÍ UTF-16 ±àÂëµÄÎļþ¡£
ËäÈ» XML ´¦ÀíÆ÷Ö»±»ÒªÇóÄܶÁÈ¡ UTF-8 ºÍ UTF-16 ±àÂëµÄʵÌ壬²»¹ý¶ÔÓÚÊÀ½çÉÏ»¹ÓÐÆäËûµÄ±àÂë·½°¸ÒÑÓй²Ê¶¡£ÓÐʱ¿ÉÄÜÏëÈà XML ´¦ÀíÆ÷¶ÁÈ¡ÒÔÄÇЩ±àÂë·½°¸±àÂëµÄʵÌå¡£ÔÚûÓÐÍⲿ×Ö·û±àÂëÐÅÏ¢£¨Èç MIME Í·£©µÄÇé¿öʱ£¬ÒÔ²»Í¬ÓÚ UTF-8 ºÍ UTF-16 µÄ±àÂë·½°¸´æ´¢µÄʵÌ屨ÐëÒÔ°üº¬±àÂëÉùÃ÷µÄÎı¾ÉùÃ÷£¨¼û 4.3.1 Îı¾ÉùÃ÷£©¿ªÍ·£º
| [80] | EncodingDecl |
::= | S
'encoding' Eq ('"' EncName
'"' | "'" EncName
"'" ) | |
| [81] | EncName |
::= | [A-Za-z] ([A-Za-z0-9._] | '-')* |
/* ±àÂë·½°¸µÄÃû³ÆÖ»°üº¬À¶¡×Öĸ */ |
ÔÚÎļþʵÌåÖУ¬±àÂëÉùÃ÷ÊÇ XML ÉùÃ÷µÄÒ»²¿·Ö¡£EncName ÊÇËùÓñàÂë·½°¸µÄÃû³Æ¡£
ÔÚÒ»¸ö±àÂëÉùÃ÷ÖУ¬Öµ "UTF-8"£¬"UTF-16"£¬"ISO-10646-UCS-2" ºÍ "ISO-10646-UCS-4" Ó¦¸ÃÓÃÓÚ±íʾ Unicode »ò ISO/IEC 10646 Öеĸ÷ÖÖ²»Í¬±àÂëºÍ±ä»»·½°¸£¬Öµ "ISO-8859-1"£¬"ISO-8859-2"£¬...
"ISO-8859-n" £¨ÆäÖÐ n ÊÇÇø¿éºÅ£©Ó¦¸ÃÓÃÓÚ±íʾ ISO 8859 µÄ¸÷¸ö²¿·Ö£¬¶øÖµ "ISO-2022-JP"£¬"Shift_JIS" ºÍ "EUC-JP" Ó¦¸ÃÓÃÓÚ±íʾ JIS X-0208-1997 µÄ¸÷ÖÖ±àÂë¡£½¨Òé¶ÔÓÚÔÚ Internet Assigned Numbers Authority [IANA] ×¢²áµÄ×Ö·û±àÂë·½°¸£¨ÒÔ×Ö·û¼¯£¨charset£©µÄ·½Ê½£©£¬³ýÁËÒÔÉÏËùÁÐÖ®ÍâµÄ±àÂë·½°¸£¬Ó¦¸ÃÓÃËüÃǵÄ×¢²áÃûÒýÓá£ÆäËûµÄ±àÂëÓ¦¸ÃʹÓôø "x-" ǰ׺µÄÃû³Æ¡£ÓûÓë֮ƥÅäµÄ XML ´¦ÀíÆ÷Ó¦¸ÃÒÔ´óСдÃô¸ÐµÄ·½Ê½¶Ô×Ö·û±àÂëµÄÃû³Æ½øÐÐÆ¥Åä¡£¶øÇÒ XML ´¦ÀíÆ÷´¦Àí×Ö·û±àÂëµÄÃû³ÆÊ±£¬Ó¦¸Ã½«ÔÚ IANA ×¢²áµÄ±àÂëÃû³Æ½âÊÍΪÔÚ IANA ×¢²áµÄÏàÓ¦±àÂ룬²»È»¾ÍÓ¦¸Ãµ±³Éδ֪µÄ±àÂ루µ±È»£¬²»ÒªÇó´¦ÀíÆ÷Ö§³ÖËùÓÐÔÚ IANA ×¢²áµÄ±àÂ룩¡£
ÔÚȱÉÙÍⲿ´«ÊäÐÒ飨Èç HTTP »ò MIME£©ËùÌṩµÄÐÅϢʱ£¬ÒÔÏÂÇé¿ö¾ùÊÇ´íÎó£ºXML ´¦ÀíÆ÷½ÓÊÕµ½µÄʵÌåµÄ±àÂë·½°¸ÓëʵÌåËùº¬±àÂëÉùÃ÷ÖÐÖ¸³öµÄ±àÂë·½°¸²»Í¬£¬¼È²»ÒÔ×Ö½Ú´ÎÐò±ê¼Ç¿ªÍ·Ò²²»ÒÔ±àÂëÉùÃ÷¿ªÍ·µÄʵÌåʹÓÃÁ˲»Í¬ÓÚ UTF-8 µÄ±àÂë¡£×¢Ò⣬ÒòΪ ASCII ÊÇ UTF-8 µÄÒ»¸ö×Ó¼¯£¬Ñϸñ˵À´ÆÕͨ ASCII ×Ö·û²»ÐèÒª±àÂëÉùÃ÷¡£
TextDecl ³öÏÖÔÚÍⲿʵÌ忪ͷÒÔÍâµÄµØ·½ÊÇÒ»¸öÑÏÖØ´íÎó¡£
µ± XML ´¦ÀíÆ÷Óöµ½µÄʵÌåʹÓÃÁËËü²»ÄÜ´¦ÀíµÄ±àÂëʱ£¬ÊÇÒ»¸öÑÏÖØ´íÎó¡£Èç¹ûÒ»¸ö XML ʵÌ屻ȷÈÏΪʹÓÃÁËijÖÖ±àÂ루ÓÉĬÈÏÖµ£¬±àÂëÉùÃ÷»ò¸ß²ãÐÒéÈ·¶¨£©£¬µ«ÊÇËü°üº¬ÁËÔڴ˱àÂëÖзǷ¨µÄ°Ëλ×éÐòÁеϰ£¬ÊÇÒ»¸öÑÏÖØ´íÎó¡£Èç¹ûÒ»¸ö XML ʵÌåûÓбàÂëÉùÃ÷¶øËüµÄÄÚÈݲ»ÊǺϷ¨µÄ UTF-8 »ò UTF-16 ±àÂëµÄ»°£¬Ò²ÊÇÒ»¸öÑÏÖØ´íÎó¡£
°üº¬±àÂëÉùÃ÷µÄÎı¾ÉùÃ÷µÄÀý×Ó£º
<?xml encoding='UTF-8'?> |
ϱí»ã×ÜÁË×Ö·ûÒýÓã¬ÊµÌåÒýÓ㬠ºÍ¶ÔδÎöʵÌåµÄµ÷ÓÿÉÒÔ³öÏÖµÄÉÏÏÂÎÄ£¬ÒÔ¼°Ã¿ÖÖÇé¿öÏ XML ´¦ÀíÆ÷µÄ¶¯×÷¡£ ×î×ó±ßÒ»ÁеıêʶָÃ÷ÁËʶ±ðʱµÄÉÏÏÂÎÄ£º
content¡£AttValue¡£Name ¶ø²»ÊÇÒÔÒýÓõÄÐÎʽ³öÏÖ£¬×÷ΪÉùÃ÷Ϊ ENTITY ÀàÐ͵ÄÊôÐÔµÄÖµ£¬»ò¿ÉÒÔ×÷ΪÉùÃ÷Ϊ ENTITIES ÀàÐ͵ÄÊôÐÔÖµÖеÄÒÔ¿Õ°×·Ö¸ôµÄ¼ÇºÅÖ®Ò»¡£EntityValue¡£| ʵÌåÀàÐÍ | ×Ö·û | ||||
| ²ÎÊý | ÄÚ²¿ÆÕͨ | ÍⲿÒÑÎöÆÕͨ | δÎö | ||
| ÄÚÈÝÖеÄÒýÓà | ²»±»Ê¶±ð | ±»°üº¬ | ½øÐÐÑé֤ʱ±»°üº¬ | ±»½ûÖ¹ | ±»°üº¬ |
| ÊôÐÔÖµÖеÄÒýÓà | ²»±»Ê¶±ð | ×÷Ϊ³£Á¿±»°üº¬ | ±»½ûÖ¹ | ±»½ûÖ¹ | ±»°üº¬ |
| ×÷ΪÊôÐÔÖµ | ²»±»Ê¶±ð | ±»½ûÖ¹ | ±»½ûÖ¹ | ֪ͨ | ²»±»Ê¶±ð |
| ʵÌåÖµÖеÄÒýÓà | ×÷Ϊ³£Á¿±»°üº¬ | ²»´¦Àí | ²»´¦Àí | ±»½ûÖ¹ | ±»°üº¬ |
| DTD ÖеÄÒýÓà | ×÷Ϊ²ÎÊýʵÌå±»°üº¬ | ±»½ûÖ¹ | ±»½ûÖ¹ | ±»½ûÖ¹ | ±»½ûÖ¹ |
ÔÚ DTD Ö®Í⣬°Ù·ÖºÅ×Ö·û % ûÓÐÌØÊ⺬Ò壻Òò´ËÔÚ DTD ÖеIJÎÊýʵÌåÒýÓÃÔÚ content Öв»±»µ±³É±ê¼Çʶ±ð¡£ÀàËÆµØ£¬³ý·ÇδÎöʵÌåµÄÃû×Ö³öÏÖÔÚÒÑÊʵ±ÉùÃ÷µÄÊôÐÔµÄÖµÖУ¬·ñÔòËüÃDz»±»Ê¶±ð¡£
[¶¨Ò壺µ±Ò»¸öʵÌåµÄÖû»Îı¾±»µ±³É³öÏÖÔÚÒýÓÃËùÔÚλÖõÄÎļþµÄÒ»²¿·ÖÒ»Ñù±»´æÈ¡ºÍ´¦Àíʱ£¬³Æ´ËʵÌå±»°üº¬¡£] ÆäÖû»Îı¾¿ÉÒÔ°üº¬×Ö·ûÊý¾ÝºÍ±ê¼Ç£¨²»°üÀ¨²ÎÊýʵÌ壩£¬ÆäÖбê¼Ç±ØÐëÒÔͨ³£µÄ·½Ê½Ê¶±ð¡££¨×Ö·û´® "AT&T;" Õ¹¿ªÎª "AT&T;"£¬ÉдæµÄ "and" ºÅ & ²»±»Ê¶±ðΪʵÌåÒýÓõ͍½ç·û¡££©µ±±»±íʾµÄ×Ö·û±»µ±³É³öÏÖÔÚÒýÓÃËùÔÚλÖÃÒ»Ñù±»´¦Àíʱ£¬³Æ´Ë×Ö·ûÒýÓñ»°üº¬¡£
µ± XML ´¦ÀíÆ÷ʶ±ð³öÒ»¸ö¶ÔÒÑÎöʵÌåµÄÒýÓã¬ÎªÁËÑéÖ¤¸ÃÎļþ£¬´¦ÀíÆ÷±ØÐë°üº¬´ËʵÌåµÄÖû»Îı¾¡£Èç¹ûʵÌåÊÇÍⲿµÄ£¬¶ø´¦ÀíÆ÷²»ÊÔͼÑéÖ¤¸Ã XML Îļþ£¬ÄÇô´¦ÀíÆ÷¿ÉÒÔ£¬µ«²»ÊDZØÐ룬°üº¬´ËʵÌåµÄÖû»Îı¾¡£Èç¹ûÒ»¸ö²»½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷²»°üº¬´ËÖû»Îı¾£¬Ëü±ØÐë֪ͨӦÓÃËüʶ±ð³öµ«Ã»ÓжÁÈ¡´ËʵÌå¡£
ÕâÌõ¹æÔò»ùÓÚÕâÑùÒ»¸ö¹²Ê¶£ºÓÉ SGML ºÍ XML µÄʵÌå»úÖÆÌṩµÄÆð³õÉè¼ÆÓÃÓÚÖ§³ÖÄ£¿é»¯´´×÷µÄ×Ô¶¯°üº¬²»Ò»¶¨ÊʺÏÓÚÆäËûÓ¦Óã¬ÓÈÆäÊÇÎļþä¯ÀÀ¡£ÀýÈ磬µ±ä¯ÀÀÆ÷Óöµ½Ò»¸öÍⲿÒÑÎöʵÌåÒýÓÃʱ£¬¿ÉÄÜÑ¡ÔñÓÿÉÊÓ·½Ê½±íʾÆä´æÔÚµ«Ö»ÔÚ±»ÇëÇóʱ²Å¶ÁÈ¡Ëü½øÐÐÏÔʾ¡£
ÒÔÏÂÇé¿ö±»½ûÖ¹£¬²¢¹¹³ÉÒ»¸öÑÏÖØ´íÎó£º
EntityValue »ò AttValue ÖС£µ±ÊµÌåÒýÓóöÏÖÔÚÊôÐÔÖµÖлò²ÎÊýʵÌåÒýÓóöÏÖÔÚ³£Á¿ÊµÌåÖµÖÐʱ£¬ËüÃǵÄÖû»Îı¾±»µ±³É³öÏÖÔÚÒýÓÃËùÔÚλÖõÄÎļþµÄÒ»²¿·ÖÒ»Ñù±»´æÈ¡ºÍ´¦Àí£¬Öû»Îı¾Öеĵ¥Ë«ÒýºÅ×ÜÊDZ»µ±³ÉÕý³£µÄÊý¾Ý×Ö·û¶ø²»»á½áÊø´Ë³£Á¿¡£ÀýÈ磬ÏÂÃæµÄÀý×ÓÊǸñʽÕýÈ·µÄ£º
<!-- --> <!ENTITY % YN '"Yes"' > <!ENTITY WhatHeSaid "He said %YN;" > |
¶øÕâ¸öÀý×Ó²»ÊÇ£º
<!ENTITY EndAttr "27'" > <element attribute='a-&EndAttr;> |
µ±Î´ÎöʵÌåÃû×Ö×÷Ϊ¼ÇºÅÔÚÉùÃ÷Ϊ ENTITY »ò ENTITIES ÀàÐ͵ÄÊôÐÔµÄÖµÖгöÏÖʱ£¬ ½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷±ØÐ뽫´ËʵÌåºÍËüµÄÏà¹Ø¼Ç·¨µÄϵͳºÍ¹«¹²£¨Èç¹ûÓеϰ£©±êʶ·û֪ͨ¸øÓ¦Óá£
µ±ÊµÌåÉùÃ÷ÄÚÒ»¸öÆÕͨʵÌåÒýÓóöÏÖÔÚ EntityValue ÖÐʱ£¬
Ëü²»±»´¦Àí£¬±£³Ö²»±ä¡£
ºÍÍⲿÒÑÎöʵÌåÒ»Ñù£¬²ÎÊýʵÌåÖ»ÐèÔÚ½øÐÐÑé֤ʱ±»°üº¬¡£µ±²ÎÊýʵÌåÒýÓÃÔÚ DTD Öб»Ê¶±ð²¢±»°üº¬Ê±£¬ËüµÄÖû»Îı¾±»Ç°ºó¸÷¼ÓÉÏÒ»¸ö¿Õ¸ñ×Ö·û£»ÆäÄ¿µÄÔÚÓÚÇ¿ÖÆ²ÎÊýʵÌåµÄÖû»Îı¾°üº¬ÕûÊý¸ö DTD ÖеÄÓï·¨¼ÇºÅ¡£Õâ²»ÊÊÓÃÓÚʵÌåÖµÄڵIJÎÊýʵÌ壻¶ÔËüÃǵĴ¦Àí¼û 4.4.5 ×÷Ϊ³£Á¿±»°üº¬
ÔÚÌÖÂÛÄÚ²¿ÊµÌåµÄ´¦Àíʱ£¬Çø·ÖÁ½ÖÖÐÎʽµÄʵÌåÖµÊÇÓаïÖúµÄ¡£[¶¨Ò壺³£Á¿ÊµÌåÖµ£¨literal entity value£©ÊÇʵ¼Ê³öÏÖÔÚʵÌåÉùÃ÷ÖÐÓÃÒýºÅÀ©ÆðµÄ×Ö·û´®¡£] ¶ÔÓ¦ÓÚ·ÇÖÕ½á·û EntityValue¡£Öû»Îı¾£¨replacement text£©ÊÇÖû»ÁË×Ö·ûÒýÓúͲÎÊýʵÌåÒýÓúóµÄʵÌåÄÚÈÝ¡£
ÔÚÄÚ²¿ÊµÌåÉùÃ÷£¨EntityValue£©Öиø³öµÄ³£Á¿ÊµÌåÖµ¿ÉÒÔ°üÀ¨×Ö·ûÒýÓ㬲ÎÊýʵÌåÒýÓÃºÍÆÕͨʵÌåÒýÓá£ÕâЩÒýÓñØÐë±»Õû¸ö°üº¬ÓÚ³£Á¿ÊµÌåÖµÖС£ÈçǰÊö·½Ê½±»°üº¬µÄʵ¼ÊÖû»Îı¾±ØÐë°üº¬ËùÓб»ÒýÓõIJÎÊýʵÌåµÄÖû»Îı¾£¬Í¬Ê±ËùÓб»ÒýÓõÄ×Ö·û±ØÐëÔÚ³£Á¿ÊµÌåÖµÖÐ×Ö·ûÒýÓÃËùÔÚλÖñ»°üº¬¡£µ«ÆÕͨʵÌåµÄÒýÓñØÐë±£³Ö²»±ä£¬²»±»Õ¹¿ª¡£ÀýÈ磬Èç¹ûÓÐÒÔϵÄÉùÃ÷£º
<!ENTITY % pub "Éditions Gallimard" > |
ÄÇôʵÌå "book" µÄÖû»Îı¾Îª£º
La Peste: Albert Camus, |
Ò»µ©ÒýÓà "&book;" ³öÏÖÔÚÎļþµÄÄÚÈÝ»òÊôÐÔÖµÖÐʱ£¬ÆÕͨʵÌåÒýÓà "&rights;" Ó¦¸Ã±»Õ¹¿ª¡£
ÕâЩ¼òµ¥µÄ¹æÔò½«¿ÉÄÜ»áÓи´ÔÓµÄÏ໥×÷ÓÃ;²Î¼û "D. ʵÌåºÍ×Ö·ûÒýÓõÄÕ¹¿ª" ÖжÔÒ»¸öÄѵÄÀý×ÓµÄÏêϸÌÖÂÛ¡£
[¶¨Ò壺ʵÌåºÍ×Ö·ûÒýÓö¼¿ÉÒÔÓÃÓÚתÒå×ó¼âÀ¨ºÅ£¬"and" ºÅ£¨&£©ºÍÆäËû¶¨½ç·û¡£ÆÕͨʵÌ弯ºÏ£¨amp£¬lt£¬gt£¬apos£¬quot£©×¨ÃÅÓÃÓÚ´ËÄ¿µÄ¡£Ò²¿ÉÒÔʹÓÃÊýÖµ×Ö·ûÒýÓã»Ò»µ©±»Ê¶±ð£¬ËüÃÇÁ¢¼´±»Õ¹¿ª£¬Í¬Ê±ËüÃDZØÐë±»µ±³É×Ö·ûÊý¾Ý£¬Òò´ËÊýÖµ×Ö·ûÒýÓà "<" ºÍ "&" ¿ÉÒÔÓÃÓÚתÒå³öÏÖÔÚ×Ö·ûÊý¾ÝÖÐµÄ < ºÍ &¡£]
²»¹ÜÕâЩʵÌåÊÇ·ñ±»ÉùÃ÷£¬ËùÓÐµÄ XML ´¦ÀíÆ÷±ØÐëÄÜʶ±ðËüÃÇ¡£³öÓÚ»¥²Ù×÷ÐÔ¿¼ÂÇ£¬ÓÐЧµÄ XML ÎļþÓ¦¸ÃÈçÆäËûʵÌåÒ»Ñù£¬ÔÚʹÓÃÕâЩʵÌåǰÏÈÉùÃ÷ËüÃÇ¡£Èç¹ûʵÌå lt »ò
amp ±»ÉùÃ÷£¬ËüÃDZØÐë±»ÉùÃ÷ΪÖû»Îı¾ÎªÏàÓ¦±»×ªÒå×Ö·ûµÄ×Ö·ûÒýÓã¨Ð¡ÓںŻò "and" ºÅ£©µÄÄÚ²¿ÊµÌ壻¶ÔÕâЩʵÌåÐèҪתÒåÁ½´ÎÒÔʹ¶ÔËüÃǵÄÒýÓÃÄܵõ½¸ñʽÕýÈ·µÄ½á¹û¡£Èç¹ûʵÌå gt£¬apos »ò quot ±»ÉùÃ÷£¬ËüÃDZØÐë±»ÉùÃ÷ΪÖû»Îı¾ÎªÏàÓ¦±»×ªÒåµÄµ¥¸ö×Ö·ûµÄÄÚ²¿ÊµÌ壨»òÖ¸Ïò±»×ªÒå×Ö·ûµÄ×Ö·ûÒýÓã»ÕâÀïתÒåÁ½´ÎÊDz»±ØÒªµÄ£¬µ«Ò²ÊÇÎÞº¦µÄ£©¡£ÀýÈ磺
<!ENTITY lt "&#60;"> |
[¶¨Ò壺¼Ç·¨ÓÃÃû×Ö±êʶÁËδÎöʵÌåµÄ¸ñʽ£¬¾ßÓмǷ¨ÊôÐÔµÄÔªËØµÄ¸ñʽÒÔ¼°´¦ÀíÖ¸ÁîËùÕë¶ÔµÄÓ¦Óõĸñʽ¡£]
[¶¨Ò壺¼Ç·¨ÉùÃ÷¸³Óè¼Ç·¨Ò»¸öÃû×ÖÓÃÓÚʵÌåÖУ¬ÊôÐÔ±íÉùÃ÷ÖкÍÊôÐÔֵ˵Ã÷ÖУ¬Í¬Ê±Ò²¸ø³öÁËÒ»¸ö¼Ç·¨µÄÍⲿ±êʶ·ûʹµÃ XML ´¦ÀíÆ÷»òËüµÄ¿Í»§Ó¦ÓÿÉÒÔ¶¨Î»ÄÜÒÔ¸ø¶¨¼Ç·¨µÄ¸ñʽ´¦ÀíÊý¾ÝµÄÖúÀíÓ¦Óá£]
| [82] | NotationDecl |
::= | '<!NOTATION' S Name S (ExternalID
| PublicID)
S?
'>' |
[VC: ΨһµÄ¼Ç·¨Ãû×Ö] |
| [83] | PublicID |
::= | 'PUBLIC' S PubidLiteral
|
Ò»¸ö¸ø¶¨µÄ Name Ö»Äܱ»Ò»¸ö¼Ç·¨ÉùÃ÷ËùÉùÃ÷.
XML ´¦ÀíÆ÷±ØÐëÏòÓ¦ÓÃÌṩÈκÎÔÚÊôÐÔÖµÖУ¬ÊôÐÔ¶¨ÒåÖлòʵÌåÉùÃ÷Öж¨Òå»òÒýÓõļǷ¨µÄÃû×ÖºÍÍⲿ±êʶ·û¡£ËüÃÇ»¹¿ÉÒÔ½«Íⲿ±êʶ·û½âÎö³Éϵͳ±êʶ·û£¬ÎļþÃû£¬»òÊÇÓ¦Óõ÷ÓÃÏàÓ¦´¦ÀíÆ÷´¦Àí¸ø¶¨¼Ç·¨¸ñʽµÄÊý¾ÝµÄËùÐèµÄÆäËûÐÅÏ¢¡££¨µ«Èç¹û XML ´¦ÀíÆ÷»òÓ¦ÓÃËùÔËÐеÄϵͳÖÐûÓд¦Àí XML ÎļþÉùÃ÷ºÍÒýÓõļǷ¨µÄÏàÓ¦Ó¦ÓõÄÇé¿ö£¬²»ÊÇÒ»¸ö´íÎó¡££©
[¶¨Ò壺ÎļþʵÌ壨document entity£©ÊÇʵÌåÊ÷µÄ¸ùºÍ XML ´¦ÀíÆ÷µÄ´¦ÀíÆðµã¡£] ±¾¹æ·¶Ã»Óй涨 XML ÈçºÎ¶¨Î»ÎļþʵÌ壻ÓëÆäËûʵÌ岻ͬ£¬ÎļþʵÌåûÓÐÃû×Ö£¬¶øÇÒ¿ÉÒÔÍêÈ«²»´øÈκαêʶµØ³öÏÖÔÚ´¦ÀíÆ÷µÄÊäÈëÁ÷ÖС£
ºÏºõ¹æ·¶µÄ XML ´¦ÀíÆ÷¿ÉÒÔ·ÖΪÁ½Àࣺ½øÐÐÑéÖ¤µÄºÍ²»½øÐÐÑéÖ¤µÄ¡£
½øÐÐÑéÖ¤ºÍ²»½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷¶¼±ØÐ뱨¸æÔÚÎļþʵÌåµÄÄÚÈÝÖкÍÈÎºÎÆäËûËüÃǶÁµ½µÄÒÑÎöʵÌåÖжԸñʽÕýÈ·ÐÔÔ¼ÊøµÄÎ¥·´¡£
[¶¨Ò壺½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷±ØÐ룬ÓÉʹÓÃÕßÑ¡Ôñ£¬±¨¸æÎ¥·´ DTD ÉùÃ÷ÖÐËùÊöÔ¼ÊøµÄÇé¿öÒÔ¼°²»Âú×ã±¾¹æ·¶Öиø³öµÄÓÐЧÐÔÔ¼ÊøµÄÇé¿ö¡£] ÒªÍê³ÉÕâÒ»µã£¬½øÐÐÑéÖ¤µÄ XML ´¦ÀíÆ÷±ØÐë¶ÁÈ¡ºÍ´¦ÀíÕû¸ö DTD ºÍËùÓÐÔÚÎļþÖÐÒýÓõÄÍⲿÒÑÎöʵÌå¡£
²»½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷Ö»±»ÒªÇó¼ì²éÎļþʵÌåºÍÕû¸öÄÚ²¿ DTD ×Ó¼¯µÄ¸ñʽÕýÈ·ÐÔ¡£[¶¨Ò壺ËäÈ»ËüÃDz»±»ÒªÇó¼ì²éÎļþµÄÓÐЧÐÔ£¬µ«ËüÃDZØÐë´¦ÀíËüÃǶÁÈ¡µÄËùÓÐÄÚ²¿ DTD ×Ó¼¯ÖеÄÉùÃ÷ºÍËùÓвÎÊýʵÌ壬ֱµ½Óöµ½µÚÒ»¸ö¶ÔËüÃÇûÓжÁÈ¡µÄ²ÎÊýʵÌåµÄÒýÓã»Ò²¾ÍÊÇ˵£¬ËüÃDZØÐë¸ù¾ÝÕâЩÉùÃ÷ÖеÄÐÅÏ¢¹æ·¶»¯ÊôÐÔÖµ£¬°üº¬ÄÚ²¿ÊµÌåµÄÖû»Îı¾£¬²¢ÌṩȱʡÊôÐÔÖµ¡£] ³ýÁË standalone="yes" µÄÇé¿ö£¬ËüÃÇÔÚÓöµ½µÚÒ»¸ö¶ÔËüÃÇûÓжÁÈ¡µÄ²ÎÊýʵÌåµÄÒýÓú󣬲»Ó¦´¦ÀíÆäºóµÄʵÌåÉùÃ÷»òÊôÐÔ±íÉùÃ÷£¬ÒòΪ´ËʵÌåÖаüº¬µÄÉùÃ÷¿ÉÄܸ²¸ÇÇ°ÃæµÄÉùÃ÷¡£
½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷µÄÐÐΪÊǸ߶ȿÉÔ¤²âµÄ;Ëü±ØÐë¶ÁÈ¡ÎļþµÄËùÓв¿·Ö£¬±¨¸æËùÓжԸñʽÕýÈ·ÐÔºÍÓÐЧÐÔµÄÎ¥·´¡£¶ÔÒ»¸ö²»½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷µÄÒªÇóÒªµÍÒ»µã£»Ëü²»ÐèÒª¶ÁÈ¡ÎļþʵÌåÒÔÍâµÄÈκÎÎļþ²¿·Ö¡£Õâ¶Ô XML µÄ´¦ÀíÆ÷µÄʹÓÃÕß¶øÑÔ¿ÉÄÜ»áÓÐÁ½¸öÖØÒªµÄÓ°Ï죺
ΪÁËʹ²»Í¬ XML ´¦ÀíÆ÷¼äµÄ»¥²Ù×÷ÓÐ×î´óµÄ¿É¿¿ÐÔ£¬ ʹÓò»½øÐÐÑéÖ¤µÄ´¦ÀíÆ÷µÄÓ¦Óò»Ó¦ÒÀÀµÓÚ²»ÒªÇóÕâЩ´¦ÀíÆ÷¾ß±¸µÄ¶¯×÷¡£ ÄÇЩҪÇóʹÓÃÈçȱʡֵ»òÔÚÍⲿʵÌåÖÐÉùÃ÷ÄÚ²¿ÊµÌåµÈ¹¦ÄܵÄÓ¦ÓÃÓ¦¸ÃʹÓýøÐÐÑéÖ¤µÄ XML ´¦ÀíÆ÷¡£
±¾¹æ·¶ÖÐ XML µÄÐÎʽ»¯ÎÄ·¨ÓÃÒ»ÖÖ¼òµ¥µÄÀ©Õ¹°Í¿ÆË¹·¶Ê½£¨Extended Backus-Naur Form£¬EBNF£©¸ø³ö¡£ÎÄ·¨ÖеÄÿһÌõ¹æÔò¶¨ÒåÁËÒ»¸ö·ûºÅ£¬ÐÎʽÈçÏ£º
symbol ::= expression |
Èç¹û·ûºÅÊÇÕýÔòÓïÑÔµÄÆðʼ·ûºÅ£¬ÔòËüÒÔ´óд×Öĸ¿ªÍ·£¬ ·ñÔòÒÔСд×Öĸ¿ªÍ·¡£×Ö·û´®³£Á¿£¨literal strings£©ÓÃÒýºÅÀ¨Æð¡£
ÔÚ¹æÔòÓұߵıí´ïʽÖУ¬ÒÔϱí´ïʽÓÃÓÚÆ¥ÅäÒ»¸ö»ò¶à¸ö×Ö·ûµÄ×Ö·û´®£º
#xNN ÊÇÒ»¸öÊ®Áù½øÖƵÄÕûÊý£¬µ± ISO/IEC 10646 ÖÐij¸ö×Ö·ûµÄ¹æ·¶£¨UCS-4£©´úÂëÖµ×÷ΪÎÞ·ûºÅ¶þ½øÖÆÊýÓë N ÏàµÈʱ£¬´Ë±í´ïʽƥÅäÕâ¸ö×Ö·û¡£#xN ÖеÄǰµ¼ 0 ûÓÐÒâÒ壬ÔÚÏàÓ¦µÄ´úÂëÖµÖеÄǰµ¼ 0 µÄ¸öÊýÔòÓÉËùÓÃ×Ö·û±àÂë·½°¸¾ö¶¨£¬¶Ô XML ûÓÐÒâÒå¡£
[a-zA-Z]£¬ [#xN-#xN]ÓëÆäÖµÔÚÖ¸¶¨·¶Î§ÄÚµÄÈκΠChar ÏàÆ¥Å䣨º¬½ç£¬inclusive£©¡£
[abc], [#xN#xN#xN]
ÓëÆäֵΪËùö¾ÙµÄÖµÖ®Ò»µÄ Char ÏàÆ¥Åä¡£ÔÚÒ»¶Ô·½À¨ºÅÄÚö¾ÙºÍ·¶Î§¿ÉÒÔ»ìÓá£
[^a-z]£¬ [^#xN-#xN]ÓëÆäÖµÔÚÖ¸¶¨·¶Î§Ö®ÍâµÄÈκΠChar ÏàÆ¥Åä¡£
[^abc]£¬ [^#xN#xN#xN]ÓëÈκβ»ÔÚ¸ø¶¨×Ö·û¼¯ÄÚµÄ Char ÏàÆ¥Åä¡£ÔÚÒ»¶Ô·½À¨ºÅÄÚ±»½ûÖµµÄö¾ÙºÍ·¶Î§¿ÉÒÔ»ìÓá£
"string"ÓëÆ¥ÅäË«ÒýºÅÖÐËù¸ø×Ö·û´®µÄ³£Á¿×Ö·û´®ÏàÆ¥Åä¡£
'string'ÓëÆ¥Åäµ¥ÒýºÅÖÐËù¸ø×Ö·û´®µÄ³£Á¿×Ö·û´®ÏàÆ¥Åä¡£
ÕâЩ·ûºÅ¿ÉÒÔ°´ÏÂÁз½Ê½×éºÏ£¬ÒÔÆ¥Åä¸ü¸´ÔÓµÄģʽ£¬ÆäÖÐAºÍB±íʾ¼òµ¥±í´ïʽ£º
expression)expression ±»µ±³ÉÒ»¸öµ¥Ôª£¬¿ÉÒÔÏò±¾±íÃèÊöµÄÄÇÑù½øÐÐ×éºÏ¡£A?A ÏàÆ¥Å䣬¼´ A ¿ÉÑ¡¡£A BA ºó¸ú B µÄģʽÏàÆ¥Åä¡£Õâ¸ö²Ù×÷·ûµÄÓÅÏȼ¶¸ßÓÚ |£¬Òò´Ë A B | C D Ï൱ÓÚ (A B) | (C D)¡£A | BA »ò B Ö®Ò»ÏàÆ¥Å䣬µ«²»Í