Documento XML
Consideremos el siguiente documento XML que describe una tienda con información sobre productos y sus detalles. Tu tarea es crear un archivo XSD que valide la estructura de este XML.
<store>
<product id="P001" category="Electronics">
<name>Smartphone</name>
<price>599.99</price>
<quantity>50</quantity>
</product>
<product id="P002" category="Home Appliances">
<name>Vacuum Cleaner</name>
<price>129.99</price>
<quantity>30</quantity>
</product>
</store>
Instrucciones para Crear el XSD
- Define el elemento raíz
store
. - Cada
product
debe tener un atributoid
de tipo string y un atributocategory
de tipo string. - Cada
product
debe contener los elementosname
(string),price
(decimal) yquantity
(integer).
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="store">
<xs:complexType>
<xs:sequence>
<xs:element name="product" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="price" type="xs:decimal"/>
<xs:element name="quantity" type="xs:integer"/>
</xs:sequence>
<xs:attribute name="id" type="xs:string" use="required"/>
<xs:attribute name="category" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Explicación de la Solución
- Elemento
store
: Es el elemento raíz que contiene múltiplesproduct
. - Elemento
product
: Cadaproduct
tiene dos atributosid
ycategory
, ambos de tipo string y requeridos. - Elementos Internos:
name
: Es una cadena (xs:string
).price
: Es un decimal (xs:decimal
).quantity
: Es un entero (xs:integer
).
Este XSD valida la estructura del XML, asegurando que todos los elementos y atributos estén presentes y tengan los tipos de datos correctos.