Home
Trasparencias - Departamento de Informática
Contents
1. new SimpleSAX SAXParser p new SAXParser p setContentHandler s try p parse args 0 catch Exception e e getMessage SAX ContentHandler Principales m todos que define esta interfaz setLocator startDocument endDocument startElement endElement Characters etc tera SAX Locator Proporciona una serie de m todos como getLineNumber y getColumnNumber que permiten saber la ubicaci n actual en el fichero XML donde tuvo lugar el ltimo evento S lo tiene validez dentro de un ContentHandler Se suele asignar a un atributo de la clase private Locator locator public void setDocumentLocator Locator locator this locator locator SAX Principio y final de un documento Se corresponden con los eventos startDocument y endDocument respectivamente Son siempre el primer y el ltimo m todo llamados no s lo dentro del ContentHandler sino en el proceso de an lisis completo Incluso en la presencia de otros manejadores como DTDhHandler SAX Una nota sobre las excepciones Muchos de los m todos de respuesta a eventos SAX como los dos anteriores declaran una excepci n SAXException Es el nico tipo de excepci n que puede lanzar un analizador SAX Cualquier otra excepci n ser encapsulada en sta Por ejemplo si se procesa un documento a trav s de la red y se produce una excepci n de entrada salida IOException A trav s del m todo getException se puede acceder a la excep
2. ISO 8859 1 gt lt videoclub gt lt pelicula titulo 2001 una odisea del espacio a o 1968 duracion 143 gt lt guion gt lt guionista gt Stanley Kubrick lt guionista gt lt guionista gt Arthur C Clarke lt guionista gt lt guion gt lt direccion gt lt director gt Stanley Kubrick lt director gt lt direccion gt lt sinopsis gt 2001 Una Odisea del Espacio es una cuenta atras hacia el futuro un mapa del destino humano una conquista del infinito un apasionante drama sobre el hombre que lucha contra la maquina lt sinopsis gt lt pelicula gt lt pelicula titulo Alien resurreccion a o 1998 duracion 105 gt lt pelicula gt lt videoclub gt Ejemplo videoclub xml Hacer un programa que muestre la siguiente informaci n acerca de cada pel cula T tulo a o de rodaje y duraci n Como esa informaci n est disponible en los atributos del elemento lt pelicula gt bastar con redefinir el m todo startElement Segundo ejemplo Ahora adem s de los datos anteriores mostrar la sinopsis de la pel cula C mo Necesitamos obtener el contenido del elemento lt sinopsis gt Para ello necesitamos redefinir el m todo characters Pero s lo nos vale cuando se est analizando ese elemento concreto Sugerencia Atributo que nos diga cu ndo estamos dentro del elemento lt sinopsis gt Redefinir los m todos startElement y endElement Atributo en el que iremos almacenando los caracteres
3. para XML DOM Caracter sticas DOM ofrece una interfaz gen rica descrita en IDL Independiente del lenguaje Independiente del fabricante Es responsabilidad del desarrollador producir la implementaci n para el lenguaje deseado Java C Perl Python El modelo est basado en objetos DOM Partes de DOM El n cleo fundamental Proporciona la interfaz b sica que puede representar cualquier documento XML HTML Extensi n para manipular documentos HTML DOM Elementos de DOM La base de DOM es un rbol de nodos No se especifica como tiene que ser la implementaci n de ese rbol de nodos Solo tiene que cumplir una interfaz Tipos de nodos Document Processinginstruction DocumentFragment Text Element Comment Attr CDATASection EntityReference Entity Notation DocumentType DOM Estructura jer rquica En DOM un documento XML se representa como un rbol Un analizador DOM genera autom ticamente dicho rbol a partir de un documento XML Crea la estructura completa en memoria de forma que puedan utilizarla las aplicaciones que trabajen con el documento DOM proporciona los m todos clases e interfaces necesarios para acceder al rbol y manipular su estructura o modificar sus elementos DocumentBuillder Factory Document Document Builder Qu genera DOM para el siguiente documento lt xml version 1 0 gt lt cartera de pedidos gt lt cliente gt Juan L pez lt clien
4. parsers SAXParserFactory parserFactory SAXParserFactory newinstance Configuraci n de la f brica parserFactory setValidating true javax xml parsers SAXParser parser parserFactory newSAXParser SAXParser es una clase envoltorio wrapper abstracta de org sax XMLReader Qu implementaci n se selecciona Se configura mediante una propiedad del sistema javax xml parsers SAXParserFactory Lo nico que hace es aislar al c digo de cualquier dependencia con un analizador SAX concreto Xerces o cualquier otro JAXP Obtenci n de un analizador DOM El uso de JAXP para obtener una implementaci n concreta de un analizador DOM sigue los mismos principios que acabamos de ver para SAX Tambi n en el paquete javax xml parsers est n las siguientes dos clases DocumentBuilder y DocumentBuilderFactory Al igual que con SAX la implementaci n concreta se selecciona a trav s de una propiedad del sistema javax xml parsers DocumentBuilderFactory JAXP Obtenci n de un analizador DOM DocumentBuilderFactory factory DocumentBuilderFactory newinstance Configuraci n de la f brica factory setValidating true DocumentBuilder parser factory newDocumentBuilder Document doc parser parser uri IDOM Trata de resolver las deficiencias de SAX DOM y JAXP Es una API espec fica del lenguaje Java y se sit a a un nivel de abstracci n mayor que las otras www jdom org Es m s c modo crear un docu
5. un esquema y generar por tanto documentos XML v lidos P gina inicial de JAXB http java sun com xml jaxb Hay una implementaci n de JAXB incluida en el Java Web Services Developer Pack JAXGB Funcionamiento A Esquema validar instancias de O Documento XML og lt xs schema gt lt xs element name alumnos gt lt xs complexType gt lt XS sequence gt lt xs element name alumno minOccurs 1 maxOccurs 200 type TipoAlumno gt lt xs sequence gt lt xs complexType gt lt xs element gt lt xs complexType name TipoAlumno gt lt xs sequence gt lt xs element name nombre type xs string gt lt xs element name apellidos type xs string gt lt xs element name nota minOccurs 0 maxOccurs 1 type xs float gt lt xs element name email minOccurs 0 maxOccurs 1 type xs anyURl gt lt xs sequence gt lt xs attribute name dni type xs string gt n XS SIENNE JAXB Ejemplo Generar clases a partir del esquema p nombre paquete gt xjc alumnos xsd p alumnos parsing a schema compiling a schema alumnostimplruntimeiSAXUnmarshallerHandler java alumnos implruntime Unmarshallerimpl java Compilar clases gt javac alumnos java Opcionalmente puede generarse documentaci n Javadoc gt javadoc package alumnos sourcepath d docs api windowtitle alumnos Pra cote cla lor as Ar de a PA DEF fea comia la lor aora complez
6. M Tratar su nombre y atributos o su valor getNodeName getNodeValue getNodeAttributes Devuelve un instancia de NamedNodeMap Representa una colecci n de nodos que son nicos con respecto al nombre A continuaci n hacer lo mismo para todos sus hijos getChildNodes Devuelve un instancia de NodelList DOM Ejemplo videoclub xml Hacer el mismo ejercicio que hab amos visto con SAX utilizando DOM Primero mostrar s lo el t tulo a o y duraci n de cada pel cula Hacerlo primero con un enfoque similar al anterior Luego probar a simplificarlo haciendo uso del m todo getElementsByTagName de Node Luego mostrar tambi n la sinopsis Recu rdese que el contenido de un elemento est disponible como un nodo hijo del mismo de tipo Text DOM Creaci n del documento La API de DOM define la interfaz DOMImplementation que permite crear un objeto Document Cada analizador concreto deber implementar dicha interfaz En el caso de Xerces lo hace la clase org apache xerces dom DOMImplementationimpl ste es el m todo que permite crear el documento public Document createDocument String namespaceURl String qualifiedName DocumentType doctype throws DOMException DOM Creaci n del documento DOMImplementation domimpl new DOMImplementationImpl Document doc domimpl createDocument null empleados null Las dos l neas anteriores crean en Xerces un objeto Document a mano Ahora ya podemo
7. Recordemos que puede haber varias llamadas a characters para un elemento dado SAX ErrorHandler Define tres m todos para el tratamiento de los distintos tipos de errores void warning SAXParserException void error SAXParserException void fatalError SAXParserException Todos ellos reciben informaci n sobre el error ocurrido a trav s de un objeto SAXParserException Contiene el n mero de l nea el URI del documento analizado un mensaje con la causa del error etc tera Cada uno puede lanzar a su vez una excepci n SAXException Si se dd una excepci n durante el tratamiento del error Tipos de error La mayor a de los avisos y los errores normales tienen que ver con la validaci n de los documentos Los errores fatales suelen ser relativos a la mala formaci n del documento Tambi n con la versi n de XML del documento lt xml version 1 2 gt Ejercicio crear un manejador ErrorHandler y probar algunos errores fatales SAXParserErrorDemo java Si el documento es inv lido se producen errores No porque por omisi n el analizador no valida hay que indic rselo SAX Configuraci n del analizador SAX 2 0 define un mecanismo est ndar para configurar ciertas propiedades de los analizadores de forma que sea f cil a adir otras nuevas a medida que sean aceptadas por el W3C sin tener que usar extensiones o m todos propietarios de cada implementaci n M todo Devuelve Par metros setProperty String prope
8. XML Servicios Web y Web Sem ntica Departamento de Inform tica Universidad de Oviedo Sesi n 7 Programaci n XML SAX DOM Enlaces Departamento de Inform tica Universidad de Oviedo Programaci n XML Los programas que manipulan XML realizan funciones similares An lisis del documento XML Sint ctico y Sem ntico Navegaci n por el documento Transformaci n del documento Generaci n de nuevos documentos XML Como XML deriva de SGML desde el principio se dispuso de herramientas Toda la tecnolog a SGML es v lida aqu Ahora ya hay herramientas espec ficas para XML Programaci n XML Principales m todos Guiada por eventos SAX Basada en el recorrido del rbol DOM Enlaces Bindings JAXB Programaci n XML SAX Modelos de eventos SAX Simple API for XML es un analizador basado en eventos Se define un modelo de eventos que se generan al analizar el documento XML Esquema del documento OS L gica de Validaci n la aplicaci n Documento XML Ejemplos de eventos generados start document start element pizzas start element pizza start element ingrediente end element ingrediente Procesamiento de XML DOM Modelos Basados en rbol DOM Document Object Model Se genera un rbol a partir del documento XML DOM Interfaz que define c mo recorrer modificar dicho rbol rbol del Validaci n Documento XML Problemas Ficheros grandes Soluci n Deferred document evaluaci n perez
9. a del prefijo del espacio de nombres y de la URI asociada a ese prefijo SAX Manejadores de contenido Elemento Indica el inicio y el fin de un elemento XML Informa del nombre del elemento y de los atributos que posee Permite recorrer los atributos mediante un bucle Los atributos pueden no estar ordenados Datos del elemento Los elementos anidados dentro de otros elementos generan llamadas recursivas hasta encontrar datos de tipo texto Informa de los datos mediante una matriz que contiene la informaci n extra da del documento XML No est claramente especificado si los datos se devuelven todos de una vez o mediante llamadas sucesivas SAX Manejadores de errores Sirve para tratar los errores que se puedan producir durante el an lisis Cada llamada recibe la informaci n a trav s de la excepci n SAXParseException Contiene el n mero de l nea La URI del documento XML que se est tratando Detalles de la excepci n Mensaje explicativo Traza de la pila 3 tipos Avisos warning errores y errores fatales SAX Ejemplo SimpleS AX import java io import org xml sax import org xml sax helpers import org apache xerces parsers SAXParser public class SimpleSAX extends DefaultHandler public void startElement String ns String local String qName Attributes atts System out printin startElement local public static void main String args throws SAXException SimpleSAX s
10. ci n subyacente SAX Elementos Hay tres eventos SAX que nos permiten acceder al contenido en s del documento analizado El principio y final de los elementos y el m todo characters startElement proporciona informaci n sobre un elemento XML Nombre Espacio de nombres si lo hubiera Atributos En un objeto org xml sax Attributes Similar a una lista o vector endElement es muy similar al anterior pero para el final del elemento SAX Contenido de un elemento Una vez que hemos visto c mo saber el principio y fin de un elemento y los atributos de ste es necesario poder acceder al contenido del mismo Puede estar formado por elementos hijos informaci n textual o una combinaci n de ambos A dicha informaci n textual se accede mediante el m todo characters en forma de un array de caracteres void characters char ch int start int length SAX Sobre el m todo characters SAX no define c mo se devolver n grandes porciones de datos textuales a trav s de este m todo Puede ser en una nica llamada pero tambi n podr an partirse en varias invocaciones al m todo characters Y hay tambi n que tener en cuenta el car cter secuencial del procesamiento mediante SAX Qu eventos tendr n lugar para el siguiente fragmento de XML lt padre gt Esto es lt hijo gt hola lt hijo gt un ejemplo lt padre gt Ejemplo videoclub xml Sea el siguiente documento XML lt xml version 1 0 encoding
11. icaci n SAXParser Factory f Handler E _ _ _ _ _ SAXParser Y Es am T n a DTD Handler Entity Resolver SAX Manejadores est ndar ContentHandler permite manejar eventos relacionados con los datos de un documento XML ErrorHandler recibe informaci n sobre errores en los datos del documento XML DTDHandler permite manejar eventos relacionados con el an lisis de un DTD No atiende a eventos relacionados con la validaci n Poco usado EntityResolver analiza entidades externas que se especifican en el documento XML que se est analizando SAX Manejadores de Contenido Localizador de documento Se llama siempre que ocurre un evento Permite conocer qu parte del documento XML se est analizando l nea y columna Comienzo del documento startDocument Indica el comienzo del an lisis Es el primero de todos los m todos que se llama Fin del documento endDocument Indica el fin del an lisis Es el ltimo de todos los m todos que se llama SAX Manejadores de Contenido Instrucciones de proceso Son directivas para la aplicaci n que est trabajando con el documento XML y no se consideran elementos XML Cocoon las utiliza para indicar como presentar los datos una vez analizados Informa del destino de la instrucci n de proceso target y los datos data Espacio de nombres Indica el comienzo y el fin de un espacio de nombres en el documento XML Inform
12. mento XML a mano desde Java empleando JDOM que DOM Es similar a DOM en el sentido de que tambi n genera un rbol pero no est construido sobre l IDOM Estructura de paquetes org dom input org dom output org dom adapters org dom transform org jdom filter org dom xpath IDOM Element Algunos ejemplos Algunos ejemplos de c mo se accede al contenido de un elemento 11 Obtener el elemento ra z Element root doc getRootElement Obtener una lista con todos sus hijos List allChildren root getChildren Obtener los hijos de un nombre dado List namedChildren root getChildren nombre S lo el primer elemento que concuerde con un nombre List child root getChild nombre Adem s la lista es una List de Java IDOM Contenido de un elemento lt desc gt Una demo lt desc gt El texto est disponible directamente En DOM es necesario acceder al elemento hijo de tipo Text pod a haber m s de uno String desc element getText Devuelve n Una demo n Hay un m todo m s pr ctico String desc element getTextTrim Devuelve Una demo JAXGB Modelo basado en enlaces Facilita la correspondencia entre documentos XML y clases Java y viceversa Incluye un compilador y un entorno en tiempo de ejecuci n El compilador traslada un esquema de XML a clases Java autom ticamente El entorno en tiempo de ejecuci n es capaz de validar dichas clases frente a
13. osa Procesamiento de XML TAXB Enlaces JAXB Java API for XML Binding A partir del esquema del documento se generan clases de enlace Permite trabajar con objetos de la aplicaci n Generaci n autom tica de documentos v lidos Esquema del documento clases L gica de enlace la aplicaci n Documento XML Modelo basado en eventos SAK SAX SAX API simple para XML Creada por desarrolladores XML a partir de los comentarios en la lista xml dev en 1998 Funcionamiento Durante el reconocimiento del documento Cada vez que se identifica una estructura elemento se mira si hay un procedimiento que manipula ese elemento se llama al procedimiento Cuando termina continua con el reconocimiento Los procedimientos permiten procesar el documento guiado por eventos Los eventos son las ocurrencias de los elementos a los que hacen referencia Los datos son los elementos asociados con el elemento identificado SAX Manejadores de contenido Son los procedimientos que se invocan cuando se identifica un elemento El c digo solo se ejecuta cuando el analizador identifica el elemento correspondiente Esto permite no tener que cargar todo el documento en memoria Es la tecnolog a m s eficiente de manipulaci n de documentos XML Sobre todo para documentos muy extensos SAX Manejadores de contenido SAX define cuatro manejadores de contenido Todos los dem s los tiene que construir el programador de la apl
14. pa public class Main public static void main String args try JAXBContext jc JAXBContext newinstance alumnos Unmarshaller u jc createUnmarshaller Alumnos als Alumnos u unmarshal new FilelnputStream uri TipoAlumno a TipoAlumno als getAlumno get 0 for Iterator it als getAlumno iterator it hasNext TipoAlumno a TipoAlumno it next System out printin Alumno dni a getDni nota a getNota
15. rtylD Object value setFeature String featurelD boolean state getProperty Object String propertylD getFeature boolean String featurelD SAX Propiedades y funcionalidades Una propiedad property necesita de alg n objeto para que pueda ser utilizada Una funcionalidad feature por el contrario no es m s que un interruptor empleado por el analizador para determinar si est o no activado un tipo determinado de procesamiento Por ejemplo si debe validar el documento SAX Activar la validaci n En SAX 2 0 basta con la siguiente l nea parser setFeature http xml org sax features validation true En Xerces esto activa la validaci n frente a un DTD Si quisi ramos validar frente a un esquema habr a que activar tambi n la siguiente feature http apache org xml features validation schema DOM Modelo de Objetos de Documento DOM Or genes DOM Modelo de Objetos de Documento Origen en el Consorcio World Wide Web W3C Es una interfaz independiente de la plataforma y el lenguaje de programaci n que permite acceder y manipular din micamente el contenido el estilo y la estructura de un documento La norma se define en niveles en lugar de versiones Nivel 1 describe la funcionalidad y el modo de navegar por un modelo general Nivel 2 se centra en tipos de documentos espec ficos XML HTML CSS Nivel 3 mas facilidades en tipos de documentos espec ficos validaci n
16. s acceder a los m todos de fabricaci n de Document para crear elementos atributos etc DOM Ejemplo de creaci n de un rbol Crear un rbol DOM que represente el siguiente documento XML lt xml version 1 0 encoding ISO 8859 1 gt lt profesores gt lt persona gt lt nombre gt C sar F Acebal lt nombre gt lt correo e gt acebal uniovi es lt correo e gt lt url gt www cfacebal com lt url gt lt persona gt lt persona gt lt nombre gt Jos E Labra Gayo lt nombre gt lt correo e gt labraAlsi uniovi es lt correo e gt lt url gt www di uniovi es Jabra lt url gt lt persona gt lt profesores gt Otras API Para concluir con el procesamiento de documentos XML veremos otras dos interfaces de programaci n de aplicaciones API espec ficas del lenguaje Java y que se sit an por tanto a un mayor nivel de abstracci n que SAX y DOM JAXP y JDOM Java API for XML Processing JAXP Desarrollada por Sun esta sencilla API proporciona una capa de abstracci n sobre SAX o DOM para hacer independiente a la aplicaci n de la implementaci n concreta del analizador utilizado http java sun com xml axp index jsp Soporta An lisis de documentos SAX 2 0 y DOM Level 2 Transformaci n mediante XSLT Se incluye en la Java Standard Edition JSE javax xml JAXP Panor mica de JAXP Nuevo en la versi n 1 1 JAXP API JAXP Obtenci n de un analizador SAX con JAXP javax xml
17. te gt lt tienda gt Librer a Delaesquina lt tienda gt lt mercancias gt lt libro gt lt titulo gt Pedro Salinas Obras completas lt titulo gt lt libro gt lt mercanc as gt lt tienda gt lt cartera de pedidos gt rbol generado cartera de pedidos cliente tienda mercanc as Juan L pez Librer a libro Delaesquina nombre Pedro Salinas Obras Completas Creaci n del analizador A diferencia de SAX DOM s lo define las clases e interfaces necesarias para representar y manipular el documento como un rbol No hay por tanto una clase est ndar para el analizador Deberemos crear una instancia de la proporcionada por nuestra implementaci n concreta en este caso Xerces DOMParser parser new DOMParser import org apache xerces parsers DOMParser import org w3c dom Document public class SimpleDOM public SimpleDOM String uri throws Exception 1 System out printin Analizando el documento uri DOMParser parser new DOMParser parser parse uri Document document parser getDocument public static void main String args throws Exception 1 If args length 1 System out printin Modo de empleo SimpleDOM fichXML System exit 0 new SimpleDOM args 0 DOM Resultado del an lisis rbol DOM C mo accedemos a la estructura resultante del an lisis DOM El m todo parse no devuelve nada Es necesario llamar a getDocument De
18. vuelve un objeto org w3c dom Document DOM Jerarqu a de clases i Comment CharacterDlata a EA omment Document Documentrragment Mode Document ype Element Enti EntityRreference Motation Processinalnstruction DOM Node Es la interfaz base de todo el modelo de objetos de documento Representa un nodo cualquiera del rbol DOM Provee una serie de m todos para acceder al nombre del nodo actual sus atributos sus hijos si los tuviera etc Tambi n indica el tipo de nodo concreto de que se trata si es un elemento un atributo una entidad Lo hace a trav s del m todo getNodeType y de unas constantes p blicas definidas en esta clase DOM Conocer el tipo de nodo El pseudoc digo habitual en cualquier procesamiento DOM es algo similar a esto tratarNodo Node nodo switch nodo getNodeType 1 case Node DOCUMENT_NODE case Node ELEMENT_NODE case Node ATTRIBUTE_NODE DOM Document Representa al documento completo Es un caso particular de nodo ya que contiene tanto el elemento ra z como el DTD del documento y m s informaci n especial relativa al documento completo y que no est en la jerarqu a del mismo Mediante getDocumentElement se accede al elemento ra z case Node DOCUMENT_NODE m out orintin xml version A gt Document doc Document nodo hacerAlgo doc getDocumentElement break DOM Element Una de las tareas m s comunes ser trabajar con elementos DO
Download Pdf Manuals
Related Search
Related Contents
15468 DESIDERIO AUT per pdf Samsung Laserskrivere Monolaser ML-3310D Bruksanvisning CompleteView™ Administrator User Manual - SMG XYZ プリンティングジャパン、「モデルオーバーコート」の販売を開始 télécharger le document PDF - Act Up SkyReach Anker BEDIENUNGSANLEITUNG LG RU-17LZ50C User's Manual Instruction Manual Copyright © All rights reserved.
Failed to retrieve file