Teniendo en cuenta el siguiente ejemplo:XSD: ¿Cómo restringir los valores de enumeración de un tipo complejo derivado?
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:complexType name="Book" abstract="true">
<xs:sequence>
<xs:element name="titel" type="xs:string">
</xs:element>
<xs:element name="bookCode" type="BookEnum"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Lyric">
<xs:complexContent>
<xs:extension base="Book">
<xs:sequence>
<xs:element name="author" type="xs:string">
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="BookEnum">
<xs:restriction base="xs:int">
<xs:enumeration value="Paperback"/>
<xs:enumeration value="Hardcover"/>
<xs:enumeration value="Liporello"/>
<xs:enumeration value="None"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>
Lyric deriva del libro. Me gustaría restringir los posibles valores de BookEnum para el complexType "Lyric" para que sea "Paperback".
"Ninguno", "Liporello" y "Tapa dura" ya no deben ser valores válidos para "Lyric". ¿Esto se puede hacer en xsd?
Gracias por el enlace al sitio de IBM. Lástima que no funciona correctamente con "restricciones". De todos modos, gracias por tu respuesta. – tobsen
Creo que puede hacer esto en XSD 1.1 utilizando xpath: http://stackoverflow.com/questions/6472264/can-an-xsdenumeration-tag-be-made-mandatory-required – RMorrisey