Tercera Semana

Validación de Documentos XML

Herramientas y métodos para asegurar documentos XML válidos

Introducción

XML (Extensible Markup Language) es un lenguaje de marcado utilizado para almacenar y transportar datos. A diferencia de HTML, XML no define la presentación, sino la estructura y el significado de los datos.

La validación de XML es fundamental para asegurar que los documentos cumplen con las reglas definidas, evitando errores en el procesamiento y facilitando la integración entre sistemas.

Métodos de Validación

Opciones de validación
DTD

Define la estructura y los elementos válidos de un documento XML. Es una opción simple pero menos flexible.

XML Schema

Permite definir con mayor precisión la estructura y los tipos de datos en XML. Es más avanzado que DTD.

RELAX NG

Un lenguaje más flexible y legible para la validación de XML, con una sintaxis sencilla.

Validación con DTD

Ejemplo de DTD
<!DOCTYPE libro [
    <!ELEMENT libro (titulo, autor)>
    <!ELEMENT titulo (#PCDATA)>
    <!ELEMENT autor (#PCDATA)>
]>
Ejemplo de XML válido:
<?xml version="1.0"?>
<!DOCTYPE libro SYSTEM "libro.dtd">
<libro>
    <titulo>Aprender XML</titulo>
    <autor>Juan Pérez</autor>
</libro>
Validación con xmllint:
xmllint --noout --dtdvalid libro.dtd libro.xml

Validación con XML Schema (XSD)

Ejemplo de XSD
<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:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>
Ejemplo de XML válido:
<?xml version="1.0"?>
<libro xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
       xsi:noNamespaceSchemaLocation="libro.xsd">
    <titulo>Aprender XML</titulo>
    <autor>Juan Pérez</autor>
</libro>
Validación con xmllint:
xmllint --noout --schema libro.xsd libro.xml

Herramientas para Validar

Opciones disponibles
xmllint

Herramienta de línea de comandos para validar XML contra DTD y XSD.

XML Validator

Servicio en línea para validar XML contra DTD, XSD y RELAX NG.

Oxygen XML

Editor avanzado que incluye validación en tiempo real y soporte para múltiples esquemas.