给定XML数据:
<MyRootNode>
<NodeY>
<MyYNode Category="SomeCategory" />
<AnotherYNode Category="AnotherCategory" />
<YetAnotherYNode Category="NodeX" />
</NodeY>
<NodeX>
<MyXNode Category="SomeCategory" />
<AnotherXNode Category="AnotherCategory" />
<YetAnotherXNode Category="NodeY" />
</NodeX>
</MyRootNode>
我想定义暗示的XML模式:
MyRootNode
是固定名称NodeY
和NodeX
等是1 st -level嵌套元素的变量/任何名称MyYNode
,AnotherYNode
,MyXNode
和AnotherXNode
等也是2 nd -level嵌套元素的变量/任何名称Category
的值是SomeCategory
,AnotherCategory
,NodeX
或NodeY
之一,但不能在元素中具有递归引用,例如在NodeX
下,不能有<Name>.Category
的节点本身具有值NodeX
,但可以有NodeY
或任何其他1 st -level节点名称我尝试过:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:simpleType name="CategoryTypes" final="restriction" >
<xs:restriction base="xs:string">
<xs:enumeration value="SomeCategory" />
<xs:enumeration value="AnotherCategory" />
</xs:restriction>
</xs:simpleType>
<xs:element name="MyRootNode">
<xs:complexType>
<xs:sequence>
<xs:element name="???" maxOccurs="unbounded" minOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="???" maxOccurs="unbounded" minOccurs="1"/>
</xs:sequence>
<xs:attribute type="CategoryTypes" name="Category"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
但不确定如何使名称变量值为???
并在CategoryTypes中包含1个 st 级别的节点名称。