La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · www.captiva.es Modelos de documento (DTD)

Presentaciones similares


Presentación del tema: "Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · www.captiva.es Modelos de documento (DTD)"— Transcripción de la presentación:

1 Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · www.captiva.es Modelos de documento (DTD)

2 Introducción  Freeform XML  Cualquier XML bien escrito  ¿Cómo restringimos “estructura” y formato de nuestra aplicación XML?  ¿Cómo verificamos la gramática y vocabulario del documento?  Modelado de documentos  Alternativas para el modelado  DTD (Document Type Definition)  Schema (XMLSchema)

3 Introducción (II)  Modelo  Documento especial para describir lenguajes (aplicaciones) XML  Qué define un modelo  Qué elementos y atributos puede contener  “Gramática del documento”. P.e. un elemento sólo puede contener elementos  Validación  XML válido que se adhiere a un modelo

4 ¿Cuándo necesitamos un modelo?  Casos de interés  Documento XML  Datos orientados a máquinas en vez de personas  Campos obligatorios  El modelo asegura que esos campos están presentes  Ayuda a programas de edición WYSIWYG  Presentan automáticamente campos a rellenar del documento  Forma sencilla de crear un estándar  Reutilización de trabajo anterior  P.e. Docbook usa formato tablas de CALS

5 Validación de un doc  Documento validado incluye document type declaration que apunta a un DTD en prólogo  Localización del DTD  SYSTEM  Indica una URL o fichero del sistema  Public ID  Localización de DTDs públicos (p.e. estándares)  Especifican un ID  Catálogo (espec OASIS) resuelve URL  Necesitamos definir documento DTD (Document Type Definition).  persona.dtd  Sintáxis no XML  Heradado de SGML  Limitaciones  XML Schema

6 Validación de un doc (II)  Ejemplo de DTD (persona.dtd):  ¿Qué describe este documento?  6 elementos válidos  Declaración de elementos  No es necesario aunque aconsejable 1 declaración por línea  Parentesco  identidad y profesion hijos de persona  nombre, apellido1 y apellido2 hijos de identidad  Cardinalidad  Uno y sólo un elemento identidad por persona  Cero o varios elementos profesion por persona (*)  Orden  identidad debe preceder a profesion  identidad debe contener en este orden a nombre apellido1 apellido2  Contenido  Algunos nodos pueden contener hijos  Otros pueden contener datos  #PCDATA (Printable Character Data)

7 Validación de un doc (III)  Ejemplo de archivo válido (persona.xml):  Ejemplo de archivos inválidos (persona-invalido1.xml y persona-invalido2.xml)

8 Validación de un doc (IV)  Orden de declaración de elementos en DTD no es importante  Ejemplo de DTD alternativo (persona2.dtd):

9 Validación de un doc (V)  Validación online  http://www.stg.brown.edu/service/xmlvalid/ http://www.stg.brown.edu/service/xmlvalid/  Validación local  Jedit  XML Cooktop

10 Estructura de un DTD  Partes  Prólogo  No es obligatorio  Similar a la de un documento XML   Declaraciones  Elementos  Atributos  Entidades  Notaciones  Datos en bruto

11 Declaración de elementos  Partes  Tipos de modelos de contenido  Elementos vacíos  Elementos sin restricciones de contenido  Elementos que contienen sólo caracteres de datos  Elementos que contienen elementos  Elementos con contenido mixto

12 Declaración de elementos (II)  Modificadores para modelos de contenido SimboloSignificadoEjemplo,Secuencia de elementos (AND)elem1, elem2  elem2 debe seguir a elem1 |Alternativas (OR)elem1 | elem2 | elem3  Debe haber ó elem1 ó elem2 ó elem3 (contenido)Agrupa contenido(A | B), C  A ó B debe preceder a C A | (B | C)  A precede a B ó C ?Se permiten 0 o un elementos de este tipo elemento ?  Puede haber un elemento o ninguno +Se permiten uno o más elementos de este tipo elemento +  Puede haber uno o mas elemento seguidos *Se permiten 0 o más elementos de este tipo elemento *  Puede haber 0,1,2,… elemento consecutivos

