• No se han encontrado resultados

Estándares XML y su Aplicación en la Tecnología Orientada a Servicios

N/A
N/A
Protected

Academic year: 2025

Share "Estándares XML y su Aplicación en la Tecnología Orientada a Servicios"

Copied!
59
0
0

Texto completo

(1)

XML y derivados:

XML y derivados:

Estándares para un paradigma Estándares para un paradigma tecnológico orientado a servicios tecnológico orientado a servicios

Francisco Ruiz González Francisco Ruiz González

Grupo Alarcos Grupo Alarcos

Departamento de Informática Departamento de Informática

Universidad de Castilla

Universidad de Castilla--La ManchaLa Mancha

octubre

octubre--20032003

(2)

XML y derivados XML y derivados

Estructura de la Presentación Estructura de la Presentación

• •

Orígenes del XMLOrígenes del XML

n

n SGMLSGML

n

n Problemas de HTML y SGMLProblemas de HTML y SGML

n

n Objetivos inicialesObjetivos iniciales

• •

Características del XMLCaracterísticas del XML

• •

Tipos de normas XMLTipos de normas XML

• •

ExtensionesExtensiones

n

n Estructuración de Estructuración de documentos

documentos

n

n Enlaces y direccionamientoEnlaces y direccionamiento

n

n Transformación y Transformación y presentación

presentación

n

n ConsultasConsultas

n

n ProgramaciónProgramación

n

n OtrasOtras

• •

Lenguajes horizontalesLenguajes horizontales

n

n SeguridadSeguridad

n

n Servicios webServicios web

n

n Metadatos y conocimientoMetadatos y conocimiento

n

n FormulariosFormularios

n

n OtrosOtros

• •

Lenguajes verticalesLenguajes verticales

• •

Opciones de futuroOpciones de futuro

• •

ConclusionesConclusiones
(3)

Orígenes del XML

Orígenes del XML - - SGML SGML

• • XML XML (e ( e Xtensible X tensible M M arkup L arkup Language anguage ) )

n

n

se plantea a mediados de los 90 por la necesidad de se plantea a mediados de los 90 por la necesidad de poder definir y manejar estructura interna en los poder definir y manejar estructura interna en los documentos HTML.

documentos HTML.

n

n

pero está basado en un estándar bastante anterior: pero está basado en un estándar bastante anterior:

SGML SGML (Standard Generalized Markup Language ( Standard Generalized Markup Language ) )

n

n con orígenes en los años 60 (IBM, GML).con orígenes en los años 60 (IBM, GML).

n

n estándar ISO 8879 en 1986.estándar ISO 8879 en 1986.

n

n

XML XML vs vs SGML SGML

n

n regla del 80/20regla del 80/20

80% de la funcionalidad 80% de la funcionalidad 20% de la complejidad.

20% de la complejidad.

(4)

Orígenes del XML Orígenes del XML

Problemas de HTML y SGML Problemas de HTML y SGML

HTML HTML

• •

ProblemasProblemas

n

n ExtensibilidadExtensibilidad

n

n Estructura lógicaEstructura lógica

n

n Intercambio de datosIntercambio de datos

n

n Reutilización de datosReutilización de datos

n

n No es orientado a objetosNo es orientado a objetos

n

n Gestión de enlaces rotosGestión de enlaces rotos

• •

BeneficiosBeneficios

n

n SimpleSimple

n

n No requiere herramientasNo requiere herramientas

n

n especialesespeciales

n

n ExtendidoExtendido

n

n Papel importante en auge de Papel importante en auge de Internet.

Internet.

SGML SGML

• •

ProblemasProblemas

n

n ComplejidadComplejidad

• •

BeneficiosBeneficios

n

n Reutilización de datosReutilización de datos

n

n Longevidad de la informaciónLongevidad de la información

n

n Integridad y mayor control Integridad y mayor control sobre los datos.

sobre los datos.

n

n Permite compartir Permite compartir información

información

n

n PortablePortable

n

n FlexibleFlexible

(5)

Orígenes del XML Orígenes del XML

Objetivos iniciales Objetivos iniciales

• • Cuando se comienza a trabajar en Cuando se comienza a trabajar en 1996, los objetivos 1996 , los objetivos de diseño de XML eran:

de diseño de XML eran:

n

n debe ser utilizable directamente sobre Internet (navegadores). debe ser utilizable directamente sobre Internet (navegadores).

n

n debe soportar una amplia variedad de aplicaciones. debe soportar una amplia variedad de aplicaciones.

n

n debe ser compatible con SGML. debe ser compatible con SGML.

n

n debe ser fácil procesar documentos XML. debe ser fácil procesar documentos XML.

n

n el número de características opcionales debe ser mínimo, y a el número de características opcionales debe ser mínimo, y a ser posible cero.

ser posible cero.

n

n los documentos XML deben ser legibles por un humano y los documentos XML deben ser legibles por un humano y razonablemente claros.

razonablemente claros.

n

n la especificación de XML debe ser formal y concisa. la especificación de XML debe ser formal y concisa.

n

n los documentos XML deben ser fáciles de crear. los documentos XML deben ser fáciles de crear.

n

n la brevedad en la marcación tiene poca importancia.la brevedad en la marcación tiene poca importancia.

(6)

Características del XML Características del XML (i) (i)

• • XML es una XML es una idea simple, no nueva, pero idea simple , no nueva, pero tremendamente útil

tremendamente útil porque ... porque ...

n

n ha llegado en un ha llegado en un momento adecuadomomento adecuado para sacar partido de para sacar partido de diversas tecnologías (Internet, Web, ...)

diversas tecnologías (Internet, Web, ...)

n

n y poder abordar de y poder abordar de nuevas maneras, más adecuadas y nuevas maneras, más adecuadas y potentes, problemas importantes:

potentes, problemas importantes:

n

n Integración de datosIntegración de datos estructurados (tablas relacionales) y poco estructurados (tablas relacionales) y poco estructurados (documentos).

estructurados (documentos).

n

n Aportar significado a la webAportar significado a la web (web semántica).(web semántica).

n

n Integración de sistemasIntegración de sistemas de información basados en tecnologías de información basados en tecnologías diferentes.

