Está en la página 1de 37

Administracin de Base de Datos

XML Ing. Ronald Prez


rrperez@unimet.edu.ve rperez@shopepk.com

Agenda
XML Elemento Prlogo Comentario CDATA (Character data) Usando XML Web Services Fundamentos Qu es un Web Services? Escenarios Estndares Simple Object Access Protocol (SOAP) Formas de comunicacin WSDL Serializacin Ciclo de vida de un Web Service SOA

XML
XML (eXtensible Markup Language) XML es descendiente de SGML (Standard Generalized Markup Lenguage), que fue creado en los 80, pero que tiene como principal problema su complejidad. HTML se cre para publicar informacin en internet, pero con l solo se puede formatear texto, no describe contenido. XML empez en 1996 como una pequea versin de SGML para evitar su redundancia, complicacin y caractersticas confusas. En 1998 la W3C ya publica su especificacin y recomienda su uso.

XML

XML es una idea principal, no es nueva, pero tremendamente til porque: Ha llegado en un momento adecuado para sacar partido de diversas tecnologas (Internet, Web,) Y poder abordar de nuevas maneras, ms adecuadas y potentes, problemas importantes: Integracin de datos estructurados (tablas relacionales) y poco estructurados (documentos) Aportar significado a la web (web semntica) Integracin de sistemas de informacin basados en tecnologas diferentes Hacer una web orientada a las aplicaciones (WS) en ves de una web orientadas slo a la interaccin con personas (HTML)

Por qu estudiar XML?

Hay una enorme demanda por intercambio de informacin. Entre plataformas. Entre empresas. Hay una enorme demanda por integracin de datos. Fuentes de datos heterogneos. Fuentes de datos distribuidas en lugares distintos. XML: Lenguaje estndar para intercambiar informacin en la Web y un modelo de datos muy usado en la integracin de bases de datos.

Documentos XML
Un documento XML puede ser visto como una secuencia de caracteres que se sujetan a ciertas reglas y en ocasiones con cierto sentido.
Una aplicacin XML es un vocabulario especco que contiene elementos y atributos. La sintaxis de la aplicacin dene cules son los documentos vlidos y existen diferentes lenguajes para ello: DTD, esquemas

Elemento
La unidad fundamental de XML es el elemento.
Cada documento tiene al menos un elemento. Los elementos tienen 4 componentes: Nombre. Atributos. Espacio de nombre en el alcance del elemento. Contenido.

Elemento (nombre)
El nombre de cada elemento puede contener tantos caracteres alfanumricos como se requiera. No puede empezar ni con nmero. No puede contener espacios en blanco. No puede empezar con XMLen ninguna combinacin de maysculas ni minsculas. Cada elemento est delimitado por un par de marcas: Una de inicio: <nombre del elemento> Una de n </nombre del elemento

Elemento (contenido)
Lo que est entre las marcas es el contenido del elemento. Este puede ser: Texto: <pais>Venezuela</pais> Un conjunto de elementos. <envio> <calleNum>Andres Bello Nro 9</calleNum> <ciudad> Caracas</ciudad> <cp>1020</cp> <pais>Venezuela</pais> </envio> Mixto: <envio> Srita. Andrea Lopez <calleNum>Andres Bello Nro 9</calleNum> <ciudad>Caracas</ciudad> <cp>1020</cp> <pais>Venezuela</pais> </envio> Muy til para documentos que contienen narrativa: libros, historias

Elemento (contenido)

Vaco <pais></pais> != <pais> </pais> <pais/> En el contenido de un elemento no pueden ir los caracteres <, >, &, ;, .

Elemento (atributos)
Los atributos son valores, con nombre, asociados con los elementos. La sintaxis es: nombre = valor El nombre de un atributo es cualquier nombre vlido y el valor es una cadena de texto, entre apostrofes o comillas. <subtotal moneda=dolar>393.85</subtotal> <subtotal moneda=dolar">393.85</subtotal> <subtotal moneda = dolar">393.85</subtotal> Un elemento puede tener o no atributos.

Prlogo
Los documentos XML pueden empezar con un prlogo. El prlogo contiene una declaracin y la denicin de las reglas sintcticas del mismo. Atributos del prlogo: versin Identica la versin XML usada en tal documento. Este atributo es obligatorio y de momento su valor 1.0. encoding Identica el conjunto de caracteres usados. ISO-8859-1 es para espaol. El valor por omisin es el Unicode comprimido UTF-8.

Prlogo
standalone Especica cuando un documento se reera a una entidad externa o a una denicion de tipos de dato externo. Si no hay tales referencias se debe escribir yes. <?xml version="1.0" encoding="ISO-8859-1"?> <?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>

Comentario
Los comentarios permiten incluir en el documento informacin que no ser procesada. Se escriben entre los smbolos <!-- y --> Se pueden colocar en cualquier sitio, excepto en las marcas, dentro de otros comentarios ni en las DTDs. <!-- Verificar que este documento tenga codigo ISO-8859-1 --> <mensaje para="ti@tuDireccion.comde="mi@miDireccion.com" tema="Felicitacion"> <!-- Este es un comentario inutil --> <texto> Este premio es la recompensa justa a tu esfuerzo. !Felicidades! </texto> </mensaje> No deben incluir --

