[英]XML Schema - Restrict element to enum or keyref
我正在嘗試編寫模式,並且我想將值或元素限制為枚舉列表或鍵引用。 這可能嗎? 即,我有我的架構
<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>
我的問題是如何構造<a>
的架構元素定義
提前感謝您的幫助。
創建另一個命名簡單類型,它允許枚舉值(“anEnum”和“anotherEnum”)的 rest,就像您創建“TypeEnum”類型一樣。 然后使用<xsd:union>
組合這些類型並設置<a>
以使用這種組合類型。
代碼示例
<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" />
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.