diferentes.

n

n Hacer una Hacer una web orientada a las aplicacionesweb orientada a las aplicaciones (web (web servicesservices) en vez ) en vez de una web orientada sólo a la interacción con personas (HTML).

de una web orientada sólo a la interacción con personas (HTML).

(7)

Características del XML Características del XML (ii) (ii)

• • XML es XML es

n

n Un lenguaje de marcasUn lenguaje de marcas (etiquetas delimitadas)(etiquetas delimitadas)

n

n para definir nuevos lenguajes (un metalenguajepara definir nuevos lenguajes (un metalenguaje))

• • Con las siguientes características principales Con las siguientes características principales: :

n

n Versátil: separa contenido, estructura y presentaciónVersátil: separa contenido, estructura y presentación

n

n Extensible: se pueden definir nuevas etiquetasExtensible: se pueden definir nuevas etiquetas

n

n EstructuradoEstructurado: se pueden modelar datos a cualquier nivel de : se pueden modelar datos a cualquier nivel de complejidad

complejidad

n

n ValidableValidable: cada documento se puede validar frente a un : cada documento se puede validar frente a un DTD/SchemaDTD/Schema, o en su defecto, se puede declarar bien formado. , o en su defecto, se puede declarar bien formado.

n

n Abierto: Abierto: independiente de plataformas, empresas, lenguajes de independiente de plataformas, empresas, lenguajes de programación o entornos de desarrollo

programación o entornos de desarrollo..

n

n SencilloSencillo: fácil de aprender y de usar. : fácil de aprender y de usar.

(8)

Características del XML

Características del XML (iii) (iii)

• • Otras características adicionales Otras características adicionales de XML son: de XML son:

n

n Independencia del medioIndependencia del medio, pudiendo publicar contenidos en , pudiendo publicar contenidos en múltiples formatos.

múltiples formatos.

n

n Los documentos XML son Los documentos XML son fácilmente fácilmente procesablesprocesables y y compartibles en Internet.

compartibles en Internet.

n

n Permite Permite validaciónvalidación de los documentos.de los documentos.

n

n Permite Permite composicióncomposición de los documentos.de los documentos.

n

n Puede ser un Puede ser un contenedor de datos. Utilizando DTD o XML contenedor de datos. Utilizando DTD o XML Schemas

Schemas se puede representar eficientemente cualquier dato se puede representar eficientemente cualquier dato de forma que puede ser leído por personas o aplicaciones.

de forma que puede ser leído por personas o aplicaciones.

n

n InternacionalInternacional: utiliza el conjunto de caracteres UNICODE.: utiliza el conjunto de caracteres UNICODE.

n

n Ayuda a descongestionar Internet, ya que gran parte del Ayuda a descongestionar Internet, ya que gran parte del procesamiento se puede hacer en el cliente.

procesamiento se puede hacer en el cliente.

n

n XML no es compatible con HTML, pero los documentos XML no es compatible con HTML, pero los documentos HTMLv4

HTMLv4.0 son fácilmente convertibles a XML..0 son fácilmente convertibles a XML.

(9)

Tipos de normas XML Tipos de normas XML

• • Extensiones Extensiones del propio XML del propio XML

n

n Amplían las capacidades del XML original, no son un lenguaje Amplían las capacidades del XML original, no son un lenguaje XML en sentido estricto.

XML en sentido estricto.

n

n Se definen de forma similar al XML original, como un Se definen de forma similar al XML original, como un subconjunto de SGML.

subconjunto de SGML.

n

n Todas ellas deben ser compatibles entre sí.Todas ellas deben ser compatibles entre sí.

• • Lenguajes Lenguajes XML (Aplicaciones XML) XML (Aplicaciones XML)

n

n Lenguajes definidos en base a XML y sus extensiones.Lenguajes definidos en base a XML y sus extensiones.

n

n Cada lenguaje se define mediante una gramática que consiste Cada lenguaje se define mediante una gramática que consiste en un tipo de documento XML (DTD o XSD).

en un tipo de documento XML (DTD o XSD).

n

n Pueden ser:Pueden ser:

n

n HorizontalesHorizontales: resuelven cierta funcionalidad que es útil en general.: resuelven cierta funcionalidad que es útil en general.

SOAP (SOAP (Simple Simple ObjectObject Access Access ProtocolProtocol))

(10)

Extensiones Extensiones

• • El éxito de XML ha originado que se demanden El éxito de XML ha originado que se demanden nuevas funcionalidades

nuevas funcionalidades , que se abordan , que se abordan definiendo

definiendo extensiones adicionales extensiones adicionales para: para:

n

n

Estructurar documentos Estructurar documentos (XML ( XML Schema Schema ). ).

n

n

Enlaces y direccionamiento Enlaces y direccionamiento ( ( XPath XPath , , XLink XLink , , XPointer XPointer ). ).

n

n

Transformación y presentación Transformación y presentación (familia XSL, CSS2 (familia XSL, CSS2). ).

n

n

Consultas Consultas (XQuery ( XQuery). ).

n

n

Programación Programación (DOM, SAX ( DOM, SAX ). ).

n

n

Otros Otros ( ( Namespaces Namespaces , , XInclude XInclude , , XBase XBase , ...). , ...).

(11)

Extensiones Extensiones

Estructuración de documentos Estructuración de documentos (i) (i)

• • La La gramática gramática de los lenguajes XML, es decir, la de los lenguajes XML, es decir, la estructura y elementos permitidos en los documentos estructura y elementos permitidos en los documentos XML, se define mediante

XML, se define mediante

n

n DTD (Document Type DefinitionDTD (Document Type Definition))

n

n Documento ASCII plano que especifica tanto los elementos que Documento ASCII plano que especifica tanto los elementos que forman un tipo de documento dado, como las relaciones que se forman un tipo de documento dado, como las relaciones que se

dan entre ellos.

dan entre ellos.

n

n XSD (XML XSD (XML Schema DefinitionSchema Definition))

n

n Mejoran los DTD’s porque están escritos en XML y permiten Mejoran los DTD’s porque están escritos en XML y permiten nuevas características:

nuevas características:

definir tipos de datos,definir tipos de datos,

