Diferencia entre revisiones de «Usuario:Lmorillas/modulo lenguajes de marcas/xml/dtd»
De WikiEducator
(Página creada con '{{MiTitulo| DTD}} == DTD == === Funciones de un DTD ===* * Validar documentos * Dar valores por defecto a atributos que no existen * Declarar y reemplazar entidades * Documentar…') |
|||
(11 revisiones intermedias por el mismo usuario no mostrado) | |||
Línea 1: | Línea 1: | ||
− | {{MiTitulo| | + | <noinclude> |
+ | {{MiTitulo| Chuleta DTDs}} | ||
+ | </noinclude> | ||
== DTD == | == DTD == | ||
− | === Funciones de un DTD === | + | Un DTD es el documento que define la estructura que debe tener un documento XML(elementos, atributos, entidades, notaciones, etc, que pueden aparecer, el orden y el número de veces que pueden aparecer, cuáles pueden ser hijos de cuáles, etc.) |
+ | |||
+ | {{Tip| Aquí tienes un buen resumen: http://www.mclibre.org/consultar/xml/lecciones/xml_dtd.html}} | ||
+ | |||
+ | === Funciones de un DTD === | ||
* Validar documentos | * Validar documentos | ||
* Dar valores por defecto a atributos que no existen | * Dar valores por defecto a atributos que no existen | ||
Línea 18: | Línea 24: | ||
"http://..."> | "http://..."> | ||
* Primero lee el externo, depués el interno | * Primero lee el externo, depués el interno | ||
+ | |||
+ | |||
===Declaraciones ELEMENT=== | ===Declaraciones ELEMENT=== | ||
Línea 47: | Línea 55: | ||
<!ELEMENT name (child+)> | <!ELEMENT name (child+)> | ||
Se pueden combinar las posibilidades | Se pueden combinar las posibilidades | ||
+ | * Elección entre secuencias: | ||
+ | ((a, b) | (c, d) | ||
+ | * Secuencia de opciones | ||
+ | ((a | b), (c | d)) | ||
+ | * Secuencia opcional | ||
+ | (a, b, c)? | ||
+ | No se puede mezclar , y | en una lista. Usa paréntesis para desambiguar. | ||
+ | |||
+ | === Restricciones === | ||
+ | * Un modelo mixto no puede restringir cuántas veces y el orden en que aparecen los hijos. Sólo los elementos permitidos. | ||
+ | * Un modelo de sólo elementos requiere que cada elemento hijo de la instancia coincida exactamente con una parte del modelo. Lo siguente no es legal: | ||
+ | (A?, A?) | ||
+ | === Comodines === | ||
+ | * Un elmento que puede contener cualquier elemento declarado en el DTD o texto | ||
+ | <!ELEMENT name ANY> | ||
+ | |||
+ | ===Declaración de atributos de un elemento === | ||
+ | <!ATTLIST ename | ||
+ | attr1 type1 default1 | ||
+ | attr2 type2 default2 | ||
+ | ...> | ||
+ | === Tipos de atributos === | ||
+ | * CDATA | ||
+ | : sin restricción | ||
+ | * ID | ||
+ | : un identificador | ||
+ | * IDREF | ||
+ | : tiene que coincidir con un ID de un elemento. | ||
+ | * NMTOKEN | ||
+ | : nombre o número | ||
+ | * IDREFS | ||
+ | : uno o más IDs separados por espacios | ||
+ | * NMTOKENS | ||
+ | : uno o más separados por espacios | ||
+ | |||
+ | ===Atributos por defecto === | ||
+ | * Valor requerido, lo insertará el parser | ||
+ | #FIXED "value" | ||
+ | * Atributo requerido, pero sin valor específico | ||
+ | #REQUIRED | ||
+ | * Atributo no requerido, con valor por defecto | ||
+ | "valor" | ||
+ | * Atributo no requerido, sin valor por defecto: | ||
+ | #IMPLIED | ||
+ | === Declaración de entidades === | ||
+ | * Declaran un nombre para texto que se insertará en el documento | ||
+ | <!ENTITY nombreEntidad "valorEntidad"> | ||
+ | * Se insertan así: | ||
+ | &nombreEntidad; | ||
+ | |||
+ | === Entidades parámetro === | ||
+ | <!ENTITY %datos_personales "nombre|telefono|email"> | ||
+ | <!ENTITY %empleado (departamento, %datos_personales)> | ||
+ | |||
+ | === Entidades y notaciones === | ||
+ | Combinar datos textuales y no textuales. | ||
+ | <!ELEMENT logo EMPTY> | ||
+ | <!ATTLIST logo imagen ENTITY #REQUIRED> | ||
+ | <!NOTATION GIF SYSTEM "visor_sistemas"> | ||
+ | <nowiki><!ENTITY logo_centro SYSTEM "http://www.miempresa.com/logo.gif"></nowiki> | ||
+ | NDATA GIF> | ||
+ | |||
+ | |||
+ | <logo imagen="logo_centro" /> | ||
+ | |||
+ | {{Actividad| | ||
+ | Title=Ejercicios DTDs| | ||
+ | TOCdepth=3| | ||
+ | Realiza los ejercicios de DTDs de la siguiente página de Bartolomé Sintes Marco: http://www.mclibre.org/consultar/xml/ejercicios/dtd.html | ||
+ | }} |
Última revisión de 10:58 17 ene 2013
Contenido
- 1 DTD
- 1.1 Funciones de un DTD
- 1.2 ¿Cómo se introduce?
- 1.3 ¿Dónde?
- 1.4 Declaraciones ELEMENT
- 1.5 Sintaxis de declaraciones ELEMENT
- 1.6 Restricciones
- 1.7 Comodines
- 1.8 Declaración de atributos de un elemento
- 1.9 Tipos de atributos
- 1.10 Atributos por defecto
- 1.11 Declaración de entidades
- 1.12 Entidades parámetro
- 1.13 Entidades y notaciones
- 1.14 Ejercicios DTDs
- 2 Ejercicios DTDs
DTD
Un DTD es el documento que define la estructura que debe tener un documento XML(elementos, atributos, entidades, notaciones, etc, que pueden aparecer, el orden y el número de veces que pueden aparecer, cuáles pueden ser hijos de cuáles, etc.)
Tip: Aquí tienes un buen resumen: http://www.mclibre.org/consultar/xml/lecciones/xml_dtd.html
Funciones de un DTD
- Validar documentos
- Dar valores por defecto a atributos que no existen
- Declarar y reemplazar entidades
- Documentar los documentos.
¿Cómo se introduce?
- declaración DOCTYPE
¿Dónde?
- Pueden aparecer dentro del documento xml, fuera o en ambos sitios.
- Dentro del doc:
<!DOCTYPE root ... >
- Fuera del documento:
<!DOCTYPE root SYSTEM "http://...">
- Primero lee el externo, depués el interno
Declaraciones ELEMENT
- Especifican qué pueden contener los elementos
- No soporte directo de namespaces
- Los elementos pueden contener:
- Nada
<!ELEMENT name EMPTY>
- Texto
<!ELEMENT name (#PCDATA)>
- Texto y nuevos elementos (hijos)
<!ELEMENT name (#PCDATA|elem1|elem2|...)*>
- Hijos
<!ELEMENT name (elem1|elem2|...)*>
Sintaxis de declaraciones ELEMENT
- Secuencia de hijos
<!ELEMENT name (ch1, ch2)>
- Elección entre hijos
<!ELEMENT name (ch1|ch2)>
- Secuencia de hijos opcionales
<!ELEMENT name (ch?, ch2?, ch3?)>
- Cero o más ...
<!ELEMENT name (child*)>
- Uno o más
<!ELEMENT name (child+)>
Se pueden combinar las posibilidades
- Elección entre secuencias:
((a, b) | (c, d)
- Secuencia de opciones
((a | b), (c | d))
- Secuencia opcional
(a, b, c)?
No se puede mezclar , y | en una lista. Usa paréntesis para desambiguar.
Restricciones
- Un modelo mixto no puede restringir cuántas veces y el orden en que aparecen los hijos. Sólo los elementos permitidos.
- Un modelo de sólo elementos requiere que cada elemento hijo de la instancia coincida exactamente con una parte del modelo. Lo siguente no es legal:
(A?, A?)
Comodines
- Un elmento que puede contener cualquier elemento declarado en el DTD o texto
<!ELEMENT name ANY>
Declaración de atributos de un elemento
<!ATTLIST ename attr1 type1 default1 attr2 type2 default2 ...>
Tipos de atributos
- CDATA
- sin restricción
- ID
- un identificador
- IDREF
- tiene que coincidir con un ID de un elemento.
- NMTOKEN
- nombre o número
- IDREFS
- uno o más IDs separados por espacios
- NMTOKENS
- uno o más separados por espacios
Atributos por defecto
- Valor requerido, lo insertará el parser
#FIXED "value"
- Atributo requerido, pero sin valor específico
#REQUIRED
- Atributo no requerido, con valor por defecto
"valor"
- Atributo no requerido, sin valor por defecto:
#IMPLIED
Declaración de entidades
- Declaran un nombre para texto que se insertará en el documento
<!ENTITY nombreEntidad "valorEntidad">
- Se insertan así:
&nombreEntidad;
Entidades parámetro
<!ENTITY %datos_personales "nombre|telefono|email"> <!ENTITY %empleado (departamento, %datos_personales)>
Entidades y notaciones
Combinar datos textuales y no textuales.
<!ELEMENT logo EMPTY> <!ATTLIST logo imagen ENTITY #REQUIRED> <!NOTATION GIF SYSTEM "visor_sistemas"> <!ENTITY logo_centro SYSTEM "http://www.miempresa.com/logo.gif"> NDATA GIF>
<logo imagen="logo_centro" />
Ejercicios DTDs
Realiza los ejercicios de DTDs de la siguiente página de Bartolomé Sintes Marco: http://www.mclibre.org/consultar/xml/ejercicios/dtd.html
|