Document type definitions (DTD)

Embed Size (px)

Citation preview

DTD
Document Type Definitions

Carlos Castillo
[email protected]
Departamento de Ciencias de la Computacion
Facultad de Ciencias Fisicas y Matematicas
Universidad de Chile

XML (1/2)

Formato para expresar todo tipo de documentos

Juan Perez 38 Carlos Avila

doc1.xml

Samsung RX-1200 Phillips 9500 JX Frontal

doc2.xml

XML (2/2)

Flexible, OK si faltan/sobran elementos, formatos

Juan Perez 38 Carlos Avila

doc1.xml

Samsung RX-1200 Phillips 9500 JX Frontal

doc2.xml

DTD

Especifica clases de documento

Juan Perez 38 ...

doc1.xml

Samsung RX-1200 ...

doc2.xml

pacientes.dtd

lavadoras.dtd

Para que se usan las DTD ?

Describir un formato de datos

Usar un formato comun de datos entre aplicaciones

Verificar los datos al intercambiarlos

Verificar uno mismo un conjunto de datos

Ejemplo simple 1/2

(#PCDATA)>

Este es un ejemplo.

ok1.xml

ejemplo.dtd

ok2.xml

Ejemplo simple 2/2

(#PCDATA)>

Este es un ejemplo.

(NO ESTA BIEN FORMADO)

malo1.xml

ejemplo.dtd

Este es un ejemplo.

(NO ES VALIDO)

malo2.xml

Que describe una DTD ?

Elementos

Cuales son los tags permitidos

Cual es el contenido de cada tag

Estructura

En que orden van los tags en el documento

Anidamiento

Cuales tags van dentro de cuales

Elementos con contenido ELEMENT

(urgente?, asunto, cuerpo)>

(#PCDATA)>

(cita|#PCDATA)*>

(#PCDATA)>

EMPTY>

ejemplo.dtd

Un elemento tiene contenido ELEMENT, si solo puede contener a otros elementos, opcionalmente separados por espacios en blanco.

Elementos con contenido TEXT

(urgente?, asunto, cuerpo)>

(#PCDATA)>

(cita|#PCDATA)*>

(#PCDATA)>

EMPTY>

ejemplo.dtd

Un elemento tiene contenido TEXT, si solo puede contener texto

(PCDATA = printable character data)

Elementos con contenido MIXED

(urgente?, asunto, cuerpo)>

(#PCDATA)>

(cita|#PCDATA)*>

(#PCDATA)>

EMPTY>

ejemplo.dtd

Un elemento tiene contenido MIXED, si puede contener texto u otros elementos

Elementos con contenido EMPTY

(urgente?, asunto, cuerpo)>

(#PCDATA)>

(cita|#PCDATA)*>

(#PCDATA)>

EMPTY>

ejemplo.dtd

Un elemento tiene contenido EMPTY, si no puede contener otros elementos

Ejemplos documentos 1/4

(urgente?, asunto, cuerpo)>

(#PCDATA)>

(cita|#PCDATA)*>

(#PCDATA)>

EMPTY>

ejemplo.dtd

Agenda del curso Por favor enviar agenda Te envio la agenda ahora

ok1.xml

Ejemplos documentos 2/4

(urgente?, asunto, cuerpo)>

(#PCDATA)>

(cita|#PCDATA)*>

(#PCDATA)>

EMPTY>

ejemplo.dtd

Agenda del curso Te envio la agenda ahora

ok2.xml

Ejemplos documentos 3/4

(urgente?, asunto, cuerpo)>

(#PCDATA)>

(cita|#PCDATA)*>

(#PCDATA)>

EMPTY>

ejemplo.dtd

Si Enviar Te envio la agenda ahora

malo1.xml

Ejemplos documentos 4/4

(urgente?, asunto, cuerpo)>

(#PCDATA)>

(cita|#PCDATA)*>

(#PCDATA)>

EMPTY>

ejemplo.dtd

Te envio la agenda ahora Test

malo2.xml

Orden e inclusion de elementos

ejemplo.dtd

Orden de elementos, ejemplo

(urgente?|asunto|cuerpo)>

(#PCDATA)>

(cita|#PCDATA)*>

(#PCDATA)>

EMPTY>

msj.dtd

ok.xml

Atributos

carga NMTOKEN #IMPLIED marca CDATA #IMPLIED voltaje NMTOKENS #REQUIRED>

lavadora.dtd

CDATA:

texto

NMTOKEN:

abc...z0123..9-_:.

NMTOKENS:

NMTOKEN + espacios

ID: empezar con letra

IDREF: ser un ID

Atributos, ejemplo

carga NMTOKEN #IMPLIED marca CDATA #IMPLIED voltaje NMTOKENS #REQUIRED>

lavadora.dtd

lavadora.xml

Repeticion de elementos

(libro|revista)+>

(titulo,autor)>

(titulo,autor)>

(#PCDATA)>

(#PCDATA)>

biblioteca1.dtd

(libro|revista)+>

titulo,autor>

(%bibelem;) >

(%bibelem;) >

(#PCDATA)>

(#PCDATA)>

biblioteca2.dtd

Repeticion de atributos

(libro|revista)+>

titulo CDATA #REQUIRED editorial CDATA #REQUIRED autor CDATA #REQUIRED>

titulo CDATA #REQUIRED editorial CDATA #REQUIRED numero NMTOKEN #REQUIRED>

biblioteca1.dtd

(libro|revista)+>

titulo CDATA #REQUIRED editorial CDATA #REQUIRED>

%bibattrs; autor CDATA #REQUIRED>

%bibattrs; numero CDATA #REQUIRED>

biblioteca2.dtd

Click to edit the title text format

Click to edit the outline text format

Second Outline Level

Third Outline Level

Fourth Outline Level

Fifth Outline Level

Sixth Outline Level

Seventh Outline Level

Eighth Outline Level

Ninth Outline Level