utilizar espacios de nombreutilizar espacios de nombre

definir intervalos de valores para los atributos y elementos.definir intervalos de valores para los atributos y elementos.

(12)

Extensiones Extensiones

Estructuración de documentos Estructuración de documentos (ii) (ii)

• • Un lenguaje XML (DTD/XSD) representa un Un lenguaje XML (DTD/XSD) representa un modelo de modelo de datos jerárquico

datos jerárquico

n

n Estructura los datos de acuerdo a un determinado “esquema Estructura los datos de acuerdo a un determinado “esquema semántico”.

semántico”.

• • Estos lenguajes se definen especificando los Estos lenguajes se definen especificando los elementos elementos y atributos permitidos

y atributos permitidos . .

n

n Esta especificación se realiza mediante reglas gramaticalesEsta especificación se realiza mediante reglas gramaticales..

n

n Un conjunto concreto y bien formado de tales reglas forman un Un conjunto concreto y bien formado de tales reglas forman un esquema XML

esquema XML (representado por un DTD o un XSD).(representado por un DTD o un XSD).

n

n Un esquema XML define un conjunto coherente de Un esquema XML define un conjunto coherente de documentos, es decir un

documentos, es decir un tipo de documentostipo de documentos..

• • Ejemplo: Ejemplo:

n

n XHTML es el lenguaje HTML reformulado como aplicación XML.XHTML es el lenguaje HTML reformulado como aplicación XML.

(13)

Extensiones Extensiones

Estructuración de documentos

Estructuración de documentos (iii) (iii)

• • Ejemplo de XML Ejemplo de XML Schema Schema

<<schema targetNamespaceschema targetNamespace=”http://=”http://wwwwww..bdbd.es/.es/schemaschema xmlns

xmlns=”http://=”http://wwwwww.w3..w3.orgorg/2001//2001/XMLSchemaXMLSchema xmlns

xmlns::bdbd=”http://=”http://wwwwww..bdbd.es/.es/schemaschema” >” >

<element name<element name=”Articulo=”Articulo” ” typetype=”=”bdbd::tArticulotArticulo” />” />

<complexType name<complexType name=”tArticulo=”tArticulo”>”>

<element name<element name=”Cabecera=”Cabecera” ” typetype=”=”bdbd::tCabeceratCabecera”/>”/>

<element name<element name=”Cuerpo=”Cuerpo” ” typetype=”=”bdbd::tCuerpotCuerpo”/>”/>

<element name<element name=”Final=”Final” ” typetype=”=”bdbd::tFinaltFinal”/>”/>

</

</complezType>complezType>

<complexType name<complexType name=”tCabecera=”tCabecera”>”>

<element name<element name=”Titulo=”Titulo” ” typetype=”=”stringstring”/>”/>

<element name<element name=”Autor=”Autor” ” typetype=”=”stringstring”/>”/>

</

</complexType>complexType>

(14)

Extensiones Extensiones

Enlaces y direccionamiento

Enlaces y direccionamiento – – XPath XPath (i) (i)

• • XML XML Path Language Path Language (XPath ( XPath ) ) es un lenguaje declarativo es un lenguaje declarativo para localizar nodos y fragmentos (texto, elementos, para localizar nodos y fragmentos (texto, elementos, atributos ...) en el árbol de un documento XML.

atributos ...) en el árbol de un documento XML.

• • Es utilizado por otras normas para Es utilizado por otras normas para

n

n Direccionamiento (XLinkDireccionamiento (XLink, , XPointerXPointer y XSLT)y XSLT)

n

n ““PatternPattern matching” (XSLT y matching” (XSLT y XQueryXQuery))

• • Se basa en el XPath Se basa en el XPath Data Model Data Model: :

n

n Un documento XML se representa como un árbol jerárquicoUn documento XML se representa como un árbol jerárquico con con siete tipos de nodos (raíz, elemento, texto, atributo, espacio d siete tipos de nodos (raíz, elemento, texto, atributo, espacio de e nombres, instrucción de procesamiento y comentario).

nombres, instrucción de procesamiento y comentario).

• • Conceptos importantes: Conceptos importantes:

n

n Caminos de localizaciónCaminos de localización / libro / capitulo / parrafo/ libro / capitulo / parrafo

n

n PredicadosPredicados

(15)

Extensiones Extensiones

Enlaces y direccionamiento

Enlaces y direccionamiento – – XPath XPath (ii) (ii)

• • Ejemplos XPath Ejemplos XPath : :

n

n Seleccionar nombres de ingredientes de receta que se utiliza Seleccionar nombres de ingredientes de receta que se utiliza media taza:

media taza:

//ingrediente[@cantidad='0.5'

//ingrediente[@cantidad='0.5' andand @unidad=taza]/@nombre@unidad=taza]/@nombre

n

n Seleccionar todos los capítulos públicos que tengan algún Seleccionar todos los capítulos públicos que tengan algún párrafo que contenga algún elemento con atributo

párrafo que contenga algún elemento con atributo hrefhref::

//capitulo[

//capitulo[parrafoparrafo/*[@href/*[@href]][@public]][@public='si']='si']

n

n Seleccionar todos los capítulos públicos que tengan algún Seleccionar todos los capítulos públicos que tengan algún párrafo importante o un apéndice:

párrafo importante o un apéndice:

//capitulo[

//capitulo[parrafoparrafo/[@importante=‘si’]]|//apendice/[@importante=‘si’]]|//apendice

(16)

Extensiones Extensiones

Enlaces y direccionamiento

Enlaces y direccionamiento – – XPointer XPointer

• • XPointer XPointer describe cómo se puede apuntar a un lugar describe cómo se puede apuntar a un lugar específico de un determinado documento XML.

específico de un determinado documento XML.

• • Es una extensión de Es una extensión de XPath XPath que permite asociar a una que permite asociar a una dirección URI con una expresión

dirección URI con una expresión XPath XPath con algunas con algunas propiedades extras.

propiedades extras.

http://

http://wwwwww.sitio.es/.sitio.es/docdoc..xmlxml##xpointer(xpointer( /libro/capitulo[@/libro/capitulo[@public]public] ))

• • Nuevos conceptos: Nuevos conceptos:

n

n Puntos (para trabajar a nivel de caracteres).Puntos (para trabajar a nivel de caracteres).

n

n Rangos (para trabajar a nivel de palabras, Rangos (para trabajar a nivel de palabras, subcampossubcampos de de fechas, ..).

fechas, ..).

(17)

Extensiones Extensiones

Enlaces y direccionamiento

Enlaces y direccionamiento – – XLink XLink (i) (i)

• • XLink XLink (XML ( XML Linking Language) define la forma en la que Linking Language ) define la forma en la que los documentos XML se pueden relacionar entre sí los documentos XML se pueden relacionar entre sí definiendo nuevos tipos de elementos XML que definiendo nuevos tipos de elementos XML que representan enlaces (links).

representan enlaces (links).

n

n Utiliza XPointer Utiliza XPointer para localizar recursos.para localizar recursos.

n

n Características especiales:Características especiales:

n

n Uso de “alias”.Uso de “alias”.

n

n Asociaciones entre más de 2 recursos (enlaces Asociaciones entre más de 2 recursos (enlaces multidireccionalesmultidireccionales).).

n

n Un origen y varios destinos.Un origen y varios destinos.

n

n Enlaces agregados (varios orígenes, un sólo destino)Enlaces agregados (varios orígenes, un sólo destino)

n

n Asociar metadatos a un enlace.Asociar metadatos a un enlace.

n

n Expresar enlaces que residen fuera de los recursos enlazados.Expresar enlaces que residen fuera de los recursos enlazados.

(18)

Extensiones Extensiones

Enlaces y direccionamiento

Enlaces y direccionamiento – – XLink XLink (ii) (ii)

• • Existen 2 tipos Existen 2 tipos de enlaces: de enlaces:

n

n SimplesSimples

<AUTOR

<AUTOR xlinkxlink::hrefhref="="autores.xmlautores.xml##juanjuan" " xlink:show="xlink:show="new">new">

<NOMBRE>

<NOMBRE>Juan Primero SegundoJuan Primero Segundo</NOMBRE></NOMBRE>

</AUTOR>

</AUTOR>

n

n ExtendidosExtendidos

<EDITOR_AUTOR

<EDITOR_AUTOR xlinkxlink:extended>:extended>

<<xlinkxlink::locator hreflocator href="#="#anaana" id="editor"/>" id="editor"/>

<<xlinkxlink::locator hreflocator href="="autores.autores.xmlxml##juanjuan" id="" id="autorautor"/>"/>

<<xlinkxlink:arc :arc fromfrom="="editoreditor" " toto="="autorautor" show="" show="replacereplace"/>"/>

</EDITOR_AUTOR xlink:extended>:extended>

(19)

Extensiones Extensiones

Transformación y Presentación

Transformación y Presentación – – XSL XSL (i) (i)

• • XSL (e XSL ( eX Xtensible tensible Stylesheet S tylesheet Language L anguage ) no sólo permite ) no sólo permite definir el estilo a aplicar a cada elemento XML. También definir el estilo a aplicar a cada elemento XML. También es un lenguaje de programación para transformar es un lenguaje de programación para transformar documentos XML.

documentos XML.

(20)

Extensiones Extensiones

Transformación y Presentación

Transformación y Presentación – – XSL XSL (ii) (ii)

• • El resultado puede ser un documento HTML, WML El resultado puede ser un documento HTML, WML (para WAP), texto plano, RTF, PDF, o incluso otro (para WAP), texto plano, RTF, PDF, o incluso otro documento XML.

documento XML.

• • Utiliza XPath Utiliza XPath para referir partes de documentos XML. para referir partes de documentos XML.

• • Anteriormente XSL eran 2 estándares separados: Anteriormente XSL eran 2 estándares separados:

n

n XSL XSL TransformationsTransformations (XSLT):(XSLT): lenguaje de programación para lenguaje de programación para transformar documentos XML.

transformar documentos XML.

n

n XSL XSL Formatting ObjectsFormatting Objects (XSL(XSL--FO):FO): vocabulario para definir vocabulario para definir cómo presentar un documento XML.

cómo presentar un documento XML.

• • El vocabulario de objetos de formato (elementos de El vocabulario de objetos de formato (elementos de tipo “

tipo “fo fo:”) representa el conjunto de abstracciones :”) representa el conjunto de abstracciones tipográficas disponibles.

tipográficas disponibles.

(21)

Extensiones Extensiones

Transformación y Presentación

Transformación y Presentación – – XSL XSL (iii) (iii)

• •

Una hoja de estilo XSL es una serie de Una hoja de estilo XSL es una serie de reglasreglas que determinan que determinan como va a ocurrir la transformación.

como va a ocurrir la transformación.

• •

Cada regla se compone de un patrón de localización (Cada regla se compone de un patrón de localización (pattern) y pattern) y una plantilla (

una plantilla (templatetemplate).).

<

<xslxsl::templatetemplate match="/">match="/">

<HTML>

<HTML>

<BODY>

<BODY>

<

<xslxsl::forfor--each selecteach select="/LIBROS/LIBRO">="/LIBROS/LIBRO">

Título:

Título:

<

<xslxsl::valuevalue--of selectof select="TITULO"/><BR/>="TITULO"/><BR/>

Autor:

Autor:

<

<xslxsl::valuevalue--of selectof select="AUTOR"/><BR/>="AUTOR"/><BR/>

Precio:

Precio:

<

<xslxsl::valuevalue--of selectof select="PRECIO"/> pesetas<BR/>="PRECIO"/> pesetas<BR/>

</

</xslxsl::forfor--eacheach>>

</BODY>

</BODY>

(22)

Extensiones Extensiones

Transformación y Presentación

Transformación y Presentación – – XSL XSL (iv) (iv)

• • Ventajas Ventajas de usar hojas de estilo XML: de usar hojas de estilo XML:

n

n Centralizar la forma de presentación (formato)Centralizar la forma de presentación (formato)

n

n Separar estructura Separar estructura óó contenidocontenido

n

n Reutilización de datosReutilización de datos

n

n Diferentes formatos de salida para los mismos datosDiferentes formatos de salida para los mismos datos

n

