Post on 13-Dec-2014
description
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