Está en la página 1de 11

El propsito de una DTD (Document Type Definition) es definir los bloques de

construccin jurdica de un documento XML. Se define la estructura del documento


con una lista de elementos y atributos.
Si el DTD es declarado dentro del archivo XML, debe ser envuelta en una definicin
DOCTYPE con la siguiente sintaxis:

<!DOCTYPE root-element [element-declarations]>

Ejemplo de documento XML con una DTD interna:


La DTD anterior se interpreta como esto:

! DOCTYPE nota que define el elemento raz de este documento es nota.
! ELEMENT note define el elemento note que contiene cuatro elementos:
to, from, heading, body".
! Element to define el elemento a ser del tipo "# PCDATA".
! ELEMENT from define el elemento de ser del tipo "# PCDATA".
! ELEMENT heading define el ttulo elemento a ser del tipo "# PCDATA".
! ELEMENT body define el cuerpo elemento a ser del tipo "# PCDATA".
Declaracin exterior DTD
Si el DTD se declara en un archivo externo, debe ser envuelta en una definicin
DOCTYPE con la siguiente sintaxis:
<! DOCTYPE raz de elemento SYSTEM "nombre de archivo">

Elements
Los elementos son los principales bloques de construccin de ambos en XML y
HTML.
<body> algn texto </ body>
<message> algn texto </ mensaje>
Attributes
Atributos proporcionan informacin adicional sobre los elementos.
<img src="computer.gif" />

El nombre del elemento es "img". El nombre del atributo es "src".
Entities
Algunos caracteres tienen un significado especial en XML.






Declarar Elementos

En un DTD, los elementos XML se han declarado con un elemento de declaracin con
la siguiente sintaxis:

<!ELEMENT element-name category>
or
<!ELEMENT element-name (element-content)>


Los elementos vacios son declarados con la palabra clave EMPTY categora:

<!ELEMENT element-name EMPTY>

Example:
<!ELEMENT br EMPTY>
XML example:
<br />


Declarando atributos

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

DTD example:
<!ATTLIST payment type CDATA "check">
XML example:
<payment type="check" />

El tipo del atributo puede ser uno de los siguientes:
El valor por defecto puede ser uno de los siguientes:
Un valor de atributo por defecto:
DTD:
<!ELEMENT square EMPTY>
<!ATTLIST square width CDATA "0">

Valid XML: <square width="100" />

El elemento se define a ser un elemento vaco con un "ancho" atributo de tipo CDATA
. Si no se especifica el ancho, tiene un valor por defecto de 0.

# REQUIRED

<!ATTLIST element-name attribute-name attribute-type #REQUIRED>
Ejemplo:

DTD:
<!ATTLIST person number CDATA #REQUIRED>

Valid XML: <person number="5677" />

Invalid XML: <person />

Utilice la palabra clave # REQUIRED si no tiene una opcin para un valor por defecto,
pero an as deseas que el atributo de estar presente.
# IMPLIED

Ejemplo

<!ATTLIST element-name attribute-name attribute-type #IMPLIED>
DTD :
<!ATTLIST contact fax CDATA #IMPLIED>
Valid XML: <contact fax="555-667788" />
<Contactar fax="555-667788" />
Valid XML: <contact />
Utilice la palabra clave # IMPLIED si no quieres incluir a la fuerza un atributo, y
usted no tiene una opcin para un valor por defecto.
# FIXED

<!ATTLIST element-name attribute-name attribute-type #FIXED "value">

Ejemplo
DTD: <! ATTLIST sender empresa CDATA # FIXED "Microsoft">
Vlido XML: <sender company="Microsoft" />
No vlido XML: <sender company="W3Schools" />
Utilice la palabra clave # FIXED cuando quiera que un atributo tenga un valor fijo sin
permitir el autor para cambiarlo. Si se incluye otro valor, el anlisis de XML devolver
un error.
Entities
<!ENTITY entity-name "entity-value">
DTD Ejemplo:
<!ENTITY writer "Donald Duck.">
<!ENTITY copyright "Copyright W3Schools.">

XML example:
<author>&writer;&copyright;</author>
* La entidad tiene tres partes: un smbolo de unin (&), un nombre de la entidad, y un
punto y coma (;).
DTD Validacin

Validar XML con el analizador

Si intenta abrir un documento XML, XML Parser podra generar un error.Al acceder al
objeto parseError, puede recuperar el cdigo de error, el error de texto, o incluso la lnea
que caus el error.
Nota: La carga () sea el mtodo utilizado para los archivos, mientras que el loadXML ()
sea el mtodo utilizado para cuerdas.
Con Internet Explorer 5 + puede validar su XML en contra de una DTD.

También podría gustarte