Diferencia entre revisiones de «Usuario:Lmorillas/modulo lenguajes de marcas/xml/dtd»
De WikiEducator
| Línea 56: | Línea 56: | ||
=== Restricciones === | === 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 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: | ||
| + | #IMPLICIT | ||
Revisión de 16:35 11 ene 2012
Contenido
DTD
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:
#IMPLICIT