ID
Un ID
es un valor único (identificador) para cada elemento.
<!ATTLIST pais codigo ID #IMPLIED>
La regla anterior valida el siguiente XML:
<pais codigo="fr">Francia</pais>
Algunas aspectos relativos al uso de identificadores son:
- Cada elemento escrito en un documento XML solo puede tener un atributo del tipo
ID
. - En un documento XML no pueden escribirse dos elementos que tengan el mismo valor en un atributo
ID
, aunque dicho atributo sea distinto. - Todo atributo declarado de tipo
ID
tiene que ser#IMPLIED
(opcional) o#REQUIRED
(obligatorio).
Un atributo de tipo ID
puede tomar como valor una cadena de texto formada por cualquier combinación de:
- Letras mayúsculas y minúsculas.
- Números.
- Guiones medios (
-
). - Guiones bajos (
_
). - Dos puntos (
:
). - Puntos (
.
).
La única restricción en la combinación es que el primer carácter tiene que ser una letra (mayúscula o minúscula) o un guión bajo (_
).
El uso de :
se reserva para cuando se definan espacios de nombres (namespaces).
Por lo tanto, un documento XML válido sería:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paises [
<!ELEMENT paises (pais*)>
<!ELEMENT pais (#PCDATA)>
<!ATTLIST pais codigo ID #IMPLIED>
]>
<paises>
<pais codigo="fr">Francia</pais>
<pais codigo="es">España</pais>
<pais codigo="pt">Portugal</pais>
</paises>
Sin embargo, el siguiente documento XML no sería válido:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE paises [
<!ELEMENT paises (pais*)>
<!ELEMENT pais (#PCDATA)>
<!ATTLIST pais codigo ID #IMPLIED>
]>
<paises>
<pais codigo="fr">Francia</pais>
<pais codigo="__">España</pais>
<pais codigo="__">Portugal</pais>
</paises>
En el país España y Portugal se están definiendo los mismos identificadores, lo cual no es válido.