XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja...

12
XML DBD 2006-2007 1 XML(eXtensible Markup Language) 1. Características Generales 2. Estructura de los Datos XML 3. DTD 4. Espacio de nombre 5. XML Esquema 6. Consultas 7. Almacenamiento de Datos 8. Presentación 1. Características Generales (Metadatos) Datos sobre datos Alumno: Datos sobre los que se describen las cosas Expedientes: Un expediente por alumno con la siguiente información: DNI del alumno Nombre del alumno Domicilio del alumno …. Metadatos Se puede considerar como ETIQUETA asignada a datos de la forma nombre = valor DNI = 26.259.485 Nombre = Miguel de Cervantes Domicilio = Av. Libertad 158 Cada etiqueta debe estar bien definida (nombre, descripción, valor posibles) El conjunto de etiquetas se denomina Esquema Habitualmente, etiqueta y marca son sinónimos Lenguajes de marcas Los documentos electrónicos tienen 3 partes: Contenido: Los datos o palabras en si mismo Estructura: La organización del contenido Presentación: El aspecto con el que se presenta el contenido al lector Las marcas son secuencias de símbolos que, insertados en el contenido de un documento, sirven para indicar su presentación o su estructura. HTML (Hypertext Markup Language): Las marcas definen la presentación Problema: Los buscadores no pueden localizar la marca deseada XML(eXtensible Markup Language) Con HTML: <H1> Factura </H1> <P> De: Pepe Martinez </P> <P> A: Juan Fernandez </P> <P> Fecha: 1 Dic de 2006 </P> <P> Cantidad: 1000 euros </P> <P> IVA: 17% </P> <P> Total: 1170 </P> <H1> Cabecera tipo 1 <P> Nuevo párrafo Con XML: la marca indican la estructura <Factura> <De> Pepe Martinez </De> <A> Juan Fernandez </A> <Fecha dia=1 mes=12 año=2006 /> <Cantidad moneda=euros > 1000 </cantidad> <IVA> 17 </IVA> <Total> 1170 </Total> </Factura> <Factura> Comienza la información <De> … </De> Nuevo párrafo Búsquedas más sencillas con XML XML: Origen A finales de los 70, IBM pidió a Charles Goldfard que desarrollará un sistema para almacenar, buscar, gestionar y publicar documentos. El resultado de su trabajo fue el SGML (Standard Generalized Markup Language). XML es un subconjunto de SGML pensado para los entornos Web

Transcript of XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja...

Page 1: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 1

XML(eXtensible Markup Language)

1. Características Generales2. Estructura de los Datos XML

3. DTD

4. Espacio de nombre

5. XML Esquema 6. Consultas

7. Almacenamiento de Datos

8. Presentación

1. Características Generales (Metadatos)

Datos sobre datos

Alumno: Datos sobre los que se describen las cosas

Expedientes: Un expediente por alumno con la siguiente información:

DNI del alumno

Nombre del alumno

Domicilio del alumno ….

Metadatos

• Se puede considerar como ETIQUETA asignada a datos de la forma nombre = valor

– DNI = 26.259.485

– Nombre = Miguel de Cervantes

– Domicilio = Av. Libertad 158

• Cada etiqueta debe estar bien definida (nombre, descripción, valor posibles)

• El conjunto de etiquetas se denomina Esquema

• Habitualmente, etiqueta y marca son sinónimos

Lenguajes de marcas

• Los documentos electrónicos tienen 3 partes:

– Contenido: Los datos o palabras en si mismo

– Estructura: La organización del contenido

– Presentación: El aspecto con el que se presenta el contenido al lector

• Las marcas son secuencias de símbolos que, insertados en el contenido de un documento, sirven para indicar su presentación o su estructura.

• HTML (Hypertext Markup Language):

– Las marcas definen la presentación

– Problema: Los buscadores no pueden localizar la marca deseada

XML(eXtensible Markup Language)

Con HTML:

<H1> Factura </H1>

<P> De: Pepe Martinez </P>

<P> A: Juan Fernandez </P>

<P> Fecha: 1 Dic de 2006 </P>

<P> Cantidad: 1000 euros </P>

<P> IVA: 17% </P>

<P> Total: 1170 </P>

<H1> Cabecera tipo 1

<P> Nuevo párrafo

Con XML: la marca indican la estructura

<Factura>

<De> Pepe Martinez </De>

