当另一个元素有一定的值时,在XSD中需要XML元素吗?

我只需要一个必需的属性或元素,如果select一个枚举的特定值。 示例如下:

<xs:element name="TYPE" type="TestEnum" /> <!-- // This Element should only required when TYPE = INTERNATIONAL --> <xs:element name="IBAN"/> </xs:complexType> <xs:simpleType name="TestEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="NATIONAL"/> <xs:enumeration value="INTERNATIONAL"/> </xs:restriction> </xs:simpleType> 

XSD 1.1

TYPE = 'INTERNATIONAL'时,以下是如何使用xs:assert使IBAN成为强制性TYPE = 'INTERNATIONAL'

 <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1"> <xs:element name="root"> <xs:complexType> <xs:sequence> <xs:element name="TYPE" type="TestEnum" /> <!-- // This Element should only required when TYPE = INTERNATIONAL --> <xs:element name="IBAN" minOccurs="0"/> </xs:sequence> <xs:assert test="not(TYPE = 'INTERNATIONAL') or IBAN"/> </xs:complexType> </xs:element> <xs:simpleType name="TestEnum"> <xs:restriction base="xs:string"> <xs:enumeration value="NATIONAL"/> <xs:enumeration value="INTERNATIONAL"/> </xs:restriction> </xs:simpleType> </xs:schema>