conceptos generales. lenguaje xml (extensible markup language) definido por la w3c, a traves de una...
TRANSCRIPT
XMLConceptos Generales
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
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)
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
Orígenes
SGML (Standard Generalized Markup Language)
HTML (Hyper-Text Markup Language)XML (eXtensible Markup Language)
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
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.
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:
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>
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
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.
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>
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>
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>
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
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
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
Estructura de un documento XML
Otras líneas dentro del documento XML
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
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">
Estructura de un documento XML: Prólogo
Definición de la DTD dentro del documento XML
DTD Interna
Declaración del tipo de documento:
Estructura de un documento XML: Prólogo
standalone=“no”(valor por defecto)
DTD Externa Privada
Declaración del tipo de documento:
Estructura de un documento XML: Prólogo
DTD Externa Publica
Declaración del tipo de documento:
Estructura de un documento XML
La estructura general de un documento XML está formada por dos partes:
1. Prólogo
2. Cuerpo
Estructura de un documento XML: Cuerpo
Está constituido por todo lo que aparece entre la etiqueta de inicio y final del elemento raíz
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
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
Documentos XML: Comentarios
Los comentarios no se procesan. Están delimitados por “<!--" y “-->”
Ejemplo:
○ <!-- Esto es un comentario -->
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.
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.○ & &○ < <○ > >○ ' ’○ " “
Ejemplo: ○ Se quiere representar el nombre de la empresa CO&CO
<empresa>CO&CO</empresa>
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>]]>
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.
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>
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>
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 )
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)
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
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
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
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
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>
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
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
XML
Conceptos Generales:
•XML•Orígenes•Estructura de Datos XML
• Documentos XML: Elementos, Atributos, etc.• SGBD con Soporte XML