Ejercicio XML para Crear un XSD

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

  1. Define el elemento raíz library.
  2. Cada author debe tener un atributo id de tipo string.
  3. Cada author debe contener un elemento name (string) y múltiples elementos book.
  4. Cada book debe tener un atributo isbn de tipo string.
  5. Cada book debe contener los elementos title (string) y year (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

  1. Elemento library: Es el elemento raíz que contiene múltiples author.
  2. Elemento author: Cada author tiene un atributo id de tipo string y contiene un elemento name y múltiples elementos book.
  3. Elemento book: Cada book tiene un atributo isbn de tipo string y contiene los elementos title (string) y year (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.

person encoding in laptop
Photo by Lukas on Pexels.com

Gracias por visitar mi blog de informática, mi nombre es Tomás y soy formador y desarrollador web. Si quiere usted dejarme alguna sugerencia, ayuda o quiere un servicio de formación estoy escuchando ofertas en tomas.gonzalez@infogonzalez.com, en Facebook a https://www.facebook.com/Infogonzalez estoy deseando escucharle. Su duda o sugerencia NO molesta.

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 InfoGonzalez - Blog de formador e informático

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