- PR -

[XMLSchema]selectorに指定するXPathに述語は指定不可?

1
投稿者投稿内容
nari
会議室デビュー日: 2008/05/29
投稿数: 7
投稿日時: 2008-05-29 18:52
例えば以下のようなXMLがあったとして

<root>
<member>
<item name="name" value="佐藤"/>
<item name="addr" value="東京"/>
</member>
<member>
<item name="name" value="佐藤"/>
<item name="addr" value="京都"/>
</member>
<member>
<item name="name" value="鈴木"/>
<item name="addr" value="大阪"/>
</member>
</root>

name属性値が"name"のitem要素を対象に、value属性値を一意にしたかったので
以下のようなスキーマ定義をしたらエラーになりました。

<xs:element name="root" type="rootType">
<xs:unique name="valueUnique">
<xs:selector xpath="member/item[@name='name']"/>
<xs:field xpath="@value"/>
<xs:unique>
</xs:element>

XMLスキーマの仕様書を見ると、どうもselectorのxpathには
述語を指定できないようなのですが、
このようなケースでは、どのようなスキーマ定義にすればよいでしょうか?

XMLスキーマでは表現不可である場合、代替手段としては何があるでしょうか?

ご教授よろしくお願い致します。
1

スキルアップ/キャリアアップ(JOB@IT)