将字符串限制添加到 XSD
Add string restriction to XSD
我有以下 Languages
元素。对于每种语言,我希望属性为 "Subbed" 或 "Dubbed"。例如:
<Languages>
<Language Type="Subbed">EN</Language>
<Language Type="Dubbed">FR</Language>
</Languages>
这是我目前拥有的 XSD -- 我该如何添加 "subbed|dubbed" 限制?
<xs:element name="Languages">
<xs:complexType>
<xs:sequence>
<xs:element name="Language" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="Type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
您可以通过枚举实现您的目标:
替换
<xs:attribute type="xs:string" name="Type" use="optional"/>
和
<xs:attribute type="LanguageType" name="Type" use="optional"/>
并添加
<xs:simpleType name="LanguageType">
<xs:restriction base="xs:string">
<xs:enumeration value="Subbed"/>
<xs:enumeration value="Dubbed"/>
</xs:restriction>
</xs:simpleType>
限制Language/@Type
为Subbed
或Dubbed
之一。
上面的调整是完整的 XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.0">
<xs:element name="Languages">
<xs:complexType>
<xs:sequence>
<xs:element name="Language" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="LanguageType" name="Type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="LanguageType">
<xs:restriction base="xs:string">
<xs:enumeration value="Subbed"/>
<xs:enumeration value="Dubbed"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
这将根据要求验证您的 XML。
我有以下 Languages
元素。对于每种语言,我希望属性为 "Subbed" 或 "Dubbed"。例如:
<Languages>
<Language Type="Subbed">EN</Language>
<Language Type="Dubbed">FR</Language>
</Languages>
这是我目前拥有的 XSD -- 我该如何添加 "subbed|dubbed" 限制?
<xs:element name="Languages">
<xs:complexType>
<xs:sequence>
<xs:element name="Language" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="xs:string" name="Type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
您可以通过枚举实现您的目标:
替换
<xs:attribute type="xs:string" name="Type" use="optional"/>
和
<xs:attribute type="LanguageType" name="Type" use="optional"/>
并添加
<xs:simpleType name="LanguageType">
<xs:restriction base="xs:string">
<xs:enumeration value="Subbed"/>
<xs:enumeration value="Dubbed"/>
</xs:restriction>
</xs:simpleType>
限制Language/@Type
为Subbed
或Dubbed
之一。
上面的调整是完整的 XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
version="1.0">
<xs:element name="Languages">
<xs:complexType>
<xs:sequence>
<xs:element name="Language" maxOccurs="unbounded" minOccurs="0">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute type="LanguageType" name="Type" use="optional"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:simpleType name="LanguageType">
<xs:restriction base="xs:string">
<xs:enumeration value="Subbed"/>
<xs:enumeration value="Dubbed"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
这将根据要求验证您的 XML。