XML 1.0 ±Ô°Ý Çѱ¹¾î ¹ø¿ª¹®
È®À强 ÀÛ¼º ¾ð¾î

¹ø¿ª¿¡ °ü·ÃÇÑ ÁÖ¼®´Â ÀÌ »ö»óÀ¸·Î Ç¥½ÃÇÏ¿© ¿ø¹® ¹ø¿ª ³»¿ë°ú ±¸ºÐÇÏ¿´´Ù.
CSS Àû¿ëÀº ¿øº»¿¡ ÁØÇÏ¿© Ç쵂 ÇÑ±Û Ç¥ÇöÀÌ ¾î»öÇÑ ºÎºÐÀº ¾à°£ Á¶Á¤ÇÏ¿´´Ù.
W3C¿¡¼­ ÇÁ·¹ÀÓÀ» Çã¿ëÇÏÁö ¾Ê¾Æ ÇÁ·¹ÀÓÀ» ¼±Åà ÇÒ ¼ö ÀÖ°Ô ÇÏ¿´´Ù.
¹ø¿ª¹® Á¦°øÀÚ : Æ®¸®¿À À¥ ÇÁ·£µå Trio ȨÆäÀÌÁö
´Ù¸¥ ±Ô°Ý ¹ø¿ª¹®µé
[HTML 4] [CSS 2] [CSS 1] [XHTML 1.0]
[ ÇÁ·¹ÀÓ¾ø°Ô º¸±â ] [ ÇÁ·¹ÀÓÀÖ°Ô º¸±â ] [ ¹Ù´Ú ]
¿µ¹® XML 1.0 ¿ø¹®
¹ø¿ª¹® ½ÃÀÛ

W3CREC-xml-19980210


Extensible Markup Language (XML) 1.0

1998³â 2¿ù 10ÀÏ W3C Ãßõ¾È

ÀÌ ¹öÀü:
¿µ¹® 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
ÃÖÁ¾ ¹öÀü:
¿µ¹® http://www.w3.org/TR/REC-xml
ÀÌÀü ¹öÀü:
¿µ¹® http://www.w3.org/TR/PR-xml-971208
ÀÛ¼ºÀÚµé:
Tim Bray (Textuality and Netscape) mailto:tbray@textuality.com
Jean Paoli (Microsoft) ¿µ¹® mailto:jeanpa@microsoft.com
C. M. Sperberg-McQueen (University of Illinois at Chicago) ¿µ¹® mailto:cmsmcq@uic.edu

¿ä¾à

È®À强 ÀÛ¼º ¾ð¾î (XML: Extensible Markup Language)´Â ÀÌ ¹®¼­¿¡¼­ ¿ÏÀüÈ÷ ¼³¸íµÈ SGMLÀÇ ÇϺμ¼Æ®(subset)ÀÌ´Ù. ±× ¸ñÇ¥´Â ƯÀ¯ÀÇ SGMLÀÌ À¥»ó¿¡¼­ À¯ÁöµÇ°í, °³Á¤µÇ°í, 󸮵Ǿî ÇöÀç HTML¿¡¼­ »ç¿ë °¡´ÉÇÑ ¹æ½ÄÀ¸·Î ¸¸µå´Â °ÍÀÌ´Ù. XMLÀº SGML °ú HTML¿¡ ´Ù Àû¿ëÇÏ°í ¼­·Î Åë¿ë µÉ ¼ö ÀÖµµ·Ï ½±°Ô ¼³°èµÇ¾ú´Ù.


ÀÌ ¹®¼­ÀÇ »óÅÂ

ÀÌ ¹®¼­´Â W3CÀÇ ¸â¹ö¿Í °ü·ÃÀÚµéÀÇ °ËÅ並 °Åó, ÀÓ¿øȸÀÇ ½ÂÀÎÀ» ¹ÞÀº »óÅÂÀ̹ǷΠÀοëÇÏ°í »ç¿ëÇϴµ¥ ¾ÈÀüÇÏ´Ù.
W3CÀÇ Ãßõ¾È Çü¼º ±â´ÉÀº À¥ÀÇ Åë¿ë¼ºÀ» µ½µµ·Ï ÁÖÀǸ¦ ¸ðÀ¸°í, ±× °á°ú¸¦ ³Î¸® º¸±ÞÇÏ´Â °ÍÀÌ´Ù. ÀÌ·¸°Ô ÇÔÀ¸·Î¼­ ±× ±â´É¼º°ú »óÈ£ Åë¿ë¼ºÀ» °­È­ÇÑ´Ù.

ÀÌ ¹®¼­´Â. ±âÁ¸ÀÇ ³Î¸® »ç¿ëµÇ´Â ¿ùµå¿ÍÀ̵åÀ¥(World Wide Web)¿¡ »ç¿ëÇϱâ À§ÇÑ ±¹Á¦ ÅؽºÆ® ó¸® Ç¥ÁØ(Standard Generalized Markup Language, ISO 8879:1986(E)ÀÇ ¼öÁ¤ º¸Á¤)ÀÇ ÇϺΠ¼³Á¤¿¡ ÀÇÇÏ¿©. ¹®¹ýÀ» ÁöÁ¤ÇÑ´Ù. ÀÌ´Â W3C XML È°µ¿¿¡ ÀÇÇÏ¿© »ý¼ºµÇ¾úÀ¸¸ç, »ó¼¼ÇÑ ³»¿ëÀº ¿µ¹® http://www.w3.org/XML¿¡¼­ º¼ ¼ö ÀÖ´Ù. ÇöÀçÀÇ W3C Ãßõ¾Èµé°ú ´Ù¸¥ ±â¼ú ¹®¼­µéÀÇ ¸ñ·ÏÀº ¿µ¹® http://www.w3.org/TR¿¡¼­ º¼ ¼ö ÀÖ´Ù.

À̱԰ÝÀº ¿ë¾î URIÀ» »ç¿ëÇϴµ¥, ÀÌ´Â [Berners-Lee et al.]¿¡ ÀÇÇÏ¿© Á¤ÀÇµÈ °ÍÀ̸ç, ÁøÇàµÇ´Â ÀÛ¾÷Àº [IETF RFC1738]¿Í [IETF RFC1808]¿¡ °»½ÅµÈ´Ù.

À̱԰ÝÀÇ ¾Ë·ÁÁø ¿À·ùµéÀÇ ¸ñ·ÏÀº ¿µ¹® http://www.w3.org/XML/xml-19980210-errata¿¡¼­ º¼ ¼ö ÀÖ´Ù.

ÀÌ ¹®¼­¿¡¼­ ¿À·ùµé°¡ ¹ß°ßµÇ¸é ¿µ¹® xml-editor@w3.org¿¡ º¸°íÇØÁֱ⠹ٶõ´Ù.


È®À强 ÀÛ¼º ¾ð¾î(XML: Extensible Markup Language) 1.0

¸ñÂ÷

1. ¼Ò°³
    1.1 ±â¿ø°ú ¸ñÇ¥
    1.2 ¿ë¾î
2. ¹®¼­µé
    2.1 Àß Çü¼ºµÈ XML ¹®¼­µé
    2.2 ±ÛÀÚµé
    2.3 °øÅë ¹®¹ýÀû ±¸¼º
    2.4 ±ÛÀÚ µ¥ÀÌÅÍ¿Í ÄÚµå(markup)
    2.5 ÄÚ¸àÆ®(comment)
    2.6 ó¸®Áö½Ã(processing instruction)
    2.7 CDATA Ç׸ñ
    2.8 ¼­¹®(prolog)°ú ¹®¼­ ŸÀÔ ¼±¾ð(document type declaration)
    2.9 µ¶¸³ ¹®¼­ ¼±¾ð(Standalone Document Declaration)
    2.10 °ø¹éÀÇ Ã³¸®
    2.11 ÁÙ ³¡ÀÇ Ã³¸®(End-of-Line Handling)
    2.12 ¾ð¾îÀÇ ÀνÄ
3. ³í¸®Àû ±¸Á¶
    3.1 ½ÃÀÛű×, Á¾·áÅÂ±×¿Í ºó ¿¤·¹¸àÆ® ű×
    3.2 ¿¤·¹¸àÆ® ŸÀÔ ¼±¾ð
        3.2.1 ¿¤·¹¸àÆ® ³»¿ë
        3.2.2 È¥ÇÕ ³»¿ë(content)
    3.3 ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµé
        3.3.1 ¾ÖÆ®¸®ºäÆ® ŸÀÔ
        3.3.2 ¾ÖÆ®¸®ºäÆ®(attribute) µðÆúÆ®
        3.3.3 ¾ÖÆ®¸®ºäÆ® °ª Á¤»óÈ­(normalization)
    3.4 Á¶°ÇºÎ Ç׸ñ(conditional section)
4. ¹°¸®Àû ±¸Á¶
    4.1 ±ÛÀÚ¿Í ¿£Æ¼Æ¼ ÂüÁ¶
    4.2 ¿£Æ¼Æ¼(entity) ¼±¾ð
        4.2.1 ³»ºÎÀû ¿£Æ¼Æ¼(entity)
        4.2.2 ¿ÜºÎÀû ¿£Æ¼Æ¼(entity)
    4.3 Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)
        4.3.1 ÅؽºÆ® ¼±¾ð
        4.3.2 Àß Çü¼ºµÈ Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)
        4.3.3 ¿£Æ¼Æ¼ ¾ÈÀÇ ±ÛÀÚ ¿£ÄÚµù
    4.4 XML ó¸®ÀÚÀÇ ¿£Æ¼Æ¼¿Í ÂüÁ¶ÀÇ Ã³¸®
        4.4.1 ÀνÄÇÏÁö ¸øÇÏ´Â
        4.4.2 Æ÷ÇÔµÈ
        4.4.3 Æ÷ÇÔµÈ If À¯È¿¼º °ËÁ¤
        4.4.4 ±ÝÁöµÈ
        4.4.5 ¸®ÅͶö(literal)¿¡ Æ÷ÇÔµÈ
        4.4.6 ¾Ë¸²(notify)
        4.4.7 Åë°ú(bypassed)
        4.4.8 PE(ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼)·Î Æ÷ÇÔµÈ
    4.5 ³»ºÎÀû ¿£Æ¼Æ¼(entity) ±³Ã¼ ÅؽºÆ®ÀÇ Çü¼º
    4.6 »çÀü¿¡ Á¤ÀÇµÈ ¿£Æ¼Æ¼(entity)
    4.7 ÁÖ¼®(notation) ¼±¾ðµé
    4.8 ¹®¼­ ¿£Æ¼Æ¼(entity)
5. ±Ô°ÝºÎÇÕ¼º
    5.1 À¯È¿¼º °ËÁ¤ÇÏ´Â, À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚ
    5.2 XML ó¸®ÀÚ(processor)ÀÇ »ç¿ë
6. ÁÖ¼®(notation)

Appendices

A. ÂüÁ¶
    A.1 Áö¸íÀû ÂüÁ¶
    A.2 ´Ù¸¥ ÂüÁ¶
B. ±ÛÀÚ ºÐ·ù
C. XML°ú SGML (ºñÁö¸íÀû)
D. ¿£Æ¼Æ¼¿Í ±ÛÀÚ ÂüÁ¶ÀÇ È®Àå (ºñÁö¸íÀû)
E. ÆÇÁ¤Àû ³»¿ë ¸ðµ¨ (ºñÁö¸íÀû)
F. ±ÛÀÚ ¿£ÄÚµùÀÇ ÀÚµ¿°¨Áö (ºñÁö¸íÀû)
G. W3C XML ÀÛ¾÷±¸·ì (ºñÁö¸íÀû)


1. ¼Ò°³

È®À强 ÀÛ¼º ¾ð¾î (XML: Extensible Markup Language)´Â XML ¹®¼­¶ó ºÒ¸®¿ì´Â µ¥ÀÌÅÍ ¿ÀºêÁ§Æ®(object)ÀÇ ºÐ·ù¿Í ºÎºÐÀûÀ¸·Î À̸¦ ó¸®ÇÏ´Â ÄÄÇ»ÅÍ ÇÁ·Î±×·¥ÀÇ È°µ¿À» ±â¼úÇÑ´Ù. XMLÀº Àû¿ë(application) ÇÁ·ÎÈ­ÀÏ(profile) ȤÀº Á¦ÇÑµÈ SGML(Standard Generalized Markup Language [ISO 8879]) ¾ç½ÄÀÌ´Ù. ±¸¼º»ó XML ¹®¼­µéÀº SGML ¹®¼­µé¿¡ ºÎÇÕÇÑ´Ù.

XML ¹®¼­µéÀº ¿£Æ¼Æ¼(entity)·Î ºÒ¸®¿ì´Â ÀúÀåµÈ ´ÜÀ§µé·Î ¸¸µé¾î Áö¸ç, ÀÌ´Â Çؼ®(parse)µÈ ¶Ç´Â Çؼ® ¾ÈµÈ µ¥ÀÌÅ͸¦ °¡Áø´Ù. Çؼ®(parse)µÈ µ¥ÀÌÅÍ´Â ±ÛÀÚµé·Î ±¸¼ºµÇ¸ç, À̵é ÀϺδ ±ÛÀÚ µ¥ÀÌÅ͸¦ Çü¼ºÇϸç, ÀϺδ ÄÚµå(¸¶Å©¾÷: markup)À» Çü¼ºÇÑ´Ù. ÄÚµå(¸¶Å©¾÷)Àº ¹®¼­ÀÇ ÀúÀå ¹èÄ¡¿Í ³í¸®Àû ±¸Á¶¸¦ ±â¼ú(±âÀç»çÇ×)À» ¿£ÄÚµå(encode)ÇÑ´Ù. XMLÀº ÀúÀå ¹èÄ¡¿Í ³í¸®Àû ±¸Á¶¿¡ Á¦ÇÑ¿ä¼Ò¸¦ ÁÖ´Â ±â´É(mechanism)À» Á¦°øÇÑ´Ù.

XML ó¸®ÀÚ(processor)·Î ºÒ¸®¿ì´Â ¼ÒÇÁÆ®¿þ¾î ¸ðµâ(module)À» »ç¿ëÇÏ¿© XML ¹®¼­µéÀ» Àаí, ±× ³»¿ë(content)°ú ±¸Á¶¿¡ Á¢¼ÓÀ» Á¦°øÇÑ´Ù. XML ó¸®ÀÚ(processor)´Â Àû¿ë(application)À̶ó ºÒ¸®¿ì´Â ´Ù¸¥ ¸ðµâ(module)À» À§ÇÏ¿© ÀÏ(ÀÛ¾÷)ÇÏ´Â °ÍÀ¸·Î °£ÁֵȴÙ. ÀÌ ±Ô°ÝÀº, ¾î¶»°Ô XML µ¥ÀÌÅ͸¦ ÀÐ°í ±× Á¤º¸¸¦ Àû¿ë(application)¿¡ Á¦°øÇÏ¿©¾ß Çϴ°¡ ÇÏ´Â, XML ó¸®ÀÚÀÇ ÇÊ¿äÇÑ Çൿ(behavior)À» ±â¼úÇÑ´Ù.

1.1 ±â¿ø°ú ¸ñÇ¥

XMLÀº 1996 W3C°¡ ÁÖ°üÇÏ´Â XML ÀÛ¾÷±¸·ì(´çÃÊ¿¡´Â SGML Á¡°Ëȸ: Editorial Review Board)¿¡ ÀÇÇÏ¿© °³¹ßµÇ¾ú´Ù. Sun MicrosystemsÀÇ Jon Bosak°¡ ȸÀåÀ̾ú°í, ¿ª½Ã W3C¿¡ ÀÇÇÏ¿© Á¶Á÷µÈ, XML¿¡ ƯÈ÷ °ü½ÉÀÌ ÀÖ´Â ±¸·ì(Special Interest Group: °ú°Å SGML ÀÛ¾÷±¸·ìÀ¸·Î ¾Ë·ÁÁü)ÀÌ Âü¿©ÇÏ¿´´Ù. ÀÛ¾÷±¸·ìÀÇ ±¸¼º¿øÀº ºÎ·Ï¿¡ ±âÀçµÇ¾îÀÖ´Ù. Dan Connolly°¡ W3CÀÇ Á¢ÃË ´ã´çÀ¸·Î ÀÖ¾ú´Ù.

XML¿¡ ´ëÇÑ Åä·Ð ¸ñÇ¥´Â ´ÙÀ½°ú °°´Ù:

  1. XMLÀº ÀÎÅͳݿ¡¼­ ¸·¹Ù·Î »ç¿ë ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
  2. .
  3. XMLÀº ³ÐÀº Á¾·ùÀÇ Àû¿ë(application)À» Áö¿øÇÏ¿©¾ß ÇÑ´Ù.
  4. XMLÀº SGML°ú »óÈ£ ÅëÇؾß(»ç¿ë°¡´É) ÇÑ´Ù.
  5. ÀÌ´Â XML ¹®¼­µéÀ» ó¸®ÇÏ´Â ÇÁ·Î±×·¥À» ½±°Ô ¾µ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
  6. XMLÀÇ ¼±ÅÃÀû ¼º´É(feature)µéÀÌ ¿ÏÀüÈ÷ ÃּҵǴø°¡ °¡´ÉÇÏ¸é ¾ø¾î¾ß ÇÑ´Ù.
  7. XML ¹®¼­µéÀº Àΰ£ÀÌ ÀÌÇØÇϱ⿡ »ó´çÈ÷ ½¬¿ö¾ß ÇÑ´Ù.
  8. XML µðÀÚÀÎÀ» »¡¸® ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.
  9. XML µðÀÚÀÎÀ»Àº ¾ç½Ä¿¡ µû¸£°í ÇÔÃàÀûÀÌ¾ß ÇÑ´Ù.
  10. XML ¹®¼­µéÀº »ý¼ºÇϱ⠽¬¿ö¾ß ÇÑ´Ù.
  11. XML ÀÛ¼º(markup)¿¡¼­ÀÇ °£°á¼º(terseness)Àº º°·Î Áß¿äÇÏÁö ¾Ê´Ù.

ÀÌ ±Ô°Ý°ú °ü·ÃµÈ Ç¥Áصé(Unicode, ±ÛÀÚµéÀ» À§ÇÑ ISO/IEC 10646, ¾ð¾îÀÇ ÀÎ½Ä Å±׵éÀ» À§ÇÑ RFC 1766, ¾ð¾î À̸§ ÄÚµéÀ» À§ ÇÑ ISO 639, ±¹°¡ À̸§ Äڵ带 À§ÇÑ ISO 3166)Àº, ºñÇ¥ÁØÀÎ XML ¹öÀü 1.0°ú À̸¦ ó¸®ÇÏ´Â ±¸¼º ÄÄÇ»ÅÍ ÇÁ·Î±×·¥µî¿¡ ÇÊ¿äÇÑ, ¸ðµç Á¤º¸¸¦ Á¦°øÇÑ´Ù.

XML ±Ô°ÝÀÇ ¿ø¹® ¹öÀüÀº, ¸ðµç ÅؽºÆ®¿Í ¹ý·üÀû °æ°í¿¡ ÇÕ´çÇϸé, ¹èÆ÷¸¦ ÀÚÀ¯·Ó°Ô ÇÒ ¼ö ÀÖ´Ù.

1.2 ¿ë¾î

¿ë¾îµéÀº ÀÌ ±Ô°Ý º»Ã¼¿¡¼­ XML ¹®¼­µéÀ» ±â¼úÇϴµ¥ »ç¿ëµÇ¾ú´Ù. ´ÙÀ½ ¸ñ·Ï¿¡ Á¤ÀÇµÈ ¿ë¾îµéÀº ÀÌ ±Ô°ÝÀ» ±¸¼ºÇÏ´Â Á¤Àǵé°ú XML ó¸®ÀÚ(processor)ÀÇ È°µ¿À» ¼³¸íÇϴµ¥ »ç¿ëµÈ´Ù:

ÇÒ ¼ö ÀÖ´Ù(may)
±Ô°Ý¿¡ ºÎÇÕÇÏ´Â ¹®¼­µé°ú XML ó¸®ÀÚµéÀº Çã¿ëµÇ³ª, ¼³¸íµÈ ¹Ù¿Í ÀÏÄ¡ÇÏÁö ¾Ê¾Æµµ µÈ´Ù.
ÇÏ¿©¾ß ÇÑ´Ù(must)
±Ô°Ý¿¡ ºÎÇÕÇÏ´Â ¹®¼­µé°ú XML ó¸®ÀÚµéÀº ¹Ýµå½Ã ¼³¸íµÈ ¹Ù¿Í ÀÏÄ¡ ÇÒ ÇÊ¿ä°¡ ÀÖÀ¸¸ç, ±×·¸Áö ¾ÊÀ¸¸é ¿À·ù°¡ µÈ´Ù.
¿À·ù
ÀÌ ±Ô°ÝÀÇ ±ÔÄ¢À» À§¹ÝÇÏ´Â °ÍÀ¸·Î ±× °á°ú´Â Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù. ±Ô°Ý¿¡ ºÎÇÕÇÏ´Â ¼ÒÇÁÆ®¿þ¾î´Â ¿À·ù¸¦ °¨ÁöÇÏ°í, ¾Ë¸®¸ç, ȸº¹ÇÏ°Ô ÇÒ ¼ö ÀÖ´Ù.
Ä¡¸íÀû ¿À·ù
±Ô°Ý¿¡ ºÎÇÕÇÏ´Â XML ó¸®ÀÚ(processor)´Â ¿À·ù¸¦ °¨ÁöÇÏ°í, ±× Àû¿ë(application)¿¡ ¾Ë·Á¾ß ÇÑ´Ù. Ä¡¸íÀûÀÎ ¿À·ù¸¦ ¸¸³­ ´ÙÀ½, ó¸®ÀÚ´Â Ãß°¡ÀûÀÎ ¿À·ùµéÀ» °¨ÁöÇϱâ À§ÇÏ¿© °è¼Ó µ¥ÀÌÅ͸¦ ó¸® ÇÒ ¼ö ÀÖ°í, ±×¿Í °°Àº ¿À·ùµéÀ» Àû¿ë¿¡ ¾Ë¸± ¼ö ÀÖ´Ù. ¿À·ùµéÀÇ º¸Á¤À» Áö¿øÇϱâ À§ÇÏ¿© ó¸®ÀÚ´Â ¹®¼­·Î ºÎÅÍ Ã³¸®µÇÁö ¾ÊÀº µ¥ÀÌÅ͸¦, (±ÛÀÚ µ¥ÀÌÅÍ¿Í Äڵ帶ũ¾÷À» È¥ÇÕÇÏ¿©) Àû¿ëÀÌ »ç¿ë ÇÒ ¼ö ÀÖ´Â °ÍÀ¸·Î, ¸¸µé ¼ö ÀÖ´Ù. ±×·¯³ª, ÀÏ´Ü Ä¡¸íÀû ¿À·ù°¡ °¨ÁöµÇ¸é, ó¸®ÀÚ(processor)´Â Á¤»ó 󸮸¦ °è¼ÓÇÏ¿©¼­´Â ¾ÊµÈ´Ù. (¸»ÇÏÀÚ¸é, Á¤»óÀûÀÎ ¹æ¹ýÀ¸·Î ±ÛÀÚ µ¥ÀÌÅÍ¿Í ¹®¼­ÀÇ ³í¸®Àû ±¸Á¶¿¡ ´ëÇÑ Á¤º¸ÀÇ Àû¿ë¿¡°Ô Àü´ÞÀ» Áß´ÜÇÏ¿©¾ß ÇÑ´Ù.)
»ç¿ëÀÚÀÇ ¼±ÅÃÀ¸·Î
±Ô°Ý¿¡ ºÎÇÕÇÏ´Â ¼ÒÇÁÆ®¿þ¾î´Â ¹®Àå ¼ÓÀÇ ³»¿ë¿¡ µû¶ó ¼³¸íµÈ ¹Ù¿Í °°ÀÌ, ÇÒ¼ö Àְųª, ÇÏ¿©¾ß ÇÑ´Ù. ¸¸ÀÏ ¼±ÅûçÇ×ÀÌ ÀÖÀ¸¸é, ÀÌ´Â »ç¿ëÀÚ°¡ ¼³¸íµÈ ÀÛ¿ëÀ» °¡´ÉÇÏ°Ô Çϰųª, ÁßÁö ½Ãų ¼ö ÀÖ´Â ¼ö´ÜÀ» Á¦°øÇÑ´Ù.
À¯È¿¼º °ËÁ¤ ±âÁØ(Á¦ÇÑ»çÇ×)
¸ðµç À¯È¿(valid) XML ¹®¼­µé¿¡ Àû¿ëµÇ´Â ±ÔÄ¢ÀÌ´Ù. À¯È¿¼º Á¦ÇÑ¿ä¼ÒÀÇ À§¹èÇÏ´Â °ÍÀº ¿À·ùµéÀÌ´Ù; »ç¿ëÀÚ ¼±ÅÃÀ¸·Î À¯È¿¼º °ËÁ¤ XML ó¸®ÀÚ(processor)¿¡ ÀÇÇÏ¿© ¾Ë·Á Áà¾ßÇÑ´Ù.
Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×
¸ðµç Àß Çü¼ºµÈ XML ¹®¼­µé¿¡ Àû¿ëµÇ´Â ±ÔÄ¢ÀÌ´Ù. Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×µéÀ» À§¹èÇÏ´Â °ÍÀº Ä¡¸íÀû ¿À·ùµéÀÌ´Ù.
ÀÏÄ¡

(½ºÆ®¸µÀ̳ª À̸§ÀÇ ÀÏÄ¡): ºñ±³µÇ´Â µÎ°³ÀÇ ½ºÆ®¸µÀ̳ª À̸§µéÀÌ ²À °°¾Æ¾ß ÇÑ´Ù. ISO/IEC 10646 ¿¡¼­ ¿©·¯ °¡´ÉÇÑ Ç¥Çö(¿¹¸¦ µé¾î »çÀü Á¶ÇÕµÈ °Í°ú º£À̽º+±¸ºÐÀû ¾ç½ÄÀÇ ±ÛÀÚµé)ÀÇ ±ÛÀÚµéÀÌ ¾çÂÊ ½ºÆ®¸µ¿¡¼­ °°Àº Ç¥ÇöÀ» °¡Áú ¶§¸¸ ÀÏÄ¡ÇÑ´Ù. »ç¿ëÀÚ ¼±ÅÃÀ¸·Î, ó¸®ÀÚ(processor)´Â ÀÌ¿Í °°Àº ±ÛÀÚµéÀ» Á¤±ÔÀÇ ¾ç½ÄÀ¸·Î Á¤»óÈ­(ÀϹÝÈ­) ½Ãų ¼ö ÀÖ´Ù. ´ë¼Ò¹®ÀÚÀÇ ÀüȯÀº »çÀü¿¡ Çü¼ºµÇÁö ¾Ê´Â´Ù.

(¹®¹ý¿¡¼­ ½ºÆ®¸µ°ú ÄÚµå(rule)ÀÇ ÀÏÄ¡): ±× ÀÛ¾÷À¸·Î »ý¼ºµÈ ¾ð¾î¿¡ ¼ÓÇϸé, ½ºÆ®¸µÀº ¹®¹ýÀû »ý¼º°ú ÀÏÄ¡ÇÑ´Ù.

(³»¿ë(content)°ú ³»¿ë ¸ðµ¨(model)ÀÇ ÀÏÄ¡): "¿¤·¹¸àÆ® À¯È¿¼º" Á¦ÇÑ¿ä¼Ò¿¡ ¼³¸íµÈ ÇüÅÂ¿Í ¸ÂÀ¸¸é, ¿¤·¹¸àÆ®(element)´Â ±× ¼±¾ð°ú ÀÏÄ¡ÇÑ´Ù.

±Ô°ÝºÎÇÕ¼º(compatibility)À» À§ÇÏ¿©
¼øÀüÈ÷ XMLÀÌ SGML°úÀÇ ±Ô°ÝºÎÇÕ¼ºÀ» À¯ÁöÇÔÀ» È®½ÇÈ÷ Çϱâ À§ÇÑ, XML¿¡ Æ÷ÇÔµÈ ¼º´É(feature)ÀÌ´Ù.
°øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©
±âÁ¸ ¼³Ä¡µÈ SGML ó¸®ÀÚ(processor)µéÀÇ ±âÃÊ(ISO 8879·Î Æó±â µÈ WebSGML Àû¿ë »öÀÎ)¿¡¼­, XML ¹®¼­µéÀÌ Ã³¸® µÉ °¡´É¼ºÀ» Çâ»óÇϱâ À§ÇÏ¿©, ºñ ±¸¼ÓÀûÀ¸·Î, Æ÷ÇÔÇÑ Ãßõ»çÇ×ÀÌ´Ù.

2. ¹®¼­µé

À̱԰ݿ¡ Á¤ÀÇµÈ ¹Ù¿¡ µû¶ó Àß Çü¼ºµÈ °ÍÀ̸é, µ¥ÀÌÅÍ ¿ÀºêÁ§Æ®(object)´Â ÇϳªÀÇ XML ¹®¼­ÀÌ´Ù. Àß Çü¼ºµÈ XML ¹®¼­´Â ¶ÇÇÑ, Ãß°¡ÀûÀÎ Á¦ÇÑ¿ä¼Òµé¿¡ ¸ÂÀ¸¸é, À¯È¿(valid) ÇÒ ¼ö ÀÖ´Ù.

°¢ XML ¹®¼­´Â ³í¸®Àû ±¸Á¶¿Í ¹°¸®Àû ±¸Á¶¸¦ °®´Â´Ù. ¹°¸®ÀûÀ¸·Î, ¹®¼­´Â ¿£Æ¼Æ¼(entity)¶ó ºÒ¸®¿ì´Â ´ÜÀ§µé·Î ÀÌ·ç¾î Áø´Ù. ÇÑ ¿£Æ¼Æ¼(entity)´Â ´Ù¸¥ ¿£Æ¼Æ¼¸¦ ÂüÁ¶(refer) ÇÒ ¼ö ÀÖÀ¸¸ç, ±× ¹®¼­ ¾È¿¡ Æ÷ÇÔµÇ°Ô µÈ´Ù. ÇÑ ¹®¼­´Â ÃÖ»óÀ§("root") ¶Ç´Â ¹®¼­ ¿£Æ¼Æ¼(entity)·Î ½ÃÀ۵ȴÙ. ³í¸®ÀûÀ¸·Î, ¹®¼­´Â ¼±¾ð, ¿¤·¹¸àÆ®(element), ÄÚ¸àÆ®(comment), ±ÛÀÚ ÂüÁ¶¿Í ó¸®Áö½Ã(processing instruction)µé·Î ÀÌ·ç¾î Áö¸ç, ÀÌµé ¸ðµÎ ±× ¹®¼­ÀÇ ¸í½ÃÀû ÄÚµå(markup)·Î ÁöÁ¤µÈ´Ù. ³í¸®Àû ±¸Á¶¿Í ¹°¸®Àû ±¸Á¶´Â, "4.3.2 Àß Çü¼ºµÇ°í Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)"¿¡ ¼³¸íµÈ ¹Ù¿Í °°ÀÌ, ÀûÁ¤ÇÏ°Ô ³×½ºÆ®(nest)µÇ¾î¾ß ÇÑ´Ù.

2.1 Àß Çü¼ºµÈ XML ¹®¼­µé

ÅؽºÆ®Àû ¿ÀºêÁ§Æ®(object)´Â ´ÙÀ½À» ¸¸Á·½ÃÅ°¸é Àß Çü¼ºµÈ XML ¹®¼­ÀÌ´Ù:

  1. ÀüüÀûÀ¸·Î, ¶óº§µÈ(labeled) ¹®¼­ »ê¹°°ú ÀÏÄ¡ÇÑ´Ù.
  2. À̱԰ݿ¡¼­ ÁÖ¾îÁø Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ׵鿡 ºÎÇÕÇÑ´Ù.
  3. ¹®¼­¿¡¼­ Á÷Á¢ ȤÀº °£Á¢ÀûÀ¸·Î ÂüÁ¶µÈ °¢ Çؼ®(parse)µÈ ¿£Æ¼Æ¼°¡ Àß Çü¼ºµÈ °ÍÀÌ´Ù.

¹®¼­(Document)
[1]  document ::= prolog element Misc*

