12
DTD Document Type Definition

Dtd

Embed Size (px)

Citation preview

Page 1: Dtd

DTDDocument Type Definition

Page 2: Dtd

CONTENIDO

Prefacio

Document Type Definition

Sintaxis

Ejemplo

<!DOCTYPE>

<!ELEMENT>

<!ATTLIST>

Cuantificadores

Referencias

Page 3: Dtd

PREFACIO A LA PRIMERA EDICIÓN

Documento explicativo de las funciones del DTD, creado por Johnny de Jesús Hernández Racero.

Esta obra no pretende de ningún motivo, ser una guía exhaustiva y sin ningún tipo de error. Por lo tanto el autor se reserva el derecho de ser informado de cualquier fallo o falencia en la obra actual.

Se permita a cualquier otro individuo ya sea natural o jurídica, a hacer cualquier aporte a la obra, sin desmeritar al autor original de la misma o a sus derechos sobre esta.

Cualquier cambio en el título de la obra no será permitido, puesto que este es la explicación misma del documento.

Favor informar a: [email protected]

Para cualquier sugerencia de cambio y autorización de inclusión de un segundo autor de la misma.

Page 4: Dtd

DOCUMENT TYPE DEFINITION

Document type Defintion (Definición de tipo de documento)

Es un conjunto de reglas básicas que debe cumplir un documento específico, al cual se vincula directa o indirectamente a un documento, para ser observado por este tipo de reglas. Es decir, el DTD regula que las reglas impartidas en él, se cumplan; de lo contrario, marcará que el documento es invalido.

Page 5: Dtd

SINTAXIS

DTD solo pese ELEMENT y ATTLIST, usados en etiquetas y atributos.

Al DTD no le importa el tipo de datos, puesto que a todos los considera tipo Strings.

Sin embargo, también necesita que se especifique ciertas normas a seguir en el documento; dentro de los ELEMENTS asignamos los nombres de los nodos, a continuación si tienen otros nodos o no, si tienen datos o no, y por últimos, las veces que queremos que aparezca ese nodo.

Page 6: Dtd

EJEMPLO

Documento XML<?xml version="1.0" encoding="utf-8"?>

<!DOCTYPE nodoPadre SYSTEM "documento.dtd">

<nodoPadre>

<nodoHijo1>

</nodoHijo1>

<nodoHijo2>

</nodoHijo2>

<nodoHijo3 atributo="" />

</nodoPadre>

Documento DTD<!ELEMENT nodoPadre (nodoHijo1, nodoHijo2, nodoHijo3)>

<!ELEMENT nodoHijo1 (#PCDATA)>

<!ELEMENT nodoHijo2 (#PCDATA)>

<!ELEMENT nodoHijo3 EMPTY>

<!ATTLIST nodoHijo3 atributo CDATA #IMPLIED>

Page 7: Dtd

EXPLICACIÓN

El documento XML es analizado por el documento DTD, mediante las instrucción <!DOCTYPE seguido del nombre del nodo padre, a continuación se describe la ubicación del archivo. Sí este archivo se encuentra en nuestra PC, se escribe la palabra SYSTEM y se le asigna la dirección en el equipo encerrada entre comillas.

Page 8: Dtd

<!DOCTYPE >

Supongamos que tengo mi archivo XML y DTD en Documentos, en una carpeta llamada dtd, Ejemplo:

<!DOCTYPE nombreNodoPadre SYSTEM “./dtd/documento.dtd”>

De esta manera le hago saber al documento XML dónde se encuentra el documento DTD, dentro del equipo.

Si el documento se encuentra en una dirección web, es decir, fuera del equipo, se utiliza la palabra reservada PUBLIC, ejemplo:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4,01//EN" "http://www.w3.org/TR/html4/strict.dtd">

De esta manera, el documento, al ser verificado se analizará con el documento online, en caso de tener conexión al internet, de lo contrario, no se validará el documento.

Page 9: Dtd

<!ELEMENT>

<!ELEMENT nombreNodo (nodoHijo, nodoHijoN, …)Cuantificador>

Si tiene datos, usamos la palabra reservada (#PCDATA) entre paréntesis.

Sino tiene datos, usamos la palabra reservada EMPTY sin paréntesis.

<!ELEMENT nombreNodo (#PCDATA)Parámetro>

<!ELEMENT nombreNodo EMPTY Parámetro>

Page 10: Dtd

CUANTIFICADORESEste cuantificador nos indicas cuantas veces aparecerá nuestro nodo en el documento, sus valores son:

?: indica que nuestro nodo aparecerá una vez o ninguna (0 | 1).+: indica que nuestro nodo aparecerá una o más veces (1 | n).*: indica que nuestro nodo aparecerá cero o más veces (0 | n).

Si no especificamos ningún valor como parámetro, el nodo debe aparecer una sola vez, Ejemplo:

<!ELEMENT nombreNodo (#PCDATA)> Debe aparecer una sola vez y sólo una vez.<!ELEMENT nombreNodo+ EMPTY> Debe aparecer una o más veces.<!ELEMENT nombreNodo? (PCDATA)> Puede aparecer cero o una sola vez.<!ELEMENT nombreNodo* EMPTY> Puede aparecer cero o más veces.

Page 11: Dtd

<!ATTLIST>

Los atributos que poseen nuestras etiquetas, también deben ser declarados en documento.dtd, de esta manera.

<!ATTLIST nombreNodo atributo CDATA indicador>Dónde indicador puede ser:#ANY Admite cualquier tipo de datos.#REQUIRED El atributo es obligatorio.#FIX El atributo que se le asigna al nodo es el único valor de ese atributo.#DEFAULT Se le asigna un valor por defecto en caso de que no se le asigne nada.