XML Data Formats Full

74
XML Data Formats PROGRAMACIÓN AVANZADA WEB I Juan Calderón Agosto 2010

Transcript of XML Data Formats Full

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 1/74

XML Data Formats

PROGRAMACIÓN

AVANZADA WEB I

Juan CalderónAgosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 2/74

The Big Picture

J. Calderón | Agosto 2010

2

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 3/74

Agenda

Parte 1 XML Tipos de Datos

DTDs Esquemas (Schemas )

Parte 2 XHTML

XPath XQuery XSLT

J. Calderón | Agosto 2010

3

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 4/74

¿Qué es XML?

XML = eXtensible Markup Language Estándar W3C derivado del SGML (Standard

Generalized Markup Language)

Meta-lenguaje: usado para crear lenguajes markup ala medida (Semi-)estructurado Sin ambigüedades estructurales (well-formedness) Optional DTD (document type definition) / schema

(validity) Nested tags, attributes, char data, ids/refs

<tag_name attribute=0> char data </tag_name> Estructura (tags) vs. contenido (valores, datos)

J. Calderón | Agosto 2010

4

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 5/74

XML: Ejemplo

Elementos importantes XML versión Definición del tipo de

documento

Elemento Root DTD URL Tag de apertura Tag de cerradura Tag vacía PCDATA Atributo(s) Comentarios

J. Calderón | Agosto 2010

5

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 6/74

XML: Ejemplo (continuación)

Un documento XML puede ser representadocomo un árbol de una raíz

J. Calderón | Agosto 2010

6

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 7/74

XML vs HTML

HTML es para desplegar información Enfocado en como lucen los datos Las etiquetas (tag) son fijas

XML es para describir información Enfocado en lo que es el dato XML no hace nada XML es extensible

Partes en común Ambos son lenguajes markup 

Sintaxis similar, estructura jerárquica XHTML 1.0 ∈ XML ⊂ SGML

J. Calderón | Agosto 2010

7

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 8/74

¿Por qué el XML es importante?

La Web se trata de Datos XML es un lenguaje ―universal‖ de intercambio de datos

Oblicuo, mínimo común denominador Simple, texto plano, fácil de procesar

Dirigido a un amplio rango de aplicaciones / dispositivos (servicios Web,PDAs, celulares) Incrusta información de esquema (estructura) Auto-describible (información semántica) Protocolos estándar / formato de datos basados en XML (SOAP,

XHTML, WML)

Usado como ―nativo‖ en muchas aplicaciones⇒

no requiere traducción Extensible: puede representar cualquier dato Estilo: XML no dice como representar un dato (esto lo hace XSL,

Extensible Stylesheet Language)

J. Calderón | Agosto 2010

8

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 9/74

Almacenar datos en XML

Documentos XML del mismo tipopueden contener diferentes datos Ej., valores de bolsa con

diferentes símbolos Similar a clase vs instancia

Atributos y elementos puedencontener datos

Usar elementos hijos usualmentees mejor que usar atributos

Los atributos no pueden contenervalores múltiples No pueden describir estructuras Son más difíciles de manipular

J. Calderón | Agosto 2010

9

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 10/74

IDs y referencias de objetos

Especificar referenciasen documentos XML Sólo con sintaxis XML Puede introducir ciclos

J. Calderón | Agosto 2010

10

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 11/74

Procesamiento de XML

SAX: Simple API for XML Event-driven API

Reportes pasando eventos (elemento inicial, caracteres, atributos, etc.) Adecuado para documentos extensos, streaming data , recursos

limitados Bindings  para varios lenguajes (Java, C/C++, etc.)

Parte de Java 1.4+ (org.xml.sax)

DOM: Document Object Model Tree-based API

Construye en memoria una representación del documento XML

Adecuado cuando los nodos son accesados múltiples veces, o no enprofundidad-primero transversal, o los datos deben ser modificados Bindings para varios lenguajes (Java, C/C++, etc.)

Parte de Java 1.4+ (org.w3c.dom)

J. Calderón | Agosto 2010

11

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 12/74

DTDs

DTD: Definición del Tipo de Documento Especificación de restricciones para la secuencia y

