경로 식(XQuery)

적용 대상:SQL Server

XQuery 경로 식은 문서에서 요소, 특성 및 텍스트 노드와 같은 노드를 찾습니다. 경로 식의 결과는 항상 결과 시퀀스에서 중복 노드 없이 문서 순서로 발생합니다. 경로를 지정할 때는 축약되지 않은 구문이나 축약된 구문을 사용할 수 있습니다. 다음 정보는 축약되지 않은 구문에 중점을 둡니다. 약식 구문은 이 항목의 뒷부분에 설명되어 있습니다.

참고 항목

이 항목의 샘플 쿼리는 ProductModel 테이블에서 xml 형식 열인 CatalogDescriptionInstructions에 대해 지정되므로 이러한 열에 저장된 XML 문서의 내용과 구조를 숙지해야 합니다.

경로 식은 상대 또는 절대일 수 있습니다. 다음은 이 두 가지에 대한 설명입니다.

  • 상대 경로 식은 하나 또는 두 개의 슬래시 표시(/또는 //)로 구분된 하나 이상의 단계로 구성됩니다. 예를 들어 child::Features 컨텍스트 노드의 자식 노드만 참조하는 상대 경로 식 Child 입니다. 현재 처리 중인 노드입니다. 식은 컨텍스트 노드의 <Features> 요소 노드 자식을 검색합니다.

  • 절대 경로 식은 하나 또는 두 개의 슬래시 표시(/또는 //) 뒤에 선택적 상대 경로로 시작합니다. 예를 들어 식 /child::ProductDescription의 초기 슬래시 표시는 절대 경로 식임을 나타냅니다. 식의 시작 부분에 있는 슬래시 표시는 컨텍스트 노드의 문서 루트 노드를 반환하므로 식은 문서 루트의 모든 <ProductDescription> 요소 노드 자식을 반환합니다.

    절대 경로가 슬래시 기호 한 개로 시작되면 뒤에 상대 경로가 오거나 오지 않을 수 있습니다. 단일 슬래시 표시만 지정하면 식은 컨텍스트 노드의 루트 노드를 반환합니다. XML 데이터 형식의 경우 문서 노드입니다.

일반적인 경로 식은 단계로 구성됩니다. 예를 들어 절대 경로 식 /child::ProductDescription/child::Summary은 슬래시 표시로 구분된 두 단계를 포함합니다.

  • 첫 번째 단계에서는 문서 루트의 <ProductDescription> 요소 노드 자식을 검색합니다.

  • 두 번째 단계에서는 검색된 <각 ProductDescription> 요소 노드에 대한 Summary> 요소 노드 자식을 검색<합니다. 그러면 컨텍스트 노드가 됩니다.

경로 식의 단계는 축 단계 또는 일반 단계일 수 있습니다.

축 단계

경로 식의 축 단계에는 다음 부분이 있습니다.


이동 방향을 정의합니다. 컨텍스트 노드에서 시작하여 축에서 지정한 방향으로 연결할 수 있는 노드로 이동하는 경로 식의 축 단계입니다.

노드 테스트
선택할 노드 유형 또는 노드 이름을 지정합니다.

0개 이상의 선택적 조건자
일부는 선택하고 일부는 무시하여 노드를 필터링합니다.

다음 예제에서는 경로 식에서 axisstep을 사용합니다.

  • 절대 경로 식 /child::ProductDescription에는 단계가 하나만 있습니다. 축(child) 및 노드 테스트(ProductDescription)를 지정합니다.

  • 상대 경로 식 child::ProductDescription/child::Features은 슬래시 표시로 구분된 두 단계를 포함합니다. 두 단계 모두 자식 축을 지정합니다. ProductDescription 및 기능은 노드 테스트입니다.

  • 상대 경로 식 child::root/child::Location[attribute::LocationID=10]은 슬래시 표시로 구분된 두 단계를 포함합니다. 첫 번째 단계에서는 축(child) 및 노드 테스트(root)를 지정합니다. 두 번째 단계에서는 축(자식), 노드 테스트() 및 조건자[attribute::LocationID=10](Location)의 세 가지 구성 요소를 모두 지정합니다.

축 단계의 구성 요소에 대한 자세한 내용은 경로 식 단계에서 축 지정, 경로 식 단계에서 노드 테스트 지정 및 경로 식 단계에서 조건자 지정을 참조하세요.

일반 단계

일반 단계는 노드 시퀀스로 계산해야 하는 식입니다.

SQL Server의 XQuery 구현은 경로 식의 첫 번째 단계로 일반적인 단계를 지원합니다. 다음은 일반 단계를 사용하는 경로 식의 예입니다.

(/a, /b)/c  
id(/a/b)  

ID 함수에 대한 자세한 내용은 ID 함수(XQuery)를 참조하세요.

이 섹션의 내용

경로 식 단계에서 축 지정
경로 식에서 축 단계를 사용하는 작업에 대해 설명합니다.

경로 식 단계에서 노드 테스트 지정
경로 식에서 노드 테스트 작업에 대해 설명합니다.

경로 식 단계에서 조건자 지정
경로 식에서 조건자를 사용하는 방법에 대해 설명합니다.

경로 식에서 약어 구문 사용
경로 식에서 축약형 구문을 사용하는 방법에 대해 설명합니다.