W3C

XPointer Framework

W3C Recommendation 25 March 2003

ÇöÀç ¹öÀü:
http://www.w3.org/TR/2003/REC-xptr-framework-20030325/
ÃֽйöÀü:
http://www.w3.org/TR/xptr-framework/
ÀÌÀü ¹öÀü:
http://www.w3.org/TR/2002/PR-xptr-framework-20021113/
ÀúÀÚ:
Paul Grosso, Arbortext, Inc. <paul@arbortext.com>
Eve Maler, Sun Microsystems <eve.maler@sun.com>
Jonathan Marsh, Microsoft <jmarsh@microsoft.com>
Norman Walsh, Sun Microsystems <Norman.Walsh@Sun.COM>
¹ø¿ªÀÚ:
±è³²Çü <pastime@ece.uos.ac.kr>
¹ø¿ªÀÏ:
2003-05-10

°ø½ÄÀûÀÎ Á¤¿ÀÇ¥¸¦ Æ÷ÇÔÇÏ´Â ÀÌ ¹®¼­ÀÇ errata ÆäÀÌÁö¸¦ Âü°íÇϱ⠹ٶõ´Ù.

ÀÌ ¹®¼­´Â ´ÙÀ½°ú °°Àº ºñÇ¥ÁØÀû(Non-normative)ÀÎ ÇüÅ·εµ ÀÌ¿ëÇÒ ¼ö ÀÖ´Ù: XML.

ÀÌ ¸í¼¼ÀÇ °ø½ÄÀûÀÎ ¹öÀüÀº ¿µ¾î·Î ÀÛ¼ºµÈ ¹®¼­ÀÌ´Ù. ºñÇ¥ÁØÀûÀÎ ¹ø¿ª ¹®¼­´Â translations ¿¡¼­ À̿밡´ÉÇÏ´Ù.


°³¿ä

ÀÌ ¸í¼¼´Â XML Pointer Language (XPointer) Framework ¸¦ Á¤ÀÇÇÑ´Ù. ÀÌ´Â Ãß°¡ÀûÀÎ XPointer scheme ¸í¼¼¿¡ ±â¹ÝÀ» µÐ XML ¹®¼­ ¾ÈÀÇ ¿ä¼ÒµéÀ» °¡¸®Å°´Â È®Àå°¡´ÉÇÑ ½Ã½ºÅÛÀ» ¸»ÇÑ´Ù. ÀÌ framework Àº text/xml, application/xml, text/xml-external-parsed-entity, ȤÀº application/xml-external-parsed-entity ŸÀÔÀÇ ÀÚ¿øµé¿¡ ´ëÇÑ ºÎºÐ ½Äº°ÀÚ(fragment identifier)ÀÇ ±âÀú·Î¼­ »ç¿ëµÉ ¸ñÀûÀ¸·Î ¸¸µé¾îÁ³´Ù. XML À» ±â¹ÝÀ¸·Î ÇÑ ´Ù¸¥ (¹Ìµð¾î) ŸÀÔµéÀº Àڽŵ鸸ÀÇ ºÎºÐ ½Äº°ÀÚ ¾ð¾î¸¦ Á¤ÀÇÇÔÀ¸·Î½á ÀÌ framework ¸¦ ÀÌ¿ëÇϵµ·Ï ±Ç°íÇϰí ÀÖ´Ù.

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

ÀÌ Àý¿¡¼­´ÂÀÌ ¹®¼­ÀÇ ¹ßÇà ´ç½Ã »óÅÂ(status)¿¡ ´ëÇØ¼­ ¼³¸íÇϰí ÀÖ´Ù. ÀÌ ¹®¼­´Â ´Ù¸¥ ¹®¼­·Î ´ëüµÉ ¼ö ÀÖ´Ù. ÀÌ ¹®¼­ ½Ã¸®ÁîÀÇ ÃÖ±Ù »óȲÀº W3C ¿¡ ÀÇÇØ °ü¸®µÈ´Ù.

ÀÌ ¹®¼­´Â W3C ÀÇ ±Ç°í¾È (REC) ÀÌ´Ù. Áï W3C ¸â¹öµé°ú ´Ù¸¥ °ü·ÃµÈ ±×·ìµéÀÇ °ËÅ並 °ÅÃÆÀ¸¸ç ÀÓ¿øÈ¸ÀÇ ½ÂÀÎÀ» °ÅÃÄ W3C ±Ç°í¾ÈÀ¸·Î ÀÎÁ¤µÇ¾ú´Ù. ÀÌ ¹®¼­´Â ¾ÈÁ¤µÈ ¹öÀüÀ¸·Î¼­ ´Ù¸¥ ¹®¼­¿¡¼­ ÀÌ ¹®¼­¸¦ Âü°í ¹®ÇåÀ¸·Î »ç¿ëÇϰųª ÀοëÇÒ ¼ö ÀÖ´Ù. ±Ç°í¾ÈÀ» Á¦Á¤ÇÏ´Â µ¥ ÀÖ¾î W3C ÀÇ ¿ªÇÒÀº ¸í¼¼¿¡ °ü½ÉÀ» ²ø¾îµéÀÌ´Â Àϰú ÀÌ·¯ÇÑ »çÇ×µéÀÌ ³Î¸® »ç¿ëµÉ ¼ö ÀÖµµ·Ï ÃËÁøÇÏ´Â µ¥ ÀÖ´Ù. À̸¦ ÅëÇØ Web ÀÇ À¯¿ë¼º°ú »óÈ£ ¿î¿ë¼ºÀº ´õ¿í ³ô¾ÆÁú °ÍÀÌ´Ù.

ÀÌ ¹®¼­´Â W3C XML Linking Working Group ¿¡ ÀÇÇØ XML Activity ÀÛ¾÷ÀÇ ÀÏȯÀ¸·Î¼­ ¸¸µé¾î Á³´Ù. ÀÌ ¹®¼­´Â XPointer requirements ¹®¼­ÀÇ ÇÙ½É ºÎºÐÀ» Á¦½ÃÇϰí ÀÖÀ¸¸ç, XML Media type À» À§ÇÑ ºÎºÐ ½Äº°ÀÚ ¹®¹ýÀÇ ±âÃÊÀûÀÎ (ȤÀº ÀüüÀûÀÎ) ºÎºÐÀ» ³ªÅ¸³¾ ¸ñÀûÀ¸·Î XPointer element() Scheme, XPointer xmlns() Scheme ¸í¼¼¿Í ÇÔ²² Á¦°øµÈ´Ù.

ÀÌ ¹®¼­¿¡ °ü·ÃÇÏ¿© ÀǰßÀ» Á¦½ÃÇÏ´Â °ÍÀº ȯ¿µÇÑ´Ù. °ø°³ ¸ÞÀϸµ ¸®½ºÆ®ÀÎ ´ÙÀ½ ÁÖ¼Ò·Î ÀǰßÀ» º¸³»Áֱ⠹ٶõ´Ù. www-xml-linking-comments@w3.org (archive).

ÀÌ ¸í¼¼³ª °ü·ÃµÈ ¹®¼­ÀÎ XPointer element() Scheme, XPointer xmlns() Scheme ¿¡ °ü·ÃµÈ Á¤º¸³ª ±¸Çö »çÇ×µîÀº Implementation Report ¿¡¼­ ã¾Æº¼ ¼ö ÀÖ´Ù.

ÀÌ ¹®¼­ÀÇ Æ¯Çã±Ç°ú ¶óÀ̼¾½º´Â W3C policy ¸¦ µû¸£´Â XPointer IPR Statement ÆäÀÌÁö¿¡¼­ ã¾Æº¼ ¼ö ÀÖ´Ù.

ÇöÀç W3C ±Ç°í¾È°ú ´Ù¸¥ ±â¼ú¹®¼­ ¸ñ·ÏÀº http://www.w3.org/TR/ À» Âü°íÇϱ⠹ٶõ´Ù. W3C ÀÇ ¹ßÇ¥ ¹®¼­µéÀº ¾ðÁ¦¶óµµ ´Ù¸¥ ¹®¼­·Î ¾÷µ¥ÀÌÆ®µÇ°Å³ª, ±³Ã¼µÇ°Å³ª, Æó±âµÉ ¼ö ÀÖ´Ù.

