
El Tutorial de XSD (XML Schema Definition, Definición de Esquema XML) es una excelente continuación después de aprender sobre XML, DTD y XPath. XSD es un lenguaje de esquema que se utiliza para definir la estructura y las restricciones de un documento XML.
En este tutorial, exploraremos los conceptos fundamentales de XSD y cómo se utiliza para validar y describir la estructura de un documento XML. Aprenderás a definir elementos, atributos, tipos de datos, restricciones, etc.
Con el conocimiento de XSD, podrás crear esquemas sólidos y precisos para tus documentos XML, lo que te proporcionará un mayor control y garantía de calidad en tus proyectos.
1. Tutorial: Introducción a XSD
El XSD es un estándar del World Wide Web Consortium (W3C) que se utiliza para definir la estructura de los documentos XML, permitiendo su validación. Proporciona un conjunto de reglas que permiten especificar los elementos, atributos, tipos de datos y relaciones entre ellos en un documento XML.
Permite establecer la estructura jerárquica de los elementos, especificar los tipos de datos que pueden contener y definir restricciones como valores mínimos y máximos, formatos de datos, entre otros.
Al utilizar XSD, se puede garantizar la consistencia y la integridad de los datos en los documentos XML, lo que resulta especialmente útil en aplicaciones como intercambio de datos, integración de sistemas y validación de entradas en aplicaciones web.
En la actualidad existen dos formas principales de definir la estructura de los documentos XML: mediante DTD y con XSD. Veamos sus diferencias.
2. Diferencias entre DTD y XSD
Los esquemas XSD tienen una forma diferente a los DTD de crear reglas para validar archivos XML. Las diferencias principales son las siguientes:
- Los esquemas XSD admiten tipos de datos con verificación, como enteros, fechas y otros tipos.
- Los esquemas XSD permiten agregar restricciones, como valores mínimos y máximos para un número, o especificar el patrón que debe seguir una cadena válida.
3. Creación de un XSD
Para crear un documento XSD sigue los siguientes pasos:
- Identifica la estructura: Determina la estructura que deseas definir en el esquema XSD. Esto incluye los elementos raíz, elementos secundarios, atributos y sus relaciones. Si existe, podemos examinar un archivo XML de ejemplo para comprender su estructura y los elementos , atributos y tipos de datos que contiene.
- Crea el archivo XSD: Utiliza un editor de texto o una herramienta de desarrollo XML para crear un nuevo archivo XSD. Puedes nombrar este archivo según tu preferencia, pero es necesaio usar una extensión «.xsd» a la hora de guardarlo (por ejemplo, «esquema.xsd»).
- Define los elementos y tipos de datos: En el archivo XSD, utiliza elementos del lenguaje XSD para definir los elementos del XML y sus tipos de datos. Puedes usar elementos como
<xs:element>,<xs:complexType>,<xs:simpleType>,<xs:sequence>, etc. - Asocia el esquema al XML: En el XML, agrega los atributos
xmlns:xsiyxsi:noNamespaceSchemaLocational elemento raíz para declarar el espacio de nombres XML del esquema de instancia y especificar la ubicación del archivo XSD. Por ejemplo:
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esquema.xsd"
- Define las restricciones y validaciones: En el archivo XSD, puedes definir restricciones y validaciones adicionales según sea necesario. Esto incluye restricciones de longitud, valores permitidos, relaciones entre elementos, etc.
- Valida el esquema: Utiliza herramientas de validación XML para verificar que el archivo XSD sea válido y no contenga errores de sintaxis.
Ten en cuenta que la creación de un esquema XSD adecuado requiere un buen conocimiento de la estructura del XML y las necesidades específicas de validación de tus datos. Es importante diseñar el esquema de manera precisa para garantizar que el XML cumpla con las restricciones y reglas definidas.
3.1 Estructura de un schema
Para crear un XSD, se utiliza un nodo raíz que contiene todo el esquema y se define mediante el uso del prólogo, que incluye la versión XML. El nodo «schema» contiene todos los elementos y atributos que definen la estructura del documento y las restricciones que se deben cumplir. Por ejemplo, se puede utilizar el siguiente prólogo:
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> ... </xs:schema>
Como se puede observar, el nodo raíz se define utilizando el espacio de nombres XML «http://www.w3.org/2001/XMLSchema». Esto se especifica utilizando el atributo «xmlns:xs» (o «xmlns:xsd») en el nodo «schema«. El prefijo «xs» (o «xsd») se utiliza como una abreviatura para referirse al espacio de nombres en el resto del esquema.
Es importante destacar que la URL utilizada en el atributo «xmlns:xs» no implica que se deba estar conectado a Internet para trabajar con XML. Simplemente se utiliza como una referencia a la definición de elementos y atributos que se pueden utilizar en el esquema.
3.2. Cómo vincular un esquema XSD a un documento XML
Para vincular un esquema XSD externo en un documento XML, se utiliza un mecanismo que asocia el documento con su esquema correspondiente. Esto es útil para validar que el documento cumple con las reglas y estructuras definidas en el esquema. Veamos cómo se hace:
- xmlns:xsi: Se agrega este atributo al elemento raíz del documento XML. Su propósito es declarar el espacio de nombres XML del esquema de instancia (XSI).
- xsi:noNamespaceSchemaLocation: Este atributo se agrega también al elemento raíz y se utiliza para especificar la ubicación del archivo XSD que contiene las definiciones del esquema. El valor de este atributo es la URL o ruta relativa del archivo XSD.
<?xml version="1.0" encoding="UTF-8"?>
<root xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esquema.xsd">
...
</root>
Cuando se añaden estos atributos al elemento raíz del documento XML, se está indicando que el documento debe ser validado utilizando el esquema XSD especificado en xsi:noNamespaceSchemaLocation. Veamos un ejemplo:
Ejemplo de archivo XML (documento.xml):
<?xml version="1.0" encoding="UTF-8"?>
<libro xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esquema.xsd">
<titulo>Cien años de soledad</titulo>
<autor>Gabriel García Márquez</autor>
<anio>1967</anio>
<genero>Realismo mágico</genero>
</libro>
Ejemplo de archivo XSD (esquema.xsd):
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="libro">
<xs:complexType>
<xs:sequence>
<xs:element name="titulo" type="xs:string"/>
<xs:element name="autor" type="xs:string"/>
<xs:element name="anio" type="xs:integer"/>
<xs:element name="genero" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
En este ejemplo:
- El archivo XML (
documento.xml) contiene información sobre un libro, incluyendo título, autor, año y género. Se utiliza el atributoxmlns:xsipara declarar el espacio de nombres XML del esquema de instancia yxsi:noNamespaceSchemaLocationpara especificar la ubicación del archivo XSD. - El archivo XSD (
esquema.xsd) define la estructura del elementolibro, especificando que debe contener los elementostitulo,autor,anioygenero, con los tipos de datos apropiados.
4. Definición de un elemento
Para declarar o definir un elemento tenemos dos tipos de estructuras:
a) Estructura vacía
<xs:tipoelemento/> <!-- Se puede usar también el prefijo xsd -->
b) Estructura llena
<xs:tipoelemento> <!-- Se puede usar también el prefijo xsd --> ... </xs:tipoelemento>
Un elemento puede contener atributos cuyos valores siempre van entre comillas. Los tipos de atributos que podemos utilizar en los elementos son los siguientes:
| Atributo | Descripción |
|---|---|
| name | Nombre del elemento |
| type | Tipo simple predefinido, ya sean los estándares o unos propios |
| maxOccurs | Número máximo de veces que puede aparecer el elemento (p. ej., [0..unbounded]) |
| minOccurs | Número mínimo de veces que puede aparecer el elemento |
*unbouded=ilimitado
Por defecto, si no definimos maxOccurs ni minOccurs, el elemento aparece una sola vez.
Ejemplo:
Vamos a crear un ejemplo sencillo para ilustrar cómo se utilizan algunos de los atributos anteriores. En este ejemplo, definiremos un elemento <peliculas> que puede contener múltiples elementos <pelicula>.
- Ejemplo XSD con
maxOccurs:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Definición del elemento "peliculas" que puede contener múltiples elementos "pelicula" -->
<xs:element name="peliculas">
<xs:complexType>
<xs:sequence>
<xs:element name="pelicula" type="xs:string" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
En este ejemplo, hemos utilizado el atributo maxOccurs="unbounded" en el elemento <pelicula>. Esto significa que el elemento <peliculas> puede contener múltiples elementos <pelicula>, y el valor «unbounded» indica que no hay un límite superior en la cantidad de veces que el elemento <pelicula> puede aparecer.
- Ejemplo de XML que sigue el esquema XSD:
<peliculas> <pelicula>Matrix</pelicula> <pelicula>Inception</pelicula> <pelicula>Interstellar</pelicula> </peliculas>
En este documento XML, se cumplen las restricciones definidas en el esquema XSD. La etiqueta <peliculas> contiene múltiples elementos <pelicula>, y no hay un límite específico en la cantidad de películas que pueden aparecer.
En resumen, el atributo maxOccurs se utiliza para especificar el número máximo de veces que un elemento puede aparecer. En este caso, hemos utilizado «unbounded» para indicar que el elemento puede aparecer un número ilimitado de veces. Esto es útil cuando se quiere permitir la presencia de un elemento un número indefinido de veces en un contexto específico.
5. Tipos de elementos
En XSD distinguimos entre dos tipos de elementos: simples y complejos.
5.1. Elementos simples <xs:element>
Los elementos simples son aquellos que contienen un solo valor sin subelementos. Estos elementos se definen utilizando el elemento <xs:element> junto con el atributo type para especificar el tipo de datos del elemento.
A continuación se muestra un ejemplo de cómo se define un elemento simple en XSD:
<xs:element name="texto" type="xs:string" />
Existen varios tipos de datos predefinidos en XSD que se pueden utilizar para definir elementos simples mediante el atributo type, como:
| Tipo de Datos | Descripción |
|---|---|
| xs:string | Representa una cadena de texto. |
| xs:integer | Representa un número entero. |
| xs:positiveInteger | Representa un número entero positivo. |
| xs:negativeInteger | Representa un número entero negativo. |
| xs:boolean | Representa un valor booleano (true o false). |
| xs:date | Representa una fecha en formato YYYY-MM-DD. |
| xs:time | Representa una hora en formato HH:MM:SS. |
| xs:decimal | Representa un número decimal. |
| xs:float | Representa números de punto flotante de 32 bits de precisión simple. |
| xs:double | Representa números de punto flotante de 64 bits de doble precisión. |
5.2. Elementos complejos <xs:complexType>
El elemento <xs:complexType> se utiliza para definir tipos de datos complejos que tienen sub-elementos y/o atributos. Los tipos de datos complejos permiten especificar la estructura interna de un elemento XML, es decir, sus atributos y elementos hijos.
Dentro del elemento <xs:complexType>, se pueden agregar elementos como los siguientes:
| Elemento | Descripción |
|---|---|
<xs:sequence> | Se utiliza para especificar una secuencia ordenada de elementos hijos. Los elementos deben aparecer en el orden indicado. |
<xs:choice> | Se utiliza para especificar que solo uno de los elementos hijos puede estar presente en un momento dado. Solo uno de los elementos enumerados dentro de <xs:choice> puede aparecer en el XML válido. |
<xs:all> | Se utiliza para especificar que los elementos hijos pueden estar en cualquier orden. Todos los elementos enumerados dentro de <xs:all> pueden aparecer en cualquier orden en el XML válido. |
<xs:attribute> | Se utiliza para agregar atributos a un tipo complejo. Se puede especificar el nombre (name) y el tipo de atributo (type). |
Veamos algunos ejemplos de uso:
1. Ejemplo <xs:sequence>: En este ejemplo, se define un tipo complejo llamado «Person» que contiene dos elementos hijos: «FirstName» y «LastName». Ambos elementos tienen un tipo de dato simple «xs:string».
<xs:complexType name="Person">
<xs:sequence>
<xs:element name="FirstName" type="xs:string"/>
<xs:element name="LastName" type="xs:string"/>
</xs:sequence>
</xs:complexType>
Ejemplo de XML que sigue el esquema XSD:
<Person> <FirstName>John</FirstName> <LastName>Doe</LastName> </Person>
2. Ejemplo de <xs:choice>: En este ejemplo, se define un tipo complejo «Animal» que permite que solo uno de los elementos hijos («Cat», «Dog» o «Bird») esté presente en un momento dado.
<xs:complexType name="Animal">
<xs:choice>
<xs:element name="Cat" type="xs:string"/>
<xs:element name="Dog" type="xs:string"/>
<xs:element name="Bird" type="xs:string"/>
</xs:choice>
</xs:complexType>
Ejemplo de XML que sigue el esquema XSD:
<Animal> <Cat>Miau</Cat> </Animal>
3. Ejemplo de <xs:all>: En este ejemplo, se define un tipo complejo «Address» que requiere que todos los elementos hijos («Street», «City» y «Country») estén presentes en cualquier orden.
<xs:complexType name="Address">
<xs:all>
<xs:element name="Street" type="xs:string"/>
<xs:element name="City" type="xs:string"/>
<xs:element name="Country" type="xs:string"/>
</xs:all>
</xs:complexType>
Ejemplo de XML que sigue el esquema XSD:
<Address> <Street>Main Street</Street> <City>Cityville</City> <Country>Countryland</Country> </Address>
4. Ejemplo <xs:attribute>: En este caso, se agrega el atributo «Age» al tipo complejo «Person» con un tipo de dato «xs:integer».
<xs:complexType name="Person">
<xs:sequence>
<xs:element name="FirstName" type="xs:string"/>
<xs:element name="LastName" type="xs:string"/>
</xs:sequence>
<xs:attribute name="Age" type="xs:integer"/>
</xs:complexType>
Ejemplo de XML que sigue el esquema XSD:
<Person Age="30"> <FirstName>John</FirstName> <LastName>Doe</LastName> </Person>
5. Ejemplo <xs:attribute>: En este ejemplo, hemos definido un elemento «libro» con dos elementos hijos («titulo» y «autor») y dos atributos («id» y «fechaPublicacion»).
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<!-- Definición del elemento "libro" con atributos -->
<xs:element name="libro">
<xs:complexType>
<xs:sequence>
<!-- Definición de elementos dentro de "libro" -->
<xs:element name="titulo" type="xs:string"/>
<xs:element name="autor" type="xs:string"/>
</xs:sequence>
<!-- Definición de atributos para el elemento "libro" -->
<xs:attribute name="id" type="xs:positiveInteger"/>
<xs:attribute name="fechaPublicacion" type="xs:date"/>
</xs:complexType>
</xs:element>
</xs:schema>
Ejemplo de XML que sigue el esquema XSD:
<libro id="123" fechaPublicacion="2022-02-12"> <titulo>El Gran Libro de Ejemplos</titulo> <autor>Jane Doe</autor> </libro>
5.3. Elementos simples personalizados <xs:simpleType>
Además de los tipos de datos predefinidos en la tabla anterior, también es posible definir tipos de datos simples personalizados utilizando el elemento <xs:simpleType> con el atributo name para establecer un nombre. De esta forma, podemos agregar restricciones adicionales al valor del elemento, como rangos numéricos, patrones de caracteres, valores permitidos, entre otros.
Dentro del elemento <xs:simpleType>, se pueden establecer restricciones utilizando otros elementos como los siguientes:
<xs:restriction>: Para poner rangos, patrones, enumerar posibles valores etc.<xs:list>: Para definir un tipo de lista.<xs:union>: Para unir varios tipos definidos anteriormente en uno.
5.3.1. Elemento <xs:restriction>
La estructura básica del elemento <xs:restriction> en XSD es la siguiente:
<xs:restriction base="tipoDeDatoBase"> <!-- Restricciones y atributos adicionales aquí --> </xs:restriction>
En esta estructura, el atributo base especifica el tipo de dato base del cual se está realizando la restricción. Dentro del elemento <xs:restriction>, se pueden agregar diferentes restricciones y atributos para definir las reglas específicas que se aplican al tipo de dato base.
A continuación se muestra una tabla con las restricciones más comunes que se pueden utilizar dentro del elemento <xs:restriction> en XSD:
| Restricción | Descripción |
|---|---|
<xs:length> | Especifica la longitud exacta del valor permitido. |
<xs:minLength> | Especifica la longitud mínima del valor permitido. |
<xs:maxLength> | Especifica la longitud máxima del valor permitido. |
<xs:minInclusive> | Especifica el valor mínimo permitido, incluyendo ese valor. |
<xs:maxInclusive> | Especifica el valor máximo permitido, incluyendo ese valor. |
<xs:minExclusive> | Especifica el valor mínimo permitido, excluyendo ese valor. |
<xs:maxExclusive> | Especifica el valor máximo permitido, excluyendo ese valor. |
<xs:enumeration> | Especifica un conjunto de valores permitidos para seleccionar. |
<xs:pattern> | Especifica un patrón utilizando la sintaxis de expresiones regulares. |
A continuación se muestran algunos ejemplos de cómo utilizar el elemento <xs:restriction> en XSD para restringir los valores de un tipo de dato simple:
1.Ejemplo <xs:maxLength>: Restricción de un tipo de dato string a una longitud máxima de 10 caracteres.
<xs:simpleType name="Nombre">
<xs:restriction base="xs:string">
<xs:maxLength value="10"/>
</xs:restriction>
</xs:simpleType>
2. Ejemplo <xs:minInclusive>: Restricción de un tipo de dato integer a un rango específico.
<xs:simpleType name="Edad">
<xs:restriction base="xs:integer">
<xs:minInclusive value="18"/>
<xs:maxInclusive value="99"/>
</xs:restriction>
</xs:simpleType>
3. Ejemplo <xs:enumeration>: Restricción de un tipo de dato decimal a un conjunto específico de valores.
<xs:simpleType name="Puntuacion">
<xs:restriction base="xs:decimal">
<xs:enumeration value="1.0"/>
<xs:enumeration value="2.5"/>
<xs:enumeration value="4.0"/>
<xs:enumeration value="5.0"/>
</xs:restriction>
</xs:simpleType>
4. Ejemplo <xs:pattern>: Restringido a ser una cadena de texto de 5 dígitos numéricos.
<xs:simpleType name="codigoPostal">
<xs:restriction base="xs:string">
<xs:pattern value="[0-9]{5}" />
</xs:restriction>
</xs:simpleType>
5.3.2. Elemento <xs:list>
El elemento <xs:list> en XSD se utiliza para definir una lista de valores de un tipo de dato específico. Permite especificar múltiples valores separados por un espacio en blanco. Ejemplo:
<xs:element name="numeros" type="xs:list">
<xs:simpleType>
<xs:restriction base="xs:string">
<xs:pattern value="\d+(\s+\d+)*" />
</xs:restriction>
</xs:simpleType>
</xs:element>
En este ejemplo, se define un elemento llamado «numeros» que contiene una lista de valores. El tipo de dato del elemento se establece como <xs:list>. Dentro de <xs:list>, se define un <xs:simpleType> que especifica las restricciones del tipo de dato. En este caso, se utiliza una restricción de patrón <xs:pattern> para asegurarse de que los valores sean números separados por espacios en blanco.
5.3.3. Elemento <xs:union>
El elemento <xs:union> se utiliza para definir varios tipos de datos en una única opción de tipo de dato.
1.Ejemplo. Unión de diferentes tipos de datos: En este ejemplo, la opción memberTypes del elemento <xs:union> especifica que el tipo de dato «tipoUnion» puede ser una fecha o una hora.
<xs:simpleType name="tipoUnion"> <xs:union memberTypes="xs:date xs:time" /> </xs:simpleType>
Veamos algunos ejemplos adicionales de cómo se puede utilizar el elemento <xs:union> en XSD:
2. Ejemplo: Unión de tipos de datos numéricos: se define un tipo de dato llamado «numericUnion» que puede ser de tipo <xs:integer>, <xs:decimal>, <xs:float> o <xs:double>. Esto permite que el valor sea cualquier número entero o decimal, ya sea de precisión simple o doble.
<xs:simpleType name="numericUnion"> <xs:union memberTypes="xs:integer xs:decimal xs:float xs:double" /> </xs:simpleType>
6. Tutorial: Validación de un documento XML con XSD
La validación de un documento XML con XSD (XML Schema) implica asegurarse de que el documento cumple con las reglas y restricciones especificadas en el esquema XSD. Esto garantiza la integridad y consistencia de los datos en el documento XML.
6.1. Herramientas para validar documentos XML con XSD
Para validar un documento XML con XSD utiliza una herramienta como las siguientes:
- Editor de código y algún complemento que permita la validación de XML con DTD como, por ejemplo, Visual Studio Code y la extensión XML Tools o XML de Red Hat.
- Herramientas online como freeformatter.com/xml-validator-xsd.html.
- Programa específico como XMLSpy, Oxygen XML Editor o Altova XMLSpy.
- Herramientas en línea de comandos como xmllint o xmlstarlet. Estas herramientas suelen ofrecer opciones específicas para realizar la validación y mostrar los resultados.
6.2. Validación de XSD con herramienta online
- Paso 1: Crear el archivo XML
Crea un archivo llamadodatos.xmly añade el siguiente contenido:
<?xml version="1.0" encoding="UTF-8"?>
<libro xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esquema.xsd">
<titulo>Introducción a XML</titulo>
<autor>Juan Pérez</autor>
<precio>25.99</precio>
</libro>
- Paso 2: Crear el archivo XSD
Crea un archivo llamadoesquema.xsdy añade el siguiente contenido:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="libro">
<xs:complexType>
<xs:sequence>
<xs:element name="titulo" type="xs:string"/>
<xs:element name="autor" type="xs:string"/>
<xs:element name="precio" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- Paso 3: Validar el documento XML con el XSD con herramienta online.
Abre la herramienta online (por ejemplo freeformatter.com/xml-validator-xsd.html) y sube los documentos para verificar la validación.
6.3. Validar el documento XML con VS Code y la extensión «XML Tools».
Instalar la extensión XML Tools:
- Abre Visual Studio Code (Ver curso de Visual Studio Code).
- Ve a la sección de extensiones (puedes usar el atajo
Ctrl+Shift+Xo hacer clic en el icono de extensiones en la barra lateral izquierda). - Busca «XML Tools» y haz clic en «Install» para instalar la extensión.
Crea tu archivo XML y tu archivo XSD:
- Paso 1: Crear el archivo XML
Crea un archivo llamadodatos.xmly añade el siguiente contenido:
<?xml version="1.0" encoding="UTF-8"?>
<libro xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esquema.xsd">
<titulo>Introducción a XML</titulo>
<autor>Juan Pérez</autor>
<precio>25.99</precio>
</libro>
- Paso 2: Crear el archivo XSD
Crea un archivo llamadoesquema.xsdy añade el siguiente contenido:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="libro">
<xs:complexType>
<xs:sequence>
<xs:element name="titulo" type="xs:string"/>
<xs:element name="autor" type="xs:string"/>
<xs:element name="precio" type="xs:decimal"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
Abrir tu archivo XML:
- Abre el archivo XML que deseas validar en Visual Studio Code.
Validar el archivo XML:
- Puedes validar tu archivo XML automáticamente con la extensión «XML Tools» cuando guardas el archivo.
Visualización de errores:
- Si hay errores en el archivo XML con respecto al esquema (XSD), la extensión «XML Tools» mostrará mensajes de error en la parte inferior de la ventana de Visual Studio Code.
- Puedes hacer clic en los mensajes de error para navegar directamente a la ubicación del problema en el archivo XML.
- Si no ves ningún error, puedes intentar crear uno para ver cómo funciona la extensión. Por ejemplo, en la siguiente imagen se ve que se ha generado un error porque en el esquema XSD se ha definido el elemento «title» pero en el documento XML está declarado como «titulo».
Esperamos que este tutorial te haya sido útil para validar un documento XML con XSD En la siguiente sección te presentamos diferentes ejercicios resueltos para que puedas comprobar tu aprendizaje.
7. Ejercicios resueltos XSD
Con este conjunto de ejercicios prácticos resueltos de XSD podrás poner en práctica tus habilidades en XSD y comprobar si un archivo XML cumple las reglas definidas en XML Schema.
Esperamos que este tutorial te haya sido útil para validar un documento comprobar si un archivo XML cumple las reglas definidas en XML Schema. Te recordamos que este tutorial se incluye dentro de una serie de tutoriales en los que exploramos diversos aspectos del lenguaje XML y sus tecnologías asociadas. ¡Continua tu aprendizaje con los tutoriales de XPath o DTD y explora el fascinante mundo de XML!