La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

1  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 1  2006 Universidad de Las Américas - Escuela de Ingeniería.

Presentaciones similares


Presentación del tema: "1  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 1  2006 Universidad de Las Américas - Escuela de Ingeniería."— Transcripción de la presentación:

1 1  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 1  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Clase 10: Introducción a los Datos Semiestructurados y XML ACI – 843 JAVA II

2 2  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 2  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda AboyObjetivos Conocer que son los datos semiestructurados. Comprender diferencias entre documentos XML bien formados y documentos válidos. Utilizar apropiadamente las definiciones de tipo de documento (DTD) para especificar la sintaxis válida de un documento XML. Emplear apropiadamente XML en el desarrollo de aplicaciones Web.

3 3  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 3  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda AboyContenidos Introducción a XML Presentar Documentos XML Transformar XML Convertir XML a Objetos del Lado del Servidor El Entorno de Software –API Simple para XML (SAX) –Document Object Model (DOM) Conclusiones Referencias

4 4  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 4  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda AboyPresentación El "Extensible Markup Language" (XML) se ha convertido en el formato estándar de facto para la representación de datos en Internet. Los datos XML se pueden procesar e interpretar en cualquier plataforma: desde un dispositivo de mano hasta un computador mainframe. Es un compañero perfecto para las aplicaciones Java que necesitan datos portables. Java es el lenguaje de programación ganador para utilizar con XML. La mayoría de los analizadores de sintaxis de XML se escriben en Java, y proporciona una colección comprensiva de APIs Java pensada específicamente para construir aplicaciones basadas en XML.

5 5  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 5  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Presentación (2) La tecnología JavaServer Pages (JSP) tiene acceso a todo esto, puesto que puede utilizar todo el poder de la plataforma Java para acceder a objetos del lenguaje de programación para analizar y transformar documentos XML. JSP se ha diseñado con XML en mente: ¡Puede escribirse una página JSP como un documento XML! Esta clase realiza una breve introducción a XML y luego muestra como: –Presentar documentos XML –Generar XML usando JSP –Analizar documentos XML usando "Simple Access API for XML" (SAX) y "Document Object Model" (DOM) –Usar SAX y DOM en JSP –Transformar XML en otros lenguajes de marcas.

6 6  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 6  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda AboyHistoria XML proviene de un lenguaje inventado por IBM en los años '70, llamado GML (General Markup Language), que surgió por la necesidad que tenía la empresa de almacenar grandes cantidades de información.IBMGML Este lenguaje gustó a la ISO, por lo que en 1986 trabajaron para normalizarlo, creando SGML (Standard General Markup Language), capaz de adaptarse a un gran abanico de problemas.SGML A partir de él se han creado otros sistemas para almacenar información. En el año 1989 se creó el lenguaje HTML que fue utilizado para la WWW, el cual ha crecido de manera descontrolada, no cumpliendo todos los requisitos que pedía la sociedad global de Internet, a pesar de los esfuerzos del W3C de poner orden y establecer reglas y etiquetas para su estandarización. En 1998 esta entidad empezó el desarrollo de XML, en el que aún continúa.

7 7  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 7  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Objetivos y usos de XML El XML se creó para que cumpliera varios objetivos: Que fuera idéntico a la hora de servir, recibir, y procesar la información del HTML para aprovechar toda la tecnología implantada de este. Que fuera normal y conciso desde el punto de vista de los datos y la manera de guardarlos. Que fuera extensible, para que lo puedan utilizar en todos los campos del conocimiento. Que fuese fácil de leer y editar. Que fuese fácil de implantar, programar y aplicar a los distintos sistemas.

8 8  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 8  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda AboyVentajas Comunicación de datos. Si la información se transfiere en XML cualquier aplicación podría escribir un documento de texto plano con los datos que estaba manejando en formato XML y otra aplicación recibir esta información y trabajar con ella. Migración de datos. Si trabajamos en formato XML sería muy sencillo mover datos de una base de datos a otra. Aplicaciones Web. Con XML hay una sola aplicación que maneja los datos y para cada navegador podemos tener una hoja de estilo o similar para aplicarle el estilo adecuado.Web

