Segunda Semana

Métodos de Definición de Documentos XML

DTD y XSD: Estructurando documentos XML válidos

¿Qué son los métodos de definición?

Son formas en que se pueden definir y estructurar los documentos XML para garantizar que sigan ciertas reglas y esquemas. Los dos métodos principales son DTD (Definición de Tipo de Documento) y XSD (XML Schema Definition).

Estos métodos permiten validar la estructura y contenido de los documentos XML, asegurando consistencia y validez.

1. DTD (Definición de Tipo de Documento)

Es una forma antigua pero aún utilizada de definir la estructura de un documento XML. Aunque menos potente que XSD, sigue siendo relevante por su simplicidad.

Características principales de DTD
  • ✅ Especifica qué elementos y atributos están permitidos
  • ❌ No es compatible con XML Namespaces
  • 📄 Se define dentro del documento XML o en archivo .dtd externo
  • ⚙️ Usa una sintaxis diferente a XML
Ejemplo de DTD
<!DOCTYPE persona [
    <!ELEMENT persona (nombre, edad)>
    <!ELEMENT nombre (#PCDATA)>
    <!ELEMENT edad (#PCDATA)>
]>

Documento XML válido según este DTD:

<persona>
    <nombre>Juan Pérez</nombre>
    <edad>30</edad>
</persona>

2. XML Schema (XSD)

Es el estándar moderno y más potente para definir la estructura de documentos XML. Ofrece muchas más capacidades que DTD.

Ventajas de XSD sobre DTD
Sintaxis XML

Usa sintaxis basada en XML, lo que facilita su lectura y procesamiento.

Tipos de datos

Soporta tipos de datos avanzados (números, fechas, booleanos, etc.).

Namespaces

Compatible con XML Namespaces para evitar conflictos.

Validación compleja

Permite reglas de validación más sofisticadas y detalladas.

Ejemplo de XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <xs:element name="persona">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="nombre" type="xs:string"/>
                <xs:element name="edad" type="xs:int"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
</xs:schema>

Documento XML válido según este XSD:

<persona>
    <nombre>Ana López</nombre>
    <edad>25</edad>
</persona>

Diferencias clave entre DTD y XSD

Característica DTD XSD
Sintaxis Propia (no XML) Basada en XML
Soporte de tipos de datos No
Namespaces No
Expresividad Limitada Más flexible y detallada
Recomendación Sistemas heredados Aplicaciones modernas

Conclusión

Al elegir entre DTD y XSD para definir documentos XML:

  • DTD es adecuado para sistemas simples o heredados
  • XSD es la opción recomendada para aplicaciones modernas

XSD ofrece mayor potencia y flexibilidad, especialmente cuando se trabaja con tipos de datos complejos o namespaces.