Documento XML
Consideremos el siguiente documento XML que describe una biblioteca con información sobre autores y sus libros. Tu tarea es crear un archivo XSD que valide la estructura de este XML.
<library>
<author id="A001">
<name>J.K. Rowling</name>
<book isbn="978-0747532743">
<title>Harry Potter and the Philosopher's Stone</title>
<year>1997</year>
</book>
<book isbn="978-0747538493">
<title>Harry Potter and the Chamber of Secrets</title>
<year>1998</year>
</book>
</author>
<author id="A002">
<name>George R.R. Martin</name>
<book isbn="978-0553103540">
<title>A Game of Thrones</title>
<year>1996</year>
</book>
</author>
</library>
Instrucciones para Crear el XSD
- Define el elemento raíz
library
. - Cada
author
debe tener un atributoid
de tipo string. - Cada
author
debe contener un elementoname
(string) y múltiples elementosbook
. - Cada
book
debe tener un atributoisbn
de tipo string. - Cada
book
debe contener los elementostitle
(string) yyear
(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="library">
<xs:complexType>
<xs:sequence>
<xs:element name="author" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="book" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="year" type="xs:integer"/>
</xs:sequence>
<xs:attribute name="isbn" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</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
library
: Es el elemento raíz que contiene múltiplesauthor
. - Elemento
author
: Cadaauthor
tiene un atributoid
de tipo string y contiene un elementoname
y múltiples elementosbook
. - Elemento
book
: Cadabook
tiene un atributoisbn
de tipo string y contiene los elementostitle
(string) yyear
(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.