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