Ir al contenido

Cómo definir un elemento en XML con DTD ELEMENT

Los DTD son documentos que nos sirven para definir la estructura de documentos XML. Los DTD son básicos para la formulación de documentos XML, por tanto usar DTD es necesario para tener documentos XML bien formados. Nos ayudarán a definir los elementos de un documento XML mediante DTD ELEMENT.

Dentro del DTD estableceremos qué elementos puede contener nuestro documento XML. Imagina una estructura XML que pueda albergar mensajes de texto, es decir, una estructura como la siguiente:

<texto>
<mensaje></mensaje>
</texto>

Tanto texto como mensaje son dos elementos XML que deberemos definir dentro del DTD del documento XML con DTD ELEMENT.

Lo primero que tenemos que hacer al iniciar el DTD es la definición del XML con su versión y codificación:

<?xml version="1.0" encoding="UTF-8"?>

Acto seguido pasaremos a definir los elementos texto y mensaje con DTD ELEMENT. Para definir elementos utilizamos el tag <!ELEMENT> mediante la siguiente estructura:

<!ELEMENT nombre-elemento tipo-contenido>
<!ELEMENT nombre-elemento (elementos-hijos)>

El primer caso de DTD ELEMENT lo utilizaremos para codificar elementos sencillos, es decir, aquellos que no aniden a otros elementos. En este caso indicaremos el tipo de contenido que puede albergar mediante un tipo. Esto nos servirá para definir nuestro elemento mensaje, al cual le daremos un tipo #PCDATA:

<!ELEMENT mensaje (#PCDATA)>

En el segundo caso, DTD ELEMENT nos sirve para definir elementos que contengan a otros elementos. En ese caso el contenido será el nombre de los elementos que contengan, separados por coma y con modificadores que indiquen la cantidad de veces que pueden aparecer. Esta segunda estructura DTD ELEMENT nos servirá para definir el elemento texto, el cual contiene el elemento mensaje:

<!ELEMENT texto (mensaje+)>

En el caso de texto pusimos (mensaje+) para indicar que mensaje es un subelemento del elemento texto. El símbolo más (+) significa que el elemento mensaje debe aparecer al menos una vez dentro del elemento texto, pero que puede aparecer N veces.

Otros modificadores de DTD ELEMENT que indican el número de ocurrencias son:

  • Sin modificador: el elemento aparecerá exactamente una vez.
  • ?: el elemento puede aparecer cero o una vez.
  • +: el elemento aparece una o N veces.
  • *: el elemento puede aparecer cero o N veces.

Finalmente nuestro DTD completo sería este:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE texto [
<!ELEMENT texto (mensaje+)>
<!ELEMENT mensaje (#PCDATA)>
]>

Para hacer uso del DTD desde nuestros documentos XML lo haríamos de la siguiente forma:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE texto [
<!ELEMENT texto (mensaje+)>
<!ELEMENT mensaje (#PCDATA)>
]>
<texto>
<mensaje>Hola mundo</mensaje>
</texto>
Foto de Christian Enrique Portilla Pauca

Christian Enrique Portilla Pauca

Devops Engineer / Site Reliability Engineer.

Descarga el código de Cómo definir un elemento en XML con DTD ELEMENT

Uso de la estructura DTD ELEMENT para definir los elementos que puede albergar nuestros documentos XML.

Descargar código