XML Data Formats Full
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: ©right 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 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