Diferencia entre revisiones de «Usuario:Lmorillas/modulo lenguajes de marcas/xml/dtd»

De WikiEducator
Saltar a: navegación, buscar
 
(6 revisiones intermedias por el mismo usuario no mostrado)
Línea 1: Línea 1:
{{MiTitulo| DTD}}
+
<noinclude>
 +
{{MiTitulo| Chuleta DTDs}}
 +
</noinclude>
 
== DTD ==
 
== 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 ===
 
=== Funciones de un DTD ===
 
* Validar documentos
 
* Validar documentos
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 90: Línea 98:
 
   "valor"
 
   "valor"
 
* Atributo no requerido, sin valor por defecto:
 
* Atributo no requerido, sin valor por defecto:
   #IMPLICIT
+
   #IMPLIED
 
=== Declaración de entidades ===
 
=== Declaración de entidades ===
 
* Declaran un nombre para texto que se insertará en el documento
 
* Declaran un nombre para texto que se insertará en el documento
 +
  <!ENTITY nombreEntidad "valorEntidad">
 
* Se insertan así:
 
* Se insertan así:
   &nombre;
+
   &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|
 
{{Actividad|

Última revisión de 10:58 17 ene 2013


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.)

Icon present.gif
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

Icon activity.jpg

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