ÀÏÄ¡ÇÏ´Â ¹®¼­(document) »ê¹°(production)Àº ´ÙÀ½ »çÇ×À» ³»Æ÷(ÀǹÌ)ÇÑ´Ù:

  1. Çϳª ÀÌ»óÀÇ ¿¤·¹¸àÆ®(element)¸¦ Æ÷ÇÔÇÑ´Ù.
  2. ÃÖ»óÀ§(root)¶ó ºÒ¸®¿ì´Â ¿¤·¹¸àÆ® ¶Ç´Â ¹®¼­ ¿¤·¹¸àÆ® ´Ü Çϳª ¸¸À» °¡Áö¸ç, ÀÌµé ºÎºÐÀÌ ¾î¶² ´Ù¸¥ ¿¤·¹¸àÆ®ÀÇ ³»¿ë(content) ¾È¿¡ ³ªÅ¸³ªÁö ¾Ê´Â´Ù. ¸ðµç ´Ù¸¥ ¿¤·¹¸àÆ®µé¿¡¼­, ¶Ç ´Ù¸¥ ¿¤·¹¸àÆ®ÀÇ ³»¿ë ¼Ó¿¡ ½ÃÀÛűװ¡ ÀÖÀ¸¸é, Á¾·áű׵µ °°Àº ¿¤·¹¸àÆ®ÀÇ ³»¿ë ¼Ó¿¡ ÀÖ´Ù. Á» ´õ °£´ÜÈ÷ ¸»Çϸé, ½ÃÀÛ°ú Á¾·áű׵é·Î ±¸ºÐµÇ´Â ¿¤·¹¸àÆ®µéÀº ¼­·Î ÀûÁ¤ÇÏ°Ô ³×½ºÆ®(nest) µÇ¾îÀÖ´Ù.

ÀÌ °á°ú·Î¼­, ¹®¼­¿¡¼­ ÃÖ»óÀ§°¡ ¾Æ´Ñ(non-root) °¢ ¿¤·¹¸àÆ® 'C'¿¡°Ô´Â, 'C'´Â 'P'ÀÇ ³»¿ë ¾È¿¡ ÀÖÀ¸³ª, 'P'ÀÇ ³»¿ë¿¡ ÀÖ´Â ¾î¶² ´Ù¸¥ ¿¤·¹¸àÆ®ÀÇ ³»¿ëÀÌ ¾ÊµÇ·Ï, ¹®¼­¿¡¼­ ´Ù¸¥ ¿¤·¹¸àÆ® 'P'°¡ ÀÖ´Ù, ¿©±â¼­ 'P'´Â CÀÇ ¸ðü(parent)·Î ÂüÁ¶µÇ°í, 'C'´Â 'P'ÀÇ ÀÚ½Ä(child)À¸·Î ÂüÁ¶µÈ´Ù.

2.2 ±ÛÀÚ

Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)´Â ÅؽºÆ®¸¦ °®´Âµ¥, ÀÌ´Â ±ÛÀÚµéÀÇ ¿¬¼ÓÀ¸·Î, ÄÚµå(markup)³ª ±ÛÀÚ µ¥ÀÌÅÍ°¡ µÉ ¼ö ÀÖ´Ù. ÇÑ ±ÛÀÚ´Â, ISO/IEC 10646 [ISO/IEC 10646]¿¡ ÁöÁ¤ µÈ ¹Ù¿Í °°ÀÌ, ÅؽºÆ®ÀÇ ±âÃÊ ´ÜÀ§ÀÌ´Ù. ¿Ã¹Ù¸¥(legal) ±ÛÀÚµéÀº ÅÇ(tab), ¸®ÅÏ(enter), ÁÙ°ø±Þ(»õÁÙ ³Î±â), ¿Ã¹Ù¸¥ Unicode¿Í ISO/IEC 10646ÀÇ ±×·¡ÇÈ ±ÛÀÚµéÀÌ´Ù. [Unicode] Ç׸ñ 6.8¿¡¼­ Á¤ÀÇµÈ "±Ô°ÝºÎÇÕ¼º(compatibility) ±ÛÀÚµé"ÀÇ »ç¿ëÀº ÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù.

±ÛÀÚ ¹üÀ§(Character Range)
[2]  Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* Unicode ±ÛÀÚ(´ë¿ë ºí·°, FFFE, FFFF Á¦¿Ü). */

ÀÌÁø¼ö(bit) ÆÐÅÏÀ¸·Î ÄÚµå Æ÷ÀÎÆ®(code point) ±ÛÀÚ ¿£ÄÚµùÇÏ´Â ±â±¸(mechanism)´Â ¿£Æ¼Æ¼(entity)¿¡ µû¶ó ¼­·Î ´Ù¸£´Ù. ¸ðµç XML ó¸®ÀÚ(processor)´Â 10646 ÀÇ UTF-8 ¿Í UTF-16 ¿£ÄÚµù(encoding)À» ¼ö¿ëÇÏ¿©¾ß ÇÑ´Ù. ÀÌ µÎ°¡Áö Áß ¾î´À °ÍÀÌ »ç¿ëµÇ´Â°¡ ½ÅÈ£ º¸³»´Â ±â±¸, ¶Ç´Â ´Ù¸¥ ¿£ÄÚµùÀ» °¡Á®´Ù ¾²´Â ±â±¸´Â µÚ 4.3.3 "¿£Æ¼Æ¼ÀÇ ±ÛÀÚ ¿£ÄÚµù"¿¡¼­ ´Ù·é´Ù.

2.3 °øÅë(common) ¹®¹ýÀû ±¸¼º

¿©±â¼­´Â ¹®¹ý¿¡¼­ ³Î¸® »ç¿ëµÇ´Â ÀϺΠ±âÈ£(symbol)µéÀ» Á¤ÀÇÇÑ´Ù.

