Los DTD permiten especificar:
- Qué elementos pueden formar parte de un documento XML.
- Qué relación existe entre esos elementos.
- Qué atributos pueden tener los elementos.
- Qué posibles valores pueden tomar los atributos.
Pueden declararse junto con el documento XML o externamente
Si se incluye en el documento XML debe declarase dentro de la etiqueta:
<!DOCTYPE root-element [element-declarations]>
Si se declara externamente la etiqueta sería:
<!DOCTYPE root-element SYSTEM “filename”>
Las DTDs tienen una sintaxis propia. Los bloques principales son:
- Elements : define la etiqueta de un documento XML
- Attributes : define los atributos que puede tener un elemento. Son parejas atributo/valor”
- Entities : variables que definen texto
- PCDATA : parsed character data. Será analizado por el parser.
- CDATA: character data. No es analizado por el parser
Declaración de elementos
Cabe distinguir las siguientes opciones
1) Un elemento compuesto por otros
<!ELEMENT element-name child-element-name,child-element-name,…..)>
2) Un elemento compuesto por la sola ocurrencia de otro elemento
<!ELEMENT element-name (child-name)>
3) Un elemento compuesto por uno o más ocurrencias de otro elemento
<!ELEMENT element-name (child-name+)>
4) Un elemento compuesto por cero o más ocurrencias de otro elemento
<!ELEMENT element-name (child-name*)>
5) Un elemento compuesto por cero o uno ocurrencia de otro elemento
<!ELEMENT element-name (child-name?)>
6) Un elemento compuesto por uno u otro elemento
<!ELEMENT element-name (child-name| child-name)>
Declaración de atributos
La sintaxis por defecto empleada para definición de atributos de un elemento es:
<!ATTLIST element-name attribute-name attribute-type default-value>
Declaración de entidades
La sintaxis por defecto empleada para definición de entidades se basa en la siguiente etiqueta:
<!ENTITY entity-name “entity-value”>
Escrito por ildapena