Validación de Documentos XML mediante DTD y XML Schema XSD
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 4,67 KB
Conceptos Generales de DTD (Document Type Definition)
Una DTD establece las reglas que debe seguir un documento XML para considerarse válido.
- Ubicación: La declaración DTD puede incluirse dentro del propio archivo XML o vincularse como un fichero externo.
- Elemento Raíz: Todo documento debe tener un único elemento raíz que coincida exactamente con el nombre especificado en el
DOCTYPE. - Contenido de Elementos: Los elementos pueden estar vacíos (EMPTY), contener cualquier dato (ANY), almacenar texto procesable (#PCDATA), o contener una mezcla de texto y otros elementos hijos.
- Cardinalidad: La repetición de los elementos se controla con símbolos: ? (0 o 1 vez), * (0 o más veces) y + (1 o más veces).
- Atributos: Se definen indicando su tipo, como texto (CDATA), valores enumerados o identificadores (ID, IDREF).
- Modificadores de Atributos: Pueden ser obligatorios (#REQUIRED), opcionales (#IMPLIED), tener valores por defecto o valores fijos e inmutables (#FIXED).
- Limitaciones: La DTD presenta problemas porque no utiliza la sintaxis estándar de XML, carece de soporte para tipos de datos avanzados, no permite crear tipos personalizados y no soporta espacios de nombres (namespaces).
XML Schema (XSD)
El XML Schema surge como el sucesor natural y más potente de las DTD, diseñado para solucionar sus limitaciones.
- Sintaxis Estándar: A diferencia de las DTD, los XML Schemas están escritos íntegramente utilizando la sintaxis estándar de XML.
- Elemento Raíz: Todo documento de esquema XML comienza con el elemento raíz
<schema>. - Tipos de Datos: Es su característica principal, ya que permite validar información de forma estricta asegurando que no haya ambigüedades en la transmisión de datos (por ejemplo, validando un formato de fecha específico).
- Gestión de Cadenas: Incluye tipos específicos como string (mantiene todos los espacios), normalizedString (sustituye tabulaciones y saltos de línea por espacios) y token (elimina espacios múltiples y de los extremos).
- Reutilización y Extensión: Son extensibles, lo que permite crear tipos de datos propios, referenciar varios esquemas y reutilizar definiciones.
- Restricciones (Facets): Permiten aplicar límites estrictos a los datos, como definir enumeraciones de valores válidos, establecer patrones exactos de texto, o limitar longitudes y rangos numéricos.
Estructura de Elementos en XML Schema
XML Schema divide los elementos en dos categorías principales dependiendo de su contenido y complejidad:
Elementos Simples
- Definición: Son aquellos elementos que únicamente pueden contener texto.
- Limitaciones: No pueden contener elementos hijos ni atributos.
- Tipos comunes: Utilizan tipos de datos integrados como
xs:string,xs:integer,xs:decimal,xs:booleanoxs:date.
Elementos Complejos
- Definición: Son elementos XML que pueden contener otros elementos hijos, poseer atributos, o ambas cosas.
- Variantes: Pueden estar completamente vacíos (conteniendo solo atributos), albergar solo texto, o tener un contenido mixto que intercala texto y elementos.
- Indicadores de Orden: Se utilizan para definir cómo deben aparecer los hijos:
<xs:all>(cualquier orden, una sola vez),<xs:choice>(solo puede aparecer uno de los listados) o<xs:sequence>(deben aparecer en el orden exacto definido). - Indicadores de Ocurrencia: Permiten un control numérico exacto mediante
minOccurs(apariciones mínimas) ymaxOccurs(apariciones máximas permitidas). - Grupos y Flexibilidad: Permiten definir grupos de elementos o atributos para referenciarlos múltiples veces, y usar etiquetas como
<any>o<anyAttribute>para permitir datos que no estaban descritos originalmente en el esquema.