[Cache version from http://trio.co.kr/webrefer/xml/xml10.html; please use the original/canonical URL for this document if possible.]
XML 1.0 ±Ô°Ý Çѱ¹¾î ¹ø¿ª¹® |
¹ø¿ª¿¡ °ü·ÃÇÑ ÁÖ¼®´Â ÀÌ »ö»óÀ¸·Î Ç¥½ÃÇÏ¿© ¿ø¹® ¹ø¿ª ³»¿ë°ú ±¸ºÐÇÏ¿´´Ù.
CSS Àû¿ëÀº ¿øº»¿¡ ÁØÇÏ¿© Ç쵂 ÇÑ±Û Ç¥ÇöÀÌ ¾î»öÇÑ ºÎºÐÀº ¾à°£ Á¶Á¤ÇÏ¿´´Ù. W3C¿¡¼ ÇÁ·¹ÀÓÀ» Çã¿ëÇÏÁö ¾Ê¾Æ ÇÁ·¹ÀÓÀ» ¼±Åà ÇÒ ¼ö ÀÖ°Ô ÇÏ¿´´Ù. ¹ø¿ª¹® ½ÃÀÛ |
È®À强 ÀÛ¼º ¾ð¾î (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)´Â 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)À» ±â¼úÇÑ´Ù.
XMLÀº 1996 W3C°¡ ÁÖ°üÇÏ´Â XML ÀÛ¾÷±¸·ì(´çÃÊ¿¡´Â SGML Á¡°Ëȸ: Editorial Review Board)¿¡ ÀÇÇÏ¿© °³¹ßµÇ¾ú´Ù. Sun MicrosystemsÀÇ Jon Bosak°¡ ȸÀåÀ̾ú°í, ¿ª½Ã W3C¿¡ ÀÇÇÏ¿© Á¶Á÷µÈ, XML¿¡ ƯÈ÷ °ü½ÉÀÌ ÀÖ´Â ±¸·ì(Special Interest Group: °ú°Å SGML ÀÛ¾÷±¸·ìÀ¸·Î ¾Ë·ÁÁü)ÀÌ Âü¿©ÇÏ¿´´Ù. ÀÛ¾÷±¸·ìÀÇ ±¸¼º¿øÀº ºÎ·Ï¿¡ ±âÀçµÇ¾îÀÖ´Ù. Dan Connolly°¡ W3CÀÇ Á¢ÃË ´ã´çÀ¸·Î ÀÖ¾ú´Ù.
XML¿¡ ´ëÇÑ Åä·Ð ¸ñÇ¥´Â ´ÙÀ½°ú °°´Ù:
ÀÌ ±Ô°Ý°ú °ü·ÃµÈ Ç¥Áصé(Unicode, ±ÛÀÚµéÀ» À§ÇÑ ISO/IEC 10646, ¾ð¾îÀÇ ÀÎ½Ä Å±׵éÀ» À§ÇÑ RFC 1766, ¾ð¾î À̸§ ÄÚµéÀ» À§ ÇÑ ISO 639, ±¹°¡ À̸§ Äڵ带 À§ÇÑ ISO 3166)Àº, ºñÇ¥ÁØÀÎ XML ¹öÀü 1.0°ú À̸¦ ó¸®ÇÏ´Â ±¸¼º ÄÄÇ»ÅÍ ÇÁ·Î±×·¥µî¿¡ ÇÊ¿äÇÑ, ¸ðµç Á¤º¸¸¦ Á¦°øÇÑ´Ù.
XML ±Ô°ÝÀÇ ¿ø¹® ¹öÀüÀº, ¸ðµç ÅؽºÆ®¿Í ¹ý·üÀû °æ°í¿¡ ÇÕ´çÇϸé, ¹èÆ÷¸¦ ÀÚÀ¯·Ó°Ô ÇÒ ¼ö ÀÖ´Ù.
¿ë¾îµéÀº ÀÌ ±Ô°Ý º»Ã¼¿¡¼ XML ¹®¼µéÀ» ±â¼úÇϴµ¥ »ç¿ëµÇ¾ú´Ù. ´ÙÀ½ ¸ñ·Ï¿¡ Á¤ÀÇµÈ ¿ë¾îµéÀº ÀÌ ±Ô°ÝÀ» ±¸¼ºÇÏ´Â Á¤Àǵé°ú XML ó¸®ÀÚ(processor)ÀÇ È°µ¿À» ¼³¸íÇϴµ¥ »ç¿ëµÈ´Ù:
(½ºÆ®¸µÀ̳ª À̸§ÀÇ ÀÏÄ¡): ºñ±³µÇ´Â µÎ°³ÀÇ ½ºÆ®¸µÀ̳ª À̸§µéÀÌ ²À °°¾Æ¾ß ÇÑ´Ù. ISO/IEC 10646 ¿¡¼ ¿©·¯ °¡´ÉÇÑ Ç¥Çö(¿¹¸¦ µé¾î »çÀü Á¶ÇÕµÈ °Í°ú º£À̽º+±¸ºÐÀû ¾ç½ÄÀÇ ±ÛÀÚµé)ÀÇ ±ÛÀÚµéÀÌ ¾çÂÊ ½ºÆ®¸µ¿¡¼ °°Àº Ç¥ÇöÀ» °¡Áú ¶§¸¸ ÀÏÄ¡ÇÑ´Ù. »ç¿ëÀÚ ¼±ÅÃÀ¸·Î, ó¸®ÀÚ(processor)´Â ÀÌ¿Í °°Àº ±ÛÀÚµéÀ» Á¤±ÔÀÇ ¾ç½ÄÀ¸·Î Á¤»óÈ(ÀϹÝÈ) ½Ãų ¼ö ÀÖ´Ù. ´ë¼Ò¹®ÀÚÀÇ ÀüȯÀº »çÀü¿¡ Çü¼ºµÇÁö ¾Ê´Â´Ù.
(¹®¹ý¿¡¼ ½ºÆ®¸µ°ú ÄÚµå(rule)ÀÇ ÀÏÄ¡): ±× ÀÛ¾÷À¸·Î »ý¼ºµÈ ¾ð¾î¿¡ ¼ÓÇϸé, ½ºÆ®¸µÀº ¹®¹ýÀû »ý¼º°ú ÀÏÄ¡ÇÑ´Ù.
(³»¿ë(content)°ú ³»¿ë ¸ðµ¨(model)ÀÇ ÀÏÄ¡): "¿¤·¹¸àÆ® À¯È¿¼º" Á¦ÇÑ¿ä¼Ò¿¡ ¼³¸íµÈ ÇüÅÂ¿Í ¸ÂÀ¸¸é, ¿¤·¹¸àÆ®(element)´Â ±× ¼±¾ð°ú ÀÏÄ¡ÇÑ´Ù.
À̱԰ݿ¡ Á¤ÀÇµÈ ¹Ù¿¡ µû¶ó Àß Çü¼ºµÈ °ÍÀ̸é, µ¥ÀÌÅÍ ¿ÀºêÁ§Æ®(object)´Â ÇϳªÀÇ XML ¹®¼ÀÌ´Ù. Àß Çü¼ºµÈ XML ¹®¼´Â ¶ÇÇÑ, Ãß°¡ÀûÀÎ Á¦ÇÑ¿ä¼Òµé¿¡ ¸ÂÀ¸¸é, À¯È¿(valid) ÇÒ ¼ö ÀÖ´Ù.
°¢ XML ¹®¼´Â ³í¸®Àû ±¸Á¶¿Í ¹°¸®Àû ±¸Á¶¸¦ °®´Â´Ù. ¹°¸®ÀûÀ¸·Î, ¹®¼´Â ¿£Æ¼Æ¼(entity)¶ó ºÒ¸®¿ì´Â ´ÜÀ§µé·Î ÀÌ·ç¾î Áø´Ù. ÇÑ ¿£Æ¼Æ¼(entity)´Â ´Ù¸¥ ¿£Æ¼Æ¼¸¦ ÂüÁ¶(refer) ÇÒ ¼ö ÀÖÀ¸¸ç, ±× ¹®¼ ¾È¿¡ Æ÷ÇÔµÇ°Ô µÈ´Ù. ÇÑ ¹®¼´Â ÃÖ»óÀ§("root") ¶Ç´Â ¹®¼ ¿£Æ¼Æ¼(entity)·Î ½ÃÀ۵ȴÙ. ³í¸®ÀûÀ¸·Î, ¹®¼´Â ¼±¾ð, ¿¤·¹¸àÆ®(element), ÄÚ¸àÆ®(comment), ±ÛÀÚ ÂüÁ¶¿Í ó¸®Áö½Ã(processing instruction)µé·Î ÀÌ·ç¾î Áö¸ç, ÀÌµé ¸ðµÎ ±× ¹®¼ÀÇ ¸í½ÃÀû ÄÚµå(markup)·Î ÁöÁ¤µÈ´Ù. ³í¸®Àû ±¸Á¶¿Í ¹°¸®Àû ±¸Á¶´Â, "4.3.2 Àß Çü¼ºµÇ°í Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)"¿¡ ¼³¸íµÈ ¹Ù¿Í °°ÀÌ, ÀûÁ¤ÇÏ°Ô ³×½ºÆ®(nest)µÇ¾î¾ß ÇÑ´Ù.
ÅؽºÆ®Àû ¿ÀºêÁ§Æ®(object)´Â ´ÙÀ½À» ¸¸Á·½ÃÅ°¸é Àß Çü¼ºµÈ XML ¹®¼ÀÌ´Ù:
¹®¼
»ê¹°°ú ÀÏÄ¡ÇÑ´Ù.
¹®¼(Document) | ||||
|
ÀÏÄ¡ÇÏ´Â ¹®¼(document
) »ê¹°(production)Àº ´ÙÀ½ »çÇ×À» ³»Æ÷(ÀǹÌ)ÇÑ´Ù:
ÀÌ °á°ú·Î¼,
¹®¼¿¡¼ ÃÖ»óÀ§°¡ ¾Æ´Ñ(non-root) °¢ ¿¤·¹¸àÆ® 'C
'¿¡°Ô´Â,
'C
'´Â 'P
'ÀÇ ³»¿ë ¾È¿¡ ÀÖÀ¸³ª, 'P
'ÀÇ ³»¿ë¿¡ ÀÖ´Â ¾î¶² ´Ù¸¥ ¿¤·¹¸àÆ®ÀÇ ³»¿ëÀÌ ¾ÊµÇ·Ï, ¹®¼¿¡¼ ´Ù¸¥ ¿¤·¹¸àÆ® 'P
'°¡ ÀÖ´Ù,
¿©±â¼ 'P
'´Â C
ÀÇ ¸ðü(parent)·Î ÂüÁ¶µÇ°í, 'C
'´Â 'P
'ÀÇ ÀÚ½Ä(child)À¸·Î ÂüÁ¶µÈ´Ù.
Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)´Â ÅؽºÆ®¸¦ °®´Âµ¥, ÀÌ´Â ±ÛÀÚµéÀÇ ¿¬¼ÓÀ¸·Î, ÄÚµå(markup)³ª ±ÛÀÚ µ¥ÀÌÅÍ°¡ µÉ ¼ö ÀÖ´Ù. ÇÑ ±ÛÀÚ´Â, ISO/IEC 10646 [ISO/IEC 10646]¿¡ ÁöÁ¤ µÈ ¹Ù¿Í °°ÀÌ, ÅؽºÆ®ÀÇ ±âÃÊ ´ÜÀ§ÀÌ´Ù. ¿Ã¹Ù¸¥(legal) ±ÛÀÚµéÀº ÅÇ(tab), ¸®ÅÏ(enter), ÁÙ°ø±Þ(»õÁÙ ³Î±â), ¿Ã¹Ù¸¥ Unicode¿Í ISO/IEC 10646ÀÇ ±×·¡ÇÈ ±ÛÀÚµéÀÌ´Ù. [Unicode] Ç׸ñ 6.8¿¡¼ Á¤ÀÇµÈ "±Ô°ÝºÎÇÕ¼º(compatibility) ±ÛÀÚµé"ÀÇ »ç¿ëÀº ÇÏÁö ¾Ê´Â °ÍÀÌ ÁÁ´Ù.
±ÛÀÚ ¹üÀ§(Character Range) | ||||||
|
ÀÌÁø¼ö(bit) ÆÐÅÏÀ¸·Î ÄÚµå Æ÷ÀÎÆ®(code point) ±ÛÀÚ ¿£ÄÚµùÇÏ´Â ±â±¸(mechanism)´Â ¿£Æ¼Æ¼(entity)¿¡ µû¶ó ¼·Î ´Ù¸£´Ù. ¸ðµç XML ó¸®ÀÚ(processor)´Â 10646 ÀÇ UTF-8 ¿Í UTF-16 ¿£ÄÚµù(encoding)À» ¼ö¿ëÇÏ¿©¾ß ÇÑ´Ù. ÀÌ µÎ°¡Áö Áß ¾î´À °ÍÀÌ »ç¿ëµÇ´Â°¡ ½ÅÈ£ º¸³»´Â ±â±¸, ¶Ç´Â ´Ù¸¥ ¿£ÄÚµùÀ» °¡Á®´Ù ¾²´Â ±â±¸´Â µÚ 4.3.3 "¿£Æ¼Æ¼ÀÇ ±ÛÀÚ ¿£ÄÚµù"¿¡¼ ´Ù·é´Ù.
¿©±â¼´Â ¹®¹ý¿¡¼ ³Î¸® »ç¿ëµÇ´Â ÀϺΠ±âÈ£(symbol)µéÀ» Á¤ÀÇÇÑ´Ù.
S
(°ø¹é: space)Àº ÇÑ°³ ÀÌ»óÀÇ °ø¹é±ÛÀÚ(space: #x20), ¸®ÅÏ(enter), ÁÙ°ø±Þ(»õÁÙ ³Ö±â), ÅÇ(tab)µé·Î ±¸¼ºµÈ´Ù.
°ø¹é(White Space) | ||||
|
±ÛÀÚµéÀº ÆíÀÌ»ó ±ÛÀÚ, ¼ýÀÚ(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) | ||||||||||||||||||||
|
¸®ÅͶö(literal) µ¥ÀÌÅÍ´Â, ±× ½ºÆ®¸µÀÇ ±¸ºÐÀÚ·Î »ç¿ëµÈ µû¿ÈÇ¥¸¦ Á¦¿ÜÇÏ°í, µû¿ÈÇ¥ ¼ÓÀÇ ½ºÆ®¸µÀÌ´Ù.
¸®ÅͶö µ¥ÀÌÅÍ´Â ³»ºÎÀû ¿£Æ¼Æ¼(entity)ÀÇ ³»¿ë(EntityValue
), ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ °ª(AttValue
)°ú ¿ÜºÎÀû ÀνÄÀÚ(identifier: SystemLiteral
)µéÀ» ÁöÁ¤Çϴµ¥ »ç¿ëµÈ´Ù.
SystemLiteral
Àº ÄÚµå(markup)ÀÇ Ã³¸®(scanning) ¾øÀÌ Çؼ®(parse) µÉ ¼ö ÀÖ´Ù´Â Á¡¿¡ ÁÖÀÇÇ϶ó.
¸®ÅͶö(Literals) | ||||||||||||||||||||||||||||
|
ÅؽºÆ®´Â ±ÛÀÚ µ¥ÀÌÅÍ¿Í ÄÚµå(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) ±ÛÀÚ ÂüÁ¶³ª "&
" ½ºÆ®¸µ°ú "<
"¸¦ »ç¿ëÇÏ¿© ¿¡½ºÄÉÀÔ(escaped) µÇ¾î¾ß ÇÑ´Ù.
¿À¸¥ÂÊ ²©¼â(>)´Â ½ºÆ®¸µ ">
"¸¦ »ç¿ëÇÏ¿© Ç¥Çö ÇÒ ¼ö ÀÖÀ¸¸ç, ³»¿ë ¼ÓÀÇ ½ºÆ®¸µ "]]>
" ¾È¿¡ ³ªÅ¸³ª°í CDATA Ç׸ñÀÇ Á¾·áÀ» ¸¸µéÁö ¾ÊÀ¸¶§´Â, ±Ô°ÝºÎÇÕ¼ºÀ» À§ÇÏ¿©, ¹Ýµå½Ã ">
"À» »ç¿ëÇÏ¿© ¿¡½ºÄÉÀÔ(escaped) µÇ°Å³ª ±ÛÀÚ ÂüÁ¶À̾î¾ß ÇÑ´Ù.
¿¤·¹¸àÆ®ÀÇ ³»¿ë¿¡¼, ±ÛÀÚ µ¥ÀÌÅÍ´Â, ¾î¶² ÄÚµå(markup)ÀÇ ½ÃÀÛ±¸ºÐÀÚ¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â, ±ÛÀÚµéÀÇ ½ºÆ®¸µÀÌ´Ù.
CDATA Ç׸ñ¿¡¼, ±ÛÀÚ µ¥ÀÌÅÍ´Â, CDATA Ç׸ñÀ» ´Ý´Â ±¸ºÐÀÚ(delimiter)ÀÎ "]]>
"¸¦ Æ÷ÇÔÇÏÁö ¾Ê´Â, ±ÛÀÚµéÀÇ ½ºÆ®¸µÀÌ´Ù.
¾ÖÆ®¸®ºäÆ® °ª¿¡ ´ÜÀÏ, ÀÌÁß µû¿ÈÇ¥µéÀÇ Æ÷ÇÔÀ» Çã¿ëÇÏ·Á¸é, ´ÜÀÏ µû¿È ±ÛÀÚ(')´Â "'
"·Î, ÀÌÁß µû¿È ±ÛÀÚ(")´Â ""
"·Î Ç¥Çö ÇÒ ¼ö ÀÖ´Ù.
±ÛÀÚ µ¥ÀÌÅÍ(Character Data) | ||||
|
¹®¼¿¡¼ ÄÚ¸àÆ®´Â ´Ù¸¥ ÄÚµå(markup) ¹Û ¾îµð¿¡³ª ³ªÅ¸ ³¯ ¼ö ÀÖ°í, ¶ÇÇÑ, ¹®¼ ŸÀÔ ¼±¾ð(document type declaration) ¾È, ¹®¹ý¿¡ ÀÇÇÏ¿© Çã¿ë µÈ Àå¼Ò¿¡ ³ªÅ¸ ³¯ ¼ö ÀÖ´Ù.
À̵éÀº ¹®¼ÀÇ ±ÛÀÚ µ¥ÀÌÅÍ ºÎºÐÀÌ ¾Æ´Ï´Ù.
XML ó¸®ÀÚ(processor)´Â, ÇÊ¿äÇÑ °ÍÀº ¾Æ´ÏÁö¸¸, Àû¿ë(application)ÀÌ ÄÚ¸àÆ® ÅؽºÆ®¸¦ ÀÐ°Ô ÇÒ ¼ö ÀÖ´Ù.
±Ô°ÝºÎÇÕ¼ºÀ» À§ÇÏ¿©, ½ºÆ®¸µ "--
"´Â ÄÚ¸àÆ® ¼Ó¿¡ ³ªÅ¸³ªÁö ¸»¾Æ¾ß ÇÑ´Ù.
ÄÚ¸àÆ®(Comments) | ||||
|
ÄÚ¸àÆ®ÀÇ ¿¹Á¦:
<!-- <head> & <body>ÀÇ ¼±¾ð --> |
ó¸®Áö½Ã(processing instruction: PI)´Â ¹®¼µéÀÌ Àû¿ë(application)À» À§ÇØ Áö½Ã¸¦ Æ÷ÇÔ ÇÒ ¼ö ÀÖ°Ô ÇÑ´Ù.
ó¸®Áö½Ã(Processing Instructions) | ||||||||
|
PI´Â ¹®¼ÀÇ ±ÛÀÚ µ¥ÀÌÅÍ ºÎºÐÀÌ ¾Æ´Ï°í, Àû¿ë(application)¿¡ Àü´ÞÇÏ¿©¾ß ÇÑ´Ù.
PI´Â Áö½Ã°¡ ¾î´À Àû¿ëÀ¸·Î ÇâÇÒ °ÍÀΰ¡¸¦ ÁöÁ¤Çϴµ¥ »ç¿ëÇÏ´Â ¸ñÇ¥(PITarget
)·Î ½ÃÀÛÇÑ´Ù.
¸ñÇ¥(target) À̸§ "XML
", "xml
" µîÀº Ç¥ÁØȳª À̱԰ÝÀÇ ÇâÈÄ ¹öÀü À§ÇØ ¿¹¾àµÇ¾ú´Ù.
XML ÁÖ¼®(notation) ±â±¸(mechanism)°¡ °ø½ÄÀûÀÎ PI ¸ñÇ¥ ¼±¾ð¿¡ »ç¿ë µÉ ¼ö ÀÖ´Ù.
CDATA Ç׸ñÀº ±ÛÀÚ µ¥ÀÌÅÍ°¡ ³ªÅ¸ ³¯ ¼ö ÀÖ´Â ¾îµð¿¡³ª ³ªÅ¸³¯ ¼ö ÀÖ°í, À̵éÀº, ±×·¸Áö ¾ÊÀ¸¸é ÄÚµå(markup)·Î ÀνĵǴÂ, ±ÛÀÚµéÀ» Æ÷ÇÔÇÏ´Â ÅؽºÆ® ºí·°À» ¿¡½ºÄÉÀÔ(escape) Çϴµ¥ »ç¿ëµÈ´Ù.
CDATA Ç׸ñÀº ½ºÆ®¸µ "<![CDATA[
"·Î ½ÃÀÛµÇ°í ½ºÆ®¸µ "]]>
"·Î ³¡³´Ù.
CDATA Ç׸ñ(CDATA Sections) | ||||||||||||||||
|
CDATA Ç׸ñ ¾È¿¡¼´Â, CDEnd
½ºÆ®¸µ ¸¸ÀÌ ÄÚµå(markup)·Î ÀνĵȴÙ.
±×·¡¼ ¿ÜÂÊ ²©¼â(<)¿Í ¾ÚÆÛ»÷µå(&)µéÀÌ ±× ¸®ÅͶö(literal) ¾ç½Ä ¾È¿¡ ³ªÅ¸³¯ ¼ö ÀÖ´Ù;
À̵éÀº "<
"¿Í "&
"¸¦ »ç¿ëÇÏ¿© ¿¡½ºÄÉÀÔ(escape) µÉ ÇÊ¿ä°¡ ¾øÀ¸¸ç µÉ ¼öµµ ¾ø´Ù.
CDATA Ç׸ñµéÀº ³×½ºÆ®(nest) µÉ ¼ö ¾ø´Ù.
CDATA Ç׸ñÀÇ ¿¹Á¦, ¿©±â¼ "<greeting>
"¿Í "</greeting>
" »çÀÌ´Â ÄÚµå(markup)·Î ÀνĵÇÁö ¾Ê°í ±ÛÀÚ µ¥ÀÌÅÍ·Î ÀνĵȴÙ:
<![CDATA[<greeting>¿©·¯ºÐ ¾È³çÇϼ¼¿ä!</greeting>]]> |
XML ¹®¼µéÀº »ç¿ëµÈ XMLÀÇ ¹öÀüÀ» ÁöÁ¤ÇÏ´Â XML ¼±¾ðÀ¸·Î ½ÃÀÛ ÇÒ ¼ö ÀÖÀ¸¸ç, ½ÃÀÛÇÏ¿©¾ß ÇÑ´Ù. ¿¹¸¦ µé¾î, ¾Æ·¡´Â ¿ÏÀüÇÑ XML ¹®¼ÀÌ°í, Àß Çü¼ºµÈ °ÍÀÌÁö¸¸ À¯È¿(valid)ÇÏÁö´Â ¾Ê´Ù:
<?xml version="1.0"?> |
À̰͵µ °°´Ù:
<greeting>¿©·¯ºÐ ¾È³çÇϼ¼¿ä!</greeting> |
¹öÀü ¹øÈ£ "1.0
"ÀÌ À̱԰ÝÀÇ ÀÌ ¹öÀüÀÇ ±Ô°ÝºÎÇÕ¼ºÀ» ³ªÅ¸³»±â À§ÇÏ¿© »ç¿ëµÇ¾î¾ß ÇÑ´Ù;
À̱԰ÝÀÇ ÀÌ ¹öÀü¿¡ ºÎÇÕÇÏÁö ¾Ê´Â °æ¿ì, °ª "1.0
"À» »ç¿ëÇÑ ¹®¼´Â ¿À·ùÀÌ´Ù.
ÇâÈÄ À̱԰ÝÀÇ ¹öÀüµéÀº "1.0
"°ú ´Ù¸¥ ¼öÄ¡¸¦ ºÎ¿©ÇÏ°íÀú ÇÏ´Â °ÍÀÌ XML ÀÛ¾÷±¸·ìÀÇ ÀǵµÀÌÁö¸¸, ÇâÈÄ XMLÀÇ ¹öÀüÀ» ¸¸µé °ÍÀΰ¡, ¸¸µé¸é ¾î¶² ¹øÈ£ ºÙÀÌ´Â ¹æ½ÄÀ» »ç¿ë ÇÒ °ÍÀΰ¡¸¦ È®ÀÎÇÏ°í ÀÖÁö´Â ¾Ê´Ù.
ÇâÈÄ ¹öÀüµé¿¡ ´ëÇÑ °áÁ¤ÀÌ ¾øÀ¸¹Ç·Î, ÀÌ ±¸¼ºÀº ÀÚµ¿ ¹öÀü ÀνÄÀÇ °¡´É¼ºÀ» Çã¿ëÇÏ´Â ¼ö´ÜÀ» Á¦°øÇϸç, ÇÊ¿ä ÇÒ °ÍÀÌ´Ù.
ó¸®ÀÚ(processor)´Â, Áö¿øµÇÁö ¾Ê´Â ¹öÀüµé·Î ¶óº§µÈ ¹®¼µéÀ» ¹Þ¾ÒÀ» ¶§, ¿À·ù ½ÅÈ£¸¦ º¸³¾ ¼ö ÀÖ´Ù.
XML ¹®¼¿¡¼ ÄÚµå(markup)ÀÇ ±â´É(function)Àº, ±× ÀúÀå°ú ³í¸®Àû ±¸Á¶, ¿¬°üµÈ ¾ÖÆ®¸®ºäÆ® °ª°ú ¦À̵Ǵ ±× ³í¸®Àû ±¸Á¶¸¦ ±â¼úÇϱâ À§ÇÑ °ÍÀÌ´Ù. XMLÀº ¹®¼ ŸÀÔ ¼±¾ð(document type declaration), ³í¸®Àû ±¸Á¶ÀÇ Á¦ÇÑ¿ä¼Ò Á¤ÀÇ¿Í »çÀü¿¡ Á¤ÀÇµÈ ÀúÀå ´ÜÀ§µéÀÇ »ç¿ëÀ» Áö¿øÇÏ´Â ±â±¸(mechanism)¸¦ Á¦°øÇÑ´Ù. ¸¸ÀÏ ¿¬°üµÈ ¹®¼ ŸÀÔ ¼±¾ð¸¦ °®°í ÀÖ°í, ¹®¼°¡ ±× ¾È¿¡ ³ªÅ¸³ Á¦ÇÑ¿ä¼Ò¿¡ ¸Â´Â´Ù¸é, XML ¹®¼´Â À¯È¿(valid)ÇÏ´Ù.
¹®¼ ŸÀÔ ¼±¾ðÀº ¹®¼ ¾È¿¡¼ ÃÖÃÊÀÇ ¿¤·¹¸àÆ®(element)º¸´Ù ¸ÕÀú ³ª¿Í¾ß ÇÑ´Ù.
¼¹®(Prolog) | ||||||||||||||||||||||||
|
XML ¹®¼ ŸÀÔ ¼±¾ð(document type declaration)´Â ¹®¼ÀÇ ºÐ·ù¸¦ À§ÇÏ¿© ¹®¹ýÀ» Á¦°øÇÏ´Â ÄÚµå ¼±¾ðµéÀ» Æ÷ÇÔÇϰųª Áö¸íÇÑ´Ù. ÀÌ ¹®¹ýÀº ¹®¼ ŸÀÔ Á¤ÀÇ(DTD: document type definition)·Î ¾Ë·ÁÁ® ÀÖ´Ù. ¹®¼ ŸÀÔ ¼±¾ðÀº ¿ÜºÎÀû ÇϺμ¼Æ®(¿ÜºÎÀû ¿£Æ¼Æ¼ÀÇ Æ¯º°ÇÑ Á¾·ù)³ª Æ÷ÇÔÇÏ´Â ÄÚµå(markup) ¼±¾ðµé¸¦ Áö¸í ÇÒ ¼ö ÀÖ°í, ¶Ç´Â, ³»ºÎÀû ÇϺμ¼Æ®(subset) ¾È¿¡ Á÷Á¢ÀûÀ¸·Î ÄÚµå ¼±¾ðµéÀ» Æ÷ÇÔ ÇÒ ¼ö ÀÖ°í, µÑ ´Ù ÇÒ ¼öµµ ÀÖ´Ù. ¹®¼ÀÇ DTD´Â µÎ°¡Áö ÇϺμ¼Æ®µéÀÌ °°ÀÌ ±¸¼ºµÈ´Ù.
ÄÚµå ¼±¾ðÀº is ¿¤·¹¸àÆ® ŸÀÔ ¼±¾ð, ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð, ¿£Æ¼Æ¼ ¼±¾ð, ¶Ç´Â ÁÖ¼®(notation) ¼±¾ðÀÌ´Ù. ÀÌ ¼±¾ðµéÀº,¾Æ·¡ ¼³¸íµÈ ¹Ù¿Í °°Àº Àß Çü¼ºµÇ°í À¯È¿¼º Á¦ÇÑ¿ä¼Ò¿¡ µû¶ó , ÀüºÎ ȤÀº ÀϺθ¦ ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ ¾È¿¡ Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù. »ó¼¼ÇÑ Á¤º¸´Â 4. "¹°¸®Àû ±¸Á¶"¸¦ ÂüÁ¶Ç϶ó.
¹®¼ ŸÀÔ Á¤ÀÇ(Document Type Definition) | ||||||||||||||||||
|
ÄÚµå(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) | ||||||||
|
¿ÜºÎÀû ÇϺμ¼Æ®(subset)¿Í ¿ÜºÎÀû ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity)´Â ¶ÇÇÑ ±× ¾ÈÀÇ ³»ºÎÀû ÇϺμ¼Æ®¿¡¼¿Í ´Ù¸¥µ¥, ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ ÂüÁ¶´Â ÄÚµå(markup) ¼±¾ðµé »çÀÌ¿¡¼ »Ó ¾Æ´Ï¶ó, ¼Ó¿¡¼µµ Çã¿ëµÈ´Ù.
¹®¼ ŸÀÔ ¼±¾ð(document type declaration)À» °®´Â XML ¹®¼ ¿¹Á¦:
<?xml version="1.0"?> |
½Ã½ºÅÛ ÀνÄÀÚ(identifier) "hello.dtd
"´Â ¹®¼¸¦ À§ÇÑ DTDÀÇ URI¸¦ Á¦°øÇÑ´Ù.
±× ¼±¾ðµéÀº ¿¹Á¦¿Í °°ÀÌ Áö¿ªÀûÀ¸·Î ÁÖ¾î Áú ¼ö ÀÖ´Ù:
<?xml version="1.0" encoding="UTF-8" ?> |
¿ÜºÎÀû°ú ³»ºÎÀû ÇϺμ¼Æ®(subset)µéÀÌ ´Ù »ç¿ëµÇ¸é, ³»ºÎÀû ÇϺμ¼Æ®°¡ ¿ÜºÎÀû ÇϺμ¼Æ®º¸´Ù ¸ÕÀú ³ª¿Â °ÍÀ¸·Î °£ÁֵȴÙ. ³»ºÎÀû ÇϺμ¼Æ®¿¡ ÀÖ´Â ¿£Æ¼Æ¼(entity)¿Í ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµéÀÌ ¿ÜºÎÀû ÇϺμ¼Æ®¿¡ ÀÖ´Â °Í¿¡ ¿ì¼±ÇÏ¿© ÀÛ¿ëÇÏ´Â È¿°ú¸¦ °®´Â´Ù.
ÄÚµå(markup) ¼±¾ðµéÀº XML ó¸®ÀÚ(processor)·ÎºÎÅÍ Àû¿ë(application)¿¡ Àü´ÞÇÔ¿¡ µû¶ó ¹®¼¿¡ ³»¿ë¿¡ ¿µÇâÀ» ÁÙ ¼ö ÀÖ´Ù; ¿¹¸¦ µé¸é ¾ÖÆ®¸®ºäÆ®(attribute) µðÆúÆ®µé°ú ¿£Æ¼Æ¼(entity) ¼±¾ðµéÀÌ´Ù. µ¶¸³ ¹®¼ ¼±¾ðÀº XML ¼±¾ðÀÇ ºÎºÐÀ¸·Î ³ªÅ¸³¯ ¼ö ÀÖÀ¸¸ç, ¹®¼ ¿£Æ¼Æ¼¿¡ ¿ÜºÎÀûÀ¸·Î ÀÌ¿Í °°Àº ¼±¾ðµéÀÌ Àִ°¡ ¾ø´Â°¡ÀÇ ½ÅÈ£¸¦ ÁØ´Ù.
µ¶¸³ ¹®¼ ¼±¾ð(Standalone Document Declaration) | ||||||
|
µ¶¸³ ¹®¼ ¼±¾ð(Standalone Document Declaration)¿¡¼, °ª "yes
"´Â, XML ó¸®ÀÚ(processor)·ÎºÎÅÍ Àû¿ë(application)¿¡ Àü´ÞµÇ´Â Á¤º¸¿¡ ¿µÇâÀ» ÁÖ´Â, ¹®¼ ¿£Æ¼Æ¼(DTD¿¡ ¿ÜºÎÀû ÇϺμ¼Æ®À̳ª, ³»ºÎÀû ÇϺμ¼Æ®µé·Î ºÎÅÍ ÂüÁ¶µÇ´Â ¿ÜºÎÀû ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼)¿¡ ¿ÜºÎÀûÀÎ ÄÚµå(markup) ¼±¾ðÀÌ ¾ø½¿À» ³ªÅ¸³½´Ù.
°ª "no
"´Â ÀÌ¿Í °°Àº ¿ÜºÎÀû ÄÚµå ¼±¾ðµéÀÌ Àְųª, ÀÖÀ» ¼ö ÀÖ½¿À» ³ªÅ¸³½´Ù.
µ¶¸³ ¹®¼ ¼±¾ðÀº ´ÜÁö ¿ÜºÎÀû ¼±¾ðµéÀÇ Á¸À縦, ÀÌµé ¿£Æ¼Æ¼µéÀÌ ³»ºÎÀûÀ¸·Î ¼±¾ðµÇ¾úÀ¸¸é ¹®¼¿¡¼ ¿ÜºÎÀû ¿£Æ¼Æ¼·Î ÂüÁ¶ÇÔÀÇ Á¸À縦 ³ªÅ¸³»°í, ±× µ¶¸³¼ºÀÇ »óÅ´ º¯ÇÏÁö ¾ÊÀ½¿¡ ÁÖÀÇÇ϶ó.
¸¸ÀÏ ¿ÜºÎÀû ÄÚµå ¼±¾ðµéÀÌ ¾øÀ¸¸é, µ¶¸³ ¹®¼ ¼±¾ðÀº ¾Æ¹« Àǹ̸¦ °®Áö ¾Ê´Â´Ù.
¿ÜºÎÀû ÄÚµå ¼±¾ðµéÀÌ ÀÖÀ¸³ª µ¶¸³ ¹®¼ ¼±¾ðÀÌ ¾øÀ¸¸é, ±× °ªÀº "no
"·Î °£ÁֵȴÙ.
standalone="no"
À» °°°í ÀÖ´Â XML ¹®¼´Â º¯È¯ ±â´É(algorithmically)À¸·Î µ¶¸³ ¹®¼·Î º¯È¯ µÉ ¼ö ÀÖÀ¸¸ç, ÀÌ´Â ÀϺΠ³×Æ®¿öÅ© ¹è´Þ(Àü´Þ) Àû¿ë¿¡ ¹Ù¶÷Á÷ ÇÒ ¼ö ÀÖ´Ù
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: µ¶¸³ ¹®¼ ¼±¾ð(Standalone Document Declaration)
µ¶¸³ ¹®¼ ¼±¾ðÀÌ °ª "no
"¸¦ °¡Áö¸é ¿ÜºÎÀû ÄÚµå(markup) ¼±¾ðµéÀº ´ÙÀ½ÀÇ ¼±¾ðµéÀ» Æ÷ÇÔÇÑ´Ù:
amp
, lt
, gt
, apos
, quot
ÀÌ¿ÜÀÇ ¿£Æ¼Æ¼, ¶Ç´Âµ¶¸³ ¹®¼ ¼±¾ð(Standalone Document Declaration)À» °®´Â XML ¼±¾ðÀÇ ¿¹Á¦:
<?xml version="1.0" standalone='yes'?> |
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) ¿¤·¹¸àÆ®´Â, ÀÌ ¾ÖÆ®¸®ºäÆ®ÀÇ °ªÀÌ Á¦°øµÇ°Å³ª, ¾ÖÆ®¸®ºäÆ®°¡ µðÆúÆ® °ªÀ¸·Î ¼±¾ðµÇÁö ¾Ê´Â ÇÑ, Àû¿ëÀÇ °ø¹é 󸮿¡ Àǵµ°¡ ¾ø´Ù´Â ½ÅÈ£¸¦ ¹ÞÀº °ÍÀ¸·Î °£ÁÖÇÑ´Ù.
XML·Î Çؼ®(parse)µÈ ¿£Æ¼Æ¼´Â ÀÚÁÖ ÄÄÇ»ÅÍ ÈÀϵé·Î ÀúÀåµÈ¸ç, ÆíÁýÀÇ ÆíÀ̼ºÀ» À§ÇÏ¿©, ÁÙ(line)µé·Î ¸¸µé¾î Áø´Ù. ÀÌ ÁÙµéÀº ÀüÇüÀûÀ¸·Î ¸®ÅÏ(carriage-return: '#xD')°ú ÁÙ°ø±Þ(line-feed: '#xA') ±ÛÀÚµéÀÇ Á¶ÇÕÀ¸·Î ºÐ¸®µÈ´Ù.
Àû¿ë(applications)ÀÇ ÀÓ¹«¸¦ ´Ü¼øÈ Çϱâ À§ÇÏ¿©, ³»ºÎÀûÀ¸·Î Çؼ®(parse)µÈ ¿£Æ¼Æ¼ÀÇ ¿ÜºÎÀûÀ¸·Î Çؼ®µÈ ¿£Æ¼Æ¼³ª ¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ªÀÌ ¸®ÅͶö ¿¬¼Ó µÎ ±ÛÀÚ "#xD#xA" ¶Ç´Â ´ÜÀÏ ±ÛÀÚ "#xD"ÀÌ¸é ¾ðÁ¦³ª, XML ó¸®ÀÚ(processor)´Â Àû¿ë(application)¿¡°Ô ´ÜÀÏ ±ÛÀÚ "#xA"¸¦ Àü´ÞÇÏ¿©¾ß ÇÑ´Ù. (ÀÌ È°µ¿Àº, Çؼ® Àü¿¡ Á¤»óÈ¿¡ ÀÇÇÏ¿© ¸ðµç ÁٹٲÞÀ» ÀÔ·Â(input)¿¡¼ "#xA"·Î Æí¸®ÇÏ°Ô »ý¼º ÇÒ ¼ö ÀÖ´Ù.)
¹®¼ 󸮿¡¼, ±× ¹®¼°¡ ÀÛ¼ºµÈ ³»¿ëÀÇ ÀÚ¿¬ ȤÀº °ø½Ä ¾ð¾î¸¦ ÁöÁ¤ÇÏ´Â °ÍÀÌ ÀÚÁÖ À¯¿ëÇÏ´Ù.
'xml:lang
'·Î À̸§Áö¿ö Áø Ưº° ¾ÖÆ®¸®ºäÆ®°¡ ¹®¼¿¡ »ðÀÔµÇ¾î ³»¿ë¿¡ »ç¿ëµÈ ¾ð¾î¸¦ ÁöÁ¤ ÇÒ ¼ö ÀÖ°í, XML ¹®¼ÀÇ ¾î¶² ¿¤·¹¸àÆ® ¾ÖÆ®¸®ºäÆ® °ªÀ» ÁöÁ¤ ÇÒ ¼ö ÀÖ´Ù.
À¯È¿ÇÑ(valid) ¹®¼µé¿¡¼, ÀÌ ¾ÖÆ®¸®ºäÆ®(attribute)´Â ´Ù¸¥ °Í°ú ¸¶Âù°¡Áö·Î, »ç¿ëµÇ¸é ¼±¾ðµÇ¾î¾ß ÇÑ´Ù.
¾ÖÆ®¸®ºäÆ®ÀÇ °ªµéÀº [IETF RFC 1766], "¾ð¾î¸¦ ÀνÄÇϱâ À§ÇÑ Å±׵é"¿¡ Á¤ÀÇ µÈ ¹Ù¿Í °°Àº ¾ð¾î ÀνÄÀÚ(identifier)µéÀÌ´Ù:
¾ð¾îÀÇ ÀνÄ(Language Identification) | ||||||||||||||||||||||||
|
Langcode
´Â ¾Æ·¡ °Í ÁßÀÇ Çϳª°¡ µÉ ¼ö ÀÖ´Ù:
i-
"(¶Ç´Â "I-
")ÀÇ Á¢µÎ¾î·Î ½ÃÀ۵ȴÙ.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> |
ÀǵµÀûÀ¸·Î 'xml:lang
'·Î ¼±¾ðµÈ °ÍÀº, ±× ³»¿ë ¾È¿¡¼ ´Ù¸¥ ¿¤·¹¸àÆ®¿¡ 'xml:lang
' ÀνºÅº½º(instance)¸¦ »ç¿ëÇÏ¿© µ¤¾î¾º¿òÀ» ÇÏÁö ¾Ê´Â ÇÑ, ±× Á¤ÀÇ µÈ ¿¤·¹¸àÆ®(element)ÀÇ ¸ðµç ¾ÖÆ®¸®ºäÆ®(attribute)µé°ú ³»¿ë(content)¿¡ Àû¿ëÇÏ´Â °ÍÀ¸·Î °£ÁֵȴÙ.
'xml:lang
'ÀÇ °£´ÜÇÑ ¼±¾ðÀº ¾Æ·¡ ¾ç½ÄÀ» °®´Â´Ù;
xml:lang NMTOKEN #IMPLIED |
±×·¯³ª, ÀûÁ¤ÇÏ´Ù¸é, ƯÁ¤ µðÆúÆ® °ªµéÀÌ ÁÖ¾î Áú ¼öµµ ÀÖ´Ù. ¿µ±¹ Çлýµé¿¡°Ô ºÒ¾î ½ÃµéÀÇ ¸ðÀ½¿¡¼, ¼³¸í°ú ÁÖ¼®Àº ¿µ¾î·Î ÇÒ ¶§, 'xml:lang' ¾ÖÆ®¸®ºäÆ®´Â ´ÙÀ½°ú °°ÀÌ ¼±¾ð µÉ ¼ö ÀÖ´Ù:
<!ATTLIST poem xml:lang NMTOKEN 'fr'> |
°¢ XML ¹®¼´Â Çϳª ÀÌ»óÀÇ ¿¤·¹¸àÆ®(element)µé °®°í, ±× ¹üÀ§´Â ½ÃÀÛÅÂ±×¿Í Á¾·áű×, ¶Ç´Â ºó(empty) ¿¤·¹¸àÆ®¿¡¼´Â ºó ¿¤·¹¸àÆ® ű×(tag)·Î ±¸ºÐµÈ´Ù. °¢ ¿¤·¹¸àÆ®´Â ŸÀÔ(type)À» °®°í, ¶§·Î´Â "ƯÀ¯ ÀνÄÀÚ"(GI: Generic Identifier)·Î ºÒ¸®¿ì´Â À̸§À¸·Î Àνĵǰí, ÀÏ·ÃÀÇ ¾ÖÆ®¸®ºäÆ® ±Ô°ÝµéÀ» °¡Áú ¼ö ÀÖ´Ù. °¢ ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ ±Ô°ÝÀº À̸§(name)°ú °ªÀ» °®´Â´Ù.
¿¤·¹¸àÆ®(Element) | ||||||||||||||||
|
À̱԰ÝÀº, ±× À̸§ÀÌ À̱԰ÝÀÇ Ç¥ÁØȳª ÇâÈÄ ¹öÀüµéÀ» À§ÇÑ ¿¹¾à¾î¿Í ÀÏÄ¡ÇÏ´Â (('X'|'x')('M'|'m')('L'|'l'))
·Î ½ÃÀÛÇÏ´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â, ¿¤·¹¸àÆ® ŸÀÔµé°ú ¾ÖÆ®¸®ºäÆ®µéÀÇ ¹®¹ý(semantic), »ç¿ë, ¶Ç´Â (¹®¹ý ÀÌ¿ÜÀÇ) À̸§À» Á¦ÇÑÇÏÁö ¾Ê´Â´Ù.
Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¿¤·¹¸àÆ® ŸÀÔÀÏÄ¡(Element Type Match)
¿¤·¹¸àÆ®(element)ÀÇ Á¾·áÅÂ±× ¾ÈÀÇ Name
(À̸§)Àº
½ÃÀÛÅÂ±× ¾ÈÀÇ ¿¤·¹¸àÆ® ŸÀÔ°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ¿¤·¹¸àÆ® À¯È¿(Element Valid)
À̸§(Name
)ÀÌ ±× ¿¤·¹¸àÆ® ŸÀÔ¿¡ ÀÏÄ¡ÇÏ´Â elementdecl
¿Í ÀÏÄ¡ÇÏ´Â ¼±¾ðÀÌ ÀÖÀ¸¸é, ¿¤·¹¸àÆ®°¡ À¯È¿(valid)Çϸç, ´ÙÀ½ Áß Çϳª¿¡ ÇØ´çÇÑ´Ù:
EMPTY
'(ºó°Í)¿Í ÀÏÄ¡ÇÏ°í, ¿¤·¹¸àÆ®°¡ ³»¿ë(content)À» °®°í ÀÖÁö ¾Ê´Ù.ÀÚ½Ä(child)
µé°ú ÀÏÄ¡ÇÏ°í, ÀÚ½Ä ¿¤·¹¸àÆ®µéÀÇ ¿¬¼ÓÀÌ, ³»¿ë ¸ðµ¨(model) ¾ÈÀÇ ÀϹÝÀû ÁöÁ¤(expression)À¸·Î »ý¼ºµÈ ¾ð¾î¿¡ ¼Ò¼ÓµÇ¾î ÀÖ°í, ÀÚ½Ä ¿¤·¹¸àÆ®µéÀÇ °¢ ¦ »çÀÌ¿¡ ¼±ÅÃÀû °ø¹é(±ÛÀÚ°¡ ºñ Å͹̳ΠS
¿Í ÀÏÄ¡ÇÏ´Â)À» °¡Áö°í ÀÖ´Ù.Mixed
(È¥ÇÕ)¿Í ÀÏÄ¡ÇÏ°í, ±× ³»¿ëÀÌ ±ÛÀÚ µ¥ÀÌÅÍ¿Í ±× ŸÀÔÀÌ ³»¿ë ¸ðµ¨(model)ÀÇ À̸§°ú ÀÏÄ¡ÇÏ´Â ÀÚ½Ä ¿¤·¹¸àÆ®µé·Î ±¸¼ºµÇ¾ú´Ù.ANY
¿Í ÀÏÄ¡ÇÏ°í, ¾î¶² ÀÚ½Ä(child) ¿¤·¹¸àÆ®ÀÇ Å¸ÀÔÀÌ ¼±¾ðµÇ¾ú´Ù.ºó°ÍÀÌ ¾Æ´Ñ °¢ XML ¿¤·¹¸àÆ®(element)ÀÇ ½ÃÀÛÀº ½ÃÀÛű׷Πǥ½ÃµÇ¾î ÀÖ´Ù.
½ÃÀÛű×(Start-tag) | ||||||||||||||||||||||||
|
½ÃÀÛÅÂ±×¿Í Á¾·áÅÂ±× ¾È¿¡ À̸§(Name
)ÀÌ ¿¤·¹¸àÆ®(element)ÀÇ Å¸ÀÔ(type)À» ÁöÁ¤ÇÑ´Ù.
Name
- AttValue
ÀÇ Â¦µéÀº ±× ¿¤·¹¸àÆ®ÀÇ ¾ÖÆ®¸®ºäÆ® ±Ô°ÝÀ¸·Î, °¢ ¦ÀÇ Name
Àº ¾ÖÆ®¸®ºäÆ® À̸§°ú ¾ÖÆ®¸®ºäÆ® °ªÀ¸·Î AttValue
('
¶Ç´Â "
±¸ºÐÀÚµé »çÀÌÀÇ ÅؽºÆ®)ÀÇ ³»¿ëÀ¸·Î ÂüÁ¶µÈ´Ù.
Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: À¯ÀÏ ¾ÖÆ®¸®ºäÆ® ±Ô°Ý(Unique Att Spec)
°°Àº ½ÃÀÛÅÂ±× ¶Ç´Â ºó ¿¤·¹¸àÆ® ÅÂ±× ¾È¿¡¼ °°Àº ¾ÖÆ®¸®ºäÆ®(attribute) À̸§ÀÌ ³ª¿Í¼´Â ¾ÊµÈ´Ù.
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ¾ÖÆ®¸®ºäÆ® °ª ŸÀÔ(Attribute Value Type)
¾ÖÆ®¸®ºäÆ®´Â ¼±¾ðµÇ¾î ÀÖ¾î¾ß ÇÑ´Ù; ±× °ªÀº À̸¦ À§ÇÑ ¼±¾ðµÈ ŸÀÔÀ̾î¾ß ÇÑ´Ù.
(¾ÖÆ®¸®ºäÆ® ŸÀÔÀº 3.3 "¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð"À» ÂüÁ¶Ç϶ó.)
Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¿ÜºÎÀû ¿£Æ¼Æ¼ ÂüÁ¶°¡ ¾ø¾î¾ß ÇÔ(No External Entity References)
¾ÖÆ®¸®ºäÆ® °ªµéÀº ¿ÜºÎÀû ¿£Æ¼Æ¼¿¡ ´ëÇÑ Á÷Á¢Àû ȤÀº °£Á¢Àû ¿£Æ¼Æ¼ ÂüÁ¶¸¦ Æ÷ÇÔ ÇÒ ¼ö ¾ø´Ù.
Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¾ÖÆ®¸®ºäÆ® °ª¿¡ '<
'°¡ ¾ø¾î¾ß ÇÔ
¾ÖÆ®¸®ºäÆ® °ª¿¡¼ Á÷Á¢Àû ȤÀº °£Á¢ÀûÀ¸·Î ÂüÁ¶µÈ ¿£Æ¼Æ¼(entity)ÀÇ ±³Ã¼ ÅؽºÆ®("<
" ÀÌ¿ÜÀÇ)´Â '<
'¸¦ Æ÷ÇÔ ÇÒ ¼ö ¾ø´Ù.
½ÃÀÛű×ÀÇ ¿¹Á¦:
<termdef id="dt-dog" term="dog"> |
½ÃÀÛű׷Π½ÃÀÛµÈ °¢ ¿¤·¹¸àÆ®(element)´Â, ½ÃÀÛű׿¡¼ ÁÖ¾îÁø ¿¤·¹¸àÆ® ŸÀÔÀ» º¹»çÇÑ À̸§À» Æ÷ÇÔÇÏ´Â, Á¾·áű׷Πǥ½ÃÇÏ¿©¾ß ÇÑ´Ù:
Á¾·áű×(End-tag) | ||||
|
Á¾·áű×ÀÇ ¿¹Á¦:
</termdef> |
½ÃÀÛÅÂ±×¿Í Á¾·áÅÂ±× »çÀÌÀÇ ÅؽºÆ®¸¦ ¿¤·¹¸àÆ®ÀÇ ³»¿ëÀ̶ó ÇÑ´Ù:
¿¤·¹¸àÆ®ÀÇ ³»¿ë(Content of Elements) | ||||
|
¸¸ÀÏ ¿¤·¹¸àÆ®°¡ ºñ¾î(empty) ÀÖÀ¸¸é, ÀÌ´Â ½ÃÀÛűװ¡ ¿¸®ÀÚ ¸¶ÀÚ Á¾·áűװ¡ ¿Â °ÍÀÌ °Å³ª ºó ¿¤·¹¸àÆ® ű×ÀÌ´Ù. ºó ¿¤·¹¸àÆ® ű״ Ư¼öÇÑ ¾ç½ÄÀ» °®´Â´Ù:
ºó ¿¤·¹¸àÆ® ű×(Tags for Empty Elements) | ||||||
|
ºó ¿¤·¹¸àÆ® ű״ ³»¿ë(content)ÀÌ ¾ø´Â ¾î´À ¿¤·¹¸àÆ®¿¡µµ »ç¿ë µÉ ¼ö ÀÖÀ¸¸ç, 'EMPTY
' Å°¿öµå(keyword)·Î ¼±¾ðµÈ´Ù.
°øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©, ºó ¿¤·¹¸àÆ® űװ¡ »ç¿ëµÇ¾î¾ß Çϸç, 'EMPTY
'·Î ¼±¾ðµÈ ¿¤·¹¸àÆ®µé¿¡¼ ¸¸ »ç¿ë µÉ ¼ö ÀÖ´Ù.
ºó(empty) ¿¤·¹¸àÆ®ÀÇ ¿¹Á¦:
<IMG align="left" |
XML ¹®¼ÀÇ ¿¤·¹¸àÆ®(element) ±¸Á¶´Â, À¯È¿¼º °ËÁ¤(validation) ¸ñÀûÀ¸·Î, ¿¤·¹¸àÆ® ŸÀÔ°ú ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµéÀ» »ç¿ëÇÏ¿© Á¦ÇÑÀ» ÁÙ ¼ö ÀÖ´Ù. ¿¤·¹¸àÆ® ŸÀÔ ¼±¾ðÀº ¿¤·¹¸àÆ®(element)ÀÇ ³»¿ë(content)¿¡ Á¦ÇÑÀ» ÁØ´Ù.
¿¤·¹¸àÆ® ŸÀÔ ¼±¾ðÀº ÀÚÁÖ ¾î¶² ¿¤·¹¸àÆ® ŸÀÔµéÀÌ ¿¤·¹¸àÆ®ÀÇ ÀÚ½Ä(child)µé¿¡ ³ªÅ¸³¯ ¼ö Àִ°¡ÀÇ Á¦ÇÑÀ» ÁØ´Ù. »ç¿ëÀÚÀÇ ¼±ÅÃÀ¸·Î, ¼±¾ðÀÌ µÇÁö ¾ÊÀº ¿¤·¹¸àÆ® ŸÀÔÀÇ ¼±¾ðÀÌ ³ªÅ¸³ª¸é, XML ó¸®ÀÚ(processor)´Â °æ°í¸¦ ¹ß»ý ½Ãų ¼ö Àִµ¥, ÀÌ°ÍÀº ¿À·ù°¡ ¾Æ´Ï´Ù.
¿¤·¹¸àÆ® ŸÀÔ ¼±¾ðÀº ´ÙÀ½°ú °°Àº ¾ç½ÄÀ» °®´Â´Ù:
¿¤·¹¸àÆ® ŸÀÔ ¼±¾ð(Element Type Declaration) | ||||||||||
|
¿©±â¼ À̸§(Name
)Àº ¼±¾ðµÇ´Â ¿¤·¹¸àÆ®ÀÇ Å¸ÀÔÀ» ÁØ´Ù.
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: À¯ÀÏÇÑ ¿¤·¹¸àÆ® ŸÀÔ ¼±¾ð
°°Àº ¿¤·¹¸àÆ®(element) ŸÀÔÀÌ ´Ù½Ã ¼±¾ð µÉ ¼ö ¾ø´Ù.
¿¤·¹¸àÆ® ŸÀÔ ¼±¾ðÀÇ ¿¹Á¦:
<!ELEMENT br EMPTY> |
¿¤·¹¸àÆ®(element) ŸÀÔ(type)Àº, ±× ŸÀÔÀÇ ¿¤·¹¸àÆ®°¡ ÀÚ½Ä(child) ¿¤·¹¸àÆ®µé(±ÛÀÚ µ¥ÀÌÅÍ´Â ¾ÈµÇ°í) ¸¸À» Æ÷ÇÔÇÏ¿©¾ß Çϸç, ¼±ÅÃÀûÀ¸·Î °ø¹é(±ÛÀÚ°¡ ºñ Å͹̳¯ S
¿Í ÀÏÄ¡)À¸·Î ºÐ¸®µÇ¸é, ¿¤·¹¸àÆ® ³»¿ë(content)À» °®´Â´Ù.
ÀÌ °æ¿ì, ³»¿ë ¸ðµ¨(model), ±× ÀÚ½Ä ¿¤·¹¸àÆ®µéÀÇ Çã¿ëµÈ ŸÀÔµéÀ» °üÇÒÇÏ´Â ´Ü¼ø ¹®¹ý°ú, ±×µéÀÌ ³ªÅ¸ ³¯ ¼ö ÀÖ´Â ¼ø¼ÀÇ Á¦ÇÑ»çÇ×À» Æ÷ÇÔÇÑ´Ù.
¹®¹ýÀº ³»¿ë Á¶°¢(cp
: content particle)¿¡ ¸¸µé¸ç, ÀÌ´Â À̸§, ³»¿ë Á¶°¢ÀÇ ¼±Åà ¸ñ·Ï, ¶Ç´Â ³»¿ë Á¶°¢(particle)µéÀÇ ¼ø¼ ¸ñ·Ïµé·Î ±¸¼ºµÈ´Ù:
¿¤·¹¸àÆ® ³»¿ë ¸ðµ¨(Element-content Model) | ||||||||||||||||||||
|
¿©±â¼ °¢ À̸§(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?)> |
±× ŸÀÔÀÇ ¿¤·¹¸àÆ®°¡ ¾î¶² ±ÛÀÚ µ¥ÀÌÅ͸¦ °¡Áú ¼ö ÀÖ°í, ¼±ÅÃÀûÀ¸·Î ÀÚ½Ä(child) ¿¤·¹¸àÆ®(element)µé¿¡ ºÐ»êµÇ¾úÀ¸¸é, ±× ¿¤·¹¸àÆ® ŸÀÔ(type)Àº È¥ÇÕ ³»¿ëÀ» °®´Â´Ù. ÀÌ °æ¿ì, ÀÚ½Ä ¿¤·¹¸àÆ®µéÀÇ Å¸ÀÔÀº Á¦ÇÑ µÉ ¼ö ÀÖÀ¸³ª, ±×µéÀÇ ¼ø¼³ª ³ªÅ¸³ª´Â °¹¼ö´Â Á¦ÇÑ µÉ ¼ö ¾ø´Ù:
È¥ÇÕ ³»¿ë ¼±¾ð(Mixed-content Declaration) | ||||||||||||||||
|
¿©±â¼ À̸§(Name
)µéÀÌ ÀÚ½Ä(child)µé·Î ³ªÅ¸³¯ ¼ö ÀÖ´Â ¿¤·¹¸àÆ® ŸÀÔÀ» Á¦°øÇÑ´Ù.
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ŸÀÔ Áߺ¹¾ø½¿(No Duplicate Types)
°°Àº À̸§ÀÌ ´ÜÀÏ È¥ÇÕ ³»¿ë ¼±¾ð ¾È¿¡¼ ³ªÅ¸³ªÁö ¸»¾Æ¾ß ÇÑ´Ù.
È¥ÇÕ ³»¿ë ¼±¾ð ¿¹Á¦:
<!ELEMENT p (#PCDATA|a|ul|b|i|em)*> |
¿¤·¹¸àÆ®(element)ÀÇ À̸§°ú °ªÀÇ Â¦µéÀ» ¿¬°ü½ÃÅ°±â À§ÇÏ¿© ¾ÖÆ®¸®ºäÆ®(attribute)µéÀÌ »ç¿ëµÈ´Ù. ¾ÖÆ®¸®ºäÆ® ±Ô°ÝµéÀº ½ÃÀÛÅÂ±×¿Í ºó ¿¤·¹¸àÆ® ÅÂ±×µé ¾È¿¡ ¸¸ ³ªÅ¸³¯ ¼ö ÀÖ´Ù; ±×·¡¼, À̵éÀ» ¾Ë±â À§ ÇÑ °ÍÀº 3.1 "½ÃÀÛű×, Á¾·áű×, ºó ¿¤·¹¸àÆ® ű×"¿¡ ±â¼úµÇ¾ú´Ù. ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµéÀº ´ÙÀ½ÀÇ °æ¿ì¿¡ »ç¿ë µÉ ¼ö ÀÖ´Ù:
¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµéÀº ÁÖ¾îÁø ¿¤·¹¸àÆ®(element) ŸÀÔ¿¡¼ °ü·ÃµÈ °¢ ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ À̸§, µ¥ÀÌÅÍ Å¸ÀÔ°ú µðÆúÆ® °ª(ÀÖÀ¸¸é)µéÀ» ÁöÁ¤ÇÑ´Ù:
¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð(Attribute-list Declaration) | ||||||||
|
AttlistDecl
ÄÚµå(rule) ¾ÈÀÇ À̸§(Name
)Àº ¿¤·¹¸àÆ®(element)ÀÇ Å¸ÀÔ(type)ÀÌ´Ù.
»ç¿ëÀÚÀÇ ¼±ÅÃÀ¸·Î, ¼±¾ðÀÌ µÇÁö ¾ÊÀº ¿¤·¹¸àÆ® ŸÀÔÀÇ ¼±¾ðÀÌ ³ªÅ¸³ª¸é, XML ó¸®ÀÚ(processor)´Â °æ°í¸¦ ¹ß»ý ½Ãų ¼ö Àִµ¥, ÀÌ°ÍÀº ¿À·ù°¡ ¾Æ´Ï´Ù.
AttDef
ÄÚµå(rule) ¾ÈÀÇ À̸§(Name
)Àº ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ À̸§ÀÌ´Ù.
ÁÖ¾îÁø ¿¤·¹¸àÆ®(element) ŸÀÔ¿¡ Çϳª ÀÌ»óÀÇ AttlistDecl
ÀÌ ÀÖÀ¸¸é, Á¦°øµÈ ¸ðµç ³»¿ëµéÀº ÅëÇյȴÙ(merge).
ÁÖ¾îÁø ¿¤·¹¸àÆ® ŸÀÔÀÇ °°Àº ¾ÖÆ®¸®ºäÆ®°¡ Çϳª ÀÌ»ó Á¤ÀǵǾúÀ¸¸é, ¸ÕÀú ¼±¾ðÀÌ ÀÛ¿ëµÇ°í ³ªÁß ¼±¾ðµéÀº ¹«½ÃµÈ´Ù.
°øÅë»ç¿ë¼ºÀ» À§ÇÏ¿©, DTD ÀÛ¼ºÀÚ´Â ÁÖ¾îÁø ¿¤·¹¸àÆ® ŸÀÔ¿¡ ¸¹¾Æµµ ÇÑ°³ÀÇ ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðÀ», ÁÖ¾îÁø ¾ÖÆ®¸®ºäÆ® À̸§¿¡ ¸¹¾Æµµ ÇÑ°³ÀÇ ¾ÖÆ®¸®ºäÆ® Á¤ÀǸ¦, ±×¸®°í °¢ ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð ¾È¿¡ Àû¾îµµ ÇÑ°³ÀÇ ¾ÖÆ®¸®ºäÆ® Á¤ÀǸ¦ ¼±Åà ÇÒ ¼ö ÀÖ´Ù.
°øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©, ÁÖ¾îÁø ¿¤·¹¸àÆ® ŸÀÔ¿¡ Çϳª ÀÌ»óÀÇ ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµÇ¾ú°Å³ª, ÁÖ¾îÁø ¾ÖÆ®¸®ºäÆ®¿¡ Çϳª ÀÌ»óÀÇ ¾ÖÆ®¸®ºäÆ® Á¤ÀÇ°¡ µÇ¾úÀ¸¸é, XML ó¸®ÀÚ(processor)´Â »ç¿ëÀÚ ¼±ÅÃÀ¸·Î °æ°í¸¦ ¹ß»ý½Ãų ¼ö ÀÖ°í ÀÌ°ÍÀº ¿À·ù°¡ ¾Æ´Ï´Ù.
XML ¾ÖÆ®¸®ºäÆ® ŸÀԵ鿡´Â ¼¼°¡Áö°¡ Àִ´Ù: ½ºÆ®¸µ ŸÀÔ, ÅäūȵÈ(tokenized) ŸÀÔµéÀÇ ¼¼Æ®, ±×¸®°í ¹øÈ£ºÙÀÎ(enumerated) ŸÀÔµé. ½ºÆ®¸µ ŸÀÔÀº ±× °ªÀ¸·Î ¾î¶°ÇÑ ¸®ÅͶö(literal) ½ºÆ®¸µµµ °¡Áú¼ö ÀÖ°í; ÅäūȵÈ(tokenized) ŸÀÔµéÀº À§¿¡¼ ´Ù·é ¹Ù¿Í °°ÀÌ ¿©·¯ ³»¿ë°ú ¹®¹ýÀû Á¦ÇÑ¿ä¼Ò¸¦ °¡Áú ¼ö ÀÖ´Ù:
¾ÖÆ®¸®ºäÆ® ŸÀÔ(Attribute Types) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: 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) | ||||||||||||||||
|
NOTATION
¾ÖÆ®¸®ºäÆ®´Â ½Ã½ºÅÛ °ú/¶Ç´Â °øÅë(public) ÀνÄÀÚ(identifier)µé°ú °ü·ÃÇÏ¿© DTD¿¡ ¼±¾ðµÇ°í, ±× ¾ÖÆ®¸®ºäÆ®°¡ ÷ºÎµÈ ¿¤·¹¸àÆ®¸¦ Çؼ®(interpreting)Çϴµ¥ »ç¿ëµÇ´Â, ÁÖ¼®(notation)À» ÀνÄ(identify)ÇÑ´Ù.
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ÁÖ¼® ¾ÖÆ®¸®ºäÆ®(Notation Attributes)
ÀÌ Å¸ÀÔÀÇ °ªµéÀº ¼±¾ð¿¡ Æ÷ÇÔµÈ ÇϳªÀÇ ÁÖ¼®(notation) À̸§°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù;
¼±¾ðÀÇ ¸ðµç ÁÖ¼®(notation) À̸§Àº ¼±¾ðµÈ °ÍÀ̾î¾ß ÇÑ´Ù.
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: Enumeration
ÀÌ Å¸ÀÔÀÇ °ªµéÀº ¼±¾ð¿¡ Æ÷ÇÔµÈ ÇϳªÀÇ Nmtoken
ÅäÅ«(token)°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.
°øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©, ´ÜÀÏ ¿¤·¹¸àÆ®ÀÇ ¹øÈ£ºÙÀÎ(enumerated) ¾ÖÆ®¸®ºäÆ® ŸÀÔ¿¡¼ °°Àº Nmtoken
Àº ³ªÅ¸³ªÁö ¸»¾Æ¾ß ÇÑ´Ù.
¾ÖÆ®¸®ºäÆ® ¼±¾ðÀº ¾ÖÆ®¸®ºäÆ®(attribute)°¡ ÀÖÀ» Çʿ伺ÀÌ Àִ°¡, ¾Æ´Ï¸é, ¹®¼¿¡ ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ®°¡ ¾øÀ¸¸é ¾î¶»°Ô XML ó¸®ÀÚ(processor)°¡ ¹ÝÀÀÇÏ¿©¾ß Çϴ°¡ÀÇ Á¤º¸¸¦ Á¦°øÇÑ´Ù.
¾ÖÆ®¸®ºäÆ® µðÆúÆ®(Attribute Defaults) | ||||||||||||||||||||||||||||
|
¾ÖÆ®¸®ºäÆ®(attribute) ¼±¾ð¿¡¼, #REQUIRED
´Â ¾ÖÆ®¸®ºäÆ®°¡ Ç×»ó Á¦°øµÇ¾î¾ß ÇÏ°í, #IMPLIED
´Â µðÆúÆ® °ªÀÌ ¾ø´Â °ÍÀ» ÀǹÌÇÑ´Ù.
¸¸ÀÏ ¼±¾ðÀÌ #REQUIRED
³ª #IMPLIED
°¡ ¾Æ´Ï¸é, AttValue
°ªÀº ¼±¾ðµÈ µðÆúÆ® °ªÀ» °®´Â´Ù;
#FIXED
Å°¿öµå(keyword)´Â ¾ÖÆ®¸®ºäÆ®°¡ Ç×»ó µðÆúÆ® °ªÀ» °¡Á®¾ß ÇÑ´Ù´Â °ÍÀ» ±â¼úÇÑ´Ù.
µðÆúÆ® °ªÀÌ ¼±¾ðµÇ¾úÀ¸¸é, XML ó¸®ÀÚ(processor)°¡ »ý·«µÈ ¾ÖÆ®¸®ºäÆ®¸¦ ¸¸³µÀ» ¶§, µðÆúÆ® °ªÀÌ ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ®°¡ ÀÖ´Â °Í ó·³ ÇൿÇÑ´Ù.
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: ÇÊ¿äÇÑ ¾ÖÆ®¸®ºäÆ®(Required Attribute)
µðÆúÆ® ¼±¾ðÀÌ Å°¿öµå #REQUIRED
À̸é, ¾ÖÆ®¸®ºäÆ®´Â ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð ¾È ±× ŸÀÔÀÇ ¸ðµç ¿¤·¹¸àÆ®¿¡ ÁöÁ¤µÇ¾î¾ß ÇÑ´Ù.
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: À¯È¿ÇÑ ¾ÖÆ®¸®ºäÆ® µðÆúÆ®(Attribute Default Legal)
¼±¾ðµÈ µðÆúÆ® °ªÀº ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ® ŸÀÔÀÇ Á¦ÇÑ¿ä¼ÒÀ» ¸¸Á·½ÃÄÑ¾ß ÇÑ´Ù.
À¯È¿¼º Á¦ÇÑ¿ä¼Ò: °íÁ¤µÈ ¾ÖÆ®¸®ºäÆ® µðÆúÆ®(Fixed Attribute Default)
¸¸ÀÏ ¾ÖÆ®¸®ºäÆ®°¡ #FIXED
Å°¿öµå·Î ¼±¾ðµÈ µðÆúÆ® °ªÀ» °¡Áö°í ÀÖÀ¸¸é, ¾ÖÆ®¸®ºäÆ®ÀÇ ÀνºÅº½º(instance)´Â ±× µðÆúÆ® °ª°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.
¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ð ¿¹Á¦:
<!ATTLIST termdef |
¾ÖÆ®¸®ºäÆ®(attribute) °ªÀÌ Àû¿ë(application)¿¡ Àü´ÞµÇ°Å³ª À¯È¿¼ºÀÌ Á¡°ËµÇ±â Àü¿¡, XML ó¸®ÀÚ(processor)´Â ¾Æ·¡¿Í °°ÀÌ Á¤»óÈ ÇÏ¿©¾ß ÇÑ´Ù:
¸¸ÀÏ ±× ¼±¾ðµÈ °ªÀÌ CDATA °¡ ¾Æ´Ï¸é, XML ó¸®ÀÚ(processor)´Â, ¸Ç ¾Õ°ú µÚÀÇ °ø¹é(#x20) ±ÛÀÚµéÀ» Á¦°ÅÇÏ°í, ¿¬¼Ó °ø¹é(#x20) ±ÛÀÚµéÀ» ´ÜÀÏ °ø¹é(#x20) ±ÛÀÚ·Î ±³Ã¼ÇÏ´Â, Ãß°¡ÀûÀÎ ¾ÖÆ®¸®ºäÆ® °ªÀÇ Á¤»óÈ °úÁ¤À» °ÅÃÄ¾ß ÇÑ´Ù.
¼±¾ðÀÌ ¾ø´Â ¸ðµç ¾ÖÆ®¸®ºäÆ®µéÀº À¯È¿¼ºÀ» °ËÁ¤ ¾Ê´Â Çؼ®ÀÚ(parser)¿¡ ÀÇÇÏ¿© CDATA
°¡ ¼±¾ðµÈ °Í ó·³ Ãë±Þ µÇ¾î¾ß ÇÑ´Ù.
Á¶°ÇºÎ Ç׸ñ(conditional section)Àº, ±×µéÀ» ´Ù·ç´Â Å°¿öµå(keyword)¿¡ ±âÃÊÇÑ DTDÀÇ ³í¸®Àû ±¸Á¶¿¡ Æ÷ÇԵǰųª Á¦¿ÜµÈ, ¹®¼ ŸÀÔ ¼±¾ð ¿ÜºÎÀû ÇϺμ¼Æ®ÀÇ ºÎºÐµéÀÌ´Ù.
Á¶°ÇºÎ Ç׸ñ(Conditional Section) | ||||||||||||||||||||
|
³»ºÎÀû°ú ¿ÜºÎÀû DTD ÇϺμ¼Æ®(subset)µé°ú ¸¶Âù°¡Áö·Î, Á¶°ÇºÎ Ç׸ñ(conditional section)Àº ÇÑ°³ ȤÀº ±× ÀÌ»óÀÇ ¿ÏÀüÇÑ ¼±¾ð, ÄÚ¸àÆ®, ó¸®Áö½Ã(processing instruction) ¶Ç´Â ³×½ºÆ®(nest) µÈ Á¶°ÇºÎ Ç׸ñµé, °ø¹é°ú È¥ÇÕµéÀ» Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù.
¸¸ÀÏ Á¶°ÇºÎ Ç׸ñÀÇ Å°¿öµå(keyword)°¡ INCLUDE
À̸é, Á¶°ÇºÎ Ç׸ñÀÇ ³»¿ë(content)Àº DTDÀÇ ºÎºÐÀÌ´Ù.
Á¶°ÇºÎ Ç׸ñÀÇ Å°¿öµå°¡ IGNORE
À̸é, Á¶°ÇºÎ Ç׸ñÀÇ ³»¿ëÀº ³í¸®ÀûÀ¸·Î DTDÀÇ ºÎºÐÀÌ ¾Æ´Ï´Ù.
¿Ã¹Ù¸¥ Çؼ®(parsing)À» À§ÇÏ¿©, Á¶°ÇºÎ Ç׸ñµéÀÇ ³×½ºÆ®¸¦ ¾Ë¾Æ³»°í, (¹«½ÃµÈ) Á¶°ÇºÎ Ç׸ñÀÇ °¨ÁöµÈ °¡Àå ¹ÛÀÇ ³¡À» È®ÀÎÇϱâ À§ÇÏ¿©, ¹«½ÃµÈ Á¶°ÇºÎ Ç׸ñÀÇ ³»¿ëµé ±îÁöµµ Àоî¾ß ÇÑ´Ù´Â Á¡¿¡ ÁÖÀÇÇ϶ó.
¸¸ÀÏ Á¶°ÇºÎ Ç׸ñÀÌ Å°¿öµå INCLUDE
°¡, Å°¿öµå IGNORE
¸¦ °®´Â ´õ Å« Á¶°ÇºÎ Ç׸ñ ¾È¿¡ ³ªÅ¸³ª¸é, ¿ÜºÎ¿Í ³»ºÎ Á¶°ÇºÎ Ç׸ñµéÀÌ µÑ ´Ù ¹«½ÃµÈ´Ù.
¸¸ÀÏ Á¶°ÇºÎ Ç׸ñÀÇ Å°¿öµå°¡ ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼¸¦ ÂüÁ¶À̸é, ó¸®ÀÚ(processor)°¡ ±× Á¶°ÇºÎ Ç׸ñ(conditional section)À» Æ÷ÇÔ ÇÒ °ÍÀΰ¡ ¹«½Ã ÇÒ °ÍÀΰ¡¸¦ °áÁ¤Çϱâ Àü¿¡, ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼´Â ±× ³»¿ë(content)À¸·Î ´ëüµÇ¾î¾ß ÇÑ´Ù.
¿¹Á¦:
<!ENTITY % draft 'INCLUDE' > |
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)µéÀ» Â÷ÁöÇÑ´Ù; °°Àº À̸§ÀÇ ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼¿Í ÀÏ¹Ý ¿£Æ¼Æ¼´Â ¼·Î ´Ù¸¥ ¿£Æ¼Æ¼µéÀÌ´Ù.
±ÛÀÚ ÂüÁ¶´Â ISO/IEC 10646 ±ÛÀÚ ¼¼Æ®ÀÇ Æ¯Á¤ ±ÛÀÚ¸¦ ÂüÁ¶ÇÑ´Ù. ¿¹¸¦ µé¸é ÀÔ·ÂÀåÄ¡µé¿¡¼ Á÷Á¢ÀûÀ¸·Î »ç¿ë ÇÒ ¼ö ¾ø´Â ±ÛÀÚ¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ´Ù.
±ÛÀÚ ÂüÁ¶(Character Reference) | ||||||||||
|
Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¿Ã¹Ù¸¥(legal) ±ÛÀÚ
±ÛÀÚ ÂüÁ¶¸¦ »ç¿ëÇÏ¿© ÂüÁ¶µÈ ±ÛÀÚµéÀº Char »ý¼º¹°°ú ÀÏÄ¡ÇÏ¿©¾ß ÇÑ´Ù.
¸¸ÀÏ ±ÛÀÚ ÂüÁ¶°¡ "&#x
"À¸·Î ½ÃÀÛÇÏ°í, ¼ýÀÚ(digit)³ª ±ÛÀÚ(letter)µé, ±×¸®°í ;
·Î Á¾·áµÇ¸é, ISO/IEC 10646ÀÇ ±ÛÀÚµé ÄÚµå Æ÷ÀÎÆ®ÀÇ 16Áø¼ö Ç¥ÇöÀÌ µÈ´Ù.
¸¸ÀÏ "&#
" ¸¸À¸·Î ½ÃÀ۵ǰí, ¼ýÀÚ, ±×¸®°í ;
·Î Á¾·áµÇ¸é, ±ÛÀÚµé ÄÚµå Æ÷ÀÎÆ®ÀÇ 10Áø¼ö Ç¥ÇöÀÌ µÈ´Ù.
¿£Æ¼Æ¼(entity) ÂüÁ¶´Â À̸§ ºÙ¿©Áø(named) ¿£Æ¼Æ¼ÀÇ ³»¿ëÀ» ÂüÁ¶ÇÑ´Ù.
Çؼ®(parse)µÈ ÀÏ¹Ý ¿£Æ¼Æ¼ÀÇ ÂüÁ¶´Â ¾ÚÆÛ»÷µå(&
)¿Í ½ê¹ÌÄÝ·Ð (;
)À» ±¸ºÐÀÚ(delimiter)·Î »ç¿ëÇÑ´Ù.
ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ ÂüÁ¶´Â ¹éºÐÀ² ±âÈ£ (%
)¿Í ½ê¹ÌÄÝ·Ð (;
)À» ±¸ºÐÀÚ(delimiter)·Î »ç¿ëÇÑ´Ù.
¿£Æ¼Æ¼ ÂüÁ¶(Entity Reference) | ||||||||||||||||||||||||||||||||||||||||||||||
|
Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ×: ¼±¾ðµÈ ¿£Æ¼Æ¼(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> (<) to save options. |
ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) ÂüÁ¶ ¿¹Á¦:
<!-- declare the parameter entity "ISOLat2"... --> |
¿£Æ¼Æ¼(entity)µéÀº ´ÙÀ½°ú °°ÀÌ ¼±¾ðµÈ´Ù:
¿£Æ¼Æ¼ ¼±¾ð(Entity Declaration) | ||||||||||||||||||||
|
Name
Àº ¿£Æ¼Æ¼ ÂüÁ¶¿¡ ÀÖ´Â ¿£Æ¼Æ¼, ¶Ç´Â, Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼(entity)ÀÇ °æ¿ì, ENTITY
ȤÀº ENTITIES
¾ÖÆ®¸®ºäÆ® °ªÀ» ÀνÄ(identify)ÇÑ´Ù.
¸¸ÀÏ °°Àº ¿£Æ¼Æ¼°¡ Çѹø ÀÌ»ó ¼±¾ðµÇ¾úÀ¸¸é, ¸ÕÀú ¸¸³ ¼±¾ðÀÌ Àû¿ëµÈ´Ù; »ç¿ëÀÚ ¼±ÅÃÀ¸·Î, XML ó¸®ÀÚ(processor)´Â ¸¸ÀÏ ¿£Æ¼Æ¼(entity) ¿©·¯¹ø ¼±¾ðµÇ¾úÀ¸¸é °æ°í¸¦ ¹ß»ý½Ãų ¼ö ÀÖ´Ù.
¸¸ÀÏ ¿£Æ¼Æ¼ Á¤ÀÇ°¡ EntityValue
À̸é, ±× Á¤ÀÇµÈ ¿£Æ¼Æ¼(entity)¸¦ ³»ºÎÀû ¿£Æ¼Æ¼¶ó ºÎ¸¥´Ù.
º°µµÀÇ ¹°¸®Àû ÀúÀå ¿ÀºêÁ§Æ®(object)°¡ ÀÖÁö ¾Ê°í, ¿£Æ¼Æ¼ ³»¿ë(content)Àº ¼±¾ð¿¡ ÁÖ¾îÁø´Ù.
ÀϺΠ¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ªÀÇ ¿£Æ¼Æ¼¿Í ±ÛÀÚ ÂüÁ¶ 󸮴 ¿Ã¹Ù¸¥ ±³Ã¼ ÅؽºÆ®¸¦ ¸¸µå´Âµ¥ ÇÊ¿ä ÇÒ ¼ö ÀÖ´Ù´Â Á¡¿¡ À¯ÀÇÇ϶ó: 4.5 "³»ºÎÀû ¿£Æ¼Æ¼ ±³Ã¼ ÅؽºÆ®ÀÇ ±¸¼º"À» Âü°íÇ϶ó.
ÇϳªÀÇ ³»ºÎÀû ¿£Æ¼Æ¼´Â Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)ÀÌ´Ù.
³»ºÎÀû ¿£Æ¼Æ¼ ¼±¾ð ¿¹Á¦:
<!ENTITY Pub-Status "This is a pre-release of the |
¸¸ÀÏ ¿£Æ¼Æ¼(entity)°¡ ³»ºÎÀûÀÌ ¾Æ´Ï¸é, ¾Æ·¡¿Í °°ÀÌ ¼±¾ðµÈ ¿ÜºÎÀû ¿£Æ¼Æ¼ÀÌ´Ù:
¿ÜºÎÀû ¿£Æ¼Æ¼ ¼±¾ð(External Entity Declaration) | ||||||||||||||
|
¸¸ÀÏ 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 |
¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)´Â °¢°¢ ÅؽºÆ® ¼±¾ðÀ¸·Î ½ÃÀÛ µÉ ¼ö ÀÖ´Ù.
ÅؽºÆ® ¼±¾ð(Text Declaration) | ||||
|
ÅؽºÆ® ¼±¾ðÀº Çؼ®µÈ ¿£Æ¼Æ¼¸¦ ÂüÁ¶ÇÏ´Â °ÍÀÌ ¾Æ´Ï¶ó ¸®ÅͶö(literal)·Î Á¦°øµÇ¾î¾ß ÇÑ´Ù. ÅؽºÆ® ¼±¾ðÀº ¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼ÀÇ ½ÃÀÛ ºÎºÐ ÀÌ¿ÜÀÇ À§Ä¡¿¡´Â ³ª¿Ã ¼ö ¾ø´Ù.
¹®¼ ¿£Æ¼Æ¼´Â, ÀÌ°ÍÀÌ ¶óº§µÈ(labeled) document
ÀÇ »ý¼º¹°°ú ÀÏÄ¡Çϸé, Àß Çü¼ºµÈ °ÍÀÌ´Ù.
¿ÜºÎÀû ÀϹÝÀû(general) Çؼ®(parse)µÈ ¿£Æ¼Æ¼´Â, ÀÌ°ÍÀÌ ¶óº§µÈ extParsedEnt
ÀÇ »ý¼º¹°°ú ÀÏÄ¡Çϸé, Àß Çü¼ºµÈ °ÍÀÌ µÈ´Ù.
¿ÜºÎÀû ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼´Â, ÀÌ°ÍÀÌ ¶óº§µÈ extPE
ÀÇ »ý¼º¹°°ú ÀÏÄ¡Çϸé, Àß Çü¼ºµÈ °ÍÀÌ µÈ´Ù.
Àß Çü¼ºµÈ ¿ÜºÎÀû Çؼ®µÈ ¿£Æ¼Æ¼(Well-Formed External Parsed Entity) | ||||||||
|
³»ºÎÀû ÀϹÝÀû(general) Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity)´Â, ±×ÀÇ ±³Ã¼ ÅؽºÆ®°¡ ¶óº§µÈ ³»¿ë(content)
ÀÇ »ý¼º¹°°ú ÀÏÄ¡Çϸé, Àß Çü¼ºµÈ °ÍÀÌ µÈ´Ù.
¸ðµç ³»ºÎÀû ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼´Â Á¤ÀÇ¿¡ ÀÇÇØ Àß Çü¼ºµÈ °ÍÀÌ µÈ´Ù.
¿£Æ¼Æ¼°¡ Àß Çü¼ºµÇ¾ú´Ù´Â °ÍÀº XML ¹®¼ÀÇ ³í¸®Àû, ¹°¸®Àû ±¸Á¶°¡ ÀûÁ¤ÇÏ°Ô ³×½ºÆ®(nest)µÇ¾ú´Ù´Â °ÍÀÌ´Ù; ½ÃÀÛű×, Á¾·áű×, ºó ¿¤·¹¸àÆ® ű×, ¿¤·¹¸àÆ®(element), ÄÚ¸àÆ®(comment), ó¸®Áö½Ã(processing instruction), ±ÛÀÚ ÂüÁ¶, ¶Ç´Â ¿£Æ¼Æ¼ ÂüÁ¶°¡ ÇÑ ¿£Æ¼Æ¼¿¡¼ ½ÃÀÛµÇ°í ´Ù¸¥ °Í¿¡¼ Á¾·á µÉ ¼ö ¾ø´Ù´Â °ÍÀÌ´Ù.
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) | ||||||||||
|
¹®¼ ¿£Æ¼Æ¼¿¡¼, ¿£ÄÚµù(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 ó¸®ÀÚ°¡ ÃëÇØ¾ß ÇÒ ÇàÀ§µîÀÇ ¹®¸ÆµéÀ» ¿ä¾àÇÑ °ÍÀÌ´Ù. °¡Àå ¿ÞÂÊ Ä÷³ÀÇ ¶óº§Àº ¾Ë·ÁÁø ¹®¸ÆÀ» ±â¼úÇÏ¿´´Ù:
content
¿¡ ÇØ´ç.
AttValue
¿¡ ÇØ´ç.Name
À¸·Î ŸÀÔÀÌ ENTITY
·Î ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ °ªÀ¸·Î ¶Ç´Â ŸÀÔÀÌ ENTITIES
·Î ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ °ªÀ¸·Î ÇϳªÀÇ °ø°£À¸·Î ºÐ¸®µÈ ÅäÅ«(token)µé·Î ³ªÅ¸³ª´Â °Í.EntityValue
¿¡ ÇØ´ç.EntityValue
¶Ç´Â AttValue
ÀÇ ¿ÜºÎ.¿£Æ¼Æ¼ ŸÀÔ | ±ÛÀÚ | ||||
ÆĶó¸ÞÅÍ(parameter) | ³»ºÎÀû General | ¿ÜºÎÀû Çؼ®µÈ General | Çؼ®(parse) ¾ÈµÈ | ||
³»¿ë ÂüÁ¶ | ÀÎ½Ä ¸øÇÔ | Æ÷ÇÔ | Æ÷ÇÔµÈ if À¯È¿¼º °ËÁ¤ | ±ÝÁöµÈ | Æ÷ÇÔ |
¾ÖÆ®¸®ºäÆ® °ª ÂüÁ¶ | ÀÎ½Ä ¸øÇÔ | ¸®ÅͶö¿¡ Æ÷ÇÔ | ±ÝÁöµÈ | ±ÝÁöµÈ | Æ÷ÇÔ |
¾ÖÆ®¸®ºäÆ® °ªÀ¸·Î ³ªÅ¸³² | ÀÎ½Ä ¸øÇÔ | ±ÝÁöµÈ | ±ÝÁöµÈ | ¾Ë¸² | ÀÎ½Ä ¸øÇÔ |
¿£Æ¼Æ¼ °ª ÂüÁ¶ | ¸®ÅͶö¿¡ Æ÷ÇÔ | Åë°ú | Åë°ú | ±ÝÁöµÈ | Æ÷ÇÔ |
DTD ÂüÁ¶ | PE·Î Æ÷ÇÔµÈ | ±ÝÁöµÈ | ±ÝÁöµÈ | ±ÝÁöµÈ | ±ÝÁöµÈ |
DTD ¿ÜºÎ¿¡¼, %
±ÛÀڴ Ưº°ÇÑ Àǹ̸¦ °®Áö ¸øÇÑ´Ù;
±×·¡¼, DTD¿¡¼ ÂüÁ¶ÇÏ´Â ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity)¸¦ content
¾È¿¡ ÄÚµå(markup)·Î ÀνÄÇÏÁö ¸øÇÑ´Ù.
ÀÌ¿Í À¯»çÇÏ°Ô, ÀûÁ¤ÇÏ°Ô ¼±¾ðµÈ ¾ÖÆ®¸®ºäÆ®(attribute)ÀÇ °ªÀ¸·Î ³ªÅ¸³ªÁö ¾Ê´Â ÇÑ, Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼ À̸§µéÀÌ ÀνĵÇÁö ¸øÇÑ´Ù.
¿£Æ¼Æ¼(entity)°¡, ÂüÁ¶°¡ ÀÎ½ÄµÈ Àå¼Ò¿¡¼ ±× ¹®¼ÀÇ ÀϺκÐÀÎ °Í ó·³ ÂüÁ¶ ±× ÀÚ¸®¿¡¼, ±× ±³Ã¼ ÅؽºÆ®°¡ ÀÐÇôÁö°í 󸮵Ǹé, Æ÷ÇԵȴÙ.
±³Ã¼ ÅؽºÆ®´Â ±ÛÀÚ µ¥ÀÌÅÍ¿Í (ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ Á¦¿Ü) ÄÚµå(markup)¸¦ Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù.
¿©±â¼ ÄÚµå´Â, »ç¿ëµÈ ¿£Æ¼Æ¼(entity)µéÀÇ ±³Ã¼ ÅؽºÆ®°¡ ÄÚµå ±¸ºÐÀÚµé(¿£Æ¼Æ¼ amp
, lt
, gt
, apos
, quot
)·Î ¿¡½ºÄÉÀÔ(escape)ÇÏ´Â °æ¿ì¸¦ Á¦¿ÜÇÏ°í´Â Ç×»ó µ¥ÀÌÅͷΠ󸮵ȴٴ °Í ÀÌ¿Ü¿¡´Â, º¸Åë ¹æ½ÄÀ¸·Î ÀνĵǾî¾ß ÇÑ´Ù.
(½ºÆ®¸µ "AT&T;
"´Â "AT&T;
"·Î È®ÀåµÇ°í, ³ª¸ÓÁö ¾ÚÆÛ»÷µå´Â ¿£Æ¼Æ¼-ÂüÁ¶ ±¸ºÐÀÚ·Î ÀνÄÇÏÁö ¸øÇÑ´Ù.)
ÇÑ ±ÛÀÚ ÂüÁ¶´Â ÁöÁ¤µÈ ±ÛÀÚ°¡ ±× ÂüÁ¶ ÀÚüÀÇ ÀÚ¸®¿¡¼ 󸮵Ǹé Æ÷ÇÔµÈ °ÍÀÌ´Ù.
XML ó¸®ÀÚ(processor)°¡ Çؼ®(parse)µÈ ¿£Æ¼Æ¼(entity) ÂüÁ¶¸¦ ÀνÄÇϸé, ±× ¹®¼ÀÇ À¯È¿¼º °ËÁ¤(validate)À» À§ÇÏ¿©, ó¸®ÀÚ´Â ±× ±³Ã¼ ÅؽºÆ®¸¦ Æ÷ÇÔ(include)ÇÏ¿©¾ß ÇÑ´Ù. ¸¸ÀÏ ¿£Æ¼Æ¼°¡ ¿ÜºÎÀûÀÌ°í, ó¸®ÀÚ°¡ XML ¹®¼ À¯È¿¼º °ËÁ¤À» ½ÃµµÇÏÁö ¾ÊÀ¸¸é, ±× ó¸®ÀÚ(processor)´Â, ÇÊ¿ä»çÇ×Àº ¾Æ´ÏÁö¸¸, ¿£Æ¼Æ¼(entity)ÀÇ ±³Ã¼ ÅؽºÆ®¸¦ Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù. ¸¸ÀÏ À¯È¿¼º °ËÁ¤ÇÏÁö ¾Ê´Â Çؼ®ÀÚ(parser)°¡ ±³Ã¼ ÅؽºÆ®¸¦ Æ÷ÇÔÇÏÁö ¾ÊÀ¸¸é, Àû¿ë(application)¿¡°Ô ÀÎ½ÄµÈ ¿£Æ¼Æ¼¸¦ ¾Ë·Á ÁÖ¾î¾ß ÇÏÁö¸¸, ÀÐÁö´Â ¾Ê´Â´Ù.
ÀÌ ±ÔÄ¢Àº, ÀÚµ¿ Æ÷ÇÔÀÌ SGML¿¡ ÀÇÇÏ¿© Á¦°øµÇ°í, XML ¿£Æ¼Æ¼ ±â±¸(mechanism)°¡ ¿øõÀûÀ¸·Î ÆíÁýÀÇ ¸ðµâ¼ºÀ» Áö¿øÇϱâ À§ÇÏ¿© ¼³°èµÇ°í, ´Ù¸¥ Àû¿ëµé(±¸Ã¼ÀûÀÎ ¿¹·Î ¹®¼ ºê¶ó¿ì¡)¿¡ Àû´çÇÏÁö ¾ÊÀ» ¼ö ÀÖ´Ù´Â, ÀνÄÀ» ±âÃÊ·Î ÇÑ °ÍÀÌ´Ù. ¿¹¸¦ µé¾î, ¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼ ÂüÁ¶¸¦ ¸¸³ª¸é, ºê¶ó¿ìÀúµéÀº, ¿£Æ¼Æ¼ÀÇ Á¸À縦 º¸ÀÌ°í, Àоî, ¿ä±¸¿¡ ÀÇÇؼ ¸¸ µð½ºÇ÷¹ÀÌÇÏ´Â, ¼±ÅÃÀ» ÇÒ ¼ö ÀÖ´Ù.
¾Æ·¡´Â ±ÝÁöµÈ »çÇ×µéÀÌ°í Ä¡¸íÀû(fatal) ¿À·ùµéÀ» ±¸¼ºÇÑ´Ù:
EntityValue
³ª AttValue
ÀÌ¿ÜÀÇ °÷¿¡¼ DTD¿¡¼ ±ÛÀÚ ¶Ç´Â ÀϹÝ(general) ¿£Æ¼Æ¼(entity) ÂüÁ¶ÇÏ´Â °Í.¾ÖÆ®¸®ºäÆ® °ª¿¡ ¿£Æ¼Æ¼ ÂüÁ¶°¡ ³ªÅ¸³ª°Å³ª, ¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ª¿¡ ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ ÂüÁ¶°¡ ³ªÅ¸³ª¸é, ±³Ã¼ ÅؽºÆ® ¾ÈÀÇ ´ÜÀÏ ¶Ç´Â ÀÌÁß µû¿ÈÇ¥ ±ÛÀÚ´Â Ç×»ó Á¤»ó µ¥ÀÌÅÍ ±ÛÀڷΠ󸮵ǰí, ¸®ÅͶöÀ» Á¾·á½ÃÅ°Áö ¾Ê´Â´Ù´Â °ÍÀ» Á¦¿ÜÇÏ°í´Â, ±× ±³Ã¼ ÅؽºÆ®°¡ ±× ¹®¼ÀÇ ºÎºÐÀÎ °Í ó·³ ÀÎ½ÄµÈ ÂüÁ¶ÀÇ À§Ä¡¿¡¼ 󸮵ȴÙ:
Àß Çü¼ºµÈ ¿¹Á¦:
<!ENTITY % YN '"Yes"' > |
±×·¸Áö ¾ÊÀº ¿¹Á¦:
<!ENTITY EndAttr "27'" > |
Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼(entity)ÀÇ À̸§ÀÌ ¼±¾ðµÈ ŸÀÔ ENTITY
¶Ç´Â ENTITIES
ÀÇ ¾ÖÆ®¸®ºäÆ®(attribute) °ª¿¡ ÅäÅ«(token)À¸·Î ³ªÅ¸³ª¸é, À¯È¿¼º °ËÁ¤ ó¸®ÀÚ(processor)´Â ½Ã½ºÅÛ(system) Àû¿ë(application)°ú °øÅë(public: ÀÖÀ¸¸é) ÀνÄÀÚ(identifier)µé¿¡°Ô, ¿£Æ¼Æ¼¿Í ±× °ü·ÃµÈ ÁÖ¼®(notation)À» ¾Ë·Á ÁÖ¾î¾ß ÇÑ´Ù.
¿£Æ¼Æ¼ ¼±¾ð¿¡¼ EntityValue
¿¡ ÀÏ¹Ý ¿£Æ¼Æ¼ ÂüÁ¶°¡ ³ªÅ¸³ª¸é, ±×´ë·Î ³öµÎ°í Åë°úÇÑ´Ù.
¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼¿¡¼¿Í ¸¶Âù°¡Áö·Î, ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity)´Â Æ÷ÇÔµÈ if À¯È¿¼º °ËÁ¤À» ÇÒ ¶§ ¸¸ ÇÊ¿äÇÏ´Ù. DTD¿¡¼ ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ ÂüÁ¶°¡ Àνĵǰí, Æ÷ÇԵǸé, ±× ±³Ã¼ ÅؽºÆ®´Â ¾Õ°ú µÚ¿¡ °¢ ÇÑ°³ÀÇ °ø¹é(#x20) ±ÛÀÚ¸¦ ÷ºÎÇÏ¿© È®ÀåµÈ´Ù; ±× Àǵµ´Â ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity)ÀÇ ±³Ã¼ ÅؽºÆ®¿¡ DTD ¹®¹ýÀû Á¤¼ö ¼öÄ¡ ÅäÅ«À» ¹æÁöÇϱâ À§ÇÑ °ÍÀÌ´Ù.
³»ºÎÀû ¿£Æ¼Æ¼ÀÇ Ã³¸®¸¦ ´Ù·ç´Âµ¥, µÎ°¡Áö ¾ç½ÄÀÇ ¿£Æ¼Æ¼ °ªµéÀ» ±¸º°ÇÏ´Â °ÍÀÌ À¯¿ëÇÏ´Ù.
¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ªÀº ¿£Æ¼Æ¼(entity) ¼±¾ð¿¡¼ ½ÇÁ¦ÀûÀ¸·Î µû¿ÈÇ¥ ¾ÈÀÇ ½ºÆ®¸µÀ¸·Î ºñ Å͹̳¯ EntityValue
¿¡ ÇØ´çÇÑ´Ù.
±³Ã¼ ÅؽºÆ®´Â, ±ÛÀÚ ÂüÁ¶¿Í ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼ ÂüÁ¶ ±³Ã¼(replacement) ÀÌÈÄ¿¡´Â, ¿£Æ¼Æ¼ÀÇ ³»¿ëÀÌ´Ù.
³»ºÎÀû ¿£Æ¼Æ¼ ¼±¾ð¿¡¼(EntityValue
) ÁÖ¾îÁø
¸®ÅͶö(literal) ¿£Æ¼Æ¼ °ªÀº ±ÛÀÚ, ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼¿Í ÀÏ¹Ý ¿£Æ¼Æ¼ ÂüÁ¶µéÀ» Æ÷ÇÔ ÇÒ ¼ö ÀÖ´Ù.
ÀÌ¿Í°°Àº ÂüÁ¶´Â ¿ÏÀüÈ÷ ¸®ÅͶö ¿£Æ¼Æ¼(entity) °ª ¾È¿¡ Æ÷ÇԵǾî¾ß ÇÑ´Ù.
À§¿¡ ¼³¸íµÈ ¹Ù¿Í °°Àº Æ÷ÇÔµÈ ½ÇÁ¦ÀûÀÎ ±³Ã¼ ÅؽºÆ®´Â ÂüÁ¶µÈ ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼ÀÇ ±³Ã¼ ÅؽºÆ®¸¦ Æ÷ÇÔÇÏ¿©¾ß Çϸç, ÂüÁ¶µÈ ±ÛÀÚ
¸®ÅͶö ¿£Æ¼Æ¼ °ª ¾È¿¡ ÂüÁ¶ÇÏ´Â ±ÛÀÚ ÂüÁ¶¸¦ Æ÷ÇÔÇÏ¿©¾ß ÇÑ´Ù;
±×·¯³ª, ÀÏ¹Ý ¿£Æ¼Æ¼ ÂüÁ¶´Â È®Àå ¾ÈµÈ »óÅ·Π±×´ë·Î ÀÖ¾î¾ß ÇÑ´Ù.
¿¹¸¦ µé¾î, ¾Æ·¡ ¼±¾ðÀ» º¸ÀÚ:
<!ENTITY % pub "Éditions Gallimard" > |
¿£Æ¼Æ¼ ±³Ã¼ ÅؽºÆ® "book
"˼:
La Peste: Albert Camus, |
ÀÏ¹Ý ¿£Æ¼Æ¼(entity) ÂüÁ¶ "&rights;
"´Â, ¹®¼ÀÇ ³»¿ë(content) ¶Ç´Â ¾ÖÆ®¸®ºäÆ® °ª¿¡ ³ªÅ¸³ª´Â "&book;
"ÀÇ ÂüÁ¶·Î, È®Àå µÉ °ÍÀÌ´Ù.
ÀÌµé ´Ü¼øÇÑ ±ÔÄ¢µéÀº º¹ÇÕ ÀÛ¿ëµéÀ» ÇÒ ¼ö ÀÖ´Ù; ¾î·Á¿î ¿¹Á¦ÀÇ ÀÚ¼¼ÇÑ »çÇ×Àº D. "¿£Æ¼Æ¼¿Í ±ÛÀÚ ÂüÁ¶ÀÇ È®Àå(expansion)"À» º¸¶ó.
¿£Æ¼Æ¼¿Í ±ÛÀÚ ÂüÁ¶´Â µÑ ´Ù ¿ÞÂÊ ²©¼â(<), ¾ÚÆÛ»÷µå(&)¿Í ´Ù¸¥ ±¸ºÐÀÚ(delimiter)µéÀ» ¿¡½ºÄÉÀÔ(escape)ÇÏ¿© »ç¿ë µÉ ¼ö ÀÖ´Ù.
ÀÏ·ÃÀÇ ÀϹÝ(general) ¿£Æ¼Æ¼(amp
, lt
, gt
, apos
, quot
)´Â ÀÌ¿Í°°Àº ¸ñÀûÀ¸·Î ÁöÁ¤µÇ¾ú´Ù.
¼ýÄ¡(numeric) ±ÛÀÚ ÂüÁ¶µµ »ç¿ë µÉ ¼ö ÀÖ´Ù;
À̵éÀº ÀνĵǴ Áï½Ã È®ÀåµÇ°í, ±ÛÀÚ µ¥ÀÌÅÍ·Î Ãë±ÞµÇ¾î¾ß ÇÑ´Ù.
±×¸®¼ ¼ýÄ¡ ±ÛÀÚ ÂüÁ¶ "<
"¿Í "&
"´Â ±ÛÀÚ µ¥ÀÌÅÍ¿¡ ³ªÅ¸³ª¸é '<
'¿Í '&
'¸¦ ¿¡½ºÅ×ÀÔ(escape)ÇÏ¿© »ç¿ë µÉ ¼ö ÀÖ´Ù.
¸ðµç XML ó¸®ÀÚ(processor)µéÀº ÀÌµé ¿£Æ¼Æ¼(entity)µéÀÌ ¼±¾ðµÈ °ÍÀΰ¡ ¾Æ´Ñ°¡¸¦ ÀνÄÇÏ¿©¾ß ÇÑ´Ù. °øÅë»ç¿ë¼º(interoperability)À» À§ÇÏ¿©, À¯È¿ÇÑ(valid) XML ¹®¼µéÀº ÀÌµé ¿£Æ¼Æ¼(entity)µéÀÌ, ´Ù¸¥ °Íµé°ú ¸¶Âù°¡Áö·Î »ç¿ë Àü¿¡, ¼±¾ðµÇ¾î¾ß ÇÑ´Ù ¹®Á¦ÀÇ ¿£Æ¼Æ¼°¡ ¼±¾ðµÇ¸é, ¾Æ·¡ ¼³¸í°ú °°ÀÌ, ±×°ÍµéÀº, ±×ÀÇ ±³Ã¼ ÅؽºÆ®°¡ ¿¡½º°ÔÀÔ µÈ ´ÜÀÏ ±ÛÀÚÀ̰ųª ±× ±ÛÀÚÀÇ ±ÛÀÚ ÂüÁ¶ÀÎ, ³»ºÎÀû ¿£Æ¼Æ¼·Î ¼±¾ðµÇ¾î¾ß ÇÑ´Ù.
<!ENTITY lt "&#60;"> |
"lt
"¿Í "amp
"ÀÇ ¼±¾ð¿¡¼ "<
"¿Í "&
" ±ÛÀÚµéÀº, ±× ¿£Æ¼Æ¼ ´ëü(replacement)°¡ Àß Çü¼ºµÈ °ÍÀÌ µÇ°Ô Çϴµ¥ ÇÊ¿ä ÇÑ, ÀÌÁß(double)À¸·Î ¿¡½ºÄÉÀÔ(escaped) µÇ¾ú½¿¿¡ ÁÖÀÇÇ϶ó.
ÁÖ¼®µéÀº, ÁÖ¼®(notation) ¾ÖÆ®¸®ºäÆ®, ¶Ç´Â ó¸®Áö½Ã(processing instruction)°¡ º¸³»Áö´Â Àû¿ë(application)À» °®´Â, ¿¤·¹¸àÆ®µéÀÇ Çؼ®(parse) ¾ÈµÈ ¿£Æ¼Æ¼ ¾ç½Ä À̸§À¸·Î ÀνÄ(identify)ÇÑ´Ù.
ÁÖ¼® ¼±¾ðµéÀº, ¿£Æ¼Æ¼(entity)¿Í ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµé°ú ¾ÖÆ®¸®ºäÆ® ±Ô°ÝµéÀÇ »ç¿ëÀ» À§ÇÏ¿©, ÁÖ¼®¿¡ À̸§À» Á¦°øÇÑ´Ù. ±×¸®°í, XML ó¸®ÀÚ(processor)¿¡°Ô Çã¿ëÇÏ´Â ÁÖ¼® ¶Ç´Â ÁÖ¾îÁø ÁÖ¼®¿¡¼ µ¥ÀÌÅÍ Ã³¸®¸¦ °¡´ÉÇÏ°Ô ÇÏ´Â µµ¿ò Àû¿ëÀ» À§Ä¡½ÃÅ°´Â Å©¶óÀ̾ðÆ®(client: °í°´) Àû¿ë(application)À» À§ÇÏ¿©, ¿ÜºÎÀû ÀνÄÀÚ(identifier)¸¦ Á¦°øÇÑ´Ù.
ÁÖ¼® ¼±¾ð(Notation Declarations) | ||||||||
|
XML ó¸®ÀÚ(processor)´Â Àû¿ë(application)¿¡ À̸§°ú, ¾ÖÆ®¸®ºäÆ® °ª, ¾ÖÆ®¸®ºäÆ®(attribute) Á¤ÀÇ, ¶Ç´Â ¿£Æ¼Æ¼(entity) ¼±¾ð¿¡¼, ¼±¾ðµÇ°í ÂüÁ¶µÇ´Â ¾î¶² ÁÖ¼®(notation)ÀÇ ¿ÜºÎÀû ÀνÄÀÚ(identifier)¸¦ Á¦°øÇÏ¿©¾ß ÇÑ´Ù. À̵éÀº Ãß°¡ÀûÀ¸·Î ¿ÜºÎÀû ÀνÄÀÚ¸¦ ½Ã½ºÅÛ ÀνÄÀÚ·Î, ÈÀÏ À̸§À¸·Î, ¶Ç´Â ¼³¸íµÈ ÁÖ¼® ¾ÈÀÇ µ¥ÀÌÅÍ Ã³¸®ÀÚ¸¦ È£ÃâÇÏ´Â Àû¿ëÀ» Çã¿ëÇϴµ¥ ÇÊ¿äÇÑ ´Ù¸¥ Á¤º¸µéÀ» ÇØ°á(»êÃâ) ÇÒ ¼ö ÀÖ´Ù. (±×·¯³ª, XML ¹®¼¿¡¼ ¼±¾ðÇÏ°í, ÁÖ¼®¿¡¼ Á¶È¸ÇÏ´Â XML ó¸®ÀÚ(processor) ¶Ç´Â Àû¿ëÀÌ ÀÛµ¿ÇÏ°í ÀÖ´Â ½Ã½ºÅÛ¿¡ ÁÖ¼® ƯÁ¤ Àû¿ë(notation-specific application)µéÀÌ ¾ø´Ù¸ç, ÀÌ°ÍÀº ¿À·ù´Â ¾Æ´Ï´Ù.)
¹®¼ ¿£Æ¼Æ¼´Â ¿£Æ¼Æ¼ °èÅëµµ(tree)¿¡¼ ÃÖ»óÀ§(root)·Î ÀÛ¿ëÇÏ°í, XML ó¸®ÀÚ(processor)ÀÇ ½ÃÀÛÁ¡ÀÌ´Ù. À̱԰ÝÀº XML ó¸®ÀÚ¿¡ ÀÇÇÏ¿© ¾î¶»°Ô ¹®¼ ¿£Æ¼Æ¼ À§Ä¡µÇ´Â°¡¸¦ Á¤ÀÇÇÏ°í ÀÖÁö ¾Ê´Ù; ´Ù¸¥ ¿£Æ¼Æ¼µé°ú´Â ´Þ¸®, ¹®¼(document) ¿£Æ¼Æ¼´Â À̸§À» °®°í ÀÖÁö ¾Ê°í, ÁöÁ¤(ÀνÄ)ÀÌ ÀüÇô ¾ø¾îµµ ó¸®ÀÚ ÀÔ·Â(input) È帧ÀÌ Àß ³ªÅ¸³¯ ¼ö ÀÖ´Ù.
±Ô°Ý¿¡ ºÎÇÕÇÏ´Â XML ó¸®ÀÚ(processor)µéÀº À¯È¿¼º °ËÁ¤Çϴ ó¸®ÀÚ¿Í À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚ µÎ°¡Áö Á¾·ù Áß¿¡ ÇϳªÀÌ´Ù.
À¯È¿¼º °ËÁ¤Çϴ ó¸®ÀÚ¿Í À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚµéÀº µÑ ´Ù, ¹®¼ ¿£Æ¼Æ¼ÀÇ ³»¿ë°ú ±×°¡ Àд ´Ù¸¥ Çؼ®(parse)µÈ ¿£Æ¼Æ¼µé¿¡¼, À̱԰ÝÀÇ Àß Çü¼ºµÊÀ» À§ÇÑ Çʼö»çÇ× À§¹ÝÀ» ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù.
À¯È¿¼º °ËÁ¤ ó¸®ÀÚµéÀº DTD¿¡ ¼±¾ðµé·Î ³ªÅ¸³½ Á¦ÇÑ¿ä¼ÒÀÇ À§¹Ý°ú, À̱԰ÝÀÇ ÁÖ¾îÁø À¯È¿¼º °ËÁ¤(validity) Á¦ÇÑ¿ä¼Ò¸¦ ¸¸Á·½ÃÅ°Áö ¸øÇÏ´Â °äÀ» ¾Ë·Á ÁÖ¾î¾ß ÇÑ´Ù. À̸¦ ´Þ¼ºÇϱâ À§ÇÏ¿©, À¯È¿¼º °ËÁ¤ XML ó¸®ÀÚ(processor)µéÀº, Àüü DTD¿Í ¹®¼ÀÇ ¸ðµç ÂüÁ¶µÈ ¿ÜºÎÀû Çؼ®(parse)µÈ ¿£Æ¼Æ¼¸¦ Àаí ó¸®ÇÏ¿©¾ß ÇÑ´Ù.
À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚµéÀº Àüü ³»ºÎÀû DTD ÇϺμ¼Æ®(subset)¸¦ Æ÷ÇÔÇÏ¿© ¹®¼ ¿£Æ¼Æ¼ ¸¸ ±×ÀÇ Àß Çü¼ºµÊÀ» °Ë»çÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. ±×µéÀº ¹®¼ÀÇ À¯È¿¼º(validity) °Ë»ç°¡ ÇÊ¿äÇÏÁö ¾ÊÁö¸¸, ³»ºÎÀû DTD ÇϺμ¼Æ®¿Í ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼¿¡¼ ÀÐÀº ¸ðµç ¼±¾ðÀ», ÀÐÁö ¾ÊÀº óÀ½ ÆĶó¸ÞÅÍ ¿£Æ¼Æ¼(entity)¸¦ ÂüÁ¶Çϴµ¥ ±îÁö, ó¸®(process)ÇÏ´Â °ÍÀº ÇÊ¿äÇÏ´Ù; ´Ù½Ã¸»ÇØ, À̰͵éÀº, ¾ÖÆ®¸®ºäÆ® °ªµéÀ» Á¤»óÈ(normalize)ÇÏ°í, ³»ºÎÀû ¿£Æ¼Æ¼ÀÇ ±³Ã¼ ÅؽºÆ®¸¦ Æ÷ÇÔ(include)ÇÏ°í, µðÆúÆ® ¾ÖÆ®¸®ºäÆ® °ªµéÀ» Á¦°øÇϱâ À§ÇÏ¿©, ¼±¾ðµé¿¡ ÀÖ´Â Á¤º¸¸¦ »ç¿ëÇÏ¿©¾ß ÇÑ´Ù. À̰͵éÀº ¿£Æ¼Æ¼ ¼±¾ðµéÀ̳ª ÀÐÁö ¾ÊÀº ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) ÂüÁ¶ ´ÙÀ½¿¡ ¸¸³ª´Â ¾ÖÆ®¸®ºäÆ® ¸ñ·Ï ¼±¾ðµéÀ» ó¸®(process)ÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. ÀÌ´Â ±× ¿£Æ¼Æ¼¿¡´Â µ¤¾î¾º¿ì´Â ¼±¾ðµéÀ» Æ÷ÇÔ ÇÒ ¼ö Àֱ⠶§¹®ÀÌ´Ù.
À¯È¿¼º °ËÁ¤ XML ó¸®ÀÚÀÇ È°µ¿Àº »ó´çÈ÷ ¿¹Ãø ÇÒ ¼ö ÀÖ´Ù; ÀÌ´Â ¹®¼ÀÇ °¢ ºÎºÐÀ» ÀÐ°í ¸ðµç Àß Çü¼ºµÊ°ú À¯È¿¼º(validity) À§¹ÝÀ» ¾Ë·ÁÁÖ¾î¾ß ÇÑ´Ù. À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚ¿¡¼´Â À̺¸´Ù ÀûÀº ÇÊ¿ä»çÇ×ÀÌ ÀÖ´Ù; ¹®¼ ¿£Æ¼Æ¼(entity) ÀÌ¿ÜÀÇ ´Ù¸¥ ¹®¼ ºÎºÐÀº ÀÐÀ» ÇÊ¿ä°¡ ¾ø´Ù. ÀÌ´Â XML ó¸®ÀÚ(processor)ÀÇ »ç¿ëÀڵ鿡°Ô Áß¿äÇÑ µÎ°¡Áö È¿°ú(¿µÇâ)ÀÌ ÀÖ´Ù:
¼·Î ´Ù¸¥ XML ó¸®ÀÚµé »çÀÌÀÇ Åë¿ë¼º¿¡¼ ÃÖ´ëÀÇ ½Å·Ú¼ºÀ» À§ÇÏ¿©, À¯È¿¼º °ËÁ¤ ¾Ê´Â ó¸®ÀÚµéÀ» »ç¿ëÇÏ´Â Àû¿ëµéÀº ±×¿Í °°Àº ó¸®ÀÚ(processor)µé¿¡ ÇÊ¿äÇÏÁö ¾ÊÀº È°µ¿(behavior)¿¡ ÀÇÁ¸ÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù. µðÆúÆ®(default) ¾ÖÆ®¸®ºäÆ®(attribute)µé ¶Ç´Â ¿ÜºÎÀû ¿£Æ¼Æ¼¿¡ ¼±¾ðµÈ ³»ºÎÀû ¿£Æ¼Æ¼(entity)¿¡ »ç¿ëÇÏ´Â °Í °°Àº µµ±¸(facilities)µéÀ» ÇÊ¿ä·Î ÇÏ´Â Àû¿ëµéÀº À¯È¿¼º °ËÁ¤ XML ó¸®ÀÚµéÀ» »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.
À̱԰ݿ¡¼ °£´ÜÇÑ ¾ç½Ä(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"
'string'
A
¿Í B
´Â °£´ÜÇÑ °ø½Ä(expression)À» ¸»ÇÑ´Ù:
expression
)
expression
: Ç¥Çö)Àº ÇϳªÀÇ ´ÜÀ§ Ãë±ÞµÇ°í, ÀÌ ¸ñ·Ï¿¡¼ ¼³¸íÇÏ´Â ¹Ù¿Í °°ÀÌ °áÇÕ µÉ ¼ö ÀÖ´Ù.A?
A
; A
¶Ç´Â ¾ø´Â°Í°ú ÀÏÄ¡ÇÑ´Ù.A B
A
´ÙÀ½¿¡ ¹Ù·Î B
°¡ ¿À´Â °Í°ú ÀÏÄ¡ÇÑ´Ù.A | B
A
¶Ç´Â B
À̳ª µÑ ´Ù´Â ¾Æ´Ï´Ù¿Í ÀÏÄ¡ÇÏ´Ù.A - B
A
´Â °°°í B
´Â °®Áö ¾ÊÀº ¾Æ¹« ½ºÆ®¸µ¿¡¼³ª ÀÏÄ¡ÇÑ´Ù.A+
A
°¡ Çѹø ȤÀº ±×ÀÌ»ó ³ªÅ¸³ª¸é ÀÏÄ¡ÇÑ´Ù.A*
A
°¡ Çѹøµµ ¾ø´ø°¡ ±×ÀÌ»ó ÀÖÀ¸¸é ÀÏÄ¡ÇÑ´Ù./* ... */
[ wfc: ... ]
[ vc: ... ]
´ÙÀ½ À¯´ÏÄÚµå(Unicode) Ç¥ÁØ¿¡ Á¤ÀÇµÈ Æ¯Â¡µé ±ÛÀÚÀº ºÐ·ùµÇ¾îÀÖ´Ù. ±âÃÊ(base) ±ÛÀÚ(´Ù¸¥°Íµé º¸´Ù À̵éÀº ¿µ¾î(Latin)ÀÇ ¾ËÆĺ£Æ® ±ÛÀÚµéÀ» Æ÷ÇÔÇÏ°í, ±¸ºÐ±ÛÀÚ(diacritics)´Â Á¦¿ÜµÈ´Ù), Ç¥½Ä±ÛÀÚ(ideographic) ±ÛÀÚ, ±×¸®°í °áÇÕ(combining) ±ÛÀÚµé(¹«¾ùº¸´Ù ÀÌ ºÐ·ù´Â ´ëºÎºÐÀÇ ±¸ºÐ±ÛÀÚ(diacritics)À» Æ÷ÇÔ)·Î ; ÀÌµé ºÐ·ù´Â °áÇÕÇÏ¿© ±ÛÀÚµéÀÇ ºÐ·ù¸¦ ¸¸µç´Ù. ¼ýÀÚ¿Í È®ÀåÀÚ(extender)µéµµ ±¸º°ÇÏ¿´´Ù.
±ÛÀÚµé(Characters) | ||||||||||||||||||||||||
|
¿©±â¿¡ Á¤ÀÇµÈ ±ÛÀÚ ºÐ·ù´Â ´ÙÀ½°ú °°ÀÌ À¯´ÏÄÚµå(Unicode) ±ÛÀÚ µ¥ÀÌÅͺ£À̽º ±âÃÊ·Î ºÎÅÍ ¸¸µé¾î Áú ¼ö ÀÖ´Ù:
XMLÀº SGMLÀÇ ÇϺμ¼Æ®(subset)°¡ µÇµµ·Ï ¼³°èµÇ¾ú°í, ¿©±â¼ °¢ À¯È¿ÇÑ(valid) XML ¹®¼´Â SGML ¹®¼¿¡µµ ¸Â¾Æ¾ß ÇÑ´Ù. SGML¿¡¼¿Í ´Þ¸® XMLÀÌ ¹®¼µé¿¡ Ãß°¡ÀûÀ¸·Î Á¦ÇÑ ÇÑ »ó¼¼ ºñ±³´Â [Clark]À» ÂüÁ¶Ç϶ó.
ÀÌ ºÎ·ÏÀº, 4.4 "XML ó¸®ÀÚÀÇ ¿£Æ¼Æ¼¿Í ÂüÁ¶ÀÇ Ã³¸®"¿¡ ¼³¸í ÇÑ ¹Ù¿Í °°ÀÌ, ¿£Æ¼Æ¼(entity)- ¿Í ±ÛÀÚ-ÂüÁ¶ÀÇ ÀνÄ(recognition)°ú È®Àå(expansion)ÀÇ ¼ø¼¸¦ ¼³¸íÇÏ´Â ÀϺΠ¿¹Á¦µéÀ» Æ÷ÇÔÇÏ°í ÀÖ´Ù.
¼±¾ðÀÌ DTD¸¦ Æ÷ÇÔÇÏ·Á¸é
<!ENTITY example "<p>An ampersand (&#38;) may be escaped |
±×·¯¸é, ¿£Æ¼Æ¼(entity) ¼±¾ðÀÌ Çؼ®(parse)µÇ¸é XML ó¸®ÀÚ(processor)´Â ±× ±ÛÀÚ ÂüÁ¶¸¦ ÀÎ½Ä ÇÒ °ÍÀÌ°í, À̸¦ ÇØ°á(resolve)ÇÏ¿© ¿£Æ¼Æ¼ "example
"ÀÇ °ªÀ¸·Î ¾Æ·¡ ½ºÆ®¸µÀ» ÀúÀåÇÑ´Ù:
<p>An ampersand (&) may be escaped |
¹®¼¿¡¼ "&example;
"À» ÂüÁ¶Çϸé ÅؽºÆ®´Â ´Ù½Ã Çؼ®(reparse)µÇ°í, À̶§¿¡´Â "p
" ¿¤·¹¸àÆ®ÀÇ ½ÃÀÛÅÂ±×¿Í Á¾·áűװ¡ ÀÎ½Ä µÉ °ÍÀÌ°í, ¼¼°³ÀÇ ÂüÁ¶µéÀº Àνĵǰí È®Àå(expand)µÇ¾î, "p
" ¿¤·¹¸àÆ®(element)´Â ¾Æ·¡ ³»¿ë(content)À» °¡Áú °ÍÀÌ´Ù(¸ðµç µ¥ÀÌÅÍ´Â ÀÖÀ¸³ª ±¸ºÐÀÚ³ª ÄÚµå´Â ¾ø´Â):
An ampersand (&) may be escaped |
´õ º¹ÀâÇÑ ¿¹Á¦´Â ÄÚµå(rule)¿Í ±× È¿°ú¸¦ ¿ÏÀüÈ÷ ¼³¸í ÇÒ °ÍÀÌ´Ù. ¾Æ·¡ ¿¹Á¦¿¡¼, ÁÙ ¹øÈ£´Â ¿ÀÁ÷ Âü°í ¸¸¸¦ À§ÇÑ °ÍÀÌ´Ù.
1 <?xml version='1.0'?> |
ÀÌ´Â ¾Æ·¡ÀÇ °á°ú¸¦ ¸¸µç´Ù:
xx
"´Â °ª "%zz;
"·Î ºÎÈ£(symbol) Å×ÀÌºí¿¡ ÀúÀåµÈ´Ù.
±³Ã¼ ÅؽºÆ®°¡ ¾ø¾î ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) "zz
"ÀÇ ÂüÁ¶´Â ÀνÄÇÏÁö ¸øÇÑ´Ù.
("zz
"°¡ ¾ÆÁ÷ ¼±¾ðµÇÁö ¾Ê¾Ò½¿À¸·Î, ÀÌ´Â ¿À·ùÀÏ °ÍÀÌ´Ù.)<
" ±ÛÀÚ ÂüÁ¶´Â Áï½Ã È®ÀåµÇ°í, ÆĶó¸ÞÅÍ(parameter) ¿£Æ¼Æ¼(entity) "zz
"´Â ±³Ã¼ ÅؽºÆ® "<!ENTITY tricky "error-prone" >
"·Î ÀúÀåµÇ¸ç, ÀÌ´Â Àß Çü¼ºµÈ ¿£Æ¼Æ¼(entity) ¼±¾ðÀÌ´Ù.xx
" ÂüÁ¶´Â Àνĵǰí, "xx
"("%zz;
") ±³Ã¼ ÅؽºÆ®´Â Çؼ®(parse)µÈ´Ù.
À̹ø¿¡´Â "zz
" ÂüÁ¶°¡ Àνĵǰí, ±× ±³Ã¼ ÅؽºÆ®("<!ENTITY tricky "error-prone" >
")°¡ Çؼ®(parse)µÈ´Ù.
ÀϹÝ(general) ¿£Æ¼Æ¼(entity) "tricky
"°¡ ÀÌÁ¦ ¼±¾ðµÇ¾î, ±³Ã¼(replacement) ÅؽºÆ® "error-prone
"¸¦ °®´Â´Ù.tricky
" ÂüÁ¶´Â Àνĵǰí, È®ÀåµÇ¾î,
"test
" ¿¤·¹¸àÆ®(element)ÀÇ ¿ÏÀüÇÑ ³»¿ë(content)Àº ¹®¹ýÀÌ ¾ø´Â ±×´ë·Î ±â¼úÇÏ´Â ½ºÆ®¸µ "This sample shows a error-prone method."°¡ µÈ´Ù.±Ô°ÝºÎÇÕ¼º(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] ÂüÁ¶.
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-endianFF FE
: UTF-16, little-endian00 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 (¾î¶² ¼±È£·Î; ¾î¶² ÄÚµå ÆäÀÌÁö°¡ »ç¿ëµÇ´Â°¡´Â ¾Ë·Á¸é ¿ÏÀüÇÑ ¿£ÄÚµù ¼±¾ðÀÌ ÀÐÇôÁ®¾ß ÇÑ´Ù.)ÀÌ ¼öÁØÀÇ ÀÚµ¿°¨Áö´Â 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)ÀÇ °ßÁö¿¡¼ ¾Æ·¡ ±ÔÄ¢µéÀÌ ÃßõµÈ´Ù.
charset
ÆĶó¸ÞÅÍ(parameter)°¡ ±ÛÀÚ ¿£ÄÚµù(encoding) ¹æ½Ä(method)À» °áÁ¤ÇÑ´Ù;
¸ðµç ´Ù¸¥ Á¤º¸ °èÅë ¹× ÀÚ¿øµéÀº ¿À·ùȸº¹ ¸¸À» À§ÇÑ °ÍÀÌ´Ù.ÀÌ ±ÔÄ¢µéÀº ÇÁ·ÎÅäÄÝ ¼öÁØ(protocol-level) ¹®¼°¡ ¾øÀ» ¶§¿¡ ¸¸ Àû¿ëµÈ´Ù; ±¸Ã¼ÀûÀ¸·Î, "MIME types text/xml"¿Í "application/xml"ÀÌ Á¤ÀÇ µÇ¾úÀ¸¸é, ÇØ´ç RFC Ãßõ¾ÈµéÀº ÀÌ ±ÔÄ¢µéÀ» Àû¿ëÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.
À̱԰ÝÀº 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ÀÇ ¹®¼ »ç¿ëÀ» À§ÇÑ ¹ý¸¦Àû ¹®Á¦´Â ¿ø¹®À» ÂüÁ¶Ç϶ó.
¹ø¿ªÀÚ´Â ÀÌ ¹ø¿ª¹®¿¡ ´ëÇÑ Á÷, °£Á¢ÀûÀÎ ÀÏüÀÇ Ã¥ÀÓÀ» ÁöÁö ¾Ê´Â´Ù.