<A> Juan Fernandez </A>

<Fecha dia=1 mes=12 año=2006 />

<Cantidad moneda=euros > 1000 </cantidad>

<IVA> 17 </IVA>

<Total> 1170 </Total>

</Factura>

<Factura> Comienza la información

<De> … </De> Nuevo párrafo

Búsquedas más sencillas con XML

XML: Origen

• A finales de los 70, IBM pidió a Charles Goldfard que desarrollará un sistema para almacenar, buscar, gestionar y publicar documentos.

• El resultado de su trabajo fue el SGML (Standard Generalized Markup Language).

• XML es un subconjunto de SGML pensado para los entornos Web

Page 2: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 2

XML: Origen • En SGML se consideraros los siguientes hechos:

– Para intercambiar información es necesario un lenguaje común donde las marcas tiene sentido.

– La estructura de un documento se puede ver como una jerarquía de elementos. El documento puede verse como un árbol.

– Los documento tienen que seguir algún tipo de reglas , es decir el lenguaje de marcas debe ser especificado de algún modo formal que permite que el documento cumpla cierta estructura

Separación contenido/presentación

• Se requiere una hoja de estilo para definir como imprimir o visualizar un documento.

• Las ventajas de mantener separado los tres aspecto de un documento contenido, estructura y presentación son:

– Facilitar el trabajo de presentación al navegador

– Manipular los datos y realizar cálculos a partir de ellos

– Realizar búsquedas “inteligentes” de información

– Fomentar la creación de vocabularios (marcas) estándares en diferentes dominios: bancos, telecomunicaciones, medicina, etc.

2. Estructura de los Datos XML

• Lenguaje de Marcado Extensible.

• W3C (World Wide Web) publicó la primera definición en 1998.

• Está diseñado para facilitar el intercambio de datos estructurados a través de Internet.

• Tiene que ver con la descripción y representación de los datos (el despliegue de los datos es tarea de HTML). Separa la visualización del contenido

• Es un metalenguaje para representar y manipular elementos de datos. Permite introducir etiquetas que describen la estructura del contenido presente en el documento o página Web

XML

• Lenguaje de marcas de documentos

• Marca: Cualquier elemento en un documento del que no se tiene intención que sea parte de la salida impresa.

• Las marcas adoptan la forma de etiquetas (encerradas entre < >). Las marcas se usan en pares <etiqueta> </etiqueta> (se pueden establecer etiquetas según cada necesidad).

• Un texto encerrado en CDATA es tratado como datos de texto normal, no como una etiqueta.

XML: Ej CDATA

<ejemplo><HTML>

<HEAD> <TITLE>

Rock & Roll</TITLE>

</HEAD></HTML>

</ejemplo><ejemplo>

<![CDATA[<HTML><HEAD><TITLE> Rock &

Roll </TITLE></HEAD></HTML>

]]></ejemplo>

<ejemplo>&lt;HTML>&lt;HEAD> &lt;TITLE>

Rock &amp; Roll&lt;/TITLE> &lt;/HEAD>&lt;/HTML>

</ejemplo>

Dos alternativas para incluir un documento HTML como elemento XML

XML

• Sensible a mayúsculas y minúsculas

• Las etiquetas deben estar apropiadamente anidadas

• Pueden utilizarse los simbolos <-- y --> para introducir comentarios

• Los prefijos XML o xml están reservados sólo para etiquetas XML.

Page 3: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 3

Partes de un documento XML

• Los documentos XML están divididos en dos partes principales un prólogo y una instancia del documento.

• Prólogo compuesto de una declaración XML y/o una declaración de tipo de documento, por ej.

<?xml version=“1.0.”?>

<!DOCTYPE Expediente SYSTEM “http://siul02/expedientes”>

• Instancia, allí se encuentra el contenido real del documento XML

Ej. partes de un documento XML

Prólogo

Instancia

Elemento y Atributos

• ElementoPar de etiquetas de inicio y finalización coincidentes y todo eltexto que aparece entre ellas.Los elementos se suelen anidar para evitar los “joins”

• AtributoLos atributos de un elemento aparecen como pares nombre=valor (los atributos son cadenas y no contienen marcas). Pueden aparecer solamente una vez en una etiqueta dada.

Ej. Estructura de los Datos XML

• Elemento XML con contenido

<titulo> Este es el titulo </titulo>