9 9  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 9  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy ¿Qué es XML? XML es un metalenguaje usado para definir documentos que contienen datos estructurados. Las características y beneficios del XML se pueden agrupar en estas áreas principales: Extensibilidad: como metalenguaje, XML puede usarse para crear sus propios lenguajes de marcas. Hoy en día existen muchos lenguajes de marcas basados en XML, incluyendo "Wireless Markup Language" (WML). Estructura precisa: HTML sufre de una pobre estructura que hace difícil procesar eficientemente documentos HTML. Por otro lado, los documentos XML están bien estructurados, cada documento tiene un elemento raíz y todos los demás elementos deben estar anidados dentro de otros elementos. Extensión Poderosa: Como se mencionó anteriormente, XML sólo se usa para definir la sintaxis. En otras palabras, se usa para definir contenido. Para definir la semántica, el estilo o la presentación, necesitamos usar "Extensible Stylesheet Language" (XSL). Observe que un documento podría tener múltiples hojas de estilo que podrían ser usadas por diferentes usuarios.

10 10  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 10  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Tipos de documentos Hay dos tipos principales de documentos XML. Documentos Válidos: un documento XML válido está definido por una "Document Type Definition" (DTD), la gramática del documento, que define cuales tipos de elementos, atributos y entidades podría haber en el mismo. El DTD define el orden y también la ocurrencia de elementos. Documentos Bien-Formateados: un documento XML bien formateado no tiene que adherirse a una DTD, pero debe seguir dos reglas: 1)Todo elemento debe tener una etiqueta de apertura y otra de cierre. 2)Debe haber un elemento raíz (root) que contenga todos los otros elementos. Nota: Un documento bien formateado es manejable si el documento es simple, o cuando se procesan estructuras sencillas a través de la red cuando no hay problemas de ancho de banda, ya que no tiene la sobrecarga de un DTD complejo.

11 11  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 11  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Estructuras: Namespaces, Schemas y DTD's Debido al principio de XML: estructuras de datos describiendo a otras estructuras de datos, es posible definir cualquier estructura definiendo cualquier información y es debido a esta flexibilidad que surgen las siguientes incógnitas: –¿Qué orden debe llevar la estructura de un documento XML? –¿Es posible que dos elementos se encuentren contiguos? –¿Es válido que algún elemento llamado automóvil contenga el atributo modelo? –¿Si no se especifica el atributo precio en el elemento producto será asignado un valor "default"? Si bien XML permite definir estructuras flexibles de información, conforme empieza a crecer un desarrollo con XML, éste puede tornarse arbitrario si no son definidos mecanismos de su estructura. Debido a esto, surgieron las estructuras para definir XML.

12 12  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 12  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Forma Extendida de Backus y Naur Los DTD's son documentos definidos en el formato Extended Backus Naur Form (EBNF) los cuales provienen de SGML y forman una fuerte base de éste. El ejemplo más claro son los DTD's utilizados para HTML: (empleados por todo navegador hoy en día) http://www.w3.org/TR/REC- html40/sgml/dtd.html http://www.w3.org/TR/REC- html40/sgml/dtd.html Lamentablemente el uso de DTD's no es solamente complejo (debido al formato EBNF) sino también ineficiente; esa ineficiencia se debe a la falta de apoyo para Namespaces.

13 13  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 13  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Espacios de nombres ( Namespaces ) El concepto de "Namespaces" surge de la necesidad de combinar diferentes vocabularios en XML: Suponga que esta trabajando con sus proveedores | clientes y estos le facilitan su información en XML, debido a que están en la misma industria es muy probable ya utilicen elementos en común como, o. Si se desarrolla una aplicación que haga uso de estos elementos comunes es mediante Namespaces que se elimina la ambigüedad que pudiera surgir entre sus definiciones y aquellas de sus clientes | proveedores, para hacer uso de Namespaces se requiere utilizar Schemas.