n Unificar el estilo de presentaciónUnificar el estilo de presentación

(23)

Extensiones Extensiones

Transformación y Presentación

Transformación y Presentación – – CSS2 CSS2

• • CSS2 CSS2 (Cascading Style Sheets level ( Cascading Style Sheets level 2) es una nueva 2 ) es una nueva versión del lenguaje de hoja de estilos de HTML para versión del lenguaje de hoja de estilos de HTML para poder ser usado con XML.

poder ser usado con XML.

• • Más sencillo que XSL, es conveniente usarlo siempre Más sencillo que XSL, es conveniente usarlo siempre que no sea necesaria una transformación.

que no sea necesaria una transformación.

• • Permite describir el formato en el que se desea que Permite describir el formato en el que se desea que aparezcan las entidades definidas en un documento.

aparezcan las entidades definidas en un documento.

PP {font{font--familyfamily::VerdanaVerdana; ; fontfont--sizesize:10 :10 ptpt}} TABLE

TABLE {{borderborder:2; :2; fontfont--family:family:Tahoma; Tahoma; fontfont--sizesize:9 :9 ptpt}}

H3H3 {font{font--familyfamily::ComicComic Sans MS; fontSans MS; font--sizesize:12 :12 ptpt; color:blue}; color:blue}

(24)

Extensiones Extensiones

Transformación y Presentación

Transformación y Presentación – – vs vs

• • XSL XSL vs CSS2 vs CSS2 : :

(25)

Extensiones Extensiones

Consultas

Consultas – – XQuery XQuery (i) (i)

• • XQuery XQuery proporciona un modo flexible de consulta para proporciona un modo flexible de consulta para extraer datos de los documentos XML.

extraer datos de los documentos XML.

n

n Los archivos XML pueden ser reales o virtuales, es decir, otras Los archivos XML pueden ser reales o virtuales, es decir, otras fuentes (hojas de cálculo, ASCII, bases de datos, ...) vistas fuentes (hojas de cálculo, ASCII, bases de datos, ...) vistas como datos XML.

como datos XML.

n

n Se pretende que desempeñe un papel similar al SQL en las BD Se pretende que desempeñe un papel similar al SQL en las BD relacionales: las colecciones de documentos XML podrán ser relacionales: las colecciones de documentos XML podrán ser accedidas como si fueran una base de datos.

accedidas como si fueran una base de datos.

n

n Esta basado en varias propuestas de lenguajes previas (XML-Esta basado en varias propuestas de lenguajes previas (XML- QL, YATL,

QL, YATL, LorelLorel, , QuiltQuilt).).

n

n Se ha integrado con XPath Se ha integrado con XPath (versión 2.0).(versión 2.0).

n

n Existe un cierto solape con XSLT.Existe un cierto solape con XSLT.

Una consulta puede referir a más de un documento.

Una consulta puede referir a más de un documento.

(26)

Extensiones Extensiones

Consultas

Consultas – – XQuery XQuery (ii) (ii)

• • Una consulta es una expresión Una consulta es una expresión que: que:

n

n Lee una secuencia de fragmentos XML o valores atómicos yLee una secuencia de fragmentos XML o valores atómicos y

n

n Devuelve una secuencia de fragmentos XML o valores Devuelve una secuencia de fragmentos XML o valores atómicos.

atómicos.

• • Los principales tipos de expresiones Los principales tipos de expresiones son: son:

n

n Expresiones Expresiones XPathXPath, para navegar por los documentos., para navegar por los documentos.

n

n ConstructoresConstructores de elementos.de elementos.

n

n FLWRFLWR (FOR, LET, WHERE, RETURN) para iterar por los (FOR, LET, WHERE, RETURN) para iterar por los elementos de una colección.

elementos de una colección.

n

n CondicionalesCondicionales (IF, THEN ELSE) para construir el resultado en (IF, THEN ELSE) para construir el resultado en base a alguna condición.

base a alguna condición.

n

n Con Con cuantificadorescuantificadores (SOME, ANY) para chequear la existencia (SOME, ANY) para chequear la existencia de algún elemento que cumpla una condición.

de algún elemento que cumpla una condición.

n

n ListasListas a las que se pueden aplicar operadores (UNION, ...) y a las que se pueden aplicar operadores (UNION, ...) y

(27)

Extensiones Extensiones

Consultas

Consultas – – XQuery XQuery (iii) (iii)

• • Ejemplo de consulta: Ejemplo de consulta:

n

n Obtener el año y título de todos los libros publicados por Obtener el año y título de todos los libros publicados por Addison

Addison--WesleyWesley después de 1991:después de 1991:

<bib<bib>>