S (°ø¹é: space)Àº ÇÑ°³ ÀÌ»óÀÇ °ø¹é±ÛÀÚ(space: #x20), ¸®ÅÏ(enter), ÁÙ°ø±Þ(»õÁÙ ³Ö±â), ÅÇ(tab)µé·Î ±¸¼ºµÈ´Ù.

°ø¹é(White Space)
[3]  S ::= (#x20 | #x9 | #xD | #xA)+

±ÛÀÚµéÀº ÆíÀÌ»ó ±ÛÀÚ, ¼ýÀÚ(digit)¿Í ´Ù¸¥ ±ÛÀÚµé·Î ºÐ·ùµÈ´Ù. ±ÛÀÚ(letter)´Â ¾ËÆĺ£Æ®(alphabetic), À½Àý ±âÃʱÛÀÚ(syllabic base)¿Í Çϳª ÀÌ»óÀÇ Á¶ÇÕµÈ ±ÛÀÚ, Ç¥½Ä±ÛÀÚ(ideographic)µé·Î ±¸¼ºµÈ´Ù. °¢ ºÐ·ù ³» ƯÁ¤ ±ÛÀÚµéÀÇ ¿ÏÀüÇÑ Á¤ÀÇ´Â B. "±ÛÀÚ ºÐ·ù"¿¡ ¼³¸íµÇ¾ú´Ù.

À̸§(Name)Àº, ±ÛÀÚ ¶Ç´Â ÇÑ°³ÀÇ ±¸µÔÁ¡ ±ÛÀÚ(¸î°¡Áö Áß)·Î ½ÃÀ۵ǰí, ±ÛÀÚ³ª ¼ýÀÚ, ÇÏÀÌÇÂ(-), ¹ØÁÙ(_), ÄÝ·Ð(:) ¶Ç´Â Á¡(.)¸¦ ·Î ¾Ë·ÁÁø ±ÛÀÚµéÀ» °è¼ÓÀûÀ¸·Î °®´Â, ÇϳªÀÇ ÅäÅ«(token)ÀÌ´Ù. ½ºÆ®¸µ "xml" ȤÀº (('X'|'x') ('M'|'m') ('L'|'l'))¿Í ÀÏÄ¡ÇÏ´Â ´Ù¸¥ ½ºÆ®¸µÀ¸·Î ½ÃÀÛÇÏ´Â À̸§Àº ÀÌ ±Ô°Ý°ú ÇâÈÄ ¹öÀüµé¿¡ Ç¥ÁØÈ­¸¦ À§ÇÏ¿© ¿¹¾àµÈ °ÍÀÌ´Ù.

ÁÖ¼®: XML À̸§ ¾ÈÀÇ ÄÝ·Ð(:) ±ÛÀÚ´Â À̸§ ÀÚ¸®¸¦ ½ÇÇèÇϱâ À§ÇØ ¿¹¾àµÈ °ÍÀÌ´Ù. ÀÌ´Â ÇâÈÄ ¾î´À ½ËÁ¡¿¡¼­ Ç¥ÁØÈ­ µÉ °ÍÀ¸·Î ±â´ëµÇ¸ç, ±× ½ËÁ¡¿¡¼­ ¹®¼­¿¡ ½ÇÇè ¸ñÀûÀ¸·Î »ç¿ëÇÏ´Â ÄÝ·ÐÀ» °»½Å µÉ ¼ö ÀÖ½¿À» ÀǹÌÇÑ´Ù. (XML¿¡¼­ À̸§ÀÚ¸®(name-space) ±â±¸(mechanism)¿¡ À̸§ÀÚ¸® ±¸ºÐÀÚ(delimiter)·Î ÄÝ·ÐÀ» ½ÇÁ¦·Î äÅà ÇÒ °ÍÀΰ¡¿¡ ´ëÇÑ º¸ÁõÀº ¾ø´Ù.) ½ÇÁ¦·Î ÀÌ´Â Á¦ÀÛÀÚ°¡ ÄÝ·ÐÀ» À̸§ÀÚ¸® ½ÇÇè ÀÌ¿Ü¿¡´Â XML À̸§¿¡ »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÏ°í, XML ó¸®ÀÚ(processor)´Â ÄÝ·ÐÀ» À̸§ ±ÛÀÚ·Î ¹Þ¾Æµé¿©¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù.

Nmtoken (À̸§ ÅäÅ«)Àº ¾î¶² À̸§±ÛÀÚµéÀÇ È¥ÇÕüÀÌ´Ù.

À̸§°ú ÅäÅ«(Names and Tokens)
[4]  NameChar ::= LetterDigit | '.' | '-' | '_' | ':' | CombiningCharExtender
[5]  Name ::= (Letter | '_' | ':') (NameChar)*
[6]  Names ::= Name (S Name)*
[7]  Nmtoken ::= (NameChar)+
[8]  Nmtokens ::= Nmtoken (S Nmtoken)*

¸®ÅͶö(literal) µ¥ÀÌÅÍ´Â, ±× ½ºÆ®¸µÀÇ ±¸ºÐÀÚ·Î »ç¿ëµÈ µû¿ÈÇ¥¸¦ Á¦¿ÜÇÏ°í, µû¿ÈÇ¥ ¼ÓÀÇ ½ºÆ®¸µÀÌ´Ù. ¸®ÅͶö µ¥ÀÌÅÍ´Â ³»ºÎÀû ¿£Æ¼Æ¼(entity)ÀÇ ³»¿ë(EntityValue), ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ °ª(AttValue)°ú ¿ÜºÎÀû ÀνÄÀÚ(identifier: SystemLiteral)µéÀ» ÁöÁ¤Çϴµ¥ »ç¿ëµÈ´Ù. SystemLiteralÀº ÄÚµå(markup)ÀÇ Ã³¸®(scanning) ¾øÀÌ Çؼ®(parse) µÉ ¼ö ÀÖ´Ù´Â Á¡¿¡ ÁÖÀÇÇ϶ó.

¸®ÅͶö(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 ±ÛÀÚ µ¥ÀÌÅÍ¿Í ÄÚµå(markup)

ÅؽºÆ®´Â ±ÛÀÚ µ¥ÀÌÅÍ¿Í ÄÚµå(markup)ÀÇ È¥ÇÕÀ¸·Î ±¸¼ºµÇ¾î ÀÖ´Ù. ÄÚµå(markup)´Â ½ÃÀÛű×(tag), Á¾·áű×, ºó ¿¤·¹¸àÆ® ű×, ¿£Æ¼Æ¼(entity) ÂüÁ¶, ±ÛÀÚ ÂüÁ¶, ÄÚ¸àÆ®, CDATA Ç׸ñ ±¸ºÐÀÚ(delimiter), ¹®¼­ ŸÀÔ ¼±¾ð(document type declaration), ó¸®Áö½Ã(processing instruction)µéÀÇ ¾ç½ÄÀ» °®´Â´Ù.

Äڵ带 ±¸¼ºÇÏ´Ï ¾Ê´Â ¸ðµç ÅؽºÆ®´Â ¹®¼­ÀÇ ±ÛÀÚ µ¥ÀÌÅÍÀÌ´Ù.

ÄÚµå(markup) ±¸ºÐÀÚ·Î »ç¿ë°Å³ª, ¶Ç´Â ÄÚ¸àÆ®(comment), ó¸®Áö½Ã(processing instruction) ¶Ç´Â CDATA Ç׸ñ ¾È¿¡¼­ ¸¸ ¾ÚÆÛ»÷µå ±ÛÀÚ(&)¿Í ¿ÞÂÊ ²©¼â(<)°¡ ±× ¸®ÅͶö(literal) ¾ç½Ä¿¡ ³ªÅ¸³¯ ¼ö ÀÖ´Ù. ±×µéÀº ¶ÇÇÑ ³»ºÎÀû ¿£Æ¼Æ¼(entity) ¼±¾ð(declaration)ÀÇ ¸®ÅͶö ¿£Æ¼Æ¼ °ª ¾È¿¡¼­µµ ¿Ã¹Ù¸¥(legal) °ÍÀÌ´Ù. Ç׸ñ 4.3.2 "Àß Çü¼ºµÇ°í Çؼ®(parse)µÈ ¿£Æ¼Æ¼"¸¦ ÂüÁ¶Ç϶ó. ¸¸ÀÏ ´Ù¸¥ °÷¿¡¼­ ÇÊ¿äÇÏ¸é °¢°¢, ¼ýÄ¡(numeric) ±ÛÀÚ ÂüÁ¶³ª "&amp;" ½ºÆ®¸µ°ú "&lt;"¸¦ »ç¿ëÇÏ¿© ¿¡½ºÄÉÀÔ(escaped) µÇ¾î¾ß ÇÑ´Ù. ¿À¸¥ÂÊ ²©¼â(>)´Â ½ºÆ®¸µ "&gt;"¸¦ »ç¿ëÇÏ¿© Ç¥Çö ÇÒ ¼ö ÀÖÀ¸¸ç, ³»¿ë ¼ÓÀÇ ½ºÆ®¸µ "]]>" ¾È¿¡ ³ªÅ¸³ª°í CDATA Ç׸ñÀÇ Á¾·áÀ» ¸¸µéÁö ¾ÊÀ¸¶§´Â, ±Ô°ÝºÎÇÕ¼ºÀ» À§ÇÏ¿©, ¹Ýµå½Ã "&gt;"À» »ç¿ëÇÏ¿© ¿¡½ºÄÉÀÔ(escaped) µÇ°Å³ª ±ÛÀÚ ÂüÁ¶À̾î¾ß ÇÑ´Ù.

¿¤·¹¸àÆ®ÀÇ ³»¿ë¿¡¼­, ±ÛÀÚ µ¥ÀÌÅÍ´Â, ¾î¶² ÄÚµå(markup)ÀÇ ½ÃÀÛ±¸ºÐÀÚ¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â, ±ÛÀÚµéÀÇ ½ºÆ®¸µÀÌ´Ù. CDATA Ç׸ñ¿¡¼­, ±ÛÀÚ µ¥ÀÌÅÍ´Â, CDATA Ç׸ñÀ» ´Ý´Â ±¸ºÐÀÚ(delimiter)ÀÎ "]]>"¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â, ±ÛÀÚµéÀÇ ½ºÆ®¸µÀÌ´Ù.

¾ÖÆ®¸®ºäÆ® °ª¿¡ ´ÜÀÏ, ÀÌÁß µû¿ÈÇ¥µéÀÇ Æ÷ÇÔÀ» Çã¿ëÇÏ·Á¸é, ´ÜÀÏ µû¿È ±ÛÀÚ(')´Â "&apos;"·Î, ÀÌÁß µû¿È ±ÛÀÚ(")´Â "&quot;"·Î Ç¥Çö ÇÒ ¼ö ÀÖ´Ù.

±ÛÀÚ µ¥ÀÌÅÍ(Character Data)
[14]  CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*)

2.5 ÄÚ¸àÆ®(comment)

¹®¼­¿¡¼­ ÄÚ¸àÆ®´Â ´Ù¸¥ ÄÚµå(markup) ¹Û ¾îµð¿¡³ª ³ªÅ¸ ³¯ ¼ö ÀÖ°í, ¶ÇÇÑ, ¹®¼­ ŸÀÔ ¼±¾ð(document type declaration) ¾È, ¹®¹ý¿¡ ÀÇÇÏ¿© Çã¿ë µÈ Àå¼Ò¿¡ ³ªÅ¸ ³¯ ¼ö ÀÖ´Ù. À̵éÀº ¹®¼­ÀÇ ±ÛÀÚ µ¥ÀÌÅÍ ºÎºÐÀÌ ¾Æ´Ï´Ù. XML ó¸®ÀÚ(processor)´Â, ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÏÁö¸¸, Àû¿ë(application)ÀÌ ÄÚ¸àÆ® ÅؽºÆ®¸¦ ÀÐ°Ô ÇÒ ¼ö ÀÖ´Ù. ±Ô°ÝºÎÇÕ¼ºÀ» À§ÇÏ¿©, ½ºÆ®¸µ "--"´Â ÄÚ¸àÆ® ¼Ó¿¡ ³ªÅ¸³ªÁö ¸»¾Æ¾ß ÇÑ´Ù.

ÄÚ¸àÆ®(Comments)
[15]  Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* '-->'

ÄÚ¸àÆ®ÀÇ ¿¹Á¦:

<!-- <head> & <body>ÀÇ ¼±¾ð -->

2.6 ó¸®Áö½Ã

ó¸®Áö½Ã(processing instruction: PI)´Â ¹®¼­µéÀÌ Àû¿ë(application)À» À§ÇØ Áö½Ã¸¦ Æ÷ÇÔ ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù.

ó¸®Áö½Ã(Processing Instructions)
[16]  PI ::= '<?' PITarget (S (Char* - (Char* '?>' Char*)))? '?>'
[17]  PITarget ::= Name - (('X' | 'x') ('M' | 'm') ('L' | 'l'))

PI´Â ¹®¼­ÀÇ ±ÛÀÚ µ¥ÀÌÅÍ ºÎºÐÀÌ ¾Æ´Ï°í, Àû¿ë(application)¿¡ Àü´ÞÇÏ¿©¾ß ÇÑ´Ù. PI´Â Áö½Ã°¡ ¾î´À Àû¿ëÀ¸·Î ÇâÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤Çϴµ¥ »ç¿ëÇÏ´Â ¸ñÇ¥(PITarget)·Î ½ÃÀÛÇÑ´Ù. ¸ñÇ¥(target) À̸§ "XML", "xml" µîÀº Ç¥ÁØÈ­³ª À̱԰ÝÀÇ ÇâÈÄ ¹öÀü À§ÇØ ¿¹¾àµÇ¾ú´Ù. XML ÁÖ¼®(notation) ±â±¸(mechanism)°¡ °ø½ÄÀûÀÎ PI ¸ñÇ¥ ¼±¾ð¿¡ »ç¿ë µÉ ¼ö ÀÖ´Ù.

2.7 CDATA Ç׸ñ

CDATA Ç׸ñÀº ±ÛÀÚ µ¥ÀÌÅÍ°¡ ³ªÅ¸ ³¯ ¼ö ÀÖ´Â ¾îµð¿¡³ª ³ªÅ¸³¯ ¼ö ÀÖ°í, À̵éÀº, ±×·¸Áö ¾ÊÀ¸¸é ÄÚµå(markup)·Î ÀνĵǴÂ, ±ÛÀÚµéÀ» Æ÷ÇÔÇÏ´Â ÅؽºÆ® ºí·°À» ¿¡½ºÄÉÀÔ(escape) Çϴµ¥ »ç¿ëµÈ´Ù. CDATA Ç׸ñÀº ½ºÆ®¸µ "<![CDATA["·Î ½ÃÀÛµÇ°í ½ºÆ®¸µ "]]>"·Î ³¡³­´Ù.

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

CDATA Ç׸ñ ¾È¿¡¼­´Â, CDEnd ½ºÆ®¸µ ¸¸ÀÌ ÄÚµå(markup)·Î ÀνĵȴÙ. ±×·¡¼­ ¿ÜÂÊ ²©¼â(<)¿Í ¾ÚÆÛ»÷µå(&)µéÀÌ ±× ¸®ÅͶö(literal) ¾ç½Ä ¾È¿¡ ³ªÅ¸³¯ ¼ö ÀÖ´Ù; À̵éÀº "&lt;"¿Í "&amp;"¸¦ »ç¿ëÇÏ¿© ¿¡½ºÄÉÀÔ(escape) µÉ ÇÊ¿ä°¡ ¾øÀ¸¸ç µÉ ¼öµµ ¾ø´Ù. CDATA Ç׸ñµéÀº ³×½ºÆ®(nest) µÉ ¼ö ¾ø´Ù.

CDATA Ç׸ñÀÇ ¿¹Á¦, ¿©±â¼­ "<greeting>"¿Í "</greeting>" »çÀÌ´Â ÄÚµå(markup)·Î ÀνĵÇÁö ¾Ê°í ±ÛÀÚ µ¥ÀÌÅÍ·Î ÀνĵȴÙ:

<![CDATA[<greeting>¿©·¯ºÐ ¾È³çÇϼ¼¿ä!</greeting>]]>

2.8 ¼­¹®(prolog)°ú ¹®¼­ ŸÀÔ ¼±¾ð(document type declaration)

XML ¹®¼­µéÀº »ç¿ëµÈ XMLÀÇ ¹öÀüÀ» ÁöÁ¤ÇÏ´Â XML ¼±¾ðÀ¸·Î ½ÃÀÛ ÇÒ ¼ö ÀÖÀ¸¸ç, ½ÃÀÛÇÏ¿©¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, ¾Æ·¡´Â ¿ÏÀüÇÑ XML ¹®¼­ÀÌ°í, Àß Çü¼ºµÈ °ÍÀÌÁö¸¸ À¯È¿(valid)ÇÏÁö´Â ¾Ê´Ù:

<?xml version="1.0"?>
<greeting>¿©·¯ºÐ ¾È³çÇϼ¼¿ä!</greeting>

À̰͵µ °°´Ù:

<greeting>¿©·¯ºÐ ¾È³çÇϼ¼¿ä!</greeting>

¹öÀü ¹øÈ£ "1.0"ÀÌ À̱԰ÝÀÇ ÀÌ ¹öÀüÀÇ ±Ô°ÝºÎÇÕ¼ºÀ» ³ªÅ¸³»±â À§ÇÏ¿© »ç¿ëµÇ¾î¾ß ÇÑ´Ù; À̱԰ÝÀÇ ÀÌ ¹öÀü¿¡ ºÎÇÕÇÏÁö ¾Ê´Â °æ¿ì, °ª "1.0"À» »ç¿ëÇÑ ¹®¼­´Â ¿À·ùÀÌ´Ù. ÇâÈÄ À̱԰ÝÀÇ ¹öÀüµéÀº "1.0"°ú ´Ù¸¥ ¼öÄ¡¸¦ ºÎ¿©ÇÏ°íÀú ÇÏ´Â °ÍÀÌ XML ÀÛ¾÷±¸·ìÀÇ ÀǵµÀÌÁö¸¸, ÇâÈÄ XMLÀÇ ¹öÀüÀ» ¸¸µé °ÍÀΰ¡, ¸¸µé¸é ¾î¶² ¹øÈ£ ºÙÀÌ´Â ¹æ½ÄÀ» »ç¿ë ÇÒ °ÍÀΰ¡¸¦ È®ÀÎÇÏ°í ÀÖÁö´Â ¾Ê´Ù. ÇâÈÄ ¹öÀüµé¿¡ ´ëÇÑ °áÁ¤ÀÌ ¾øÀ¸¹Ç·Î, ÀÌ ±¸¼ºÀº ÀÚµ¿ ¹öÀü ÀνÄÀÇ °¡´É¼ºÀ» Çã¿ëÇÏ´Â ¼ö´ÜÀ» Á¦°øÇϸç, ÇÊ¿ä ÇÒ °ÍÀÌ´Ù. ó¸®ÀÚ(processor)´Â, Áö¿øµÇÁö ¾Ê´Â ¹öÀüµé·Î ¶óº§µÈ ¹®¼­µéÀ» ¹Þ¾ÒÀ» ¶§, ¿À·ù ½ÅÈ£¸¦ º¸³¾ ¼ö ÀÖ´Ù.

XML ¹®¼­¿¡¼­ ÄÚµå(markup)ÀÇ ±â´É(function)Àº, ±× ÀúÀå°ú ³í¸®Àû ±¸Á¶, ¿¬°üµÈ ¾ÖÆ®¸®ºäÆ® °ª°ú ¦À̵Ǵ ±× ³í¸®Àû ±¸Á¶¸¦ ±â¼úÇϱâ À§ÇÑ °ÍÀÌ´Ù. XMLÀº ¹®¼­ ŸÀÔ ¼±¾ð(document type declaration), ³í¸®Àû ±¸Á¶ÀÇ Á¦ÇÑ¿ä¼Ò Á¤ÀÇ¿Í »çÀü¿¡ Á¤ÀÇµÈ ÀúÀå ´ÜÀ§µéÀÇ »ç¿ëÀ» Áö¿øÇÏ´Â ±â±¸(mechanism)¸¦ Á¦°øÇÑ´Ù. ¸¸ÀÏ ¿¬°üµÈ ¹®¼­ ŸÀÔ ¼±¾ð¸¦ °®°í ÀÖ°í, ¹®¼­°¡ ±× ¾È¿¡ ³ªÅ¸³­ Á¦ÇÑ¿ä¼Ò¿¡ ¸Â´Â´Ù¸é, XML ¹®¼­´Â À¯È¿(valid)ÇÏ´Ù.

¹®¼­ ŸÀÔ ¼±¾ðÀº ¹®¼­ ¾È¿¡¼­ ÃÖÃÊÀÇ ¿¤·¹¸àÆ®(element)º¸´Ù ¸ÕÀú ³ª¿Í¾ß ÇÑ´Ù.

¼­¹®(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 ¹®¼­ ŸÀÔ ¼±¾ð(document type declaration)´Â ¹®¼­ÀÇ ºÐ·ù¸¦ À§ÇÏ¿© ¹®¹ýÀ» Á¦°øÇÏ´Â ÄÚµå ¼±¾ðµéÀ» Æ÷ÇÔÇϰųª Áö¸íÇÑ´Ù. ÀÌ ¹®¹ýÀº ¹®¼­ ŸÀÔ Á¤ÀÇ(DTD: document type definition)·Î ¾Ë·ÁÁ® ÀÖ´Ù. ¹®¼­ ŸÀÔ ¼±¾ðÀº ¿ÜºÎÀû ÇϺμ¼Æ®(¿ÜºÎÀû ¿£Æ¼Æ¼ÀÇ Æ¯º°ÇÑ Á¾·ù)³ª Æ÷ÇÔÇÏ´Â ÄÚµå(markup) ¼±¾ðµé¸¦ Áö¸í ÇÒ ¼ö ÀÖ°í, ¶Ç´Â, ³»ºÎÀû ÇϺμ¼Æ®(subset) ¾È¿¡ Á÷Á¢ÀûÀ¸·Î ÄÚµå ¼±¾ðµéÀ» Æ÷ÇÔ ÇÒ ¼ö ÀÖ°í, µÑ ´Ù ÇÒ ¼öµµ ÀÖ´Ù. ¹®¼­ÀÇ DTD´Â µÎ°¡Áö ÇϺμ¼Æ®µéÀÌ °°ÀÌ ±¸¼ºµÈ´Ù.

ÄÚµå ¼±¾ðÀº is ¿¤·¹¸àÆ® ŸÀÔ ¼±¾ð, ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð, ¿£Æ¼Æ¼ ¼±¾ð, ¶Ç´Â ÁÖ¼®(notation) ¼±¾ðÀÌ´Ù. ÀÌ ¼±¾ðµéÀº,¾Æ·¡ ¼³¸íµÈ ¹Ù¿Í °°Àº Àß Çü¼ºµÇ°í À¯È¿¼º Á¦ÇÑ¿ä¼Ò¿¡ µû¶ó , ÀüºÎ ȤÀº ÀϺθ¦ ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ ¾È¿¡ Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù. »ó¼¼ÇÑ Á¤º¸´Â 4. "¹°¸®Àû ±¸Á¶"¸¦ ÂüÁ¶Ç϶ó.

¹®¼­ ŸÀÔ Á¤ÀÇ(Document Type Definition)
[28]  doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? ('[' (markupdeclPEReferenceS)* ']' S?)? '>' [ VC: ÃÖ»óÀ§ ¿¤·¹¸àÆ® ŸÀÔ ]
[29]  markupdecl ::= elementdeclAttlistDeclEntityDeclNotationDeclPIComment [ VC: ÀûÁ¤ ¼±¾ð/PE ³×½ºÆà ]
[ WFC: ³»ºÎÀû ÇϺμ¼Æ®¿¡¼­ PE ]

ÄÚµå(markup) ¼±¾ðµéÀº ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ÀÇ ±³Ã¼ ÅؽºÆ® ÀüºÎ³ª ÀϺκÐÀ¸·Î ¸¸µé¾î Áú ¼ö ÀÖ´Ù. À̱԰ÝÀÇ ³ªÁß ºÎºÐ¿¡ °³º° ºñ Å͹̳Î(nonterminal)µéÀ» À§ÇÑ(elementdecl, AttlistDecl µî) ¸ðµç ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼(entity)µéÀÌ Æ÷ÇÔ µÈ ´ÙÀ½¿¡ ¼±¾ðµéÀÇ ¼³¸íÀÌ µÇ¾ú´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ÃÖ»óÀ§(root) ¿¤·¹¸àÆ®(element) ŸÀÔ
¹®¼­ ŸÀÔ ¼±¾ðÀÇ À̸§(Name)ÀÌ ÃÖ»óÀ§ ¿¤·¹¸àÆ®ÀÇ ¿¤·¹¸àÆ® ŸÀÔ°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ÀûÁ¤ ¼±¾ð/PE ³×½ºÆÃ
ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) ±³Ã¼ ÅؽºÆ®´Â ÄÚµå(markup) ¼±¾ðµé°ú ÀûÁ¤ÇÏ°Ô ³×½ºÆÃ(nest)µÇ¾î¾ß ÇÑ´Ù. ¸»ÇÏÀÚ¸é, ÄÚµå(markup) ¼±¾ð(À§ markupdecl)ÀÇ Ã¹ ±ÛÀÚ³ª ¸¶Áö¸· ±ÛÀÚ°¡ ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ ÂüÁ¶ÀÇ ±³Ã¼ ÅؽºÆ® ¾È¿¡ Æ÷ÇԵǾî ÀÖÀ¸¸é, µÑ ´Ù °°Àº ±³Ã¼ ÅؽºÆ® ¾È¿¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù.

Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ³»ºÎÀû ÇϺμ¼Æ®(subset) ¾ÈÀÇ PE
³»ºÎÀû DTD ÇϺμ¼Æ®¿¡¼­, ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ ÂüÁ¶´Â, ÄÚµå(markup) ¼±¾ðµé ¾È¿¡´Â ³ª¿Ã ¼ö ¾ø°í, ÄÚµå ¼±¾ðµéÀÌ ³ª¿Ã ¼ö ÀÖ´Â °÷¿¡ ¸¸ ³ª¿Ã ¼ö ÀÖ´Ù. (ÀÌ´Â ¿ÜºÎÀû ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) ¾È¿¡¼­ ¶Ç´Â ¿ÜºÎÀû ÇϺμ¼Æ®¿¡ ³ª¿À´Â ÂüÁ¶¿¡ ´ëÇؼ­´Â Àû¿ëµÇÁö ¾Ê´Â´Ù.)

³»ºÎÀû ÇϺμ¼Æ®¿Í ¸¶Âù°¡Áö·Î, DTD ¾È¿¡¼­ ÂüÁ¶ÇÏ´Â ¿ÜºÎÀû ÇϺμ¼Æ®¿Í ¿ÜºÎÀû ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼´Â, ºñ Å͹̳Π±âÈ£(symbol) markupdecl¿¡ ÀÇÇÏ¿© Çã¿ëµÇ´Â ŸÀÔÀÇ, °ø¹éÀ¸·Î ºÐ¸°µÈ ¶Ç´Â ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ ÂüÁ¶ÀÇ, ÀÏ·ÃÀÇ ¿ÏÀüÇÑ Äڵ弱¾ðµé·Î ±¸¼ºµÇ¾î¾ß ÇÑ´Ù. ±×·¯³ª ¿ÜºÎÀû ÇϺμ¼Æ®³ª ¿ÜºÎÀû ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ÀÇ ³»¿ë(content) ºÎºÐµéÀÌ, Á¶°ÇÀû Ç׸ñ ±¸¼ºÀ» »ç¿ëÇÏ¿©, Á¶°Ç¿¡ µû¶ó ¹«½Ã µÉ ¼ö ÀÖ´Ù; ÀÌ´Â ³»ºÎÀû ÇϺμ¼Æ®¿¡¼­´Â Çã¿ëµÇÁö ¾Ê´Â´Ù.

¿ÜºÎÀû ÇϺμ¼Æ®(External Subset)
[30]  extSubset ::= TextDecl? ¿µ¹® extSubsetDecl
[31]  extSubsetDecl ::= ( markupdeclconditionalSectPEReferenceS )*

¿ÜºÎÀû ÇϺμ¼Æ®(subset)¿Í ¿ÜºÎÀû ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity)´Â ¶ÇÇÑ ±× ¾ÈÀÇ ³»ºÎÀû ÇϺμ¼Æ®¿¡¼­¿Í ´Ù¸¥µ¥, ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ ÂüÁ¶´Â ÄÚµå(markup) ¼±¾ðµé »çÀÌ¿¡¼­ »Ó ¾Æ´Ï¶ó, ¼Ó¿¡¼­µµ Çã¿ëµÈ´Ù.

¹®¼­ ŸÀÔ ¼±¾ð(document type declaration)À» °®´Â XML ¹®¼­ ¿¹Á¦:

<?xml version="1.0"?>
<!DOCTYPE greeting SYSTEM "hello.dtd">
<greeting>¿©·¯ºÐ ¾È³çÇϼ¼¿ä!</greeting>

½Ã½ºÅÛ ÀνÄÀÚ(identifier) "hello.dtd"´Â ¹®¼­¸¦ À§ÇÑ DTDÀÇ URI¸¦ Á¦°øÇÑ´Ù.

±× ¼±¾ðµéÀº ¿¹Á¦¿Í °°ÀÌ Áö¿ªÀûÀ¸·Î ÁÖ¾î Áú ¼ö ÀÖ´Ù:

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE greeting [
  <!ELEMENT greeting (#PCDATA)>
]>
<greeting>¿©·¯ºÐ ¾È³çÇϼ¼¿ä!</greeting>

¿ÜºÎÀû°ú ³»ºÎÀû ÇϺμ¼Æ®(subset)µéÀÌ ´Ù »ç¿ëµÇ¸é, ³»ºÎÀû ÇϺμ¼Æ®°¡ ¿ÜºÎÀû ÇϺμ¼Æ®º¸´Ù ¸ÕÀú ³ª¿Â °ÍÀ¸·Î °£ÁֵȴÙ. ³»ºÎÀû ÇϺμ¼Æ®¿¡ ÀÖ´Â ¿£Æ¼Æ¼(entity)¿Í ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµéÀÌ ¿ÜºÎÀû ÇϺμ¼Æ®¿¡ ÀÖ´Â °Í¿¡ ¿ì¼±ÇÏ¿© ÀÛ¿ëÇÏ´Â È¿°ú¸¦ °®´Â´Ù.

2.9 µ¶¸³ ¹®¼­ ¼±¾ð(Standalone Document Declaration)

ÄÚµå(markup) ¼±¾ðµéÀº XML ó¸®ÀÚ(processor)·ÎºÎÅÍ Àû¿ë(application)¿¡ Àü´ÞÇÔ¿¡ µû¶ó ¹®¼­¿¡ ³»¿ë¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖ´Ù; ¿¹¸¦ µé¸é ¾ÖÆ®¸®ºäÆ®(attribute) µðÆúÆ®µé°ú ¿£Æ¼Æ¼(entity) ¼±¾ðµéÀÌ´Ù. µ¶¸³ ¹®¼­ ¼±¾ðÀº XML ¼±¾ðÀÇ ºÎºÐÀ¸·Î ³ªÅ¸³¯ ¼ö ÀÖÀ¸¸ç, ¹®¼­ ¿£Æ¼Æ¼¿¡ ¿ÜºÎÀûÀ¸·Î ÀÌ¿Í °°Àº ¼±¾ðµéÀÌ Àִ°¡ ¾ø´Â°¡ÀÇ ½ÅÈ£¸¦ ÁØ´Ù.

µ¶¸³ ¹®¼­ ¼±¾ð(Standalone Document Declaration)
[32]  SDDecl ::= S 'standalone' Eq (("'" ('yes' | 'no') "'") | ('"' ('yes' | 'no') '"')) [ VC: µ¶¸³ ¹®¼­ ¼±¾ð ]

µ¶¸³ ¹®¼­ ¼±¾ð(Standalone Document Declaration)¿¡¼­, °ª "yes"´Â, XML ó¸®ÀÚ(processor)·ÎºÎÅÍ Àû¿ë(application)¿¡ Àü´ÞµÇ´Â Á¤º¸¿¡ ¿µÇâÀ» ÁÖ´Â, ¹®¼­ ¿£Æ¼Æ¼(DTD¿¡ ¿ÜºÎÀû ÇϺμ¼Æ®À̳ª, ³»ºÎÀû ÇϺμ¼Æ®µé·Î ºÎÅÍ ÂüÁ¶µÇ´Â ¿ÜºÎÀû ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼)¿¡ ¿ÜºÎÀûÀÎ ÄÚµå(markup) ¼±¾ðÀÌ ¾øÀ½À» ³ªÅ¸³½´Ù. °ª "no"´Â ÀÌ¿Í °°Àº ¿ÜºÎÀû ÄÚµå ¼±¾ðµéÀÌ Àְųª, ÀÖÀ» ¼ö ÀÖ½¿À» ³ªÅ¸³½´Ù. µ¶¸³ ¹®¼­ ¼±¾ðÀº ´ÜÁö ¿ÜºÎÀû ¼±¾ðµéÀÇ Á¸À縦, ÀÌµé ¿£Æ¼Æ¼µéÀÌ ³»ºÎÀûÀ¸·Î ¼±¾ðµÇ¾úÀ¸¸é ¹®¼­¿¡¼­ ¿ÜºÎÀû ¿£Æ¼Æ¼·Î ÂüÁ¶ÇÔÀÇ Á¸À縦 ³ªÅ¸³»°í, ±× µ¶¸³¼ºÀÇ »óÅ´ º¯ÇÏÁö ¾ÊÀ½¿¡ ÁÖÀÇÇ϶ó.

¸¸ÀÏ ¿ÜºÎÀû ÄÚµå ¼±¾ðµéÀÌ ¾øÀ¸¸é, µ¶¸³ ¹®¼­ ¼±¾ðÀº ¾Æ¹« Àǹ̸¦ °®Áö ¾Ê´Â´Ù. ¿ÜºÎÀû ÄÚµå ¼±¾ðµéÀÌ ÀÖÀ¸³ª µ¶¸³ ¹®¼­ ¼±¾ðÀÌ ¾øÀ¸¸é, ±× °ªÀº "no"·Î °£ÁֵȴÙ.

standalone="no"À» °°°í ÀÖ´Â XML ¹®¼­´Â º¯È¯ ±â´É(algorithmically)À¸·Î µ¶¸³ ¹®¼­·Î º¯È¯ µÉ ¼ö ÀÖÀ¸¸ç, ÀÌ´Â ÀϺΠ³×Æ®¿öÅ© ¹è´Þ(Àü´Þ) Àû¿ë¿¡ ¹Ù¶÷Á÷ ÇÒ ¼ö ÀÖ´Ù

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: µ¶¸³ ¹®¼­ ¼±¾ð(Standalone Document Declaration)
µ¶¸³ ¹®¼­ ¼±¾ðÀÌ °ª "no"¸¦ °¡Áö¸é ¿ÜºÎÀû ÄÚµå(markup) ¼±¾ðµéÀº ´ÙÀ½ÀÇ ¼±¾ðµéÀ» Æ÷ÇÔÇÑ´Ù:

  • ÀÌ ¾ÖÆ®¸®ºäÆ®µéÀÌ Àû¿ëµÇ´Â ¿¤·¹¸àÆ®°¡ ¹®¼­ ¾È¿¡ ³ªÅ¸³ª´Âµ¥, ÀÌ ¾ÖÆ®¸®ºäÆ®ÀÇ °ªµéÀÌ ÁöÁ¤µÇÁö ¾Ê¾ÒÀ¸¸é, µðÆúÆ® °ªµéÀ» °®´Â ¾ÖÆ®¸®ºäÆ®µé, ¶Ç´Â
  • ¹®¼­ ¾È¿¡¼­ ÀÌµé ¿£Æ¼Æ¼(entity)µéÀ» ÂüÁ¶Çϸé, amp, lt, gt, apos, quot ÀÌ¿ÜÀÇ ¿£Æ¼Æ¼, ¶Ç´Â
  • Á¤»óÈ­(normalization) µÉ °ªµéÀ» °®´Â ¾ÖÆ®¸®ºäÆ®µé, ¿©±â¼­, Á¤»óÈ­(normalization)ÀÇ °á°ú ¹Ù²ð °ªÀ» °®´Â ¾ÖÆ®¸®ºäÆ®(attribute)°¡ ¹®¼­¿¡ ³ªÅ¸³­´Ù, ¶Ç´Â
  • À̵é ŸÀÔµéÀÇ ÀνºÅº½º(instance) ¾È¿¡ °ø¹éÀÌ Á÷Á¢ÀûÀ¸·Î ³ªÅ¸³ª¸é, ¿¤·¹¸àÆ® ³»¿ëÀ» °®´Â ¿¤·¹¸àÆ® ŸÀÔµé.

µ¶¸³ ¹®¼­ ¼±¾ð(Standalone Document Declaration)À» °®´Â XML ¼±¾ðÀÇ ¿¹Á¦:

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

2.10 °ø¹éÀÇ Ã³¸®

XML ¹®¼­µéÀ» ÀÛ¼ºÇϴµ¥, ÀÚÁÖ "°ø¹é"(À̱԰ݿ¡¼­ ºñÅ͹̳ΠS·Î Ç¥±âÇÑ °ø°£, ÅÇ, ºóÁÙ)À» »ç¿ëÇϱâ À§ÇÏ¿© º¯È¯ÇÏ¿©, Äڵ带 ÈνŠÀб⠽±°ÔÇÑ´Ù. ÀÌ¿Í °°Àº °ø¹éÀº ÀüÇüÀûÀ¸·Î ÀÌ ¹®¼­ÀÇ ¹öÀü¿¡ Æ÷ÇÔÇϱâ À§ÇÏ¿© ÀǵµµÈ °ÍÀº ¾Æ´Ï´Ù. ÀÌ¿Í´Â ´Þ¸® "»ó´çÇÑ" °ø¹éÀÌ À¯ÁöµÇ¾î¾ß ÇÏ´Â °æ¿ì°¡ ¸¹ÀÌ Àִµ¥ ½Ã ¹®±¸³ª ¼Ò½ºÄڵ尡 ±× ¿¹ÀÌ´Ù.

XML ó¸®ÀÚ´Â Ç×»ó ¹®¼­ ¾ÈÀÇ ºñ ÄÚµå(markup)ÀÇ ¸ðµç ±ÛÀÚµéÀ» Àû¿ë(application)¿¡ Àü´ÞÇÏ¿©¾ß ÇÑ´Ù. À¯È¿¼º °ËÁ¤ XML ó¸®ÀÚ´Â ¶ÇÇÑ Àû¿ë¿¡°Ô, ¿¤·¹¸àÆ® ³»¿ë ¾È¿¡ ³ªÅ¸³ª´Â °ø¹éÀ» ±¸¼ºÇÏ´Â ÀÌ ±ÛÀڵ鿡 ´ëÇÑ, Á¤º¸¸¦ Á¦°øÇÏ¿©¾ß ÇÑ´Ù.

°ø¹éÀÌ Àû¿ë¿¡¼­ ±×´ë·Î À¯ÁöµÇµµ·Ï, ¿¤·¹¸àÆ®¿¡ ÀǵµÇÏ´Â ½ÅÈ£¸¦ º¸³»±â À§ÇÏ¿©, 'xml:space'·Î À̸§ Áö¿öÁø Ưº°ÇÑ ¾ÖÆ®¸®ºäÆ®°¡ ¿¤·¹¸àÆ®(element)¿¡ ÷ºÎ µÉ ¼ö ÀÖ´Ù. À¯È¿ÇÑ(valid) ¹®¼­µé¿¡¼­, ÀÌ ¾ÖÆ®¸®ºäÆ®´Â ´Ù¸¥ °Í°ú ¸¶Âù°¡Áö·Î, ÀÌ°ÍÀÌ »ç¿ëµÇ¸é, ¼±¾ðµÇ¾î¾ß ÇÑ´Ù. ¼±¾ðµÇ¸é, °ªµéÀº µðÆúÆ®("default")¿Í À¯Áö("preserve") ¸¸ÀÌ °¡´ÉÇÑ ¼ýÀÚÁÖ±â(enumerated) ŸÀÔÀÌ µÇ¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î:

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

°ª "default"´Â Àû¿ë(application)ÀÇ ÀÌ ¿¤·¹¸àÆ® µðÆúÆ® °ø¹éó¸® °úÁ¤ÀÌ¸é ¸¸Á·½º·´´Ù´Â ½ÅÈ£¸¦ º¸³»°í; °ª "preserve"´Â ¸ðµç °ø¹éÀ» ±×´ë·Î À¯ÁöÇÏ°Ú´Ù´Â Àǵµ¸¦ Àû¿ë¿¡ ¾Ë·ÁÁØ´Ù. ÀÌ ¼±¾ðµÈ Àǵµ´Â ³»¿ë ¾È ÁöÁ¤µÈ ±× ¿¤·¹¸àÆ®ÀÇ ¸ðµç ¿¤·¹¸àÆ®µé¿¡, ´Ù¸¥ 'xml:space' ¾ÖÆ®¸®ºäÆ®ÀÇ ÀνºÅº½º·Î µ¤¾î ¾º¿ì±â µÇÁö ¾Ê´Â ÇÑ, Àû¿ë ÇÒ °ÍÀ¸·Î °£ÁֵȴÙ.

¹®¼­ÀÇ ÃÖ»óÀ§(root) ¿¤·¹¸àÆ®´Â, ÀÌ ¾ÖÆ®¸®ºäÆ®ÀÇ °ªÀÌ Á¦°øµÇ°Å³ª, ¾ÖÆ®¸®ºäÆ®°¡ µðÆúÆ® °ªÀ¸·Î ¼±¾ðµÇÁö ¾Ê´Â ÇÑ, Àû¿ëÀÇ °ø¹é 󸮿¡ Àǵµ°¡ ¾ø´Ù´Â ½ÅÈ£¸¦ ¹ÞÀº °ÍÀ¸·Î °£ÁÖÇÑ´Ù.

2.11 ÁÙ ³¡ÀÇ Ã³¸®(End-of-Line Handling)

XML·Î Çؼ®(parse)µÈ ¿£Æ¼Æ¼´Â ÀÚÁÖ ÄÄÇ»ÅÍ È­Àϵé·Î ÀúÀåµÈ¸ç, ÆíÁýÀÇ ÆíÀ̼ºÀ» À§ÇÏ¿©, ÁÙ(line)µé·Î ¸¸µé¾î Áø´Ù. ÀÌ ÁÙµéÀº ÀüÇüÀûÀ¸·Î ¸®ÅÏ(carriage-return: '#xD')°ú ÁÙ°ø±Þ(line-feed: '#xA') ±ÛÀÚµéÀÇ Á¶ÇÕÀ¸·Î ºÐ¸®µÈ´Ù.

Àû¿ë(applications)ÀÇ ÀÓ¹«¸¦ ´Ü¼øÈ­ Çϱâ À§ÇÏ¿©, ³»ºÎÀûÀ¸·Î Çؼ®(parse)µÈ ¿£Æ¼Æ¼ÀÇ ¿ÜºÎÀûÀ¸·Î Çؼ®µÈ ¿£Æ¼Æ¼³ª ¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ªÀÌ ¸®ÅͶö ¿¬¼Ó µÎ ±ÛÀÚ "#xD#xA" ¶Ç´Â ´ÜÀÏ ±ÛÀÚ "#xD"ÀÌ¸é ¾ðÁ¦³ª, XML ó¸®ÀÚ(processor)´Â Àû¿ë(application)¿¡°Ô ´ÜÀÏ ±ÛÀÚ "#xA"¸¦ Àü´ÞÇÏ¿©¾ß ÇÑ´Ù. (ÀÌ È°µ¿Àº, Çؼ® Àü¿¡ Á¤»óÈ­¿¡ ÀÇÇÏ¿© ¸ðµç ÁٹٲÞÀ» ÀÔ·Â(input)¿¡¼­ "#xA"·Î Æí¸®ÇÏ°Ô »ý¼º ÇÒ ¼ö ÀÖ´Ù.)

2.12 ¾ð¾îÀÇ ÀνÄ

¹®¼­ 󸮿¡¼­, ±× ¹®¼­°¡ ÀÛ¼ºµÈ ³»¿ëÀÇ ÀÚ¿¬ ȤÀº °ø½Ä ¾ð¾î¸¦ ÁöÁ¤ÇÏ´Â °ÍÀÌ ÀÚÁÖ À¯¿ëÇÏ´Ù. 'xml:lang'·Î À̸§Áö¿ö Áø Ưº° ¾ÖÆ®¸®ºäÆ®°¡ ¹®¼­¿¡ »ðÀÔµÇ¾î ³»¿ë¿¡ »ç¿ëµÈ ¾ð¾î¸¦ ÁöÁ¤ ÇÒ ¼ö ÀÖ°í, XML ¹®¼­ÀÇ ¾î¶² ¿¤·¹¸àÆ® ¾ÖÆ®¸®ºäÆ® °ªÀ» ÁöÁ¤ ÇÒ ¼ö ÀÖ´Ù. À¯È¿ÇÑ(valid) ¹®¼­µé¿¡¼­, ÀÌ ¾ÖÆ®¸®ºäÆ®(attribute)´Â ´Ù¸¥ °Í°ú ¸¶Âù°¡Áö·Î, »ç¿ëµÇ¸é ¼±¾ðµÇ¾î¾ß ÇÑ´Ù. ¾ÖÆ®¸®ºäÆ®ÀÇ °ªµéÀº [IETF RFC 1766], "¾ð¾î¸¦ ÀνÄÇϱâ À§ÇÑ Å±׵é"¿¡ Á¤ÀÇ µÈ ¹Ù¿Í °°Àº ¾ð¾î ÀνÄÀÚ(identifier)µéÀÌ´Ù:

¾ð¾îÀÇ ÀνÄ(Language 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´Â ¾Æ·¡ °Í ÁßÀÇ Çϳª°¡ µÉ ¼ö ÀÖ´Ù:

  • [ISO 639]ÀÇ "¾ð¾îµéÀÇ À̸§À» ³ªÅ¸³»´Â ÄÚµå"¿¡ Á¤ÀÇµÈ µÎ±ÛÀÚ ¾ð¾î ÄÚµå
  • 'ÀÎÅÍ³Ý ÇÒ´ç ¹øÈ£ ´ç±¹'[IANA](Internet Assigned Numbers Authority)¿¡ µî¿ÁµÈ ¾ð¾î ÀνÄÀÚ(identifier); ÀÌ´Â "i-"(¶Ç´Â "I-")ÀÇ Á¢µÎ¾î·Î ½ÃÀ۵ȴÙ.
  • »ç¿ëÀÚ¿¡ ÀÇÇÏ¿©, ȤÀº °³ÀÎÀû »ç¿ë¿¡¼­ ´ç»çÀÚ³¢¸® ÇÕÀÇÇÏ¿© ÁöÁ¤µÈ ¾ð¾î ÀνÄÀÚ(identifier); ÀÌ´Â IANA¿¡ ÇâÈÄ Ç¥ÁØÈ­µÇ°Å³ª µî·ÏµÉ À̸§°ú ¸¶ÂûÇÏÁö ¾Êµµ·Ï È®½ÇÈ÷ Çϱâ À§ÇÏ¿© Á¢µÎ¾î "x-" ¶Ç´Â "X-" ·Î ½ÃÀ۵Ǿî¾ß ÇÑ´Ù.

¾î¶²¼öÀÇ ÇϺÎÄÚµå(Subcode) ºÎºÐ(segment)µéÀÌ ÀÖÀ» ¼ö ÀÖ´Ù; ¸¸ÀÏ ÇϺÎÄڵ尡 ÀÖ°í µÎ°³ÀÇ ±ÛÀÚ·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸é, ÀÌ´Â [ISO 3166]ÀÇ "±¹°¡µéÀÇ À̸§À» Ç¥ÇöÇÏ´Â ÄÚµåµé"¿¡¼­ ¿ÔÀ» °ÍÀ̸ç, ¸¸ÀÏ Ã³À½ ÇϺÎÄڵ尡 µÎ°³º¸´Ù ¸¹Àº ±ÛÀÚ·Î ±¸¼ºµÇ¾î ÀÖÀ¸¸é, Langcode°¡ Á¢µÎ¾î "x-" ȤÀº "X-"·Î ½ÃÀÛÇÏÁö ¾Ê´Â ÇÑ, ÀÌ´Â IANA¿¡ µî·ÏµÈ ¾ð¾î ÇϺÎÄÚµå ÀÏ °ÍÀÌ´Ù.

½À°üÀûÀ¸·Î ¾ð¾îÄÚµå´Â ¼Ò¹®ÀÚ·Î, ±¹°¡ÄÚµå´Â (ÀÖÀ¸¸é) ´ë¹®ÀÚ·Î ÁÖ¾îÁø´Ù. ÀÌ °ªµéÀº XML ¹®¼­¿¡¼­ ´Ù¸¥ À̸§µé°ú´Â ´Ù¸£°Ô ´ë¼Ò¹®ÀÚ¸¦ ±¸º°ÇÏÁö ¾Ê´Â´Ù´Â Á¡¿¡ ÁÖÀÇÇ϶ó.

¿¹¸¦ µé¾î:

<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'·Î ¼±¾ðµÈ °ÍÀº, ±× ³»¿ë ¾È¿¡¼­ ´Ù¸¥ ¿¤·¹¸àÆ®¿¡ 'xml:lang' ÀνºÅº½º(instance)¸¦ »ç¿ëÇÏ¿© µ¤¾î¾º¿òÀ» ÇÏÁö ¾Ê´Â ÇÑ, ±× Á¤ÀÇ µÈ ¿¤·¹¸àÆ®(element)ÀÇ ¸ðµç ¾ÖÆ®¸®ºäÆ®(attribute)µé°ú ³»¿ë(content)¿¡ Àû¿ëÇÏ´Â °ÍÀ¸·Î °£ÁֵȴÙ.

'xml:lang'ÀÇ °£´ÜÇÑ ¼±¾ðÀº ¾Æ·¡ ¾ç½ÄÀ» °®´Â´Ù;

xml:lang  NMTOKEN  #IMPLIED

±×·¯³ª, ÀûÁ¤ÇÏ´Ù¸é, ƯÁ¤ µðÆúÆ® °ªµéÀÌ ÁÖ¾î Áú ¼öµµ ÀÖ´Ù. ¿µ±¹ Çлýµé¿¡°Ô ºÒ¾î ½ÃµéÀÇ ¸ðÀ½¿¡¼­, ¼³¸í°ú ÁÖ¼®Àº ¿µ¾î·Î ÇÒ ¶§, 'xml:lang' ¾ÖÆ®¸®ºäÆ®´Â ´ÙÀ½°ú °°ÀÌ ¼±¾ð µÉ ¼ö ÀÖ´Ù:

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


3. ³í¸®Àû ±¸Á¶

°¢ XML ¹®¼­´Â Çϳª ÀÌ»óÀÇ ¿¤·¹¸àÆ®(element)µé °®°í, ±× ¹üÀ§´Â ½ÃÀÛÅÂ±×¿Í Á¾·áű×, ¶Ç´Â ºó(empty) ¿¤·¹¸àÆ®¿¡¼­´Â ºó ¿¤·¹¸àÆ® ű×(tag)·Î ±¸ºÐµÈ´Ù. °¢ ¿¤·¹¸àÆ®´Â ŸÀÔ(type)À» °®°í, ¶§·Î´Â "ƯÀ¯ ÀνÄÀÚ"(GI: Generic Identifier)·Î ºÒ¸®¿ì´Â À̸§À¸·Î Àνĵǰí, ÀÏ·ÃÀÇ ¾ÖÆ®¸®ºäÆ® ±Ô°ÝµéÀ» °¡Áú ¼ö ÀÖ´Ù. °¢ ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ ±Ô°ÝÀº À̸§(name)°ú °ªÀ» °®´Â´Ù.

¿¤·¹¸àÆ®(Element)
[39]  element ::= EmptyElemTag
STag content ETag [ WFC: ¿¤·¹¸àÆ® ŸÀÔÀÏÄ¡ ]
[ VC: ¿¤·¹¸àÆ® À¯È¿ ]

À̱԰ÝÀº, ±× À̸§ÀÌ À̱԰ÝÀÇ Ç¥ÁØÈ­³ª ÇâÈÄ ¹öÀüµéÀ» À§ÇÑ ¿¹¾à¾î¿Í ÀÏÄ¡ÇÏ´Â (('X'|'x')('M'|'m')('L'|'l'))·Î ½ÃÀÛÇÏ´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â, ¿¤·¹¸àÆ® ŸÀÔµé°ú ¾ÖÆ®¸®ºäÆ®µéÀÇ ¹®¹ý(semantic), »ç¿ë, ¶Ç´Â (¹®¹ý ÀÌ¿ÜÀÇ) À̸§À» Á¦ÇÑÇÏÁö ¾Ê´Â´Ù.

Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¿¤·¹¸àÆ® ŸÀÔÀÏÄ¡(Element Type Match)
¿¤·¹¸àÆ®(element)ÀÇ Á¾·áÅÂ±× ¾ÈÀÇ Name(À̸§)Àº ½ÃÀÛÅÂ±× ¾ÈÀÇ ¿¤·¹¸àÆ® ŸÀÔ°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ¿¤·¹¸àÆ® À¯È¿(Element Valid)
À̸§(Name)ÀÌ ±× ¿¤·¹¸àÆ® ŸÀÔ¿¡ ÀÏÄ¡ÇÏ´Â elementdecl¿Í ÀÏÄ¡ÇÏ´Â ¼±¾ðÀÌ ÀÖÀ¸¸é, ¿¤·¹¸àÆ®°¡ À¯È¿(valid)Çϸç, ´ÙÀ½ Áß Çϳª¿¡ ÇØ´çÇÑ´Ù:

  1. ¼±¾ðÀÌ 'EMPTY'(ºó°Í)¿Í ÀÏÄ¡ÇÏ°í, ¿¤·¹¸àÆ®°¡ ³»¿ë(content)À» °®°í ÀÖÁö ¾Ê´Ù.
  2. ¼±¾ðÀÌ ÀÚ½Ä(child)µé°ú ÀÏÄ¡ÇÏ°í, ÀÚ½Ä ¿¤·¹¸àÆ®µéÀÇ ¿¬¼ÓÀÌ, ³»¿ë ¸ðµ¨(model) ¾ÈÀÇ ÀϹÝÀû ÁöÁ¤(expression)À¸·Î »ý¼ºµÈ ¾ð¾î¿¡ ¼Ò¼ÓµÇ¾î ÀÖ°í, ÀÚ½Ä ¿¤·¹¸àÆ®µéÀÇ °¢ ¦ »çÀÌ¿¡ ¼±ÅÃÀû °ø¹é(±ÛÀÚ°¡ ºñ Å͹̳ΠS¿Í ÀÏÄ¡ÇÏ´Â)À» °¡Áö°í ÀÖ´Ù.
  3. ¼±¾ðÀÌ Mixed(È¥ÇÕ)¿Í ÀÏÄ¡ÇÏ°í, ±× ³»¿ëÀÌ ±ÛÀÚ µ¥ÀÌÅÍ¿Í ±× ŸÀÔÀÌ ³»¿ë ¸ðµ¨(model)ÀÇ À̸§°ú ÀÏÄ¡ÇÏ´Â ÀÚ½Ä ¿¤·¹¸àÆ®µé·Î ±¸¼ºµÇ¾ú´Ù.
  4. ¼±¾ðÀÌ ANY¿Í ÀÏÄ¡ÇÏ°í, ¾î¶² ÀÚ½Ä(child) ¿¤·¹¸àÆ®ÀÇ Å¸ÀÔÀÌ ¼±¾ðµÇ¾ú´Ù.

3.1 ½ÃÀÛű×, Á¾·áű×, ºó ¿¤·¹¸àÆ® ű×

ºó°ÍÀÌ ¾Æ´Ñ °¢ XML ¿¤·¹¸àÆ®(element)ÀÇ ½ÃÀÛÀº ½ÃÀÛű׷Πǥ½ÃµÇ¾î ÀÖ´Ù.

½ÃÀÛű×(Start-tag)
[40]  STag ::= '<' Name (S Attribute)* S? '>' [ WFC: À¯ÀÏ ¾ÖÆ®¸®ºäÆ® ±Ô°Ý ]
[41]  Attribute ::= Name Eq AttValue [ VC: ¾ÖÆ®¸®ºäÆ® °ª ŸÀÔ ]
[ WFC: ¿ÜºÎÀû ¿£Æ¼Æ¼ ÂüÁ¶ ¾ÈÇÔ ]
[ WFC: ¾ÖÆ®¸®ºäÆ® °ª¿¡ < ¾øÀ½ ]

½ÃÀÛÅÂ±×¿Í Á¾·áÅÂ±× ¾È¿¡ À̸§(Name)ÀÌ ¿¤·¹¸àÆ®(element)ÀÇ Å¸ÀÔ(type)À» ÁöÁ¤ÇÑ´Ù. Name - AttValueÀÇ Â¦µéÀº ±× ¿¤·¹¸àÆ®ÀÇ ¾ÖÆ®¸®ºäÆ® ±Ô°ÝÀ¸·Î, °¢ ¦ÀÇ NameÀº ¾ÖÆ®¸®ºäÆ® À̸§°ú ¾ÖÆ®¸®ºäÆ® °ªÀ¸·Î AttValue(' ¶Ç´Â " ±¸ºÐÀÚµé »çÀÌÀÇ ÅؽºÆ®)ÀÇ ³»¿ëÀ¸·Î ÂüÁ¶µÈ´Ù.

Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: À¯ÀÏ ¾ÖÆ®¸®ºäÆ® ±Ô°Ý(Unique Att Spec)
°°Àº ½ÃÀÛÅÂ±× ¶Ç´Â ºó ¿¤·¹¸àÆ® ÅÂ±× ¾È¿¡¼­ °°Àº ¾ÖÆ®¸®ºäÆ®(attribute) À̸§ÀÌ ³ª¿Í¼­´Â ¾ÊµÈ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ¾ÖÆ®¸®ºäÆ® °ª ŸÀÔ(Attribute Value Type)
¾ÖÆ®¸®ºäÆ®´Â ¼±¾ðµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù; ±× °ªÀº À̸¦ À§ÇÑ ¼±¾ðµÈ ŸÀÔÀ̾î¾ß ÇÑ´Ù. (¾ÖÆ®¸®ºäÆ® ŸÀÔÀº 3.3 "¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð"À» ÂüÁ¶Ç϶ó.)

Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¿ÜºÎÀû ¿£Æ¼Æ¼ ÂüÁ¶°¡ ¾ø¾î¾ß ÇÔ(No External Entity References)
¾ÖÆ®¸®ºäÆ® °ªµéÀº ¿ÜºÎÀû ¿£Æ¼Æ¼¿¡ ´ëÇÑ Á÷Á¢Àû ȤÀº °£Á¢Àû ¿£Æ¼Æ¼ ÂüÁ¶¸¦ Æ÷ÇÔ ÇÒ ¼ö ¾ø´Ù.

Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¾ÖÆ®¸®ºäÆ® °ª¿¡ '<'°¡ ¾ø¾î¾ß ÇÔ
¾ÖÆ®¸®ºäÆ® °ª¿¡¼­ Á÷Á¢Àû ȤÀº °£Á¢ÀûÀ¸·Î ÂüÁ¶µÈ ¿£Æ¼Æ¼(entity)ÀÇ ±³Ã¼ ÅؽºÆ®("&lt;" ÀÌ¿ÜÀÇ)´Â '<'¸¦ Æ÷ÇÔ ÇÒ ¼ö ¾ø´Ù.

½ÃÀÛű×ÀÇ ¿¹Á¦:

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

½ÃÀÛű׷Π½ÃÀÛµÈ °¢ ¿¤·¹¸àÆ®(element)´Â, ½ÃÀÛű׿¡¼­ ÁÖ¾îÁø ¿¤·¹¸àÆ® ŸÀÔÀ» º¹»çÇÑ À̸§À» Æ÷ÇÔÇÏ´Â, Á¾·áű׷Πǥ½ÃÇÏ¿©¾ß ÇÑ´Ù:

Á¾·áű×(End-tag)
[42]  ETag ::= '</' Name S? '>'

Á¾·áű×ÀÇ ¿¹Á¦:

</termdef>

½ÃÀÛÅÂ±×¿Í Á¾·áÅÂ±× »çÀÌÀÇ ÅؽºÆ®¸¦ ¿¤·¹¸àÆ®ÀÇ ³»¿ëÀ̶ó ÇÑ´Ù:

¿¤·¹¸àÆ®ÀÇ ³»¿ë(Content of Elements)
[43]  content ::= (elementCharDataReferenceCDSectPIComment)*

¸¸ÀÏ ¿¤·¹¸àÆ®°¡ ºñ¾î(empty) ÀÖÀ¸¸é, ÀÌ´Â ½ÃÀÛűװ¡ ¿­¸®ÀÚ ¸¶ÀÚ Á¾·áűװ¡ ¿Â °ÍÀÌ °Å³ª ºó ¿¤·¹¸àÆ® ű×ÀÌ´Ù. ºó ¿¤·¹¸àÆ® ű״ Ư¼öÇÑ ¾ç½ÄÀ» °®´Â´Ù:

ºó ¿¤·¹¸àÆ® ű×(Tags for Empty Elements)
[44]  EmptyElemTag ::= '<' Name (S Attribute)* S? '/>' [ WFC: Unique Att Spec ]

ºó ¿¤·¹¸àÆ® ű״ ³»¿ë(content)ÀÌ ¾ø´Â ¾î´À ¿¤·¹¸àÆ®¿¡µµ »ç¿ë µÉ ¼ö ÀÖÀ¸¸ç, 'EMPTY' Å°¿öµå(keyword)·Î ¼±¾ðµÈ´Ù. °øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©, ºó ¿¤·¹¸àÆ® űװ¡ »ç¿ëµÇ¾î¾ß Çϸç, 'EMPTY'·Î ¼±¾ðµÈ ¿¤·¹¸àÆ®µé¿¡¼­ ¸¸ »ç¿ë µÉ ¼ö ÀÖ´Ù.

ºó(empty) ¿¤·¹¸àÆ®ÀÇ ¿¹Á¦:

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

3.2 ¿¤·¹¸àÆ® ŸÀÔ ¼±¾ð

XML ¹®¼­ÀÇ ¿¤·¹¸àÆ®(element) ±¸Á¶´Â, À¯È¿¼º °ËÁ¤(validation) ¸ñÀûÀ¸·Î, ¿¤·¹¸àÆ® ŸÀÔ°ú ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµéÀ» »ç¿ëÇÏ¿© Á¦ÇÑÀ» ÁÙ ¼ö ÀÖ´Ù. ¿¤·¹¸àÆ® ŸÀÔ ¼±¾ðÀº ¿¤·¹¸àÆ®(element)ÀÇ ³»¿ë(content)¿¡ Á¦ÇÑÀ» ÁØ´Ù.

¿¤·¹¸àÆ® ŸÀÔ ¼±¾ðÀº ÀÚÁÖ ¾î¶² ¿¤·¹¸àÆ® ŸÀÔµéÀÌ ¿¤·¹¸àÆ®ÀÇ ÀÚ½Ä(child)µé¿¡ ³ªÅ¸³¯ ¼ö Àִ°¡ÀÇ Á¦ÇÑÀ» ÁØ´Ù. »ç¿ëÀÚÀÇ ¼±ÅÃÀ¸·Î, ¼±¾ðÀÌ µÇÁö ¾ÊÀº ¿¤·¹¸àÆ® ŸÀÔÀÇ ¼±¾ðÀÌ ³ªÅ¸³ª¸é, XML ó¸®ÀÚ(processor)´Â °æ°í¸¦ ¹ß»ý ½Ãų ¼ö Àִµ¥, ÀÌ°ÍÀº ¿À·ù°¡ ¾Æ´Ï´Ù.

¿¤·¹¸àÆ® ŸÀÔ ¼±¾ðÀº ´ÙÀ½°ú °°Àº ¾ç½ÄÀ» °®´Â´Ù:

¿¤·¹¸àÆ® ŸÀÔ ¼±¾ð(Element Type Declaration)
[45]  elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>' [ VC: À¯ÀÏÇÑ ¿¤·¹¸àÆ® ŸÀÔ ¼±¾ð ]
[46]  contentspec ::= 'EMPTY' | 'ANY' | Mixedchildren

¿©±â¼­ À̸§(Name)Àº ¼±¾ðµÇ´Â ¿¤·¹¸àÆ®ÀÇ Å¸ÀÔÀ» ÁØ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: À¯ÀÏÇÑ ¿¤·¹¸àÆ® ŸÀÔ ¼±¾ð
°°Àº ¿¤·¹¸àÆ®(element) ŸÀÔÀÌ ´Ù½Ã ¼±¾ð µÉ ¼ö ¾ø´Ù.

¿¤·¹¸àÆ® ŸÀÔ ¼±¾ðÀÇ ¿¹Á¦:

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

3.2.1 ¿¤·¹¸àÆ® ³»¿ë

¿¤·¹¸àÆ®(element) ŸÀÔ(type)Àº, ±× ŸÀÔÀÇ ¿¤·¹¸àÆ®°¡ ÀÚ½Ä(child) ¿¤·¹¸àÆ®µé(±ÛÀÚ µ¥ÀÌÅÍ´Â ¾ÈµÇ°í) ¸¸À» Æ÷ÇÔÇÏ¿©¾ß Çϸç, ¼±ÅÃÀûÀ¸·Î °ø¹é(±ÛÀÚ°¡ ºñ Å͹̳¯ S¿Í ÀÏÄ¡)À¸·Î ºÐ¸®µÇ¸é, ¿¤·¹¸àÆ® ³»¿ë(content)À» °®´Â´Ù. ÀÌ °æ¿ì, ³»¿ë ¸ðµ¨(model), ±× ÀÚ½Ä ¿¤·¹¸àÆ®µéÀÇ Çã¿ëµÈ ŸÀÔµéÀ» °üÇÒÇÏ´Â ´Ü¼ø ¹®¹ý°ú, ±×µéÀÌ ³ªÅ¸ ³¯ ¼ö ÀÖ´Â ¼ø¼­ÀÇ Á¦ÇÑ»çÇ×À» Æ÷ÇÔÇÑ´Ù. ¹®¹ýÀº ³»¿ë Á¶°¢(cp: content particle)¿¡ ¸¸µé¸ç, ÀÌ´Â À̸§, ³»¿ë Á¶°¢ÀÇ ¼±Åà ¸ñ·Ï, ¶Ç´Â ³»¿ë Á¶°¢(particle)µéÀÇ ¼ø¼­ ¸ñ·Ïµé·Î ±¸¼ºµÈ´Ù:

¿¤·¹¸àÆ® ³»¿ë ¸ðµ¨(Element-content Model)
[47]  children ::= (choiceseq) ('?' | '*' | '+')?
[48]  cp ::= (Namechoiceseq) ('?' | '*' | '+')?
[49]  choice ::= '(' S? cp ( S? '|' S? cp )* S? ')' [ VC: ÀûÁ¤ ±¸·ì/PE ³×½ºÆà ]
[50]  seq ::= '(' S? cp ( S? ',' S? cp )* S? ')' [ VC: ÀûÁ¤ ±¸·ì/PE ³×½ºÆà ]

¿©±â¼­ °¢ À̸§(Name)Àº ÀÚ½Ä(child)¿¡ ³ªÅ¸³¯ ¼ö ÀÖ´Â ¿¤·¹¸àÆ®(element)ÀÇ Å¸ÀÔÀÌ´Ù. ¼±Åà ¸ñ·ÏÀÇ ¾î¶² ³»¿ë(content) Á¶°¢(particle)µµ ¿¤·¹¸àÆ® ³»¿ë ¾ÈÀÇ ¹®¹ý¿¡¼­ ¼±Åà ¸ñ·ÏÀÌ ³ªÅ¸³ª´Â À§Ä¡¿¡ ³ªÅ¸³¯ ¼ö ÀÖ´Ù; ÀÏ·ÃÀÇ ¸ñ·Ï ¾È¿¡¼­ ³ª¿À´Â ³»¿ë Á¶°¢µéÀº ±× ¸ñ·Ï ¾È¿¡¼­ ÁÖ¾îÁø ¼ø¼­·Î ±× ¿¤·¹¸àÆ® ³»¿ë¿¡ °¢°¢ ³ªÅ¸³ª¾ß ÇÑ´Ù. À̸§À̳ª ¸ñ·Ï µÚÀÇ ¼±ÅÃÀû ±ÛÀÚ°¡ ¸ñ·Ï ¾È¿¡¼­ ¿¤·¹¸àÆ®³ª ³»¿ë Á¶°¢µéÀÌ Çѹø ÀÌ»ó(+), Çѹøµµ ¾ø°Å³ª ¿©·¯¹ø(*), Çѹø ³ª¿À´ø°¡ ¾È ³ª¿À´ø°¡(?)ÇÏ´Â °ÍÀ» °áÁ¤ÇÑ´Ù. ÀÌ¿Í °°Àº ¿ÀÆÛ·¹ÀÌÅÍ(operator)°¡ ¾øÀ¸¸é, ¿¤·¹¸àÆ®³ª ³»¿ë Á¶°¢ÀÌ ²À Çѹø ³ª¿Í¾ß ÇÑ´Ù´Â °ÍÀ» ÀǹÌÇÑ´Ù. ÀÌ ¹®¹ý°ú Àǹ̴ À̱԰ÝÀÇ Á¦ÀÛ¿¡ »ç¿ëµÈ °Í°ú µ¿ÀÏÇÏ´Ù.

³»¿ë(content) ¸ðµ¨(model)À» ÅëÇÏ¿© °æ·Î(path)¸¦ ÃßÀû ÇÒ ¼ö ÀÖ°í, ¼ø¼­¿¡ µû¸£°í, ¼±ÅÃÇÏ¿´°í, ¹Ýº¹Àû ¿ÀÆÛ·¹ÀÌÅÍ(operator)ÀÌ°í, ³»¿ëÀÇ °¢ ¿¤·¹¸àÆ®°¡ ³»¿ë(content) ¸ðµ¨(model)ÀÇ ¿¤·¹¸àÆ® ŸÀÔ¿¡ ´ëÇÏ¿© ÀÏÄ¡ ÇÒ ¶§¿¡ ÇÑÇؼ­, ¿¤·¹¸àÆ®ÀÇ ³»¿ëÀº ³»¿ë ¸ðµ¨°ú ÀÏÄ¡ÇÑ´Ù ±Ô°ÝºÎÇÕ¼º(compatibility)À» À§ÇÏ¿©, ¹®¼­ÀÇ ¿¤·¹¸àÆ®°¡ ³»¿ë ¸ðµ¨ÀÇ ¿¤·¹¸àÆ®(element) ŸÀÔ°ú Çѹø ÀÌ»ó ÀÏÄ¡ÇÏ¸é ¿À·ùÀÌ´Ù. ÀÚ¼¼ÇÑ Á¤º¸´Â E. "ÆÇÁ¤Àû ³»¿ë ¸ðµ¨"À» ÂüÁ¶Ç϶ó.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ÀûÁ¤ ±¸·ì/PE ³×½ºÆÃ(Proper Group/PE Nesting)
ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) ±³Ã¼ ÅؽºÆ®´Â °ýÈ£ ¼Ó¿¡ µé¾î°£ ±¸·ìµé·Î ÀûÁ¤ÇÏ°Ô ³×½ºÆÃ(nest)µÇ¾î¾ß ÇÑ´Ù. ´Ù½Ã ¸»Çϸé, 'choice', 'seq' ¶Ç´Â 'Mixed' ±¸¼º ¾ÈÀÇ ¿­¸²À̳ª ´ÝÈû °ýÈ£µéÀÌ ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ ±³Ã¼ ÅؽºÆ® ¾È¿¡ Æ÷ÇԵǸé, µÑ ´Ù °°Àº ±³Ã¼ ÅؽºÆ® ¾È¿¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù. °øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©, ¸¸ÀÏ ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) ÂüÁ¶°¡ 'choice', 'seq' ¶Ç´Â 'Mixed' ¾È¿¡ ³ªÅ¸³ª¸é, ±× ±³Ã¼ ÅؽºÆ®´Â ºó°ÍÀÌ ¾Æ´Ï¾î¾ß ÇÏ°í, ±³Ã¼ ÅؽºÆ®ÀÇ Ã³À½À̳ª ¸¶Áö¸· °ø¹é±ÛÀÚ°¡ ¾Æ´Ñ ±ÛÀÚ°¡ ('|' ȤÀº ',')ÀÇ ¿¬°áÀÚ(connector)°¡ ¾Æ´Ï¾î¾ß ÇÑ´Ù.

¿¤·¹¸àÆ® ³»¿ë ¸ðµ¨ÀÇ ¿¹Á¦:

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

3.2.2 È¥ÇÕ ³»¿ë(mixed content)

±× ŸÀÔÀÇ ¿¤·¹¸àÆ®°¡ ¾î¶² ±ÛÀÚ µ¥ÀÌÅ͸¦ °¡Áú ¼ö ÀÖ°í, ¼±ÅÃÀûÀ¸·Î ÀÚ½Ä(child) ¿¤·¹¸àÆ®(element)µé¿¡ ºÐ»êµÇ¾úÀ¸¸é, ±× ¿¤·¹¸àÆ® ŸÀÔ(type)Àº È¥ÇÕ ³»¿ëÀ» °®´Â´Ù. ÀÌ °æ¿ì, ÀÚ½Ä ¿¤·¹¸àÆ®µéÀÇ Å¸ÀÔÀº Á¦ÇÑ µÉ ¼ö ÀÖÀ¸³ª, ±×µéÀÇ ¼ø¼­³ª ³ªÅ¸³ª´Â °¹¼ö´Â Á¦ÇÑ µÉ ¼ö ¾ø´Ù:

È¥ÇÕ ³»¿ë ¼±¾ð(Mixed-content Declaration)
[51]  Mixed ::= '(' S? '#PCDATA' (S? '|' S? Name)* S? ')*'
| '(' S? '#PCDATA' S? ')' [ VC: ÀûÁ¤ ±¸·ì/PE ³×½ºÆà ]
[ VC: ŸÀÔ Áߺ¹¾øÀ½ ]

¿©±â¼­ À̸§(Name)µéÀÌ ÀÚ½Ä(child)µé·Î ³ªÅ¸³¯ ¼ö ÀÖ´Â ¿¤·¹¸àÆ® ŸÀÔÀ» Á¦°øÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ŸÀÔ Áߺ¹¾øÀ½(No Duplicate Types)
°°Àº À̸§ÀÌ ´ÜÀÏ È¥ÇÕ ³»¿ë ¼±¾ð ¾È¿¡¼­ ³ªÅ¸³ªÁö ¸»¾Æ¾ß ÇÑ´Ù.

È¥ÇÕ ³»¿ë ¼±¾ð ¿¹Á¦:

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

3.3 ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð

¿¤·¹¸àÆ®(element)ÀÇ À̸§°ú °ªÀÇ Â¦µéÀ» ¿¬°ü½ÃÅ°±â À§ÇÏ¿© ¾ÖÆ®¸®ºäÆ®(attribute)µéÀÌ »ç¿ëµÈ´Ù. ¾ÖÆ®¸®ºäÆ® ±Ô°ÝµéÀº ½ÃÀÛÅÂ±×¿Í ºó ¿¤·¹¸àÆ® ÅÂ±×µé ¾È¿¡ ¸¸ ³ªÅ¸³¯ ¼ö ÀÖ´Ù; ±×·¡¼­, À̵éÀ» ¾Ë±â À§ ÇÑ °ÍÀº 3.1 "½ÃÀÛű×, Á¾·áű×, ºó ¿¤·¹¸àÆ® ű×"¿¡ ±â¼úµÇ¾ú´Ù. ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµéÀº ´ÙÀ½ÀÇ °æ¿ì¿¡ »ç¿ë µÉ ¼ö ÀÖ´Ù:

  • ÁÖ¾îÁø ¿¤·¹¸àÆ®(element) ŸÀÔÀÇ ¾ÖÆ®¸®ºäÆ®µéÀÇ ¼³Á¤À» ÁöÁ¤Çϱâ À§ÇÏ¿©
  • ¾ÖÆ®¸®ºäÆ®(attribute)¿¡ ŸÀÔ Á¦ÇÑ¿ä¼Ò¸¦ ¼³Á¤Çϱâ À§ÇÏ¿©
  • ¾ÖÆ®¸®ºäÆ®¿¡ µðÆúÆ® °ªµéÀ» Á¦°øÇϱâ À§ÇÏ¿©

¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµéÀº ÁÖ¾îÁø ¿¤·¹¸àÆ®(element) ŸÀÔ¿¡¼­ °ü·ÃµÈ °¢ ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ À̸§, µ¥ÀÌÅÍ Å¸ÀÔ°ú µðÆúÆ® °ª(ÀÖÀ¸¸é)µéÀ» ÁöÁ¤ÇÑ´Ù:

¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð(Attribute-list Declaration)
[52]  AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>'
[53]  AttDef ::= S Name S AttType S DefaultDecl

AttlistDecl ÄÚµå(rule) ¾ÈÀÇ À̸§(Name)Àº ¿¤·¹¸àÆ®(element)ÀÇ Å¸ÀÔ(type)ÀÌ´Ù. »ç¿ëÀÚÀÇ ¼±ÅÃÀ¸·Î, ¼±¾ðÀÌ µÇÁö ¾ÊÀº ¿¤·¹¸àÆ® ŸÀÔÀÇ ¼±¾ðÀÌ ³ªÅ¸³ª¸é, XML ó¸®ÀÚ(processor)´Â °æ°í¸¦ ¹ß»ý ½Ãų ¼ö Àִµ¥, ÀÌ°ÍÀº ¿À·ù°¡ ¾Æ´Ï´Ù. AttDef ÄÚµå(rule) ¾ÈÀÇ À̸§(Name)Àº ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ À̸§ÀÌ´Ù.

ÁÖ¾îÁø ¿¤·¹¸àÆ®(element) ŸÀÔ¿¡ Çϳª ÀÌ»óÀÇ AttlistDeclÀÌ ÀÖÀ¸¸é, Á¦°øµÈ ¸ðµç ³»¿ëµéÀº ÅëÇյȴÙ(merge). ÁÖ¾îÁø ¿¤·¹¸àÆ® ŸÀÔÀÇ °°Àº ¾ÖÆ®¸®ºäÆ®°¡ Çϳª ÀÌ»ó Á¤ÀǵǾúÀ¸¸é, ¸ÕÀú ¼±¾ðÀÌ ÀÛ¿ëµÇ°í ³ªÁß ¼±¾ðµéÀº ¹«½ÃµÈ´Ù. °øÅë»ç¿ë¼ºÀ» À§ÇÏ¿©, DTD ÀÛ¼ºÀÚ´Â ÁÖ¾îÁø ¿¤·¹¸àÆ® ŸÀÔ¿¡ ¸¹¾Æµµ ÇÑ°³ÀÇ ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðÀ», ÁÖ¾îÁø ¾ÖÆ®¸®ºäÆ® À̸§¿¡ ¸¹¾Æµµ ÇÑ°³ÀÇ ¾ÖÆ®¸®ºäÆ® Á¤ÀǸ¦, ±×¸®°í °¢ ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð ¾È¿¡ Àû¾îµµ ÇÑ°³ÀÇ ¾ÖÆ®¸®ºäÆ® Á¤ÀǸ¦ ¼±Åà ÇÒ ¼ö ÀÖ´Ù. °øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©, ÁÖ¾îÁø ¿¤·¹¸àÆ® ŸÀÔ¿¡ Çϳª ÀÌ»óÀÇ ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµÇ¾ú°Å³ª, ÁÖ¾îÁø ¾ÖÆ®¸®ºäÆ®¿¡ Çϳª ÀÌ»óÀÇ ¾ÖÆ®¸®ºäÆ® Á¤ÀÇ°¡ µÇ¾úÀ¸¸é, XML ó¸®ÀÚ(processor)´Â »ç¿ëÀÚ ¼±ÅÃÀ¸·Î °æ°í¸¦ ¹ß»ý½Ãų ¼ö ÀÖ°í ÀÌ°ÍÀº ¿À·ù°¡ ¾Æ´Ï´Ù.

3.3.1 ¾ÖÆ®¸®ºäÆ® ŸÀÔ

XML ¾ÖÆ®¸®ºäÆ® ŸÀԵ鿡´Â ¼¼°¡Áö°¡ Àִ´Ù: ½ºÆ®¸µ ŸÀÔ, ÅäÅ«È­µÈ(tokenized) ŸÀÔµéÀÇ ¼¼Æ®, ±×¸®°í ¹øÈ£ºÙÀÎ(enumerated) ŸÀÔµé. ½ºÆ®¸µ ŸÀÔÀº ±× °ªÀ¸·Î ¾î¶°ÇÑ ¸®ÅͶö(literal) ½ºÆ®¸µµµ °¡Áú¼ö ÀÖ°í; ÅäÅ«È­µÈ(tokenized) ŸÀÔµéÀº À§¿¡¼­ ´Ù·é ¹Ù¿Í °°ÀÌ ¿©·¯ ³»¿ë°ú ¹®¹ýÀû Á¦ÇÑ¿ä¼Ò¸¦ °¡Áú ¼ö ÀÖ´Ù:

¾ÖÆ®¸®ºäÆ® ŸÀÔ(Attribute Types)
[54]  AttType ::= StringTypeTokenizedTypeEnumeratedType
[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 °ªµéÀº ±×°ÍÀ» °®´Â ¿¤·¹¸àÆ®(element)µéÀ» ÀνÄ(ÁöÁ¤) ÇÒ ¼ö ÀÖµµ·Ï À¯ÀÏÇÏ¿©¾ß ÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ¿¤·¹¸àÆ® ŸÀÔ´ç ÇÑ ID(One ID per Element Type)
ÁöÁ¤µÈ ÇÑ ID ¾ÖÆ®¸®ºäÆ®°¡ ¿¤·¹¸àÆ® ŸÀÔ¿¡¼­ Çѹø ÀÌ»ó ³ª¿Ã ¼ö ¾ø´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ID ¾ÖÆ®¸®ºäÆ® µðÆúÆ®(ID Attribute Default)
ID ¾ÖÆ®¸®ºäÆ®(attribute)´Â #IMPLIED ȤÀº #REQUIREDÀÇ µðÆúÆ® ¼±¾ðÀÌ ÀÖ¾î¾ß ÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ID ÂüÁ¶(IDREF)
ŸÀÔ IDREFÀÇ °ªµéÀÌ »ý¼ºµÈ À̸§(Name)°ú ÀÏÄ¡ÇÏ¿©¾ß Çϸç, ŸÀÔ IDREFSÀÇ °ªµéÀÌ À̸§°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù; °¢ NameÀº ±× XML ¹®¼­ ¾ÈÀÇ ÀϺΠ¿¤·¹¸àÆ®ÀÇ ID ¾ÖÆ®¸®ºäÆ®¿¡ ÀÏÄ¡ÇÏ¿©¾ß Çϴµ¥ ÀÌ´Â ´Ù½Ã ¸»ÇØ IDREF °ªµéÀÌ ÀϺΠID ¾ÖÆ®¸®ºäÆ® °ª°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ¿£Æ¼Æ¼ À̸§(Entity Name)
ŸÀÔ ENTITYÀÇ °ªµéÀº »ý¼ºµÈ Name°ú ÀÏÄ¡ÇÏ¿©¾ß Çϸç, ŸÀÔ ENTITIESÀÇ °ªµéÀº Names°ú ÀÏÄ¡ÇÏ¿©¾ß Çϸç; °¢ NameÀº DTD ¾ÈÀÇ ¼±¾ðµÈ ÇÑ Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼ÀÇ À̸§°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: À̸§ ÅäÅ«(Name Token)
ŸÀÔ NMTOKENÀÇ °ªµéÀº ÀÏÄ¡ the »ý¼ºµÈ Nmtoken°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÏ°í; ŸÀÔ NMTOKENSÀÇ °ªµéÀº Nmtokens°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.

¹øÈ£ºÙ¿©Áø ¾ÖÆ®¸®ºäÆ®µéÀº ¼±¾ðÀÌ Á¦°øÇÏ´Â °ªµéÀÇ ¸ñ·Ï Áß Çϳª¸¦ °¡Áú ¼ö ÀÖ¾î¾ß ÇÑ´Ù. µÎ°¡Áö Á¾·ùÀÇ ¹øÈ£ºÙ¿©Áø(Enumerated) ŸÀÔµéÀÌ ÀÖ´Ù:

¹øÈ£ºÙ¿©Áø ¾ÖÆ®¸®ºäÆ® ŸÀÔ(Enumerated Attribute Types)
[57]  EnumeratedType ::= NotationTypeEnumeration
[58]  NotationType ::= 'NOTATION' S '(' S? Name (S? '|' S? Name)* S? ')' [ VC: ÁÖ¼® ¾ÖÆ®¸®ºäÆ® ]
[59]  Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')' [ VC: Enumeration ]

NOTATION ¾ÖÆ®¸®ºäÆ®´Â ½Ã½ºÅÛ °ú/¶Ç´Â °øÅë(public) ÀνÄÀÚ(identifier)µé°ú °ü·ÃÇÏ¿© DTD¿¡ ¼±¾ðµÇ°í, ±× ¾ÖÆ®¸®ºäÆ®°¡ ÷ºÎµÈ ¿¤·¹¸àÆ®¸¦ Çؼ®(interpreting)Çϴµ¥ »ç¿ëµÇ´Â, ÁÖ¼®(notation)À» ÀνÄ(identify)ÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ÁÖ¼® ¾ÖÆ®¸®ºäÆ®(Notation Attributes)
ÀÌ Å¸ÀÔÀÇ °ªµéÀº ¼±¾ð¿¡ Æ÷ÇÔµÈ ÇϳªÀÇ ÁÖ¼®(notation) À̸§°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù; ¼±¾ðÀÇ ¸ðµç ÁÖ¼®(notation) À̸§Àº ¼±¾ðµÈ °ÍÀ̾î¾ß ÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: Enumeration
ÀÌ Å¸ÀÔÀÇ °ªµéÀº ¼±¾ð¿¡ Æ÷ÇÔµÈ ÇϳªÀÇ Nmtoken ÅäÅ«(token)°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.

°øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©, ´ÜÀÏ ¿¤·¹¸àÆ®ÀÇ ¹øÈ£ºÙÀÎ(enumerated) ¾ÖÆ®¸®ºäÆ® ŸÀÔ¿¡¼­ °°Àº NmtokenÀº ³ªÅ¸³ªÁö ¸»¾Æ¾ß ÇÑ´Ù.

3.3.2 ¾ÖÆ®¸®ºäÆ® µðÆúÆ®

¾ÖÆ®¸®ºäÆ® ¼±¾ðÀº ¾ÖÆ®¸®ºäÆ®(attribute)°¡ ÀÖÀ» Çʿ伺ÀÌ Àִ°¡, ¾Æ´Ï¸é, ¹®¼­¿¡ ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ®°¡ ¾øÀ¸¸é ¾î¶»°Ô XML ó¸®ÀÚ(processor)°¡ ¹ÝÀÀÇÏ¿©¾ß Çϴ°¡ÀÇ Á¤º¸¸¦ Á¦°øÇÑ´Ù.

¾ÖÆ®¸®ºäÆ® µðÆúÆ®(Attribute Defaults)
[60]  DefaultDecl ::= '#REQUIRED' | '#IMPLIED'
| (('#FIXED' S)? AttValue) [ VC: ÇÊ¿äÇÑ ¾ÖÆ®¸®ºäÆ® ]
[ VC: À¯È¿ÇÑ ¾ÖÆ®¸®ºäÆ® µðÆúÆ® ]
[ WFC: ¾ÖÆ®¸®ºäÆ® °ª¿¡ '<' ¾øÀ½ ]
[ VC: °íÁ¤µÈ ¾ÖÆ®¸®ºäÆ® µðÆúÆ® ]

¾ÖÆ®¸®ºäÆ®(attribute) ¼±¾ð¿¡¼­, #REQUIRED´Â ¾ÖÆ®¸®ºäÆ®°¡ Ç×»ó Á¦°øµÇ¾î¾ß ÇÏ°í, #IMPLIED´Â µðÆúÆ® °ªÀÌ ¾ø´Â °ÍÀ» ÀǹÌÇÑ´Ù. ¸¸ÀÏ ¼±¾ðÀÌ #REQUIRED³ª #IMPLIED°¡ ¾Æ´Ï¸é, AttValue °ªÀº ¼±¾ðµÈ µðÆúÆ® °ªÀ» °®´Â´Ù; #FIXED Å°¿öµå(keyword)´Â ¾ÖÆ®¸®ºäÆ®°¡ Ç×»ó µðÆúÆ® °ªÀ» °¡Á®¾ß ÇÑ´Ù´Â °ÍÀ» ±â¼úÇÑ´Ù. µðÆúÆ® °ªÀÌ ¼±¾ðµÇ¾úÀ¸¸é, XML ó¸®ÀÚ(processor)°¡ »ý·«µÈ ¾ÖÆ®¸®ºäÆ®¸¦ ¸¸³µÀ» ¶§, µðÆúÆ® °ªÀÌ ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ®°¡ ÀÖ´Â °Í ó·³ ÇൿÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ÇÊ¿äÇÑ ¾ÖÆ®¸®ºäÆ®(Required Attribute)
µðÆúÆ® ¼±¾ðÀÌ Å°¿öµå #REQUIREDÀ̸é, ¾ÖÆ®¸®ºäÆ®´Â ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð ¾È ±× ŸÀÔÀÇ ¸ðµç ¿¤·¹¸àÆ®¿¡ ÁöÁ¤µÇ¾î¾ß ÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: À¯È¿ÇÑ ¾ÖÆ®¸®ºäÆ® µðÆúÆ®(Attribute Default Legal)
¼±¾ðµÈ µðÆúÆ® °ªÀº ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ® ŸÀÔÀÇ Á¦ÇÑ¿ä¼ÒÀ» ¸¸Á·½ÃÄÑ¾ß ÇÑ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: °íÁ¤µÈ ¾ÖÆ®¸®ºäÆ® µðÆúÆ®(Fixed Attribute Default)
¸¸ÀÏ ¾ÖÆ®¸®ºäÆ®°¡ #FIXED Å°¿öµå·Î ¼±¾ðµÈ µðÆúÆ® °ªÀ» °¡Áö°í ÀÖÀ¸¸é, ¾ÖÆ®¸®ºäÆ®ÀÇ ÀνºÅº½º(instance)´Â ±× µðÆúÆ® °ª°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.

¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð ¿¹Á¦:

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

3.3.3 ¾ÖÆ®¸®ºäÆ® °ªÀÇ Á¤»óÈ­(normalization)

¾ÖÆ®¸®ºäÆ®(attribute) °ªÀÌ Àû¿ë(application)¿¡ Àü´ÞµÇ°Å³ª À¯È¿¼ºÀÌ Á¡°ËµÇ±â Àü¿¡, XML ó¸®ÀÚ(processor)´Â ¾Æ·¡¿Í °°ÀÌ Á¤»óÈ­ ÇÏ¿©¾ß ÇÑ´Ù:

  • ÂüÁ¶µÈ ±ÛÀÚ¸¦ ¾ÖÆ®¸®ºäÆ® °ª¿¡ ÷ºÎ ÇÔÀ¸·Î¼­ ±ÛÀÚ ÂüÁ¶°¡ 󸮵ȴÙ.
  • ¹Ýº¹ÀûÀ¸·Î ¿£Æ¼Æ¼(entity)ÀÇ ±³Ã¼ ÅؽºÆ®¸¦ °¡°ø ÇÔÀ¸·Î¼­ ¿£Æ¼Æ¼ ÂüÁ¶°¡ 󸮵ȴÙ.
  • ¿ÜºÎÀûÀ¸·Î Çؼ®(parse)µÈ ¿£Æ¼Æ¼ÀÇ ºÎºÐ, ¶Ç´Â ³»ºÎÀûÀ¸·Î Çؼ®µÈ ¿£Æ¼Æ¼ÀÇ ¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ªÀÎ "#xD#xA" ¿¬¼Ó¿¡ ´ÜÀÏ '#x20' ¸¸ÀÌ Ãß°¡µÈ´Ù´Â °Í Á¦¿ÜÇÏ°í´Â, °ø¹é ±ÛÀÚ(#x20, #xD, #xA, #x9)´Â Á¤»óÈ­ µÈ(normalized) °ª¿¡ '#x20'¸¦ Ãß°¡ ÇÔÀ¸·Î¼­ 󸮵ȴÙ.
  • ´Ù¸¥ ±ÛÀÚµéÀº ±×°Í¿¡ Á¤»óÈ­µÈ °ªÀÌ Ã·ºÎ µÊÀ¸·Î¼­ 󸮵ȴÙ

¸¸ÀÏ ±× ¼±¾ðµÈ °ªÀÌ CDATA °¡ ¾Æ´Ï¸é, XML ó¸®ÀÚ(processor)´Â, ¸Ç ¾Õ°ú µÚÀÇ °ø¹é(#x20) ±ÛÀÚµéÀ» Á¦°ÅÇÏ°í, ¿¬¼Ó °ø¹é(#x20) ±ÛÀÚµéÀ» ´ÜÀÏ °ø¹é(#x20) ±ÛÀÚ·Î ±³Ã¼ÇÏ´Â, Ãß°¡ÀûÀÎ ¾ÖÆ®¸®ºäÆ® °ªÀÇ Á¤»óÈ­ °úÁ¤À» °ÅÃÄ¾ß ÇÑ´Ù.

¼±¾ðÀÌ ¾ø´Â ¸ðµç ¾ÖÆ®¸®ºäÆ®µéÀº À¯È¿¼ºÀ» °ËÁ¤ ¾Ê´Â Çؼ®ÀÚ(parser)¿¡ ÀÇÇÏ¿© CDATA°¡ ¼±¾ðµÈ °Í ó·³ Ãë±Þ µÇ¾î¾ß ÇÑ´Ù.

3.4 Á¶°ÇºÎ Ç׸ñ

Á¶°ÇºÎ Ç׸ñ(conditional section)Àº, ±×µéÀ» ´Ù·ç´Â Å°¿öµå(keyword)¿¡ ±âÃÊÇÑ DTDÀÇ ³í¸®Àû ±¸Á¶¿¡ Æ÷ÇԵǰųª Á¦¿ÜµÈ, ¹®¼­ ŸÀÔ ¼±¾ð ¿ÜºÎÀû ÇϺμ¼Æ®ÀÇ ºÎºÐµéÀÌ´Ù.

Á¶°ÇºÎ Ç׸ñ(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*)

³»ºÎÀû°ú ¿ÜºÎÀû DTD ÇϺμ¼Æ®(subset)µé°ú ¸¶Âù°¡Áö·Î, Á¶°ÇºÎ Ç׸ñ(conditional section)Àº ÇÑ°³ ȤÀº ±× ÀÌ»óÀÇ ¿ÏÀüÇÑ ¼±¾ð, ÄÚ¸àÆ®, ó¸®Áö½Ã(processing instruction) ¶Ç´Â ³×½ºÆ®(nest) µÈ Á¶°ÇºÎ Ç׸ñµé, °ø¹é°ú È¥ÇÕµéÀ» Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù.

¸¸ÀÏ Á¶°ÇºÎ Ç׸ñÀÇ Å°¿öµå(keyword)°¡ INCLUDEÀ̸é, Á¶°ÇºÎ Ç׸ñÀÇ ³»¿ë(content)Àº DTDÀÇ ºÎºÐÀÌ´Ù. Á¶°ÇºÎ Ç׸ñÀÇ Å°¿öµå°¡ IGNOREÀ̸é, Á¶°ÇºÎ Ç׸ñÀÇ ³»¿ëÀº ³í¸®ÀûÀ¸·Î DTDÀÇ ºÎºÐÀÌ ¾Æ´Ï´Ù. ¿Ã¹Ù¸¥ Çؼ®(parsing)À» À§ÇÏ¿©, Á¶°ÇºÎ Ç׸ñµéÀÇ ³×½ºÆ®¸¦ ¾Ë¾Æ³»°í, (¹«½ÃµÈ) Á¶°ÇºÎ Ç׸ñÀÇ °¨ÁöµÈ °¡Àå ¹ÛÀÇ ³¡À» È®ÀÎÇϱâ À§ÇÏ¿©, ¹«½ÃµÈ Á¶°ÇºÎ Ç׸ñÀÇ ³»¿ëµé ±îÁöµµ Àоî¾ß ÇÑ´Ù´Â Á¡¿¡ ÁÖÀÇÇ϶ó. ¸¸ÀÏ Á¶°ÇºÎ Ç׸ñÀÌ Å°¿öµå INCLUDE°¡, Å°¿öµå IGNORE¸¦ °®´Â ´õ Å« Á¶°ÇºÎ Ç׸ñ ¾È¿¡ ³ªÅ¸³ª¸é, ¿ÜºÎ¿Í ³»ºÎ Á¶°ÇºÎ Ç׸ñµéÀÌ µÑ ´Ù ¹«½ÃµÈ´Ù.

¸¸ÀÏ Á¶°ÇºÎ Ç׸ñÀÇ Å°¿öµå°¡ ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼¸¦ ÂüÁ¶À̸é, ó¸®ÀÚ(processor)°¡ ±× Á¶°ÇºÎ Ç׸ñ(conditional section)À» Æ÷ÇÔ ÇÒ °ÍÀΰ¡ ¹«½Ã ÇÒ °ÍÀΰ¡¸¦ °áÁ¤Çϱâ Àü¿¡, ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼´Â ±× ³»¿ë(content)À¸·Î ´ëüµÇ¾î¾ß ÇÑ´Ù.

¿¹Á¦:

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


4. ¹°¸®Àû ±¸Á¶

XML ¹®¼­´Â Çϳª ȤÀº ±× ÀÌ»óÀÇ ÀúÀå(storage) ´ÜÀ§µé·Î ±¸¼º µÉ ¼ö ÀÖÀ¸¸ç, À̰͵éÀ» ¿£Æ¼Æ¼(entity)¶ó ºÎ¸¥´Ù; À̵éÀº ¸ðµÎ ³»¿ë(content)À» °¡Áö¸ç, ¸ðµÎ(¹®¼­ ¿£Æ¼Æ¼(¾Æ·¡ ÂüÁ¶)¿Í ¿ÜºÎÀû DTD ÇϺμ¼Æ®¸¦ Á¦¿Ü) À̸§(name)À¸·Î ÀνĵȴÙ. °¢ XML ¹®¼­´Â ¹®¼­ ¿£Æ¼Æ¼¶ó ºÒ¸®¿ì´Â ÇϳªÀÇ ¿£Æ¼Æ¼¸¦ °¡Áö¸ç, ÀÌ´Â XML ó¸®ÀÚ(processor)ÀÇ ½ÃÀÛÁ¡À¸·Î ÀÛ¿ëÇÏ°í, Àüü ¹®¼­¸¦ Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù.

¿£Æ¼Æ¼´Â Çؼ®(parse)µÈ °ÍÀ̰ųª Çؼ® ¾ÈµÈ °ÍÀÌ µÉ ¼ö ÀÖ´Ù. Çؼ®(parse)µÈ ¿£Æ¼Æ¼ÀÇ ³»¿ë(content)µéÀº ±× ±³Ã¼ ÅؽºÆ®·Î ÂüÁ¶µÈ´Ù; ÀÌ ÅؽºÆ®´Â ±× ¹®¼­ÀÇ ÀϺηΠ°£ÁֵȴÙ.

Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼´Â, ±× ³»¿ëÀÌ ÅؽºÆ®°¡ µÉ ¼ö Àְųª µÉ ¼ö ¾ø´Â ÀÚ¿ø(resource)À̸ç, ¸¸ÀÏ ÅؽºÆ®À̸é, XMLÀÌ µÉ ¼ö ¾ø´Ù. °¢ Çؼ® ¾ÈµÈ ¿£Æ¼Æ¼´Â ÇϳªÀÇ °ü·ÃµÈ ÁÖ¼®(notation)À» °¡Áö¸ç, À̸§À¸·Î ÀνĵȴÙ. XML ó¸®ÀÚ(processor)°¡ Àû¿ë(application)ÀÌ »ç¿ë ÇÒ ¼ö ÀÖ´Â ¿£Æ¼Æ¼¿Í ÁÖ¼®(notation)ÀÇ ÀνÄÀÚ(identifier)µéÀ» ¸¸µå´Â Çʿ伺 ¸»°í´Â, XMLÀº Çؼ® ¾ÈµÈ ¿£Æ¼Æ¼ÀÇ ³»¿ë¿¡ Á¦ÇÑ¿ä¼Ò¸¦ ÁÖÁö ¾Ê´Â´Ù.

Çؼ®µÈ ¿£Æ¼Æ¼µéÀº ¿£Æ¼Æ¼ ÂüÁ¶¸¦ »ç¿ëÇÏ¿© À̸§À¸·Î ºÒ·¯Áö°í(invoked); Çؼ® ¾ÈµÈ ¿£Æ¼Æ¼´Â À̸§, ÁÖ¾îÁø °ª ENTITY ȤÀº ENTITIES ¾ÖÆ®¸®ºäÆ®µé·Î ºÒ·¯Áø´Ù.

ÀϹÝ(general) ¿£Æ¼Æ¼´Â ¹®¼­ ³»¿ë(content) ¾È¿¡¼­ »ç¿ëµÇ´Â ¿£Æ¼Æ¼ÀÌ´Ù. À̱԰ݿ¡¼­, ÀÏ¹Ý ¿£Æ¼Æ¼´Â ¶§¶§·Î, ¸ðÈ£¼ºÀÌ ¾øÀ» ¶§, ´Ü¼øÈ÷ ¿£Æ¼Æ¼(entity)·Î ÂüÁ¶µÈ´Ù. ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼µéÀº DTD ¾È¿¡¼­ »ç¿ëµÇ´Â Çؼ®(parse)µÈ ¿£Æ¼Æ¼ÀÌ´Ù. ÀÌµé ¿£Æ¼Æ¼ÀÇ µÎ ŸÀÔµéÀº ´Ù¸¥ ÂüÁ¶ ¾ç½ÄµéÀ» »ç¿ëÇϸç, ´Ù¸¥ ¹®¸Æµé·Î ÀνĵȴÙ. ´õ´õ¿í, À̵éÀº ´Ù¸¥ À̸§ÀÚ¸®(namespace)µéÀ» Â÷ÁöÇÑ´Ù; °°Àº À̸§ÀÇ ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼¿Í ÀÏ¹Ý ¿£Æ¼Æ¼´Â ¼­·Î ´Ù¸¥ ¿£Æ¼Æ¼µéÀÌ´Ù.

4.1 ±ÛÀÚ¿Í ¿£Æ¼Æ¼ ÂüÁ¶

±ÛÀÚ ÂüÁ¶´Â ISO/IEC 10646 ±ÛÀÚ ¼¼Æ®ÀÇ Æ¯Á¤ ±ÛÀÚ¸¦ ÂüÁ¶ÇÑ´Ù. ¿¹¸¦ µé¸é ÀÔ·ÂÀåÄ¡µé¿¡¼­ Á÷Á¢ÀûÀ¸·Î »ç¿ë ÇÒ ¼ö ¾ø´Â ±ÛÀÚ¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ´Ù.

±ÛÀÚ ÂüÁ¶(Character Reference)
[66]  CharRef ::= '&#' [0-9]+ ';'
| '&#x' [0-9a-fA-F]+ ';' [ WFC: ¿Ã¹Ù¸¥(legal) ±ÛÀÚ ]

Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¿Ã¹Ù¸¥(legal) ±ÛÀÚ
±ÛÀÚ ÂüÁ¶¸¦ »ç¿ëÇÏ¿© ÂüÁ¶µÈ ±ÛÀÚµéÀº Char »ý¼º¹°°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.

¸¸ÀÏ ±ÛÀÚ ÂüÁ¶°¡ "&#x"À¸·Î ½ÃÀÛÇÏ°í, ¼ýÀÚ(digit)³ª ±ÛÀÚ(letter)µé, ±×¸®°í ;·Î Á¾·áµÇ¸é, ISO/IEC 10646ÀÇ ±ÛÀÚµé ÄÚµå Æ÷ÀÎÆ®ÀÇ 16Áø¼ö Ç¥ÇöÀÌ µÈ´Ù. ¸¸ÀÏ "&#" ¸¸À¸·Î ½ÃÀ۵ǰí, ¼ýÀÚ, ±×¸®°í ;·Î Á¾·áµÇ¸é, ±ÛÀÚµé ÄÚµå Æ÷ÀÎÆ®ÀÇ 10Áø¼ö Ç¥ÇöÀÌ µÈ´Ù.

¿£Æ¼Æ¼(entity) ÂüÁ¶´Â À̸§ ºÙ¿©Áø(named) ¿£Æ¼Æ¼ÀÇ ³»¿ëÀ» ÂüÁ¶ÇÑ´Ù. Çؼ®(parse)µÈ ÀÏ¹Ý ¿£Æ¼Æ¼ÀÇ ÂüÁ¶´Â ¾ÚÆÛ»÷µå(&)¿Í ½ê¹ÌÄÝ·Ð (;)À» ±¸ºÐÀÚ(delimiter)·Î »ç¿ëÇÑ´Ù. ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ ÂüÁ¶´Â ¹éºÐÀ² ±âÈ£ (%)¿Í ½ê¹ÌÄÝ·Ð (;)À» ±¸ºÐÀÚ(delimiter)·Î »ç¿ëÇÑ´Ù.

¿£Æ¼Æ¼ ÂüÁ¶(Entity Reference)
[67]  reference ::= EntityRefCharRef
[68]  EntityRef ::= '&' Name ';' [ WFC: ¼±¾ðµÈ ¿£Æ¼Æ¼ ]
[ VC: ¼±¾ðµÈ ¿£Æ¼Æ¼ ]
[ WFC: Çؼ® µÈ ¿£Æ¼Æ¼ ]
[ WFC: ¹Ýº¹ ¾øÀ½ ]
[69]  PEReference ::= '%' Name ';' [ VC: ¼±¾ðµÈ ¿£Æ¼Æ¼ ]
[ WFC: ¹Ýº¹ ¾øÀ½ ]
[ WFC: DTD ¾È¿¡ ]

Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¼±¾ðµÈ ¿£Æ¼Æ¼(Entity Declared)
DTD°¡ ¾ø´Â ¹®¼­¿¡¼­, ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ ÂüÁ¶°¡ ¾ø´Â ³»ºÎÀû DTD ÇϺμ¼Æ®(subset) Çϳª ¸¸À» °®´Â ¹®¼­, ¶Ç´Â "standalone='yes'" ÀÌ°í, NameÀÌ ¿£Æ¼Æ¼ ÂüÁ¶¿¡ ÁÖ¾îÁø ¹®¼­´Â, ¿£Æ¼Æ¼(entity) ¼±¾ðÀÇ °Í°ú ÀÏÄ¡ÇÏ¿©¾ß Çϳª, Àß Çü¼ºµÈ ¹®¼­µé¿¡¼­ ´ÙÀ½ ¿£Æ¼Æ¼µéÀº ¼±¾ð ÇÒ ÇÊ¿ä°¡ ¾ø´Â ¿¹¿Ü »çÇ×ÀÌ´Ù: amp, lt, gt, apos, quot. ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ ¼±¾ðÀº ±×ÀÇ ¾î¶² ÂüÁ¶º¸´Ù ¸ÕÀúµÇ¾î¾ß ÇÑ´Ù. À¯»çÇÏ°Ô, ÀÏ¹Ý ¿£Æ¼Æ¼(entity) ¼±¾ðÀº, ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðÀÇ µðÆúÆ® °ªÀ» ÂüÁ¶º¸´Ù ¸ÕÀúµÇ¾î¾ß ÇÑ´Ù. ¸¸ÀÏ ¿£Æ¼Æ¼µéÀÌ ¿ÜºÎÀû ÇϺμ¼Æ®(subset) ¶Ç´Â ¿ÜºÎÀû ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼¿¡ ¼±¾ðµÇ¾úÀ¸¸é, À¯È¿¼º °ËÁ¤À» ÇÏÁö ¾Ê´Â ó¸®ÀÚ(processor)´Â ±×ÀÇ ¼±¾ðµéÀ» Àаí ó¸®ÇÏÁö ¾Ê´Â´Ù´Â Á¡¿¡ À¯ÀÇÇ϶ó; ÀÌ·± ¹®¼­µé¿¡¼­, ¿£Æ¼Æ¼°¡ ¼±¾ðµÇ¾î¾ß ÇÑ´Ù´Â ±ÔÄ¢Àº standalone='yes'ÀÎ °æ¿ì¿¡ ¸¸ ÇØ´çÇÏ´Â Àß Çü¼ºµÇ±â À§ÇÑ Çʼö»çÇ×ÀÌ´Ù

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ¼±¾ðµÈ ¿£Æ¼Æ¼(Entity Declared)
¿ÜºÎÀû ÇϺμ¼Æ® ¶Ç´Â ¿ÜºÎÀû ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼¿¡ "standalone='no'"¸¦ °®´Â ¹®¼­¿¡¼­, ¿£Æ¼Æ¼ ÂüÁ¶¿¡ ÁÖ¾îÁø NameÀº ¿£Æ¼Æ¼ ¼±¾ðÀÇ °Í°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù. °øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©, À¯È¿ÇÑ(valid) ¹®¼­µéÀº, 4.6 "»çÀü¿¡ Á¤ÀÇµÈ ¿£Æ¼Æ¼"¿¡ ÁöÁ¤µÈ ¾ç½ÄÀ¸·Î, ¿£Æ¼Æ¼ amp, lt, gt, apos, quot°¡ ¼±¾ðÇÏ¿©¾ß ÇÑ´Ù. ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ÀÇ ¼±¾ðÀº ±×ÀÇ ¾î¶² ÂüÁ¶º¸´Ù ¸ÕÀúµÇ¾î¾ß ÇÑ´Ù. À¯»çÇÏ°Ô, ÀÏ¹Ý ¿£Æ¼Æ¼ ¼±¾ðÀº, ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðÀÇ µðÆúÆ® °ªÀ» ÂüÁ¶º¸´Ù ¸ÕÀúµÇ¾î¾ß ÇÑ´Ù.

Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: Çؼ®µÈ ¿£Æ¼Æ¼(Parsed Entity)
Çؼ®µÈ ¿£Æ¼Æ¼ ÂüÁ¶´Â Çؼ® ¾ÈµÈ ¿£Æ¼Æ¼(entity) À̸§À» Æ÷ÇÔÇؼ­´Â ¾ÊµÈ´Ù. Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼´Â, ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ® °ªÀÌ Å¸ÀÔ ENTITY ¶Ç´Â ENTITIES ÀÏ °æ¿ì¿¡ ¸¸, ÂüÁ¶ µÉ ¼ö ÀÖ´Ù

Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¹Ýº¹ ¾øÀ½(No Recursion)
Çؼ®(parse)µÈ ¿£Æ¼Æ¼´Â Á÷Á¢ÀûÀÌ°Ç °£Á¢ÀûÀÌ°Ç ¹Ýº¹µÈ ÀÚüÀÇ ÂüÁ¶¸¦ Æ÷ÇÔÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.

Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: DTD ¾È¿¡(In DTD)
ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) ÂüÁ¶´Â DTD ¾È¿¡ ¸¸ ³ªÅ¸³¯ ¼ö ÀÖ´Ù.

±ÛÀÚ¿Í ¿£Æ¼Æ¼ ÂüÁ¶ ¿¹Á¦:

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

ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) ÂüÁ¶ ¿¹Á¦:

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

4.2 ¿£Æ¼Æ¼ ¼±¾ð

¿£Æ¼Æ¼(entity)µéÀº ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÈ´Ù:

¿£Æ¼Æ¼ ¼±¾ð(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Àº ¿£Æ¼Æ¼ ÂüÁ¶¿¡ ÀÖ´Â ¿£Æ¼Æ¼, ¶Ç´Â, Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼(entity)ÀÇ °æ¿ì, ENTITY ȤÀº ENTITIES ¾ÖÆ®¸®ºäÆ® °ªÀ» ÀνÄ(identify)ÇÑ´Ù. ¸¸ÀÏ °°Àº ¿£Æ¼Æ¼°¡ Çѹø ÀÌ»ó ¼±¾ðµÇ¾úÀ¸¸é, ¸ÕÀú ¸¸³­ ¼±¾ðÀÌ Àû¿ëµÈ´Ù; »ç¿ëÀÚ ¼±ÅÃÀ¸·Î, XML ó¸®ÀÚ(processor)´Â ¸¸ÀÏ ¿£Æ¼Æ¼(entity) ¿©·¯¹ø ¼±¾ðµÇ¾úÀ¸¸é °æ°í¸¦ ¹ß»ý½Ãų ¼ö ÀÖ´Ù.

4.2.1 ³»ºÎÀû ¿£Æ¼Æ¼

¸¸ÀÏ ¿£Æ¼Æ¼ Á¤ÀÇ°¡ EntityValueÀ̸é, ±× Á¤ÀÇµÈ ¿£Æ¼Æ¼(entity)¸¦ ³»ºÎÀû ¿£Æ¼Æ¼¶ó ºÎ¸¥´Ù. º°µµÀÇ ¹°¸®Àû ÀúÀå ¿ÀºêÁ§Æ®(object)°¡ ÀÖÁö ¾Ê°í, ¿£Æ¼Æ¼ ³»¿ë(content)Àº ¼±¾ð¿¡ ÁÖ¾îÁø´Ù. ÀϺΠ¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ªÀÇ ¿£Æ¼Æ¼¿Í ±ÛÀÚ ÂüÁ¶ 󸮴 ¿Ã¹Ù¸¥ ±³Ã¼ ÅؽºÆ®¸¦ ¸¸µå´Âµ¥ ÇÊ¿ä ÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡ À¯ÀÇÇ϶ó: 4.5 "³»ºÎÀû ¿£Æ¼Æ¼ ±³Ã¼ ÅؽºÆ®ÀÇ ±¸¼º"À» Âü°íÇ϶ó.

ÇϳªÀÇ ³»ºÎÀû ¿£Æ¼Æ¼´Â Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)ÀÌ´Ù.

³»ºÎÀû ¿£Æ¼Æ¼ ¼±¾ð ¿¹Á¦:

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

4.2.2 ¿ÜºÎÀû ¿£Æ¼Æ¼

¸¸ÀÏ ¿£Æ¼Æ¼(entity)°¡ ³»ºÎÀûÀÌ ¾Æ´Ï¸é, ¾Æ·¡¿Í °°ÀÌ ¼±¾ðµÈ ¿ÜºÎÀû ¿£Æ¼Æ¼ÀÌ´Ù:

¿ÜºÎÀû ¿£Æ¼Æ¼ ¼±¾ð(External Entity Declaration)
[75]  ExternalID ::= 'SYSTEM' S SystemLiteral
| 'PUBLIC' S PubidLiteral S SystemLiteral
[76]  NDataDecl ::= S 'NDATA' S Name [ VC: ¼±¾ðµÈ ÁÖ¼® ]

¸¸ÀÏ NDataDecl°¡ ÀÖÀ¸¸é, ÀÌ´Â ÀÏ¹Ý Çؼ® ¾ÈµÈ ¿£Æ¼Æ¼À̸ç; ¾Æ´Ï¸é Çؼ®(parse)µÈ ¿£Æ¼Æ¼ÀÌ´Ù.

À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ¼±¾ðµÈ ÁÖ¼®(Notation Declared)
NameÀº ÁÖ¼®(notation)ÀÇ ¼±¾ðµÈ À̸§°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.

SystemLiteralÀº ±× ¿£Æ¼Æ¼(entity)ÀÇ ½Ã½ºÅÛ ÀνÄÀÚ(identifier)¶ó ºÒ¸®¿î´Ù. ÀÌ´Â ÇϳªÀÇ URIÀ̸ç, ¿£Æ¼Æ¼(entity)¸¦ ºÒ·¯¿À´Âµ¥ »ç¿ë µÉ ¼ö ÀÖ´Ù. URI ÇÔ²² ÀÚÁÖ »ç¿ëµÇ´Â #¿Í ºÎÀ§(fragment) ÀνÄÀÚ(identifier)´Â °ø½ÄÀûÀ¸·Î´Â URI ÀÚüÀÇ ÀϺΰ¡ ¾Æ´Ï¶ó´Â Á¡¿¡ À¯ÀÇÇ϶ó; XML ó¸®ÀÚ(processor)´Â, ½Ã½ºÅÛ ÀνÄÀÚÀÇ ÀϺηΠºÎÀ§(fragment) ÀνÄÀÚ°¡ ÀÖÀ¸¸é, ¿À·ùÀÇ ½ÅÈ£¸¦ ¹ß»ý½Ãų ¼ö ÀÖ´Ù. ÀÌ±Ô°Ý ¹üÀ§ ¹ÛÀÇ(¿¹¸¦ µé¾î ƯÁ¤ DTD¿¡ ÀÇÇØ Á¤ÀÇµÈ Æ¯º° XML ¿¤·¹¸àÆ® ŸÀÔ, ȤÀº, ƯÁ¤ Àû¿ë ±Ô°Ý¿¡ ÀÇÇÏ¿© Á¤ÀÇµÈ Ã³¸®Áö½Ã) Á¤º¸°¡ µû·Î Á¦°øµÇÁö ¾Ê´Â ÇÑ, »ó´ëÀû URIµéÀº ¿£Æ¼Æ¼ ¼±¾ð¿¡ ³ªÅ¸³­ ÀÚ¿ø À§Ä¡¿¡ »ó´ëÀûÀÌ´Ù. ±×·¡¼­ ÇÑ URI´Â ¹®¼­ ¿£Æ¼Æ¼¿¡, ¿ÜºÎÀû DTD ÇϺμ¼Æ®(subset)¿¡ Æ÷ÇÔµÈ ¿£Æ¼Æ¼¿¡, ¶Ç´Â ´Ù¸¥ ¿ÜºÎÀû ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼¿¡ »ó´ëÀûÀÌ µÉ ¼ö ÀÖ´Ù.

XML ó¸®ÀÚ(processor)´Â URI¿¡ ÀÖ´Â ºñASCII ±ÛÀÚ¸¦, Çϳª ȤÀº ±×ÀÌ»óÀÇ ¹ÙÀÌÆ®(byte)·Î UTF-8 ±ÛÀڷΠǥÇöÇÔÀ¸·Î¼­, ±×¸®°í´Â À̵é URI ¿¡½ºÄÉÀÔÇÏ´Â ±â±¸(mechanism: ¸»ÇÏÀÚ¸é, °¢ ¹ÙÀÌÆ®¸¦ 16Áø¼ö ÁÖ¼®ÀÎ %HH·Î º¯È¯ÇÏ¿©)·Î ¹ÙÀÌÆ® ¿¡½ºÄÉÀÔ(escape)ÇÏ¿©, Ãë±ÞÇÏ¿©¾ß ÇÑ´Ù.

½Ã½ºÅÛ ÀνÄÀÚ(identifier)¿¡ Ãß°¡ÀûÀ¸·Î, ¿ÜºÎÀû ÀνÄÀÚ¿¡ °øÅë(public) ÀνÄÀÚ¸¦ Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù. ¿£Æ¼Æ¼ÀÇ ³»¿ë ÀÐÀ½À» ½ÃµµÇÏ´Â XML ó¸®ÀÚ(processor)´Â ´ëü URIÀÇ »ý¼ºÀ» ½ÃµµÇϱâ À§ÇÏ¿© °øÅë(public) ÀνÄÀÚ¸¦ »ç¿ë ÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ ±× ó¸®ÀÚ°¡ ±×·¸°Ô ÇÒ ¼ö ¾øÀ¸¸é, ½Ã½ºÅÛ ¸®ÅͶö(system literal)¿¡¼­ ÁöÁ¤ÇÑ URI¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. ÀÏÄ¡¸¦ ½ÃµµÇϱâ Àü¿¡, ¸ðµç °øÅë ÀνÄÀÚÀÇ °ø¹é ½ºÆ®¸µÀº, ´ÜÀÏ °ø¹é ±ÛÀÚ(#x20)·Î, ±×¸®°í ¸Ç ¾Õ°ú ¸Ç µÚÀÇ °ø¹éÀº Á¦°ÅÇÏ¿©, Á¤»óÈ­(normalized)µÇ¾î¾ß ÇÑ´Ù.

¿ÜºÎÀû ¿£Æ¼Æ¼ ¼±¾ð ¿¹Á¦:

<!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 Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)

4.3.1 ÅؽºÆ® ¼±¾ð

¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)´Â °¢°¢ ÅؽºÆ® ¼±¾ðÀ¸·Î ½ÃÀÛ µÉ ¼ö ÀÖ´Ù.

ÅؽºÆ® ¼±¾ð(Text Declaration)
[77]  TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>'

ÅؽºÆ® ¼±¾ðÀº Çؼ®µÈ ¿£Æ¼Æ¼¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¸®ÅͶö(literal)·Î Á¦°øµÇ¾î¾ß ÇÑ´Ù. ÅؽºÆ® ¼±¾ðÀº ¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼ÀÇ ½ÃÀÛ ºÎºÐ ÀÌ¿ÜÀÇ À§Ä¡¿¡´Â ³ª¿Ã ¼ö ¾ø´Ù.

4.3.2 Àß Çü¼ºµÈ Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)

¹®¼­ ¿£Æ¼Æ¼´Â, ÀÌ°ÍÀÌ ¶óº§µÈ(labeled) documentÀÇ »ý¼º¹°°ú ÀÏÄ¡Çϸé, Àß Çü¼ºµÈ °ÍÀÌ´Ù. ¿ÜºÎÀû ÀϹÝÀû(general) Çؼ®(parse)µÈ ¿£Æ¼Æ¼´Â, ÀÌ°ÍÀÌ ¶óº§µÈ extParsedEntÀÇ »ý¼º¹°°ú ÀÏÄ¡Çϸé, Àß Çü¼ºµÈ °ÍÀÌ µÈ´Ù. ¿ÜºÎÀû ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼´Â, ÀÌ°ÍÀÌ ¶óº§µÈ extPEÀÇ »ý¼º¹°°ú ÀÏÄ¡Çϸé, Àß Çü¼ºµÈ °ÍÀÌ µÈ´Ù.

Àß Çü¼ºµÈ ¿ÜºÎÀû Çؼ®µÈ ¿£Æ¼Æ¼(Well-Formed External Parsed Entity)
[78]  extParsedEnt ::= TextDecl? content
[79]  extPE ::= TextDecl? extSubsetDecl

³»ºÎÀû ÀϹÝÀû(general) Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)´Â, ±×ÀÇ ±³Ã¼ ÅؽºÆ®°¡ ¶óº§µÈ ³»¿ë(content)ÀÇ »ý¼º¹°°ú ÀÏÄ¡Çϸé, Àß Çü¼ºµÈ °ÍÀÌ µÈ´Ù. ¸ðµç ³»ºÎÀû ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼´Â Á¤ÀÇ¿¡ ÀÇÇØ Àß Çü¼ºµÈ °ÍÀÌ µÈ´Ù.