14 14  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 14  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Esquemas ( Schemas ) Schemas es una especificación que permite el uso de Namespaces y al igual que DTD's define las estructuras que tomará un documento XML. La principal ventaja de Schemas, a diferencia de DTD's, está en que un Schema se encuentra definido en puro XML, mientras un DTD utiliza el lenguaje EBNF. Al utilizarse XML para definir Schemas no sólo se goza de Namespaces y mayor expresividad comparado con EBNF, sino que también permite a un programador familiarizado con XML generar estructuras sin la necesidad de comprender el antiguo formato EBNF.

15 15  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 15  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy DTD: Definición de Tipos de Documento Son definiciones de los elementos que puede incluir un documento XML, de la forma en que deben hacerlo (qué elementos van dentro de otros) y los atributos que se les puede dar. Normalmente la gramática de un lenguaje se define mediante notación EBNF, que es bastante engorrosa. El DTD hace lo mismo pero de una manera más intuitivo. Hay varios modos de referenciar un DTD en un documento XML: –Incluir dentro del documento una referencia al documento DTD en forma de URI (Universal Resource Identifier, o identificador universal de recursos) y mediante la siguiente sintaxis: En este caso la palabra SYSTEM indica que el DTD se obtendrá a partir de un elemento externo al documento e indicado por el URI que lo sigue, por supuesto entrecomillado. –Incluir el DTD dentro del propio documento.

16 16  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 16  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy DTD’s (2) La forma de incluir el DTD directamente como en este ejemplo pasa por añadir a la declaración <!DOCTYPE y después del nombre del nombre del tipo de documento, en vez de la URI del DTD, el propio DTD entre los símbolos '[' y ']'. Todo lo que hay entre ellos será considerado parte del DTD. La definición de los elementos es bastante intuitiva: después de la cláusula <!ELEMENT se incluye el nombre del elemento (el que luego se indicara en la etiqueta), y después diferentes cosas en función del elemento. Entre paréntesis, si el elemento es no vacío, se indica el contenido que puede tener el elemento: la lista de elementos hijos o que descienden de él si los tiene, separados por comas; o el tipo de contenido, normalmente #PCDATA, que indica datos de tipo texto, que son los más habituales. Si es un elemento vacío, se indica con la palabra EMPTY.

17 17  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 17  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Estructura del DTD El DTD, por ser precisamente la definición de esa jerarquía, describe precisamente la forma de ese árbol. La diferencia (y la clave) está en que el DTD define la forma del árbol de elementos, y un documento XML válido puede basarse en ella para estructurarse, aunque no tienen que tener en él todos los elementos, si el DTD no te obliga a ello. Un documento XML bien formado sólo tendrá que tener una estructura jerarquizada, pero sin tener que ajustarse a ningún DTD concreto.

18 18  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 18  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Estructura del DTD (2) Para la definición de los atributos, se usa la declaración <!ATTLIST, seguida de: –el nombre de elemento del que estamos declarando los atributos; –el nombre del atributo; –los posibles valores del atributo, entre paréntesis y separados por el carácter |, que al igual que para los elementos, significa que el atributo puede tener uno y sólo uno de los valores incluidos entre paréntesis. O bien, si no hay valores de finidos, se escribe CDATA para indicar que puede ser cualquier valor (alfanumérico, vamos). También podemos indicar con la declaración ID que el valor alfanumérico que se le de será único en el documento, y se podrá referenciar ese elemento a través de es e atributo y valor; –de forma opcional y entrecomillado, un valor por defecto del atributo si no se incluye otro en la declaración; Por último, si es obligatorio cada vez que se usa el elemento en cuestión declarar este atributo, es necesario declararlo con la clausula #REQUIRED; si no lo es, se debe poner #IMPLIED, o bien #FIXED si el valor de dicho atributo se debe mantener fijo a lo largo de todo el documento para todos los elementos del mismo tipo (notar que no es lo mismo esto a lo que significaba ID).

