Ejercicio XML para Crear un XSD

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

  1. Define el elemento raíz conference.
  2. Cada session debe tener un atributo id de tipo string.
  3. Cada session debe contener los elementos title (string), presenter, duration (integer) y schedule.
  4. El elemento presenter debe contener los elementos name (string) y affiliation (string).
  5. El elemento schedule debe contener los elementos date (date) y time (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

  1. Elemento conference: Es el elemento raíz que contiene múltiples session.
  2. Elemento session: Cada session tiene un atributo id de tipo string y contiene los elementos title (string), presenter, duration (integer) y schedule.
  3. Elemento presenter: Contiene los elementos name (string) y affiliation (string).
  4. Elemento schedule: Contiene los elementos date (date) y time (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.

white ceramic mug between apple magic keyboard and two flat screen computer monitors
Photo by Picography on Pexels.com

Deja un comentario

Información básica sobre protección de datos Ver más

  • Responsable: Tomas Gonzalez.
  • Finalidad:  Moderar los comentarios.
  • Legitimación:  Por consentimiento del interesado.
  • Destinatarios y encargados de tratamiento:  No se ceden o comunican datos a terceros para prestar este servicio.
  • Derechos: Acceder, rectificar y suprimir los datos.
  • Información Adicional: Puede consultar la información detallada en la Política de Privacidad.

error: Content is protected !!

Descubre más desde Tomás González: Formador y Desarrollador Web

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo

Este sitio web utiliza cookies, si necesitas más información puedes visitar nuestra política de privacidad    Ver
Privacidad