¿£Æ¼Æ¼°¡ Àß Çü¼ºµÇ¾ú´Ù´Â °ÍÀº XML ¹®¼­ÀÇ ³í¸®Àû, ¹°¸®Àû ±¸Á¶°¡ ÀûÁ¤ÇÏ°Ô ³×½ºÆ®(nest)µÇ¾ú´Ù´Â °ÍÀÌ´Ù; ½ÃÀÛű×, Á¾·áű×, ºó ¿¤·¹¸àÆ® ű×, ¿¤·¹¸àÆ®(element), ÄÚ¸àÆ®(comment), ó¸®Áö½Ã(processing instruction), ±ÛÀÚ ÂüÁ¶, ¶Ç´Â ¿£Æ¼Æ¼ ÂüÁ¶°¡ ÇÑ ¿£Æ¼Æ¼¿¡¼­ ½ÃÀÛµÇ°í ´Ù¸¥ °Í¿¡¼­ Á¾·á µÉ ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù.

4.3.3 ¿£Æ¼Æ¼ ¾ÈÀÇ ±ÛÀÚ ¿£ÄÚµù

XML ¹®¼­ÀÇ °¢ ¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼´Â ±× ±ÛÀÚµéÀ» À§ÇÏ¿© ´Ù¸¥ ¿£ÄÚµù(encoding) »ç¿ë ÇÒ ¼ö ÀÖ´Ù. ¸ðµç XML ó¸®ÀÚ(processor)µéÀº UTF-8 ³ª UTF-16ÀÇ ¿£Æ¼Æ¼(entity)¸¦ ÀÐÀ» ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

