tecnología xml - oocities · 2010. 1. 5. · un documento xml puede hacer uso de espacios de...

63
Tecnología XML Unidad: 3 Laboratorio de Programación Universidad Nacional de la Patagonia Austral Unidad Académica Río Gallegos

Upload: others

Post on 09-Feb-2021

7 views

Category:

Documents


0 download

TRANSCRIPT

  • Tecnología XML

    Unidad: 3Laboratorio de Programación

    Universidad Nacional de la Patagonia AustralUnidad Académica Río Gallegos

  • XML Laboratorio de Programacion 1

    Indice

    � Repaso� XML� DTD

    � Entidades� Concepto� Tipos

    � Internas� Externas

    � Espacio de nombres� Concepto� Definición en XML

    � Esquemas XML� Concepto: características, tipos de datos, ventajas� Schema XML vs. DTD� Tipos simples y complejos� Enumerados y restricciones

    � Ejercicio

  • XML

    Repaso

  • XML Laboratorio de Programacion 3

    Qué es XML?

    � Es un Lenguaje de Marcado Extensible (Extensible MarkupLanguaje, XML).

    � XML sirve para estructurar información

    � XML se parece a HTML

    � XML es relativamente nuevo

    � XML es una familia de tecnologías

    � XML es extensible y modular

    � XML es libre, independiente de la plataforma, ampliamente soportado

    � XML es una recomendación técnica del W3C

  • XML Laboratorio de Programacion 4

    Aplicaciones de XML

    � Frameworks de desarrollo (Struts, Spring, etc..)

    � OpenOffice.� Configuración de aplicaciones: Tomcat.� Estándares de contenidos en e-Learning.� Servicios web.� Definición de interfaces gráficas (XUL).� Sistemas de publicación de contenidos.� Bases de datos.

  • XML Laboratorio de Programacion 5

    Términos en XML

    Mrs.

    Mary

    McGoon

    1401 Main Street

    Anytown

    por el parser.

    Include marcas -->

    Etiqueta

    Elemento

    Atributo

    Comentario

  • XML Laboratorio de Programacion 6

    XML: sintaxis� Un ejemplo:

    ToveJaniReminderDon't forget me this weekend!

    � Componentes de un documento XML:� Elementos

    � componentes principales� ejemplo: note, to, …� pueden contener texto, otros elementos o estar vacíos

    � Etiquetas� delimitan los elementos� marca el comienzo del elemento� marca el final del elemento

  • XML Laboratorio de Programacion 7

    XML: sintaxis

    � Atributos� proporcionan información adicional sobre los elementos� aparecen en la etiqueta de comienzo del elemento

    � ejemplo:

    � Entidades� representan una porción de texto� escapado de caracteres especiales� predefinidas:

    � < <� > >� & &� " “� ' ‘

    � definidas en DTDs

    � PCDATA ( Parsed Character DATA): texto contenido en los elementos� CDATA ( Character DATA): valores de los atributos

  • XML Laboratorio de Programacion 8

    Reglas sintácticas

    � Una raiz.

    � Anidación de las etiquetas.

    � Sensible a mayúsculas.

    � Atributos no vacíos y entrecomillados.

    � Reglas para los nombres de etiquetas y atributos.

    � ¿Satisface las reglas generales de sintaxis de XML? � Documento bien formado

  • DTD

    Repaso

  • XML Laboratorio de Programacion 10

    Conceptos

    � DTD: Document Type Definition� Define el formato del documento, su esquema o tipo, el vocabulario a utilizar en un documento XML: � elementos� atributos� entidades� cómo se estructuran

    � XML + DTD = documentos auto-descriptivos� Intercambio, compartir información: compromiso entre las partes participantes en el formato a utilizar

    � Validación de los datos para su procesamiento automático

  • XML Laboratorio de Programacion 11

    DTD’s

    � Dos niveles de corrección:� ¿Satisface las reglas generales de sintaxis de XML?

    � Documento bien formado

    � ¿Satisface el DTD?� Documento válido

    � DTD incluido en el propio documento XML:�

    � DTD externo:�

    � Documentos XML sin DTD

  • XML Laboratorio de Programacion 12

    XML: DTDs

    � Declaración de tipo de documento interna

    ]>

    ToveJaniReminderDon't forget me this weekend!

  • XML Laboratorio de Programacion 13

    XML: DTDs

    � Declaración de tipo de documento externa

    ToveJaniReminderDon't forget me this weekend!

    � Note.dtd

  • XML Laboratorio de Programacion 14

    DTDs - elementos

    � Elementos

    � Elementos vacíos

    � ejemplo: � ejemplo XML:

    � elementos de sólo texto�

    � ejemplo:

    � elementos con cualquier tipo de contenido�

    � ejemplo:

  • XML Laboratorio de Programacion 15

    DTDs - elementos� Elementos con hijos (secuencias)

    � Los hijos deberán aparecer en esta misma secuencia en el documento

    � ejemplo:

    � un único elemento hijo�

    � ejemplo:

    � una o más ocurrencias del elemento hijo�

    � ejemplo:

    � cero o más ocurrencias del mismo elemento�

  • XML Laboratorio de Programacion 16

    DTDs - elementos

    � Elemento hijo opcional�

    � un elemento u otro�

    � ejemplo:

    � ejemplo:

  • XML Laboratorio de Programacion 17

    DTDs - atributos

    � Atributos� � Ejemplo: � Ejemplo XML:

    � Tipo de atributo� CDATA� (v1|v2|…) el valor será v1 o v2 o …� ID el valor es un identificador único� IDREF el valor es el identificador de otro elemento� IDREFS el valor es una lista de identificadores� …

    � valor por defecto� value el valor por defecto del atributo es value� #REQUIRED valor obligatorio� #IMPLIED valor optativo� #FIXED el valor del atributo es fijo

  • XML Laboratorio de Programacion 18

    DTDs - atributos

    � Especificando el valor por defecto de un atributo ejemplo:

    � ejemplo XML:

    � #IMPLIED� ejemplo: � ejemplo XML:

    � #REQUIRED� ejemplo: � ejemplo XML:

    Mal

  • XML Laboratorio de Programacion 19

    DTDs - atributos

    � #FIXED� ejemplo:

    � ejemplo XML:

    � lista de valores posibles� ejemplo:

    � ejemplo XML:

    Mal

  • Entidades

  • XML Laboratorio de Programacion 21

    Entidades

    � Son abreviaturas que representan un valor (su contenido).

    � Pueden ser:� Internas: su valor está indicado en el mismo DTD en el que se declaran.

    � Externas: su valor está en documentos externos al DTD en el que se declaran.

    � Generales: se emplean en DTDs y en documentos XML

    � Parámetro: sólo se emplean en DTDs

    � Las entidades generales internas son las más simples. Una entidad de este tipo es siempre una entidad analizada por el procesador XML.

  • XML Laboratorio de Programacion 22

    Entidades generales

    � Asignan nombres a ciertos elementos (similar a variables)

    � Se denotan por &entidad

    � No se admite recursividad

    � Entidades numéricas: Código numérico del carácter

    � Entidades predefinidas: Permiten incluir etiquetas sin analizar

  • XML Laboratorio de Programacion 23

    Entidad interna

    � Ejemplo de declaración de entidad general interna:� Se declaran en el mismo DTD

    ]>

    &xml;

  • XML Laboratorio de Programacion 24

    Entidades externas

    � Permiten usar archivos externos (Incluir otros documentos XML)

    � También se pueden incluir archivos externos de formatos binarios

  • XML Laboratorio de Programacion 25

    Entidades parámetro

    � Permiten dar nombres a partes de un DTD

    � Se denotan por %entidad;

    � Entidades externas: Permiten incluir elementos externos en una DTD

    � Aplicación: Dividir la definición de una DTD en varios documentos

  • Espacio de nombres

  • XML Laboratorio de Programacion 27

    Espacio de nombres

    � Tengo una lista de clientes y otras de empleados y quiero guardar en un documento XML los clientes y el empleado que los atiende.

    � ¿Cómo distinguir del cliente de del empleado?

    Juan

    Luis

    ...

    Juana

    Luisa

    ...

    Juan

    Juana

    ...

    ERROR!

  • XML Laboratorio de Programacion 28

    Solución

    � Solución: Asociar un alias a los elementos de un espacio de nombres dentro de un ámbito.

    � xmlns:alias define alias en el ámbito de un elemento.

    Juan

    ...

    Juana

    ...

    Son 2 etiquetas distintas

    Definimos un namespace. Debe ser

    única y se suele utilizar una URL

    NOTA: Las URIs sólo se utilizan para que el nombre sea único, no son enlaces, ni tienen que contener información

  • XML Laboratorio de Programacion 29

    Espacio de nombres: conceptos

    � Un documento XML puede hacer uso de espacios de nombres.

    � Un namespace es un ámbito de definición de etiquetas.

    � Surgió del problema de no poder usar elementos con el mismo nombre en dos o mas contextos diferentes.

    � Para cada etiqueta hemos de indicar, además su namespace.� xmlns:prefijo:”nombre o url”

    � Las direcciones URL deben ser únicas.

    � Se especifican en el prologo en el caso de usar varios espacios de nombres.

    � Los namespaces deben declararse antes de utilizarse.

  • XML Laboratorio de Programacion 30

    Espacio de nombres: conceptos

    � Cada espacio de nombres está asociado a una URI, que debe ser única

    � Se aconseja usar URLs

    � No tienen porque tener una existencia real (y de hecho, no suelen tenerla).

    � Espacio de nombres por defecto

    � Mediante xmlns=“...” se define un espacio de nombres por defecto (sin alias)

    Juan

    ...

    Juana

    ...

  • Esquemas XML

  • XML Laboratorio de Programacion 32

    Limitaciones DTD

    � No utilizan un modelo de contenido abierto, no tolerando elementos no definidos.

    � Tipos de datos limitados – los DTDs proveen tipos de datos muy limitados:

    � Los DTDs no usan sintaxis XML

    � Es difícil definir rangos o conjuntos

    (lunes | martes | miércoles | jueves |

    viernes | sábado | domingo)

    #IMPLIED

    >

  • XML Laboratorio de Programacion 33

    Limitaciones DTD

    � Sin Subclases� DTD no permiten describir las estructuras de datos comunes en una definición de clase y capturar todas las variaciones en subclases.

    � El orden de los hijos es demasiado rígido – los DTD requieren:� Listar todos los elementos hijos en el orden en que deben ocurrir

    � Sin soporte de espacio de nombres � Para controlar la validez, debemos mantener los prefijos del documento XML en sincronización con el DTD

    � Limitadas formas de expresar repeticiones� El elemento B debe ocurrir exactamente 15 veces:

  • XML Laboratorio de Programacion 34

    Ventajas sobre los DTDs

    � Son documentos XML� se pueden procesar como cualquier otro documento XML

    � Soportan tipos de datos� se pueden definir elementos enteros, de punto flotante, fechas, strings, etc.

    � Son extensibles� se pueden crear nuevos tipos de datos.

    � Mecanismos de Orientación a Objetos� Permiten extender o restringir un tipo previamente definido

    � Tiene más poder de expresión� se puede especificar, por ejemplo, que cierto valor no tenga más de 2 caracteres.

  • XML Laboratorio de Programacion 35

    XML versus DTD

    � Documento XML

    � Document Type Definition (DTD)

    14

    September

    2003

    Sunday

  • XML Laboratorio de Programacion 36

    Conceptos

    � XML Schema� Es un lenguaje de esquema utilizado para describir la estructura y las restricciones de los contenidos de los documentos XML de una forma muy precisa.

    � Desarrollado por W3C (World Wide Web Consorcium)

  • XML Laboratorio de Programacion 37

    Ejemplo: XML Schema

  • XML Laboratorio de Programacion 38

    XML Referenciando a Schema

    14

    September

    2003

    Sunday

    ubicación del

    Documento esquema ->

    Espacio de nombres ->

    declaración de

    instancias de

    documentos XML

  • XML Laboratorio de Programacion 39

    DTD y Esquema XML

    � Ejemplo DTD cliente

  • XML Laboratorio de Programacion 40

    Ejemplo Esquema XML

  • XML Laboratorio de Programacion 41

    Otro ejemplo

    � Ejemplo mas breve:

    Namespace del Schema.

    Este es el namespace recomendado en

    la especificación.

    Declaración de un elemento.

    Compuesto por una secuencia de

    otros elementos.

    Con un atributo. Sólo los elementos

    complejos tienen atributos.

  • XML Laboratorio de Programacion 42

    …ejemplo

    Elementos simples que

    sólo pueden contener

    texto.

  • XML Laboratorio de Programacion 43

    XML Schema & XML

    Juan

    Perez

    Acuña

  • XML Laboratorio de Programacion 44

    Schema XML: características

    � Son documentos XML.

    � Soportan tipos de datos.

    � Soportan namespaces.

    � Permiten definir nuevos tipos de datos y restricciones sobre los valores de un elemento.

    � Ofrecen mayor precisión que los DTDs.

  • XML Laboratorio de Programacion 45

    Estructura del Documento Schema

  • XML Laboratorio de Programacion 46

    Algunos tipos de datos primitivos

  • XML Laboratorio de Programacion 47

    Declaración de Atributos

    Por defecto los atributos son

    opcionales. Indicar que son

    obligatorios: use="required"

    Valor por defecto de un

    atributo. Podría definirse otro

    valor.

    Valor fijo de un atributo. Si

    no se define, se utiliza

    ése. Si se define, debe

    coincidir.

  • XML Laboratorio de Programacion 48

    Tipos Complejos vsSimples

    � Pueden declararse 2 tipos:� Complejos: Pueden contener sub-elementos y atributos.

    � Simples: No contienen sub-elementos ni atributos

    � Pueden aparecer dentro de elementos o en valores de atributos

    Jose

    Bueno

    complejos

    simples

  • XML Laboratorio de Programacion 49

    Indicadores

    � Indicadores de orden.� All

    � Choice: representa alternativas

    � Sequence

    Renault R23

  • XML Laboratorio de Programacion 50

    Indicadores

    � Indicadores de cantidad.

    � maxOccurs

    � minOccurs

    � Ilimitada: maxOccurs="unbounded“

  • XML Laboratorio de Programacion 51

    Tipos propios

    ...

    Juan

    Perez

    Luis

    Gomez

    ...

  • XML Laboratorio de Programacion 52

    Tipos Anónimos vs.con nombre

    + legible

    + reutilizable

  • XML Laboratorio de Programacion 53

    Enumeraciones y restricciones

    � Restricción

    � Enumeración

  • XML Laboratorio de Programacion 54

    Restricciones: más ejemplos

    Tres Letras

    Un código postal de 5 dígitos

  • XML Laboratorio de Programacion 55

    Restricciones: más ejemplos

    Una cadena entre 5 y 8

    Caracteres.

  • XML Laboratorio de Programacion 56

    Tipos Derivados porExtensión

    � Similar a las subclases de POO: Añadir elementos a un tipo base

    ...similar pero incluyendo el radio

    Rectangulo contiene el elemento color, base y altura

  • XML Laboratorio de Programacion 57

    Consultas…

  • XML Laboratorio de Programacion 58

    Ejercicio práctico

    � Construir un esquema XML de acuerdo al DTD y XML provistos. Realizar los siguientes pasos:� Crear el documento XML (ver XML adjunto)

    � Crear el DTD (ver DTD adjunto)

    � Validar DTD con el documento XML

    � Crear el Esquema XML

  • XML Laboratorio de Programacion 59

    Ejercicio práctico…

    � DTD Libro:

  • XML Laboratorio de Programacion 60

    Ejercicio práctico…

    � y probarlo con este documento XML:

    Java y XML

    Introducción

    Qué es

    Cómo se usa

    Creando XML

    Un documento XML

    La cabecera

    El contenido

  • XML Laboratorio de Programacion 61

    Ejercicio práctico…

    Analizando XML

    Preparación

    SAX

    Manejadores

    Una forma mejor de cargar el analizador

    JDOM

    Introducción

    DOM&JDOM

    2000

  • XML Laboratorio de Programacion 62

    Próxima clase

    � Repaso

    � DOM

    � Hojas de estilo XLS

    � Ejemplos y ejercitación