SlideShare una empresa de Scribd logo
1 de 22
DTD Document Type Definitions Carlos Castillo [email_address] Departamento de Ciencias de la Computacion Facultad de Ciencias Fisicas y Matematicas Universidad de Chile
XML (1/2) ,[object Object],<?xml version=”1.0”?> <pacientes> <paciente> <nombre>Juan</nombre> <apellido>Perez</apellido> <edad>38</edad> </paciente> <paciente> <nombre>Carlos</nombre> <apellido>Avila</apellido> </paciente> </pacientes> doc1.xml <?xml version=”1.0”?> <lavadoras> <lavadora> <marca>Samsung</marca> <modelo>RX-1200</modelo> </lavadora> <lavadora> <marca>Phillips</marca> <modelo>9500 JX</modelo> <carga>Frontal</carga> </lavadora> </lavadoras> doc2.xml
XML (2/2) ,[object Object],<?xml version=”1.0”?> <pacientes> <paciente> <nombre>Juan</nombre> <apellido>Perez</apellido> <edad>38</edad> </paciente> <paciente> <nombre>Carlos</nombre> <apellido>Avila</apellido> </paciente> </pacientes> doc1.xml <?xml version=”1.0”?> <lavadoras> <lavadora> <marca>Samsung</marca> <modelo> RX-1200 </modelo> </lavadora> <lavadora> <marca>Phillips</marca> <modelo> 9500 JX </modelo> <carga>Frontal</carga> </lavadora> </lavadoras> doc2.xml
DTD ,[object Object],<?xml version=”1.0”?> <pacientes> <paciente> <nombre>Juan</nombre> <apellido>Perez</apellido> <edad>38</edad> </paciente> ... </pacientes> doc1.xml <?xml version=”1.0”?> <lavadoras> <lavadora> <marca>Samsung</marca> <modelo>RX-1200</modelo> </lavadora> ... </lavadoras> doc2.xml pacientes.dtd lavadoras.dtd
Para que se usan las DTD ? ,[object Object],[object Object],[object Object],[object Object]
Ejemplo simple 1/2 <!ELEMENT ejemplo (#PCDATA)> <!DOCTYPE ejemplo SYSTEM ejemplo.dtd> <ejemplo> Este es un ejemplo. </ejemplo> ok1.xml ejemplo.dtd <!DOCTYPE ejemplo SYSTEM ejemplo.dtd> <ejemplo/> ok2.xml
Ejemplo simple 2/2 <!ELEMENT ejemplo (#PCDATA)> <!DOCTYPE ejemplo SYSTEM ejemplo.dtd> < inicioejemplo > Este es un ejemplo. </ finejemplo > (NO ESTA  BIEN FORMADO ) malo1.xml ejemplo.dtd <!DOCTYPE ejemplo SYSTEM ejemplo.dtd> < example > Este es un ejemplo. </ example > (NO ES  VALIDO ) malo2.xml
¿ Que describe una DTD ? ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Elementos con “contenido ELEMENT” <!ELEMENT  mensaje (urgente?, asunto, cuerpo)> <!ELEMENT asunto (#PCDATA)> <!ELEMENT cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT urgente EMPTY> ejemplo.dtd ,[object Object]
Elementos con “contenido TEXT” <!ELEMENT  mensaje (urgente?, asunto, cuerpo)> <!ELEMENT  asunto (#PCDATA)> <!ELEMENT  cuerpo (cita|#PCDATA)*> <!ELEMENT  cita (#PCDATA)> <!ELEMENT urgente EMPTY> ejemplo.dtd ,[object Object],[object Object]
Elementos con “contenido MIXED” <!ELEMENT  mensaje (urgente?, asunto, cuerpo)> <!ELEMENT  asunto (#PCDATA)> <!ELEMENT  cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT urgente EMPTY> ejemplo.dtd ,[object Object]
Elementos con “contenido EMPTY” <!ELEMENT  mensaje (urgente?, asunto, cuerpo)> <!ELEMENT  asunto (#PCDATA)> <!ELEMENT  cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT  urgente EMPTY> ejemplo.dtd ,[object Object]
Ejemplos documentos 1/4 <!ELEMENT  mensaje (urgente?, asunto, cuerpo)> <!ELEMENT  asunto (#PCDATA)> <!ELEMENT  cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT  urgente EMPTY> ejemplo.dtd <?xml version=”1.0”?> <!DOCTYPE mensaje SYSTEM “asunto.dtd”> <mensaje> <urgente/> <asunto> Agenda del curso </asunto> <cuerpo> <cita> Por favor enviar agenda </cita> Te envio la agenda ahora </cuerpo> </mensaje> ok1.xml
Ejemplos documentos 2/4 <!ELEMENT  mensaje (urgente?, asunto, cuerpo)> <!ELEMENT  asunto (#PCDATA)> <!ELEMENT  cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT  urgente EMPTY> ejemplo.dtd <?xml version=”1.0”?> <!DOCTYPE mensaje SYSTEM “asunto.dtd”> <mensaje> <asunto> Agenda del curso </asunto> <cuerpo> Te envio la agenda ahora </cuerpo> </mensaje> ok2.xml
Ejemplos documentos 3/4 <!ELEMENT  mensaje (urgente?, asunto, cuerpo)> <!ELEMENT  asunto (#PCDATA)> <!ELEMENT  cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT  urgente EMPTY> ejemplo.dtd <?xml version=”1.0”?> <!DOCTYPE mensaje SYSTEM “asunto.dtd”> <mensaje> <urgente>Si</urgente> <asunto/> <cita>Enviar</cita> <cuerpo> Te envio la agenda ahora </cuerpo> </mensaje> malo1.xml
Ejemplos documentos 4/4 <!ELEMENT  mensaje (urgente?, asunto, cuerpo)> <!ELEMENT  asunto (#PCDATA)> <!ELEMENT  cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT  urgente EMPTY> ejemplo.dtd <?xml version=”1.0”?> <!DOCTYPE mensaje SYSTEM “asunto.dtd”> <mensaje> <cuerpo> Te envio la agenda ahora </cuerpo> <asunto>Test</asunto> </mensaje> malo2.xml
Orden e inclusion de elementos <!-- Uno o varios FirstName seguidos de  uno o varios LastName --> <!ELEMENT  nombre (FirstName+, LastName+)> <!-- Cero o varios FirstName seguidos de uno o varios LastName --> <!ELEMENT nombre (FirstName*, LastName+)> <!-- cheque O BIEN efectivo O BIEN tarjeta --> <!ELEMENT pago (cheque|efectivo|tarjeta)> <!-- Carta con o sin fecha --> <!ELEMENT carta (fecha?, cuerpo)> ejemplo.dtd
Orden de elementos, ejemplo <!ELEMENT  mensaje (urgente?|asunto|cuerpo)> <!ELEMENT  asunto (#PCDATA)> <!ELEMENT  cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT  urgente EMPTY> msj.dtd <?xml version=”1.0”?> <!DOCTYPE mensaje SYSTEM “msj.dtd”> <mensaje> <cuerpo/> <asunto/> </mensaje> ok.xml
Atributos <!ELEMENT  lavadora EMPTY > <!ATTLIST lavadora carga NMTOKEN #IMPLIED marca CDATA #IMPLIED voltaje NMTOKENS #REQUIRED> <!-- #IMPLIED=opcional --> lavadora.dtd ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Atributos, ejemplo <!ELEMENT  lavadora EMPTY > <!ATTLIST lavadora carga NMTOKEN #IMPLIED marca CDATA #IMPLIED voltaje NMTOKENS #REQUIRED>  lavadora.dtd <?xml version=”1.0”?> <!DOCTYPE lavadora SYSTEM “lavadora.dtd”> <lavadora carga=”frontal” marca=”Samsung 10XE” voltaje=”210V 110V”/> lavadora.xml
Repeticion de elementos <!ELEMENT bib (libro|revista)+> <!ELEMENT libro ( titulo,autor )> <!ELEMENT revista ( titulo,autor )> <!ELEMENT titulo (#PCDATA)> <!ELEMENT autor (#PCDATA)> biblioteca1.dtd <!ELEMENT bib (libro|revista)+> <!ENTITY % bibelem “ titulo,autor”> <!ELEMENT libro ( %bibelem; ) > <!ELEMENT revista ( %bibelem; ) > <!ELEMENT titulo (#PCDATA)> <!ELEMENT autor (#PCDATA)> biblioteca2.dtd
Repeticion de atributos <!ELEMENT bib (libro|revista)+> <!ELEMENT libro EMPTY> <!ATTLIST libro titulo CDATA #REQUIRED editorial CDATA #REQUIRED autor CDATA #REQUIRED> <!ATTLIST revista titulo CDATA #REQUIRED editorial CDATA #REQUIRED numero NMTOKEN #REQUIRED> biblioteca1.dtd <!ELEMENT bib (libro|revista)+> <!ENTITY % bibattrs “ titulo CDATA #REQUIRED editorial CDATA #REQUIRED“ > <!ELEMENT libro EMPTY> <!ATTLIST libro %bibattrs; autor CDATA #REQUIRED> <!ELEMENT revista EMPTY> <!ATTLIST revista %bibattrs; numero CDATA #REQUIRED> biblioteca2.dtd

Más contenido relacionado

Similar a Document type definitions (DTD)

Similar a Document type definitions (DTD) (20)

XML en .NET
XML en .NETXML en .NET
XML en .NET
 
Introducción a xml
Introducción a xmlIntroducción a xml
Introducción a xml
 
Html
HtmlHtml
Html
 
Cont clase de lenguaje IV
Cont clase de lenguaje IVCont clase de lenguaje IV
Cont clase de lenguaje IV
 
Datos y metadatos, de Francisca Hernández Carrascal
Datos y metadatos, de Francisca Hernández CarrascalDatos y metadatos, de Francisca Hernández Carrascal
Datos y metadatos, de Francisca Hernández Carrascal
 
Datos y metadatos, Francisca Hernández Carrascal
Datos y metadatos, Francisca Hernández CarrascalDatos y metadatos, Francisca Hernández Carrascal
Datos y metadatos, Francisca Hernández Carrascal
 
Qué es xhtml
Qué es xhtmlQué es xhtml
Qué es xhtml
 
Xml On Rails
Xml On RailsXml On Rails
Xml On Rails
 
Codigos HTML Continuación
Codigos HTML ContinuaciónCodigos HTML Continuación
Codigos HTML Continuación
 
HTML
HTMLHTML
HTML
 
HTML
HTMLHTML
HTML
 
Diapo02
Diapo02Diapo02
Diapo02
 
Videoconferencia
VideoconferenciaVideoconferencia
Videoconferencia
 
Xml
XmlXml
Xml
 
HTML
HTMLHTML
HTML
 
Busqueda Informacion
Busqueda InformacionBusqueda Informacion
Busqueda Informacion
 
Xml
XmlXml
Xml
 
Clase05
Clase05Clase05
Clase05
 
Introduccion a Python
Introduccion a PythonIntroduccion a Python
Introduccion a Python
 
Introduccion a Python por Facundo Batista
Introduccion a Python por Facundo BatistaIntroduccion a Python por Facundo Batista
Introduccion a Python por Facundo Batista
 

Más de Carlos Castillo (ChaTo)

Finding High Quality Content in Social Media
Finding High Quality Content in Social MediaFinding High Quality Content in Social Media
Finding High Quality Content in Social MediaCarlos Castillo (ChaTo)
 
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017Carlos Castillo (ChaTo)
 
Detecting Algorithmic Bias (keynote at DIR 2016)
Detecting Algorithmic Bias (keynote at DIR 2016)Detecting Algorithmic Bias (keynote at DIR 2016)
Detecting Algorithmic Bias (keynote at DIR 2016)Carlos Castillo (ChaTo)
 

Más de Carlos Castillo (ChaTo) (20)

Finding High Quality Content in Social Media
Finding High Quality Content in Social MediaFinding High Quality Content in Social Media
Finding High Quality Content in Social Media
 
When no clicks are good news
When no clicks are good newsWhen no clicks are good news
When no clicks are good news
 
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017
Socia Media and Digital Volunteering in Disaster Management @ DSEM 2017
 
Detecting Algorithmic Bias (keynote at DIR 2016)
Detecting Algorithmic Bias (keynote at DIR 2016)Detecting Algorithmic Bias (keynote at DIR 2016)
Detecting Algorithmic Bias (keynote at DIR 2016)
 
Discrimination Discovery
Discrimination DiscoveryDiscrimination Discovery
Discrimination Discovery
 
Fairness-Aware Data Mining
Fairness-Aware Data MiningFairness-Aware Data Mining
Fairness-Aware Data Mining
 
Big Crisis Data for ISPC
Big Crisis Data for ISPCBig Crisis Data for ISPC
Big Crisis Data for ISPC
 
Databeers: Big Crisis Data
Databeers: Big Crisis DataDatabeers: Big Crisis Data
Databeers: Big Crisis Data
 
Observational studies in social media
Observational studies in social mediaObservational studies in social media
Observational studies in social media
 
Natural experiments
Natural experimentsNatural experiments
Natural experiments
 
Content-based link prediction
Content-based link predictionContent-based link prediction
Content-based link prediction
 
Link prediction
Link predictionLink prediction
Link prediction
 
Recommender Systems
Recommender SystemsRecommender Systems
Recommender Systems
 
Graph Partitioning and Spectral Methods
Graph Partitioning and Spectral MethodsGraph Partitioning and Spectral Methods
Graph Partitioning and Spectral Methods
 
Finding Dense Subgraphs
Finding Dense SubgraphsFinding Dense Subgraphs
Finding Dense Subgraphs
 
Graph Evolution Models
Graph Evolution ModelsGraph Evolution Models
Graph Evolution Models
 
Link-Based Ranking
Link-Based RankingLink-Based Ranking
Link-Based Ranking
 
Text Indexing / Inverted Indices
Text Indexing / Inverted IndicesText Indexing / Inverted Indices
Text Indexing / Inverted Indices
 
Indexing
IndexingIndexing
Indexing
 
Text Summarization
Text SummarizationText Summarization
Text Summarization
 

Último

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativanicho110
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...JohnRamos830530
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxFederico Castellari
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxJorgeParada26
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanamcerpam
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITMaricarmen Sánchez Ruiz
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxMiguelAtencio10
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.FlorenciaCattelani
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxAlan779941
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estossgonzalezp1
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21mariacbr99
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIhmpuellon
 

Último (12)

redes informaticas en una oficina administrativa
redes informaticas en una oficina administrativaredes informaticas en una oficina administrativa
redes informaticas en una oficina administrativa
 
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
Resistencia extrema al cobre por un consorcio bacteriano conformado por Sulfo...
 
Buenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptxBuenos_Aires_Meetup_Redis_20240430_.pptx
Buenos_Aires_Meetup_Redis_20240430_.pptx
 
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptxEVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
EVOLUCION DE LA TECNOLOGIA Y SUS ASPECTOSpptx
 
Avances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvanaAvances tecnológicos del siglo XXI 10-07 eyvana
Avances tecnológicos del siglo XXI 10-07 eyvana
 
pruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNITpruebas unitarias unitarias en java con JUNIT
pruebas unitarias unitarias en java con JUNIT
 
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptxEL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
EL CICLO PRÁCTICO DE UN MOTOR DE CUATRO TIEMPOS.pptx
 
How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.How to use Redis with MuleSoft. A quick start presentation.
How to use Redis with MuleSoft. A quick start presentation.
 
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptxPROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
PROYECTO FINAL. Tutorial para publicar en SlideShare.pptx
 
Avances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estosAvances tecnológicos del siglo XXI y ejemplos de estos
Avances tecnológicos del siglo XXI y ejemplos de estos
 
Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21Innovaciones tecnologicas en el siglo 21
Innovaciones tecnologicas en el siglo 21
 
investigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXIinvestigación de los Avances tecnológicos del siglo XXI
investigación de los Avances tecnológicos del siglo XXI
 

Document type definitions (DTD)

  • 1. DTD Document Type Definitions Carlos Castillo [email_address] Departamento de Ciencias de la Computacion Facultad de Ciencias Fisicas y Matematicas Universidad de Chile
  • 2.
  • 3.
  • 4.
  • 5.
  • 6. Ejemplo simple 1/2 <!ELEMENT ejemplo (#PCDATA)> <!DOCTYPE ejemplo SYSTEM ejemplo.dtd> <ejemplo> Este es un ejemplo. </ejemplo> ok1.xml ejemplo.dtd <!DOCTYPE ejemplo SYSTEM ejemplo.dtd> <ejemplo/> ok2.xml
  • 7. Ejemplo simple 2/2 <!ELEMENT ejemplo (#PCDATA)> <!DOCTYPE ejemplo SYSTEM ejemplo.dtd> < inicioejemplo > Este es un ejemplo. </ finejemplo > (NO ESTA BIEN FORMADO ) malo1.xml ejemplo.dtd <!DOCTYPE ejemplo SYSTEM ejemplo.dtd> < example > Este es un ejemplo. </ example > (NO ES VALIDO ) malo2.xml
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13. Ejemplos documentos 1/4 <!ELEMENT mensaje (urgente?, asunto, cuerpo)> <!ELEMENT asunto (#PCDATA)> <!ELEMENT cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT urgente EMPTY> ejemplo.dtd <?xml version=”1.0”?> <!DOCTYPE mensaje SYSTEM “asunto.dtd”> <mensaje> <urgente/> <asunto> Agenda del curso </asunto> <cuerpo> <cita> Por favor enviar agenda </cita> Te envio la agenda ahora </cuerpo> </mensaje> ok1.xml
  • 14. Ejemplos documentos 2/4 <!ELEMENT mensaje (urgente?, asunto, cuerpo)> <!ELEMENT asunto (#PCDATA)> <!ELEMENT cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT urgente EMPTY> ejemplo.dtd <?xml version=”1.0”?> <!DOCTYPE mensaje SYSTEM “asunto.dtd”> <mensaje> <asunto> Agenda del curso </asunto> <cuerpo> Te envio la agenda ahora </cuerpo> </mensaje> ok2.xml
  • 15. Ejemplos documentos 3/4 <!ELEMENT mensaje (urgente?, asunto, cuerpo)> <!ELEMENT asunto (#PCDATA)> <!ELEMENT cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT urgente EMPTY> ejemplo.dtd <?xml version=”1.0”?> <!DOCTYPE mensaje SYSTEM “asunto.dtd”> <mensaje> <urgente>Si</urgente> <asunto/> <cita>Enviar</cita> <cuerpo> Te envio la agenda ahora </cuerpo> </mensaje> malo1.xml
  • 16. Ejemplos documentos 4/4 <!ELEMENT mensaje (urgente?, asunto, cuerpo)> <!ELEMENT asunto (#PCDATA)> <!ELEMENT cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT urgente EMPTY> ejemplo.dtd <?xml version=”1.0”?> <!DOCTYPE mensaje SYSTEM “asunto.dtd”> <mensaje> <cuerpo> Te envio la agenda ahora </cuerpo> <asunto>Test</asunto> </mensaje> malo2.xml
  • 17. Orden e inclusion de elementos <!-- Uno o varios FirstName seguidos de uno o varios LastName --> <!ELEMENT nombre (FirstName+, LastName+)> <!-- Cero o varios FirstName seguidos de uno o varios LastName --> <!ELEMENT nombre (FirstName*, LastName+)> <!-- cheque O BIEN efectivo O BIEN tarjeta --> <!ELEMENT pago (cheque|efectivo|tarjeta)> <!-- Carta con o sin fecha --> <!ELEMENT carta (fecha?, cuerpo)> ejemplo.dtd
  • 18. Orden de elementos, ejemplo <!ELEMENT mensaje (urgente?|asunto|cuerpo)> <!ELEMENT asunto (#PCDATA)> <!ELEMENT cuerpo (cita|#PCDATA)*> <!ELEMENT cita (#PCDATA)> <!ELEMENT urgente EMPTY> msj.dtd <?xml version=”1.0”?> <!DOCTYPE mensaje SYSTEM “msj.dtd”> <mensaje> <cuerpo/> <asunto/> </mensaje> ok.xml
  • 19.
  • 20. Atributos, ejemplo <!ELEMENT lavadora EMPTY > <!ATTLIST lavadora carga NMTOKEN #IMPLIED marca CDATA #IMPLIED voltaje NMTOKENS #REQUIRED> lavadora.dtd <?xml version=”1.0”?> <!DOCTYPE lavadora SYSTEM “lavadora.dtd”> <lavadora carga=”frontal” marca=”Samsung 10XE” voltaje=”210V 110V”/> lavadora.xml
  • 21. Repeticion de elementos <!ELEMENT bib (libro|revista)+> <!ELEMENT libro ( titulo,autor )> <!ELEMENT revista ( titulo,autor )> <!ELEMENT titulo (#PCDATA)> <!ELEMENT autor (#PCDATA)> biblioteca1.dtd <!ELEMENT bib (libro|revista)+> <!ENTITY % bibelem “ titulo,autor”> <!ELEMENT libro ( %bibelem; ) > <!ELEMENT revista ( %bibelem; ) > <!ELEMENT titulo (#PCDATA)> <!ELEMENT autor (#PCDATA)> biblioteca2.dtd
  • 22. Repeticion de atributos <!ELEMENT bib (libro|revista)+> <!ELEMENT libro EMPTY> <!ATTLIST libro titulo CDATA #REQUIRED editorial CDATA #REQUIRED autor CDATA #REQUIRED> <!ATTLIST revista titulo CDATA #REQUIRED editorial CDATA #REQUIRED numero NMTOKEN #REQUIRED> biblioteca1.dtd <!ELEMENT bib (libro|revista)+> <!ENTITY % bibattrs “ titulo CDATA #REQUIRED editorial CDATA #REQUIRED“ > <!ELEMENT libro EMPTY> <!ATTLIST libro %bibattrs; autor CDATA #REQUIRED> <!ELEMENT revista EMPTY> <!ATTLIST revista %bibattrs; numero CDATA #REQUIRED> biblioteca2.dtd