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

노드 테스트는 위치 단계에서 선택되는 노드 유형을 지정합니다. 모든 축(child, parent, attribute 또는 self)에는 주 노드 유형이 있습니다. attribute 축의 주 노드 유형은 **<attribute>**이고 parent, child 및 self 축의 주 노드 유형은 **<element>**입니다.

[!참고]

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

노드 테스트: 예 1

위치 경로를 child::Customer로 지정하면 컨텍스트 노드의 <Customer> 요소 자식이 선택됩니다.

이 예에서는 child가 축이고 Customer가 노드 테스트입니다. child 축의 주 노드 유형은 **<element>**입니다. 따라서 <Customer> 노드가 <element> 노드인 경우 노드 테스트 결과는 TRUE입니다. 컨텍스트 노드에 <Customer> 자식이 없으면 빈 노드 집합이 반환됩니다.

노드 테스트: 예 2

위치 경로를 attribute::CustomerID로 지정하면 컨텍스트 노드의 CustomerID 특성이 선택됩니다.

이 예에서는 attribute가 축이고 CustomerID가 노드 테스트입니다. attribute 축의 주 노드 유형은 **<attribute>**입니다. 따라서 CustomerID<attribute> 노드인 경우 노드 테스트 결과는 TRUE입니다. 컨텍스트 노드에 CustomerID가 없으면 빈 노드 집합이 반환됩니다.

[!참고]

이 XPath 구현에서 위치 단계가 스키마에 선언되어 있지 않은 <element> 또는 <attribute> 유형을 나타내는 경우 오류가 생성됩니다. 이 동작은 빈 노드 집합을 반환하는 MSXML에서의 XPath 구현과는 다릅니다.

축의 축약형 구문

위치 경로에 대한 다음 축약형 구문이 지원됩니다.

  • attribute::는 @ 기호로 축약할 수 있습니다.

    위치 경로 Customer[@CustomerID="ALFKI"]는 child::Customer[attribute::CustomerID="ALFKI"]와 같습니다.

  • child::는 위치 단계에서 생략할 수 있습니다.

    따라서 기본 축은 child이고, 위치 경로 Customer/Order는 child::Customer/child::Order와 같습니다.

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