Conceptos Generales. Lenguaje XML (eXtensible Markup Language) Definido por la W3C, a traves de una...

44
XML Conceptos Generales

Transcript of Conceptos Generales. Lenguaje XML (eXtensible Markup Language) Definido por la W3C, a traves de una...

Page 1: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

XMLConceptos Generales

Page 2: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Lenguaje XML (eXtensible Markup Language) Definido por la W3C, a traves de una recomendación

(World Wide Web Consortium: Comunidad internacional que desarrolla estándares para la Web)

Su desarrollo se comenzó en 1996 y la primera versión salió a la luz el 10 de febrero de 1998.

Al igual que HTML, es un Lenguaje de Marcas que se deriva del SGML

Las etiquetas no son predefinidas, las define el usuario

Es auto descriptivo, permitiendo al receptor entender la información recibida y, por lo tanto, procesarla

Tiene el formato de un archivo de texto plano, lo que facilita enormemente la transferencia de información, logrando independencia con respecto a las diferentes plataformas y protocolos

Es el estándar para la representación e intercambio de datos

Page 3: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Lenguaje XML Extensibilidad:

formato extensible no tiene etiquetas predefinidas

Estructura: formato abierto no necesariamente compacto (no fue diseñado para ahorrar espacio

en disco, o temas relacionados al ancho de banda) se comprime bastante bien usando herramientas comunes de

compactación de datos