anidado de las etiquetas Cuales etiquetas puede ser puedas, cuando y cuales atributos

pueden (o deben) tener Los documentos XML son diseñados para ser procesadospor programas de computadora DTDs ayuda a la computadora a procesarlos

DTD define lo que es un documento XML válido Un DTD es una gramática Un documento XML válido es un analizador (parser ) de árbol

para tal gramática Un DTD compartido entre grupos permite a los grupos

producir documentos XML consistentes

J. Calderón | Agosto 2010

12

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 13/74

DTD Externo vs DTD Interno

Los DTD pueden ser incrustados (internos) en eldocumento o vinculados (externos)

J. Calderón | Agosto 2010

Usualmente, los DTD externos son mejores

13

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 14/74

Declaración de elementos

ELEMENT especifica etiquetas XML Sintaxis: <!ELEMENT nombre categoria>

El nombre es el nombre del elemento usado en las etiquetas La categoria deber ser EMPTY

En el DTD: <!ELEMENT br EMPTY> En el XML: <br></br> o sólo <br /> La categoria puede ser (#PCDATA)

Analizador (parser ) de datos tipo carácter: sólo pueden ser usadocaracteres

En el DTD: <!ELEMENT p (#PCDATA)>

En el XML: <p>Hello world!</p> La categoría puede ser ANY

Puede ser usado cualquier contenido (debería evitarse)

J. Calderón | Agosto 2010

14

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 15/74

Elementos con hijos

Una categoría puede describir uno o más hijos:<!ELEMENT person (name, mother?, children*)> Los paréntesis son requeridos, aún si hay un solo hijo Los paréntesis de apertura son precedidos por un espacio Todos los elementos hijo deben ser declarados por ellos

mismos Un hijo puede tener hijos Sufijos: ? (opcional) — + (uno o más) — * (cero o más)

Separadores: , (ambos, en orden) — | (o) Agrupamiento: ( )

<!ELEMENT person (name, (male|female))>

J. Calderón | Agosto 2010

15

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 16/74

Atributos y Entidades

Además de a los elementos, un DTD puededeclarar atributos y entidadesUn atributo describe la información que puede ser

puesta con la etiqueta de inicio de un elemento En XML: <note date="16/03/01"> En DTD: <!ATTLIST note date CDATA #REQUIRED>

Una entidad describe el texto a ser sustituido En XML: &copyright En DTD: <!ENTITY copyright "Copyright J. Doe">

J. Calderón | Agosto 2010

16

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 17/74

Atributos17

Syntax: <! ATTLIST element-namename type requirement ...name type requirement>

Las partes son separadas sólo por espacios element-name indica cual elemento puede tener etales

atributos name es el nombre del atributo type especifica la clase de valor que puede tener el

atributo (cualquier texto, valores específicos, etc.) requirement especifica restricciones del atributo (

(obligatorio, opcional, etc.) En XML, los atributos pueden estar en cualquier orden

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 18/74

Tipos de atributos y restricciones18

Los tipos de atributos más importantes CDATA: el valor es un carácter (no será analizado  –parsed- ) (X|Y|Z): el valor es uno de una lista ID: el valor es un identificador único

Los valores ID deben ser nombres XML válidos y únicos en el

documento IDREF: el ID de otro elemento IDREFS: una lista de otros IDs

La restricción (requirement ) es uno de: Valor default entrecomillado #REQUIRED: el atributo debe estar presente #IMPLIED: el atributo es opcional #FIXED "value‖: el atributo siempre tiene un valor dado

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 19/74

DTD: Ejemplo19

Declaraciones de elemento Secuencia(A, B) Contenido mezclado (A | B | C) Ocurrencia (A?, B+, C*) Sólo-texto: #PCDATA Vacio: EMPTY

Declaraciones de atributo Elemento, nombre, tipo, clase

(kind ) Cadena (string ): CDATA

Clase: #REQUIRED, #IMPLIED(opcional), valor (valor default),#FIXED valor (sólo el valorpermitido)

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 20/74

Esquemas XML (XML Schemas)20

Limitaciones de los DTDs Imponen restricciones no deseadas en orden (A, B) Resultan en definiciones de tipo vagas ((A | B)*) Las referencias no pueden ser restringidas No tienen un lenguaje adecuado de esquemas

Esquema XML: generaliza los DTDs Lenguaje de esquemas real para XML

Define clases de documentos XML Un esquema es un documento XML Muy complejo, a menudo es criticado

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 21/74

Esquema XML: Ejemplo21

DTD

J. Calderón | Agosto 2010

Esquema

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 22/74

Esquema XML: Puntos básicos22

Un esquema es una colección deDefiniciones de tipo Tipo simple (pueden ser tipos ―derivados‖)

Tipos complejo (contiene elemento o atributo)Declaraciones de elemento

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 23/74

23

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 24/74

Definición de tipos complejos24

Definición del tipo USAddress

El elemento debe aparecer en la misma secuencia Si está presente, el atributo country debe ser US

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 25/74

Definición de tipos complejos25

Definición del tipo PurchaseOrderType

El atributo ref hace referencia a un elemento existente El valor de este atributo debe referenciar a un

elemento global (declarado directamente sobre elesquema)

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 26/74

Restricciones de ocurrencia26

Para elementos minOccurs (default 1) maxOccurs (default 1)

Para atributos, el atributo use tiene cualquiera de required optional (default) prohibited

Las definiciones de atributos y elementos puedentener valores default Los valores default del atributo aplican cuando los

atributos se omiten Los valores default del elemento aplican cuando los

elementos están vacios

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 27/74

Elementos Globales27

La declaración permite al elemento aparecer en eltop-level de la instancia de un documento

En el ejemplo, ambos purchaseOrder y comment

pueden ser la raíz (root ) Restricciones cardinales no pueden ser puestas

como declaraciones globales

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 28/74

Tipos Simples28

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 29/74

Nuevos tipos simples derivados29

Restringiendo tipos simple existentesDefinición de myInteger con rango 10000-99999

Definición de SKU

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 30/74

Tipos Simples: Enumeraciones30

Usando la faceta enumeration 

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 31/74

Tipos Simples: Listas31

Usando list 

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 32/74

Tipos Simples: Uniones32

Usando union 

Tipo unión para códigos ZIP

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 33/74

Más sobre Tipos Complejos33

Extensión de tipos simples

Los tipos complejos pueden tener contenidovacio

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 34/74

Contenido Estructurado34

Con: all, sequence, choice

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 35/74

Todo Junto35

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 36/74

Resumen de Esquemas XML36

Conjunto amplio de tipos simples String, token, byte, integer,

positiveInteger, long, time, date,ID, IDREF, IDREFS, etc.

Facetas de tipos simples Pattern, length, maxInclusive,

totalDigits, etc. Tipos locales y globales

Alcance definido por el subárboldonde el tipo es declarado

Los atributos XML pueden serdeclarados en tipos complejos

<xsd:complexType name="address">...

<xsd:attribute name="country‖type="xsd:string"/>

<xsd:complexType>

J. Calderón | Agosto 2010

Derivación por extensión<xsd:extension base="xsd:decimal">

<xsd:attribute name="currency"

type="xsd:string"/>

</xsd:extension>

Extensión de tipos agregando

elementos Corresponde a la herencia

Derivación por restricción<xsd:restriction base="xsd:string">

<xsd:pattern value="\d{3}-[A-Z]{2}"/>

</xsd:restriction> Restricción cardinal, opciones,

valores válidos, etc. Corresponde a inclusión (el tipos

derivado es subset )

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 37/74

XHTML37

Limitaciones del HTML Parece XML, pero no es XML Los documentos HTML no son documentos XML bien formados

(ej., elementos no-terminados o sobrescritos) XHTML Extensible HyperText Markup Language 

Reformulación de HTML 4 en XML Especificado en un DTD, en 3 maneras: strict, transitional,

frameset 

Puede ser editado con cualquier editor XML y procesado pormotores XML

Principales diferencias Anidado correctamente, elementos terminados Sensible a mayúsculas y minúsculas Los valores de atributo puede ser entrecomillados

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 38/74

XHTML vs HTML38

Anidado correcto<b><i>incorrect</b></i>

<b><i>correct</i></b>

Documentos bien formados<html>

<head> </head>

<body> </body>

</html>

Sensible a mayúsculas y minúsculas

<B>incorrect</B>

<b>correct</b>

Etiquetas cerradas, incluyendo etiquetas vacias

<p>incorrect

incorrect<br><p>correct</p>

correct<br/>

correct<br /> <!-- Compatible with today's browsers -->

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 39/74

XHTML: Ejemplo39

XHTML

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 40/74

XQuery40

XQuery es el lenguaje de consultas para XML XQuery es para XML lo que SQL para bases de datos XQuery se construye con expresiones XPath

XQuery es suportado por los principales motoresde bases de datos (IBM, Oracle, Microsoft, etc.)

XQuery es W3C Recommendation XQuery es compatible con varios estandares W3C,

tales como XML, Namespaces, XSLT, XPath, yEsquemas XML

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 41/74

XQuery: Ejemplo41

Abrir un documento XML

Seleccionar elementos title 

Uso de predicados

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 42/74

Selección de nodos con FLWOR42

F or, Let, W here, O rder by, R eturn 

For selecciona elementosWhere especifica predicados para elementos

seleccionadosOrder by define el ordenReturn especifica lo que debería ser regresado

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 43/74

FLWOR + HTML43

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 44/74

Una consulta más compleja44

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 45/74

XPath45

Es una recomendación W3C construido para XML Usado en otras especificaciones (XSLT, XPointer)

Documento XML ⇔ árbol de nodos Lenguaje expresivo para seleccionar partes de una árbol

Técnicamente, es un lenguaje de ―direccionamiento‖(addressing ) La forma en que XPath describe rutas (paths ) a los

elementos es similar a la forma que un sistemaoperativo describe rutas a los archivos

Directorio actual, directorio padre, etc. XPath es casi un pequeño lenguaje de programación;

contiene funciones, tests y expresiones

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 46/74

XPath: Sintaxis Básica46

 / = root del árbol  /quotes = elemento root 

. = elemento actual .. = padre del elemento actual  /quotes/stock/name = nombre de cada stock dentro de portfolio 

(absolute path) stock = cada stock hijo del elemento actual (relative path)  /quotes/stock/* = todos los hijos de cada elemento stock dentro de

portfolio 

 /quotes//name = todos los elementos name descendientes del

elemento quotes   //name = todos los elementos name en cualquier parte del árbol  //text() = todos los elementos PCDATA en cualquier parte del árbol

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 47/74

XPath: Sintaxis47

Secuencia de pasos de localización: (ejes, nodo-test, predicados) Ejes: selecciona partes de un árbol relativo al nodo contextual Nodo-test: tipos de nodos seleccionados Predicados: expresiones arbitrarias de refinado

 / descendant::stock[symbol="NT"]

Operadores especiales entre rutas de localización Padre-hijo: /  Ancestro-descendiente: //  Comodín: *

Nombres cortos y largos  /child::stock ≡ /stock

 /attribute::type ≡ /@type Resultadp: node-set, boolean, number, string

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 48/74

XPath: Ejemplos48

 /quotes/stock/symbol  //symbol  /quotes/*/name  //text()  //stock/symbol[text()="NT"]  //stock/price[text()>15]  //stock[price/text()>15]/symbol  //stock[following-sibling::price/text()>15]/symbol  //*[count(stock)=2]  //*[count(*)=3]  /*/stock[position()=last()]

 /*/stock[position()>1]  //stock/*[symbol or price][position()=last()]  //stock[@exchange="nyse"]  //*[starts-with(name(),'s')]

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 49/74

XPath: Ejemplos (continuación)49

XPEs representan arboles

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 50/74

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 51/74

Arquitectura de Translación51

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 52/74

XSLT: Ejemplo simple52

Fuente

Salida

J. Calderón | Agosto 2010

XSLT Stylesheet 

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 53/74

XSLT: Funcionamiento53

El documento XML (texto) es leido y almacenadocomo un árbol de nodos La plantilla <xsl:template match="/"> es usada para

seleccionar el árbol entero Las reglas de la plantilla son aplicadas a los nodos que

cumple con la correspondencia (matching nodes )cambiando la estructura del árbol XML

Si hay otras plantillas, deben explícitamente llamadas dela plantilla principal

Las partes del árbol XML sin correspondencia con las

reglas (unmatched ) no son cambiadas Después de aplicar la plantilla, es árbol es rescrito

como documento de texto

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 54/74

XSLT: xsl:value-of54

Sintaxis:<xsl:value-of select="XPath expression" />

Selecciona el contenido de un elemento y loagrega en el flujo de salida (output stream ) El atributo select es requerido Note que el elemento no es un contenedor, por lo

tanto necesita terminar con una diagonal (slash ) Example:

<xsl:value-of select="title" /><xsl:value-of select="title/text()" /><xsl:value-of select="./title" />

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 55/74

XSLT: xsl:for-each55

Sintaxis:<xsl:for-each select="XPath expression">

Text to insert and rules to apply</xsl:for-each>

Declaración loop  Itera los nodos seleccionados por la expresión XPath y aplica en

cada nodo las reglas especificadas Ejemplo:

<ul><xsl:for-each select="//book">

<li><xsl:value-of select="title" /></li></xsl:for-each>

</ul>

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 56/74

XSLT: xslt:if56

Sintaxis:<xsl:if test="Test expression">

Text to insert and rules to apply if true</xsl:if>

Declaración test  Permite incluir contenido dada una condición (en el atributo test)

Ejemplo:<ul><xsl:for-each select="//book">

<xsl:if test="author='Shakespeare'">

<li><xsl:value-of select="title"/></li></xsl:if></xsl:for-each></ul>

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 57/74

XSLT: Otras Reglas57

xsl:choose...xsl:when...xsl:otherwise equivalente aswitch...case...default

xsl:sort ordena los nodos seleccionados xsl:text permite controlar la salida de texto (e.j.,

preservar espacios) xsl:apply-templates aplica una plantilla de reglas

al elemento actual o a sus hijos (modulación)

xsl:number inserta un número formateado dentrodel árbol resultante Y muchas más...

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 58/74

XSLT: Otro Ejemplo58

XSLT Stylesheet

Salida

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 59/74

Base de Datos XML59

XML DB Estructura de árbol Similar a un documento XML enorme Provee una vista enriquecida XML de datis

relacionales Navegación en árbol XPath

Principales proveedores de bases de dato XML Tamino (comercial) Xindice, eXist, 4Suite, and ozone (código abierto)

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 60/74

Base de Datos XML Nativa60

Define un modelo (lógico) para un documentoXML y almacena/recupera documentos deacuerdo a tal modelo Mínimo, el modelo debe incluir elementos, atributos,

PCDATA y el orden Su unidad básica de almacenamiento (lógica) es

un documento XML, igual que los renglones enlas tablas de bases de datos relacionales

No requiere tener un modelo especifico de

almacenaje físico Puede ser construido como relacional, jerárquico,

orientado a objetos o usar un formato propietario

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 61/74

¿Por qué usar DB XML Nativas?61

Almacenaje directo de XML Datos semi-estructurados Facilidades de consultas a XML

Facilita acoplar aplicaciones Flexibilidad y capacidad para cambios Pero… no es un remplazo de RDBMS

Falta de madurezMecanismos limitados de consulta/reportes

comparado con los mecanismos relacionales

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 62/74

Almacenaje de XML en RDBMS62

Primera propuesta: un CLOB La DB completa almacenada como valorMuy fácil de implementar

Sentencias SQL no pueden ser usados paraconsultas Segunda propuesta: mapeo de relaciones Sentencias SQL pueden ser usadas

La transformación es compleja y engorrosa El mapeo pierde meta-datos estructurales El mapeo de esquemas complejos es muy lento

J. Calderón | Agosto 2010

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 63/74

1. DB XML Nativa: eXist63

eXist: Código abierto Varias formas de implementarla (deployed )

fácilmente Proceso Stand-alone en el servidor

Dentro de un motor de servlet Incrustada directamente en la aplicación

Fuerte integración con las herramientas paradesarrollo de XML

Escrita completamente en Java Java Binding, módulos de extensión, soporteHTTP

J. Calderón | Agosto 2010

DB XML N i Xi

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 64/74

1. DB XML Nativa: eXist64

Manipulación de Base de Datos Transformaciones XSL

Funciones de búsqueda Full-text

Eficiente procesamiento XQuery basado en índice El soporte de XQuery hace posible escribir

aplicaciones Web completas sólo con XQuery y XSLT Los archivos XQuery pueden ser pasados

directamente a la DB, usando XQueryServlet yXQueryGenerator para Cocoon o la REST API

J. Calderón | Agosto 2010

2 SQL S 2000 SQLXML

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 65/74

2. SQL Server 2000: SQLXML65

Tecnología de mapeo de Microsoft (y más…) Incluida en el SQL Server 2000

Provee un vista XML enriquecida de datarelacionales

Semi-estructurada, vista jerárquica datos planosralecionales

Vista Two-way: query y update

Múltiples mecanismos de acceso (HTTP, ADO,ADO.NET, SOAP) Soporte Middle-tier y server side

J. Calderón | Agosto 2010

2 T l í Q /U d

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 66/74

2. Tecnologías Query/Update66

FOR XML (raw, auto, nested, explicit ) Extensión del lenguaje SQL para recuperar XML en vez de

conjuntos de renglones Vistas XML (views )

Trabajan con una DB relacional como si fuera un archivoXML (mediante anotaciones de esquema)

Bulkload (carga en bulto) Desmenuza archivos XML de gran tamaño en las tablas

existentes

Updategrams  Actualización mediante vistas XML

Soporta consultas XPath

J. Calderón | Agosto 2010

2 A i

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 67/74

2. Arquitectura67

J. Calderón | Agosto 2010

2 Vi t ( i ) XML

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 68/74

2. Vistas (views ) XML68

Mapeo entre datos relacionales y XML Declarativa No-invasivaNo cambia las fuentes de datosNo requiere control el DB Server

XML View es un esquema XML

Soporta XSD y XDR

J. Calderón | Agosto 2010

2 Ej l d M D f lt

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 69/74

2. Ejemplo de Mapeo Default69

J. Calderón | Agosto 2010

2 Ej l d M E li it

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 70/74

2. Ejemplo de Mapeo Explicito70

J. Calderón | Agosto 2010

XQ A t li i

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 71/74

XQuery para Actualizaciones71

XQuery Update Facility es una extensión parael XML Query language XQuery para proveerexpresiones que pueden ser usadas para

hacer cambios a instancias de XQuery 1.0 yXPath 2.0 Data Model

Se convierte en Recomendación CandidataW3C en Marzo del 2008

J. Calderón | Agosto 2010

Má E tá d XML

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 72/74

Más Estándares XML72

XPointer Apunta a partes de documentos XML:

document#xpointer( xpath-expression )

SOAP: Simple Object Access Protocol  Invoca Servicios Web usando XMLUsado en .NET

Y muchos más…http://www.w3.org/ 

J. Calderón | Agosto 2010

N t Fi l

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 73/74

Notas Finales73

La Web se trata de datos, no de protocolos El XML es universal, un formato de datos oblicuo

Versiones nuevas del HMTL serán XML (use XHTML ya) Rango amplio de herramientas para procesar datos XML

La Web esta convirtiéndose en un lugar donde losdatos pueden ser compartidos y procesados porherramientas automáticas de la misma manera enque lo hacen las personas: La Web Semántica "The Semantic Web is an extension of the current web in

which information is given well-defined meaning, betterenabling computers and people to work in cooperation." —Tim Berners-Lee, James Hendler, Ora Lassila, TheSemantic Web, Scientific American, May 2001

J. Calderón | Agosto 2010

R f i

8/4/2019 XML Data Formats Full

http://slidepdf.com/reader/full/xml-data-formats-full 74/74

Referencias74

Curso Web Engineering impartido porOmar ABOU KHALED Elena MUGELLINI

Pascal FELBER,

en la Universidad de Neuchâtel