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ú"/>