DECLARACIONES CLAVES DEL DTD




El document type definition o DTD, emplea una sintaxis determinada para expresar cada elemento que lo constituye.

Esto es lo que se llama declaración.

La declaración puede ser de elementos, atributos, etc.


DECLARACIONES DE ELEMENTOS EN DTD

Al usar DTD con el XML, los elementos definidos se crean mediante una sintaxis precisa que se llama declaración de elementos.

Así por ejemplo:
<!ELEMENT element-name (element-content)>


Las declaraciones de elementos pueden ser de distintos tipos y como tal, llevan una sintaxis diferente. Las declaraciones de elementos de DTD más habituales y sencillas son:

Elementos vacíos:

Su sintaxis es

<!ELEMENT element-name (EMPTY)>


Si este elemento vacío fuera una imagen se sustituiría element-name por img. De este modo:

<!ELEMENT img (EMPTY)>

Elementos con datos:

Este tipo de elementos se declaran con el tipo de datos que contiene entre paréntesis.

Los tipos de datos más habituales que contienen estos elementos son PCDATA (cuando un parser puede localizar los caracteres) #CDATA (cuando un parser no puede localizar los caracteres) y ANY cuando son cualquier tipo de datos.

Un ejemplo:

<!ELEMENT element-name (ANY)>

Elementos con hijos (secuencias):

Los elementos con uno o más hijos se definen con el nombre de los elementos-hijos dentro de paréntesis.

Su sintaxis sería la siguiente:

<!ELEMENT element-name (child-element-name)>


DECLARACIONES DE ATRIBUTOS EN DTD

La declaración que usamos para los atributos viene definida por la palabra ATTLIST.

Consta de la siguiente sintaxis:

< !ATTLIST element-name attribute-name attribute –type default-value > 

Tal y como muestra esta sintaxis, la declaración con ATTLIST nos enseña los elementos que puede contener un atributo, el nombre que posee dicho atributo, su tipo y su valor.


DECLARACIONES DE ENTIDADES EN DTD

Las entidades pueden ser internas o externas.

La sintaxis de las entidades internas es:

<!ENTITY entity-name "entity-value"> 

<>La de las externas:

<!ENTITY entity-name SYSTEM "URI/URL">