DTD - Sintaxis


Anuncios


Un DTD XML puede estar especificado dentro del documento, o se puede guardar en un documento independiente. Para este 煤ltimo caso el documento se puede relacionar con el documento DTD para usarlo.

Sintaxis

A continuaci贸n le mostramos la sintaxis b谩sica de un DTD:

<!DOCTYPE element DTD identifier
[
   declaration1
   declaration2
   ........
]>

En la sintaxis que ha visto

  • DTD empieza con el delimitador <!DOCTYPE.

  • Un elemento ordena al analizador diseccionar el documento desde el elemento ra铆z especificado.

  • Identificador DTD es un identificador para la definici贸n del tipo de documento, el cual puede convertirse en el camino hacia un archivo en el sistema o una direcci贸n URL hacia un archivo en Internet. Si el DTD indica un camino externo, se llama subconjunto externo (en ingl茅s external subset).

  • Los corchetes de apertura [ ] encierran una lista opcional de declaraciones de entidad llamada subconjunto interno.

DTD Interno

Un DTD se denomina DTD interno cuando los elementos se han declarado dentro del archivo XML. Para referenciarlo como DTD interno, el atributo standalone en la declaraci贸n XML se debe marcar con un Si. Esto significa que la declaraci贸n funciona al margen de la fuente externa.

Sintaxis

Le mostramos c贸mo seria la sintaxis de un DTD interno:

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

donde root-element es el nombre del elemento ra铆z y element-declarations es donde se declaran los elementos.

Ejemplo

A continuaci贸n le mostramos un simple ejemplo de DTD interno:

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
<!DOCTYPE address [
   <!ELEMENT address (name,company,phone)>
   <!ELEMENT name (#PCDATA)>
   <!ELEMENT company (#PCDATA)>
   <!ELEMENT phone (#PCDATA)>
]>
<address>
   <name>Tanmay Patil</name>
   <company>TutorialsPoint</company>
   <phone>(011) 123-4567</phone>
</address>

Veamos el c贸digo anterior m谩s detenidamente:

Inicio de la declaraci贸n- Empiece la declaraci贸n XML con lo siguiente

<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>

DTD- Justo despu茅s del encabezado XML encontramos document type declaration, en general referido como DOCTYPE:

<!DOCTYPE address [

La declaraci贸n de DOCTYPE tiene un signo de exclamaci贸n (!) al inicio del nombre del elemento. El DOCTYPE informa al analizador que un DTD est谩 asociado con este documento XML.

Cuerpo del DTD- Despu茅s de la declaraci贸n DOCTYPE viene el cuerpo del DTD, donde usted declara elementos, atributos, entidades, y anotaciones:

<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone_no (#PCDATA)>

Aqu铆 se declaran muchos elementos que forman el vocabulario del documento <name>. <!ELEMENT name (#PCDATA)> define el name del elemento para que se escriba "#PCDATA". En el ejemplo #PCDATA significa datos de texto interpretables por la m谩quina.

Fin de la declaraci贸n - Finalmente, la secci贸n de la declaraci贸n de DTD se cierra usando un corchete de cierre y un clorchete angular de cierre (]>). Con esto se termina la definici贸n de forma eficiente, y a partir de ah铆, le sigue el documento XML.

Normas

  • La declaraci贸n del tipo de documento debe aparecer al inicio del documento (solamente precedido por un encabezado XML) - No est谩 permitido en ning煤n otro lugar del documento.

  • De forma similar a la declaraci贸n de DOCTYPE, las declaraciones de elemento deben empezar con un signo de exclamaci贸n.

  • El nombre en la declaraci贸n del tipo de documento debe coincidir con el tipo de elemento del elemento ra铆z.

DTD externo

En los DTD externos, los elementos se declaran fuera del archivo XML. Se puede acceder a ellos especificando los atributos del sistema que pueden ser o un archivo legal .dtd o una direcci贸n URL v谩lida. Para referenciarlo como DTD externo, el atributo standalone en la declaraci贸n XML se debe marcar con un no. Esto significa, que la declaraci贸n incluye informaci贸n de una fuente externa.

Sintaxis

Aqu铆 tiene la sintaxis para DTD externos:

<!DOCTYPE root-element SYSTEM "file-name">

donde file-name es el archivo con la extensi贸n .dtd.

Ejemplo

El siguiente ejemplo muestra el uso de DTDs externas:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<!DOCTYPE address SYSTEM "address.dtd">
<address>
  <name>Tanmay Patil</name>
  <company>TutorialsPoint</company>
  <phone>(011) 123-4567</phone>
</address>

El contenido del archivo de DTD address.dtd es tal y como se muestra a continuaci贸n:

<!ELEMENT address (name,company,phone)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT company (#PCDATA)>
<!ELEMENT phone (#PCDATA)>

Tipos

Usted puede referirse a un DTD extern usando o identificadores de sistema o identificadores p煤blicos.

Identificadores de sistema

Un identificador de sistema le permite especificar la localizaci贸n de un archivo externo que contiene declaraciones DTD. La sintaxis es la siguiente:

<!DOCTYPE name SYSTEM "address.dtd" [...]>

Como puede observar contiene la palabra clave 'SYSTEM' y una referencia URI se帽alando la localizaci贸n del documento.

Identificadores p煤blicos

Los identificadores p煤blicos aportan un mecanismo de localizaci贸n de recursos DTD, y han sido escritos como se muestra a continuaci贸n:

<!DOCTYPE name PUBLIC "-//Beginning XML//DTD Address Example//EN">

Como ve, empieza con la palabra clave PUBLIC, seguida por un identificador especializado. Los identificadores p煤blicos se usan para identificar una entrada en un cat谩logo. Los identificadores p煤blicos pueden seguir cualquier tipo de formato, sin embargo, un formato com煤mente utilizado se llama Identificador p煤blico formal o FPI.



Advertisements