If you can't read please download the document
Upload
carlos-castillo-chato
View
1.985
Download
2
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