2.6 KiB
2.6 KiB
Apuntes DTD
Definición
Es una definición de estructura y sintaxis para los documentos XML o SGML. Se puede incluir dentro del mismo documento XML, ser un archivo separado, o una mezcla de ambas.
Tipo de documento DTD (y su declaración dentro del XML)
XML con DTD interno
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE marcadores [
<!ELEMENT marcadores (pagina)*>
<!ELEMENT pagina (nombre, descripcion, url)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT descripcion (#PCDATA)>
<!ELEMENT url (#PCDATA)>
]>
<marcadores>
<pagina>
<nombre>Abrirllave</nombre>
<descripcion>Tutoriales de informática.</descripcion>
<url>http://www.abrirllave.com/</url>
</pagina>
</marcadores>
XML con DTD externo (Privado)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE marcadores SYSTEM "marcadores.dtd">
<marcadores>
<pagina>
<nombre>Abrirllave</nombre>
<descripcion>Tutoriales de informática.</descripcion>
<url>http://www.abrirllave.com/</url>
</pagina>
</marcadores>
<!ELEMENT marcadores (pagina)*>
<!ELEMENT pagina (nombre, descripcion, url)>
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT descripcion (#PCDATA)>
<!ELEMENT url (#PCDATA)>
XML con DTD externo (Público)
<?xml version="1.0" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html>
<head>
<title>Título</title>
</head>
<body>
<p>Párrafo</p>
</body>
</html>
Se suele usar el método externo cuando se utiliza para validar más de un documento.
XML con DTD combinado (interno y externo)
<!DOCTYPE elemento-raíz SYSTEM "URI" [ declaraciones ]>
---
<!DOCTYPE elemento-raíz PUBLIC "identificador-público" "URI" [ declaraciones ]>
Tipo de declaraciones
Elementos
<!ELEMENT nombre-del-elemento tipo-de-contenido>
El tipo de contenido permitido dentro de un elemento puede ser:
- Texto (#PCDATA)
- Otros elementos
- Elemento vacío (EMPTY)
- Combinación de texto y otros elementos (ANY)
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE persona SYSTEM "persona.dtd">
<persona>
<nombre>Carl</nombre>
<edad/>
<direccion>Rúa Veintisiete, 36246 <ciudad>Vigo</ciudad></direccion>
</persona>
<!-- Otros elementos -->
<!ELEMENT persona(nombre, edad, direccion)>
<!-- Texto -->
<!ELEMENT nombre (#PCDATA)>
<!-- Elemento vacío -->
<!ELEMENT edad EMPTY>
<!-- Combinación de texto y elementos -->
<!ELEMENT direccion ANY>