¸ñÂ÷

1 ¼­·Ð
    1.1 Ç¥±â¹ý
    1.2 ¿ë¾î
2 ´Ù¸¥ ¸í¼¼¿ÍÀÇ ÀÏÄ¡
3 ¾ð¾î¿Í 󸮹æ¹ý
    3.1 ¹®¹ý
    3.2 Shorthand Pointer
    3.3 Scheme-Based Pointer
    3.4 Namespace Binding Context
4 ¹®ÀÚÀÇ Escaping
    4.1 Escaping ȯ°æ
    4.2 Escaping ¿¹Á¦

ºÎ·Ï

A ÂüÁ¶¹®¼­
    A.1 Ç¥ÁØ ÂüÁ¶¹®¼­
    A.2 ºñÇ¥ÁØ ÂüÁ¶¹®¼­


1 ¼­·Ð

ÀÌ ¸í¼¼´Â XML Pointer Language (XPointer) Framework À» Á¤ÀÇÇÑ´Ù. ÀÌ´Â Ãß°¡ÀûÀÎ XPointer scheme ¸í¼¼¸¦ ÀÌ¿ëÇÏ¿© XML ¹®¼­ÀÇ Æ¯Á¤ ºÎºÐÀ» °¡¸®Å³ ¼ö ÀÖ´Â È®Àå°¡´ÉÇÑ ½Ã½ºÅÛÀ» ¸»ÇÑ´Ù. ÀÌ·¯ÇÑ framework ´Â text/xml, application/xml, text/xml-external-parsed-entity, application/xml-external-parsed-entity ¿Í °°Àº Internet media type À» °¡Áö´Â ÀÚ¿øµé¿¡ ´ëÇÑ ºÎºÐÀûÀÎ ½Äº°ÀÚ¸¦ Á¦°øÇÏ´Â ±â¹ÝÀ¸·Î¼­ »ç¿ëµÇµµ·Ï ¸¸µé¾î Á³´Ù. À̹ÛÀÇ XML À» ±â¹ÝÀ¸·Î ÇÑ media type µéÀº ÀÌ framework À» ÀÌ¿ëÇÏ¿© Àڽŵ鸸ÀÇ µ¶ÀÚÀûÀÎ ºÎºÐ ½Äº°ÀÚ ¾ð¾î¸¦ Á¤ÀÇÇÒ °ÍÀ» ±ÇÇÏ´Â ¹ÙÀÌ´Ù.

XML À» ó¸®ÇÏ´Â ¸¹Àº Á¾·ùÀÇ application ¿¡¼­´Â URI ÂüÁ¶¸¦ ÅëÇÏ¿© XML ÀÚ¿øµéÀÇ ³»ºÎÀûÀÎ ±¸Á¶¸¦ Á¢±ÙÇÏ´Â °ÍÀÌ ÇÊ¿äÇÏ´Ù. ¿¹¸¦ µé¾î XML Linking Language [XLink], XML Inclusions [XInclude], Resource Description Framework [RDF], SOAP 1.2 [SOAP12] ¿Í °°Àº °ÍµéÀÌ ÀÖÀ» °ÍÀÌ´Ù. ÀÌ ¸í¼¼¿¡¼­´Â XML ÀÚ¿ø¿¡ ´ëÇÑ URI ÂüÁ¶¸¦ ÀÌ¿ëÇÏ´Â application ÀÇ Å¸ÀÔÀ̳ª ±×·¯ÇÑ ÇÁ·Î±×·¥µéÀÌ ¿øÇÏ´Â ÀÚ¿ø¿¡ °üÇÑ Á¤º¸¸¦ ¾òÀº ÈÄÀÇ µ¿ÀÛ¿¡ °üÇØ¼­´Â Á¦ÇÑÀ» µÎÁö ¾Ê´Â´Ù.

1.1 Ç¥±â¹ý

[Á¤ÀÇ: ÀÌ ¸í¼¼¿¡¼­ »ç¿ëµÈ must, must not, required, shall, shall not, should, should not, recommended, may, optional À̶ó´Â ¿ë¾î´Â [RFC 2119] ¿¡¼­ ¼³¸íÇÏ´Â ´ë·Î ÇØ¼®µÇ¾î Áø´Ù.]

XPointer Framework ÀÇ Çü½Ä ¹®¹ýÀº XML ±Ç°í¾È [XML] ¿¡¼­ ¼³¸íÇÏ´Â ´Ü¼øÇÑ Extended Backus-Naur Form (EBNF) Ç¥±â¹ýÀ» »ç¿ëÇÏ¿© Á¦°øµÈ´Ù.

1.2 ¿ë¾î

[Á¤ÀÇ: pointer ]

ÀÌ ¸í¼¼¸¦ µû¸£´Â ¹®ÀÚ¿­. ÀÌ ¸í¼¼´Â pointer ÀÇ ¹®¹ý°ú Àǹ̸¦ Á¤ÀÇÇÑ´Ù.

[Á¤ÀÇ: pointer part ]

ÇØ´ç scheme ÀÇ Á¤ÀǸ¦ µû¸£´Â scheme À̸§°ú ¸î¸î pointer µ¥ÀÌŸ¸¦ Á¦°øÇÏ´Â pointer ÀÇ ÀϺκÐ. XPointer processor ´Â ÇϳªÀÇ XML ÀÚ¿ø ³»ÀÇ 0 °³ ÀÌ»óÀÇ ÇÏÀ§ ÀÚ¿øµéÀ» °¡¸®Å°´Â pointer part ¸¦ °è»êÇÑ´Ù.

[Á¤ÀÇ: scheme ]

scheme À̸§°ú ÀÌ ¸í¼¼¿¡ Á¤ÀÇµÈ »çÇ×µéÀ» °¡Áö´Â Ưº°ÇÑ pointer µ¥ÀÌŸ Çü½Ä.

[Á¤ÀÇ: XPointer processor ]

ÇϳªÀÇ XML ÀÚ¿ø¿¡ ´ëÇØ pointer ¸¦ Àû¿ëÇÏ¿© ÇÏÀ§ ÀÚ¿øµéÀ» °¡¸®Å³ ¼ö ÀÕ´Â ¼ÒÇÁÆ®¿þ¾î ¿ä¼Ò. ÀÌ ¸í¼¼¿¡¼­´Â XPointer processor ÀÇ µ¿ÀÛ¿¡¼­ ´ëÇØ¼­ Á¤ÀÇÇÑ´Ù.

[Á¤ÀÇ: application ]

XML ÀÚ¿øµé¿¡ Á¢±ÙÇϱâ À§ÇØ XPointer processor ¸¦ »ç¿ëÇϰųª XPointer processor ¿Í ÇÔ²² µ¿ÀÛÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ¿ä¼Ò. XPointer ÀÇ »ç¿ëȽ¼ö³ª »ç¿ë¹ý, ÀÌ·¯ÇÑ XPointer ¸¦ ÀÌ¿ëÇÏ¿© ¾ò¾îÁø ÀÚ¿øµé¿¡°Ô Àû¿ëµÇ´Â Çൿ µîÀº °¢ application µéÀÇ ¿¬°üµÈ µ¥ÀÌŸ Çü½ÄÀÇ Á¤ÀÇÇØ µû¶ó °áÁ¤µÈ´Ù. (XML ±â¹ÝÀÎÁö ¾Æ´ÑÁö) ¿¹¸¦ µé¾î HTML [HTML] À¥ ºê¶ó¿ìÀú¿Í XInclude processor ´Â µÑ´Ù XPointer processor ¸¦ »ç¿ëÇÏ´Â ÇÁ·Î±×·¥ÀÌ´Ù.

[Á¤ÀÇ: error ]

