tutorial tipos significa que opcional minoccurs español elemento ejemplo datos atributos xml xsd xsd-validation xml-validation xsd-1.1

tipos - ¿Requiere un elemento XML en XSD cuando otro elemento tiene cierto valor?



xsd atributos (1)

XSD 1.1

He aquí cómo usar xs:assert para hacer que IBAN sea ​​obligatorio cuando 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>

Necesito un atributo o elemento requerido solo si se elige un valor específico de una enumeración. Ejemplo a continuación:

<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>