Elementos
Los elementos son los distintos bloques de información que permiten definir la estructura de un documento XML. Por ejemplo:
<libro>XML práctico</libro>
Los elementos están delimitados por una etiqueta de apertura y una etiqueta de cierre. En el ejemplo mostrado:
- Etiqueta de apertura:
<libro>
- Etiqueta de cierre:
</libro>
A su vez, los elementos pueden estar formados por otros elementos y/o por atributos. Por ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE libro>
<libro>
<titulo>XML practico</titulo>
<autor>Sebastien Lecomte</autor>
<autor>Thierry Boulanger</autor>
<editorial>Ediciones Eni</editorial>
<isbn>978-2-7460-4958-1</isbn>
<edicion>1</edicion>
<paginas>347</paginas>
<libro>
En este caso, el ejemplar es el elemento <libro>
. A su vez, <libro>
está compuesto de los elementos:
<autor>
<editorial>
<isbn>
<edicion>
<paginas>
En realidad, el ejemplar es el elemento raíz (root) de un documento XML (en este ejemplo, el elemento <libro>
). Todos los datos de un documento XML han de pertenecer a un elemento del mismo.
Los nombres de las etiquetas han de ser autodescriptivos, lo que facilita el trabajo que se hace con ellas.
Sintaxis
La formación de elementos ha de cumplir ciertas normas para que queden perfectamente definidos y que el documento XML al que pertenecen pueda ser interpretado por los procesadores XML sin generar ningún error fatal.
A continuación, se describen las reglas de sintaxis del lenguaje XML.
Único elemento raíz
En todo documento XML debe existir un elemento raíz (root element), y sólo uno.
Por ejemplo, el siguiente ejemplo sería un XML no válido (tiene dos elementos raíz):
<libro>XML Práctico</libro>
<cuaderno>Lenguaje de marcas</libro>
El hecho de que tenga un elemento raíz, permite representar los datos en forma de árbol.
Supongamos el siguiente documento XML:
<persona>
<nombre>Elsa</nombre>
<mujer/>
<fecha-de-nacimiento>
<día>18</día>
<mes>6</mes>
<año>1996</año>
</fecha-de-nacimiento>
<ciudad>Pamplona</ciudad>
</persona>
Se podría representar gráficamente de la siguiente manera:
Etiqueta de apertura y cierre
Todos los elementos tienen una etiqueta de inicio y otra de cierre. Por ejemplo:
<libro>XML Práctico</libro>
Lo que sería incorrecto es lo siguiente (falta la etiqueta de cierre):
<libro>XML Práctico
En el caso de que en el documento existan elementos vacíos (empty elements), se pueden sustituir las etiquetas de inicio y cierre por una de elemento vacío. Ésta se construye como la etiqueta de inicio, pero sustituyendo el carácter >
por />
. Por ejemplo, supongamos el siguiente elemento:
<libro></libro>
Sería equivalente a:
<libro/>
Anidación de elementos
Al anidar elementos (introducir unos dentro de otros), hay que tener en cuenta que no puede cerrarse un elemento que contenga algún otro elemento que aún no se haya cerrado.
Por ejemplo, esto es incorrecto (se cierra el elemento libro
antes de titulo
):
<libro>
<titulo>XML Práctico</libro>
</titulo>
Lo correcto es:
<libro>
<titulo>XML Práctico</titulo>
</libro>
Nomenclatura de etiquetas
Los nombres de las etiquetas de inicio y de cierre de un mismo elemento han de ser idénticos, respetando las mayúsculas y minúsculas. Por ejemplo:
<cuaderno></cuaderno>
Sin embargo, no sería válido lo siguiente:
<Libro></libro>
Las normas de sintaxis básicas en relación a los nombres de etiquetas son:
- Todos los nombres de los elementos son sensibles a letras minúsculas y mayúsculas (case sensitive).
- Pueden contener letras minúsculas, letras mayúsculas, números, puntos (
.
), guiones medios (-
) y guiones bajos (_
). - Asimismo, pueden contener el carácter dos puntos (
:
). Pero, su uso se reserva para definir espacios de nombres. - El primer carácter tiene que ser una letra o un guion bajo (
_
). - Las letras no inglesas (
á
,Á
,ñ
,Ñ
, etc.) están permitidas. Pero, al igual que el carácter guion medio (-
) y el punto (.
), se recomienda no utilizarlos para reducir posibles incompatibilidades o errores en programas que no los interpreten bien. - No puede comenzar por la cadena
xml
, ni ninguna de sus versiones en que se cambien mayúsculas y minúsculas (XML
,XmL
,xML
, etc.).
Contenido de los elementos
No se pueden utilizar directamente los caracteres >
, <
, &
, "
y '
en el contenido de los elementos, ya que son caracteres reservados.
En el caso de las comillas simples ('
) y dobles ("
), existe un caso donde sí se pueden utilizar: en atributos. Aunque respetando ciertas restricciones.
En el caso de tener que utilizar alguno de estos caracteres, se sustituyen por las siguientes cadenas:
Caracter | Entidad | Representación |
---|---|---|
> | gt | > |
< | lt | < |
& | amp | & |
" | quot | " |
' | apos | ' |
Al nombre que hace referencia a un caracter se le denomina entidad. Por ejemplo, la entidad gt
hace referencia al caracter >
.
Cuando utilizamos una entidad en un documento XML debe hacerse mediante su representación (ver tabla), es decir, el nombre de la entidad entre los símbolos &
y ;
. Por ejemplo:
<libro>Elemento <libro<</libro>
El contenido del elemento libro
sería:
Elemento <libro>
Caracteres especiales
Para utilizar caracteres especiales (como £
, ©
, ®
, etc.) hay que usar las expresiones &#D;
o &#H;
, donde D
y H
se corresponden respectivamente con el número decimal o hexadecimal asociado al caracter que se quiere representar en el código UNICODE.
Por ejemplo, para incluir €
, se usarían las cadenas €
o €
.
En el siguiente enlace encontrarás una tabla con los caracteres ASCII, el nombre HTML, y el número HTML de cada uno de ellos que te será imprescindible a la hora de realizar documentos en HTML y XML.