UTF-16À¸·Î ¿£ÄÚµå(encode)µÈ ¿£Æ¼Æ¼´Â, ISO/IEC 10646 ºÎ·Ï E ¿Í Unicode ºÎ·Ï B ³Êºñ¾ø°í-Áٹٲ޾ø´Â-°ø¹é(ZERO WIDTH NO-BREAK SPACE ±ÛÀÚ, #xFEFF)¿¡ ¼³¸íµÈ ¹ÙÀÌÆ® ¼ø¼­ Ç¥½Ã(Byte Order Mark)·Î ½ÃÀÛÇÏ¿©¾ß ÇÑ´Ù. ÀÌ´Â XML ¹®¼­ÀÇ ÄÚµå(markup)³ª ±ÛÀÚ µ¥ÀÌÅÍÀÇ ºÎºÐÀÌ ¾Æ´Ï¶ó ÇϳªÀÇ ¿£ÄÚµù ¼­¸í(signature: Ç¥½Ã)ÀÌ´Ù, XML ó¸®ÀÚ(processor)´Â ÀÌ ±ÛÀÚÀ» UTF-8 ¿Í UTF-16·Î ¿£ÄÚµåµÈ ¹®¼­µéÀ» ¼­·Î ´Ù¸£°Ô »ç¿ë ÇÒ ¼ö ÀÖ¾î¾ß ÇÑ´Ù.

XML ó¸®ÀÚ´Â UTF-8°ú UTF-16·Î ¿£ÄÚµùµÈ ¿£Æ¼Æ¼¸¦ ÀÐÀ» ¼ö ÀÖ´Â °ÍÀÌ ¿ä±¸µÇÁö¸¸, Àü ¼¼°è¸¦ ÅëÇØ ´Ù¸¥ ¿£ÄÚµùµéÀÌ ¾Ë·ÁÁ® ÀÖ°í, XML ó¸®ÀÚ(processor)µéÀÌ ±× ¿£Æ¼Æ¼µéÀ» Àд °ÍÀº ¹Ù¶÷Á÷ ÇÒ ¼ö ÀÖ´Ù. UTF-8 À̳ª UTF-16 ÀÌ¿ÜÀÇ ¿£ÄÚµùÀ¸·Î ÀúÀåµÈ Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)´Â ¿£ÄÚµù ¼±¾ðÀ» Æ÷ÇÔÇÏ´Â ÅؽºÆ® ¼±¾ðÀ¸·Î ½ÃÀ۵Ǿî¾ß ÇÑ´Ù:

¿£ÄÚµù ¼±¾ð(Encoding Declaration)
[80]  EncodingDecl ::= S 'encoding' Eq ('"' EncName '"' |  "'" EncName "'" )
[81]  EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* /* Latin ±ÛÀÚµé ¸¸ °®´Â ¿£ÄÚµù À̸§*/

¹®¼­ ¿£Æ¼Æ¼¿¡¼­, ¿£ÄÚµù(encoding) ¼±¾ðÀº 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-9"´Â ISO 8859ÀÇ ºÎºÐ¿¡ »ç¿ëµÇ¾î¾ß Çϸç, °ªµé "ISO-2022-JP", "Shift_JIS", "EUC-JP"´Â JIS X-0208-1997ÀÇ ¾ç½ÄÀ¸·Î ¿£ÄÚµåµÈ °Íµé¿¡ »ç¿ëµÇ¾î¾ß ÇÑ´Ù. XML ó¸®ÀÚ(processor)µéÀº ´Ù¸¥ ¿£ÄÚµù(encoding)µéÀ» ÀÎ½Ä ÇÒ ¼ö ÀÖ´Ù; [IANA](Internet Assigned Numbers Authority: ÀÎÅÍ³Ý ÇÒ´ç ¹øÈ£ ´ç±¹)ÀÇ µî·ÏµÈ(charset·Î) ±ÛÀÚ ¿£ÄÚµùµé°ú ¸ñ·ÏÀ¸·Î µÈ ´Ù¸¥ ¿£ÄÚµùµéÀ», ±×µéÀÇ µî·ÏµÈ À̸§À» »ç¿ëÇϴµ¥ ÂüÁ¶ ÇÒ °ÍÀ» ±ÇÇÑ´Ù. ÀÌµé µî·ÏµÈ À̸§Àº ´ë¼Ò¹®ÀÚ ±¸º°ÇÏÁö ¾Ê°í Á¤Àǵǰí, ±×·¡¼­ ó¸®ÀÚ(processor)µéÀº ±×¿¡ ÀÏÄ¡Çϱ⠿øÇÏ¸é ´ë¼Ò¹®ÀÚ ±¸º°ÇÏÁö ¾Ê´Â ¹æ½ÄÀ¸·Î ÇØ¾ß ÇÑ´Ù Á¡¿¡ À¯ÀÇÇ϶ó.

¿ÜºÎÀû Àü´Þ ÇÁ·ÎÅä°ñ(protocol: ¿¹ HTTP ¶Ç´Â MIME)¿¡ ÀÇÇÏ¿© Á¤º¸°¡ Á¦°øµÇÁö ¾ÊÀº »óÅ¿¡¼­, (1) ¼±¾ð ¾ÈÀÇ À̸§ ÀÌ¿ÜÀÇ ¿£ÄÚµùÀ¸·Î XML ó¸®ÀÚ¿¡°Ô Á¦½ÃµÇ´Â ¿£ÄÚµù ¼±¾ðÀ» Æ÷ÇÔÇÏ´Â ¿£Æ¼Æ¼, (2) ¿ÜºÎÀû ¿£Æ¼Æ¼ÀÇ ½ÃÀۺκÐÀÌ ¾Æ´Ï °÷¿¡ ¿£ÄÚµù ¼±¾ðÀÌ ³ªÅ¸³ª´Â °Í, ¶Ç´Â (3) UTF-8 ÀÌ¿ÜÀÇ ¿£ÄÚµùÀ» »ç¿ëÇϱâ À§ÇÏ¿© Byte Order Mark µµ ¾Æ´Ï°í ¿£ÄÚµù(encoding) ¼±¾ðµµ ¾Æ´Ñ °ÍÀ¸·Î ½ÃÀ۵Ǵ ¿£Æ¼Æ¼´Â ¿À·ùÀÌ´Ù.
ASCII´Â UTF-8ÀÇ ÇϺμ¼Æ®(subset)À̹ǷΠº¸ÅëÀÇ ASCII ¿£Æ¼Æ¼´Â ¾ö°ÝÇÏ°Ô ¿£ÄÚµù(encoding) ¼±¾ðÀ» ÇÊ¿ä·Î ÇÏÁö ¾ÊÀ½À» ¸í½ÉÇ϶ó.

XML ó¸®ÀÚ°¡ ó¸® ÇÒ ¼ö ¾ø´Â ¿£ÄÚµùÀÌ ÀÖ´Â ¿£Æ¼Æ¼¸¦ ¸¸³ª¸é ÀÌ°ÍÀº Ä¡¸íÀû ¿À·ùÀÌ´Ù.

¿£ÄÚµù ¼±¾ð ¿¹Á¦:

<?xml encoding='UTF-8'?>
<?xml encoding='EUC-JP'?>

4.4 XML ó¸®ÀÚÀÇ ¿£Æ¼Æ¼¿Í ÂüÁ¶ÀÇ Ã³¸®

¾Æ·¡ Å×À̺íÀº ±ÛÀÚ ÂüÁ¶, ¿£Æ¼Æ¼ ÂüÁ¶, Çؼ® ¾ÈµÈ ¿£Æ¼Æ¼°¡ ³ªÅ¸³ª¸é Á¶Ä¡¿Í °¢ °æ¿ì XML ó¸®ÀÚ°¡ ÃëÇØ¾ß ÇÒ ÇàÀ§µîÀÇ ¹®¸ÆµéÀ» ¿ä¾àÇÑ °ÍÀÌ´Ù. °¡Àå ¿ÞÂÊ Ä÷³ÀÇ ¶óº§Àº ¾Ë·ÁÁø ¹®¸ÆÀ» ±â¼úÇÏ¿´´Ù:

³»¿ë(content) ÂüÁ¶
¿¤·¹¸àÆ®ÀÇ ½ÃÀÛÅÂ±× ÈÄ Á¾·áÅÂ±× Àü ¾îµð¿¡¼­³ª ÂüÁ¶; ºñ Å͹̳¯ content¿¡ ÇØ´ç.
¾ÖÆ®¸®ºäÆ® °ªÀÇ ÂüÁ¶
½ÃÀÛÅÂ±× ¾ÈÀÇ ¾ÖÆ®¸®ºäÆ®(attribute) °ª, ¶Ç´Â ¾ÖÆ®¸®ºäÆ® ¼±¾ðÀÇ µðÆúÆ® °ªÀ» ÂüÁ¶; ºñ Å͹̳¯ AttValue¿¡ ÇØ´ç.
¾ÖÆ®¸®ºäÆ® °ªÀ¸·Î ³ªÅ¸³²
ÂüÁ¶°¡ ¾Æ´Ï¶ó, NameÀ¸·Î ŸÀÔÀÌ ENTITY·Î ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ °ªÀ¸·Î ¶Ç´Â ŸÀÔÀÌ ENTITIES·Î ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ °ªÀ¸·Î ÇϳªÀÇ °ø°£À¸·Î ºÐ¸®µÈ ÅäÅ«(token)µé·Î ³ªÅ¸³ª´Â °Í.
¿£Æ¼Æ¼(entity) °ª ÂüÁ¶
ÆĶó¸ÞÅÍ(parameter) ¶Ç´Â ¿£Æ¼Æ¼(entity)ÀÇ ¼±¾ð¿¡¼­ ³»ºÎÀû ¿£Æ¼Æ¼ÀÇ ¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ªÀ¸·Î ÂüÁ¶; ºñ Å͹̳¯(nonterminal) EntityValue¿¡ ÇØ´ç.
DTD ÂüÁ¶
³»ºÎÀû ¶Ç´Â DTDÀÇ ¿ÜºÎÀû ÇϺμ¼Æ®(subset)µé¿¡¼­ ÂüÁ¶, ±×·¯³ª EntityValue ¶Ç´Â AttValueÀÇ ¿ÜºÎ.
¿£Æ¼Æ¼ ŸÀÔ ±ÛÀÚ
ÆĶó¸ÞÅÍ(parameter) ³»ºÎÀû General ¿ÜºÎÀû Çؼ®µÈ General Çؼ®(parse) ¾ÈµÈ
³»¿ë ÂüÁ¶ ÀÎ½Ä ¸øÇÔ Æ÷ÇÔ Æ÷ÇÔµÈ if À¯È¿¼º °ËÁ¤ ±ÝÁöµÈ Æ÷ÇÔ
¾ÖÆ®¸®ºäÆ® °ª ÂüÁ¶ ÀÎ½Ä ¸øÇÔ ¸®ÅͶö¿¡ Æ÷ÇÔ ±ÝÁöµÈ ±ÝÁöµÈ Æ÷ÇÔ
¾ÖÆ®¸®ºäÆ® °ªÀ¸·Î ³ªÅ¸³² ÀÎ½Ä ¸øÇÔ ±ÝÁöµÈ ±ÝÁöµÈ ¾Ë¸² ÀÎ½Ä ¸øÇÔ
¿£Æ¼Æ¼ °ª ÂüÁ¶ ¸®ÅͶö¿¡ Æ÷ÇÔ Åë°ú Åë°ú ±ÝÁöµÈ Æ÷ÇÔ
DTD ÂüÁ¶ PE·Î Æ÷ÇÔµÈ ±ÝÁöµÈ ±ÝÁöµÈ ±ÝÁöµÈ ±ÝÁöµÈ

4.4.1 ÀÎ½Ä ¸øÇÔ

DTD ¿ÜºÎ¿¡¼­, % ±ÛÀڴ Ưº°ÇÑ Àǹ̸¦ °®Áö ¸øÇÑ´Ù; ±×·¡¼­, DTD¿¡¼­ ÂüÁ¶ÇÏ´Â ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity)¸¦ content ¾È¿¡ ÄÚµå(markup)·Î ÀνÄÇÏÁö ¸øÇÑ´Ù. ÀÌ¿Í À¯»çÇÏ°Ô, ÀûÁ¤ÇÏ°Ô ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ °ªÀ¸·Î ³ªÅ¸³ªÁö ¾Ê´Â ÇÑ, Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼ À̸§µéÀÌ ÀνĵÇÁö ¸øÇÑ´Ù.

4.4.2 Æ÷ÇÔ

¿£Æ¼Æ¼(entity)°¡, ÂüÁ¶°¡ ÀÎ½ÄµÈ Àå¼Ò¿¡¼­ ±× ¹®¼­ÀÇ ÀϺκÐÀÎ °Í ó·³ ÂüÁ¶ ±× ÀÚ¸®¿¡¼­, ±× ±³Ã¼ ÅؽºÆ®°¡ ÀÐÇôÁö°í 󸮵Ǹé, Æ÷ÇԵȴÙ. ±³Ã¼ ÅؽºÆ®´Â ±ÛÀÚ µ¥ÀÌÅÍ¿Í (ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ Á¦¿Ü) ÄÚµå(markup)¸¦ Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù. ¿©±â¼­ ÄÚµå´Â, »ç¿ëµÈ ¿£Æ¼Æ¼(entity)µéÀÇ ±³Ã¼ ÅؽºÆ®°¡ ÄÚµå ±¸ºÐÀÚµé(¿£Æ¼Æ¼ amp, lt, gt, apos, quot)·Î ¿¡½ºÄÉÀÔ(escape)ÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇÏ°í´Â Ç×»ó µ¥ÀÌÅͷΠ󸮵ȴٴ °Í ÀÌ¿Ü¿¡´Â, º¸Åë ¹æ½ÄÀ¸·Î ÀνĵǾî¾ß ÇÑ´Ù. (½ºÆ®¸µ "AT&amp;T;"´Â "AT&T;"·Î È®ÀåµÇ°í, ³ª¸ÓÁö ¾ÚÆÛ»÷µå´Â ¿£Æ¼Æ¼-ÂüÁ¶ ±¸ºÐÀÚ·Î ÀνÄÇÏÁö ¸øÇÑ´Ù.) ÇÑ ±ÛÀÚ ÂüÁ¶´Â ÁöÁ¤µÈ ±ÛÀÚ°¡ ±× ÂüÁ¶ ÀÚüÀÇ ÀÚ¸®¿¡¼­ 󸮵Ǹé Æ÷ÇÔµÈ °ÍÀÌ´Ù.

4.4.3 Æ÷ÇÔµÈ If À¯È¿¼º °ËÁ¤

XML ó¸®ÀÚ(processor)°¡ Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity) ÂüÁ¶¸¦ ÀνÄÇϸé, ±× ¹®¼­ÀÇ À¯È¿¼º °ËÁ¤(validate)À» À§ÇÏ¿©, ó¸®ÀÚ´Â ±× ±³Ã¼ ÅؽºÆ®¸¦ Æ÷ÇÔ(include)ÇÏ¿©¾ß ÇÑ´Ù. ¸¸ÀÏ ¿£Æ¼Æ¼°¡ ¿ÜºÎÀûÀÌ°í, ó¸®ÀÚ°¡ XML ¹®¼­ À¯È¿¼º °ËÁ¤À» ½ÃµµÇÏÁö ¾ÊÀ¸¸é, ±× ó¸®ÀÚ(processor)´Â, ÇÊ¿ä»çÇ×Àº ¾Æ´ÏÁö¸¸, ¿£Æ¼Æ¼(entity)ÀÇ ±³Ã¼ ÅؽºÆ®¸¦ Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ À¯È¿¼º °ËÁ¤ÇÏÁö ¾Ê´Â Çؼ®ÀÚ(parser)°¡ ±³Ã¼ ÅؽºÆ®¸¦ Æ÷ÇÔÇÏÁö ¾ÊÀ¸¸é, Àû¿ë(application)¿¡°Ô ÀÎ½ÄµÈ ¿£Æ¼Æ¼¸¦ ¾Ë·Á ÁÖ¾î¾ß ÇÏÁö¸¸, ÀÐÁö´Â ¾Ê´Â´Ù.

ÀÌ ±ÔÄ¢Àº, ÀÚµ¿ Æ÷ÇÔÀÌ SGML¿¡ ÀÇÇÏ¿© Á¦°øµÇ°í, XML ¿£Æ¼Æ¼ ±â±¸(mechanism)°¡ ¿øõÀûÀ¸·Î ÆíÁýÀÇ ¸ðµâ¼ºÀ» Áö¿øÇϱâ À§ÇÏ¿© ¼³°èµÇ°í, ´Ù¸¥ Àû¿ëµé(±¸Ã¼ÀûÀÎ ¿¹·Î ¹®¼­ ºê¶ó¿ì¡)¿¡ Àû´çÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù´Â, ÀνÄÀ» ±âÃÊ·Î ÇÑ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, ¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼ ÂüÁ¶¸¦ ¸¸³ª¸é, ºê¶ó¿ìÀúµéÀº, ¿£Æ¼Æ¼ÀÇ Á¸À縦 º¸ÀÌ°í, Àоî, ¿ä±¸¿¡ ÀÇÇؼ­ ¸¸ µð½ºÇ÷¹ÀÌÇÏ´Â, ¼±ÅÃÀ» ÇÒ ¼ö ÀÖ´Ù.

4.4.4 ±ÝÁöµÈ

¾Æ·¡´Â ±ÝÁöµÈ »çÇ×µéÀÌ°í Ä¡¸íÀû(fatal) ¿À·ùµéÀ» ±¸¼ºÇÑ´Ù:

  • Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼¸¦ ÂüÁ¶ÇÏ´Â °Í.
  • EntityValue ³ª AttValue ÀÌ¿ÜÀÇ °÷¿¡¼­ DTD¿¡¼­ ±ÛÀÚ ¶Ç´Â ÀϹÝ(general) ¿£Æ¼Æ¼(entity) ÂüÁ¶ÇÏ´Â °Í.
  • ¾ÖÆ®¸®ºäÆ® °ª¿¡¼­ ¿ÜºÎÀû ¿£Æ¼Æ¼(entity)¸¦ ÂüÁ¶ÇÏ´Â °Í.

4.4.5 ¸®ÅͶö(literal)¿¡ Æ÷ÇÔµÈ

¾ÖÆ®¸®ºäÆ® °ª¿¡ ¿£Æ¼Æ¼ ÂüÁ¶°¡ ³ªÅ¸³ª°Å³ª, ¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ª¿¡ ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ ÂüÁ¶°¡ ³ªÅ¸³ª¸é, ±³Ã¼ ÅؽºÆ® ¾ÈÀÇ ´ÜÀÏ ¶Ç´Â ÀÌÁß µû¿ÈÇ¥ ±ÛÀÚ´Â Ç×»ó Á¤»ó µ¥ÀÌÅÍ ±ÛÀڷΠ󸮵ǰí, ¸®ÅͶöÀ» Á¾·á½ÃÅ°Áö ¾Ê´Â´Ù´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â, ±× ±³Ã¼ ÅؽºÆ®°¡ ±× ¹®¼­ÀÇ ºÎºÐÀÎ °Í ó·³ ÀÎ½ÄµÈ ÂüÁ¶ÀÇ À§Ä¡¿¡¼­ 󸮵ȴÙ:

Àß Çü¼ºµÈ ¿¹Á¦:

<!ENTITY % YN '"Yes"' >
<!ENTITY WhatHeSaid "He said &YN;" >

±×·¸Áö ¾ÊÀº ¿¹Á¦:

<!ENTITY EndAttr "27'" >
<element attribute='a-&EndAttr;>

4.4.6 ¾Ë¸²(notify)

Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼(entity)ÀÇ À̸§ÀÌ ¼±¾ðµÈ ŸÀÔ ENTITY ¶Ç´Â ENTITIESÀÇ ¾ÖÆ®¸®ºäÆ®(attribute) °ª¿¡ ÅäÅ«(token)À¸·Î ³ªÅ¸³ª¸é, À¯È¿¼º °ËÁ¤ ó¸®ÀÚ(processor)´Â ½Ã½ºÅÛ(system) Àû¿ë(application)°ú °øÅë(public: ÀÖÀ¸¸é) ÀνÄÀÚ(identifier)µé¿¡°Ô, ¿£Æ¼Æ¼¿Í ±× °ü·ÃµÈ ÁÖ¼®(notation)À» ¾Ë·Á ÁÖ¾î¾ß ÇÑ´Ù.

4.4.7 Åë°ú(bypassed)

¿£Æ¼Æ¼ ¼±¾ð¿¡¼­ EntityValue¿¡ ÀÏ¹Ý ¿£Æ¼Æ¼ ÂüÁ¶°¡ ³ªÅ¸³ª¸é, ±×´ë·Î ³öµÎ°í Åë°úÇÑ´Ù.

4.4.8 PE·Î Æ÷ÇÔµÈ

¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼¿¡¼­¿Í ¸¶Âù°¡Áö·Î, ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity)´Â Æ÷ÇÔµÈ if À¯È¿¼º °ËÁ¤À» ÇÒ ¶§ ¸¸ ÇÊ¿äÇÏ´Ù. DTD¿¡¼­ ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ ÂüÁ¶°¡ Àνĵǰí, Æ÷ÇԵǸé, ±× ±³Ã¼ ÅؽºÆ®´Â ¾Õ°ú µÚ¿¡ °¢ ÇÑ°³ÀÇ °ø¹é(#x20) ±ÛÀÚ¸¦ ÷ºÎÇÏ¿© È®ÀåµÈ´Ù; ±× Àǵµ´Â ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity)ÀÇ ±³Ã¼ ÅؽºÆ®¿¡ DTD ¹®¹ýÀû Á¤¼ö ¼öÄ¡ ÅäÅ«À» ¹æÁöÇϱâ À§ÇÑ °ÍÀÌ´Ù.

4.5 ³»ºÎÀû ¿£Æ¼Æ¼ ±³Ã¼(replacement) ÅؽºÆ®ÀÇ Çü¼º

³»ºÎÀû ¿£Æ¼Æ¼ÀÇ Ã³¸®¸¦ ´Ù·ç´Âµ¥, µÎ°¡Áö ¾ç½ÄÀÇ ¿£Æ¼Æ¼ °ªµéÀ» ±¸º°ÇÏ´Â °ÍÀÌ À¯¿ëÇÏ´Ù. ¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ªÀº ¿£Æ¼Æ¼(entity) ¼±¾ð¿¡¼­ ½ÇÁ¦ÀûÀ¸·Î µû¿ÈÇ¥ ¾ÈÀÇ ½ºÆ®¸µÀ¸·Î ºñ Å͹̳¯ EntityValue¿¡ ÇØ´çÇÑ´Ù. ±³Ã¼ ÅؽºÆ®´Â, ±ÛÀÚ ÂüÁ¶¿Í ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ ÂüÁ¶ ±³Ã¼(replacement) ÀÌÈÄ¿¡´Â, ¿£Æ¼Æ¼ÀÇ ³»¿ëÀÌ´Ù.

³»ºÎÀû ¿£Æ¼Æ¼ ¼±¾ð¿¡¼­(EntityValue) ÁÖ¾îÁø ¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ªÀº ±ÛÀÚ, ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼¿Í ÀÏ¹Ý ¿£Æ¼Æ¼ ÂüÁ¶µéÀ» Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù. ÀÌ¿Í°°Àº ÂüÁ¶´Â ¿ÏÀüÈ÷ ¸®ÅͶö ¿£Æ¼Æ¼(entity) °ª ¾È¿¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù. À§¿¡ ¼³¸íµÈ ¹Ù¿Í °°Àº Æ÷ÇÔµÈ ½ÇÁ¦ÀûÀÎ ±³Ã¼ ÅؽºÆ®´Â ÂüÁ¶µÈ ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ÀÇ ±³Ã¼ ÅؽºÆ®¸¦ Æ÷ÇÔÇÏ¿©¾ß Çϸç, ÂüÁ¶µÈ ±ÛÀÚ ¸®ÅͶö ¿£Æ¼Æ¼ °ª ¾È¿¡ ÂüÁ¶ÇÏ´Â ±ÛÀÚ ÂüÁ¶¸¦ Æ÷ÇÔÇÏ¿©¾ß ÇÑ´Ù; ±×·¯³ª, ÀÏ¹Ý ¿£Æ¼Æ¼ ÂüÁ¶´Â È®Àå ¾ÈµÈ »óÅ·Π±×´ë·Î ÀÖ¾î¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, ¾Æ·¡ ¼±¾ðÀ» º¸ÀÚ:

<!ENTITY % pub    "&#xc9;ditions Gallimard" >
<!ENTITY   rights "All rights reserved" >
<!ENTITY   book   "La Peste: Albert Camus, 
&#xA9; 1947 %pub;. &rights;" >

¿£Æ¼Æ¼ ±³Ã¼ ÅؽºÆ® "book"Àº:

La Peste: Albert Camus, 
?nbsp;1947 ?itions Gallimard. &rights;

ÀÏ¹Ý ¿£Æ¼Æ¼(entity) ÂüÁ¶ "&rights;"´Â, ¹®¼­ÀÇ ³»¿ë(content) ¶Ç´Â ¾ÖÆ®¸®ºäÆ® °ª¿¡ ³ªÅ¸³ª´Â "&book;"ÀÇ ÂüÁ¶·Î, È®Àå µÉ °ÍÀÌ´Ù.

ÀÌµé ´Ü¼øÇÑ ±ÔÄ¢µéÀº º¹ÇÕ ÀÛ¿ëµéÀ» ÇÒ ¼ö ÀÖ´Ù; ¾î·Á¿î ¿¹Á¦ÀÇ ÀÚ¼¼ÇÑ »çÇ×Àº D. "¿£Æ¼Æ¼¿Í ±ÛÀÚ ÂüÁ¶ÀÇ È®Àå(expansion)"À» º¸¶ó.

4.6 »çÀü¿¡ Á¤ÀǵÈ(predefined) ¿£Æ¼Æ¼

¿£Æ¼Æ¼¿Í ±ÛÀÚ ÂüÁ¶´Â µÑ ´Ù ¿ÞÂÊ ²©¼â(<), ¾ÚÆÛ»÷µå(&)¿Í ´Ù¸¥ ±¸ºÐÀÚ(delimiter)µéÀ» ¿¡½ºÄÉÀÔ(escape)ÇÏ¿© »ç¿ë µÉ ¼ö ÀÖ´Ù. ÀÏ·ÃÀÇ ÀϹÝ(general) ¿£Æ¼Æ¼(amp, lt, gt, apos, quot)´Â ÀÌ¿Í°°Àº ¸ñÀûÀ¸·Î ÁöÁ¤µÇ¾ú´Ù. ¼ýÄ¡(numeric) ±ÛÀÚ ÂüÁ¶µµ »ç¿ë µÉ ¼ö ÀÖ´Ù; À̵éÀº ÀνĵǴ Áï½Ã È®ÀåµÇ°í, ±ÛÀÚ µ¥ÀÌÅÍ·Î Ãë±ÞµÇ¾î¾ß ÇÑ´Ù. ±×¸®¼­ ¼ýÄ¡ ±ÛÀÚ ÂüÁ¶ "&#60;"¿Í "&#38;"´Â ±ÛÀÚ µ¥ÀÌÅÍ¿¡ ³ªÅ¸³ª¸é '<'¿Í '&'¸¦ ¿¡½ºÅ×ÀÔ(escape)ÇÏ¿© »ç¿ë µÉ ¼ö ÀÖ´Ù.

¸ðµç XML ó¸®ÀÚ(processor)µéÀº ÀÌµé ¿£Æ¼Æ¼(entity)µéÀÌ ¼±¾ðµÈ °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ ÀνÄÇÏ¿©¾ß ÇÑ´Ù. °øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©, À¯È¿ÇÑ(valid) XML ¹®¼­µéÀº ÀÌµé ¿£Æ¼Æ¼(entity)µéÀÌ, ´Ù¸¥ °Íµé°ú ¸¶Âù°¡Áö·Î »ç¿ë Àü¿¡, ¼±¾ðµÇ¾î¾ß ÇÑ´Ù ¹®Á¦ÀÇ ¿£Æ¼Æ¼°¡ ¼±¾ðµÇ¸é, ¾Æ·¡ ¼³¸í°ú °°ÀÌ, ±×°ÍµéÀº, ±×ÀÇ ±³Ã¼ ÅؽºÆ®°¡ ¿¡½º°ÔÀÔ µÈ ´ÜÀÏ ±ÛÀÚÀ̰ųª ±× ±ÛÀÚÀÇ ±ÛÀÚ ÂüÁ¶ÀÎ, ³»ºÎÀû ¿£Æ¼Æ¼·Î ¼±¾ðµÇ¾î¾ß ÇÑ´Ù.

<!ENTITY lt     "&#38;#60;"> 
<!ENTITY gt     "&#62;"> 
<!ENTITY amp    "&#38;#38;"> 
<!ENTITY apos   "&#39;"> 
<!ENTITY quot   "&#34;"> 

"lt"¿Í "amp"ÀÇ ¼±¾ð¿¡¼­ "<"¿Í "&" ±ÛÀÚµéÀº, ±× ¿£Æ¼Æ¼ ´ëü(replacement)°¡ Àß Çü¼ºµÈ °ÍÀÌ µÇ°Ô Çϴµ¥ ÇÊ¿ä ÇÑ, ÀÌÁß(double)À¸·Î ¿¡½ºÄÉÀÔ(escaped) µÇ¾ú½¿¿¡ ÁÖÀÇÇ϶ó.

4.7 ÁÖ¼®(notation) ¼±¾ð

ÁÖ¼®µéÀº, ÁÖ¼®(notation) ¾ÖÆ®¸®ºäÆ®, ¶Ç´Â ó¸®Áö½Ã(processing instruction)°¡ º¸³»Áö´Â Àû¿ë(application)À» °®´Â, ¿¤·¹¸àÆ®µéÀÇ Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼ ¾ç½Ä À̸§À¸·Î ÀνÄ(identify)ÇÑ´Ù.

ÁÖ¼® ¼±¾ðµéÀº, ¿£Æ¼Æ¼(entity)¿Í ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµé°ú ¾ÖÆ®¸®ºäÆ® ±Ô°ÝµéÀÇ »ç¿ëÀ» À§ÇÏ¿©, ÁÖ¼®¿¡ À̸§À» Á¦°øÇÑ´Ù. ±×¸®°í, XML ó¸®ÀÚ(processor)¿¡°Ô Çã¿ëÇÏ´Â ÁÖ¼® ¶Ç´Â ÁÖ¾îÁø ÁÖ¼®¿¡¼­ µ¥ÀÌÅÍ Ã³¸®¸¦ °¡´ÉÇÏ°Ô ÇÏ´Â µµ¿ò Àû¿ëÀ» À§Ä¡½ÃÅ°´Â Å©¶óÀ̾ðÆ®(client: °í°´) Àû¿ë(application)À» À§ÇÏ¿©, ¿ÜºÎÀû ÀνÄÀÚ(identifier)¸¦ Á¦°øÇÑ´Ù.

ÁÖ¼® ¼±¾ð(Notation Declarations)
[82]  NotationDecl ::= '<!NOTATION' S Name S (ExternalIDPublicID) S? '>'
[83]  PublicID ::= 'PUBLIC' S PubidLiteral

XML ó¸®ÀÚ(processor)´Â Àû¿ë(application)¿¡ À̸§°ú, ¾ÖÆ®¸®ºäÆ® °ª, ¾ÖÆ®¸®ºäÆ®(attribute) Á¤ÀÇ, ¶Ç´Â ¿£Æ¼Æ¼(entity) ¼±¾ð¿¡¼­, ¼±¾ðµÇ°í ÂüÁ¶µÇ´Â ¾î¶² ÁÖ¼®(notation)ÀÇ ¿ÜºÎÀû ÀνÄÀÚ(identifier)¸¦ Á¦°øÇÏ¿©¾ß ÇÑ´Ù. À̵éÀº Ãß°¡ÀûÀ¸·Î ¿ÜºÎÀû ÀνÄÀÚ¸¦ ½Ã½ºÅÛ ÀνÄÀÚ·Î, È­ÀÏ À̸§À¸·Î, ¶Ç´Â ¼³¸íµÈ ÁÖ¼® ¾ÈÀÇ µ¥ÀÌÅÍ Ã³¸®ÀÚ¸¦ È£ÃâÇÏ´Â Àû¿ëÀ» Çã¿ëÇϴµ¥ ÇÊ¿äÇÑ ´Ù¸¥ Á¤º¸µéÀ» ÇØ°á(»êÃâ) ÇÒ ¼ö ÀÖ´Ù. (±×·¯³ª, XML ¹®¼­¿¡¼­ ¼±¾ðÇÏ°í, ÁÖ¼®¿¡¼­ Á¶È¸ÇÏ´Â XML ó¸®ÀÚ(processor) ¶Ç´Â Àû¿ëÀÌ ÀÛµ¿ÇÏ°í ÀÖ´Â ½Ã½ºÅÛ¿¡ ÁÖ¼® ƯÁ¤ Àû¿ë(notation-specific application)µéÀÌ ¾ø´Ù¸ç, ÀÌ°ÍÀº ¿À·ù´Â ¾Æ´Ï´Ù.)

4.8 ¹®¼­(document) ¿£Æ¼Æ¼

¹®¼­ ¿£Æ¼Æ¼´Â ¿£Æ¼Æ¼ °èÅëµµ(tree)¿¡¼­ ÃÖ»óÀ§(root)·Î ÀÛ¿ëÇÏ°í, XML ó¸®ÀÚ(processor)ÀÇ ½ÃÀÛÁ¡ÀÌ´Ù. À̱԰ÝÀº XML ó¸®ÀÚ¿¡ ÀÇÇÏ¿© ¾î¶»°Ô ¹®¼­ ¿£Æ¼Æ¼ À§Ä¡µÇ´Â°¡¸¦ Á¤ÀÇÇÏ°í ÀÖÁö ¾Ê´Ù; ´Ù¸¥ ¿£Æ¼Æ¼µé°ú´Â ´Þ¸®, ¹®¼­(document) ¿£Æ¼Æ¼´Â À̸§À» °®°í ÀÖÁö ¾Ê°í, ÁöÁ¤(ÀνÄ)ÀÌ ÀüÇô ¾ø¾îµµ ó¸®ÀÚ ÀÔ·Â(input) È帧ÀÌ Àß ³ªÅ¸³¯ ¼ö ÀÖ´Ù.


5. ±Ô°ÝºÎÇÕ¼º

5.1 À¯È¿¼º °ËÁ¤Çϴ ó¸®ÀÚ¿Í À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚ

±Ô°Ý¿¡ ºÎÇÕÇÏ´Â XML ó¸®ÀÚ(processor)µéÀº À¯È¿¼º °ËÁ¤Çϴ ó¸®ÀÚ¿Í À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚ µÎ°¡Áö Á¾·ù Áß¿¡ ÇϳªÀÌ´Ù.

À¯È¿¼º °ËÁ¤Çϴ ó¸®ÀÚ¿Í À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚµéÀº µÑ ´Ù, ¹®¼­ ¿£Æ¼Æ¼ÀÇ ³»¿ë°ú ±×°¡ Àд ´Ù¸¥ Çؼ®(parse)µÈ ¿£Æ¼Æ¼µé¿¡¼­, À̱԰ÝÀÇ Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ× À§¹ÝÀ» ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù.

À¯È¿¼º °ËÁ¤ ó¸®ÀÚµéÀº DTD¿¡ ¼±¾ðµé·Î ³ªÅ¸³½ Á¦ÇÑ¿ä¼ÒÀÇ À§¹Ý°ú, À̱԰ÝÀÇ ÁÖ¾îÁø À¯È¿¼º °ËÁ¤(validity) Á¦ÇÑ¿ä¼Ò¸¦ ¸¸Á·½ÃÅ°Áö ¸øÇÏ´Â °äÀ» ¾Ë·Á ÁÖ¾î¾ß ÇÑ´Ù. À̸¦ ´Þ¼ºÇϱâ À§ÇÏ¿©, À¯È¿¼º °ËÁ¤ XML ó¸®ÀÚ(processor)µéÀº, Àüü DTD¿Í ¹®¼­ÀÇ ¸ðµç ÂüÁ¶µÈ ¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼¸¦ Àаí ó¸®ÇÏ¿©¾ß ÇÑ´Ù.

À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚµéÀº Àüü ³»ºÎÀû DTD ÇϺμ¼Æ®(subset)¸¦ Æ÷ÇÔÇÏ¿© ¹®¼­ ¿£Æ¼Æ¼ ¸¸ ±×ÀÇ Àß Çü¼ºµÊÀ» °Ë»çÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. ±×µéÀº ¹®¼­ÀÇ À¯È¿¼º(validity) °Ë»ç°¡ ÇÊ¿äÇÏÁö ¾ÊÁö¸¸, ³»ºÎÀû DTD ÇϺμ¼Æ®¿Í ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼¿¡¼­ ÀÐÀº ¸ðµç ¼±¾ðÀ», ÀÐÁö ¾ÊÀº óÀ½ ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼(entity)¸¦ ÂüÁ¶Çϴµ¥ ±îÁö, ó¸®(process)ÇÏ´Â °ÍÀº ÇÊ¿äÇÏ´Ù; ´Ù½Ã¸»ÇØ, À̰͵éÀº, ¾ÖÆ®¸®ºäÆ® °ªµéÀ» Á¤»óÈ­(normalize)ÇÏ°í, ³»ºÎÀû ¿£Æ¼Æ¼ÀÇ ±³Ã¼ ÅؽºÆ®¸¦ Æ÷ÇÔ(include)ÇÏ°í, µðÆúÆ® ¾ÖÆ®¸®ºäÆ® °ªµéÀ» Á¦°øÇϱâ À§ÇÏ¿©, ¼±¾ðµé¿¡ ÀÖ´Â Á¤º¸¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. À̰͵éÀº ¿£Æ¼Æ¼ ¼±¾ðµéÀ̳ª ÀÐÁö ¾ÊÀº ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) ÂüÁ¶ ´ÙÀ½¿¡ ¸¸³ª´Â ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµéÀ» ó¸®(process)ÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ÀÌ´Â ±× ¿£Æ¼Æ¼¿¡´Â µ¤¾î¾º¿ì´Â ¼±¾ðµéÀ» Æ÷ÇÔ ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.