Flexibilidad y adhesión opcional a un esquema específico: requerimientos de sintaxis obligatorios opcionalmente puede adherir a una estructura específica (DTD

(Data Type Definition) y Esquema XML (Schema Definition)

Page 4: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Lenguaje XML XML es un metalenguaje, ya que permite definir otros

lenguajes que definen la estructura y el contenido de documentos

Lenguajes basados en XML: Chemical Markup Language (CML)

Mathematical Markup Language (MathML)

Channel Definition Format (CDF)

Synchronized Multimedia Integration Language (SMIL)

XHTML

Scalable Vector Graphics (SVG)

SOAP y WSDL

VoiceML

Wireless Markup Language (WML)Es el estándar para la representación e intercambio de datos

Page 5: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Orígenes

SGML (Standard Generalized Markup Language)

HTML (Hyper-Text Markup Language)XML (eXtensible Markup Language)

Page 6: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Orígenes

Presentación de Datos Representación de Datos

HTML Etiquetas Fijas Usado para generar

paginas web

XML Etiquetas definidas por el

usuario Usado para representar

datos

Page 7: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Familia de TecnologíasEntre otras, se mencionan aquí:

DTD (Document Type Data) y XSD (Esquema XML): Lenguaje que permiten definir una estructura particular para documentos XML.

XPath: Es un lenguaje que permite buscar y seleccionar teniendo en cuenta la estructura jerárquica del XML.

XQuery: Es un lenguaje de consulta diseñado para extraer y manipular información con formato XML. Tiene una forma similar al lenguaje SQL.

XSL (eXtensible Stylesheet Language): Es un lenguaje declarativo, basado en XML, usado para definir la transformación y presentación de documentos XML en otros documentos XML, de texto o HTML.

SQL/XML: Es una extensión del lenguaje SQL, estándar de las base de datos relacionales, que le confiere la capacidad de manipular datos XML.

Page 8: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de los datos XML

ESPECIALISTA EN EL TEMA

HC 334455 es el número de historia clínica de un paciente,

Neumología es un punto de asistencia ambulatorio para las consultas externas de un hospital y

Bronquitis aguda es un diagnóstico.

APLICACIÓN

No podría capturar la semántica asociada

"Con fecha 30.05.00, remito el paciente J.J.C. HC 334455 a Neumología por presentar bronquitis aguda con

broncoespasmo"

Consideremos la siguiente expresión:

Page 9: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de los datos XML Ahora, con formato XML:

Las marcas XML añaden el contexto necesario para que los datos contenidos en el documento

puedan ser entendidos y, por lo tanto procesados,

tanto por personas como por aplicaciones informáticas.

<Derivacion> <FechaEntrada>30.05.00</FechaEntrada> <Paciente>HC334455</Paciente> <Servicio>Neumología</Servicio> <Diagnostico>bronquitis aguda</Diagnostico></Derivacion>

Page 10: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de los datos XML: Elementos

El constructor fundamental es el elemento.

Un elemento está identificado por una etiqueta de inicio, de la forma <etiqueta>, y por una etiqueta final coincidente, de la forma </etiqueta>. Ejemplo:

<titulo> Fundamentos de Bases de Datos</titulo>

Así, este elemento está compuesto por:○ el par de etiquetas de inicio <titulo> y finalización </titulo> y ○ el texto que aparece entre ellas, y representa el dato asociado a

ese elemento

Page 11: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de los datos XML : Elementos

Las etiquetas: Deben comenzar con una letra, guión de subrayado (_), o dos puntos

(:).

No pueden contener: espacios en blancos, Signo de mayor: >, Signo de menor: <,ampersand: &, Apóstrofe: ‘, comilla: “ (*)

Pueden estar seguidas por cualquier número de letras, dígitos, guiones y puntos adicionales.

Existe una distinción entre mayúsculas y minúsculas

(*) Estos caracteres prohibidos se reemplazan por entidades o se incluyen en secciones CDATA.

Page 12: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de los datos XML : Elementos

Las etiquetas pueden estar anidadas, es decir, los elementos definidos pueden estar contenidos dentro de otros elementos (subelementos). Es decir, cada etiqueta que abre debe estar aparejada con una única etiqueta que cierra en el contexto del elemento en cuestión.

Anidamiento correcto<ETIQ1> … <ETIQ2>… <ETIQ3> … </ETIQ3> … </ETIQ2> … </ETIQ1>

Anidamiento incorrecto <ETIQ1> … <ETIQ2>… <ETIQ3> … </ETIQ1> … </ETIQ3> … </ETIQ2>

Page 13: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de los datos XML : Atributos

Un elemento puede contener atributos, éstos representan propiedades o características de dichos elementos.

Los atributos se definen dentro de las etiquetas de inicio. De la forma, <etiqueta atributo1 =”valor” > </etiqueta>.

Ejemplo:○ <libro ISBN=“84-415-0845-3”>Fundamentos de Bases de Datos</libro>

Page 14: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de los datos XML : Atributos

 

El valor asociado a un atributo debe estar encerrado entre comillas simples o dobles.

Un elemento puede tener varios atributos, pero el nombre de cada atributo puede aparecer sólo una vez.

Ejemplo:

○ <libro ISBN=“84-415-0845-3” Ejemplares=“10”>Fundamentos de Bases de Datos</libro>

Page 15: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XML: Documento Bien Formado

Un sólo elemento raíz

Etiquetas adecuadas anidadas correctamente

Atributos no repetidos dentro de los elementos

Page 16: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XML Ejemplo:

Único Elemento RaízEtiquetas correctas

Correcto anidam.

Documento XML bien formado

Elemento libro

Elemento libro

Etiqueta de apertura y cierre

Page 17: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XMLProceso de Verificación (Bien Formado) de un Documento

Editor o Analizador XML

(Parser)

Documento Analizado o Parseado

Error!!! Documento mal formadoDOM, SAX

XML Copy EditorAltova XMLSpy

Page 18: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XML

Otras líneas dentro del documento XML

Page 19: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XML

La estructura general de un documento XML está formada por dos partes:

1. Prólogo:a) Declaración XML

b) Declaración del tipo de documento

2. Cuerpo

Page 20: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XML: Prólogo

a) Declaración XML (opcional): Indica la versión de XML utilizada en el documento Informa la codificación empleada para representar los caracteres Indica si el documento es autónomo o no

Ejemplo: <?xml versión= “1.0” encoding= “ISO-8859-1” standalone= “yes”?> 

○ Valor por defecto encoding "UTF-8”○ Valor por defecto standalone “no”

b) Declaración del tipo de documento (opcional)

Ejemplo: <!DOCTYPE biblioteca SYSTEM "D:\biblioteca.dtd">

Page 21: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XML: Prólogo

Definición de la DTD dentro del documento XML

DTD Interna

Declaración del tipo de documento:

