[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¿¡¼ ÇÁ·¹�Ó�» Çã¿ëÇÏÁö ¾Ê¾Æ ÇÁ·¹�Ó�» ¼±Åà ÇÒ ¼ö �Ö°Ô ÇÏ¿´´Ù. ¹ø¿ª¹® ½Ã�Û |
REC-xml-19980210È®�强 �Û¼º ¾ð¾î (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¿¡¼ º¼ ¼ö �Ö´Ù.
�Ì ¹®¼¿¡¼ ¿�·ùµé°¡ ¹ß°ßµÇ¸é ¿µ¹® [email protected]¿¡ º¸°íÇØÁֱ⠹ٶõ´Ù.
È®�强 �Û¼º ¾ð¾î (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) ½ºÆ®¸µµé�º µû¿ÈÇ¥ ¾È¿¡ ³Ö¾ú´Ù.
°ø½Ä(ÄÚµå) ¼Ó¿¡ ¿�¸¥ÂÊ ºÎºÐ¿¡ ¾Æ·¡ °ø½Ä(Ç¥Çö)µé·Î, ¦ ¸ÂÃß¾î ÇѰ³ ¶Ç´Â ¿©·¯°³�Ç ±Û�Úµé�Ç ½ºÆ®¸µ�» »ç¿ëÇÏ¿´´Ù:
#xNN�º 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 BA ´Ù�½¿¡ ¹Ù·Î B°¡ ¿�´Â °Í°ú �ÏÄ¡ÇÑ´Ù.A | BA ¶Ç´Â B�̳ª µÑ ´Ù´Â ¾Æ´Ï´Ù¿Í �ÏÄ¡ÇÏ´Ù.A - BA´Â °°°í 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�Ç ¹®¼ »ç¿ë�» �§ÇÑ ¹ý¸¦�û ¹®Á¦´Â ¿ø¹®�» ÂüÁ¶Ç϶ó.
¹ø¿ª�Ú´Â �Ì ¹ø¿ª¹®¿¡ ´ëÇÑ Á÷, °£Á¢�û�Î �Ïü�Ç Ã¥�Ó�» ÁöÁö ¾Ê´Â´Ù.