> Manuales > Manual de XML

Aunque no es obligatorio, los documentos XML pueden empezar con unas línea que describen la versión de XML, el tipo de documento, y otras cosas.

La primera, o "declaración XML", define la versión de XML usada. Hasta ahora sólo hay una, la "1.0" Además, en la "declaración XML" especificamos la codificación del documento, que puede ser, por ejemplo, US-ASCII (7 bits) o UTF-8 (código Unicode del que el ASCII es un subconjunto), UCS-2, EUC-JP, Shift_JIS, Big5, ISO-8859-1 hasta ISO- 8859-7. En general, y para uso con lenguajes europeos (incluyendo el juego de caracteres especiales del castellano, usamos UTF-7 o ISO-8859-1) Además, se puede incluir una declaración de documento autónomo ( standalone), que controla qué componentes de la DTD son necesarios para completar el procesamiento del documento.

La segunda, o "declaración de tipo de documento", define qué tipo de documento estamos creando para ser procesado correctamente. Es decir, definimos que Declaración de Tipo de Documento (DTD – Document Type Definition) valida y define los datos que contiene nuestro documento XML.

En ella se define el tipo de documento, y dónde encontrar la información sobre su Definición de Tipo de Documento, mediante un identificador público (PUBLIC) que hace referencia a dicha DTD, o mediante un Identificador Universal de Recursos (URI) precedido por la palabra SYSTEM.

Ejemplos:

<?xml version="1.0" encoding="UTF-7" standalone="yes"?>
<!DOCTYPE MENSAJE SYSTEM "mensaje.dtd">
<!DOCTYPE HTML PUBLIC "-/ /W3C/ /DTD HTML 3.2 Final/ /EN">
<!DOCTYPE LABEL SYSTEM "http://www.empresa.com/dtds/label.dtd">


ELEMENTOS

Los elementos XML pueden tener contenido (más elementos, caracteres, o ambos a la vez), o bien ser elementos vacíos.
Un elemento con contenido es, por ejemplo:

<nombre>Fulano Mengánez</nombre>
<aviso tipo="emergencia" gravedad="mortal">Que no cunda el pánico</aviso>


Siempre empieza con una <etiqueta> que puede contener atributos o no, y termina con una </etiqueta> que debe tener el mismo nombre. Al contrario que HTML, en XML siempre se debe "cerrar" un elemento.

Hay que tener en cuenta que el símbolo "<" siempre se interpreta como inicio de una etiqueta XML. Si no es el caso, el documento no estará bien-formado. Para usar ciertos símbolos se usanlas entidades predefinidas, que se explican más adelante.

Un elemento vacío, es el que no tiene contenido (claro). Por ejemplo:

<identificador DNI="23123244"/>
<linea-horizontal/>


Al no tener una etiqueta de "cierre" que delimite un contenido, se utiliza la forma <etiqueta/>, que puede contener atributos o no. La sintaxis de HTML permite etiquetas vacías tipo <hr> o <img src="...">. En HTML reformulado para que sea un documento XML bien-formado, se debería usar <hr/> o <img src="..."/>

ATRIBUTOS

Como se ha mencionado antes, los elementos pueden tener atributos, que son una manera de incorporar características o propiedades a los elementos de un documento.

Por ejemplo, un elemento "chiste" puede tener un atributo "tipo" y un atributo "calidad", con valores "vascos" y "bueno" respectivamente.

<chiste tipo="vascos" calidad="bueno">Esto es un dia que Patxi y Josu van paseando…
</chiste>


En una Definición de Tipo de Documento, se especifican los atributos que puede tener cada tipo de elemento, así como sus valores y tipos de valor posible.

Al igual que en otras cadenas literales de XML, los atributos pueden estar marcados entre comillas verticales ( ' ) o dobles ( " ). Cuando se usa uno para delimitar el valor del atributo, el otro tipo se puede usar dentro.

<verdura clase="zanahoria" longitud='15" y media'>
<cita texto="'Hola buenos dias', dijo él">


A veces, un elemento con contenido, puede modelarse como un elemento vacío con atributos. Un concepto se puede representar de muy diversas formas, pero una vez elegida una, es aconsejable fijarla en el DTD, y usar siempre la misma consistentemente dentro de un documento XML.

<gato><nombre>Micifú</nombre><raza>Persa</raza></gato>
<gato raza="Persa">Micifú</gato>
<gato raza="Persa" nombre="Micifú"/>

Alfredo Reino Romero

Manual