5.2 XML ó¸®ÀÚ(processor)ÀÇ »ç¿ë

À¯È¿¼º °ËÁ¤ XML ó¸®ÀÚÀÇ È°µ¿Àº »ó´çÈ÷ ¿¹Ãø ÇÒ ¼ö ÀÖ´Ù; ÀÌ´Â ¹®¼­ÀÇ °¢ ºÎºÐÀ» ÀÐ°í ¸ðµç Àß Çü¼ºµÊ°ú À¯È¿¼º(validity) À§¹ÝÀ» ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù. À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚ¿¡¼­´Â À̺¸´Ù ÀûÀº ÇÊ¿ä»çÇ×ÀÌ ÀÖ´Ù; ¹®¼­ ¿£Æ¼Æ¼(entity) ÀÌ¿ÜÀÇ ´Ù¸¥ ¹®¼­ ºÎºÐÀº ÀÐÀ» ÇÊ¿ä°¡ ¾ø´Ù. ÀÌ´Â XML ó¸®ÀÚ(processor)ÀÇ »ç¿ëÀڵ鿡°Ô Áß¿äÇÑ µÎ°¡Áö È¿°ú(¿µÇâ)ÀÌ ÀÖ´Ù:

  • ¾î¶² Àß Çü¼ºµÊ ¿À·ùµé, ƯÈ÷ ¿ÜºÎÀû ¿£Æ¼Æ¼(entity)ÀÇ ÀÐÀ½À» ÇÊ¿ä·ÎÇÏ´Â °ÍµéÀº À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚ¿¡ ÀÇÇÏ¿© °¨ÁöµÇÁö ¾ÊÀ» ¼ö ÀÖ´Ù. ¿¹Á¦µéÀº ¼±¾ðµÈ ¿£Æ¼Æ¼, Çؼ®(parse)µÈ ¿£Æ¼Æ¼, ¹Ýº¹ ¾øÀ½·Î Á¦¸ñ ºÙÀº Á¦ÇÑ¿ä¼ÒµéÀ» Æ÷ÇÔÇÑ´Ù. ¶ÇÇÑ 4.4 "XML ó¸®ÀÚÀÇ ¿£Æ¼Æ¼¿Í ÂüÁ¶ÀÇ Ã³¸®"ÀÇ ±ÝÁöµÈÀ¸·Î ¼³¸íµÈ ÀϺΠ°æ¿ìµµ ÀÖ´Ù.
  • ó¸®ÀÚ(processor)·Î ºÎÅÍ Àû¿ë(application)¿¡ Àü´ÞµÇ´Â Á¤º¸´Â ó¸®ÀÚ°¡ ÆĶó¸ÞÅÍ¿Í ¿ÜºÎÀû ¿£Æ¼Æ¼¸¦ Àд°¡¿¡ µû¶ó ´Þ¶ó Áú ¼ö ÀÖ´Ù. ¿¹¸¦ µé¾î, À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚ´Â ¾ÖÆ®¸®ºäÆ® °ªÀÇ Á¤»óÈ­(normalize), ³»ºÎÀû ¿£Æ¼Æ¼ÀÇ ±³Ã¼ ÅؽºÆ®(replacement)ÀÇ Æ÷ÇÔ(include) ¶Ç´Â µðÆúÆ® ¾ÖÆ®¸®ºäÆ® °ªÀÇ Á¦°øÀ» ÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù. ¿©±â¼­´Â ¿ÜºÎÀû ¶Ç´Â ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity)ÀÇ ÀÐÀº ¼±¾ðµé ±×´ÙÁö ÀÇÁ¸ÇÏÁö ¾Ê´Â´Ù.

¼­·Î ´Ù¸¥ XML ó¸®ÀÚµé »çÀÌÀÇ Åë¿ë¼º¿¡¼­ ÃÖ´ëÀÇ ½Å·Ú¼ºÀ» À§ÇÏ¿©, À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚµéÀ» »ç¿ëÇÏ´Â Àû¿ëµéÀº ±×¿Í °°Àº ó¸®ÀÚ(processor)µé¿¡ ÇÊ¿äÇÏÁö ¾ÊÀº È°µ¿(behavior)¿¡ ÀÇÁ¸ÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. µðÆúÆ®(default) ¾ÖÆ®¸®ºäÆ®(attribute)µé ¶Ç´Â ¿ÜºÎÀû ¿£Æ¼Æ¼¿¡ ¼±¾ðµÈ ³»ºÎÀû ¿£Æ¼Æ¼(entity)¿¡ »ç¿ëÇÏ´Â °Í °°Àº µµ±¸(facilities)µéÀ» ÇÊ¿ä·Î ÇÏ´Â Àû¿ëµéÀº À¯È¿¼º °ËÁ¤ XML ó¸®ÀÚµéÀ» »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.


6. ÁÖ¼®(notation)

À̱԰ݿ¡¼­ °£´ÜÇÑ ¾ç½Ä(EBNF: Extended Backus-Naur Form)ÀÇ ÁÖ¼®(notation)À» »ç¿ëÇÏ¿© XMLÀÇ °ø½ÄÀûÀÎ ¹®¹ýÀÌ ÁÖ¾îÁø´Ù. ¹®¹ýÀÇ °¢ ±ÔÄ¢Àº ¾Æ·¡¿Í °°Àº ¾ç½ÄÀÇ ºÎÈ£·Î Á¤ÀǵǾú´Ù.

symbol ::= expression
ºÎÈ£   ::= °ø½Ä(Ç¥Çö)

ºÎÈ£(Symbol)µéÀº, ±×µéÀÌ º¸ÅëÀÇ Ç¥Çö(°ø½Ä)À¸·Î Á¤ÀÇ µÇ¾úÀ¸¸é, ù±ÛÀÚ¸¦ ´ë¹®ÀÚ·Î ÇÏ¿´°í, ±×·¸Áö ¾ÊÀ¸¸é ¼Ò¹®ÀÚ·Î ½ÃÀÛÇÏ¿´´Ù. ¸®ÅͶö(literal) ½ºÆ®¸µµéÀº µû¿ÈÇ¥ ¾È¿¡ ³Ö¾ú´Ù.

°ø½Ä(ÄÚµå) ¼Ó¿¡ ¿À¸¥ÂÊ ºÎºÐ¿¡ ¾Æ·¡ °ø½Ä(Ç¥Çö)µé·Î, ¦ ¸ÂÃß¾î ÇÑ°³ ¶Ç´Â ¿©·¯°³ÀÇ ±ÛÀÚµéÀÇ ½ºÆ®¸µÀ» »ç¿ëÇÏ¿´´Ù:

