我正在尝试在XML架构中创建一个类型,以强制执行以下两个元素:
在XML文档中,元素可能如下所示:
<Operator Permutation="true">
Equals
</Operator>
“等于”将是枚举之一。
这可能吗?如果是这样,怎么样?
我尝试过使用XMLSpy但没有成功。如果我创建一个简单类型,它只允许没有属性的内容枚举。如果我创建一个复杂类型,它只允许没有内容枚举的属性。
编辑: 谢谢,大卫。这完全有效,但我只是在限制内添加了这个,所以验证忽略了换行符:
<xs:whiteSpace value="collapse"/>
答案 0 :(得分:2)
怎么样
<xs:element name="Operator" type="MixedElement" />
<xs:complexType name="MixedElement">
<xs:simpleContent>
<xs:extension base="EnumType">
<xs:attribute name="Permutation" type="xs:boolean">
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="EnumType">
<xs:restriction base="xs:string">
<xs:enumeration value="Equals"/>
<xs:enumeration value="NotEquals"/>
</xs:restriction>
</xs:simpleType>