XPath 표현식은 데이터에 액세스하거나 조건이 충족되었는지 판별하기 위해 메시지 또는 변수에서 하나 이상의 노드를 식별해야 할 경우 오케스트레이션 및 플랫 파일 스키마 정의에 사용됩니다.
XPath는 XML 문서에서 노드 또는 노드 세트를 식별하는 문법을 정의하는 XML 표준입니다.
다음과 같은 분할창에 생성되는 기본 XPath 표현식을 편집할 수 있습니다.
XPath 2.0이 지원됩니다.
XPath는 XML 요소 및 속성의 위치를 URL과 비슷한 경로 또는 로컬 파일 시스템의 디렉토리로 나타냅니다. 각 요소 또는 속성은 루트 노드로 시작되는 트리의 노드입니다. 루트 노드에는 전체 트리가 포함되어 있으므로 분기의 경로를 따라 트리 내에 있는 모든 노드를 찾을 수 있습니다.
기본 구문은 다음과 같습니다.
/root-node/child-node/.../final-element-node/root-node/child-node/.../final-element-node/@attribute-node
메시지를 설명하는 XML 스키마에서 이 경로를 판별합니다.
XPath에서는 @ 기호를 속기로 사용하여 속성을 식별합니다. @ 기호 또는 attribute:: 접두부가 없는 경로에서는 기본적으로 요소를 식별합니다. 예를 들면 다음과 같습니다.
/PackingSlip/PONumber/ItemPackingSlip 루트 노드에 있는 PONumber 안에서 발견된 항목 요소를 식별합니다.
노드 이름은 네임스페이스와 함께 나타날 수도 있습니다(예: tns:OrderNumber 또는 *:Item). 콜론까지의 이름 부분은 네임스페이스를 식별하는 접두부이고 콜론은 네임스페이스와 노드의 로컬 이름 사이의 구분 기호입니다.
네임스페이스는 문서가 여러 스키마의 컨텐츠를 공유할 때 요소 또는 속성을 고유하게 식별하는 데 사용되는 XML 표준입니다. WebSphere® Cast Iron Studio는 구성 문서에 사용된 XML 스키마의 네임스페이스를 자동으로 지정하고 관리합니다.
특정 조건이 충족될 때만 노드를 선택해야 하는 경우가 있습니다. 이러한 선택 조건을 술어라고 합니다.
술어는 다음과 같이 대괄호 안에 정의합니다.
/PV1/PatientDepartment[text()='Nursery']이 표현식은 노드의 데이터가 Nursery일 때만 PatientDepartment 노드를 선택합니다.
/Order/OrderDetail/Item[5]이 표현식은 OrderDetail 내에서 5번째 항목 노드를 선택합니다.
XPath 표현식을 값이 true 또는 false인 부울 조건으로 사용할 수도 있습니다. 이러한 표현식을 사용하여 특정 노드를 선택하거나 충족해야 할 조건을 간단하게 식별할 수 있습니다. 표현식 빌더를 사용하면 조건을 정의하는 데 유용합니다. 표현식에 포함할 수 있는 XPath 연산자는 다음과 같습니다.
concat('New Order # ',/Orders/Order/OrdNumber)
count(/Orders/Order)
normalize-space(/Job/Address/Line1)
string(/PurchaseOrder/VendorID)
translate(/Issue/ShortDescr,
'abcdefghijklmnopqrstuvwxyz',
'ABCDEFGHIJKLMNOPQRSTUVWXYZ')
전체 XPath 함수 목록을 보려면 XPath 스펙( http://www.w3.org/TR/xpath)을 참조하십시오.
XPath 평가 프로그램을 사용하여 XML 테스트에 대해 XPath 표현식을 테스트할 수 있습니다.