{{

forfor $b $b inin doc("http://doc("http://wwwwww..bnbn..comcom//bibbib..xmlxml")/")/bibbib//bookbook where

where $b/$b/publisherpublisher = "Addison= "Addison--WesleyWesley" " andand $b/@year$b/@year > 1991> 1991 return

return

<book year<book year="{ $b/@="{ $b/@yearyear }">}">

{ $b/

{ $b/titletitle }}

</

</bookbook>>

}}

(28)

Extensiones Extensiones

Programación Programación

• • API’s API’s (Application Program Interface ( Application Program Interface ) que facilitan un ) que facilitan un conjunto estándar de llamadas a funciones para conjunto estándar de llamadas a funciones para manipular documentos XML desde programas:

manipular documentos XML desde programas:

n

n DOMDOM ((Document Object ModelDocument Object Model), del W3C.), del W3C.

n

n Orientada a Orientada a objetos.objetos.

n

n Facilita el acceso al documento XML completo.Facilita el acceso al documento XML completo.

n

n Incluye una representación estándar, en memoria, de la Incluye una representación estándar, en memoria, de la estructura de un documento XML y un API para acceder (acceso estructura de un documento XML y un API para acceder (acceso

aleatorio), modificar, eliminar o insertar los elementos y atrib

aleatorio), modificar, eliminar o insertar los elementos y atributos.utos.

n

n SAXSAX (Simple API (Simple API forfor XML). XML).

n

n Orientado a eventosOrientado a eventos..

n

n El documento se procesa de manera secuencial.El documento se procesa de manera secuencial.

n

n Cada elemento XML dispara un evento.Cada elemento XML dispara un evento.

n

n Pensado para leer con rapidez documentos XML y reaccionar en Pensado para leer con rapidez documentos XML y reaccionar en función de su contenido.

función de su contenido.

(29)

Extensiones Extensiones

Otros Otros (i) (i)

• • Namespaces Namespaces in XML in XML

n

n Método para cualificar elementos y nombres de atributos de Método para cualificar elementos y nombres de atributos de documentos XML, asociándolos con espacios de nombres documentos XML, asociándolos con espacios de nombres (namespaces(namespaces) identificados por referencias URI.) identificados por referencias URI.

<x

<x xmlnsxmlns:edi:edi='http://='http://ecommerceecommerce.org.org//schema'schema'>>

</x>

</x>

n

n Sirve paraSirve para

n

n Evitar las colisiones en los nombres de los elementos y atributos.Evitar las colisiones en los nombres de los elementos y atributos.

n

n Hacer públicos DTD’s, XML Schemas Hacer públicos DTD’s, XML Schemas o partes de ellos con fines de o partes de ellos con fines de reutilización.

reutilización.

n

n Ayuda para combinar lenguajes XML.Ayuda para combinar lenguajes XML.

(30)

Extensiones Extensiones

Otros Otros (ii) (ii)

• •

XBaseXBase establece un mecanismo para utilizar URI’s relativosestablece un mecanismo para utilizar URI’s relativos..

<...

<...xml:base="http://xml:base="http://wwwwww.sitio.es/“.sitio.es/“> <...> <...hrefhref="~yo/dir="~yo/dir/index/index..htmlhtml"" .../>.../>

equivale a equivale a http://

http://www.sitio.es/www.sitio.es/~yo/~yo/dirdir/index/index.html.html

• •

XIncludeXInclude (XML (XML Inclusions) provee un modelo de proceso y una Inclusions) provee un modelo de proceso y una sintaxis para hacer

sintaxis para hacer inclusionesinclusiones..

n

n Facilita la reutilización y modularidad.Facilita la reutilización y modularidad.

n

n Permite combinar documentos XML, o construir nuevos documentos Permite combinar documentos XML, o construir nuevos documentos XML a partir de otros previos.

XML a partir de otros previos.

<foo xmlns<foo xmlns:xi="http://:xi="http://www.w3.www.w3.orgorg/2001//2001/XInclude">XInclude">

<xi:

<xi:include hrefinclude href=“partedoc=“partedoc..xmlxml"/>"/>

</

</foo>foo>

(31)

Lenguajes Horizontales Lenguajes Horizontales

• • Lenguajes XML que tienen una utilidad de Lenguajes XML que tienen una utilidad de interés general:

interés general:

n

n

Seguridad: Seguridad : XML XML DSig DSig , , XML XML Enc, SAML, XACML, Enc , SAML, XACML, XKMS. XKMS .

n

n

Servicios Servicios Web: SOAP Web: SOAP , , WSDL, WSDL , UDDI. UDDI .

n

n

Metadatos Metadatos y conocimiento: y conocimiento: RDF RDF , XMI. , XMI.

n

n

Formularios Formularios Web: XForms Web: XForms. .

n

n

Otros: Otros : SVG SVG , DC , DC. .

(32)

Lenguajes Horizontales Lenguajes Horizontales

Seguridad Seguridad (i) (i)

IEEE

IEEE ComputerComputer April

April--20032003

(33)

Lenguajes Horizontales Lenguajes Horizontales

Seguridad Seguridad (ii) (ii)

• • XML XML DSig DSig (XML ( XML Signature Signature ) )

n

n Describe una sintaxis XML para representar asociaciones entre Describe una sintaxis XML para representar asociaciones entre firmas digitales

firmas digitales y documentos XML u otros recursos y documentos XML u otros recursos electrónicos.

electrónicos.

n

n También incluye servicios para integridad, autenticación de También incluye servicios para integridad, autenticación de mensajes y/o firmantes, para cualquier tipo de datos, mensajes y/o firmantes, para cualquier tipo de datos, localizados dentro del documento XML que incluye la firma o localizados dentro del documento XML que incluye la firma o fuera.

fuera.

• • XML XML Enc Enc (XML ( XML Encryption Encryption ) )

n

n Define un vocabulario XML y reglas de procesamiento para Define un vocabulario XML y reglas de procesamiento para proteger la confidencialidad (mediante

proteger la confidencialidad (mediante encriptaciónencriptación) de ) de documentos XML, partes de documentos o datos no XML.

documentos XML, partes de documentos o datos no XML.

(34)

Lenguajes Horizontales Lenguajes Horizontales

Seguridad

Seguridad (iii) (iii)

• • SAML SAML (Security Assertion Markup Language ( Security Assertion Markup Language ) )

n

n Marco de trabajo para intercambiar peticiones/respuestas de Marco de trabajo para intercambiar peticiones/respuestas de información de

información de autenticación y autorizaciónautenticación y autorización..

• • XACML XACML (eXtensible ( eXtensible Access Control Access Control Markup Language Markup Language ) )

n

n Especificación XML para expresar políticas de Especificación XML para expresar políticas de control de accesocontrol de acceso de grano fino.

de grano fino.

• • XrML XrML (eXtensible ( eXtensible Rights Rights Markup Language) Markup Language )

n

n Especificación XML para expresar derechosEspecificación XML para expresar derechos y condiciones y condiciones

(tiempos de expiración etc.) asociados con recursos y servicios (tiempos de expiración etc.) asociados con recursos y servicios digitales.

digitales.

• • XKMS XKMS (XML ( XML Key Management Specification Key Management Specification ) )

n

n Define una interfaz de Servicio Web para una infraestructura Define una interfaz de Servicio Web para una infraestructura de clave pública para usar con los protocolos XML

de clave pública para usar con los protocolos XML DSig y XML DSig y XML EncEnc..

(35)

Lenguajes Horizontales Lenguajes Horizontales

Servicios Web

Servicios Web (i) (i)

• •

Tecnologías basadas en el Tecnologías basadas en el intercambio de mensajes XMLintercambio de mensajes XML que que permiten la interacción entre sistemas software mediante la permiten la interacción entre sistemas software mediante la metáfora de “

metáfora de “servicioservicio”:”:

n

n Un servicio se solicita a través de la web.Un servicio se solicita a través de la web.

n

n Los resultados también se obtienen a través de la web.Los resultados también se obtienen a través de la web.

n

n Se tramitan según un modelo, protocolos y formatos estandarizadoSe tramitan según un modelo, protocolos y formatos estandarizados.s.

n

n Existe independencia del lenguaje de programación, plataforma o Existe independencia del lenguaje de programación, plataforma o dispositivos de presentación.

dispositivos de presentación.

Protocolos de Internet:

HTTP, XML

Servicio Servicio

WebWeb

• •

Son útiles paraSon útiles para::

n

n IntegraciónIntegración dede

n

n negocios con terceros.negocios con terceros.

n

n contenidos.contenidos.

n

n plataformas o sistemas.plataformas o sistemas.

(36)

Lenguajes Horizontales Lenguajes Horizontales

Servicios Web Servicios Web (ii) (ii)

• • Nuevo enfoque de la web orientada a los servicios Nuevo enfoque de la web orientada a los servicios

Servicio Servicio Servicio Servicio

W E B

XML XML XML

XML

XML

Proveedor

XML

Proveedor

Clientes Clientes

Validar tarjeta Validar tarjeta Reservar hotel Reservar hotel

(37)

Lenguajes Horizontales Lenguajes Horizontales

Servicios Web

Servicios Web (iii) (iii)

• • Arquitectura WSA Arquitectura WSA: : Web Web Services Architecture Services Architecture

n

n Norma W3C que establece un modelo y un contexto para Norma W3C que establece un modelo y un contexto para comprender los Servicios Web (WS) y las interrelaciones entre comprender los Servicios Web (WS) y las interrelaciones entre las diversas especificaciones y tecnologías utilizadas.

las diversas especificaciones y tecnologías utilizadas.

• • Definición de WS: Definición de WS :

n

n Un WS es un sistema software diseñado para soportar Un WS es un sistema software diseñado para soportar interacciones

interacciones interoperablesinteroperables máquina-máquina-aa--máquina a través de máquina a través de una red.

una red.

n

n Tiene un interfaz descrito en un formato computable (WSDL).Tiene un interfaz descrito en un formato computable (WSDL).

n

n Otros sistemas pueden interactuar con el WS en una manera Otros sistemas pueden interactuar con el WS en una manera prescrita por su definición, usando mensajes (SOAP) prescrita por su definición, usando mensajes (SOAP) transportados usando HTTP/XML en conjunción con otros transportados usando HTTP/XML en conjunción con otros estándares relacionados.

estándares relacionados.

(38)

Lenguajes Horizontales Lenguajes Horizontales

Servicios Web

Servicios Web (iv) (iv)

• • Algunos conceptos: Algunos conceptos:

n

n Agente Agente vs Serviciovs Servicio::

n

n AgenteAgente => Entidad concreta (pieza de software) que envía y => Entidad concreta (pieza de software) que envía y recibe mensajes.

recibe mensajes.

n

n ServicioServicio => Conjunto abstracto de funcionalidad que es provista. => Conjunto abstracto de funcionalidad que es provista.

n

n Demandante vsDemandante vs Proveedor:Proveedor:

n

n ProveedorProveedor => Persona u organización que provee un agente => Persona u organización que provee un agente adecuado para implementar un servicio particular.

adecuado para implementar un servicio particular.

n

n DemandanteDemandante => Persona u organización que desea usar un => Persona u organización que desea usar un determinado servicio de un cierto proveedor.

determinado servicio de un cierto proveedor.

n

n Descripción de ServiciosDescripción de Servicios: WSD.: WSD.

n

n Especificación computable del interfaz de un WS.Especificación computable del interfaz de un WS.

n

n Define formatos de mensajes, tipos de datos, protocolos de Define formatos de mensajes, tipos de datos, protocolos de transporte y formatos de

transporte y formatos de serialización serialización que deberán usar los que deberán usar los agentes demandantes y proveedores.

agentes demandantes y proveedores.

(39)

Lenguajes Horizontales Lenguajes Horizontales

Servicios Web Servicios Web (v) (v)

• • WSA define 5 modelos arquitecturales: WSA define 5 modelos arquitecturales:

n

n Orientado a los MensajesOrientado a los Mensajes..

n

n Orientado a los ServiciosOrientado a los Servicios..

n

n Orientado a los RecursosOrientado a los Recursos..

n

n De PolíticasDe Políticas..

n

n De GestiónDe Gestión..

(40)

Lenguajes Horizontales Lenguajes Horizontales

Servicios Web

Servicios Web (vi) (vi)

• • Para lograr la comunicación estándar se han definido Para lograr la comunicación estándar se han definido las especificaciones XML siguientes:

las especificaciones XML siguientes:

n

n SOAPSOAP (Simple (Simple ObjectObject Access ProtocolAccess Protocol).).

n

n Formato de los Formato de los mensajesmensajes intercambiados entre el cliente y el intercambiados entre el cliente y el servicio web.

servicio web.

n

n WSDLWSDL (Web (Web Service Definition LanguageService Definition Language))

n

n Formato del documento de Formato del documento de descripción de un serviciodescripción de un servicio web web (contrato).

(contrato).

n

n Identifica los métodos, funciones y parámetros necesarios para Identifica los métodos, funciones y parámetros necesarios para invocar un determinado servicio.

invocar un determinado servicio.

n

n UDDIUDDI (Universal (Universal DescriptionDescription, , Discovery and IntegrationDiscovery and Integration))

n

n Repositorio de registro y búsqueda de servicios web (directorio,Repositorio de registro y búsqueda de servicios web (directorio,

páginas amarillas”).páginas amarillas”).

n

n Los servicios están registrados para que los posibles usuarios Los servicios están registrados para que los posibles usuarios puedan encontrarlos.

puedan encontrarlos.

(41)

Lenguajes Horizontales Lenguajes Horizontales

Servicios Web

Servicios Web (vii) (vii)

SERVIDOR

CLIENTE

WSDL

2. SELECCIÓN DEL SERVICIO

SOAP/HTTP..

.

3. CONSUMO DEL SERVICIO

DIRECTORIO (UDDI)

WSDL 1. PUBLICACIÓN DEL SERVICIO.

(42)

Lenguajes Horizontales Lenguajes Horizontales

Servicios Web

Servicios Web (viii) (viii)

• •

PeticiónPetición librolibro

<?

<?xmlxmlversion="1.0" encoding="UTFversion="1.0" encoding="UTF--8" ?>8" ?>

<SOAP

<SOAP--ENV:EnvelopeENV:Envelope xmlns

xmlns:SOAP:SOAP--ENV=ENV=

”http://schemas.

”http://schemas.xmlsoapxmlsoap.org/soap/encoding/">.org/soap/encoding/">

<SOAP

<SOAP--ENV:Header> ENV:Header>

</SOAP

</SOAP--ENV:Header> ENV:Header>

<SOAP

<SOAP--ENV:Body>ENV:Body>

<catalogo:

<catalogo:buscaIsbn buscaIsbn xmlns

xmlns:catalogo="http://catalogo.:catalogo="http://catalogo.orgorg//catcat"> ">

<catalogo:

<catalogo:isbnisbn>>

84

84--99999999--99999999--9999

</catalogo:

</catalogo:isbnisbn> >

</catalogo:

</catalogo:buscaIsbnbuscaIsbn> >

</SOAP

</SOAP--ENV:ENV:BodyBody>>

</SOAP

</SOAP--ENV:ENV:EnvelopeEnvelope> >

•• RespuestaRespuesta librolibro

<?

<?xmlxmlversion="1.0" encoding="UTFversion="1.0" encoding="UTF--8" ?>8" ?>

<SOAP

<SOAP--ENV:EnvelopeENV:Envelope xmlns

xmlns:SOAP:SOAP--ENV=ENV=

”http://schemas.

”http://schemas.xmlsoapxmlsoap.org/soap/encoding/"> .org/soap/encoding/">

<SOAP

<SOAP--ENV:Header> ENV:Header>

</SOAP

</SOAP--ENV:Header> ENV:Header>

<SOAP

<SOAP--ENV:ENV:BodyBody> >

<catalogo:

<catalogo:buscaIsbnResponsebuscaIsbnResponse xmlns

xmlns:catalogo="http://catalogo.:catalogo="http://catalogo.orgorg//catcat"> ">

<catalogo:

<catalogo:titulotitulo>>

El Origen de las Especies El Origen de las Especies

</catalogo:titulo>

</catalogo:titulo>

<catalogo:

<catalogo:autorautor>>

Darwin Darwin

</catalogo:autor>

</catalogo:autor>

</catalogo:

</catalogo:buscaIsbnResponsebuscaIsbnResponse> >

</SOAP

</SOAP--ENV:ENV:BodyBody>>

Ejemplo de mensajes

Ejemplo de mensajes SOAP SOAP : :

(43)

Lenguajes Horizontales Lenguajes Horizontales

Metadatos Metadatos (i) (i)

• • Los metadatos sirven para Los metadatos sirven para

n

n Añadir semántica (describir el significado de los datos)Añadir semántica (describir el significado de los datos)

n

n Gestión de conocimientoGestión de conocimiento

n

n Mayor genericidad en las soluciones (aplicaciones)Mayor genericidad en las soluciones (aplicaciones)

• • Las 2 propuestas principales son: Las 2 propuestas principales son:

n

n RDFRDF (Resource Description Framework(Resource Description Framework), un marco de trabajo ), un marco de trabajo que permite la codificación, intercambio y reutilización de que permite la codificación, intercambio y reutilización de metadatos estructurados.

metadatos estructurados.

n

n MOF/XMI MOF/XMI (Meta(Meta--ObjectObject--FacilityFacility,, XML XML Metadata Interchange) Metadata Interchange) son dos normas OMG para

son dos normas OMG para

n

n Definición, representación y gestión de metadatos con el Definición, representación y gestión de metadatos con el paradigma orientado a objetos (MOF).

paradigma orientado a objetos (MOF).

n

n Intercambio de metadatos en entornos distribuidos heterogéneos Intercambio de metadatos en entornos distribuidos heterogéneos (XMI).

(XMI).

(44)

Lenguajes Horizontales Lenguajes Horizontales

Metadatos Metadatos (ii) (ii)

• • Ejemplo RDF Ejemplo RDF

n

n Luis es el autor [creatorLuis es el autor [creator] del recurso ] del recurso wwwwww.sitio.es/.sitio.es/luisluis//indexindex

<?

<?xml versionxml version="1.0"?>="1.0"?>

<rdf<rdf:RDF:RDF xmlns

xmlns::rdfrdf="http://="http://www.w3.www.w3.org/1999/02/22org/1999/02/22--rdfrdf-

Referencias

Documento similar

Como es bien sabido, las necesidades de gestión, sus requisitos y las tecnologías involucradas están en continua evolución, es por esto que la elección de una solución de Arquitectura

direccionar los elementos dentro de las estructura del documento XSL = XSLT + XSL-FO’s (+ XPath) copyright [email protected] Introducción a XML 14 XSL Lenguaje de Transformación

El objeto del presente pliego es definir las características técnicas para la contratación del mantenimiento hardware y software de equipos informáticos, audiovisuales y

C# es un lenguaje moderno, a diferencia de sus competidores, que recolecta las mejores características de los lenguajes precursores, como la programación orientada a objetos, lo

El modelo consta de 3 etapas. La primera etapa, es el dise˜ no del modelo de de- cisi´ on de Markov. En esta etapa se deben definir las variables de estado principales.. que servir´

por un lado XML (eXtensible Markup Language) plantea un horizonte para la gestión del contenido, mientras que los esquemas de metadatos ofrecen el fundamento para la gestión

En nuestro problema de la selección de requisitos, se puede definir el espacio de estados como todas las combinaciones de requisitos válidas, es decir cuyo

RFID es una tecnología probada que existe desde la II Guerra Mundial, sin embargo a  finales  de  los  70,  marcar  con  etiquetas  de  radio  frecuencia  al