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
sessiondebe tener un atributoidde tipo string. - Cada
sessiondebe contener los elementostitle(string),presenter,duration(integer) yschedule. - El elemento
presenterdebe contener los elementosname(string) yaffiliation(string). - El elemento
scheduledebe 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: Cadasessiontiene un atributoidde 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.