19 19  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 19  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Entidades ( Entities ) Mediante estos elementos especiales es posible dotar de modularidad a los documentos XML. Se pueden definir, del mismo modo que los propios DTDs, dentro del mismo documento XML o en DTDs externos. Las primeras entidades que se manejan son los caracteres especiales &, ", ',, que se deben escribir mediante las declaraciones: &, ", &apos;, < y >. Es decir, que cuando se referencia alguna entidad definida dentro de nuestro documento o en otro documento externo, se debe usar la sintaxis: &nombre;. Las entidades pueden emplearse también para incluir cualquier documento u objeto externo a nuestro propio documento.

20 20  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 20  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Comparación entre XML y HTML XML y HTML son lenguajes de marcas, donde las etiquetas se usan para anotar los datos. Las principales diferencias son: –En HTML, la sintaxis y la semántica del documento está definidas. HTML sólo se puede usar para crear una representación visible para el usuario. XML permite definir sintaxis de documentos. –Los documentos HTML no están bien formateados. Por ejemplo, no todas las etiquetas tiene su correspondiente etiqueta de cierre. Los documentos XML están bien formateados. –Los nombres de las etiquetas son sensibles a las mayúsculas en XML, pero no en HTML.

21 21  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 21  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Presentar Documentos XML Los documentos XML contienen datos portables. Esto significa que un archivo XML puede procesarse como salida para diferentes navegadores: de escritorio para PC, micro navegadores para dispositivos de mano, etc. En otras palabras, un documento XML puede ser transformado en HTML o WML o cualquier otro lenguaje de marcas.

22 22  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 22  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy XSL y XSLT Una forma agradable para mostrar documentos XML es aplicar una transformación sobre el documento XML, para extraer los datos o para crear un nuevo formato (como transformar datos XML a HTML). Esta transformación se puede hacer usando un lenguaje de transformación como "Extensible Stylesheet Language Transformation" (XSLT), que forma parte de XSL. XSL permite que escribamos el vocabulario XML para especificar la semántica del formato. Hay dos componentes de XSL, que son parte de la actividad de estilo del World Wide Web Consortium (W3C): –Lenguaje de Transformación (XSLT) –Lenguaje de Formateo (objetos de formateo XSL)

23 23  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 23  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Transformar XML Como los navegadores están llegando a estar disponibles en más dispositivos, la habilidad de transformar datos de Internet en múltiples formatos, como XML, HTML, WML, o XHTML se está convirtiendo cada vez en más importante. El XSLT se puede utilizar para transformar XML en cualquier formato deseado. Un motor de transformación o un procesador tomaría un documento XML como entrada y utilizaría la hoja de estilo de transformación XSL para crear un nuevo formato de documento, según lo mostrado en la figura:

24 24  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 24  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Transformaciones: XSL, XSLT, XPath, XSLF Mientras la manipulación de XML se lleva acabo mediante un parser, también existen herramientas que son capaces de transformar información en XML, estas son llamadas XSL Engines. La transformación que se realiza con estas herramientas es la de XML hacia otro lenguaje de marcación, o bien, otro documento XML. Suponga que tiene un depósito de información en XML y desea traerlo a un ambiente Web en HTML ("Hyper Text Markup Language"), inalámbrico WML ("Wireless Markup Language"), Acrobat Reader (PDF) o simplemente desea depurarlo (modificarlo) para utilizarlo en otro ambiente. Esta transformación se logra fácilmente mediante XSL ("eXtensible Stylesheet Language") vía el "XSL Engine". Un "XSL Engine" contiene un parser en su estructura interna, necesario para iniciar las transformaciones antes mencionadas. Su uso será descrito a fondo posteriormente.

