XML架构-将元素限制为枚举或keyref
我试图编写一个模式,我想将值或元素限制为枚举列表或键引用。这可能吗?我是我的图式XML架构-将元素限制为枚举或keyref,xml,xsd,Xml,Xsd,我试图编写一个模式,我想将值或元素限制为枚举列表或键引用。这可能吗?我是我的图式 <xsd:simpleType name="TypeEnum"> <xsd:restriction base="xsd:string"> <xsd:enumeration value="uint8" /> <xsd:enumeration value="uint16" /> <xsd:enu
<xsd:simpleType name="TypeEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="uint8" />
<xsd:enumeration value="uint16" />
<xsd:enumeration value="uint32" />
<xsd:enumeration value="uint64" />
</xsd:restriction>
</xsd:simpleType>
在我的XML中
<root>
<a>anEnum<a> <!-- This value should be restricted to either anEnum, anotherEnum or anything in TypeEnum -->
<AdditionalTypes>
<Enum Name="anEnum" />
<Enum Name="anotherEnum" />
</AdditionalTypes>
</root>
茴香
我的问题是如何构造
提前感谢您的帮助。创建另一个命名的简单类型,它允许剩余的枚举值(“anEnum”和“anotherEnum”),就像您创建的“TypeEnum”类型一样。然后使用
组合这些类型,并将
设置为使用此组合类型
代码示例
<xsd:simpleType name="TypeEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="uint8" />
<xsd:enumeration value="uint16" />
<xsd:enumeration value="uint32" />
<xsd:enumeration value="uint64" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TypeAdditionalEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="anEnum" />
<xsd:enumeration value="anotherEnum" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TypeUnionEnum">
<xsd:union memberTypes="TypeAdditionalEnum TypeEnum" />
</xsd:simpleType>
<xsd:element name="a" type="TypeUnionEnum" />
创建另一个命名的简单类型,该类型允许剩余的枚举值(“anEnum”和“anotherEnum”),就像创建“TypeEnum”类型一样。然后使用
组合这些类型,并将
设置为使用此组合类型
代码示例
<xsd:simpleType name="TypeEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="uint8" />
<xsd:enumeration value="uint16" />
<xsd:enumeration value="uint32" />
<xsd:enumeration value="uint64" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TypeAdditionalEnum">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="anEnum" />
<xsd:enumeration value="anotherEnum" />
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TypeUnionEnum">
<xsd:union memberTypes="TypeAdditionalEnum TypeEnum" />
</xsd:simpleType>
<xsd:element name="a" type="TypeUnionEnum" />
附加类型不意味着是动态的吗?如果在.xml文件中添加更多类型会怎么样?附加类型不意味着是动态的吗?如果在.xml文件中添加更多类型会怎么样?