ÀÌ ¸í¼¼¿¡¼­ Á¤ÀÇÇÑ ¹®¹ýÀûÀÎ ±ÔÄ¢À» ¾î±â°Å³ª pointer °¡ ÇÏÀ§ ÀÚ¿øµéÀ» ã¾Æ³»Áö ¸øÇÑ °æ¿ì

[Á¤ÀÇ: namespace binding context ]

XML-namespace [XML-Names] ¿¡¼­ Á¤ÀÇµÈ À̸§°ø°£ Á¢µÎ¾î¸¦ °ü·ÃµÈ À̸§°ø°£ À̸§À¸·Î ÁöÁ¤ÇÏ´Â °Í.

2 ´Ù¸¥ ¸í¼¼¿ÍÀÇ ÀÏÄ¡

ÀÌ ¸í¼¼´Â framework À» Á¤ÀÇÇÑ´Ù; ÇöÀç´Â XPointer processor ¿¡ ´ëÇÑ ÃÖ¼ÒÇÑÀÇ ÀÏÄ¡ ¼öÁصµ Á¤ÀǵǾî ÀÖÁö ¾Ê´Ù. µû¶ó¼­ À̹ø Àý¿¡¼­´Â ¾î¶² ÃÖ¼ÒÇÑÀÇ ÀÏÄ¡ ¼öÁØÀÇ framework ÀÇ ºÎºÐ¿¡ ´ëÇØ¼­¸¸ ¿ä±¸»çÇ×À» Á¤ÀÇÇÑ´Ù.

XPointer processor ´Â application ÀÌ ¾î¶² ºÎºÐ ½Äº°ÀÚÀÇ ÀÎÄÚµù°ú escaping À» ÀçÇØ¼®ÇÏ´Â ´É·Â¿¡ ÀÇÁ¸ÇÑ´Ù. (4 ¹®ÀÚÀÇ Escaping Âü°í)

XPointer processor ÀÇ ÇൿÀº XML ÀÚ¿ø¿¡¼­ ¾òÀº Á¤º¸ÀÇ À̿밡´É¼º¿¡ ÀÇÁ¸ÇÑ´Ù. [Infoset] ¿¡¼­ Á¦°øÇÏ´Â ¿ë¾î·Î Ç¥ÇöÇϸé, information item °ú property ´Â ¿¬°üµÇ¾î ÀÖÀ» °ÍÀÌ´Ù. ÀÌ·¯ÇÑ item °ú property ÀÇ Á¸Àç´Â ÀÏÄ¡ÇÏ´Â DTD ³ª XML Schema ÀÇ Ã³¸®¿¡ Â÷·Ê·Î ÀÇÁ¸ÇÑ´Ù: ÀÏÄ¡ÇÏ´Â XPointer processor ´Â ±×·¯ÇÑ Ã³¸®¸¦ ÇÊ¿ä·Î ÇÏÁö ¾ÊÀ» Å×Áö¸¸, ¸¸¾à ±×·¯ÇÑ °æ¿ì¿¡´Â Á¤º¸ÀÇ Shorthand Pointer 󸮰¡ À¯¿ëÇÏ°Ô »ç¿ë °ÍÀÌ´Ù. (3.2 Shorthand Pointer ÂüÁ¶)

XPointer processor ¸¦ ±¸ÇöÇÏ´Â ¼ÒÇÁÆ®¿þ¾î ¿ä¼Ò´Â ¹Ýµå½Ã ÀÌ XPointer Framework ¸í¼¼¿Í ÀÌ ¸í¼¼¿¡ °ü·ÃµÈ ´Ù¸¥ ¸í¼¼¸¦ µû¶ó¾ß Çϸç, XPointer ¸¦ À§ÇÑ ÃÖ¼ÒÇÑÀÇ ÀÏÄ¡ ¼öÁصµ Á¤ÀÇÇØ¾ß ÇÑ´Ù. ±×¸®°í Ãß°¡ÀûÀÎ XPointer scheme ¿¡ °üÇÑ ¸í¼¼¸¦ µû¸¦ ¼öµµ ÀÖ´Ù. XPointer processor ´Â ´Ù¸¥ Ãß°¡ÀûÀÎ scheme ¸í¼¼¸¦ µû¸¥ °æ¿ì ¹Ýµå½Ã ±×°ÍÀ» ¹®¼­È­ ÇØ¾ß ÇÑ´Ù. XPointer processing ¿¡ ÀÇÁ¸ÇÏ´Â ¸í¼¼´Â ±×°ÍÀÌ ¿ä±¸Çϰí Áö¿øÇÏ´Â scheme ¿¡ °üÇÏ¿© ¹®¼­È­ ÇØ¾ß ÇÑ´Ù.

ÀÌ ¸í¼¼¸¦ µû¸£´Â XPointer processor ´Â ¹Ýµå½Ã application ¿¡°Ô XPointer Framework error ¸¦ º¸°íÇØ¾ß ÇÑ´Ù. application ¿¡¼­ XPointer Framework error ¸¦ º¸°í¹Þ¾ÒÀ» ¶§ À̸¦ Á¾·á½ÃŰ°Å³ª ¾î¶°ÇÑ ¹æ½ÄÀ¸·Îµç À̸¦ º¹±¸Çϰųª ÇÏ´Â °ÍÀº ÀÚÀ¯ÀÌ´Ù.

3 ¾ð¾î¿Í 󸮹æ¹ý

ÀÌ Àý¿¡¼­´Â XPointer Framework °ú ÀÌ framework ¿¡ °ü·ÃµÈ XPointer processor ÀÇ µ¿ÀÛÀ» ¼³¸íÇÑ´Ù.

XPointer processo ´Â ÀÔ·ÂÀ¸·Î XML ÀÚ¿øÀ̳ª pointer ·Î »ç¿ëµÉ ¹®ÀÚ¿­ (¿¹¸¦ µé¾î, ¾î¶² ÀÚ¿ø¿¡ Á¢±ÙÇϱâ À§ÇØ »ç¿ëµÈ URI ÀÚ¿øÀÇ, ¿ªÀ¸·Î escaping µÈ, ºÎºÐ ½Äº°ÀÚ(fragment identifier)) À» ¹Þ¾Æ¼­, ±× ÀÚ¿ø¿¡ °ü·ÃµÈ pointer ¸¦ °è»êÇÒ·Á°í ½ÃµµÇÑ µÚ, Ãâ·ÂÀ¸·Î ÇÏÀ§ ÀÚ¿ø¿¡ ´ëÇÑ À§Ä¡ ȤÀº error ¸¦ ¹ÝȯÇÑ´Ù.

3.1 ¹®¹ý

¸¸¾à pointer ·Î »ç¿ëµÈ ¹®ÀÚ¿­ÀÌ ÀÌ Àý¿¡¼­ Á¤ÀÇÇÑ ¹®¹ý¿¡ ¸ÂÁö ¾ÊÀ¸¸é error ÀÌ´Ù.

½É¹ú S ´Â [XML] ¿¡ Á¤ÀǵǾî ÀÖ´Ù. NCName ¶ó´Â ½É¹ú°ú QName ¶ó´Â ½É¹úÀº [XML-Names] ¿¡ Á¤ÀǵǾî ÀÖ´Ù.

