XML Schema 1.1の使用では、属性グループ内のすべての属性が存在する場合と存在しない場合の属性グループを定義したいと考えています。次の例では、<anelement>
に両方の属性(attr_one
とattr_two
)が存在するか、どちらの属性も存在しないようにしたいと思います。XMLスキーマ1.1属性のグループ化の制約
<attributeGroup name="attrgroup">
<attribute name="attr_one" />
<attribute name="attr_one" />
</attributeGroup>
<element name="anelement">
<complexType>
<attributeGroup ref="attrgroup" />
</complexType>
</element>
私が理解しているように、XML Schema 1.0では、これらの属性の関係を指定することはできません(正しい?)。 XSD 1.1でそれらを指定する最良の方法は何ですか?私は関係を指定するassert
を使用できることを理解、次のようなもの:
<element name="anelement">
<complexType>
<attributeGroup ref="attrgroup" />
<assert test="(@attr_one and @attr_two) or not(@attr_one or @attr_two)" />
</complexType>
</element>
しかし、私は例えば、私は既存の言語を使用して関係を指定することができるようになる1.1に追加され、何かがあった期待していました属性はattributeGroup
です。 XMLスキーマ1.1でこの関係を指定する最良の方法は何ですか?
クールを行うことができ、私はそのように主張するために提供されるXMLスキーマ1.1を知りませんでした。 – LarsH
XML Schema 1.1のどの実装を使用していますか?サクソン? – LarsH
うん、1.1。完全なXPathアサーションを持っています。 Xerces-Jは1.1のすべての部分をサポートしていますので、現時点で検証に使用しています。うまくいけば、他のツール(特にOXM)がすぐに追いつくことを望みます。 – Bob