jueves, 13 de junio de 2013

4.4. Definición de Tipo de Documento.


Una definición de tipo de documento o DTD (siglas en inglés de document type definition) es una descripción de estructura y sintaxis de un documento XML o SGML. Su función básica es la descripción de la estructura de datos, para usar una estructura común y mantener la consistencia entre todos los documentos que utilicen la misma DTD.
 
De esta forma, dichos documentos pueden ser validados, conocen la estructura de los elementos y la descripción de los datos que trae consigo cada documento, y pueden además compartir la misma descripción y forma de validación dentro de un grupo de trabajo que usa el mismo tipo de información.


¿Qué describe una DTD?

 

Las DTD se emplean generalmente para determinar la estructura de un documento mediante etiquetas (en inglés tags) XML o SGML. Una DTD describe:

 

  • Elementos: indican qué etiquetas son permitidas y el contenido de dichas etiquetas.
  • Estructura: indica el orden en que van las etiquetas en el documento.
  • Anidamiento: indica qué etiquetas van dentro de otras.



Ejemplo

Un ejemplo de una DTD XML muy simple, para describir una lista de personas:

< !ELEMENT lista_de_personas (persona*)>
< !ELEMENT persona (nombre, fechanacimiento?, sexo?, numeroseguridadsocial?)>
< !ELEMENT nombre (#PCDATA) >
< !ELEMENT fechanacimiento (#PCDATA) >
< !ELEMENT sexo (#PCDATA) >
< !ELEMENT numeroseguridadsocial (#PCDATA)>

Un ejemplo de un fichero XML que hace uso de esta DTD:

<?xml version="1.0" encoding="ISO-8859-1"?>

<!DOCTYPE lista_de_personas SYSTEM "ejemplo.dtd">

<lista_de_personas>

  <persona>

    <nombre>José García</nombre>

    <fechanacimiento>25/04/1984</fechanacimiento>

    <sexo>Varón</sexo>

  </persona>

</lista_de_personas>

 

Limitaciones de la DTD

 

Un esquema basado en una DTD tiene bastantes limitaciones. Una DTD no permite definir elementos locales que

sólo sean válidos dentro de otros elementos. Por ejemplo, si queremos tener un elemento <Manager> que describa

al gestor de una compañía o al de unaelegación, y la definición de Manager es diferente en cada caso, con una DTD

 tendríamos que crear los elementos “CompanyManager” y “DelegationManager” para evitar el conflicto de nombres.

 Es decir, la falta de jerarquía en una DTD obliga a introducir una jerarquía a base de guiones o puntos en el espacio de nombres

(Name Space). En una DTD es poco flexible la definición de elementos con contenido mixto, es decir, que incluyan

otros elementos además de texto. Además no es posible indicar a qué tipo de ato (número, fecha, moneda) ha de

 corresponder un atributo o el texto de un elemento.

la necesidad de superar estas

limitaciones propicia la aparición de otros lenguajes de esquema como XMLSchema, herramientas más completas de

descripción que son una alternativa a las DTD.

No hay comentarios:

Publicar un comentario