XPointer Framework ¹®¹ý
[1]    Pointer    ::=    Shorthand | SchemeBased
[2]    Shorthand   ::=    NCName
[3]    SchemeBased    ::=    PointerPart (S? PointerPart)*
[4]    PointerPart    ::=    SchemeName '(' SchemeData ')'
[5]    SchemeName    ::=    QName
[6]    SchemeData    ::=    EscapedData*
[7]    EscapedData    ::=    NormalChar | '^(' | '^)' | '^^' | '(' SchemeData ')'
[8]    NormalChar    ::=    UnicodeChar - [()^]
[9]    UnicodeChar    ::=    [#x0-#x10FFFF]

À§ÀÇ »ý¼º ±ÔÄ¢¿¡¼­ º¸µíÀÌ, pointer part ÀÇ ³¡Àº ´Ý´Â °ýÈ£ ")" ·Î Ç¥½ÃµÇ¸ç, pointer part ÀÇ ½ÃÀÛÀÎ ¿©´Â °ýÈ£ "(" ¿¡ ½ÖÀ» ÀÌ·é´Ù. ¸¸¾à ÀÌ·¯ÇÑ °ýÈ£µéÀÌ Â¦ÀÌ ¸ÂÁö ¾ÊÀº ä·Î scheme date ¾È¿¡ Á¸ÀçÇÏ·Á¸é, ¹Ýµå½Ã ±× ¾Õ¿¡ ²©¼è (^) ·Î escaping ÇØ ÁÖ¾î¾ß ÇÑ´Ù. ¦ÀÌ ¸Â´Â °ýÈ£ÀÇ escaping pair µµ Çã¿ëµÈ´Ù. ²©¼è ±× ÀÚü¸¦ Ç¥½ÃÇϱâ À§Çؼ­´Â ¹Ýµå½Ã ±× ¾Õ¿¡ ²©¼è¸¦ Çϳª ´õ ºÙ¿©¼­ escaping ÇØ¾ß ÇÑ´Ù. (Áï, ^^ °¡ µÈ´Ù.) ÀÌ¿ÜÀÇ ¿ëµµ·Î ²©¼è¸¦ »ç¿ëÇÏ´Â °ÍÀº error ÀÌ´Ù.

3.2 Shorthand Pointer

shorthand pointer ´Â ÀÌÀü¿¡´Â barename À̶ó°í ºÒ·ÈÀ¸¸ç, ÇϳªÀÇ NCName ¸¸À¸·Î ÀÌ·ç¾îÁø´Ù. À̰ÍÀº ÀÚ¿øÀÇ information set ³»¿¡¼­ ÃÖ´ë ÇѰ³ÀÇ ¿ø¼Ò¸¦ °¡¸®Å²´Ù. Ưº°È÷, ¹®¼­ÀÇ ¼ø¼­ »ó¿¡¼­ ½Äº°ÀÚ¿Í Ã¹¹øÂ°·Î ¸ÅÄ¡µÇ´Â (¾î¶² °ÍÀ̵çÁö) NCName À» ¸»ÇÏ´Â °ÍÀÌ´Ù. ¿ø¼ÒÀÇ ½Äº°ÀÚ´Â ´ÙÀ½°ú °°ÀÌ °áÁ¤µÈ´Ù:

  1. ¸¸¾à element information item ÀÌ ±× [attributes] °¡¿îµ¥ attribute information item À» °¡Áö°í ÀÖ´Ù¸é ±×°ÍÀº schema-determined ID °¡ µÉ °ÍÀ̰í, attribute information item ÀÇ [schema normalized value] ¼Ó¼ºÀÇ °ª¿¡ ÀÇÇØ ±¸ºÐµÉ °ÍÀÌ´Ù.

  2. ¸¸¾à element information item ÀÌ ±× [children] °¡¿îµ¥ element informaiton item À» °¡Áö°í ÀÖ´Ù¸é ±×°ÍÀº schema-determined ID °¡ µÉ °ÍÀ̰í, element information item ÀÇ [schema normalized value] ¼Ó¼ºÀÇ °ª¿¡ ÀÇÇØ ±¸ºÐµÉ °ÍÀÌ´Ù.

  3. ¸¸¾à element information item ÀÌ ±× [attributes] °¡¿îµ¥ attribute information item À» °¡Áö°í ÀÖ´Ù¸é ±×°ÍÀº DTD-determined ID °¡ µÉ °ÍÀ̰í, attribute information item ÀÇ [normalized value] ¼Ó¼ºÀÇ °ª¿¡ ÀÇÇØ ±¸ºÐµÉ °ÍÀÌ´Ù.

  4. element information item Àº externally-determined ID ÀÇ °ª¿¡ ÀÇÇØ¼­µµ ½Äº°µÉ ¼ö ÀÖ´Ù.

¸¸¾à shorthand pointer ÀÇ NCName ¿¡ ÀÇÇØ ³ªÅ¸³»¾î Áö´Â element information item ÀÌ Çϳªµµ ¾ø´Ù¸é, pointer ´Â error ÀÌ´Ù.

ÁÖÀÇ:

element information item ´Â ¹®¼­ »ó¿¡¼­ ´ÙÀ½°ú °°Àº ¿©·¯°¡Áö °ªµé¿¡ ÀÇÇØ º¹ÇÕÀûÀ¸·Î ³ªÅ¸³»¾î Áú ¼ö ÀÖ´Ù. DTD-determined IDs, schema-determined IDs, externally-determined IDs. ±×·±ÇÑ ¹®¼­¿¡¼­, Çù¾÷¼º(interoperability)ÀÌ Áö¿øµÇÁö ¾Ê´Â´Ù¸é ƯÁ¤ÇÑ ¿ø¼Ò¿¡ ´ëÇÑ ½Äº°ÀÚÀÇ °ªÀº Ç×»ó µ¿ÀÏÇÏÁö´Â ¾ÊÀ» °ÍÀÌ´Ù.

[Á¤ÀÇ: ¿ÀÁ÷ ´ÙÀ½°ú °°Àº Á¶°ÇÀ» ¸¸Á·ÇÏ´Â °æ¿ì (if and only if) element information item À̳ª attribute information item Àº schema-determined ID ÀÌ´Ù.]

  1. [member type definition] ³ª [type definition] ¼Ó¼ºÀ» °¡Áö¸ç ±× °ªÀº [name] Àº ID ¿Í °°°í, [target namespace] ´Â http://www.w3.org/2001/XMLSchema ¿Í °°Àº °æ¿ì

  2. [base type definition] À» °¡Áö¸ç, ±× °ªÀº [name] ¿Í [target namespace] ¸¦ °¡Áö´Â °æ¿ì

  3. [base type definition] À» °¡Áö¸ç, ±× °ªÀº [base type definition] ¸¦ °¡Áö°í ±× °ªÀº [name] and [target namespace] À» °¡Áö°í, °è¼ÓÇØ¼­ [base type definition] ÀÇ ¼Ó¼ºÀ» Àç±ÍÀûÀ¸·Î µû¸£´Â °æ¿ì

  4. [type definition name] Àº ID ¿Í °°°í, [type definition namespace] ´Â http://www.w3.org/2001/XMLSchema ¿Í °°Àº °æ¿ì

  5. [member type definition name] ÀÌ ID ¿Í °°°í, [member type definition namespace] ´Â http://www.w3.org/2001/XMLSchema ¿Í °°Àº °æ¿ì

[Á¤ÀÇ: attribute information item ÀÌ [type definition] ¼Ó¼ºÀ» °¡Áö¸ç ±× °ªÀÌ ID ¿Í µ¿ÀÏÇÑ °æ¿ì (if and only if) attribute information item Àº DTD-determined ID ÀÌ´Ù.]

[Á¤ÀÇ: externally-determined ID Àº ¿ø¼ÒÀÇ ½Äº°ÀÚ¸¦ ³ªÅ¸³»´Â ¹®ÀÚ¿­À̸ç, ±× °ªÀº (ÀÌ ¸í¼¼ÀÇ ¹üÀ§¸¦ ¹þ¾î³ª´Â ¸ÞÄ«´ÏÁòÀ» ÅëÇØ) application ¿¡¼­ °áÁ¤µÈ´Ù.]

ÁÖÀÇ:

shorthand pointer ´Â XML-based media type ÀÇ ÀÚ¿ø¿¡ ´ëÇØ HTML ºÎºÐ ½Äº°ÀÚ¿Í ´ëüÀûÀ¸·Î ºñ½ÁÇÏ°Ô µ¿ÀÛÇÑ´Ù. ÇÏÁö¸¸, ¸¸¾à DTD ³ª schema ȤÀº application ÀÇ °íÀ¯ÇÑ Á¤º¸ µîÀÌ ¾ø¾î¼­ ID Á¤º¸°¡ ¾ø´Â °æ¿ì¿¡´Â pointer ´Â ¾î¶°ÇÑ ¿ø¼Òµµ °¡¸®Å°Áö ¸øÇÑ´Ù. ´õ¿í ½Å·Ú¼ºÀÖ´Â ¿ø¼ÒÀÇ ½Äº°À» À§ÇÑ ¸î°¡Áö ¹æ¹ýµéÀÌ ÀÖ´Ù. ¿¹¸¦ µé¾î ÀÚ¿øÀ» »ý¼ºÇÑ »ç¶÷Àº ID ŸÀÔÀÇ ¼Ó¼ºÀÌ Á¸ÀçÇÔÀ» ³ªÅ¸³»±â À§ÇØ ³»ºÎÀûÀÎ DTD ÀÇ ºÎºÐÁýÇÕÀ» »ç¿ëÇÒ ¼ö ÀÖ°í, pointer ¸¦ »ý¼ºÇÑ »ç¶÷Àº shorthand pointer ´ë½Å scheme-based pointer ¸¦ »ç¿ëÇϰųª, ¿øÇÏ´Â ¿ø¼Ò¸¦ ´Ù¸¥ ¹æ¹ýÀ¸·Î °¡¸®Å°±â À§ÇØ Çϳª ÀÌ»óÀÇ scheme À» Á¦°øÇÒ ¼ö ÀÖ´Ù.

ÁÖÀÇ:

À§¿¡¼­ Á¤ÀÇÇÑ ³»¿ëµéÀº ¹®¼­ ³»¿¡¼­ element information item ¿¡ ÀÇÇØ ±¸º°µÇ´Â °ªÀÌ À¯ÀÏÇÑ °ªÀÎÁö ¾Æ´ÑÁö¿¡ ¿µÇâÀ» ¹ÞÁö ¾Ê´Â´Ù. ¿Ö³ÄÇϸé [XML] À̳ª [XMLSchema] ¿¡¼­ ID ŸÀÔ¿¡ ´ëÇØ ÀÌ·¯ÇÑ »çÇ׿¡ ´ëÇØ ¿ä±¸ÇÏÁö ¾Ê±â ¶§¹®ÀÌ´Ù.

3.3 Scheme-Based Pointer

scheme-based pointer ´Â Çϳª ÀÌ»óÀÇ pointer part ·Î ±¸¼ºµÇ¸ç À̵éÀº °¢°¢ °ø¹é¹®ÀÚ (S) ·Î ±¸ºÐµÉ ¼ö ÀÖ´Ù. °¢ ºÎºÐµéÀº scheme name ¸¦ °¡Áö¸ç, °ýÈ£¾È¿¡ scheme ¿¡ ÇØ´çÇÏ´Â µ¥ÀÌŸ (EscapedData) ¸¦ Æ÷ÇÔÇÑ´Ù. ¸¸¾à scheme data ³»ºÎ¿¡ °ýÈ£°¡ µé¾îÀÖ´Ù¸é ±×°ÍµéÀº ¹Ýµå½Ã ½ÖÀ» ÀÌ·ç°Å³ª escape ó¸® µÇ¾î¾ß ÇÑ´Ù.

´Ù¼öÀÇ pointer part °¡ Á¦°øµÇ´Â °æ¿ì, XPointer processor ´Â ¹Ýµå½Ã ¿ÞÂʺÎÅÍ Ã³¸®ÇØ °¡¾ßÇÑ´Ù. ¸¸¾à XPointer processor °¡ pointer part ¿¡¼­ »ç¿ëµÈ scheme À» Áö¿øÇÏÁö ¾Ê´Â °æ¿ì¿¡´Â, ±× ºÎºÐÀº ±×³É Áö³ªÄ£´Ù. ¸¸¾à pointer part °¡ ¾î¶°ÇÑ ÇÏÀ§ ÀÚ¿øµµ °¡¸®Å°Áö ¾Ê´Â °æ¿ì¿¡´Â, °è¼ÓÇØ¼­ ´ÙÀ½ÀÇ pointer part °¡ °è»êµÈ´Ù. ù¹øÂ° pointer part ÀÇ °è»ê °á°ú Çϳª ÀÌ»óÀÇ ÇÏÀ§ ÀÚ¿øÀ» °¡¸®Å°°Ô µÇ´Â °æ¿ì XPointer processor ´Â pointer ÀüüÀÇ °á°ú·Î ÀνÄÇÏ°í °è»êÀ» ¸ØÃá´Ù. ¸¸¾à ¾î¶°ÇÑ pointer part µµ ÇÏÀ§ ÀÚ¿øÀ» °¡¸®Å°Áö ¾Ê´Â °æ¿ì´Â error ÀÌ´Ù.

´ÙÀ½ÀÇ ¿¹Á¦¿¡¼­, ¸¸¾à 'xpointer' ¶ó´Â pointer part °¡ ¾Ë¼ö ¾ø´Â °ÍÀ̰ųª ¾î¶°ÇÑ ÇÏÀ§ ÀÚ¿øÀ» °¡¸®Å°´Â µ¥¿¡ ½ÇÆÐÇÑ´Ù¸é, 'element' ¶ó´Â pointer part °¡ °è»êµÉ °ÍÀÌ´Ù. ¸¸¾à 'xpointer' ¶ó´Â pointer part °¡ ÇÏÀ§ ÀÚ¿øÀ» °¡¸®Å²´Ù¸é 'element' ¶ó´Â pointer part ´Â °è»êµÇÁö ¾Ê´Â´Ù.

#xpointer(id('boy-blue')/horn[1])element(boy-blue/3)

scheme name Àº ¹®¹ýÀûÀ¸·Î, [XML-Names] ¿¡ Á¤ÀÇµÈ »ý·«°¡´ÉÇÑ Prefix ºÎºÐ°ú LocalPart ºÎºÐÀ¸·Î ±¸¼ºµÈ´Ù. °£·«ÇÏ°Ô ¸»Çϸé, scheme name Àº LocalPart ¿Í namespace binding context ÇÏ¿¡¼­ Prefix ¿¡ ´ëÀÀÇÏ´Â namespace name À¸·Î ±¸¼ºµÈ ¼ø¼­½Ö(tuple) ÀÌ´Ù. ¸¸¾à namespace binding context °¡ ÇØ´çÇÏ´Â ¾î¶² prefix µµ Æ÷ÇÔÇϰí ÀÖÁö ¾Ê°Å³ª, (namespace name, LocalPart) ÀÇ ½ÖÀÌ XPointer processor °¡ Áö¿øÇÏ´Â scheme name ¿¡ ÇØ´çÇÏÁö ¾Ê´Â °æ¿ì, pointer part ´Â °è»êµÇÁö ¾Ê´Â´Ù.

ÀÌ ¸í¼¼´Â W3C ±Ç°í¾È¿¡ Á¤ÀÇµÈ Ãß°¡ÀûÀÎ XPointer scheme µé¿¡ ´ëÇÑ ¸ðµç Çã°¡µÇÁö ¾Ê´Â scheme name µé¿¡ ´ëÇØ¼­µµ ¿¹¾àÇØ µÎ°í ÀÖ´Ù. scheme name À¸·Î QNames À» »ç¿ëÇÏ´Â °ÍÀº ´Ù¸¥ XML-based media type ¿¡ ´ëÇØ¼­µµ ÀÌ framework À» ÀÌ¿ëÇÏ¿© µ¶ÀÚÀûÀÎ ºÎºÐ ½Äº°ÀÚ ¾ð¾î¸¦ Á¤ÀÇÇϵµ·Ï ÇÏ´Â È®À强ÀÖ´Â ÀϹÝÀûÀÎ framework ¸¦ Á¦°øÇÑ´Ù. XPointer framework ¿¡¼­ »ç¿ëµÇ¾îÁú ¸ðµç scheme ÀÇ Á¤ÀÇ´Â ¹Ýµå½Ã (namespace name, LocalPart) ÀÇ ½ÖÀ¸·Î ±¸¼ºµÈ scheme name À» ¸í½ÃÇØ¾ß ÇÑ´Ù.

3.4 Namespace Binding Context

scheme ¸í¼¼´Â scheme name, ¿ø¼Ò À̸§, ¼Ó¼º À̸§ µî°ú pointer part ¿¡ »ç¿ëµÇ´Â ´Ù¸¥ QNames µéÀÇ prefix ¸¦ ÇØ¼®ÇÒ ¸ñÀûÀ¸·Î XML À̸§°ø°£ [XML-Names] ÀÇ prefix ¸¦ À̸§°ø°£ÀÇ À̸§À¸·Î ÁöÁ¤ÇÒ ¼ö ÀÖ´Â ¹æ¹ýÀ» Á¦°ø ÇÒ ¼ö ÀÖ´Ù. ÀÌ·¯ÇÑ ±â´ÉÀº ÁúÀǻ󿡼­ scheme ¿¡ ÀÇÇØ ¸í½ÃÀûÀ¸·Î ¿¹¿Ü°¡ ¹ß»ýµÇÁö ¾Ê´Â ÇÑ, À̸§°ø°£À» ÁöÁ¤ÇÑ pointer part º¸´Ù ¿À¸¥ÂÊ¿¡ À§Ä¡ÇÏ´Â ¸ðµç pointer part ¿¡°Ô Àû¿ëµÇ´Â namespace binding context ¸¦ Á¦°øÇÑ´Ù. À̸§°ø°£ ÁöÁ¤À» Á¦°øÇÏ´Â scheme ¿¡¼­´Â ¹Ýµå½Ã ÀÌ·¯ÇÑ À̸§°ø°£ÀÇ ÁöÁ¤ÀÌ ÀÌÈÄÀÇ pointer part µé¿¡°Ô ¿µÇâÀ» ÁÖ´Â Áö¸¦ ¹®¼­È­ ÇØ¾ß ÇÑ´Ù. ¸ðµç scheme ¿¡ ´ëÇÑ ¹®¼­¿¡¼­´Â ±× scheme ÀÌ namespace binding context ¸¦ »ç¿ëÇÏ´ÂÁö¸¦ ¹Ýµå½Ã ¸í½ÃÇØ¾ß ÇÑ´Ù.

´ÙÀ½ÀÇ ¿¹Á¦¿¡¼­ 'xmlns' scheme Àº ([XPtrXmlns] Âü°í) namespace binding context ¿¡ (prefix/namespace name) ÀÇ ÁöÁ¤À» Ãß°¡Çϴµ¥ »ç¿ëµÇ¾ú´Ù. XPointer processor ´Â ÀÌ Á¤º¸¸¦ img:rect °¡ Áö¿ø°¡´ÉÇÑ scheme ÀÇ À̸§À» ³ªÅ¸³»´ÂÁö¸¦ È®ÀÎÇϴµ¥ »ç¿ëÇÑ´Ù.

#xmlns(img=http://example.org/image)img:rect(10,10,50,50)

ÃʱâÀÇ namespace binding context ´Â ÇϳªÀÇ °³Ã¼¸¦ °¡Áö´Â ù¹øÂ° pointer part ÀÇ °è»êº¸´Ù ¿ì¼±½ÃµÈ´Ù: xml prefix ´Â http://www.w3.org/XML/1998/namespace ÀÇ À̸§°ø°£¿¡ ÁöÁ¤µÇ¾î ÀÖ´Ù. namespace binding context ´Â ´ÙÀ½ Á¦ÇÑ»çÇ×µéÀÇ ÁÖüÀÌ´Ù. ÀÌ·¯ÇÑ Á¦ÇÑ»çÇ×µéÀ» ¾î±âµµ·Ï ½ÃµµÇÏ´Â °ÍÀº namespace binding context »ó¿¡ ¾Æ¹«·± ¿µÇâÀ» ÁÖÁö ¸øÇÑ´Ù.

  • xml prefix ´Â http://www.w3.org/XML/1998/namespace ÀÇ À̸§°ø°£¿¡ ÁöÁ¤µÇ¾î ÀÖ´Ù. À̰ÍÀº ´Ù¸¥ À̸§°ø°£À¸·Î ÁöÁ¤µÇ¾î¼­´Â ¾ÈµÈ´Ù.

  • À̸§°ø°£ http://www.w3.org/XML/1998/namespace ´Â xml À̶ó´Â prefix ·Î ÁöÁ¤µÇ¾î ÀÖ´Ù. À̰ÍÀº ´Ù¸¥ prefix ·Î ÁöÁ¤µÇ¾î¼­´Â ¾ÈµÈ´Ù.

  • xmlns prefix ´Â À̸§°ø°£À¸·Î ÁöÁ¤µÇ¾î¼­´Â ¾ÈµÈ´Ù.

  • À̸§°ø°£ http://www.w3.org/2000/xmlns/ ´Â ¾î¶² prefix ·Îµµ ÁöÁ¤µÇ¾î¼­´Â ¾ÈµÈ´Ù.

x, m, l ¼¼±ÛÀÚ·Î ½ÃÀÛÇÏ´Â prefix ´Â ¸ðµÎ ¿¹¾àµÇ¾î ÀÖ´Ù. »ç¿ëÀÚ´Â XML À̳ª XML ¿¡ °ü·ÃµÈ ¸í¼¼¿¡¼­ Á¤ÀÇµÈ °æ¿ì¸¦ Á¦¿ÜÇϰí À̵é prefix ¸¦ »ç¿ëÇÏÁö ¸»¾Æ¾ß ÇÑ´Ù.

4 ¹®ÀÚÀÇ Escaping

XPointer ÀÇ ¹®ÀÚ¼ÂÀº [Unicode] ÀÌ´Ù. ÇÏÁö¸¸, XPointer ¾ð¾î´Â ƯÁ¤ ¹®ÀÚÀÇ ÀÎÄÚµùÀ̳ª escaping À» ¿ä±¸ÇÏ´Â URI ÂüÁ¶ [RFC 2396] ȯ°æÀ̳ª, IRI ÂüÁ¶ [IRI] ȯ°æ ÇÏ¿¡¼­ »ç¿ëµÇµµ·Ï µðÀÚÀεǾú´Ù. XPointer ¿Í XPointer ¸¦ Æ÷ÇÔÇÏ´Â IRI ÂüÁ¶´Â XML ¹®¼­³ª ¿ÜºÎÀÇ ºÐ¼®µÈ °³Ã¼¿¡¼­ Á¾Á¾ µîÀåÇϸç, À̰ÍÀº encoding ÀÌ Á÷Á¢ÀûÀ¸·Î »ç¿ëµÇ´Â ºÎºÐÀÌ Á¦ÇѵǴ °æ¿ì °íÀ¯ÇÑ escaping ÀÌ ¿ä±¸µÇ¾î Áø´Ù. ´Ù¸¥ ȯ°æ¿¡¼­µµ XPointer ¿¡ Àû¿ëµÇ´Â Ãß°¡ÀûÀÎ escaping À» ¿ä±¸ÇÒ ¼ö ÀÖ´Ù. ¶ÇÇÑ, ƯÁ¤ ¹®ÀÚµéÀº XPointer ÀÇ Ã³¸® Áß¿¡ Ưº°ÇÑ ¿ëµµ·Î »ç¿ëµÇ¹Ç·Î ÀÌ·¯ÇÑ ¹®ÀÚµéÀ» ¹®ÀÚ ±×´ë·ÎÀÇ Àǹ̷Π»ç¿ëÇϱâ À§Çؼ­´Â escaping ÀÌ ÇÊ¿äÇÑ´Ù.

4.1 Escaping ȯ°æ

´ÙÀ½°ú °°Àº ȯ°æ¿¡¼­´Â XPointer ¿¡ Àû¿ëµÇ´Â ´Ù¾çÇÑ Å¸ÀÔÀÇ escaping ÀÌ ¿ä±¸µÈ´Ù:

A. XPointer-¿¡¼­ Ưº°È÷ »ç¿ëµÇ´Â ¹®ÀÚÀÇ escaping

3.1 ¹®¹ý Àý¿¡¼­ ¼³¸íÇßµíÀÌ, ½ÖÀ» ÀÌ·çÁö ¾Ê´Â °ýÈ£¿Í ²©¼è´Â ¹Ýµå½Ã escape 󸮸¦ ÇØ¾ß ÇÑ´Ù.

B. IRI ¿¡¼­ ¿¹¾àµÈ ¹®ÀÚÀÇ Escaping °ú ÀÎÄÚµù

[Á¤ÀÇ: IRI (Internationalized Resource Identifier) ´Â URI ÀÇ ¹®¹ýÀ» º¸´Ù ±¤¹üÀ§ÇÑ [Unicode] ¹®ÀÚµé·Î È®ÀåÇÑ ÇÁ·ÎÅäÄÝ ¿ä¼Ò (protocol element) ÀÌ´Ù.] IRI ÂüÁ¶´Â escape µÈ URI ÂüÁ¶ÀÇ ¸ðµç ¹®ÀÚµéÀ» Æ÷ÇÔÇϸç, ÀϹÝÀûÀÎ Àǹ̷ΠÆÛ¼¾Æ® ±âÈ£ (%) ¸¦ »ç¿ëÇÒ ¶§´Â ¹Ýµå½Ã escape 󸮸¦ ÇØ¾ß ÇÑ´Ù. ¿Ö³ÄÇÏ¸é ÆÛ¼¾Æ® ±âÈ£´Â URI ¿Í IRI ¿¡¼­ escaping À» À§ÇÑ ¹®ÀÚ·Î »ç¿ëµÇ±â ¶§¹®ÀÌ´Ù.

µû¶ó¼­ IRI ÂüÁ¶¿¡ pointer °¡ Æ÷ÇÔµÈ °æ¿ì, ÆÛ¼¾Æ® ±âÈ£ (%) ¸¦ »ç¿ëÇÒ ¶§´Â ¹Ýµå½Ã escape 󸮰¡ µÇ¾î¾ß ÇÑ´Ù. ´Ù¸¥ ¹®Àڵ鵵 escape ó¸®µÉ ¼ö ÀÖÁö¸¸ À̸¦ ÃßõÇÏÁö´Â ¾Ê´Â´Ù. ¹®ÀÚµéÀº ´ÙÀ½°ú °°ÀÌ escape ó¸® µÈ´Ù:

  1. escape ó¸®µÉ °¢°¢ÀÇ ¹®ÀÚ´Â UTF-8 [RFC 2279] ·Î º¯È¯µÈ´Ù. (ÇÑ ¹ÙÀÌÆ® ÀÌ»óÀÌ µÉ ¼ö ÀÖÀ½)

  2. °á°ú·Î ³ª¿À´Â ¹ÙÀÌÆ®µéÀº URI escaping ¸ÞÄ«´ÏÁò¿¡ µû¶ó escape 󸮵ȴÙ. (Áï, ¹ÙÀÌÆ®ÀÇ °ªÀÌ 16Áø¼ö·Î HH ÀÏ ¶§, %HH ·Î º¯È¯µÈ´Ù.)

  3. ¿ø·¡ÀÇ ¹®ÀÚ´Â °á°ú·Î ³ª¿À´Â ¹ÙÀÌÆ®(µé) ·Î ´ëüµÈ´Ù.

¿¹¸¦ µé¾î % ´Â %25 °¡ µÈ´Ù.

C. URI ¿¡¼­ ¿¹¾àµÈ ¹®ÀÚÀÇ Escaping °ú ÀÎÄÚµù

IRI ÂüÁ¶´Â URI resolver ¸¦ ÅëÇØ URI ÂüÁ¶·Î º¯È¯µÉ ¼ö ÀÖ´Ù. ASCII ¹®ÀÚ°¡ ¾Æ´Ñ ¸ðµç ¹®ÀÚ¿Í ¼¥ ±âÈ£ (#), ÆÛ¼¾Æ® ±âÈ£ (%), ´ë°ýÈ£ ([]) ¸¦ Á¦¿ÜÇÑ [RFC 2396] ÀÇ 2.4 Àý¿¡ ¸í½ÃµÈ ±ÝÁö ¹®ÀÚ µéÀ» Æ÷ÇÔÇÑ URI ÂüÁ¶¿¡¼­ Çã¿ëµÇÁö ¾Ê´Â ¹®ÀÚµéÀº [RFC 2732] ¿¡¼­ ´Ù½Ã Çã¿ëµÇ¾ú´Ù. Çã¿ëµÇÁö ¾Ê´Â ¹®ÀÚµéÀº ´ÙÀ½°ú °°ÀÌ escape 󸮵ȴÙ:

  1. °¢°¢ÀÇ Çã¿ëµÇÁö ¾ÊÀº ¹®ÀÚ´Â UTF-8 [RFC 2279] ·Î º¯È¯µÈ´Ù. (ÇÑ ¹ÙÀÌÆ® ÀÌ»óÀÌ µÉ ¼ö ÀÖÀ½)

  2. °á°ú·Î ³ª¿À´Â ¹ÙÀÌÆ®µéÀº URI escaping ¸ÞÄ«´ÏÁò¿¡ µû¶ó escape 󸮵ȴÙ. (Áï, ¹ÙÀÌÆ®ÀÇ °ªÀÌ 16Áø¼ö·Î HH ÀÏ ¶§, %HH ·Î º¯È¯µÈ´Ù.)

  3. ¿ø·¡ÀÇ ¹®ÀÚ´Â °á°ú·Î ³ª¿À´Â ¹ÙÀÌÆ®(µé) ·Î ´ëüµÈ´Ù.

D. XML escaping

¸¸¾à pointer °¡ XML ¹®¼­³ª ¿ÜºÎÀÇ ºÐ¼®µÈ °³Ã¼ ³»¿¡ µîÀåÇÑ´Ù¸é, »ç¿ëµÈ ÀÎÄÚµù¿¡¼­ Ç¥ÇöÇÏÁö ¸øÇÏ´Â ¹®ÀÚµéÀº ¹Ýµå½Ã ¹®ÀÚ ÂüÁ¶·Î escape 󸮵Ǿî¾ß Çϸç, XML ó¸® »ó¿¡¼­ Ưº°ÇÑ ¿ëµµ·Î »ç¿ëµÇ´Â ¹®ÀÚµéÀº ±× ¹®ÀÚ°¡ µîÀåÇÑ °÷¿¡¼­ ¹®ÀÚ ÂüÁ¶³ª °³Ã¼ ÂüÁ¶¿Í °°Àº ÀûÀýÇÑ ¸ÞÄ«´ÏÁòÀ¸·Î ¹Ýµå½Ã escape ó¸® µÇ¾î¾ß ÇÑ´Ù. ÀÌ·¯ÇÑ escaping Àº XML ¹®¼­³ª °³Ã¼°¡ ºÐ¼®(parse)µÉ ¶§ ¿¹¾àµÈ´Ù. URI ÂüÁ¶°¡ (Á»´õ ÀϹÝÀûÀÎ IRI ÂüÁ¶°¡ ¾Æ´Ï¶ó) XML ¹®¼­ »ó¿¡ ³ªÅ¸³ª°Ô ÇÏÁö ¾Ê±â¸¦ ±Ç°íÇÑ´Ù. ¸¸¾à ¾î¶°ÇÑ ÀÌÀ¯·Î ±×°ÍÀÌ ºÒ°¡ÇÇÇÏ´Ù¸é, µ¿ÀÏÇÑ escaping ¸ÞÄ«´ÏÁòÀÌ Àû¿ëµÈ´Ù.

XPointer processor ¿¡¼­´Â ¿ÀÁ÷ XPointer ¿¡¼­ Ưº°ÇÑ ¿ëµµ·Î »ç¿ëµÇ´Â ¹®ÀÚ (A) ¸¸À» ¿¹¾àÇØ µÎ¾ú±â ¶§¹®¿¡, application ¿¡¼­´Â ¹Ýµå½Ã pointer °¡ ÀÇÁ¸ÇÏ´Â ´Ù¸¥ Á¾·ùÀÇ ÀÎÄÚµùÀ̳ª escaping (B, C, D) À» ¿¹¾àÇØ µÎ¾î¾ß ÇÑ´Ù. ¸¸¾à XPointer processor ¿¡ ³Ñ°ÜÁø °á°ú°¡ ÀÌ ¸í¼¼ÀÇ XPointer ¹®¹ý ±ÔÄ¢À» µû¸£Áö ¾Ê´Â´Ù¸é, error ÀÌ´Ù.

4.2 Escaping ¿¹Á¦

´ÙÀ½ÀÇ Ç¥´Â ½ÖÀ» ÀÌ·çÁö ¾Ê´Â °ýÈ£, °ãµû¿ÈÇ¥, °ø¹é µîÀ» Æ÷ÇÔÇÏ´Â ´Ù¾çÇÑ XPointer ÀÇ È¯°æÇÏ¿¡¼­´Â escaping À» º¸¿©ÁØ´Ù. ÀÌ ¿¹Á¦´Â 'xpointer' scheme À» »ç¿ëÇÏ¿´À¸¸ç ([XPtrXPointer] ÂüÁ¶), 'xpointer' scheme ¿¡¼­´Â scheme data ¿¡ ¹®ÀÚ¿­ÀÌ Æ÷Ç﵃ ¼ö ÀÖ´Ù.

ȯ°æ Ç¥±â
ÃʱâÀÇ Scheme Data ÃÖÃÊ¿¡ »ý¼ºµÈ xpointer scheme data:
string-range(//P,"my favorite smiley :-)")
A. XPointer ÀÌ ¸í¼¼¿¡¼­ ¿ä±¸ÇÑ ´ë·Î, scheme data ³»ÀÇ Â¦À» ÀÌ·çÁö ¾Ê´Â °ýÈ£¸¦ escape ó¸®:
xpointer(string-range(//P,"my favorite smiley :-^)"))
B. IRI ÂüÁ¶ ³»ÀÇ Pointer A ¿Í µ¿ÀÏ (escape ó¸®ÇØ¾ß ÇÒ ÆÛ¼¾Æ® ±âÈ£ ¾øÀ½):
#xpointer(string-range(//P,"my favorite smiley :-^)"))
C. IRI ÂüÁ¶¸¦ URI ÂüÁ¶·Î º¯È¯ °ãµû¿ÈÇ¥ (%22), °ø¹é (%20), ²©¼è (%5E) escape ó¸®:
#xpointer(string-range(//P,%22my%20favorite%20smiley%20:-%5E)%22))
D. XML ¹®¼­ ³»ÀÇ IRI ÂüÁ¶ °ãµû¿ÈÆ÷¸¦ XML ¿¡¼­ Á¤ÀÇµÈ &quot; °³Ã¼ ÂüÁ¶·Î escape ó¸® (°ãµû¿ÈÇ¥·Î ¹­ÀÎ ¼Ó¼ºÀÇ °ª ³»¿¡ IRI ÂüÁ¶ ³»¿¡ pointer °¡ µîÀåÇÑ´Ù°í °¡Á¤):
#xpointer(string-range(//P,&quot;my favorite smiley :-^)&quot;))

´ÙÀ½ÀÇ Ç¥´Â ´Ù¾çÇÑ È¯°æ ÇÏ¿¡¼­ ¾Ç¼¾Æ® ¹®ÀÚ¸¦ Æ÷ÇÔÇÏ´Â XPointer ÀÇ escaping 󸮸¦ º¸¿©ÁØ´Ù. XML ¹®¼­´Â "é" ¹®ÀÚ¸¦ Á÷Á¢ »ç¿ëÇÒ ¼ö ¾ø´Â US-ASCII ·Î ÀÎÄÚµù µÇ¾ú´Ù°í °¡Á¤ÇÑ´Ù.

ȯ°æ Ç¥±â
ÃʱâÀÇScheme Data ÃÖÃÊ¿¡ »ý¼ºµÈ xpointer scheme data:
id('résumé')
A. XPointer XPointer (escape ÇØ¾ßÇÒ ²©¼è³ª ¦À» ÀÌ·çÁö ¾Ê´Â °ýÈ£°¡ ¾øÀ½):
xpointer(id('résumé'))
B. IRI ÂüÁ¶ ³»ÀÇ Pointer A ¿Í µ¿ÀÏ (escape ÇØ¾ßÇÒ ÆÛ¼¾Æ® ±âÈ£ ¾øÀ½):
#xpointer(id('résumé'))
C. IRI ÂüÁ¶¸¦ URI ÂüÁ¶·Î º¯È¯ "é" ¹®ÀÚ escape ó¸® (%C3%A9):
#xpointer(id('r%C3%A9sum%C3%A9'))
D. XML ¹®¼­ ³»ÀÇ IRI ÂüÁ¶ US-ASCII ÀÎÄÚµùÀ¸·Î Ç¥Çå; ¾Ç¼¾Æ® ¹®ÀÚ´Â XML ¹®ÀÚ Ç¥Çö¹æ½ÄÀ¸·Î escape ó¸®:
#xpointer(id('r&#xE9;sum&#xE9;'))

A ÂüÁ¶¹®¼­

A.1 Ç¥ÁØ ÂüÁ¶¹®¼­

Infoset
John Cowan and Richard Tobin, editors. XML Information Set. World Wide Web Consortium, 2001.
RFC 2119
Scott Bradner, RFC 2119: Key words for use in RFCs to Indicate Requirement Levels. Internet Engineering Task Force, 1997.
RFC 2396
Tim Berners-Lee, Roy Fielding, and Larry Masinter, RFC 2396: Uniform Resource Identifiers. Internet Engineering Task Force, 1995.
RFC 2732
Robert Hinden, Brian Carpenter, and Larry Masinter, RFC 2732: Format for Literal IPv6 Addresses in URL's. Internet Engineering Task Force, 1999.
RFC 2279
François Yergeau RFC 2279: UTF-8, a transformation format of ISO 10646. Internet Engineering Task Force, 1998.
RFC 3023
MURATA Makoto, Simon St.Laurent, and Dan Kohn, RFC 3023: XML Media Types. Internet Engineering Task Force, 2001.
XML
Tim Bray, Jean Paoli, C.M. Sperberg-McQueen, and Eve Maler, editors. Extensible Markup Language (XML) 1.0 (Second Edition). World Wide Web Consortium, 2000.
XML-Names
Tim Bray, Dave Hollander, and Andrew Layman, editors. Namespaces in XML. World Wide Web Consortium, 1999.
XMLSchema
Henry Thompson et al., editors. XML Schema Part 1. World Wide Web Consortium, 2001.
Unicode
The Unicode Consortium The Unicode Standard.

A.2 ºñÇ¥ÁØ ÂüÁ¶¹®¼­

HTML
Dave Raggett, Arnaud Le Hors, and Ian Jacobs. HTML 4.01 Specification. World Wide Web Consortium, 1999.
IRI
Martin J. Dürst and Michel Suignard Internationalized Resource Identifiers (IRI) Internet draft draft-duerst-iri-01, Internet Engineering Task Force, 2002. Work in progress.
RDF
Dave Beckett, editor. RDF/XML Syntax Specification. World Wide Web Consortium, 2001.
SOAP12
Nilo Mitra et al., editors. SOAP Version 1.2 Parts 0, 1, and 2. World Wide Web Consortium, 2001. Work in progress.
XInclude
Jonathan Marsh and David Orchard, editors. XML Inclusions (XInclude) Version 1.0. Work in progress. World Wide Web Consortium, 2001.
XLink
Steve DeRose, Eve Maler, and David Orchard, editors. XML Linking Language (XLink). World Wide Web Consortium, 2001.
XPtrXmlns
Paul Grosso, Eve Maler, Jonathan Marsh, and Norman Walsh, editors. XPointer xmlns() Scheme. World Wide Web Consortium, 2003.
XPtrXPointer
Steven DeRose, Eve Maler, and Ron Daniel Jr., editors. XPointer xpointer() Scheme. World Wide Web Consortium, 2002. Work in progress.