Você está na página 1de 16

Universidad Politécnica

Salesiana
Aplicaciones Telemáticas

XML - DTD
XML – Document Type Definitios (DTDs)
• Los DTDs permiten establecer un “tipo” de documento, los elementos
y atributos que éstos pueden tener.
• Es la “gramática” de un tipo de documento XML.
• Se puede usar un “parser” (analizador sintáctico) para validar si un
documento XML cumple con las definiciones del DTD.

• Los DTDs se pueden asociar a un documento XML:


• Internamente
• Externamente
XML- DTD asociado internamente
Opcional, pero se recomienda por compatibilidad
<?xml version=”1.0”?> con nuevas versiones
<!DOCTYPE name [ Document type declaration (con DTD va al inicio)
<!ELEMENT name (first, middle, last)> Elemento raíz
<!ELEMENT first (#PCDATA)>
<!ELEMENT middle (#PCDATA)> Cuerpo del DTD
<!ELEMENT last (#PCDATA)>
]>
<name>
<first>Joseph</first>
<middle>John</middle>
<last>Fawcett</last>
</name>
XML- DTD asociado externamente
System identifiers
• Tiene dos elementos:
• La palabra clave SYSTEM
• El URI que apunta a la ubicación del documento
• El URI puede ser un archivo en el disco local, en la intranet, en Internet

• SYSTEM va luego del nombre del elemento raíz:


• <!DOCTYPE name SYSTEM “name.dtd” [...]>
• <!DOCTYPE name SYSTEM “file:///c:/name.dtd” [ ]>
• <!DOCTYPE name SYSTEM “http://dominio.com/hr/name.dtd” [ ]>
XML- DTD asociado externamente
Public identifiers
• Permite especificar la ubicación del DTD como un recurso en un
catálogo público en lugar de un archivo.
• Deben tener el formato FPI (Format Public Identifiers) (ISO 9070); la
ISO aprueba y administra los estándares.
FPI -//Owner//Class Description//Language//Version

<!DOCTYPE name PUBLIC “-//Beginning XML//DTD Name Example//EN” “name.dtd”>

Ver: name.dtd y name-doc-xml


XML- Estructura de un DTD
• Contiene tres partes básicas:
• Declaración de Elementos
• Declaración de Atributos
• Declaración de entidades
XML – Estructura de un DTD
Declaración de elementos: contiene tres partes:
• La declaración ELEMENT
• El nombre del elemento
• El modelo del contenido del elemento
<!ELEMENT name (first, middle, last)>
• El modelo del elemento define el contenido que se permite en el
elemento.
• Un elemento puede contener un elemento hijo, texto, la combinación
de los dos, o puede ser vacío.
XML – Estructura de un DTD
• Declaración de elementos:
<!ELEMENT contact (name)>
<!ELEMENT contact (name, location, phone, knows, description)>

• Elementos hijos pueden ser: 3 elementos en


• Secuencias: <!ELEMENT name (first, middle, last)> ese orden
Uno de los dos
• Choices: <!ELEMENT location (address | GPS)>
elementos

• <!ELEMENT location (address | (latitude, longitude))>


XML – Estructura de un DTD
• <!ELEMENT nombre ( modelo_contenido )>
• donde modelo_contenido establece la composición de un elemento:
• Lista de elementos que lo compone separados por comas, pueden
incluir:
+ Una o más ocurrencias de ese elemento
* 0 o más ocurrencias del elemento
? El elemento es opcional
• #PCDATA. Indica que el elemento esta compuesto por datos
• EMPTY. Indica que el elemento no contiene nada.
• ANY. Indica que contiene cualquier valor.
• | : Alternativa de contenido
XML – Estructura de un DTD
• Elementos – ejemplos:
<!ELEMENT a (b, (c | d)*, e+, f?) >
<!ELEMENT libro (autor+, titulo, isbn?, estado)>
<!ELEMENT autor (nombre, apellido+) >
<!ELEMENT titulo ( #PCDATA ) >
<!ELEMENT estado EMPTY >
XML – Estructura de un DTD
Atributos
• <!ATTLIST nombre_elem n_atr1 tipo_atr1 .val_atr1. . >
tipo_atr. Puede tomar los valores:
CDATA. El atributo es una cadena de caracteres cualquiera (no analizables).
NMTOKEN (o NMTOKENS). El atributo toma una palabra (o varias) como valor.
ID. El valor debe ser un nombre clave (único).
IDREF (o IDREFS). El valor (o valores) indica su relación con el ID de otro elemento.
Lista de nombres. El atributo toma uno de los valores.
• val_atr. Puede tomar los valores
#REQUIRED. El atributo debe tener un valor específico.
#IMPLIED. El valor del atributo no es requerido.
"valor". Valor por defecto para el atributo.
#FIXED "value". Establece el valor que debe tomar el atributo.
XML – ejemplo DTD
<!--archivo biblioteca.dtd --> <?xml version="1.0" encoding="ISO-8859-1"?>
<!ELEMENT biblioteca (libro+)> <!DOCTYPE bilbioteca SYSTEM .bibloteca.dtd. >
<biblioteca>
<!ELEMENT libro (autor+, titulo, isbn?, …
estado)>
<libro cod="0002" relac=“0001”>
<!ELEMENT autor (nombre, apellido+) > <titulo>XML en 48 horas</titulo>
<!ELEMENT titulo ( #PCDATA ) > <autor>
<!ELEMENT isbn ( #PCDATA ) > <nombre>Juan Ramón</nombre>
<!ELEMENT estado EMPTY > <apellido>López</apellido>
<!ELEMENT nombre ( #PCDATA ) > <apellido>Prats</apellido>
</autor>
<!ELEMENT apellido ( #PCDATA ) > <isbn>8-12345-09</isbn>
<!ATTLIST libro cod ID #REQUIRED <estado prestado=“Si”/>
relacionados IDREFS #IMPLIED> </libro>
<!ATTLIST estado prestado (Si | No) “No”> …
</biblioteca>
XML – ejemplo DTD
Revisar:

• mensaje.dtd
• mensaje.xml
XML - trabajo
• Crear el DTD para el siguiente documento
XML:

<buzon>
<mensaje prioridad="urgente">
<de>Juan</de>
<a>Pepe</a>
<texto idioma=“es">
Estimado amigo: ..
</texto>
</mensaje>
<mensaje>
<de>José</de>
<a>Pepe</a>
<texto idioma=“en">
Querido colega:…..
</texto>
</mensaje>

</buzon>
XML – Crear el documento XML para el siguiente DTD
<?xml version="1.0" encoding="UTF-8"?>
<!ELEMENT agenda (persona+)>
<!ELEMENT persona (nombre, email*, telefono, relacion?)>
<!ATTLIST persona id ID #REQUIRED>
<!ATTLIST persona sexo (hombre | mujer) #IMPLIED>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT email (#PCDATA)>
<!ELEMENT telefono (#PCDATA)>
<!ELEMENT relacion EMPTY>
<!ATTLIST relacion amigo-de IDREFS #IMPLIED>

Colocar al menos datos de 4 personas


XML- elaborar el DTD para un recetario de cocina
Cada receta tiene:
• Un atributo obligatorio que puede tomar los valores: 1plato, 2plato, postre
• Un nombre (texto)
• Varios ingredientes
• Varios pasos para su elaboración
• Tiempo aproximado de elaboración
• Cada ingrediente contiene:
• Atributo con la cantidad
• Atributo con el nombre
• Cada paso contiene:
• Un atributo identificador que establece el orden
• Un atributo que referencia otros pasos del cual depende éste
• Texto con la explicación de como se prepara

Você também pode gostar