Una definición de tipo de documento (DTD) describe la estructura de árbol de un documento y algo sobre sus datos. Es un conjunto de afirmaciones de marcado que en realidad definen un tipo de documento para la familia SGML, como GML, SGML, HTML, XML.
Una DTD se puede declarar dentro de un documento XML como en línea o como una recomendación externa. DTD determina cuántas veces debe aparecer un Node y cómo se ordenan sus Nodes secundarios.
Hay 2 tipos de datos, PCDATA y CDATA
- PCDATA son datos de caracteres analizados.
- CDATA son datos de caracteres, que normalmente no se analizan.
Sintaxis:
<!DOCTYPE element DTD identifier [ first declaration second declaration . . nth declaration ]>
Ejemplo:
DTD para el árbol anterior es:
Documento XML con una DTD interna:
XML
<?xml version="1.0"?> <!DOCTYPE address [ <!ELEMENT address (name, email, phone, birthday)> <!ELEMENT name (first, last)> <!ELEMENT first (#PCDATA)> <!ELEMENT last (#PCDATA)> <!ELEMENT email (#PCDATA)> <!ELEMENT phone (#PCDATA)> <!ELEMENT birthday (year, month, day)> <!ELEMENT year (#PCDATA)> <!ELEMENT month (#PCDATA)> <!ELEMENT day (#PCDATA)> ]> <address> <name> <first>Rohit</first> <last>Sharma</last> </name> <email>sharmarohit@gmail.com</email> <phone>9876543210</phone> <birthday> <year>1987</year> <month>June</month> <day>23</day> </birthday> </address>
La DTD anterior se interpreta así:
- !DOCTYPE dirección define que el elemento raíz de este documento es la dirección.
- !ELEMENT dirección define que el elemento de dirección debe contener cuatro elementos: «nombre, correo electrónico, teléfono, cumpleaños».
- !ELEMENT nombre define que el elemento nombre debe contener dos elementos: “primero, último”.
- !ELEMENT primero define que el primer elemento sea del tipo «#PCDATA».
- !ELEMENT last define que el último elemento sea del tipo “#PCDATA”.
- !ELEMENT email define el elemento de correo electrónico para que sea del tipo «#PCDATA».
- !ELEMENT phone define el elemento phone para que sea del tipo “#PCDATA”.
- !ELEMENT cumpleaños define que el elemento cumpleaños debe contener tres elementos «año, mes, día».
- !ELEMENT año define el elemento año para que sea del tipo “#PCDATA”.
- !ELEMENT mes define el elemento mes para que sea del tipo “#PCDATA”.
- !ELEMENT día define el elemento día para que sea del tipo “#PCDATA”.
Documento XML con una DTD externa:
XML
<?xml version="1.0"?> <!DOCTYPE address SYSTEM "address.dtd"> <address> <name> <first>Rohit</first> <last>Sharma</last> </name> <email>sharmarohit@gmail.com</email> <phone>9876543210</phone> <birthday> <year>1987</year> <month>June</month> <day>23</day> </birthday> </address>
dirección.dtd:
- <!ELEMENT dirección (nombre, correo electrónico, teléfono, cumpleaños)>
- <!ELEMENT nombre (nombre, apellido)>
- <!ELEMENTO primero (#PCDATA)>
- <!ELEMENTO último (#PCDATA)>
- <!ELEMENTO correo electrónico (#PCDATA)>
- <!ELEMENTO teléfono (#PCDATA)>
- <!ELEMENT cumpleaños (año, mes, día)>
- <!ELEMENT año (#PCDATA)>
- <!ELEMENT mes (#PCDATA)>
- <!ELEMENT día (#PCDATA)>
Producción:
Publicación traducida automáticamente
Artículo escrito por snigdha_yambadwar y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA