次の方法で共有


場所パスでのノード テストの指定 (SQLXML 4.0)

ノード テストでは、場所ステップで選択されたノードの種類を指定します。 すべての軸 (childparentattribute、または self) には、主ノード タイプがあります。 attribute軸の場合、プリンシパル ノードの種類は <attribute> です。 parentchild、およびself軸の場合、プリンシパル ノードタイプは<要素>

ワイルドカード ノード テスト * (たとえば、 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() は 1 つのピリオド (..) に省略でき、 parent::node() は 2 つのピリオド (..) に省略できます。