0

次のようなXMLファイルがあるとします。

<a>
    <b d="value1"/>
    <c d="value2"/>
</a>

このXMLファイルの構造を定義するXSDファイルで、名前「b」と「c」で要素を同じタイプに定義しました(タイプには属性「d」が必要です)。

'b'と'c'の両方であるタイプのすべての要素のkeyReferenceを作成したいとしますが、XPathにこれを行う方法はありますか?

'a'のタイプの定義では、次のようなものが期待されます。

<xs:keyref name="myReferenceName" refer="keyToReferTo">
    <xs:selector xpath="[@type='typenameof elements b and c?']"/>
    <xs:field xpath="@d"/>
</xs:keyref>

このようなことは可能ですか、それともXSDでもXPathはスキーマに対応していませんか?

4

1 に答える 1

1

XPath 1.0 は確かにスキーマを認識しておらず、バージョン 1.0 の W3C XML スキーマ仕様は XPath 1.0 のサブセットしか使用していません。XPath 2.0 を使用する W3C XML スキーマ言語の新しいバージョンを定義する作業が進行中であると思いますが、その詳細と、スキーマ タイプに基づいてセレクターで要素を選択できるかどうかについてはわかりません。XPath は、 http://www.w3.org/TR/xpath20/#id-element-testelement(*, NameOfTypeGoesHere)を参照してください。

于 2010-03-13T17:36:29.363 に答える