Ejercicio de XSD - Colores de muebles
Haciendo uso del siguiente código:
<xs:complexType name="tipoColorMueble">
<xs:simpleContent>
<xs:extension base="tipoMueble">
<xs:attribute name="color">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="blanco"/>
<xs:enumeration value="gris"/>
<xs:enumeration value="negro"/>
<xs:enumeration value="wengue"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="tipoMueble">
<xs:restriction base="xs:string">
<xs:enumeration value="armario"/>
<xs:enumeration value="mesa"/>
<xs:enumeration value="silla"/>
</xs:restriction>
</xs:simpleType>
Escribir el contenido del archivo "muebles.xsd" que permita validar el siguiente documento XML:
<?xml version="1.0" encoding="UTF-8"?>
<muebles xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="muebles.xsd">
<mueble color="blanco">mesa</mueble>
<mueble color="gris">silla</mueble>
</muebles>
Solución:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="muebles">
<xs:complexType>
<xs:sequence>
<xs:element name="mueble" type="tipoColorMueble" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:complexType name="tipoColorMueble">
<xs:simpleContent>
<xs:extension base="tipoMueble">
<xs:attribute name="color">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:enumeration value="blanco"/>
<xs:enumeration value="gris"/>
<xs:enumeration value="negro"/>
<xs:enumeration value="wengue"/>
</xs:restriction>
</xs:simpleType>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="tipoMueble">
<xs:restriction base="xs:string">
<xs:enumeration value="armario"/>
<xs:enumeration value="mesa"/>
<xs:enumeration value="silla"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>