위치 경로에 노드 테스트 지정(SQLXML 4.0)

적용 대상: SQL Server Azure SQL 데이터베이스

노드 테스트는 위치 단계에서 선택되는 노드 유형을 지정합니다. 모든 축(자식, 부모, 특성 또는 자체)에는 주 노드 유형이 있습니다. 특성 축의 경우 주 노드 형식은 특성>입니다<. 부모, 자식자체 축의 경우 주 노드 형식은 요소>입니다<.

참고

와일드카드 노드 테스트 *(예: child::*)는 지원되지 않습니다.

노드 테스트: 예제 1

위치 경로 child::Customer 는 컨텍스트 노드의 Customer> 요소 자식을 선택합니다<.

이 예에서는 child가 축이고 Customer가 노드 테스트입니다. 자식 축의 주 노드 형식은 요소>입니다<. 따라서 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/Orderchild::Customer/child::Order와 같습니다.

  • self::node()는 한 개의 마침표(.)로 축약할 수 있으며, parent::node()는 두 개의 마침표(..)로 축약할 수 있습니다.