El documento explica las definiciones de tipo de documento (DTD) en XML. Las DTD especifican la estructura y elementos permitidos en un documento XML para verificar su validez. Incluyen definiciones de elementos, atributos, contenido, orden y repetición de elementos. Las DTD ayudan a describir formatos de datos comunes y verificar documentos durante el intercambio de información.
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
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
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