XPath 式は、データにアクセスするために、または条件を満たしたかどうかを判別するために、メッセージまたは変数内の 1 つ以上のノードを識別する必要がある場合に、オーケストレーションおよびフラット・ファイル・スキーマ定義で使用されます。
XPath は、XML 文書内のノードまたはノードのセット (ノード・セットと呼ばれます) を識別するための文法を定義する XML 標準です。
以下のペインで生成される、デフォルトの XPath 式を編集できます。
XPath 2.0 がサポートされています。
XPath は、URL またはローカル・ファイル・システム上のディレクトリーに類似したパスとして、XML エレメントおよび属性のロケーションを記述します。 各エレメントまたは属性は、ルート・ノードで始まるツリー内のノードです。 ルート・ノードにはツリー全体が含まれるため、ツリー内のノードはいずれも、ブランチまでのパスをたどることによって見つけることができます。
基本的な構文は次のとおりです。
/root-node/child-node/.../final-element-node/root-node/child-node/.../final-element-node/@attribute-node
メッセージを記述する XML スキーマからこのパスを判別します。
XPath は、属性を識別するために、省略表現として @ シンボルを使用します。 @、または attribute:: 接頭部のないパスは、デフォルトでエレメントを識別します。 例:
/PackingSlip/PONumber/ItemPackingSlip ルート・ノード内の PONumber で検出された「Item」エレメントを識別します。
ノード名は、tns:OrderNumber や *:Item などの名前空間とともに示される場合もあります。 名前のコロンまでの部分は名前空間を識別する接頭部で、コロンは名前空間とノードのローカル名を区切る文字です。
名前空間は、文書が複数のスキーマからのコンテンツを共有する際に、エレメントまたは属性を一意的に識別するために使用される XML 標準です。 WebSphere® Cast Iron Studio では、構成文書で使用される XML スキーマの名前空間を自動的に割り当て、管理します。
何らかの条件に適合した時にのみノードを選択することが必要な場合があります。 このような選択条件は述部と呼ばれます。
述部は次のように大括弧で囲んで定義します。
/PV1/PatientDepartment[text()='Nursery']この式は、ノード内のデータが Nursery である場合にのみ、PatientDepartment ノードを選択します。
/Order/OrderDetail/Item[5]この式は、OrderDetail 内の 5 番目の Item ノードを選択します。
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 式をテストできます。