CDATA (Character data)


El parser ignora lo que se encuentra en esta seccin, ms bien lo interpreta como caracteres sin signicado alguno. Puede utilizarse para incluir scripts escritos en otros lenguajes como JavaScript. <mensaje>Feliz dia</mensaje> Elemento <![CDATA[<mensaje>Feliz dia</mensaje>]]> &lt;mensaje&gt;Feliz dia&lt;/mensaje&gt; <![CDATA[ function F_to_C { return ((F - 32) * (5 / 9)) } ]]> Una seccin CDATA no puede contener la cadena ]]> por lo tanto no es posible tener CDATAs anidadas. Ejemplo para codicar ]]> se escribira: <![CDATA[]]]]><![CDATA[>]]>

Usando XML
declare @miDocumento xml set @miDocumento = '<Root> <Descripcion Codigo="1 Nombre=Camisa"> <Detalles> <Garantia>Un mes</Garantia> <Valor>100 Bs.F</Valor> </Detalles> </Descripcion> <Descripcion Codigo="2 Nombre=Zapato"> <Detalles> <Garantia>Dos meses</Garantia> <Valor>300 Bs.F</Valor> </Detalles> </Descripcion> </Root>' SELECT @miDocumento.query('/Root/Descripcion/Detalles

Usando XML
declare @miDocumento xml DECLARE @Producto int set @miDocumento = '<Root> <Descripcion Codigo="1" Nombre="Camisa"> <Detalles> <Garantia>Un mes</Garantia> <Valor>100 Bs.F</Valor> </Detalles> </Descripcion> <Descripcion Codigo="2 Nombre=Zapato"> <Detalles> <Garantia>Dos meses</Garantia> <Valor>300 Bs.F</Valor> </Detalles> </Descripcion> </Root>' SET @Producto = @miDocumento.value('(/Root/Descripcion/@Codigo)[1]', 'int' ) SELECT @Producto declare @x xml declare @f bit set @x = '<root Fecha = "2002-01-01"/>' set @f = @x.exist('/root[(@Fecha cast as xs:date?) eq xs:date("2002-01-01")]') select @f

Usando XML
USE Prueba; GO DECLARE @miDocumento xml SET @miDocumento = '<Root> <Descripcion Codigo="1" Producto="Road Bike"> <Detalles> </Detalles> </Descripcion> </Root>' SELECT @miDocumento -- insertar el detalle hijo (no necesita indicar la ubicacion) SET @miDocumento.modify(' insert <Mantenimiento>3 aos de repuestos y servicios </Mantenimiento> into (/Root/Descripcion/Detalles)[1]') SELECT @miDocumento -- insertar el segundo detalle set @miDocumento.modify(' insert <Garantia>Un ao de garantia</Garantia> as first into (/Root/Descripcion/Detalles)[1] ')

SELECT @miDocumento -- insertar el tercer detalles SELECT @miDocumento SET @miDocumento.modify(' insert <Material>Aluminio</Material> as last into (/Root/Descripcion/Detalles)[1] ') SELECT @miDocumento -- insertar el cuarto detalle SELECT @miDocumento set @miDocumento.modify(' insert <Marco>De acero altamente fuerte</Marco> after (/Root/Descripcion/Detalles/Material)[1] ') SELECT @miDocumento; GO

Web Services

Fundamentos
Intercambio de informacin Procesamiento Sin intervencin del usuario Acelerando tiempos de respuesta Normalizacin Entre plataformas Entre lenguajes Entre sistemas operativos

Qu es un Web Services?

Un Web Service consiste en una funcin disponible en un servidor conectado al web. Esta funcin puede consistir en cualquier cosa: Realizar un simple clculo con unos datos que se le envan como parmetro, Acceder a una base de datos para recuperar un conjunto de registros, Validar la correccin de una informacin o contrastarla frente a otros datos, etc.

Qu es un Web Services?

El servicio web podr ser solicitado desde otro programa informtico que se ejecute en un ordenador conectado al web. Junto a la solicitud de la ejecucin, se pueden enviar al ordenador que ofrece el servicio unos parmetros que el servicio web remoto tomar como base para el clculo o la funcin.

Qu es un Web Services?
La aplicacin que acta como cliente debe conocer: La URL del servidor remoto que ofrece el servicio, El nombre del servicio que se solicita, y Los parmetros que se deben enviar junto con la llamada al servicio. Estos datos se enviarn mediante HTTP El servidor que ofrece el servicio web leer los parmetros que se le han enviado, llamar a un componente o programa encargado de implementar el servicio, y los resultados que se obtengan de su ejecucin sern devueltos al servidor que solicit la ejecucin del servicio.

Escenarios

Simple Publicacin de informacin Integracin de Aplicaciones Permite realizar tareas remotas Soluciones de Flujo de Trabajo (Workflow)

Estndares
Los servicios web se definen a partir de las siguientes especificaciones:

SOAP (Simple Object Access Protocol) WSDL (Web Services Description Language) UDDI (Universal Description, Discovery and Integration)
Del mantenimiento de las dos primeras, SOAP y WSDL se encarga el W3C. En el caso de UDDI, se trata de un proyecto en el que participan distintas empresas El lenguaje XML constituye la base de todos ellos.

Simple Object Access Protocol (SOAP)

Para intercambio de informacin en un ambiente distribuido. Formato de mensajes basados en XML. Puede ser combinado con varios protocolos de transporte. Originalmente desarrollado por Microsoft.

Simple Object Access Protocol (SOAP)


La especificacin SOAP indica cmo se deben codificar los mensajes que circularn entre las dos aplicaciones.

La especificacin SOAP define dos modelos de mensajes: Un mensaje que se enviar desde la aplicacin cliente a la aplicacin servidor, solicitando la ejecucin de un mtodo al que se pasan una serie de parmetros. Un mensaje que se enviar desde la aplicacin servidor a la cliente, y que contendr datos XML con los resultados de la ejecucin del mtodo solicitado.

Partes del SOAP

The SOAP envelope: describe Qu esta en un mensaje y Como procesarlo. The SOAP binding framework (adicionado en versin 1.2): Intercambia SOAP envelopes entre pares usando un protocolo de transporte inferior The SOAP encoding rules: Intercambia instancias de tipos de datos definidos por aplicacin. The SOAP RPC representation: Una convencin para representar llamadas a procedimientos remotos y sus respuestas.

Ejemplo de mensaje SOAP (peticin)


<?xml version="1.0" encoding="UTF-8" ?> <SOAP-ENV:Envelope xmlns:SOAPENV=http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header> </SOAP-ENV:Header> <SOAP-ENV:Body> <catalogo:buscaIsbn xmlns:catalogo="http://catalogo.org/cat"> <catalogo:isbn> 84-4553-3334-2X </catalogo:isbn> </catalogo:buscaIsbn> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Ejemplo de mensaje SOAP (respuesta)

<?xml version="1.0" encoding="UTF-8" ?> <SOAP-ENV:Envelope xmlns:SOAP-ENV=http://schemas.xmlsoap.org/soap/encoding/"> <SOAP-ENV:Header> </SOAP-ENV:Header> <SOAP-ENV:Body> <catalogo:buscaIsbnResponse xmlns:catalogo="http://catalogo.org/cat"> <catalogo:titulo> Catalogar materiales especiales </catalogo:titulo> <catalogo:autor>Marta de Juanes</catalogo:autor> </catalogo:buscaIsbnResponse> </SOAP-ENV:Body> </SOAP-ENV:Envelope>

Formas de comunicacin HTTP-GET Argumentos en la URL HTTP-POST Argumentos en el documento enviado SOAP Mensaje estructurado, en XML con posibilidad de implementar mltiples formatos, seguridad etc

WSDL
Permite describir los distintos mtodos o funciones que estn disponibles en un servicio web, as como su signatura, es decir, el nmero de argumentos o parmetros que se les debe pasar, y el tipo de dato que devolver la funcin como resultado. Se establece una equivalencia entre el documento WSDL y un contrato que especifica los servicios que el servidor se compromete a ofrecer al cliente, siempre que ste los solicite de la forma adecuada.

WSDL
Los documentos WSDL deben estar disponibles en el servidor web que ofrece los servicios. Como su creacin resulta compleja, las distintas implementaciones de SOAP permiten generar estos archivos de forma sencilla, sin necesidad de conocer los elementos y la estructura del esquema XML en el que se basan.

Serializacin
Es el proceso de convertir un dato binario a una representacin de texto usando caracteres del tipo ASCII. Por ejemplo: debido a que SOAP esta basado en XML, ste a su vez no soporta el envo de cualquier carcter ya que algunos caracteres son utilizados para la finalizacin de una cadena de caracteres.

Ciclo de vida de un Web Service

SOA (Service Oriented Architecture)


Es una arquitectura de desarrollo de sistema. Bsicamente se trata de una cambio de mentalidad a la hora de desarrollar un sistema y pensar cada uno de los mdulos como un servicio. Este tipo de arquitectura nos facilitar el uso Web Services, con esto tendremos un conjunto de servicios que se comunicarn unos con otros intercambiando distintos tipos de datos e involucrando ms de un servicios, eso depender de la operacin que se realice.

SOA (Principios)
SOA tiene cuatro principios bsicos: 1. Lmites: los servicios estn demarcados por lmites especficos y la nica forma de comunicarse con ellos ser a travs de la tecnologa o protocolos expuestos por ellos.

2. Autonoma. Cada servicio deber comportarse de forma autnoma.


3. Contrato: define como sern utilizados los servicios y de que manera intercambiarn los datos y mensajes. 4. Polticas: cada servicio deber definir las polticas de uso.