Академический Документы
Профессиональный Документы
Культура Документы
M. D. Lpez De Luise
Objetivo
Presentar XML y las herramientas de Java para su manejo
Temario
Por qu integrar XML con Java. Algo de sintaxis XML. Lectura/escritura de XML con Java. Serializacin XML. Protocolos XML: XML-RPC y SOAP
0
M. D. Lpez De Luise
datos portables
cdigo portable
0
M. D. Lpez De Luise
def XML lenguaje del tipo markup para intercambio estandarizado de datos caractersticas cil intercambio ersonalizable y adaptable rchivos son autodocumentados intaxis describe sencillamente estructuras complejas lo se dedica a describir datos y su estructura o describe la presentacin de datos (Vs html) epara estructura de la presentacin de datos ermite describir datos en un archivo autocontenido e apoya en Stylesheet (XSL) para convertirse en html e apoya en DTD 0 e apoya en XML schemas
M. D. Lpez De Luise
<nomtag> texto </nomtag> <nomtag> elemento </nomtag> <nomtag> texto elemento </nomtag> <nomtag> elemento texto </nomtag>
subelemento
start - tag Root element: Si engloba a todos los dems Elemento vaco:
<nomtag/> <nomtag></nomtag> 0
M. D. Lpez De Luise
end - tag
on propiedades de los elementos a los que acompaan on pares nombre-valor on nicos dentro del mismo tag
Vs
subelementos
(no necesariamente)
formatos posibles
<nonTag atributo=valor> </nomTag> <nonTag> <atributo>valor</atributo> </nomTag> 1
M. D. Lpez De Luise
2
M. D. Lpez De Luise
<restaurant>
<menu>
<menugroup>
<menuitem>
0
M. D. Lpez De Luise
EJEMPLO stylesheet.xsl Un XSL stylesheet: es un documento XML <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="..."> . . namespace usado para reconocer . los elementos XSL <xsl:template match="pattern"> template una regla tipo template </xsl:template> . . otros elementos . </xsl:stylesheet>
0
M. D. Lpez De Luise
eglas de la gramtica elegida (MathML, Scalable Vector Graphics...) nifica intercambio de datos con terceros
tij_menu.xml
M. D. Lpez De Luise
(XSD) esuelve colisiones de un nombre de tag con uno definido por la gramtica tipos efine un conj. de nombres y describe los elementos permitidos en su dominio atributos n tipo de namespace frecuente es el XML Schema (cuando est dentro de un XML).
namespace <oficina xmlns:xsi=http://www.daniela.com/2005/XMLSchema-instance xsi: noNamespaceSchemaLocation=tij_menu.xsd> archivo de definicin del schema atributo perteneciente al namespace prefijado con xsi namespace seguido con : para identificar el dominio del nombre 2
M. D. Lpez De Luise
url
complejos
elementos olo tienen datos simples (ej integer,string, decimal, time, etc) ienen definidos en XSD
simples
2
M. D. Lpez De Luise
eclaraciones de tipo para elementos simples: <xsd:element name=price type=xsd:string> eclaraciones de tipo para elementos comlejos: <xsd:complexType name=price> <xsd:base=decimal/> <xsd:attribute name=currency type=string minOccurs="1 maxOccurs=unbounded /> </xsd:complexType> opcional
0
M. D. Lpez De Luise
(note.xml)
(note.xsd)
fragmentos lenguaje usado en XSL Style Sheets para transformar documentos XML A una distinta representacin
XML
html
0
M. D. Lpez De Luise
1 Business-card.xml:
<card type="simple"> <name>John Doe</name> <title>CEO, Widget Inc.</title> <email>john.doe@widget.com</email> <phone>(202) 456-1414</phone> </card>
JohnDoe Doe John CEO,Widget WidgetInc. Inc. CEO, email:john.doe@widget.com john.doe@widget.com email: phone(202) (202)456 456--1414 1414 phone
Copyright John Doe w3c
1
M. D. Lpez De Luise
EJEMPLO usando xslt 2 Definimos una semantica.XHTML para nuestra business-card usando una stylesheet XSLT : <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0" xmlns="http://www.w3.org/1999/xhtml"> <xsl:template match="card[@type='simple']"> <html xmlns="http://www.w3.org/1999/xhtml"> <title>business card</title><body> <xsl:apply-templates select="name"/> <xsl:apply-templates select="title"/> <xsl:apply-templates select="email"/> <xsl:apply-templates select="phone"/> </body></html> </xsl:template> <xsl:template match="card/name"> <h1><xsl:value-of select="text()"/></h1> </xsl:template>
0
M. D. Lpez De Luise
EJEMPLO usando xslt <xsl:template match="email"> <p>email: <a href="mailto:{text()}"><tt> <xsl:value-of select="text()"/> </tt></a></p> </xsl:template> ... </xsl:stylesheet>
<html xmlns="http://www.w3.org/1999/xhtml"><title>business card</title> <body><h1>John Doe</h1><h3><i>CEO, Widget Inc.</i></h3> <p>email: <a href="mailto:john.doe@widget.com"><tt>john.doe@widget.com</tt></a></p> <p>phone: (202) 456-1414</p> </body></html>
4 El browser mostrar:
0
M. D. Lpez De Luise
BBB
/AAA/DDD/BBB: selecciona los elementos de BBB
M. D. Lpez De Luise
(XML Linking Language) enguaje que permite embeber links unidireccionales y bidireccionales hacia otros recursos en documentos XML (ej. archivos, imgenes, documentos, programas, resultados de querys)
XLink es un estndar W3C. XLink permite hacer links con archivos XML (o partes) XLink se basa en XPath. XLink permite implementar hiperlinks entre docs. XML (c/html) XLink permite asociar un link con metadatos
0
M. D. Lpez De Luise
es una especificacin que define una URI de un recurso especfico de manera estndar. Uniform Resource Identifiers para recursos de tipo text/xml application/xml text/xml-external parsed entity application/xml-external-parsed-entity
0
M. D. Lpez De Luise
1 URI opaca
absoluta relativa
2 URI jerrquica
absoluta relativa [user-info@]host[:port]
scheme-specific-part [scheme:][//authority][path][?query][#fragment] 1
M. D. Lpez De Luise
#Introduction
ubica un ID
0
M. D. Lpez De Luise
interpreta XML (parsing) java API indep. de cualquier procesador XML manipula docs. XML con Java
0
M. D. Lpez De Luise
0
M. D. Lpez De Luise
DOM
0
M. D. Lpez De Luise
erifica la validez de un XML verifica que est bien formado (tags sin terminar o mal escritos) verifica que est correcto contra un DTD o XML Schema ratuito ermite manejar un XML programticamente
0
M. D. Lpez De Luise
def SAX: SAX (Simple API for XML) permite insertar cdigo de aplicacin ante determinados eventos durante el parseo XML
ventaja: ventaja permite manejo secuencial del archivo sin necesidad de cargarlo ntegramente en memoria
0
M. D. Lpez De Luise
0
M. D. Lpez De Luise
se manejan por mtodos invocados por callback automticamente por XMLparser durante el parsing
interfaces disponibles en SAX 2.0: org.xml.sax.ContentHandler org.xml.sax.ErrorHandler org.xml.sax.DTDHandler se registran con: org.xml.sax.EntityResolver parser.setContentHandler() parser.setErrorHandler() parser.setDTDHandler parser.setEntityResolver()
0
M. D. Lpez De Luise
0
M. D. Lpez De Luise
0
M. D. Lpez De Luise
0
M. D. Lpez De Luise
0
M. D. Lpez De Luise
validating parser def DOM: DOM Document Object Model, representacin estndar del documento y el modela de documentos XML independientemente de las plataformas caractersticas s API para XML documents ratuito omo todo parser permite manejar un XML programticamente ay bindings en Java, JavaScript, C++, CORBA, Python, Perl, etc. onstruye en memoria un rbol de representacin del documento completo os datos no son usables hasta que se termin el parsing e supone que el arbol en memoria se procesar con una API DOM encilla manipulacin de elementos del rbol (del documento modelado) 0
M. D. Lpez De Luise
una breve historia DOM level 0 DOM level 1 DOM level 2 modelo de objetos no totalmente estndar de Explorer y Navigator primer estndar para modelar objetos organiza las interfaces agrega tratamiento de namespaces e interfaces p/eventos agrega rangos, views y style sheets es el estndar actualmente ms distribuido ltima versin agrega soporte para reconstruir un objeto Documento agrega soporte para procesar schemas DTD
DOM level 3
0
M. D. Lpez De Luise
rovee visibilidad OO del documento xml ecuencia de caracteres tokens estructura en memoria rovee api para recorrer la estructura y manipular tokens interface Node ELEMENT_NODE
TEXT_NODE CDATA_SECTION PROCESSING_INSTRUCTION_NODE Node parentNode() Node[] childNodes() getDocumentElement() getFirstChild() getNextSibling() interface interface interface
Element CharacterData
Attribute
mtodos para administrar componentes de un Nodo mtodos para crear Nodo mtodos para modificar Nodo ABM programtico sobre el documento XML
1
M. D. Lpez De Luise
SAX
DOM
o necesita cargar todo el documento cceso secuencial al documento arsea cualquier tamao de documento
VS VS
emoria de tamao suficiente para el tamao del documento cceso random a elementos del documento cil manejo de bsquedas complejas o permite serializar fcilmente los datos para reconstruccin en otro programa
e puede construir otra estructura de memoria que no sea rbol ficiente si solo se necesita acceder a una pequea porcin del documento 0
M. D. Lpez De Luise
validating parser rabaja con SAX 2.0 + DOM Level 2 omo parser Java se lo denomnina xerces-J ratuito: xml.apache.org omo todo parser permite manejar un XML programticamente ermite serializar
0
M. D. Lpez De Luise
0
M. D. Lpez De Luise
serializar
pasarlo por una network/text file/Output Stream con xerces-J viene el package serialize que serializa (basado slo en DOM docums DOM sobre OutputStreams. DOMBuilder DOMWriter
con las interfaces con DOM 3: incluye package para Load y Save para administrar documetnos DOM a travs de programas de manera independientede la implementacion ventaja contra XMLSerializer: no se limita a volcar documentos, fragmentos o elementos. Puede volcar a cualquier tipo de nodo y con filtros personlaizados 1
M. D. Lpez De Luise
0
M. D. Lpez De Luise
XML-RPC
DEF: es un protocolo que implementa el RPC de Java codificado en XML. Tipos de datos:
vector sin claves <array><data> <value><i4>14</i4></value> <value><string>esta es una pba</string></value> <value><i4>1900</i4></value> </data> </array> <base64>eW91IGNhbid0IHJlYWQgdGhpcyE=</base64> <boolean>1</boolean> <dateTime.iso8601>19980717T14:08:55</dateTime.iso8601> <double>-12.53</double> <i4>42</i4> <string>Hello world!</string> <struct> <member><name>d1</name> <value><i4>1</i4></value></member> <member><name>d2</name><value><i4>2</i4></value></member> </struct>
dato binario en base 64 dato booleano (0 o 1) dato date/time dato precisin double dato integer dato String vector con claves 0
M. D. Lpez De Luise
XML-RPC: JAX-RPC DEF: (Java API for XML-based RPC) es un service endpoint definido e implementado en Java.
usable por clientes en cualquier lenguaje/ plataforma clientes Java pueden invocar RPC - XML de plataformas no Java
EJEMPLO Service endpoint JAX-RPC: Service Definition Interface: StockQuoteProvider package com.example; public interface StockQuoteProvider extends java.rmi.Remote { public float getLastTradePrice (String tickerSymbol) throws java.rmi.RemoteException; // .. otros metodos remotos } 0
M. D. Lpez De Luise
XML-SOAP def:Simple Object Access Protocol), protocolo liviano de mensajera basado en XML. def:
caractersticas:
usado para Web services independiente del S.O. compatible con una serie de protocolos
0
M. D. Lpez De Luise
Aplicaciones
ServiceGlobe
UDDI* para administrar servicios
Empresa, grupo fsico o lgico que ofrece uno o ms servicios Web XML.
Entidad proveedora
DSS
Servicio Pedido
Servicio
tModel
DSS
Patrn de binding
Documento WSDL
0
*UDDI: Universal, Description, Discovery and Integration M. D. Lpez De Luise
Aplicaciones
<env:Envelope xmlns:env="..."> Mensaje SOAP* para solicitar servicios al HS <env:Header> <Context El modelo de contexto xmlns="http://sg.fmi.uni-passau.de/context"> Sobre SOAP <Client> Encabezado SOAP <Hardware> Bloque encabezado: Contexto Tipo contexto: <Defaults> Bloque contexto Ubicacin http://example.com/PDA </Defaults> Tipo contexto: Bloque contexto <ScreenSize>320x320</ScreenSize> Cliente <IsColorCapable>Yes</IsColorCapable> Bloque encabezado </Hardware> </Client> </Context> Cuerpo SOAP </env:Header> <env:Body> <!-- serialized object data --> </env:Body> 0 </env:Envelope>
M. D. Lpez De Luise
ServiceGlobe
M. D. Lpez De Luise