• No se han encontrado resultados

XML DBD XML(eXtensible Markup Language) Metadatos. Lenguajes de marcas. XML: Origen. 1. Características Generales (Metadatos)

N/A
N/A
Protected

Academic year: 2021

Share "XML DBD XML(eXtensible Markup Language) Metadatos. Lenguajes de marcas. XML: Origen. 1. Características Generales (Metadatos)"

Copied!
12
0
0

Texto completo

(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 Goldfardque 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

(2)

XML: Origen

• En SGML se consideraros los siguientes hechos:

– Para intercambiar información es necesario un lenguaje

comúndonde 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.

(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

Elemento

Par de etiquetas de inicio y finalización coincidentes y todo el texto que aparece entre ellas.

Los elementos se suelen anidar para evitar los “joins”

Atributo

Los 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

<Fechaañ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

(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 fichero

Se 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 >

(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 NOcontiene

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 d efecto. • 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

IDe 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”/ > …

(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ámetrosolo 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

(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:BOOKxmlns:UM CDATA #FIXED “http://www.um.es/BOOK”> <!ELEMENT UM:Title (#PCDATA) >

XML

<?xml version= “1.0” >

<!DOCTYPE UM:BOOK SYSTEM “UM.dtd”> <UM:BOOKxmlns: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 elemento schema: <?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 los nombre de los elemento usados en los esquemas

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

Definición de elementos

Sintaxis de 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 double duration dateTime time date

gYearMonth gYear gMonthDay gDay gMonth hexBinary base64Binary anyURI QName NOTATION REF:

(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 elemento con contenido vacio

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 aparecer dentro 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 cualquier

orden.

– 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=“AlumnominOccurs=“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" t y p e = "xsd:string "/> <xsd:element name=“Edad" t y p e = "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

(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 BD AlumnosFISS/AlumnosBD/Alumno/Nombre <Nombre> Juan </Nombre> <Nombre> Maria </Nombre>

– Obtener los nombres de los alumnos de la FISS AlumnosFISS//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/Alumno Where

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

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

cuatrimestre

For $a in //Asignatura

Where //Asignatura[Cuatrimestre=“2”] Return <Titulo> $a </Titulo>

(10)

Ejemplo

• Nombre de los Alumnos cuya edad es menor

que la media

Let $a: avg (//Edad)

For $b in //Alumnos

Where //Alumnos/Edad < $a

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

Dato ID <alumno><nombre>Elena</nombre><edad>19</edad><asignatura><titulo>Inteligencia 2 <alumno><nombre>Antonio</nombre><edad>19</edad><asignatura><titu lo>Inteligencia 1 Dato ID <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.

Alumno Elemento 3 18 Edad Elemento 2 Juan Nombre Elemento 1 valor Etiqueta Tipo ID 3 2 3 1 ID_padre ID_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.

A2 18 Maria 2 A1 18 Juan 1 A3 19 Antonio 3 A4 19 Elena 4 Asignaturas Edad Nombre ID ALUMNOS Asignatura Elemento A1 1 Cuatrimestre Elemento AA2 DBD Titulo Elemento AA1 valor Etiqueta Tipo ID A1 AA2 A1 AA1 ID_padre ID_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> ……….

(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 Extensible

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

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

Referencias

Documento similar