• Elemento XML sin contenido

<Fecha año = 2006 mes = 1 dia 14 />

• Los atributos tienen nombre y valor

Estructura de los Datos XML

• Todo documento XML tiene un elemento raíz

• El elemento raíz contiene elementos hijo o

subelementos

• Cada elemento puede contener subelementos.

• Refleja una estructura de árbol jerárquico

• Un documento XML puede ser verificado por un

procesador general.

Ejemplo documento XML<AlumnosFISS>

<AlumnosBD><Alumno DNI= 4.000>

<Nombre> Juan </Nombre><Edad> 18 </Edad><Asignatura>

<Titulo> DBD </Titulo><Cuatrimestre> 1 </Cuatrimestre>

</Asignatura><Asignatura>

<Titulo> ABD </Titulo><Cuatrimestre> 2 </Cuatrimestre>

</Asignatura></Alumno>

<Alumno DNI = 5.000><Nombre> Maria </Nombre><Edad> 18 </Edad><Asignatura>

<Titulo> DBD </Titulo><Cuatrimestre> 1 </Cuatrimestre>

</Asignatura><Asignatura>

<Titulo> TAMI </Titulo> < -- curso 2005-- ><Cuatrimestre> 2 </Cuatrimestre>

</Asignatura></Alumno>

</AlumnosBD>

</AlumnosFISS>

RAIZ

Subelemento

Subelemento

Subelemento

Page 4: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 4

Ejemplo. Vista en forma de árbol

AlumnosBD

Alumno Alumno

Asignatura Asignatura Asignatura Asignatura

AlumnosFISS

XML. Características Generales• Desventaja comparando al almacenamiento de los

datos en una Base de Datos :

– la representación XML puede parecer poco

eficiente, puesto que los nombres de las etiquetas se repiten por todo el documento.

• Ventaja cuando se usa para el intercambio de datos.

– Mensaje auto documentado

– Formato del documento no rígido

– Herramientas disponibles para ayudar a su procesamiento.

3. DTD (Document Type Definition)

• La definición de tipos de documentos DTD es una parte opcional de un documento XML.

• Objetivo: restringir el tipo de información presente en el documento. Restringe el aspecto de subelementos y atributos en un elemento. Indica el “patrón” de subelementos que aparecen en un elemento.

• Los atributos permitidos para cada elemento también se declaran en la DTD.

DTD

• Un DTD proporciona la composición del modelo lógico de la BD y define las reglas de sintaxis o etiquetas válidas para cada tipo de documento XML.

• Documento bien formado: documento que cumple las reglas sintácticas de XML

• Documento válido: Documento que declara en su prólogo cierto DTD que efectivamente lo cumple.

• Documento no válido: Documento que declara en su prólogo cierto DTD que no cumple.

• Un documento no válido puede estar bien formado

• Un documento bien formado puede o no se valido

DTD Interno: definido en el mismo XML<?xml version=“1.0”?>

