Documento XML
Consideremos el siguiente documento XML que describe una playlist de música con información sobre las canciones y sus detalles. Tu tarea es crear un archivo XSD que valide la estructura de este XML.
<playlist>
<song id="S001">
<title>Bohemian Rhapsody</title>
<artist>Queen</artist>
<album>A Night at the Opera</album>
<duration>354</duration>
<genre>Rock</genre>
</song>
<song id="S002">
<title>Imagine</title>
<artist>John Lennon</artist>
<album>Imagine</album>
<duration>183</duration>
<genre>Pop</genre>
</song>
<song id="S003">
<title>Billie Jean</title>
<artist>Michael Jackson</artist>
<album>Thriller</album>
<duration>294</duration>
<genre>Pop</genre>
</song>
</playlist>
Instrucciones para Crear el XSD
- Define el elemento raíz
playlist
. - Cada
song
debe tener un atributoid
de tipo string. - Cada
song
debe contener los elementostitle
(string),artist
(string),album
(string),duration
(integer) ygenre
(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="playlist">
<xs:complexType>
<xs:sequence>
<xs:element name="song" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="artist" type="xs:string"/>
<xs:element name="album" type="xs:string"/>
<xs:element name="duration" type="xs:integer"/>
<xs:element name="genre" 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
playlist
: Es el elemento raíz que contiene múltiplessong
. - Elemento
song
: Cadasong
tiene un atributoid
de tipo string y contiene los elementostitle
(string),artist
(string),album
(string),duration
(integer) ygenre
(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.