Page 22: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XML: Prólogo

standalone=“no”(valor por defecto)

DTD Externa Privada

Declaración del tipo de documento:

Page 23: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XML: Prólogo

DTD Externa Publica

Declaración del tipo de documento:

Page 24: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XML

La estructura general de un documento XML está formada por dos partes:

1. Prólogo

2. Cuerpo

Page 25: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructura de un documento XML: Cuerpo

Está constituido por todo lo que aparece entre la etiqueta de inicio y final del elemento raíz

Page 26: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML

Dentro de los documentos XML se pueden encontrar:

1. Instrucciones de procesamiento (Processing Instructions – PI)

2. Declaraciones de tipo de documento

3. Comentarios

4. Elementos y atributos

5. Referencias a entidades

6. Secciones CDATA

Page 27: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: PI Señalan alguna referencia o indicación a la aplicación que lo

usará.

Una instrucción de procesamiento comienza con <? y termina con ?>.

XML permite el uso de instrucciones de procesamiento en cualquier lugar del documento.

Ejemplos: <?xml-stylesheet type=”text/xsl” href=”5-2.xsl”?>

○ Indica que al documento XML se le asocia una hoja de estilo

<?xml version="1.0"?>○ Como ya se dijo, indica la versión de XML utilizada en el documento

Page 28: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Comentarios

Los comentarios no se procesan. Están delimitados por “<!--" y “-->”

Ejemplo:

○ <!-- Esto es un comentario -->

Page 29: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Elementos y Atributos

Los elementos aportan estructura semántica al documento.

Se delimitan por etiquetas de apertura, cierre y etiquetas sin elementos interiores (elemento vacio).

Las etiquetas de apertura y las vacías suelen venir acompañadas de atributos, que parametrizan el elemento.

El valor de los atributos siempre se encierra entre comillas, dobles o simples.

Page 30: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Referencias a entidades

Las referencias a entidades sirven para insertar un determinado contenido definido previamente.

Entidades predefinidas: Se utilizan para representar algunos caracteres reservados.○ &amp; &○ &lt; <○ &gt; >○ &apos; ’○ &quot; “

Ejemplo: ○ Se quiere representar el nombre de la empresa CO&CO

<empresa>CO&amp;CO</empresa>

Page 31: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Sección CDATA

La sección CDATA permite colocar texto que necesita no ser procesado por el editor. La sintaxis es la siguiente:

<![CDATA[Texto deseado]]>

No se pueden anidar secciones CDATA

El texto puede utilizar cualquier carácter (reservado o no)

Ejemplo:○ <![CDATA[if (c<10)]]>○ <![CDATA[<saludo>Hola, mundo!</saludo>]]>

Page 32: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Espacio de Nombres No son obligatorios en todos los documentos

Son útiles y esenciales cuando se utilizan etiquetas de diferentes orígenes, o que se quieran procesar de manera diferente

Resuelven conflictos cuando se utiliza la misma etiqueta para diferentes objetos Por ejemplo, resulta ambiguo que los elementos

personas, páginas y libros tengan el subelemento título.

Page 33: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Espacio de Nombres Los espacios de nombres solucionan problemas de homonimia

(elementos diferentes con el mismo nombre).

Eliminan ambigüedades calificando el nombre de los elementos.

Ejemplo:

Supongamos que en un mismo documento se debe registrar la capital geográfica de un país y el capital que una empresa invirtió en ese país. Es decir, necesitamos diferentes datos con nombres idénticos (en este caso "capital“).

<inversiones> <pais nombre=“España”>

<capital> Madrid </capital><capital> 200000€ </capital>

</pais> </inversiones>

Page 34: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Espacio de Nombres

La solución al problema es contextualizar cada elemento a un vocabulario

especifico que permita contextualizar el elemento. Así, para el ejemplo planteado

podríamos considerar:

Vocabulario geográfico (geog)Vocabulario propio de la bolsa (bolsa)

Entonces para identificar cada elemento unívocamente debiéramos calificar cada etiqueta con el nombre de su “espacio de nombres”:

<inversiones> <pais nombre=“España”>

<geog:capital> Madrid </capital><bolsa:capital> 200000€ </capital>

</pais> </inversiones>

Page 35: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Espacio de Nombres

El identificador del espacio de nombres debe ser único

¿Cómo asegurarlo?

Utilizando URIs (Uniform Resource Identifiers) como

identificadores

Volviendo al ejemplo:

Vocabulario geográfico (http://www.geog.com) Vocabulario propio de la bolsa (http://www.bolsa.com )

Page 36: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Espacio de Nombres

Ejemplo con las URIs:< http://www.bolsa.com : inversiones> < http://www.geog.com : pais nombre=“España”>

< http://www.geog.com :capital> Madrid </ http://www.geog.com : capital>< http://www.bolsa.com :capital> 200000€ </ http://www.bolsa.com capital>

</ http://www.geog.com : pais> < http://www.bolsa.com : /inversiones>

No es cómodo usar las URIs en cada etiqueta, entonces se usan alias que sean mas cómodos

(más cortas)

Page 37: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Espacio de Nombres

Ejemplo usando alias:

<bolsa:inversiones xmlns:bolsa=“http://www.bolsa.com” xmlns:geo=“http://www.geog.es”>

<geo:pais geo:nombre=“España”> <geo:capital> Madrid </geo:capital> <bolsa:capital> 200000 </bolsa:capital>

</geo:pais></bolsa:inversiones>

El alcance de un alias para un espacio de nombres

comprende desde la etiqueta de inicio de un elemento XML, en la que se declara, hasta la etiqueta final de dicho elemento XML.

Alias/Prefijo

Page 38: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Documentos XML: Espacio de Nombres

Ejemplo usando espacio de nombres por defecto:

<inversiones xmlns=“http://www.bolsa.com” xmlns:geo=“http://www.geog.es”>

<geo:pais geo:nombre=“España”> <geo:capital> Madrid </geo:capital> <capital> 200000 </capital>

</geo:pais></inversiones>

En este caso las etiquetas sin prefijo corresponden al espacio de nombres por defecto que es http://www.bolsa.com

Alias/Prefijo

Sin Alias

Page 39: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Document Object Model (DOM)

Documentos XML son tratados como un árbol de nodos

Cada elemento es un “nodo” Los elementos hijos, los atributos y el texto

contenido dentro de un elemento son subnodos

Page 40: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Document Object Model (DOM)

Características:

Documento se carga totalmente en memoria en una estructura de árbol

Ventaja: fácil acceder a datos en función de la jerarquía de elementos, así como modificar el contenido de los documentos e incluso crearlos desde cero.

Desventaja: coste en tiempo y memoria que conlleva construir el árbol

Page 41: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Document Object Model (DOM)

Ejemplo:<?xml version="1.0" encoding="UTF-8"?>

<DOCUMENT>

<GREETING>Hello from XML</GREETING>

<MESSAGE>Welcome to Programing XML in Java</MESSAGE>

</DOCUMENT>

Page 42: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

Estructuración de los datos y XML

Es posible clasificar los datos según su nivel de estructuración:

Datos estructurados: Representados en un formato estricto, como son los contenidos en las tablas relacionales.

Datos desestructurados: Hay una indicación muy limitada del tipo de datos (documentos de texto, archivos de video).

Datos semi-estructurados o poco estructurados: Se presentan los datos que tienen una cierta estructura pero no todos tienen exactamente la misma estructura (grafos).

XML permite describir y representar datos semi-estructurados de una manera más flexible que el

modelo de datos relacional

Page 43: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

SGBDs con soporte XML

Los datos XML son ampliamente usados, así es necesario almacenarlos y recuperarlos

Sistema de Gestión de BD que los soporten

Sistemas de Gestión de Bases de Datos Relacionales que extienden sus capacidades para soportar datos XML

SGBD XML nativos

Page 44: Conceptos Generales. Lenguaje XML (eXtensible Markup Language)  Definido por la W3C, a traves de una recomendación (World Wide Web Consortium: Comunidad.

XML

Conceptos Generales:

•XML•Orígenes•Estructura de Datos XML

• Documentos XML: Elementos, Atributos, etc.• SGBD con Soporte XML