Documento XML
Consideremos el siguiente documento XML que describe un catálogo de productos con información sobre los productos y sus detalles. Tu tarea es crear un archivo XSD que valide la estructura de este XML.
<catalog>
<product id="P001">
<name>Laptop</name>
<description>15 inch, 16GB RAM</description>
<price currency="USD">1200.00</price>
<availability>in stock</availability>
</product>
<product id="P002">
<name>Smartphone</name>
<description>6 inch, 128GB Storage</description>
<price currency="USD">800.00</price>
<availability>out of stock</availability>
</product>
<product id="P003">
<name>Tablet</name>
<description>10 inch, 64GB Storage</description>
<price currency="USD">600.00</price>
<availability>in stock</availability>
</product>
</catalog>
Instrucciones para Crear el XSD
- Define el elemento raíz
catalog. - Cada
productdebe tener un atributoidde tipo string. - Cada
productdebe contener los elementosname(string),description(string),price(decimal con atributocurrencyde tipo string) yavailability(string).
Solución en XSD
A continuación se presenta una posible solución en XSD para validar el documento XML anterior:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Definición del elemento raíz -->
<xs:element name="catalog">
<xs:complexType>
<xs:sequence>
<xs:element name="product" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="description" type="xs:string"/>
<xs:element name="price">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="currency" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element name="availability" type="xs:string"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Explicación de la Solución
- Elemento
catalog: Es el elemento raíz que contiene múltiplesproduct. - Elemento
product: Cadaproducttiene un atributoidde tipo string y contiene los elementosname(string),description(string),price(decimal con atributocurrencyde tipo string y requerido) yavailability(string).
Este XSD valida la estructura del XML, asegurando que todos los elementos y atributos estén presentes y tengan los tipos de datos correctos.