13 Declaración de elementos (III)  Ejemplo  Análisis  titulo  Debe haber sólo un elemento y ser el primer hijo de articulo  subtitulo  Es opcional y si existe debe ir después de titulo  autor  Es opcional y puede haber cualquier número. Debe ir después del titulo y subtitulo  Texto  Puede estar compuesto por elementos e tipo parrafo, tabla o lista en cualquier número. Debe haber como mínimo uno de estos elementos  bibliografia  Opcional y debe ser el último hijo de articulo.

14 Declaración de elementos (IV)  Elementos con contenido mezclado   Ejemplo DTD completo (articulo.dtd):

15 Declaración de elementos (V)  Instancia de articulo invalida (articulo-invalido.xml)  Ejercicio opcional: Modificar DTD para que sea válido.

16 Declaración de elementos (V)  Instancia de articulo valida (articulo.xml)

17 Declaración de atributos  Un documento debe declarar todos los atributos posibles, no sólo los elementos  Formato  Ejemplo   Atributo “source” para elemento “image” contiene CDATA (cualquier carácter) y es obligatorio (#REQUIRED). <!ATTLIST > nombre_atrib1 tipo_atrib1 desc_atrib1 elemento nombre_atrib2 tipo_atrib2 desc_atrib2

18 Declaración de atributos (II)  Tipos de atributos posibles  CDATA  NMTOKEN  NMTOKENS  Enumeración  ID  IDREF  IDREFS  ENTITY  ENTITIES  NOTATION

19 Declaración de atributos (III)  Atributo tipo CDATA (character data)  Tipo de atributo más general  Acepta cualquier carácter XML válido  Permite el uso de ENTITIES de carácter y generales  Uso:  Atributos válidos:

20 Declaración de atributos (IV)  Atributo tipo NMTOKEN (name token)  Cadena con restricciones similares a nombre de elemento (aunque puede comenzar por número o un punto)  Uso:  Atributos válidos: serial=“aeiou” serial=“12.12” serial=“v3.3-5” serial=“fichero.txt”

21 Declaración de atributos (V)  Atributo tipo NMTOKENS  Lista de NMTOKEN separada por espacios  Uso:  Atributos válidos: palabras_clave=“perro gato gallo” palabras_clave=“texto.txt texto.doc texto.pdf” palabras_clave=“11-2-2005 11-3-2006”

22 Declaración de atributos (VI)  Atributo tipo enumeración  En realidad es un conjunto de valores válido  Se separan los valores con ‘|’  Uso:  Ejemplos:

23 Declaración de atributos (VII)  Atributo tipo ID (identificador único)  Nombre XML que ha de ser único para todos los atributos ID del documento  Sirve para identificar unívocamente un elemento del documento  Sólo puede haber un atributo de este tipo por elemento  Uso:  Atributos válidos: dni=“_32232238S”  Atributos inválidos: dni=“32232238S”

24 Declaración de atributos (VIII)  Atributo tipo IDREF (referencia a identificador)  Igual que ID solo que referencia al ID de otro elemento  Si no existen ningún elemento con el ID indicado daría error  Uso:  Atributo tipo IDREFS  Lista de IDREF separada por espacios  Uso:

25 Declaración de atributos (IX)  Atributo tipo ENTITY (nombre de entidad)  Acepta como valor el nombre de una entidad definida en el DTD  Uso:  Atributos válidos:  Atributo tipo ENTITIES  Lista de entidades separada por espacios  Uso:  Atributos válidos:

26 Declaración de atributos (X)  Atributo tipo NOTATION  Contiene el nombre de una notación definida en el DTD  Declaración de notaciones:  Uso:

27 Declaración de atributos (XI)  Descripciones de atributo  Tras el tipo de atributo se ha de especificar una de las siguientes descripciones  #IMPLIED  El atributo es opcional. No se le asigna ningún valor por defecto  #REQUIRED  El atributo es obligatorio  #FIXED  Se le asigna un valor fijo al atributo incluso si no se especifica. Si se especifica ha de darle este valor.  Literal  Valor por defecto para un atributo

28 Declaración de entidades  Tipos de declaraciones de entidades  Entidad general  Sirve para substituir texto.   Referencia  &saludo;  Entidad general externa  Contiene texto de una fuente externa.   Entidad externa nonparsed  El contenido externo no tiene por qué ser XML. Puede ser datos binarios incluso.   gif es una referencia a NOTATION definida en algún lado

29 Declaración de entidades (II)  Tipos de declaraciones de entidades (II)  Entidad parámetro  Substitución para texto de DTD   La referencia a la entidad se haría con %textoparrafo;  Especie de MACROS para DTDs  Entidad parámetro externa  Igual que la anterior pero hace referencia a DTD o trozo de DTD residente en fichero externo   La referencia  %tablas;

30 Declaración de entidades (III)  Modularización de DTDs  Entidad parámetro externas  Permiten importar ficheros  Entidad parámetro pueden redefinirse. Tiene más prioridad última definición  Permite adaptar entidades incluidas a través de entidades parámetro externa  Inclusión condicional <![CONDICION[ ]]>  Si CONDICION == “INCLUDE” se incluye el fragmento de DTD  Si CONDICION == “IGNORE” no se incluye

31 Declaración de entidades (IV)  Modularización de DTDs (II)  Ejemplo:  Fichero casas.dtd  Fichero miscasas.dtd %fich_casas; <[ %condicion; [ <!-- Al ser condicion == “INCLUDE” se redefine elemento casa --> ]]>

32 Internal subset  Zona dentro de documento XML para definir elementos de DTD <!DOCTYPE persona SYSTEM “/dtds/persona.dtd” [ ]>  El internat subset tiene más prioridad que el external subset (el fichero DTD especificado con DOCTYPE)  Útil para redefinir elementos de un DTD genérico sólo para la instancia dada de XML

33 Internal subset  Zona dentro de documento XML para definir elementos de DTD <!DOCTYPE persona SYSTEM “/dtds/persona.dtd” [ ]>  El internal subset tiene más prioridad que el external subset (el fichero DTD especificado con DOCTYPE)  Útil para redefinir elementos de un DTD genérico sólo para la instancia dada de XML

34 Ejemplo I: Articulo  Fichero (articulo- completo.dtd)  Se ha incorporado ENTITIES  Incorporamos atributos a algunos elementos

35 Ejemplo I: Articulo (II)  Fichero (articulo- completo.xml)  Definimos dos Unparsed Entities para indicar las imágenes a usar como elemento de listas  Incorporamos referencias cruzadas entre y de bibliografía

36 Otros ejemplos  Estándar XHTML 1.0 Strict  Directorio ‘xhtml’ dentro de prácticas  http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd  Fichero xhtml1-strict.dtd en directorio  Ejemplos de ficheros XHTML  ejemplo_local_novalidable.html  ejemplo_publico_invalido.html  ejemplo_publico_validado.html

37 Ejercicio  Coger casino.xml de 2º capítulo  Crear DTD, teniendo en cuenta las limitaciones  Puede haber 0,1 o más mesas de juego  Se definirán las siguientes ENTITIES al comienzo del DTD:  %juegos  %palos  %palo_por_defecto  Los juegos posibles son: “brisca”, “tute”, “poker”  Cada mesa debe tener como mínimo un jugador  Cada jugador debe tener al menos una carta  El jugador puede tener o no nombre  Las cartas han de ser de los palos: “oros”, “copas”, “espadas” ó “bastos”, no siendo obligatorio indicarlo. Por defecto será de tipo “oros”  Segunda parte  Añadir un identificador único “dni” para cada jugador  Añadir un juego más posible: “sieteymedia”


Descargar ppt "Curso: XML, de los datos a la presentación Julio de 2005 CAPTIVA · www.captiva.es Modelos de documento (DTD)"

Presentaciones similares


Anuncios Google