IBM Books
(C) IBM Corp. 2000

Net Search Extender

°ü¸® ¹× »ç¿ëÀÚ ¾È³»¼­


·ÎÄÉÀÌÅÍ(XPath) Ç¥Çö½ÄÀÇ ½Ã¸àƽ

XML µ¥ÀÌÅÍ ¸ðµ¨¿¡ µû¶ó, XML ¹®¼­´Â ´ÙÀ½ Á¾·ùÀÇ ³ëµå¸¦ Æ÷ÇÔÇÏ´Â Æ®¸®·Î Ç¥½ÃµË´Ï´Ù.

ÀÌ·¯ÇÑ ³ëµå »çÀÌÀÇ ¸µÅ©(Áï, Æ®¸® Çü¼º °ü°è)´Â XML ¹®¼­¿¡¼­ Áß°£ Æ÷ÇÔ °ü°è¸¦ ¹Ý¿µÇÕ´Ï´Ù.

·çÆ® ³ëµå´Â ·çÆ®¿¡¸¸ ³ªÅ¸³¯ ¼ö ÀÖÀ¸¸ç Æ®¸®¿¡´Â ¾îµð¿¡µµ ³ªÅ¸³ªÁö ¾Ê½À´Ï´Ù. ÇÏÀ§ ¿ä¼Ò·Î ¹®¼­ ¿ä¼Ò ¹× ¼±ÅÃÀû ÁÖ¼®, ó¸® ¸í·É¾î¸¦ Æ÷ÇÔÇÕ´Ï´Ù.

¿ä¼Ò ³ëµå´Â ·çÆ® ³ëµå¸¦ Á¦¿ÜÇÏ°í ¾î¶² Á¾·ùÀÇ ³ëµåµµ Æ÷ÇÔÇÒ ¼ö ÀÖ½À´Ï´Ù. Æ®¸®ÀÇ Å͹̳Π³ëµå¿¡¼­´Â ´Ù¸¥ Á¾·ùÀÇ ³ëµå¸¸ Çã¿ëµË´Ï´Ù.

¼¼ °¡Áö Á¾·ùÀÇ Æ÷ÇÔ ¸µÅ©ÀÎ 'child', 'attribute', 'namespace'°¡ ÀÖ½À´Ï´Ù. 'attribute'¿Í 'namespace' Æ÷ÇÔ ¸µÅ©´Â °¢°¢ ¼Ó¼º ¹× À̸§ ½ºÆäÀ̽º ³ëµå·Î ¾È³»ÇÕ´Ï´Ù. Áï, ¿ä¼Ò ³ëµåÀÇ ÇÏÀ§ ¿ä¼Ò¿¡ ¾×¼¼½ºÇÏ·Á¸é(±×·¡ÇÁ À̷лó) 'attribute' ¸µÅ©¿¡ µû¶ó Æ÷ÇÔµÈ ¸ðµç ¼Ó¼ºÀ» ã°í, 'namespace' ¸µÅ©¿¡ µû¶ó Æ÷ÇÔµÈ ¸ðµç À̸§ ½ºÆäÀ̽º ¼±¾ðÀ» 'child' ¸µÅ©¿¡ µû¶ó Æ÷ÇÔµÈ ¿ä¼Ò, ÅØ½ºÆ® ³ëµå, ó¸® ¸í·É¹® ¹× ÁÖ¼®À» ã¾Æ¾ß ÇÕ´Ï´Ù.

XPath Ç¥Çö½ÄÀº ÄÁÅØ½ºÆ® ³ëµå¿¡ ´ëÇØ ÇØ¼®µÇ¾î¾ß Çϸç, ³ëµå ¼¼Æ®¸¦ Ç¥½ÃÇÕ´Ï´Ù. Net Search Extender ¼±ÅÃ±â ÆÐÅÏÀ¸·Î »ç¿ëµÈ °æ¿ì, ÄÁÅØ½ºÆ® ³ëµå´Â »ç¿ë °¡´ÉÇÕ´Ï´Ù. Áï, »ó´ë °æ·Î ÆÐÅÏ p´Â //p·Î ÇØ¼®µË´Ï´Ù.

´ÙÀ½Àº Net Search Extender XPath ¼±ÅÃ±â ÆÐÅÏÀÔ´Ï´Ù.

Âü°í

¾ç½Ä NameTestÀÇ NodeTest´Â ³ëµå¸¦ ¼Ó¼º Ãà¿¡ ´ëÇØ ¼Ó¼º À¯ÇüÀ̰í ÇÏÀ§ Ãà¿¡ ´ëÇØ ÇÏÀ§ À¯ÇüÀÎ ¼±ÅÃµÈ ÃàÀÇ ÇٽɺΠÀ¯ÇüÀ¸·Î °¡Á¤ÇÕ´Ï´Ù. Áï, NameTest´Â ÁÖ¼®À̳ª ó¸® ¸í·É¾î ³ëµå¸¦ ¼±ÅÃÇϱâ À§ÇØ »ç¿ëÇÒ ¼ö ¾ø°í, ÇÏÀ§ ¹× ¼Ó¼º ³ëµå¸¸ ¼±ÅÃÇϱâ À§ÇØ »ç¿ëÇÒ ¼ö ÀÖ½À´Ï´Ù. ¶ÇÇÑ, ÆÐÅÏÀº Ãà ÁöÁ¤ÀÚ 'namespace'°¡ Çã¿ëµÇÁö ¾ÊÀ¸¹Ç·Î À̸§ ½ºÆäÀ̽º ³ëµåÀÇ °æ¿ì¸¦ Á¦¿ÜÇÏ°í ¾î¶² ³ëµå Á¾·ùÀÇ ¼±Åÿ¡ ´ëÇØ¼­µµ Çã¿ëµË´Ï´Ù.

ÆÐÅÏ¿¡ ´ëÇÑ ¿¹:

´ÙÀ½Àº ·ÎÄÉÀÌÅÍ ¿ä¼ÒÀÇ ±¸¹®ÀÔ´Ï´Ù.

Locator     ::= LocationPathPattern
           | Locator '|'  LocationPathPattern
 LocationPathPattern  ::= '/' RelativePathPattern ?
           | '//'? RelativePathPattern
 RelativePathPattern  ::= StepPattern
           | RelativePathPattern '/' StepPattern
           | RelativePathPattern '//' StepPattern
 StepPattern    ::= ChildOrAttributeAxisSpecifier NodeTest
 ChildOrAttributeAxisSpecifier ::=
           ('child' | 'attribute') '::'
           | '@'?
 NodeTest    ::= NameTest
           | NodeType '(' ')'
           | 'processing-instruction' '(' Literal ')'
 NameTest    ::= '*' | NCName ':' '*' | QName
 NodeType    ::= 'comment' | 'processing-instruction'

NCName ¹× QNameÀº XML À̸§ ±ÇÀå»çÇ׿¡ Á¤ÀÇµÈ ´ë·ÎÀÔ´Ï´Ù.

NCName
ÄÝ·ÐÀ» Æ÷ÇÔÇÏÁö ¾Ê´Â XML À̸§.

QName
ÄÝ·ÐÀÌ µÚµû¸£´Â NCNameÀÌ Ã³¸®ÇÒ ¼ö ÀÖ´Â NCName. ¿¹: NCName:NCName


[ ÆäÀÌÁöÀÇ ¸Ç À§ | ÀÌÀü ÆäÀÌÁö | ´ÙÀ½ ÆäÀÌÁö | ¸ñÂ÷ | »öÀÎ ]