Estructura y Validación de Documentos XML: Fundamentos, DOM y DTD
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 7,05 KB
Introducción al XML (eXtensible Markup Language)
El XML (eXtensible Markup Language) es un lenguaje desarrollado por el W3C (World Wide Web Consortium) basado en SGML (Standard Generalized Markup Language). Es un lenguaje basado en texto que tanto los ordenadores como las personas pueden interpretar fácilmente. Es importante destacar que no es un lenguaje de programación, ya que no permite implementar algoritmos ni realizar cálculos.
Su función principal es describir las características de un documento a través de marcadores o tags para guardar y organizar datos dentro del mismo. Se define como un lenguaje de almacenamiento e intercambio de datos en diferentes plataformas, permitiendo indicar, mediante marcadores, qué es cada elemento. Es un metalenguaje extensible (como GML o MathML) que permite la comunicación entre distintas plataformas sin importar el origen de la información (por ejemplo, conectando Windows con SQL o Linux con Oracle). Los datos se guardan de forma jerárquica y ordenada sin mostrar directamente el código XML.
Usos Principales
- Simplificar documentos HTML.
- Almacenamiento de información en Bases de Datos (BD).
- Intercambio de información entre sistemas.
Ventajas del XML
- La creación de documentos y su comprensión es sumamente sencilla.
- Los documentos XML pueden ser procesados de forma ágil.
- Pueden usarse en múltiples campos gracias a sus etiquetas personalizadas.
- Facilita el intercambio de información entre distintas aplicaciones, independientemente de la plataforma y el origen de los datos.
- Existen analizadores estándar para el procesamiento de documentos XML.
DOM (Document Object Model)
Debido a que resultaba difícil procesar y manipular el contenido de los archivos XML mediante los lenguajes de programación tradicionales, surgieron diversas técnicas y conjuntos de utilidades para manipular documentos (API de funciones). El árbol DOM transforma el XML original en una estructura de jerarquía de nodos que se puede manipular con lenguajes como JavaScript o Java, representando los contenidos mediante nodos y sus relaciones.
Estructura del DOM
La estructura se compone de los siguientes tipos de nodos:
- Nodo documento: La raíz del archivo.
- Elementos: Etiquetas que definen la estructura.
- Texto: El contenido dentro de las etiquetas.
- Atributos: Propiedades de los elementos.
- Comentarios: Notas dentro del código.
Elementos y Relaciones
Los documentos están formados por texto plano y contienen etiquetas que permiten codificar el contenido. Es fundamental que todas las etiquetas se cierren. Los datos se almacenan donde reside el valor; un elemento puede estar vacío y poseer atributos. En cuanto a las relaciones, se definen términos como root (raíz), children (hijos), parent (padre) y sibling (hermano).
Atributos y Reglas
Los atributos proporcionan información extra del elemento y se sitúan al inicio de la etiqueta. Deben ser únicos y seguir estas reglas:
- Deben tener un único valor.
- Los valores van siempre entre comillas.
- Diferencian entre mayúsculas y minúsculas.
- Deben comenzar por una letra o guion bajo.
- Pueden contener caracteres alfanuméricos y guiones.
Entidades
Representan información específica. Existen entidades generales internas (valor en el documento) y externas. También existen entidades de parámetros para caracteres especiales como: < (less than), > (greater than), & (ampersand), ' (apóstrofo) y " (comillas).
DTD (Declaración de Tipo de Documento)
La DTD es un mecanismo para expresar las reglas sobre lo que se permite y lo que no en archivos XML o SGML. Es un documento de texto plano que define una serie de normas para validar cómo debe crearse un fichero XML. Gracias a este tipo de documentos, puede especificarse el número de ocurrencias de un elemento, el tipo de datos y el orden de precedencia. Aunque su creación no es obligatoria, se recomienda cuando la información del XML va a ser compartida.
Ventajas y Contenido
- Permite que diferentes grupos intercambien datos de forma estandarizada.
- Una aplicación puede usar una DTD para verificar que el XML es válido.
- Puede contener: Elementos, atributos, entidades, CDATA y PCDATA.
Inclusión de la DTD
La DTD puede incluirse en el mismo archivo XML (sintaxis interna) o en un archivo separado (sintaxis externa).
Detalles Técnicos de la DTD
Elementos
Se definen mediante:
- #PCDATA: Texto que será analizado.
- Hijos: Definidos por una secuencia ( , , ).
- EMPTY / ANY: Elementos vacíos o con cualquier contenido.
- Contenido mixto: Combinación de texto y otros elementos.
Cardinalidad
Define cuántas veces aparece un elemento:
?: Una vez o ninguna.+: Una o varias veces.*: Cero o varias veces.- Si no se indica ningún operador, debe aparecer exactamente una vez.
- Operador de elección (pipeline
|): Permite elegir entre elementos, pero no ambos simultáneamente.
Atributos en DTD
Se utilizan para añadir información a un elemento, aunque a veces no se recomiendan porque no pueden tener varios valores ni son extensibles. Si hay más de uno, se separan con espacios, tabuladores o nuevas líneas.
Tipos de Declaración
- Valor entre comillas: El atributo tiene un valor por defecto.
- #REQUIRED: El atributo es obligatorio.
- #IMPLIED: El atributo es opcional.
- #FIXED: El atributo tiene un valor fijo inalterable.
Tipos de Atributos
Incluyen: CDATA (texto), ENUMERADO (pertenecen a una lista |), ID, IDREF (referencia a un ID existente), IDREFS, NMTOKEN (cadena de caracteres), NMTOKENS, NOTATION, ENTITY, ENTITIES y atributos especiales como xml:lang y xml:space.
Entidades en DTD
Sirven para abreviar texto o utilizar caracteres especiales. Se dividen en entidades generales (utilizadas en XML y DTD) y paramétricas (utilizadas exclusivamente en la DTD).