<!DOCTYPE DocDireccionPostal [

<!ELEMENT DireccionPostal (nombre, calle, ciudad, codigo)>

<!ELEMENT nombre (#PCDATA)>

<!ELEMENT calle (#PCDATA)>

<!ELEMENT ciudad (#PCDATA)>

<!ELEMENT codigo (#PCDATA)>

]>

<DireccionPostal >

<nombre> Juan Perez </nombre>

<calle> San Martín </calle>

<ciudad> San Sebastián </ciudad>

<codigo> 20009 </codigo>

</DireccionPostal >

DTD externo: definido en otro ficheroSe puede indicar en el prólogo con:

• La palabra “SYSTEM” y a continuación una URL

<?xml version=“1.0”?>

<!DOCTYPE DireccionPostal SYSTEM http:// www.smglsource.com/dtds/label.dtd”>

<DireccionPostal >

</DireccionPostal >

• La palabra “PUBLIC” hace referencia a un identificador público unico

<!DOCTYPE Memo PUBLIC “- //smglsource.com//dtds memo // en”

http:// www.smglsource.com/dtds/memo.dtd”>

<DireccionPostal >

</DireccionPostal >

Page 5: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 5

DTD. Definición de elementos

• Cada elemento de un documento XML válido debe haber sido declarado en un DTD

• Una declaración de un elemento debe comenzar con <!ELEMENT” seguido de su nombre, y luego una especificacion del contenido

<!ELEMENT label (nombre, calle, ciudad, codigo)>

<!ELEMENT nombre (#PCDATA)>

DTD. Definición de elementos

• EMPTY: Indica que un elemento no puede tener contenido <!ELEMENT elemento-vacio EMPTY>

• ANY: El elemento puede contener cualquier tipo de sub-elemento o dato <!ELEMENT cualquier -cosa ANY>

• #PCDATA : Es cualquier secuencia de caracteres que NO contiene elemento (hojas del árbol)

<!ELEMENT hoja-del-arbol (#PCDATA) >

• Contenido Mixto: Si queremos combinar estructuras de datos y sub-elementos, es necesario utilizar expresiones regulares (*, +, ?)para describir la sintaxis

DTD y Cardinalidad<!DOCTYPE AlumnosFISS[

<!ELEMENT AlumnosFISS (Alumno-BD?, AlumnoIA?)>

<!ELEMENT AlumnosBD (Alumno+)>

<!ELEMENT AlumnosIA (Alumno+)>

<!ELEMENT Alumno (Nombre, Edad, Asignatura+)>

<!ELEMENT Nombre (#PCDATA)>

<!ELEMENT Edad (#PCDATA)>

<!ELEMENT Asignatura (#PCDATA)>

</ATTLIST Alumno DNI (#PCDATA)>

]>

• Si después de un elemento aparece:– * el elemento se puede repetir 0 o más veces en el documento– + el elemento se puede repetir 1 o más veces en el documento– ? el elemento se puede repetir 0 o 1 vez en el documento– El elemento aparece una vez

DTD. Definición de atributos

• La declaraciones de atributos empiezan con <!ATTLIST” seguido por el identificador del elemento. Despues se identifica el nombre del atributo, su tipo y una indicación relativa a su valor por defecto.

• Los valores de los atributos pueden cumplir ciertas restricciones

– CDATA: El contenido es cualquier secuencia de carácter que no contenga otro elemento <!ATTLIST ALUMNO email CDATA #REQUIRED>

– Enumerados: Cuando el valor a tomar esta acotado en un conjunto

discreto <!ATTLIST ELECCION (Opcion1 | Opcion2 | Opcion 3) #REQUIRED>

• Los atributos pueden tener valores por defecto

<!ATTLIST CAMISA tamaño (Pequeño | Mediano | Grande) Mediano>

DTD. Definición de atributos

• ID e IDREF: Permite crear referencias cruzadas entre elementos

<!ELEMET SECTION (TITULO, PARRAFO*)>

<!ATTLIST SECTION Identificador ID #IMPLIED>

<!ELEMET REFERENCIA EMPTY>

<!ATTLIST REFERENCIA TARGET IDREF #REQUIRED>

<SECTION Identificador =“Capitulo 1”> …. </SECTION>

Vea <REFERENCIA TARGET=“Capitulo 1” / > para volver a leer sobre

DTD. Definición de atributos

• ENTITY: Representan un contenido y se lo define como un atributo

<!ATTLIST Referencia-Librería TARGET ENTITY #REQUIRED>

<!ENTITY otro-libro SYSTEM “http://www.amazon.com/...”>

<Referencia-Libreria TARGET=“otro-libro”/ >

Page 6: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 6

DTD. Definición de entidades

• Las entidades son abreviatura que representa un valor

• Pueden ser:

– Internas: Su valor se encuentra en el mismo DTD

– Externas: Su valor esta en documento DTD externo

– Generales: Se emplea en el DTD y en Documento XML

– Parámetro: Solo se emplea en el DTD

• Las entidades generales e internas son las más simples y son resueltas por el analizador al momento de procesar el XML

DTD. Definición de entidades

• Declaración de entidad general e intena<?xml version=“1.0” ?>

<!DOCTYPE ejemplo SYSTEM “ejemplo.dtd” [

<!ENTITY xml “Extensible Markup Language”> ]>

<ejemplo>

&xml;

</ejemplo>

• Declaración de entidad general externa<!ENTITY introducción SYSTEM “http://siul02/introduccion.xml”>

DTD. Definición de entidades

• La entidad parámetro solo puede aparecer en DTD. La forma de distinguirlos de entidades generales es por el uso del símbolo % en su declaración y una sintaxis diferente<!DOCTYPE ejemplo [

<!– declaración de una entidad parámetro -->

<!ENTITY % entidad-ejemplo “ <! ELEMENT ejemplo (#PCDATA)>” >

<!– uso de la entidad parámetro -->

%entidad-ejemplo;

]>

Limitaciones de los DTD

• No se puede declarar el tipo de elementos

• Es difícil usar el mecanismo DTD para especificar conjuntos desordenados de subelementos

• Las DTD se incluyen al principio del documento o se pone al principio la dirección donde se puede encontrar.

• Un DTD proporciona sólo información descriptiva para entender cómo se relacionan los elementos - raíz, padre, hijo, obligatorios u opcionales – entre si.

• Tiene su propia sintaxis por lo que requiere procesadores especializados.

Espacios de nombres

• Puesto que los documentos XML se diseñan para su intercambio entre aplicaciones se tiene que introducir un mecanismo de espacio de nombres para permitir a las organizaciones especificar nombres únicos globalmente para que se usen como marcas de elementos en los documentos.

• La idea es anteponer cada etiqueta o atributo con un identificador de recursos universal.

• Se puede definir una abreviatura para los identificadores.

• Un documento puede tener más de un espacio de nombres, declarado como parte del elemento raíz.

Espacios de nombres ¿Por qué y que son?

• Los vocabularios de marcas se deben poder reutilizar

• Para evitar colisiones

• Un espacio de nombre XML es una colección de nombres, identificados por una referencia URI, que se emplea en documentos XML como nombres de elementos y nombre de atributos.

• Dos referencia URI son idénticas si son iguales todos sus caracteres.

• Los nombres de elementos y atributos aparecen con un prefijo: elemento o atributo

• El prefijo identifica al espacio de nombre

Page 7: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 7

Espacios de nombres• Se utiliza un atributo especial para declarar el espacio de nombre

DTD

<?xml version=“1.0” >

<!ELEMENT UM:BOOK (UM:Title, …) ><!ATTLIST UM:BOOK xmlns:UM CDATA #FIXED “http://www.um.es/BOOK”>

<!ELEMENT UM:Title (#PCDATA) >

XML

<?xml version=“1.0” ><!DOCTYPE UM:BOOK SYSTEM “UM.dtd”><UM:BOOK xmlns:UM=“http://www.um.es/BOOK”>

<UM:Title> Titulo </UM:Title> </UM:BOOK>

• Con DTD no se puede usar espacios de nombres por defecto• Con XML Schemas el uso de espacios de nombre es completo

Espacios de nombres a utilizar

• ABD: http://www.Infor.es• A: http://www.Presi.es

<ADB: AlumnoBD><A: Alumno>

4. XML Esquema

• Lenguaje de definición de datos avanzado que se utiliza para describir la estructura (elementos, tipos de datos, tipos de relación, intervalos y valores…) de documentos XML

• Usa la misma sintaxis que los documentos XML (para la verificación no se necesitan procesadores especializados)

Esquema XML

• Objetivo: Superar las deficiencias de los DTD

– Permite crear tipos definidos por el usuario

– Permite que el texto que aparece en los elementos esté restringido a tipos específicos

– Permite restringir los tipos para crear tipos especializados

– En el documento XML habría que hacer una referencia al esquema XML

– Con el esquema XML una compañía podría validar los datos de valores que pudieran estar fuera del limite, fechas incorrectas,valores válidos, etc.

Elemento Schema

• El documento XML que define un esquema contiene un elementoschema :

<?xml version="1.0"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

targetNamespace=" http://www.Infor.es "…

</xsd:schema>

• El espacio de nombre http://www.w3.org/2001/XMLSchema contine losnombre de los elemento usados en los esquemas

• El atributo targetNamespace indica el espacio de nombres sobre el queactuan las restricciones definidas en el esquema

Definición de elementos

Sintaxisde los elementos

<xsd:element name =“[Nombre del Elemento]“ type = [tipo de elemento] [Opciones ..]>

Ejemplo: <xsd:element name=“direccion“ type =“xsd:string”/>

Tipos:String boolean decimal float doubleduration dateTime time dategYearMonth gYear gMonthDay gDay gMonthhexBinary base64Binary anyURI QName NOTATION

REF: http://www.w3.org/TR/2004/REC-xmlschema-2-20041028/#built-in-primitive-datatypes

Page 8: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 8

Definición de elementos simple

Los elementos pueden ser simples o complejos

Ejemplo de un elemento simple:

<xsd:simpleType name =“miEntero“> <xsd:restriccion base =“integer“>

<xsd:minInclusive values =“0”> <xsd:maxInclusive values =“999999”>

</xsd:restriccion> </xsd:simpleType>

Definición de elementos complejo

Los elementos pueden ser complejos y se emplea cuando:• El tipo incluyeatributos• El tipo contiene otros atributos

Contenido vacío<xsd:complexType name =“TipoPrecioInt “>

<xsd:attribute name =“moneda“ type=“string” /> <xsd:attribute name =“valor“ type=“decimal” />

</xsd:complexType>

Permite definir un elementocon contenidovacio

Uso: <elemento name=“precioInternacional” type=“TipoPrecioInt ”

<precioInternacional moneda=“EUR” valor = “426.45”><precioInternacional moneda=“DOLAR” valor = “413.52”>

Definición de elementos complejo

Contenido basado en un tipo simple

Ej:<precioInternacional moneda=“EUR”> 426.45 </precioInternacional >

<xsd:complexType name =“TipoPrecioInt“> <xsd:simpleContect>

<xsd:extension base =“decimal“> <xsd:attribute name =“moneda“ type=“string” />

</xsd:extension> </xsd:simpleContect>

</xsd:complexType>

Definición de elementos complejo

Modelos de contenido complejos

• Se emplean para especificar los elementos que pueden aparecerdentro de otro.

• La ocurrencia de cada elemento se especifica con minOccurs y maxOccurs.

• Modelo de contenido:– Sequence: cada elemento debe aparecer en el orden y cardinalidad

indicados .

– Choice: puede aparecer uno de los elementos indicados

– All: debe aparecer todos los elementos una sola vez, en cualquierorden.

– Group: se referencia un grupo que esta definido en algun otro lugar

Ejemplo de XML Esquema

<?xml version="1.0"?><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"

targetNamespace=" http://www.Infor.es "<xsd:element name=“AlumnosFISS">

<xsd:complexType><xsd:sequence>

<xsd:element name=“AlumnosBD " type=“Alumno“ minOccurs=“0” maxOccurs="unbounded"/><xsd:element name=“AlumnosIA" type=“Alumno" minOccurs=“0” maxOccurs="unbounded"/>

</xsd:sequence></xsd:complexType>

</xsd:element ><xsd:complexType name=“Alumno">

<xsd:sequence><xsd:element name=“ Nombre" type="xsd:string "/><xsd:element name=“Edad" type="xsd:number"/><xsd:element name=“Asignatura" maxOccurs=“unbounded”/><xsd:attribute name = “DNI” type = “xsd:number ”/>

<xsd:complexType name=“Asignatura"> ><xsd:sequence>

<xsd:element name=“Titulo" type="xsd:string "/><xsd:element name=“ Cuatrimestre " type="xsd:number"/>

</xsd:sequence></xsd:complexType>

</xsd:sequence></xsd:complexType>

</xsd:schema>

5. Lenguajes de consultas

• Xpath: para expresiones de rutas de acceso.• Xquery: Estándar para consultar datos XML

• En todos los lenguajes se usa un modelo de árbol de datos XML.

Page 9: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 9

XPath• Trata partes de un documento XML mediante

expresiones de rutas de acceso.

Secuencia de pasos de ubicación separados por /(hijo directo) //(descendiente de cualquier nivel)(las expresiones se evalúan de izqda a dcha)

Otras características:

– La selección de predicados puede seguir cualquier paso en una ruta y están contenidos entre corchetes.

– Proporciona varias funciones y operadores que se pueden usar como parte de predicados.

Ejemplo documento XML<AlumnosFISS>

<AlumnosBD><Alumno DNI= 4.000>

<Nombre> Juan </Nombre><Edad> 18 </Edad><Asignatura>

<Titulo> DDB </Titulo><Cuatrimestre> 1 </Cuatrimestre>

</Asignatura><Asignatura>

<Titulo> ABD </Titulo><Cuatrimestre> 2 </Cuatrimestre>

</Asignatura></Alumno>

<Alumno DNI = 5.000><Nombre> Maria </Nombre><Edad> 18 </Edad><Asignatura>

<Titulo> DBD </Titulo><Cuatrimestre> 1 </Cuatrimestre>

</Asignatura><Asignatura>

<Titulo> TAMI </Titulo> < -- curso 2005--><Cuatrimestre> 2 </Cuatrimestre>

</Asignatura></Alumno>

</AlumnosBD>

<AlumnosIA><Alumno DNI= 6.000>

<Nombre> Pepe </Nombre><Edad> 20 </Edad><Asignatura>

<Titulo> MAC1 </Titulo><Cuatrimestre> 1 </Cuatrimestre>

</Asignatura><Asignatura>

<Titulo> MAC2 </Titulo><Cuatrimestre> 2 </Cuatrimestre>

</Asignatura></Alumno>

<Alumno DNI = 7.000><Nombre> Lucrecia </Nombre><Edad> 21 </Edad><Asignatura>

<Titulo> IA </Titulo><Cuatrimestre> 1 </Cuatrimestre>

</Asignatura><Asignatura>

<Titulo> MAC2 </Titulo> <Cuatrimestre> 2 </Cuatrimestre>

</Asignatura></Alumno>

</AlumnosIA>

</AlumnosFISS>

Ejemplo. Vista en forma de árbol

AlumnosBD

Alumno“DNI” Alumno

Nombre Edad

AlumnosFISS

Titulo Cuatrimestre

Asignatura

AlumnosIA

Alumno Alumno

Ejemplo. XPath• Ruta de Acceso

– Obtener los nombres de los alumnos de BDAlumnosFISS/AlumnosBD/Alumno/Nombre

<Nombre> Juan </Nombre><Nombre> Maria </Nombre>

– Obtener los nombres de los alumnos de la FISSAlumnosFISS//Alumno/Nombre

<Nombre> Juan </Nombre><Nombre> Maria </Nombre>

<Nombre> Pepe </Nombre><Nombre> Lucrecia </Nombre>

• Predicado sobre ruta de acceso– Obtener las asignaturas del primer cuatrimestre

//Asignatura [Cuatrimestre=1]

<Asignatura> <Titulo> DBD </Titulo> <Cuatrimestre> 1 </Cuatrimestre> </Asignatura><Asignatura> <Titulo> DBD </Titulo> <Cuatrimestre> 1 </Cuatrimestre> </Asignatura><Asignatura> <Titulo> MAC1 </Titulo> <Cuatrimestre> 1 </Cuatrimestre> </Asignatura> <Asignatura> <Titulo> IA </Titulo> <Cuatrimestre> 1 </ Cuatrimestre> </Asignatura>

Xquery• Desarrollado por W3C

• Se organizan las consultas en expresiones FLWR (For,Let,Where,

Return)

– For. Variables cuyos valores son los resultados de expresiones

Xpath (from) (enlaces a nodos individuales)

– Let. Permite asignar expresiones complicadas a nombres de variables. (enlaces a colecciones de nodos)

– Where. Ejecuta comprobaciones adicionales sobre las tuplas

obtenidas por For

– Return. Permite la construcción de resultados en XML.

• Las expresiones Xquery FLWR se pueden anidar en la cláusula Return.

Ejemplos

• Obtener el nombre de los alumnos que cursan DBD

For $a in AlumnosFISS/AlumnosBD/AlumnoWhere

AlumnosFISS/AlumnosBD/Alumno/Asignatura[Titulo=“DBD”]Return <Nombre> $a </Nombre>

• Obtener el título de las asignaturas del 2. cuatrimestre

For $a in //AsignaturaWhere //Asignatura[Cuatrimestre=“2”]Return <Titulo> $a </Titulo>

Page 10: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 10

Ejemplo

• Nombre de los Alumnos cuya edad es menor que la media

Let $a: avg (//Edad)For $b in //AlumnosWhere //Alumnos/Edad < $aReturn <Nombre> $b </Nombre>

6. Almacenamiento de Datos en XML. Alternativas

• Bases de Datos Relacionales

– Almacenamiento en cadena

– Representación en árbol

– Asignación a Relaciones

• En Sistemas No Relacionales

– Almacenamiento en archivos planos

– Almacenamiento en una BD XML

Almacenamiento de Datos en XML. Alternativas

• Bases de Datos Relacionales

– Almacenamiento en cadena. No es posible consultar los datos directamente. Solución parcial: almacenar distintos tipos de elementos en relaciones diferentes.

DatoID

<alumno><nombre>Elena</nombre><edad>19</edad><asignatura><titulo>Inteligencia …2

<alumno><nombre>Antonio</nombre><edad>19</edad><asignatura><titu lo>Inteligencia …1

DatoID

<alumno><nombre>Maria</nombre><edad>18</edad><asignatura><titulo >DBD</titulo> …2

<alumno><nombre>Juan</nombre><edad>18</edad><asignatura><titulo>DBD</titulo> …1

ALUMNOSBD

ALUMNOSIA

Almacenamiento de Datos en XML. Alternativas

Representación en árbol. Los datos XML se pueden modelar como un árbol y almacenar

mediante el uso de un par de relaciones• Nodos(id,tipo,etiqueta,valor)• Hijo(id_hijo,id_padre)Ventaja: trasladar consultas XML a consultas relacionales.Inconveniente: cada elemento se divide en muchas piezas.

AlumnoElemento3

18EdadElemento2

JuanNombreElemento1

valorEtiquetaTipoID

32

31

ID_padreID_hijo

Almacenamiento de Datos en XML. Alternativas

– Asignación a Relaciones . Los elementos XML cuyo esquema es conocido se asignan a relaciones y atributos. Los elementos cuyo esquema es desconocido se almacenan como cadenas o como una representación en árbol.

A218Maria2

A118Juan1

A319Antonio3

A419Elena4

AsignaturasEdadNombreID

ALUMNOS

AsignaturaElementoA1

1CuatrimestreElementoAA2

DBDTituloElementoAA1

valorEtiquetaTipoID

A1AA2

A1AA1

ID_padreID_hijo

Ejemplo (ORACLE)

Oracle permite crear una estructura en arbol XML a partir de una estructura plana Relacional.

SELECT XMLElement (“Pelicula”,Titulo)FROM Pelicula;

XMLELEMENT (“PELICULA”, TITULO)<Titulo> Mar Adentro </Titulo><Titulo> Bombon </Titulo>………………………………………….

Page 11: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 11

Almacenamiento de Datos en XML. Alternativas

• En Sistemas No Relacionales– Almacenamiento en archivos planos

Inconveniente: falta de independencia, ausencia de

mecanismos de control de la integridad, seguridad y

concurrencia.

– Almacenamiento en una BD XML

BDDOO o BD Relacionales con interfaz XML.

7. Presentación XML

• Uno de los principales beneficios de XML es que separa la estructura de los datos de su presentación y procesamiento.

Los mismos datos se pueden mostrar de diferentes formas

El lenguaje XSL (Lenguaje de Estilo Extensible) es una especificación utilizada para definir las reglas mediante las cuales los datos XML se formatean y despliegan

XSL

• La especificación XSL se divide en dos partes:

– XSLT Transformaciones de Lenguaje de Estilo ExtensibleMecanismo general que se utiliza para extraer y procesar datos de un documento XML y permitir su transformación en otro documento.

– XSL Hojas Estilo definen las reglas de aplicación a elementos XML

Aplicaciones XML

• Intercambios B2B• Integración de sistemas legados• Desarrollo de páginas Web• Soporte de bases de datos• Meta-Diccionarios de BD• Servicios XML• …………………….

Características de los actuales documentos XML

• Fáciles de construir.

• Los ordenadores pueden trabajar con ellos.

• Legibles por personas (si conocen el idioma en el que se escribe la etiqueta y conocen el término que se emplea en la etiqueta)

• Pero…las etiquetas que se insertan en un documento Web no tienen significado alguno para los ordenadores.

Web Semántica

• Pretende describir los recursos disponibles en la Web de forma que sean comprensibles por una máquina, con independencia del idioma en el que se encuentren escritos.

• A la información disponible se le anota una semántica bien definida (proporcionada por las ontologías) que permita a las aplicaciones acceder, recuperar, descubrir, integrar, razonar y usar de forma inteligente la información presente en la Web.

Page 12: XML(eXtensibleMarkup Languagesiul02.si.ehu.es/~jimena/DBD/06_Semana/XML.pdf · • Desventaja comparando al almacenamiento de los datos en una Base de Datos : – la representación

XML

DBD 2006-2007 12

Web Semántica

• La anotación semántica pretende añadir meta información a los recursos de la Web

• Surgen nuevos lenguajes que se construyen como extensión a XML.

• Dichos lenguajes permiten no sólo representar el conocimiento de una ontología, sino la inserción del vocabulario procedente de una ontología dentro de los documentos Web (RDF, OWL)