25 25  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 25  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Hojas de estilo para XML: XSL Aunque se ha establecido un modo para que podamos usar hojas de estilo CSS (Cascade Style Sheets) dentro de documentos XML, es lógico pensar que para aprovechar las características del nuevo lenguaje hace falta tener un estándar paralelo y similar asociado a él. En W3C están trabajando sobre la nueva recomendación XSL: eXtensible Stylesheet Language. Aún no ha llegado a ser recomendación, y de momento es un public draft, esto es, un documento sujeto a comentarios y correcciones. Está bastante avanzado. Empresas como Microsoft e IBM ya ofrecen soporte a algunas de sus características.

26 26  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 26  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy XSL (2) Según el W3C, XSL es "un lenguaje para transformar documentos XML", así como un vocabulario XML para especificar semántica de formateo de documentos. En definitiva, además del aspecto que ya incluía CSS referente a la presentación y estilo de los elementos del documento, añade una pequeña sintaxis de lenguaje de script para poder procesar los documentos XML de forma más cómoda. Al igual que con HTML hasta ahora, se pueden especificar las hojas de estilo, sean CSS o XSL, dentro del propio documento XML o haciendo referencias de forma externa.

27 27  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 27  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Convertir XML a Objetos del Lado del Servidor Visto cómo generar XML, la pregunta es: ¿Cómo consumirlo (o usarlo) en aplicaciones? Para poder hacerlo, necesitamos convertir XML en objetos del lado del servidor y extraer sus propiedades. Esta conversión no es automática: deberá analizarse manualmente un documento XML y encapsularlo dentro de un componente JavaBeans. En el futuro sin embargo, la tecnología de unión XML/Java automatizará este proceso pues permitirá compilar un esquema XML en clases Java.unión XML/Java Para analizar documentos XML se pueden usar dos interfaces: –Simple API for XML (SAX) –Document Object Model (DOM) DOM trabaja con árboles de información mientras SAX lo hace a través de eventos. El entorno de software utilizado para analizar documentos es el API para Procesamiento de XML (JAXP), que soporta SAX, DOM y XSL transformations.JAXP

28 28  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 28  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Parsers: DOM, SAX y JDOM Un parser es la herramienta utilizada para procesar cualquier documento, estructura o fragmento en XML, además éste también es utilizado en conjunción con otras herramientas para XML como XSL y XMLRPC/SOAP; el parser es para XML como un sistema operativo a una computadora: imprescindible. Existen diversos parsers para diversos lenguajes, lo cual garantiza que la información residente en XML pueda ser procesada en un ambiente de programación especifico: ejecutar procesos en Perl, invocar métodos en Java o programas en C++ o VBasic, todo con la información definida en XML.

29 29  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 29  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Parsers (2) Aunque el trabajo de cada parser sea simplemente manipular información en XML, existen diversas maneras para interactuar con dicha información. Una de estas metodologías es llamada DOM ("Document Object Model") y la otra SAX ("Simple API for XML"), cuyos detalles serán descritos a fondo posteriormente. Por ahora basta recordar que "DOM" trabaja con árboles de información mientras SAX lo hace a través de eventos. Cabe mencionarse que la mayoría de los parsers antes mencionados ofrecen ambas opciones, el uso de una alternativa sobre la otra también será explorada posteriormente. Existe una metodología/parser llamada JDOM que permite procesar documentos XML en ambientes Java, aunque esto es posible a través de DOM o SAX, JDOM se ajusta más fácilmente al ambiente Java.

30 30  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 30  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy API Simple para XML (SAX) SAX es un sencillo API para XML. ¡No es un analizador! Simplemente es un interfase estándar, implementado por muchos y diferentes analizadores XML, que fue desarrollado por los miembros de la XML-DEV mailing list, actualmente hospedada por OASIS.XML-DEV mailing listOASIS La ventaja principal de SAX es que es ligero y rápido. Esto es principalmente porque es un API basado en eventos, lo que significa que reporta eventos de análisis, como el comienzo y el final de los elementos, directamente a la aplicación usando servicios repetidos, según lo mostrado en la siguiente figura:

