Introducción a XML

Post on 13-Dec-2014

1.644 views 0 download

description

Un pequeño repaso a XML

Transcript of 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)

XMLXML

martes, 07 de noviembre de 2006

-Introducción

-Validaciones

-XPATH

-XQUERY

-XSLT

-Web Services

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.

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>

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

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“/>

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>

¿?¿?

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

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

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>

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>

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>

XMLXML

martes, 07 de noviembre de 2006

Introducción IX

XPATH XQUERY

XLINK XPOINTER

XSLT

XFORMS

SVG WSDL

XMLXML

martes, 07 de noviembre de 2006

Introducción X

XPATHXPATH XQUERYXQUERY

XLINK XPOINTER

XSLTXSLT

XFORMS

SVG WSDLWSDL

XMLXML

martes, 07 de noviembre de 2006

XMLXML

martes, 07 de noviembre de 2006

Validación I

XML bien formado

VS.

XML Válido.

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. 

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:

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.

XMLXML

martes, 07 de noviembre de 2006

Validación V

DTD Schemas

Relax NG NRL

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

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)>

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

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

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.

XMLXML

martes, 07 de noviembre de 2006

Validación XI

DTD SchemasSchemas

Relax NG NRL

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.......

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”/>

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”>

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

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.

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”>

XMLXML

martes, 07 de noviembre de 2006

Validación XVIII

Ejemplos

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>

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

XMLXML

martes, 07 de noviembre de 2006

XPATH II

XSLT

XLinkXLPointer

XQuery

XPathXPath

XMLXML

martes, 07 de noviembre de 2006

XPATH III

Nodos

•Raíz

•Elemento

•Atributo

•Texto

•Comentario e instrucción de procesamiento.

XMLXML

martes, 07 de noviembre de 2006

XPATH IV

Expresiones

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

//name

•/ para separar nodos

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

XMLXML

martes, 07 de noviembre de 2006

XPATH VI

Ejes:

child

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

/personnel/person/name

XMLXML

martes, 07 de noviembre de 2006

XPATH VII

Ejes:

ancestor

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

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

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

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)

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.

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.

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

XMLXML

martes, 07 de noviembre de 2006

XSLT I

eXtendible Stylesheet Languaje for Transformations.

Lenguaje Extensible de hojas de estilo para transformaciones.

XMLXML

martes, 07 de noviembre de 2006

XSLT II

XML Procesador XSLT

Salida

XMLHoja de

Estilo

XMLXML

martes, 07 de noviembre de 2006

XSLT III

Procesadores conocidos:

•Saxon

•Xalan

•XSLTProc

•4Suite

•Sablotron

XMLXML

martes, 07 de noviembre de 2006

XSLT IV

Elementos disponibles

•Templates

•Bucles (xsl:for each)

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

XMLXML

martes, 07 de noviembre de 2006

XSLT V

Funciones

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

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.

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.

XMLXML

martes, 07 de noviembre de 2006

Web Services III

•Red

•Transporte

•Empaquetamiento

•Descripción

•Descubrimiento

Estructura de un WS en capas

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).

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.

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

XMLXML

martes, 07 de noviembre de 2006

Web Services VII

Empaquetamiento.

Envelope

Header

Body

Cabecera #1

Cabecera #2

Cabecera ....

Estructura de un mensaje SOAP

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.

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>

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).

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.

XMLXML

martes, 07 de noviembre de 2006

Web Services XIII

•Red

•Transporte

•Empaquetamiento

•Descripción

•Descubrimiento

Estructura de un WS en capas

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