Secuencias de elementos en una DTD
En una DTD, un elemento (padre) puede ser declarado para contener a otro u otros elementos (hijos). En la sintaxis, los hijos –también llamados sucesores– tienen que escribirse entre paréntesis "()" y separados por comas ",".
Elemento con varios hijos
EJEMPLO Para declarar un elemento (padre) que contenga tres elementos (hijos), se puede escribir:
<!ELEMENT padre (hijo1, hijo2, hijo3)>
EJEMPLO En el siguiente documento XML, el elemento "persona" contiene a los elementos "nombre", "fecha_de_nacimiento" y "ciudad":
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persona [
<!ELEMENT persona (nombre, fecha_de_nacimiento, ciudad)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT fecha_de_nacimiento (#PCDATA)>
<!ELEMENT ciudad (#PCDATA)>
]>
<persona>
<nombre>Iker</nombre>
<fecha_de_nacimiento>26-12-1997</fecha_de_nacimiento>
<ciudad>Valencia</ciudad>
</persona>
A su vez, los hijos también pueden tener sus propios hijos. Así, el elemento "fecha_de_nacimiento" puede contener, por ejemplo, a los elementos "dia", "mes" y "anio":
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persona [
<!ELEMENT persona (nombre, fecha_de_nacimiento, ciudad)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT fecha_de_nacimiento (dia, mes, anio)>
<!ELEMENT dia (#PCDATA)>
<!ELEMENT mes (#PCDATA)>
<!ELEMENT anio (#PCDATA)>
<!ELEMENT ciudad (#PCDATA)>
]>
<persona>
<nombre>Iker</nombre>
<fecha_de_nacimiento>
<dia>26</dia>
<mes>12</mes>
<anio>1997</anio>
</fecha_de_nacimiento>
<ciudad>Valencia</ciudad>
</persona>
Orden de los hijos de un elemento
En un documento XML, los elementos (hijos) de un elemento (padre), deben escribirse en el mismo orden en el que han sido declarados en la DTD.
EJEMPLO El siguiente documento XML no es válido:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE persona [
<!ELEMENT persona (nombre, fecha_de_nacimiento, ciudad)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT fecha_de_nacimiento (dia, mes, anio)>
<!ELEMENT dia (#PCDATA)>
<!ELEMENT mes (#PCDATA)>
<!ELEMENT anio (#PCDATA)>
<!ELEMENT ciudad (#PCDATA)>
]>
<persona>
<nombre>Iker</nombre>
<fecha_de_nacimiento>
<anio>1997</anio>
<mes>12</mes>
<dia>26</dia>
</fecha_de_nacimiento>
<ciudad>Valencia</ciudad>
</persona>
- El documento no es válido porque los elementos sucesores (hijos) del elemento "fecha_de_nacimiento" no se han escrito en el mismo orden que en la DTD.