Introducción a XML

64
XML XML martes, 07 de noviembre de 2006 XML XML Conceptos Conceptos generales. generales. Isaac Ruiz Guerra (RuGI) Isaac Ruiz Guerra (RuGI)

description

Un pequeño repaso a XML

Transcript of Introducción a XML

Page 1: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XML XML

Conceptos generales.Conceptos generales.

Isaac Ruiz Guerra (RuGI)Isaac Ruiz Guerra (RuGI)

Page 2: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

-Introducción

-Validaciones

-XPATH

-XQUERY

-XSLT

-Web Services

Page 3: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción

•Qué es XML.Qué es XML.•Un lenguaje de marcado de texto creado para el intercambio de datos.

•Su importantancia.Su importantancia.•Es texto plano.•Datos identificados.•Fácil de procesar.•Jerárquico

•Dónde se puede utilizar.Dónde se puede utilizar.

Page 4: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción I

Sintaxis:-Elementos

-Deben tener inicio y fin

-Nombres sin espacios

-Anidamiento ordenado

-Elementos vacios

-Atributos

- Tambien llamados modificadores

-Comentarios

<!-- Este es un comentario -->

<persona>

<nombre>Juan</nombre>

<foto nombre=“foto1.jpg”/>

</persona>

Page 5: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción II

<!-- Este es un comentario --> <persona>

<nombre>Juan</nombre> <edad>27</edad> <entrada hora=“9” minutos=“10” > 07112006</entrada> <persona>

AtributosElementos

Comentarios

Page 6: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

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

<persona>

<nombre>Isaac</nombre>

<apellido>Ruiz</apellido>

<color>azu</color>

</persona>

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

<persona nombre=“Isaac" apellido="Ruiz" color ="azul“/>

Page 7: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción III

<?xml version="1.0“?>

<pelicula-favorita>

<titulo>La ciudad del pecado</titulo>

<director>Robert Rodriguez</director>

<duracion>112</duracion>

</pelicula-favorita>

<?xml version="1.0“?>

<postulante>

<titulo>Ingeniero</titulo>

<experiencia>Desde 2001 en Mars SA</experiencia>

<idioma>Ingles</idioma>

<residencia>Los Angeles CA</residencia>

</postulante>

<titulo><titulo>

¿?¿?

Page 8: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción IV

Espacios de nombre (namespaces)

Espacio de nombres:pelicula-favoritapelicula-favorita

Espacio de nombres:pelicula-favoritapelicula-favorita

<pelicula-favorita:titulo> <peliculafavorita:director> <pelicula-favorita:duracion>

-titulo-director-duracion

Espacio de nombres:postulantepostulante

Espacio de nombres:postulantepostulante

<postulante:titulo> <postulante:experiencia> <postulante:residencia>

-titulo-experiencia-residencia

Page 9: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción V

Espacios de nombre (namespaces)

xmlns:nombre=“url”

xmlns: Indica que se esta definiendo un espacio de nombres.

nombre: Es el prefijo que se ocupara para referenciar el espacio de nombres.

url : un url válido

Page 10: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción VI

Espacios de nombre (namespaces)<?xml version="1.0“?>

<pfpf:pelicula-favorita xmlns:pfpf=“http://www.pf.com”>

<pfpf:pelicula-favorita>

<pfpf:titulo>La ciudad del pecado<pfpf:/titulo>

<pfpf:director>Robert Rodriguez</pfpf:director>

<pfpf:duracion>112</pfpf:duracion>

</pfpf:pelicula-favorita>

Page 11: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción VII

Espacios de nombre (namespaces)<?xml version="1.0“?>

<pospos:postulante xmlns:pospos=“http://www.esp-p.comhttp://www.esp-p.com”>

<pospos:postulante>

<pospos:titulo>Ingeniero</pospos:titulo>

<pospos:experiencia>Desde 2001 en Mars SA</pospos:experiencia>

<pospos:idioma>Ingles</pospos:idioma>

