Elementos con cualquier contenido en una DTD - ANY
Cuando en una DTD se quiere declarar un elemento que pueda contener cualquier contenido –bien sea texto, otros elementos o una mezcla de ambos– esto se puede hacer indicando que su contenido es de tipo ANY:
<!ELEMENT cualquier_contenido ANY>
EJEMPLO En el siguiente documento XML, el elemento "cualquier_contenido" contiene tres elementos "texto":
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejemplo [
<!ELEMENT ejemplo (cualquier_contenido)>
<!ELEMENT cualquier_contenido ANY>
<!ELEMENT texto (#PCDATA)>
]>
<ejemplo>
<cualquier_contenido>
<texto>Texto1</texto>
<texto>Texto2</texto>
<texto>Texto3</texto>
</cualquier_contenido>
</ejemplo>
Fíjese que, definiendo la misma DTD, también sería válido el siguiente documento XML donde el elemento "cualquier_contenido" solo contiene texto:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejemplo [
<!ELEMENT ejemplo (cualquier_contenido)>
<!ELEMENT cualquier_contenido ANY>
<!ELEMENT texto (#PCDATA)>
]>
<ejemplo>
<cualquier_contenido>Texto1. Texto2. Texto3</cualquier_contenido>
</ejemplo>
Asimismo, el elemento "cualquier_contenido" podría contener una mezcla de texto y uno o más elementos.
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejemplo [
<!ELEMENT ejemplo (cualquier_contenido)>
<!ELEMENT cualquier_contenido ANY>
<!ELEMENT texto (#PCDATA)>
]>
<ejemplo>
<cualquier_contenido>Texto1<texto>Texto2</texto>Texto3</cualquier_contenido>
</ejemplo>
Por otra parte, si el elemento "cualquier_contenido" estuviese vacío, el documento XML seguiría siendo válido:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ejemplo [
<!ELEMENT ejemplo (cualquier_contenido)>
<!ELEMENT cualquier_contenido ANY>
<!ELEMENT texto (#PCDATA)>
]>
<ejemplo>
<cualquier_contenido></cualquier_contenido>
</ejemplo>
- En vez de <cualquier_contenido></cualquier_contenido>, también se puede escribir <cualquier_contenido/>.