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:
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.
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
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.">
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.