xsd に xs:unique を記述して、コンテナとリスト オブジェクトの名前を一意に制限しようとしていますが、機能しませんでした。手伝ってくれる?
詳細はこちら
私のオブジェクト構造は次のツリーのようなものです。
App
|
---container
|
--list
|
---container
|
--list
各「コンテナ」は 0 個以上の「リスト」を持つことができ、各「リスト」は 0 個以上の「コンテナ」を持つことができます。リストとコンテナの両方に「name」属性とその他の異なる属性があります。インスタンス全体のコンテナとリストの両方で「名前」が一意であることを制限したいと思います。一意のセレクタ xpath はどのように記述すればよいですか? これがスキーマです。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:my_app="http://www.cisco.com/myapp" elementFormDefault="qualified" attributeFormDefault="unqualified">
<xs:element name="app">
<xs:annotation>
<xs:documentation>Comment describing your root element</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="container" type="containerType"/>
</xs:sequence>
</xs:complexType>
<xs:unique name="uniquename">
<xs:selector xpath=""/>
<xs:field xpath="@name"/>
</xs:unique>
</xs:element>
<xs:complexType name="listType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="container" type="containerType"/>
</xs:sequence>
<xs:attribute name="name"/>
</xs:complexType>
<xs:complexType name="containerType">
<xs:sequence minOccurs="0" maxOccurs="unbounded">
<xs:element name="list" type="listType"/>
</xs:sequence>
<xs:attribute name="name"/>
</xs:complexType>
</xs:schema>