#xN
¿©±â¼­ NÀº 16Áø¼ö Á¤¼ö, ÀÌ °ø½ÄÀº ISO/IEC 10646 canonical (UCS-4) ÄÚµå °ª ±ÛÀÚ¿Í ¸Â°í, ºÎÈ£ ¾ø´Â ÀÌÁø¼ö·Î Çؼ® ÇÒ ¶§´Â ±× °ªÀÌ Á¦½ÃµÇ¾ú´Ù. #xN ¾ç½Ä¿¡¼­ ¸Ç ¾ÕÀÇ "0"µéÀº º° Àǹ̰¡ ¾ø´Ù; ¸Ç ¾ÕÀÇ "0"µéÀ» °®´Â ¼öÄ¡¿¡ ÇØ´çÇÏ´Â ÄÚµå °ªÀº »ç¿ëÇÏ°í ÀÖ´Â ±ÛÀÚ ¿£ÄÚµù(encoding)¿¡ ÀÇÇÏ¿© °áÁ¤µÇ°í, XML¿¡¼­´Â º° Àǹ̰¡ ¾ø´Ù.
[a-zA-Z], [#xN-#xN]
°ª(µé)ÀÌ ÁöÁ¤ÇÏ´Â ¹üÀ§ÀÇ ¾Æ¹« ±ÛÀÚ¿¡³ª ÀÏÄ¡ÇÑ´Ù(Æ÷ÇÔ).
[^a-z], [^#xN-#xN]
°ªÀÌ ÁöÁ¤ÇÏ´Â ¹üÀ§ ¹ÛÀÇ ¾Æ¹« ±ÛÀÚ¿¡³ª ÀÏÄ¡ÇÑ´Ù.
[^abc], [^#xN#xN#xN]
ÁÖ¾îÁø °ª¿¡ ¾ø´Â ±ÛÀÚµé Áß ¾Æ¹« ±ÛÀÚ¿¡³ª ÀÏÄ¡ÇÑ´Ù.
"string"
ÀÌÁß µû¿ÈÇ¥µé ¾È¿¡ ÁÖ¾îÁø ¸®ÅͶö(literal) ½ºÆ®¸µ¿¡ ÀÏÄ¡ÇÏ´Â.
'string'
´ÜÀÏ µû¿ÈÇ¥µé ¾È¿¡ ÁÖ¾îÁø ¸®ÅͶö(literal) ½ºÆ®¸µ¿¡ ÀÏÄ¡ÇÏ´Â.
ÀÌ ºÎÈ£(symbol)µéÀº °áÇÕµÇ¾î ´ÙÀ½°ú °°ÀÌ ´õ º¹ÀâÇÏ°Ô ÀÏÄ¡ÇÒ ¼ö ÀÖ´Ù. ¿©±â¼­ A¿Í B´Â °£´ÜÇÑ °ø½Ä(expression)À» ¸»ÇÑ´Ù:
(expression)
°ø½Ä(expression: Ç¥Çö)Àº ÇϳªÀÇ ´ÜÀ§ Ãë±ÞµÇ°í, ÀÌ ¸ñ·Ï¿¡¼­ ¼³¸íÇÏ´Â ¹Ù¿Í °°ÀÌ °áÇÕ µÉ ¼ö ÀÖ´Ù.
A?
¼±ÅÃÀû A; A ¶Ç´Â ¾ø´Â°Í°ú ÀÏÄ¡ÇÑ´Ù.
A B
A ´ÙÀ½¿¡ ¹Ù·Î B°¡ ¿À´Â °Í°ú ÀÏÄ¡ÇÑ´Ù.
A | B
A ¶Ç´Â BÀ̳ª µÑ ´Ù´Â ¾Æ´Ï´Ù¿Í ÀÏÄ¡ÇÏ´Ù.
A - B
A´Â °°°í B´Â °®Áö ¾ÊÀº ¾Æ¹« ½ºÆ®¸µ¿¡¼­³ª ÀÏÄ¡ÇÑ´Ù.
A+
A°¡ Çѹø ȤÀº ±×ÀÌ»ó ³ªÅ¸³ª¸é ÀÏÄ¡ÇÑ´Ù.
A*
A°¡ Çѹøµµ ¾ø´ø°¡ ±×ÀÌ»ó ÀÖÀ¸¸é ÀÏÄ¡ÇÑ´Ù.
»ý¼º(production)¿¡ »ç¿ëµÈ ´Ù¸¥ ÁÖ¼®(notation)µéÀº ´ÙÀ½°ú °°´Ù:
/* ... */
ÄÚ¸àÆ®(comment).
[ wfc: ... ]
Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×(well-formed constraint); ÀÌ´Â À̸§À¸·Î, °ü·ÃµÈ »ý¼º ¹®¼­µéÀÇ Àß Çü¼ºµÊÀÇ Á¦ÇÑ¿ä¼Ò¸¦ °¡¸®Å²´Ù.
[ vc: ... ]
À¯È¿¼º Á¦ÇÑ¿ä¼Ò(valid constraint); ÀÌ´Â À̸§À¸·Î, °ü·ÃµÈ »ý¼º ¹®¼­µéÀÇ À¯È¿¼º(valid)ÀÇ Á¦ÇÑ¿ä¼Ò¸¦ °¡¸®Å²´Ù.


ºÎ·Ï

A. ÂüÁ¶

A.1 Áö¸íÀû ÂüÁ¶

IANA
(ÀÎÅÍ³Ý ÇÒ´ç ¹øÈ£ ´ç±¹: Internet Assigned Numbers Authority)
±ÛÀÚ ¼¼Æ®ÀÇ °ø½Ä À̸§(Official Names for Character Sets),
ÀúÀÚ: Keld Simonsen µî.
¿µ¹® ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets ÂüÁ¶.
IETF RFC 1766
IETF (ÀÎÅÍ³Ý ¿£Áö´Ï¾î¸µ ŽºÅ© Æ÷½º: Internet Engineering Task Force).
RFC 1766: ¾ð¾îÀÇ ÀνÄÀ» À§ÇÑ Å±׵é(Tags for the Identification of Languages),
ÀúÀÚ: H. Alvestrand. 1995.
ISO 639
(Ç¥ÁØÈ­¸¦ À§ÇÑ ±¹Á¦ ±â±¸: International Organization for Standardization).
ISO 639:1988 (E). ¾ð¾î À̸§ Ç¥ÇöÀ» À§ÇÑ ÄÚµå(Codes for the representation of names of countries and their subdivisions).
[Geneva]: International Organization for Standardization, 1988.
ISO 3166
(Ç¥ÁØÈ­¸¦ À§ÇÑ ±¹Á¦ ±â±¸: International Organization for Standardization).
ISO 3166-1:1997 (E).
¾ð¾î À̸§ Ç¥ÇöÀ» À§ÇÑ ÄÚµå(Codes for the representation of names of countries and their ) -- Part 1: ±¹°¡ÄÚµå(Country codes)

[Geneva]: International Organization for Standardization, 1997.
ISO/IEC 10646
(Ç¥ÁØÈ­¸¦ À§ÇÑ ±¹Á¦ ±â±¸: International Organization for Standardization).
ISO/IEC 10646-1993 (E).
Á¤º¸ ±â¼ú -- ±¹Á¦ º¹¼ö-8Áø¼ö ÄÚµå ±ÛÀÚ ¼¼Æ®(UCS)
Information technology -- Universal Multiple-Octet Coded Character Set
-- Part 1: Architecture and Basic Multilingual Plane.

[Geneva]: International Organization for Standardization, 1993(AM 1-AM 7°³Á¤ Ãß°¡).
Unicode
The Unicode Consortium.
À¯´ÏÄÚµå Ç¥ÁØ, ¹öÀü 2.0(The Unicode Standard, Version 2.0).
Reading, Mass.: Addison-Wesley Developers Press, 1996.

A.2 ´Ù¸¥ ÂüÁ¶

Aho/Ullman
Aho, Alfred V., Ravi Sethi, and Jeffrey D. Ullman.
Compilers: Principles, Techniques, and Tools.
Reading: Addison-Wesley, 1986, rpt. corr. 1988.
Berners-Lee µî.
Berners-Lee, T., R. Fielding, and L. Masinter.
ÅëÀÏ ÀÚ¿ø ÀνÄÀÚµé(URI: Uniform Resource Identifiers):
Generic Syntax and Semantics
. 1997.
(Work in progress; see updates to RFC1738.)
Br?gemann-Klein
Br?gemann-Klein, Anne.
Regular Expressions into Finite Automata.
Extended abstract in I. Simon, Hrsg., LATIN 1992, S. 97-98. Springer-Verlag, Berlin 1992.
Full Version in Theoretical Computer Science 120: 197-213, 1993.
Br?gemann-Klein and Wood
Br?gemann-Klein, Anne, and Derick Wood.
Deterministic Regular Languages.
Universit? Freiburg, Institut f? Informatik, Bericht 38, Oktober 1991.
Clark
James Clark. Comparison of SGML and XML.
¿µ¹® http://www.w3.org/TR/NOTE-sgml-xml-971215 ÂüÁ¶.
IETF RFC1738
IETF (Internet Engineering Task Force).
RFC 1738: Uniform Resource Locators (URL),
ÀúÀÚ: T. Berners-Lee, L. Masinter, M. McCahill. 1994.
IETF RFC1808
IETF (Internet Engineering Task Force).
RFC 1808: Relative Uniform Resource Locators,
ÀúÀÚ: R. Fielding. 1995.
IETF RFC2141
IETF (Internet Engineering Task Force).
RFC 2141: URN Syntax,
ÀúÀÚ: R. Moats. 1997.
ISO 8879
ISO (International Organization for Standardization).
ISO 8879:1986(E).
Á¤º¸ ó¸® -- ÅؽºÆ®¿Í ¿ÀÇǽº ½Ã½ºÅÛ -- (SGML¾ð¾î)
Information processing -- Text and Office Systems -- Standard Generalized Markup Language (SGML)
First edition -- 1986-10-15.
[Geneva]: International Organization for Standardization, 1986.
ISO/IEC 10744
ISO (International Organization for Standardization).
ISO/IEC 10744-1992 (E).
Á¤º¸ ±â¼ú -- Hypermedia/Time-based Structuring (HyTime ¾ð¾î).

[Geneva]: International Organization for Standardization, 1992.
Extended Facilities Annexe.
[Geneva]: International Organization for Standardization, 1996.

B. ±ÛÀÚ ºÐ·ù

´ÙÀ½ À¯´ÏÄÚµå(Unicode) Ç¥ÁØ¿¡ Á¤ÀÇµÈ Æ¯Â¡µé ±ÛÀÚÀº ºÐ·ùµÇ¾îÀÖ´Ù. ±âÃÊ(base) ±ÛÀÚ(´Ù¸¥°Íµé º¸´Ù À̵éÀº ¿µ¾î(Latin)ÀÇ ¾ËÆĺ£Æ® ±ÛÀÚµéÀ» Æ÷ÇÔÇÏ°í, ±¸ºÐ±ÛÀÚ(diacritics)´Â Á¦¿ÜµÈ´Ù), Ç¥½Ä±ÛÀÚ(ideographic) ±ÛÀÚ, ±×¸®°í °áÇÕ(combining) ±ÛÀÚµé(¹«¾ùº¸´Ù ÀÌ ºÐ·ù´Â ´ëºÎºÐÀÇ ±¸ºÐ±ÛÀÚ(diacritics)À» Æ÷ÇÔ)·Î ; ÀÌµé ºÐ·ù´Â °áÇÕÇÏ¿© ±ÛÀÚµéÀÇ ºÐ·ù¸¦ ¸¸µç´Ù. ¼ýÀÚ¿Í È®ÀåÀÚ(extender)µéµµ ±¸º°ÇÏ¿´´Ù.

±ÛÀÚµé(Characters)
[84]  Letter ::= BaseCharIdeographic
[85]  BaseChar ::= [#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6] | [#x00D8-#x00F6] | [#x00F8-#x00FF] | [#x0100-#x0131] | [#x0134-#x013E] | [#x0141-#x0148] | [#x014A-#x017E] | [#x0180-#x01C3] | [#x01CD-#x01F0] | [#x01F4-#x01F5] | [#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1] | #x0386 | [#x0388-#x038A] | #x038C | [#x038E-#x03A1] | [#x03A3-#x03CE] | [#x03D0-#x03D6] | #x03DA | #x03DC | #x03DE | #x03E0 | [#x03E2-#x03F3] | [#x0401-#x040C] | [#x040E-#x044F] | [#x0451-#x045C] | [#x045E-#x0481] | [#x0490-#x04C4] | [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB] | [#x04EE-#x04F5] | [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559 | [#x0561-#x0586] | [#x05D0-#x05EA] | [#x05F0-#x05F2] | [#x0621-#x063A] | [#x0641-#x064A] | [#x0671-#x06B7] | [#x06BA-#x06BE] | [#x06C0-#x06CE] | [#x06D0-#x06D3] | #x06D5 | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D | [#x0958-#x0961] | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8] | [#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD] | [#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A] | [#x0A0F-#x0A10] | [#x0A13-#x0A28] | [#x0A2A-#x0A30] | [#x0A32-#x0A33] | [#x0A35-#x0A36] | [#x0A38-#x0A39] | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74] | [#x0A85-#x0A8B] | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8] | [#x0AAA-#x0AB0] | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD | #x0AE0 | [#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28] | [#x0B2A-#x0B30] | [#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D | [#x0B5C-#x0B5D] | [#x0B5F-#x0B61] | [#x0B85-#x0B8A] | [#x0B8E-#x0B90] | [#x0B92-#x0B95] | [#x0B99-#x0B9A] | #x0B9C | [#x0B9E-#x0B9F] | [#x0BA3-#x0BA4] | [#x0BA8-#x0BAA] | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9] | [#x0C05-#x0C0C] | [#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33] | [#x0C35-#x0C39] | [#x0C60-#x0C61] | [#x0C85-#x0C8C] | [#x0C8E-#x0C90] | [#x0C92-#x0CA8] | [#x0CAA-#x0CB3] | [#x0CB5-#x0CB9] | #x0CDE | [#x0CE0-#x0CE1] | [#x0D05-#x0D0C] | [#x0D0E-#x0D10] | [#x0D12-#x0D28] | [#x0D2A-#x0D39] | [#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30 | [#x0E32-#x0E33] | [#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84 | [#x0E87-#x0E88] | #x0E8A | #x0E8D | [#x0E94-#x0E97] | [#x0E99-#x0E9F] | [#x0EA1-#x0EA3] | #x0EA5 | #x0EA7 | [#x0EAA-#x0EAB] | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3] | #x0EBD | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69] | [#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103] | [#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112] | #x113C | #x113E | #x1140 | #x114C | #x114E | #x1150 | [#x1154-#x1155] | #x1159 | [#x115F-#x1161] | #x1163 | #x1165 | #x1167 | #x1169 | [#x116D-#x116E] | [#x1172-#x1173] | #x1175 | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF] | [#x11B7-#x11B8] | #x11BA | [#x11BC-#x11C2] | #x11EB | #x11F0 | #x11F9 | [#x1E00-#x1E9B] | [#x1EA0-#x1EF9] | [#x1F00-#x1F15] | [#x1F18-#x1F1D] | [#x1F20-#x1F45] | [#x1F48-#x1F4D] | [#x1F50-#x1F57] | #x1F59 | #x1F5B | #x1F5D | [#x1F5F-#x1F7D] | [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | [#x1FC2-#x1FC4] | [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB] | [#x1FE0-#x1FEC] | [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126 | [#x212A-#x212B] | #x212E | [#x2180-#x2182] | [#x3041-#x3094] | [#x30A1-#x30FA] | [#x3105-#x312C] | [#xAC00-#xD7A3]
[86]  Ideographic ::= [#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]
[87]  CombiningChar ::= [#x0300-#x0345] | [#x0360-#x0361] | [#x0483-#x0486] | [#x0591-#x05A1] | [#x05A3-#x05B9] | [#x05BB-#x05BD] | #x05BF | [#x05C1-#x05C2] | #x05C4 | [#x064B-#x0652] | #x0670 | [#x06D6-#x06DC] | [#x06DD-#x06DF] | [#x06E0-#x06E4] | [#x06E7-#x06E8] | [#x06EA-#x06ED] | [#x0901-#x0903] | #x093C | [#x093E-#x094C] | #x094D | [#x0951-#x0954] | [#x0962-#x0963] | [#x0981-#x0983] | #x09BC | #x09BE | #x09BF | [#x09C0-#x09C4] | [#x09C7-#x09C8] | [#x09CB-#x09CD] | #x09D7 | [#x09E2-#x09E3] | #x0A02 | #x0A3C | #x0A3E | #x0A3F | [#x0A40-#x0A42] | [#x0A47-#x0A48] | [#x0A4B-#x0A4D] | [#x0A70-#x0A71] | [#x0A81-#x0A83] | #x0ABC | [#x0ABE-#x0AC5] | [#x0AC7-#x0AC9] | [#x0ACB-#x0ACD] | [#x0B01-#x0B03] | #x0B3C | [#x0B3E-#x0B43] | [#x0B47-#x0B48] | [#x0B4B-#x0B4D] | [#x0B56-#x0B57] | [#x0B82-#x0B83] | [#x0BBE-#x0BC2] | [#x0BC6-#x0BC8] | [#x0BCA-#x0BCD] | #x0BD7 | [#x0C01-#x0C03] | [#x0C3E-#x0C44] | [#x0C46-#x0C48] | [#x0C4A-#x0C4D] | [#x0C55-#x0C56] | [#x0C82-#x0C83] | [#x0CBE-#x0CC4] | [#x0CC6-#x0CC8] | [#x0CCA-#x0CCD] | [#x0CD5-#x0CD6] | [#x0D02-#x0D03] | [#x0D3E-#x0D43] | [#x0D46-#x0D48] | [#x0D4A-#x0D4D] | #x0D57 | #x0E31 | [#x0E34-#x0E3A] | [#x0E47-#x0E4E] | #x0EB1 | [#x0EB4-#x0EB9] | [#x0EBB-#x0EBC] | [#x0EC8-#x0ECD] | [#x0F18-#x0F19] | #x0F35 | #x0F37 | #x0F39 | #x0F3E | #x0F3F | [#x0F71-#x0F84] | [#x0F86-#x0F8B] | [#x0F90-#x0F95] | #x0F97 | [#x0F99-#x0FAD] | [#x0FB1-#x0FB7] | #x0FB9 | [#x20D0-#x20DC] | #x20E1 | [#x302A-#x302F] | #x3099 | #x309A
[88]  Digit ::= [#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9] | [#x0966-#x096F] | [#x09E6-#x09EF] | [#x0A66-#x0A6F] | [#x0AE6-#x0AEF] | [#x0B66-#x0B6F] | [#x0BE7-#x0BEF] | [#x0C66-#x0C6F] | [#x0CE6-#x0CEF] | [#x0D66-#x0D6F] | [#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29]
[89]  Extender ::= #x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46 | #x0EC6 | #x3005 | [#x3031-#x3035] | [#x309D-#x309E] | [#x30FC-#x30FE]

¿©±â¿¡ Á¤ÀÇµÈ ±ÛÀÚ ºÐ·ù´Â ´ÙÀ½°ú °°ÀÌ À¯´ÏÄÚµå(Unicode) ±ÛÀÚ µ¥ÀÌÅͺ£À̽º ±âÃÊ·Î ºÎÅÍ ¸¸µé¾î Áú ¼ö ÀÖ´Ù:

  • À̸§ÀÇ ½ÃÀÛ ±ÛÀÚ´Â Ll, Lu, Lo, Lt, Nl °¡¿îµ¥ ÇϳªÀÌ¿©¾ß ÇÑ´Ù.
  • Name-start ±ÛÀÚ ÀÌ¿ÜÀÇ À̸§ ±ÛÀÚµéÀº Mc, Me, Mn, Lm, ¶Ç´Â Nd Áß Çϳª¸¦ °¡Á®¾î¾ß ÇÑ´Ù.
  • compatibility area¿¡ ÀÖ´Â ±ÛÀÚµé(¸»ÇÏÀÚ¸é with ±ÛÀÚ Äڵ尡 #xF900 º¸´Ù Å©°í #xFFFE º¸´Ù ÀÛÀº)Àº XML À̸§¿¡ Çã¿ëµÇÁö ¾Ê´Â´Ù.
  • ÆùÆ®(font) ¶Ç´Â Åë¿ë¼º Àüȯ(compatibility decomposition)À» °®´Â ±ÛÀÚµé(¸»ÇÏÀÚ¸é À̵éÀº "compatibility formatting tag"¸¦ °¡Áö°í µ¥ÀÌÅͺ£À̽ºÀÇ Çʵå 5¿¡ ÀÖ´Â -- field 5·Î Ç¥½ÃµÇ°í "<"·Î ½ÃÀÛÇÏ´Â)Àº Çã¿ëµÇÁö ¾Ê´Â´Ù.
  • ´ÙÀ½ ±ÛÀÚµéÀº, Ư¼º È­ÀÏÀÌ ±×µéÀ» ¾ËÆĺ£Æ½À¸·Î ºÐ·ùÇÏ¿´½¿À¸·Î, À̸§ ±ÛÀÚµéÀÌ ¾Æ´Ï°í À̸§ ½ÃÀÛ ±ÛÀÚ·Î Ãë±ÞµÈ´Ù: [#x02BB-#x02C1], #x0559, #x06E5, #x06E6.
  • #x20DD-#x20E0 º¡À§ÀÇ ±ÛÀÚµéÀº Á¦¿ÜµÇ¾ú´Ù(Unicode, Ç׸ñ 5.14¿¡ µû¶ó).
  • ±ÛÀÚ #x00B7´Â, Ư¼º ¸ñ·ÏÀÌ ÁöÁ¤ÇÑ´ë·Î, È®ÀåÀÚ(extender)·Î ºÐ·ùµÈ´Ù.
  • ±ÛÀÚ #x0387´Â À̸§ ±ÛÀÚ·Î Ãß°¡µÈ´Ù, #x00B7Àº ±×´Â Á¤±ÔÀûÀ¸·Î µ¿ÀÏÇÔÀ¸·Î.
  • ':' ¿Í '_' ±ÛÀÚµéÀº À̸§ ½ÃÀÛ ±ÛÀڵ鿡 Çã¿ëµÈ´Ù.
  • '-' ¿Í '.'±ÛÀÚµéÀº À̸§ ±ÛÀڵ鿡 Çã¿ëµÈ´Ù.

C. XML °ú SGML (ºñÁö¸íÀû)

XMLÀº SGMLÀÇ ÇϺμ¼Æ®(subset)°¡ µÇµµ·Ï ¼³°èµÇ¾ú°í, ¿©±â¼­ °¢ À¯È¿ÇÑ(valid) XML ¹®¼­´Â SGML ¹®¼­¿¡µµ ¸Â¾Æ¾ß ÇÑ´Ù. SGML¿¡¼­¿Í ´Þ¸® XMLÀÌ ¹®¼­µé¿¡ Ãß°¡ÀûÀ¸·Î Á¦ÇÑ ÇÑ »ó¼¼ ºñ±³´Â [Clark]À» ÂüÁ¶Ç϶ó.


D. ¿£Æ¼Æ¼¿Í ±ÛÀÚ ÂüÁ¶ÀÇ È®Àå (ºñÁö¸íÀû)

ÀÌ ºÎ·ÏÀº, 4.4 "XML ó¸®ÀÚÀÇ ¿£Æ¼Æ¼¿Í ÂüÁ¶ÀÇ Ã³¸®"¿¡ ¼³¸í ÇÑ ¹Ù¿Í °°ÀÌ, ¿£Æ¼Æ¼(entity)- ¿Í ±ÛÀÚ-ÂüÁ¶ÀÇ ÀνÄ(recognition)°ú È®Àå(expansion)ÀÇ ¼ø¼­¸¦ ¼³¸íÇÏ´Â ÀϺΠ¿¹Á¦µéÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù.

¼±¾ðÀÌ DTD¸¦ Æ÷ÇÔÇÏ·Á¸é

<!ENTITY example "<p>An ampersand (&#38;#38;) may be escaped
numerically (&#38;#38;#38;) or with a general entity
(&amp;amp;).</p>" >

±×·¯¸é, ¿£Æ¼Æ¼(entity) ¼±¾ðÀÌ Çؼ®(parse)µÇ¸é XML ó¸®ÀÚ(processor)´Â ±× ±ÛÀÚ ÂüÁ¶¸¦ ÀÎ½Ä ÇÒ °ÍÀÌ°í, À̸¦ ÇØ°á(resolve)ÇÏ¿© ¿£Æ¼Æ¼ "example"ÀÇ °ªÀ¸·Î ¾Æ·¡ ½ºÆ®¸µÀ» ÀúÀåÇÑ´Ù:

<p>An ampersand (&#38;) may be escaped
numerically (&#38;#38;) or with a general entity
(&amp;amp;).</p>

¹®¼­¿¡¼­ "&example;"À» ÂüÁ¶Çϸé ÅؽºÆ®´Â ´Ù½Ã Çؼ®(reparse)µÇ°í, À̶§¿¡´Â "p" ¿¤·¹¸àÆ®ÀÇ ½ÃÀÛÅÂ±×¿Í Á¾·áűװ¡ ÀÎ½Ä µÉ °ÍÀÌ°í, ¼¼°³ÀÇ ÂüÁ¶µéÀº Àνĵǰí È®Àå(expand)µÇ¾î, "p" ¿¤·¹¸àÆ®(element)´Â ¾Æ·¡ ³»¿ë(content)À» °¡Áú °ÍÀÌ´Ù(¸ðµç µ¥ÀÌÅÍ´Â ÀÖÀ¸³ª ±¸ºÐÀÚ³ª ÄÚµå´Â ¾ø´Â):

An ampersand (&) may be escaped
numerically (&#38;) or with a general entity
(&amp;).

´õ º¹ÀâÇÑ ¿¹Á¦´Â ÄÚµå(rule)¿Í ±× È¿°ú¸¦ ¿ÏÀüÈ÷ ¼³¸í ÇÒ °ÍÀÌ´Ù. ¾Æ·¡ ¿¹Á¦¿¡¼­, ÁÙ ¹øÈ£´Â ¿ÀÁ÷ Âü°í ¸¸¸¦ À§ÇÑ °ÍÀÌ´Ù.

1 <?xml version='1.0'?>
2 <!DOCTYPE test [
3 <!ELEMENT test (#PCDATA) >
4 <!ENTITY % xx '&#37;zz;'>
5 <!ENTITY % zz '&#60;!ENTITY tricky "error-prone" >' >
6 %xx;
7 ]>
8 <test>ÀÌ sample shows a &tricky; method.</test>

ÀÌ´Â ¾Æ·¡ÀÇ °á°ú¸¦ ¸¸µç´Ù:

  • 4¹ø, ±ÛÀÚ 37 ÂüÁ¶´Â Áï½Ã È®ÀåµÇ°í, ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) "xx"´Â °ª "%zz;"·Î ºÎÈ£(symbol) Å×ÀÌºí¿¡ ÀúÀåµÈ´Ù. ±³Ã¼ ÅؽºÆ®°¡ ¾ø¾î ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) "zz"ÀÇ ÂüÁ¶´Â ÀνÄÇÏÁö ¸øÇÑ´Ù. ("zz"°¡ ¾ÆÁ÷ ¼±¾ðµÇÁö ¾Ê¾Ò½¿À¸·Î, ÀÌ´Â ¿À·ùÀÏ °ÍÀÌ´Ù.)
  • 5¹ø, "&#60;" ±ÛÀÚ ÂüÁ¶´Â Áï½Ã È®ÀåµÇ°í, ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) "zz"´Â ±³Ã¼ ÅؽºÆ® "<!ENTITY tricky "error-prone" >"·Î ÀúÀåµÇ¸ç, ÀÌ´Â Àß Çü¼ºµÈ ¿£Æ¼Æ¼(entity) ¼±¾ðÀÌ´Ù.
  • 6¹ø, "xx" ÂüÁ¶´Â Àνĵǰí, "xx"("%zz;") ±³Ã¼ ÅؽºÆ®´Â Çؼ®(parse)µÈ´Ù. À̹ø¿¡´Â "zz" ÂüÁ¶°¡ Àνĵǰí, ±× ±³Ã¼ ÅؽºÆ®("<!ENTITY tricky "error-prone" >")°¡ Çؼ®(parse)µÈ´Ù. ÀϹÝ(general) ¿£Æ¼Æ¼(entity) "tricky"°¡ ÀÌÁ¦ ¼±¾ðµÇ¾î, ±³Ã¼(replacement) ÅؽºÆ® "error-prone"¸¦ °®´Â´Ù.
  • 8¹ø, ÀϹÝ(general) ¿£Æ¼Æ¼(entity) "tricky" ÂüÁ¶´Â Àνĵǰí, È®ÀåµÇ¾î, "test" ¿¤·¹¸àÆ®(element)ÀÇ ¿ÏÀüÇÑ ³»¿ë(content)Àº ¹®¹ýÀÌ ¾ø´Â ±×´ë·Î ±â¼úÇÏ´Â ½ºÆ®¸µ "This sample shows a error-prone method."°¡ µÈ´Ù.

E. ÆÇÁ¤Àû ³»¿ë ¸ðµ¨ (ºñÁö¸íÀû)

±Ô°ÝºÎÇÕ¼º(compatibility)À» À§ÇÏ¿©, ¿¤·¹¸àÆ® ŸÀÔ ¼±¾ð¿¡¼­ ³»¿ë(content) ¸ðµ¨(model)µéÀº ÆÇÁ¤ÀûÀÌ µÉ ÇÊ¿ä°¡ ÀÖ´Ù.

SGMLÀº ÆÇÁ¤Àû ³»¿ë ¸ðµ¨("unambiguous(¸íÈ®ÇÑ)"·Î ºÒ¸®¿ò)À» ÇÊ¿ä·Î ÇÑ´Ù; SGML ½Ã½ºÅÛÀ» »ç¿ëÇÏ´Â XML ó¸®ÀÚ(processor)µéÀº ºñ ÆÇÁ¤Àû ³»¿ë ¸ðµ¨À» ¿À·ùµé·Î Ç¥½Ã ÇÒ ¼ö ÀÖ´Ù.

¿¹¸¦ µé¾î, ³»¿ë(content) ¸ðµ¨(model) ((b, c) | (b, d))´Â ºñ ÆÇÁ¤ÀûÀÌ´Ù. ÁÖ¾îÁø ÃÖÃÊÀÇ b·Î´Â, b À§¿¡ µû¶ó¿À´Â ¿¤·¹¸àÆ®(element)¸¦ ³»´Ù º¸Áö ¾Ê°í´Â, Çؼ®ÀÚ(parser)°¡ ¸ðµ¨(model)ÀÇ ¾î´À b°¡ ÀÏÄ¡ °Ë»çµÇ´Â°¡ ¾Ë ¼ö ¾ø±â ¶§¹®ÀÌ´Ù. ÀÌ °æ¿ì, bÀÇ µÎ ÂüÁ¶´Â ´ÜÀÏ ÂüÁ¶·Î ºØ±«µÇ¾î, (b, (c | d)) ¸ðµ¨(model)À» ¸¸µé ¼ö ÀÖ´Ù. ÀÌÁ¦ ÃÖÃÊÀÇ 'b'´Â ¸íÈ®È÷ ³»¿ë(content) ¸ðµ¨(model)ÀÇ ´ÜÀÏ À̸§°ú ¸¸ ÀÏÄ¡ °ËÁ¤À» ÇÑ´Ù. Çؼ®ÀÚ(parser)´Â ¾Õ¿¡ ¹«¾ùÀÌ µû¶ó¿À´Â°¡¸¦ ¾Ë ÇÊ¿ä°¡ ¾ø´Ù; 'c' ¶Ç´Â 'd'°¡ ¹Þ¾Æ Áú °ÍÀÌ´Ù.

¾î °ø½ÄÀûÀ¸·Î: À¯ÇÑ ¹®Àå ÀÚµ¿È­´Â ³»¿ë ¸ðµ¨·Î ºÎÅÍ Ç¥ÁØ ±â´É(algorithm)µéÀ» »ç¿ëÇÏ¿© ±¸¼º µÉ ¼ö ÀÖ´Ù. ¿¹¸¦ µé¸é Aho, Sethi¿Í Ullman [Aho/Ullman]ÀÇ Ç׸ñ 3.9 ±â´É(algorithm) 3.5. ¸¹Àº ÀÌ¿Í °°Àº ±â´É(algorithm)µé¿¡¼­, ÀÏ¹Ý °ø½Ä(Ç¥Çö)À¸·Î °¢ À§Ä¡¿¡ ÈÄ¼Ó ¼¼Æ®°¡ ±¸¼ºµÈ´Ù (¸»ÇÏÀÚ¸é, ÀÏ¹Ý °ø½Ä(Ç¥Çö) ¹®¹ý ü°è¿¡¼­ °¢°¢ ÇàÇÒ Á¶°¢); ¸¸ÀÏ ¾î¶² À§Ä¡¿¡, °°Àº ¿¤·¹¸àÆ® ŸÀÔ À̸§ ¾È¿¡ Çϳª ÀÌ»óÀÇ ÈÄ¼Ó À§Ä¡°¡ ¶óº§µÇ¾î ÀÖ´Â, ÈÄ¼Ó ¼¼Æ®°¡ ÀÖÀ¸¸é, ³»¿ë ¸ðµ¨Àº ¿À·ùÀ̸ç, ¿À·ù·Î ¾Ë¸± ¼ö ÀÖ´Ù.

¸¹Àº °ÍÀ» Çã¿ëÇÏ´Â ±â´É(algorithm)µéÀÌ ÀÖÁö¸¸, ¸ðµç ºñ ÆÇÁ¤Àû ³»¿ë ¸ðµ¨ÀÌ °°Àº ÆÇÁ¤Àû ¸ðµ¨(model)¿¡¼­ ó·³ ÀÚµ¿ Á¤¸®ÇÏ´Â °ÍÀº ¾Æ´Ï´Ù; Br?gemann-Klein 1991 [Br?gemann-Klein] ÂüÁ¶.


F. ±ÛÀÚ ¿£ÄÚµùÀÇ ÀÚµ¿°¨Áö (ºñÁö¸íÀû)

XML ¿£ÄÚµù(encoding) ¼±¾ðÀº °¢ ¿£Æ¼Æ¼(entity)¿¡, ¾î¶² ±ÛÀÚ ¿£ÄÚµùÀÌ »çŠEµÇ°í Àִ°¡¸¦ ³ªÅ¸³»´Â, ³»ºÎÀûÀ¸·Î ¶óº§(label)·Î ±â´É(function)ÇÑ´Ù. ±×·¯³ª, XML ó¸®ÀÚ(processor)°¡ ³»ºÎÀû ¶óº§(label)À» ÀÐÀ» ¼ö ÀÖ±â Àü¿¡, ¾î¶² ±ÛÀÚ ¿£ÄÚµù)ÀÌ »ç¿ëµÇ°í Àִ°¡(¾î¶² ³»ºÎÀû ¶óº§À» ÁöÁ¤ÇÏ·Á°í Çϴ°¡)¸¦ ¾Ë¾Æ¾ß ÇÑ´Ù´Â °ÍÀº ¸í¹éÇÏ´Ù. ÀϹÝÀûÀÎ °æ¿ì, ÀÌ°ÍÀº °¡¸ÁÀÌ ¾ø´Â »óȲÀÌ´Ù. ±×·¯³ª, XML¿¡¼­ ¿ÏÀüÈ÷ ºÒ°¡´É ÇÑ °ÍÀº ¾Æ´Ï´Ù. XMLÀº ÀϹÝÀûÀÎ °æ¿ì¸¦ µÎ°¡Áö ¹æ½ÄÀ¸·Î Á¦ÇÑÇϱ⠶§¹®ÀÌ´Ù: °¢ Àû¿ë(implementation)Àº ±ÛÀÚ ¿£ÄÚµù(encoding)µéÀÇ ÇÑÁ¤µÈ ¼¼Æ®¸¸À» Áö¿øÇÏ´Â °ÍÀ¸·Î °£Áֵǰí, XML ¿£ÄÚµù ¼±¾ðÀº, Á¤»óÀûÀÎ °æ¿ì °¢ ¿£Æ¼Æ¼(entity)¿¡ »ç¿ëµÇ´Â ±ÛÀÚ ¿£ÄÚµùÀ» ÀÚµ¿ °ËÁ¤ÀÌ °¡´ÉÇÏ°Ô Çϱâ À§ÇÏ¿©, À§Ä¡¿Í ³»¿ë(content)ÀÌ Á¦ÇѵȴÙ. ¶ÇÇÑ, ¸¹Àº °æ¿ì XML µ¥ÀÌÅÍ È帧 ÀÚü¿¡ Ãß°¡ÀûÀ¸·Î »ç¿ë ÇÒ ¼ö ÀÖ´Â ´Ù¸¥ Á¤º¸ ÀÚ¿øµéÀÌ ÀÖ´Ù. XML ¿£Æ¼Æ¼(entity)°¡ ó¸®ÀÚ¿¡°Ô ´Ù¸¥ µ¿¹ÝÇÏ´Â (¿ÜºÎÀû) Á¤º¸¸¦ Á¦½ÃÇϴ°¡ ¾Ê´Â°¡¿¡ µû¶ó, µÎ°¡Áö °æ¿ì°¡ ±¸º° µÉ ¼ö ÀÖ´Ù. ¸ÕÀú Á¦½ÃÇÏÁö ¾Ê´Â °æ¿ì¸¦ º¸ÀÚ.

UTF-8 ¶Ç´Â UTF-16°¡ ¾Æ´Ñ °¢ XML ¿£Æ¼Æ¼ ¾ç½ÄÀº ¹Ýµå½Ã XML ¿£ÄÚµù ¼±¾ðÀ¸·Î ½ÃÀÛÇÏ¿©¾ß µÇ±â ¶§¹®¿¡, ¿©±â¼­ ù ±ÛÀÚµéÀº '<?xml'À̾î¾ß Çϸç, ±Ô°Ý¿¡ ºÎÇÕÇϴ ó¸®ÀÚ(processor)´Â °¨Áö ÇÒ ¼ö ÀÖ¸¦ °ÍÀÌ°í, µÎ°³¿¡¼­ ³×°³ÀÇ 8Áø ¼ýÄ¡ ÀÔ·Â ÈÄ¿¡´Â ´ÙÀ½ÀÌ Àû¿ëµÈ´Ù. ÀÌ ¸ñ·ÏÀ» Àдµ¥ UCS-4¿¡¼­ '<'´Â "#x0000003C"ÀÌ°í '?'´Â "#x0000003F"À̸ç, µ¥ÀÌÅÍ È帧¿¡ ÇÊ¿äÇÑ UTF-16ÀÇ Byte Order Mark´Â "#xFEFF"À̶ó´Â °ÍÀ» ¾Ë¸é µµ¿òÀÌ µÈ´Ù.

  • 00 00 00 3C: UCS-4, big-endian machine (1234 ¼ø¼­)
  • 3C 00 00 00: UCS-4, little-endian machine (4321 ¼ø¼­)
  • 00 00 3C 00: UCS-4, unusual octet order (2143)
  • 00 3C 00 00: UCS-4, unusual octet order (3412)
  • FE FF: UTF-16, big-endian
  • FF FE: UTF-16, little-endian
  • 00 3C 00 3F: UTF-16, big-endian, no Byte Order Mark (¾ö°ÝÈ÷ ¸»ÇÏ¸é ¿À·ù)
  • 3C 00 3F 00: UTF-16, little-endian, no Byte Order Mark (¾ö°ÝÈ÷ ¸»ÇÏ¸é ¿À·ù)
  • 3C 3F 78 6D: UTF-8, ISO 646, ASCII, ISO 8859ÀÇ ÀϺΠºÎºÐ, Shift-JIS, EUC, ¶Ç´Â ´Ù¸¥ ¾î¶² 7-bit, 8-bit, ¶Ç´Â È¥ÇÕ ³Êºñ(mixed-width) ¿£ÄÚµù(encoding), ÀÌ´Â ASCII ±× ±ÛÀÚµéÀº Á¤»óÀ§Ä¡, ³Êºñ¿Í °ªµéÀ» °®´Â´Ù °ÍÀ» È®ÀÎÇÑ´Ù; À̵é Áß ¾î´À°ÍÀÌ Àû¿ëµÈ´Ù´Â °ÍÀ» ¾Ë±â À§ÇØ, ½ÇÁ¦ ¿£ÄÚµù ¼±¾ðÀÌ ÀоîÁ®¾ß ÇÏÁö¸¸, ÀÌµé ¿£ÄÚµùµéÀº ¸ðµÎ ASCII ±ÛÀڵ鿡¼­ °°Àº ÀÌÁø¼ö(bit) ÇüÅÂ(patterns)¸¦ »ç¿ëÇϹǷÎ, ¿£ÄÚµù(encoding) ¼±¾ð ÀÚü¸¦ Àд °ÍÀÌ °¡´ÉÇÏ´Ù.
  • 4C 6F A7 94: EBCDIC (¾î¶² ¼±È£·Î; ¾î¶² ÄÚµå ÆäÀÌÁö°¡ »ç¿ëµÇ´Â°¡´Â ¾Ë·Á¸é ¿ÏÀüÇÑ ¿£ÄÚµù ¼±¾ðÀÌ ÀÐÇôÁ®¾ß ÇÑ´Ù.)
  • ±âŸ: ¿£ÄÚµù(encoding) ¼±¾ð ¾ø´Â UTF-8, ¶Ç´Â ¾Æ´Ï¸é µ¥ÀÌÅÍ È帧ÀÌ ºØ±¥µÇ´Â, ºÎÀ§Àû(fragmentary), ¶Ç´Â ¾î¶² Á¾·ùÀÇ Æ÷Àå(wrapper) ¾È¿¡ ½×ÀÎ

ÀÌ ¼öÁØÀÇ ÀÚµ¿°¨Áö´Â XML ¿£ÄÚµù(encoding) ¼±¾ðÀ» Àаí, ±ÛÀÚ ¿£ÄÚµù ÀνÄÀÚ(identifier)¿¡ Çؼ®(parse)Çϴµ¥´Â ÃæºÐÇÏ´Ù. ¿©ÀüÈ÷ °¢ ¿£ÄÚµù °¡Á·ÀÇ °³º° ±¸¼º¿øÀ» ±¸º°ÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. (¿¹¸¦ µé¾î 8859·Î ºÎÅÍ UTF-8, ¼­·Î ´Ù¸¥ 8859ÀÇ ºÎºÐ, ¶Ç´Â »ç¿ëÇϴ ƯÁ¤ EBCDIC ÄÚµå ÆäÀÌÁö(code page)¸¦ ±¸º°, µî).

¿£ÄÚµù ¼±¾ðÀÇ ³»¿ëµéÀÌ ASCII ±ÛÀÚ·Î Á¦ÇѵDZ⠶§¹®¿¡, ó¸®ÀÚ(processor)´Â, »ç¿ëµÇ´Â ¿£ÄÚµù(encoding) °¡Á·(family)°¡ °¨ÁöµÇ¸é, Àüü ¿£ÄÚµù ¼±¾ðÀ» ½±°Ô ÀÐÀ» ¼ö ÀÖ´Ù. ½ÇÁ¦ÀûÀ¸·Î, ¸ðµç ³Î¸® »ç¿ëµÇ´Â ±ÛÀÚ ¿£ÄÚµùµéÀº À§ÀÇ Çϳª¿¡ ÇØ´çµÇ¹Ç·Î, ¿î¿µÃ¼°è³ª ¼Û½Å ÇÁ·ÎÅäÄÝ(transport-protocol) ¼öÁØÀÇ ¿ÜºÎÀû ÀÚ¿ø Á¤º¸¿¡¼­ Çö½Ç¼ºÀÌ ÀûÀº °æ¿ìµµ, XML ¿£ÄÚµù ¼±¾ðÀº »ó´çÈ÷ ÇÕ¸®ÀûÀ¸·Î, ±ÛÀÚ ¿£ÄÚµù(encoding)µéÀÇ ¹üÀ§ ¶óº§¸µ(labeling)Çϵµ·Ï, Çã¿ëÇÑ´Ù.

ÀÏ´Ü Ã³¸®ÀÚ(processor)°¡ »ç¿ëÇÏ´Â ±ÛÀÚ ¿£ÄÚµùÀ» °¨ÁöÇϸé, °¢ ÀÔ·Â °úÁ¤À» ´Þ¸® ºÒ·¯ ÇÒ °ÍÀΰ¡, ȤÀº °¢ ÀÔ·Â ±ÛÀÚ¿¡ Àû´çÇÑ º¯È¯ ±â´É(function)À» È£Ãâ ÇÒ °ÍÀΰ¡µî¿¡, ÀûÁ¤ÇÏ°Ô ÀÛ¿ë ÇÒ ¼ö ÀÖ´Ù.

´Ù¸¥ ÀÚü ¶óº§¸µ(self-labeling) ü°è¿¡¼­¿Í ¸¶Âù°¡Áö·Î, ¾î¶² ¼ÒÇÁÆ®¿þ¾î°¡ ¿£ÄÚµù(encoding) ¼±¾ð °»½Å ¾øÀÌ ¿£Æ¼Æ¼(entity)ÀÇ ±ÛÀÚ ¼¼Æ® ¶Ç´Â ¿£ÄÚµù¿¡ º¯°æÀ» ÁÖ¸é, XML ¿£ÄÚµù ¼±¾ðÀº ÀÛ¿ëÇÏÁö ¾ÊÀ» °ÍÀÌ´Ù. ±ÛÀÚ ¿£ÄÚµù °úÁ¤ Àû¿ëÀÚ(Implementor)µéÀº »ç¿ëµÈ ³»ºÎÀû, ¿ÜºÎÀû Á¤º¸¸¦ ¿£Æ¼Æ¼(entity)¿¡ ¶óº§(label)Çϴµ¥ Á¤È®È÷ Çϵµ·Ï ÁÖÀÇÇÏ¿©¾ß ÇÑ´Ù.

µÎº¯Â° °¡´ÉÇÑ °æ¿ì´Â, ÀϺΠȭÀÏ ½Ã½ºÅÛ°ú ³×Æ®¿öÅ© ÇÁ·ÎÅäÄÝ¿¡¼­ ó·³, XML ¿£Æ¼Æ¼(entity)°¡ ¿£ÄÚµù Á¤º¸¿Í ÇÔ²² ¿Ã ¶§, ¹ß»ýµÈ´Ù. º¹¼ö Á¤º¸ ÀÚ¿øÀ» »ç¿ë ÇÒ ¼ö ÀÖÀ» ¶§, ±×µé »çÀÌÀÇ »ó´ëÀû ¿ì¼±¼øÀ§¿Í ¸¶Âû(¸ð¼ø)ÀÇ °æ¿ì ¼±È£µÇ´Â ó¸® ¹æ½Ä(method)Àº XMLÀ» Àü´ÞÇϴµ¥ »ç¿ëµÇ´Â »óÀ§ ·¹º§ ÇÁ·ÎÅäÄÝ(protocol)ÀÇ ºÎºÐÀ¸·Î ÁöÁ¤µÇ¾î¾ß ÇÑ´Ù ³»ºÎÀû ¶óº§(label)°ú ¿ÜºÎÀû Çì´õ(header)ÀÇ "MIME-type" ¶óº§ »çÀÌÀÇ »ó´ëÀû ¿ì¼±¼øÀ§ ±ÔÄ¢µéÀº, ¿¹¸¦ µé¾î, "text/xml"¿Í "application/xml MIME type"À» Á¤ÀÇÇÏ´Â RFC ¹®¼­ÀÇ ºÎºÐÀ̾î¾ß ÇÑ´Ù. ±×·¯³ª, °øÅë»ç¿ë¼º(interoperability)ÀÇ °ßÁö¿¡¼­ ¾Æ·¡ ±ÔÄ¢µéÀÌ ÃßõµÈ´Ù.

  • XML ¿£Æ¼Æ¼°¡ È­ÀÏ ¾È¿¡ ÀÖÀ¸¸é, ±ÛÀÚ ¿£ÄÚµù(encoding)À» °áÁ¤Çϱâ À§ÇÏ¿© Byte-Order Mark¿Í ¿£ÄÚµù ¼±¾ð PI°¡ (ÀÖÀ¸¸é) »ç¿ëµÈ´Ù; ¸ðµç ´Ù¸¥ Á¤º¸ °èÅë(heuristics) ¹× ÀÚ¿ø(source)µéÀº ¿À·ùȸº¹ ¸¸À» À§ÇÑ °ÍÀÌ´Ù.
  • XML ¿£Æ¼Æ¼°¡ "text/xml"ÀÇ "MIME type" °ú ÇÔ²² Àü´Þ(¹è´Þ)µÇ¸é, "MIME type"ÀÇ charset ÆĶó¸ÞÅÍ(parameter)°¡ ±ÛÀÚ ¿£ÄÚµù(encoding) ¹æ½Ä(method)À» °áÁ¤ÇÑ´Ù; ¸ðµç ´Ù¸¥ Á¤º¸ °èÅë ¹× ÀÚ¿øµéÀº ¿À·ùȸº¹ ¸¸À» À§ÇÑ °ÍÀÌ´Ù.
  • XML ¿£Æ¼Æ¼(entity)°¡ "application/xml"ÀÇ "MIME type" °ú ÇÔ²² Àü´Þ(¹è´Þ)µÇ¸é ±ÛÀÚ ¿£ÄÚµù(encoding)À» °áÁ¤Çϱâ À§ÇÏ¿© Byte-Order Mark ¿Í ¿£ÄÚµù ¼±¾ð PI°¡ (ÀÖÀ¸¸é) »ç¿ëµÈ´Ù; ¸ðµç ´Ù¸¥ Á¤º¸ °èÅë(heuristics) ¹× ÀÚ¿ø(source)µéÀº ¿À·ùȸº¹ ¸¸À» À§ÇÑ °ÍÀÌ´Ù.

ÀÌ ±ÔÄ¢µéÀº ÇÁ·ÎÅäÄÝ ¼öÁØ(protocol-level) ¹®¼­°¡ ¾øÀ» ¶§¿¡ ¸¸ Àû¿ëµÈ´Ù; ±¸Ã¼ÀûÀ¸·Î, "MIME types text/xml"¿Í "application/xml"ÀÌ Á¤ÀÇ µÇ¾úÀ¸¸é, ÇØ´ç RFC Ãßõ¾ÈµéÀº ÀÌ ±ÔÄ¢µéÀ» Àû¿ëÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.


G. W3C XML ÀÛ¾÷±¸·ì(Working Group) (ºñÁö¸íÀû)

À̱԰ÝÀº W3C XML ÀÛ¾÷±¸·ì(WG: Working Group)¿¡ ÀÇÇÏ¿© ¹ßÇàÀ» À§ÇÏ¿© ÁغñµÇ°í ½ÂÀεǾú´Ù. À̱԰ÝÀÇ WG ½ÂÀÎÀº ¸ðµç WG ±¸¼º¿øÀÌ '½ÂÀÎ'¿¡ ÅõÇ¥ÇÏ¿´½¿À» ÀǹÌÇÏ´Â °ÍÀº ¾Æ´Ï´Ù. ÇöÀç¿Í °ú°ÅÀÇ XML WG ±¸¼º¿øµéÀº:

Jon Bosak, Sun (Chair); James Clark (Technical Lead); Tim Bray, Textuality and Netscape (XML Co-editor); Jean Paoli, Microsoft (XML Co-editor); C. M. Sperberg-McQueen, U. of Ill. (XML Co-editor); Dan Connolly, W3C (W3C Liaison); Paula Angerstein, Texcel; Steve DeRose, INSO; Dave Hollander, HP; Eliot Kimber, ISOGEN; Eve Maler, ArborText; Tom Magliery, NCSA; Murray Maloney, Muzmo and Grif; Makoto Murata, Fuji Xerox Information Systems; Joel Nava, Adobe; Conleth O'Connell, Vignette; Peter Sharpe, SoftQuad; John Tigue, DataChannel

¿µ¹® ÀúÀ۱ǩ ¿µ¹® W3C (¿µ¹® MIT, ¿µ¹® INRIA, ¿µ¹® Keio ), ¸ðµç ±Ç¸® º¸À¯. W3C ¿µ¹® Ã¥ÀÓ, ¿µ¹® »óÇ¥±Ç, ¿µ¹® ¹®¼­ »ç¿ë°ú ¿µ¹® ¼ÒÇÁÆ®¿þ¾î ¸éÇã ±ÔÄ¢µé Àû¿ë.


W3CÀÇ ¹®¼­ »ç¿ëÀ» À§ÇÑ ¹ý¸¦Àû ¹®Á¦´Â ¿ø¹®À» ÂüÁ¶Ç϶ó.
¹ø¿ªÀÚ´Â ÀÌ ¹ø¿ª¹®¿¡ ´ëÇÑ Á÷, °£Á¢ÀûÀÎ ÀÏüÀÇ Ã¥ÀÓÀ» ÁöÁö ¾Ê´Â´Ù.

´Ù¸¥ ±Ô°Ý ¹ø¿ª¹®µé
[HTML 4] [CSS 2] [CSS 1] [XHTML 1.0]
¹ø¿ª¹® Á¦°øÀÚ : Æ®¸®¿À À¥ ÇÁ·£µå Trio ȨÆäÀÌÁö
À̹®¼­(http://trio.co.kr/webrefer/xml/xml10.html)´Â ÀÚÀ¯·ÎÀÌ ¿¬°á »ç¿ëÀÌ °¡´ÉÇÔ.