<pospos:residencia>Los Angeles CA</pospos:residencia>

</pospos:postulante>

Page 12: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción VIII

Espacios de nombre (namespaces)<?xml version="1.0“?>

<pospos:postulante xmlns:pospos=“http://www.esp-p.comhttp://www.esp-p.com”>

<pospos:postulante>

<pospos:titulo>Ingeniero</pospos:titulo>

<pospos:experiencia>Desde 2001 en Mars SA</pospos:experiencia>

<pospos:idioma>Ingles</pospos:idioma>

<pospos:residencia>Los Angeles CA</pospos:residencia>

<pfpf:pelicula-favorita xmlns:pfpf=“http://www.pf.com”>

<pfpf:pelicula-favorita>

<pfpf:titulo>La ciudad del pecado<pfpf:/titulo>

<pfpf:director>Robert Rodriguez</pfpf:director>

<pfpf:duracion>112</pfpf:duracion>

</pfpf:pelicula-favorita>

</pospos:postulante>

Page 13: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción IX

XPATH XQUERY

XLINK XPOINTER

XSLT

XFORMS

SVG WSDL

Page 14: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Introducción X

XPATHXPATH XQUERYXQUERY

XLINK XPOINTER

XSLTXSLT

XFORMS

SVG WSDLWSDL

Page 15: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Page 16: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación I

XML bien formado

VS.

XML Válido.

Page 17: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación II

XML bien formado.

Un documento XML bien formado es aquel cuyo contenido se encuentra estructurado de forma tal que, por cada etiqueta de inicio, existe una etiqueta de fin. 

No deben existir traslapes entre etiquetas, es decir, las etiquetas anidadas deben iniciar y terminar dentro de la etiqueta que la contiene. 

Page 18: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación III

XML bien formado.

<persona>

        <nombre> Pedro </nombre>

        <edad>33 </edad>

</persona> 

<persona>

        <nombre> Pedro <edad> </nombre>

        33 </edad>

</persona> 

Error:

Page 19: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación IV

XML Válido.

Implica que el documento no sólo está bien formado sino que además su estructura está claramente definida en un documento externo.

Page 20: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación V

DTD Schemas

Relax NG NRL

Page 21: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación VI

DTD

Document Type Definition.Definición del tipo de documento.

Fue la primera manera para definir el contenido de un archivo XML.

Basado en la deficinición de: Elementos, atributos, entidades.

No es lo suficientemente flexible para los nuevos roles que ha tomado XML

Page 22: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación VII

<!Element ficha (datos)+>

<!Element datos (nombre, email?, direccion)>

