適用対象: SQL Server
Azure SQL データベース
ノード テストによって、ロケーション ステップで選択されるノードの型が決まります。 すべての軸 (child、 parent、 attribute、または self) には、主ノード タイプがあります。 attribute軸の場合、プリンシパル ノードの種類は <attribute> です。 親、子、および軸の場合、プリンシパル ノードの種類は<要素>。
Note
ワイルドカード (*) のノード テスト (たとえば child::*) は、サポートされていません。
ノード テスト: 例 1
場所パス child::Customer コンテキスト ノードの子要素 <Customer> を選択します。
この例では、child は軸で、Customer はノード テストです。 子軸の主ノード タイプは<element>です。 したがって、 <Customer> ノードが <element> ノードの場合、ノード テストは TRUE になります。 コンテキスト ノードに <Customer> 子がない場合は、空のノード セットが返されます。
ノード テスト : 例 2
場所のパス attribute::CustomerID コンテキスト ノードの CustomerID 属性を選択します。
この例では、 attribute は軸であり、 CustomerID はノード テストです。 attribute軸のプリンシパル ノード タイプは <attribute> です。 したがって、 CustomerID が <attribute> ノードの場合、ノード テストは TRUE になります。 コンテキスト ノードに CustomerID がない場合は、空のノード セットが返されます。
Note
XPath のこの実装では、場所ステップがスキーマで宣言されていない <要素> または <attribute> 型を参照している場合、エラーが生成されます。 これは、空のノード セットを返す MSXML の XPath の実装とは異なります。
軸の省略構文
ロケーション パスでは、次の省略構文がサポートされています。
attribute::は@で省略できます。ロケーション パス
Customer[@CustomerID="ALFKI"]は、child::Customer[attribute::CustomerID="ALFKI"]と同じです。ロケーション ステップから
child::を省略できます。したがって、 child が既定の軸になります。 ロケーション パス
Customer/Orderは、child::Customer/child::Orderと同じです。self::node()は 1 つのピリオド (.) で省略できます。また、parent::node()は 2 つのピリオド (..) で省略できます。