위치 경로에 노드 테스트 지정(SQLXML 4.0)
노드 테스트는 위치 단계에서 선택되는 노드 유형을 지정합니다. 모든 축(child
, parent
, attribute
또는 self
)에는 주 노드 유형이 있습니다. 축의 attribute
경우 주 노드 형식은 특성>입니다<. , 및 축의 parent
경우 주 노드 형식은 요소>입니다<.self
child
참고
와일드카드 노드 테스트 *(예: child::*
)는 지원되지 않습니다.
노드 테스트: 예제 1
위치 경로 child::Customer
는 컨텍스트 노드의 Customer> 요소 자식을 선택합니다<.
이 예에서는 child
가 축이고 Customer
가 노드 테스트입니다. 축의 주 노드 형식은 child
요소>입니다<. 따라서 고객> 노드가 요소 노드인 경우< 노드 테스트는 TRUE입니다<.> 컨텍스트 노드에 Customer> 자식이 없<으면 빈 노드 집합이 반환됩니다.
노드 테스트: 예제 2
위치 경로 attribute::CustomerID
는 컨텍스트 노드의 CustomerID 특성을 선택합니다.
이 예에서는 attribute
가 축이고 CustomerID
가 노드 테스트입니다. 축의 attribute
주 노드 유형은 특성>입니다<. 따라서 CustomerID가 특성> 노드인 경우 노드 테스트는 TRUE입니다<. 컨텍스트 노드에 CustomerID가 없으면 빈 노드 집합이 반환됩니다.
참고
이 XPath 구현에서 위치 단계가 스키마에 선언되지 않은 요소> 또는 특성 형식을 참조<하는 경우 오류가 생성됩니다.>< 이 동작은 빈 노드 집합을 반환하는 MSXML에서의 XPath 구현과는 다릅니다.
축의 축약형 구문
위치 경로에 대한 다음 축약형 구문이 지원됩니다.
attribute::
는@
기호로 축약할 수 있습니다.위치 경로
Customer[@CustomerID="ALFKI"]
는child::Customer[attribute::CustomerID="ALFKI"]
와 같습니다.child::
는 위치 단계에서 생략할 수 있습니다.따라서 기본 축은
child
이고, 위치 경로Customer/Order
는child::Customer/child::Order
와 같습니다.self::node()
는 한 개의 마침표(.)로 축약할 수 있으며,parent::node()
는 두 개의 마침표(..)로 축약할 수 있습니다.