31 31  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 31  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy SAX (2) Por lo tanto, la aplicación implementa manejadores para ocuparse de los diversos eventos, como el manejo de eventos en un interfase gráfico de usuario. Usar SAX implica los siguientes pasos: –Implementar uno o más manejadores –Crear un XMLReader –Crear un InputSource –Llamar a parse sobre la fuente de entrada Observe que MySAXParserBean sobrescribe los métodos startElement, endElement, y characters, todos los cuales están definidos por el interface ContentHandler. El analizador llama al método startElement al principio de cada elemento del documento XML, y llama al método characters para reportar cada dato de carácter, y finalmente llama al método endElement al final de cada elemento del documento XML.

32 32  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 32  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Document Object Model (DOM) DOM es un interfase neutral a la plataforma - y al lenguaje- para acceder y actualizar documentos. Sin embargo, al contrario que SAX, DOM accede a un documento XML a través de una estructura arborescente, compuesta por nodos elemento y nodos de texto, según lo mostrado en la figura:

33 33  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 33  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy DOM (2) El árbol será construido en memoria y por lo tanto se consumen grandes requisitos de memoria al usar DOM. Sin embargo, la ventaja de DOM es que es más simple de programar que SAX. Un documento XML se puede convertir en un árbol con tres líneas de código. Una vez que tengamos un árbol, podemos recorrerlo o atravesarlo hacia adelante y hacia atrás.

34 34  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 34  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Procedimientos: XMLRPC y SOAP ("Web-Services") En el ámbito de procedimientos remotos XML ha cobrado vida bajo el nombre de XMLRPC y SOAP. A través de estos mecanismos es posible invocar/ejecutar procedimientos desde una gran gama de lenguajes. El interés que han generado se debe a la misma portabilidad de XML, el proceso por el cual se lleva acabo la comunicación entre métodos remotos típicamente es una tarea compleja debido a la representación de datos entre diversos sistemas, digamos de una máquina operando con C++/AIX a otra en Java/Solaris o Windows/DCOM, sin embargo, con el surgimiento de XML es posible llevar acabo esta comunicación de una manera transparente, la cual también será explorada posteriormente en este curso.

35 35  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 35  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda AboyBibliografía Páginas Web: Curso XML, XSL, XMLRPC/SOAPCurso XML, XSL, XMLRPC/SOAPCurso XML, XSL, XMLRPC/SOAPCurso XML, XSL, XMLRPC/SOAP Integración de XML y los JavaBeans Desarrollo de Aplicaciones Web con JSP y XML TUTORIAL DE XML Introducción a XML Faster Development with JavaServer Pages Standard Tag Library (JSTL 1.0)Faster Development with JavaServer Pages Standard Tag Library (JSTL 1.0) A JSTL primer, Part 4: Accessing SQL and XML content W3C: Guía Breve de Tecnologías XML y XML in 10 pointsGuía Breve de Tecnologías XMLXML in 10 points XML en Wikipedia Archivos en PDF: J2EE-NB Tutorial Programming XML by Example XSLT Mastering XML Transformations

36 36  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 36  2006 Universidad de Las Américas - Escuela de Ingeniería - Java II - Dr. Juan José Aranda Aboy Referencias sobre XML (SUN Microsystems Developer Network) XML Sun Developer Network Java Architecture for XML Binding (JAXB)Java Architecture for XML Binding (JAXB) –Introducción a JAXB con NetBeansIntroducción a JAXB con NetBeans Java API for XML Processing (JAXP) Java API for XML Registries (JAXR) Java API for XML-based RPC (JAX-RPC) SOAP with Attachments API for Java (SAAJ)SOAP with Attachments API for Java (SAAJ)


Descargar ppt "1  2006Universidad de Las Américas - Escuela de Ingeniería - Bases de Datos - Erik Sacre 1  2006 Universidad de Las Américas - Escuela de Ingeniería."

Presentaciones similares


Anuncios Google