<!Element nombre (#PCDATA)>

<!Element direccion (#PCDATA)>

<!Element email (#PCDATA)>

Page 23: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación VIII

Schemas

Ventajas:

•Están escritos en XML

•Brindan más posibilidades para definir el contenido del XML

•Son extendibles

•Soportan tipos de datos

Page 24: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación IX

Schemas

Se puede controlar:

•Qué elementos pueden aparecer en el documento.

•Qué atributos pueden aparecer en el documento.

•Qué elementos pueden ser descendientes de otros.

•En qué ordén y cuándo deberán aparecer los elementos

•Definir qué tipos de datos podrán tener los elementos

•Definir el tipo de datos de los atributos

Page 25: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación X

RELAX NG y NRL

Derivaciones de los Schemas para darles mas flexibilidad, no estan del todo aceptadas y se utilizan más en entornos académicos.

Page 26: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación XI

DTD SchemasSchemas

Relax NG NRL

Page 27: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación XII

XML Schemas.

Tipo de datos.

Cadena de caracteres xs:string

Decimal xs:decimal

Booleano xs:boolean

Fecha xs:date

Y más.......

Page 28: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación XIII

XML Schemas.

Elementos.

Sintaxis:

<xs:element name=“” type=“” [fixed=“” default=“”]/>

Ejemplos:

<xs:element name=“nombre” type=“xs:string”/>

<xs:element name=“fechaNacimiento” type=“xs:date”/>

Page 29: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación XIV

XML Schemas.

Atributos.

Sintaxis:

<xs:atribute name=“” type=“” [fixed=“” default=“”] [use=“”]/>

Ejemplos:

<xs:atribute name=“color” type=“xs:string” use=“required”>

<xs:atribute name=“sexo” type=“xs:string” default:”M” use=“optional”>

Page 30: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación XV

XML Schemas.

Restricciones

xs:enumeration

Define una lista de valores posibles para un elemento.

xs:fractionDigits

Define el número máximo de dígitos decimales permitidos

Page 31: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación XVI

XML Schemas.

Restricciones

xs:minExclusive

Define el valor mínimo permitido para el elemento.

xs:maxInclusive

Define el valor máxico permitido para el elemento.

Page 32: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación XVII

XML Schemas.

Restricciones

<xs:element name=“puntaje”><xs:simpleType>

<xs:restriction base=“xs:integer”><xs:minExclusive value=“0”/><xs:maxExclusive value=“101”/>

</xs:restriction base=“xs:integer”></xs:simpleType>

</xs:element name=“puntaje”>

Page 33: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Validación XVIII

Ejemplos

Page 34: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

<xs:element name="person">

<xs:annotation>

<xs:documentation>Specify information about a person.</xs:documentation>

</xs:annotation>

<xs:complexType>

<xs:sequence>

<xs:element ref="name"/>

<xs:element ref="email" minOccurs="0" maxOccurs="unbounded"/>

<xs:element ref="url" minOccurs="0" maxOccurs="unbounded"/>

<xs:element ref="link" minOccurs="0" maxOccurs="1"/>

</xs:sequence>

Page 35: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XPATH I

XML Path Languaje.

•Permite identificar partes internas de un documento XML mediante rutas

•Défine cómo acceder a cierto punto de la estructura del documento

•Permite referenciar no sólo elementos, sino tambien textos, atributos o cualquier información dentro del documento

Page 36: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XPATH II

XSLT

XLinkXLPointer

XQuery

XPathXPath

Page 37: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XPATH III

Nodos

•Raíz

•Elemento

•Atributo

•Texto

•Comentario e instrucción de procesamiento.

Page 38: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XPATH IV

Expresiones

/personnel/person/name/familyRuta de localización.

//name

•/ para separar nodos

Page 39: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XPATH V

Ejes:

Atributo

/personnel/person[attribute::id="Big.Boss"]/name/family

/personnel/person[@id="Big.Boss"]/name/family

Page 40: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XPATH VI

Ejes:

child

/personnel/child::person/child::name

/personnel/person/name

Page 41: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XPATH VII

Ejes:

ancestor

/personnel/person/name/family/ancestor::*

/personnel/person[@id="Big.Boss"]/name/family/ancestor::*

Page 42: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XPATH VIII

Operadores

•Aritmeticos (+, -, Div, Mod,*)

•Lógicos (And, or)

•Comparación (=, !=, <, >=, etc)

•Combinacion (is, union)

/dvd/titulo[precio>44]/nombre

Page 43: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XPATH IX

Funciones

Xpath ofrece una serie de funciones para incorporar a las expresiones.

sum (dvd/titulo/precio)

substring(/dvd/titulo[1]/nombre, 1,3)

Page 44: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XQUERY I

Es una propuesta basada en XML para realizar consultas a documentos XML y cualquier repositorio de información que mantenga estructuras similares.

Se basa en Xpath, por lo que comparte funciones y los operadores disponibles.

Page 45: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XQUERY II

Tipos de datos

Si el documento XML tiene schema, cada elemento tendra su tipo de dato en función del definido en el schema.

Sino, se tomará según el contexto;

“123” puede ser cadena o número según quien solicite el valor.

Page 46: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XQUERY II

Expresiones FLWOR

Las expresiones FLWOR constituyen la base para la creación de consultas XQUERY.

(F)or

(L)et

(W)here

(O)rder by

(R)eturn

Page 47: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XSLT I

eXtendible Stylesheet Languaje for Transformations.

Lenguaje Extensible de hojas de estilo para transformaciones.

Page 48: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XSLT II

XML Procesador XSLT

Salida

XMLHoja de

Estilo

Page 49: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XSLT III

Procesadores conocidos:

•Saxon

•Xalan

•XSLTProc

•4Suite

•Sablotron

Page 50: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XSLT IV

Elementos disponibles

•Templates

•Bucles (xsl:for each)

•Extracción de valores (xsl:value-of)

Page 51: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

XSLT V

Funciones

XSLT incorpora sus propias funciones, pero, es posible utilizar las de Xpath.

Page 52: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services I

¿Qué es un Web Service?

Un servicio web es un componente de software basado en XML que permite desarrollar aplicaciones que pueden intercambiar datos con otras por medio de una red (Internet), independientemente de la plataforma en la que funcionen.

Page 53: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Aplicación

Web Services II

InternetServicio

Web

ServicioWeb

ProgramaCliente

ProgramaCliente

Figura 1. La utilización de un WS es transparente.

Page 54: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services III

•Red

•Transporte

•Empaquetamiento

•Descripción

•Descubrimiento

Estructura de un WS en capas

Page 55: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services IV

Red.

El envío y la recepción de mensajes deberá enmarcarse dentro de un ámbito (una red).

Page 56: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services V

Transporte.

Una vez construido el mensaje, se necesita un conjunto de reglas para enviarlo y recibirlo.

En esta capa se utiliza HTTP.

Page 57: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services VI

Empaquetamiento.

La estructura de las peticiones y las respuestas se define en esta capa, y el protocolo utilizado hoy en día es SOAP (Simple Object Acces Protocol) basado en XML.

Programacliente

Programacliente

Internet

mensaje SOAPmensaje SOAP

Internet

mensaje SOAPmensaje SOAP

Servicioweb

Servicioweb

Page 58: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services VII

Empaquetamiento.

Envelope

Header

Body

Cabecera #1

Cabecera #2

Cabecera ....

Estructura de un mensaje SOAP

Page 59: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services VIII

Empaquetamiento.

EmisorIntermediario

#1Intermediario

#2Receptor

Mensaje SOAP

HTTP SMTP HTTP

Un mensaje SOAP puede atravesar varios nodos (y protocolos) antes de llegar a su destino.

Page 60: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services IX

Empaquetamiento.<!-- Mensaje SOAP: Petición -->

<?xml version="1.0"/>

<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<soap:Header>

<s:identidad xmlns:s="http://identidad.com/ns/" soap:mustUnderstand="1">

<usuario>libreria</usuario>

<usuario>calle56</usuario>

</s:identidad>

</soap:Header>

<soap:Body>

<x:detalleLibro xmlns:x="http://biblio.com/ns">

<isbn>8435009165</isbn>

<sucursal>98-283843</sucursal>

</x:detalleLibro>

</soap:Body>

</soap:Envelope>

Page 61: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services X

Descripción.

Esta capa ofrece un mecanismo para describir la funcionalidad de un WS. Hoy en día el estándar utilizado para cubrir este proposito es WSDL (Web Service Description Languaje).

Page 62: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services XII

Descubrimiento.

Para disponer y utilizar un WS, primero hay que encontrarlo

UDDI (Universal Description Discovery and Integration) es la iniciativa para crear un directorio global de WS’s.

Page 63: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

Web Services XIII

•Red

•Transporte

•Empaquetamiento

•Descripción

•Descubrimiento

Estructura de un WS en capas

Page 64: Introducción a XML

XMLXML

martes, 07 de noviembre de 2006

slideshare.net

http://www.w3c.org

http://www.w3schools.com/

http://www.javahispano.org

Libros:

•XML. La guía total del programador.

Francisco Minera. MP Ediciones. Argentina 2006

•XML In a nutshell

Elliote Rusty & W. Scott Means. O’Reilly 2004