Documento XML
Consideremos el siguiente documento XML que describe una conferencia con información sobre las sesiones y los ponentes. Tu tarea es crear un archivo XSD que valide la estructura de este XML.
<conference>
<session id="S001">
<title>Opening Keynote</title>
<presenter>
<name>Dr. Alice Johnson</name>
<affiliation>University of Knowledge</affiliation>
</presenter>
<duration>60</duration>
<schedule>
<date>2024-06-15</date>
<time>09:00</time>
</schedule>
</session>
<session id="S002">
<title>Advances in AI</title>
<presenter>
<name>Prof. Bob Smith</name>
<affiliation>Institute of Technology</affiliation>
</presenter>
<duration>45</duration>
<schedule>
<date>2024-06-15</date>
<time>10:30</time>
</schedule>
</session>
<session id="S003">
<title>Data Science Workshop</title>
<presenter>
<name>Dr. Carol White</name>
<affiliation>Big Data Corp</affiliation>
</presenter>
<duration>120</duration>
<schedule>
<date>2024-06-16</date>
<time>14:00</time>
</schedule>
</session>
</conference>
Instrucciones para Crear el XSD
- Define el elemento raíz
conference
. - Cada
session
debe tener un atributoid
de tipo string. - Cada
session
debe contener los elementostitle
(string),presenter
,duration
(integer) yschedule
. - El elemento
presenter
debe contener los elementosname
(string) yaffiliation
(string). - El elemento
schedule
debe contener los elementosdate
(date) ytime
(time).
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="conference">
<xs:complexType>
<xs:sequence>
<xs:element name="session" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="title" type="xs:string"/>
<xs:element name="presenter">
<xs:complexType>
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="affiliation" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="duration" type="xs:integer"/>
<xs:element name="schedule">
<xs:complexType>
<xs:sequence>
<xs:element name="date" type="xs:date"/>
<xs:element name="time" type="xs:time"/>
</xs:sequence>
</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
conference
: Es el elemento raíz que contiene múltiplessession
. - Elemento
session
: Cadasession
tiene un atributoid
de tipo string y contiene los elementostitle
(string),presenter
,duration
(integer) yschedule
. - Elemento
presenter
: Contiene los elementosname
(string) yaffiliation
(string). - Elemento
schedule
: Contiene los elementosdate
(date) ytime
(time).
Este XSD valida la estructura del XML, asegurando que todos los elementos y atributos estén presentes y tengan los tipos de datos correctos.