Análisis Sintáctico de XML WEB-SERVICES

Documentos relacionados
Introducción al DOM WEB-TECHNOLOGIES

Objetivos MODULO I. HTML, XHTML,CSS

Introducción a JavaScript y DOM DISERTANTE ING. RASJIDO, JOSE ALBERTO

Microsoft XML Core Services MSXML

6.1 APIs para XML. APIs para XML (I) ! Uno de los usos más habituales de XML (y menos esperado) es como formato de intercambio de datos.

Aplicaciones Web. Aplicaciones Distribuidas

DISEÑO WEB AVANZADO CON HTML 5 Y CSS3

PRÓLOGO...13 CAPÍTULO 1. INTRODUCCIÓN A AJAX...17

DISEÑO WEB AVANZADO CON HTML5 Y CSS3 MODALIDAD TELEFORMACIÓN HORAS: 40

Índice INTRODUCCIÓN...11 CAPÍTULO 1. SELECCIÓN DE ARQUITECTURAS Y HERRAMIENTAS DE PROGRAMACIÓN...13

Procesamiento de documentos XML.

Presentación y objetivos

Las tecnologías del desarrollo Web

APLICACIONES DE INTERNET: SOAP

2.4. Unidades de Aprendizaje. Unidad de aprendizaje: Desarrollo de páginas web estáticas. Número 1. Propósito de la unidad

Temario Programación Web para Web

Temario del Master en Internet

Diseño de sitios Web mediante estándares

UML: Diagrama de Clases

LENGUAJES JÓVENES PROGRAMADORES

API: REST o RESTful WEB-SERVICES

Ingeniería Web. Navegadores Web. Fernando Barraza A.

Roberto Gómez Cárdenas Qué es DOM?

X M L QUÉ ES XML. Un documento puede ser correcto a dos niveles bien formado y válido. DOCUMENTO BIEN FORMADO

Aspectos pragmáticos de los lenguajes de programación

JAVASCRIPT: ACCEDER A ELEMENTOS POR ID. GETELEMENTBYID. DOCUMENT.ALL. CAMBIAR IMAGEN IMG SRC (CU01127E)

Diseño Web Avanzado con HTML5 y CSS3

MASTER PROFESIONAL C# 5 Y ASP.NET MVC 5

LENGUAJES DE PROGRAMACIÓN WEB (PHP1, HTML52)

LENGUAJES DE PROGRAMACIÓN 4 MÓDULOS. 56 Horas

2. Principales componentes de XML

Curso JAVA EE

Desarrollo.NET con Sharepoint

Descripción. Objetivos de Aprendizaje. Estructura y Contenidos

INSTITUTO TECNOLÓGICO SUPERIOR DE SANTIAGO PAPASQUIARO PROGAMACIÓN WEB CATEDRATICO: ISC JOEL LEYVA MARES

SECUENCIA DIDÁCTICA. Módulo Competencia de Módulo:

DESARROLLO WEB EN ENTORNO CLIENTE

Tema 08: TAD Árbol. M. en C. Edgardo Adrián Franco Martínez edgardoadrianfrancom

Introducción a la programación en PHP

Programación en HTML5 con JavaScript y CSS3 Duración: 30 Horas Código Sence:

FORMULARIOS JAVASCRIPT: EJEMPLOS DE DOCUMENT.FORMS Y ELEMENTS. ACCESO DIRECTO A FORMULARIOS Y CAMPOS CON ID Y NAME (CU01175E)

Lenguajes de Script. Qué son los Lenguajes de Script?

Programación Avanzada con PHP Duración: 40 horas Código: DAW-106

Tema 6: Estructuras de datos recursivas

La biblia de HTML Francisco Charte Ojeda

AJAX. Programa de Estudio.

Tema IV. XML V. APIs (DOM & SAX)

CONCEPTOS BÁSICOS. Prof. Ing. M.Sc. Fulbia Torres

CAPITULO V CONCLUSIONES Y RECOMENDACIONES

PÁGINAS WEB Curso / Taller

Tema III: Introducción al lenguaje de programación

Introducción a JSON JUAN CARLOS CONDE RAMÍREZ WEB-TECHNOLOGIES

QUERYSELECTORALL JAVASCRIPT Y QUERYSELECTOR. ACCEDER A ELEMENTOS POR SELECTORES CSS. EJEMPLOS (CU01134E)

DOM O DOCUMENT OBJECT MODEL JAVASCRIPT. QUÉ ES? PARA QUÉ SIRVE? EL W3C. ARBOL DE NODOS. PARENT Y CHILD. EJEMPLOS (CU01123E)

DOM. Document Object Model

Visualización y Transformaciones en XML

DESARROLLO WEB EN ENTORNO CLIENTE

Capítulo III. Fundamentos de AJAX

Transcripción:

Análisis Sintáctico de XML JUAN CARLOS CONDE RAMÍREZ WEB-SERVICES

Objetivos Conocer la especificación de patrones con la tecnología XPath. Conocer las características básicas de los principales Analizadores Sintácticos de XML. Entender la importancia del uso de DOM para páginas HTML Dinámicas (DHTML). Comprender la importancia de la llegada de XML y su modo de uso con DOM. FCC-BUAP 2

Especificación de patrones (XPath) I / //. * @ @* Especifica el "hijo" inmediato. Puede referirse al raíz. Selecciona a "cualquier profundidad" en el árbol. Selecciona el contexto actual. Selecciona todos los elementos en el contexto actual. Selecciona un atributo. Selecciona todos los atributos en el contexto actual. FCC-BUAP 3

Especificación de patrones (XPath) II Selecciona todos los apellidos de clientes a partir del contexto actual. cliente/apellido Selecciona todos los elementos empleado que aparezcan a cualquier nivel de profundidad por debajo de elementos tienda. tienda//empleado Selecciona todos los elementos empleado que aparezcan a un nivel de profundidad de distancia por debajo de elementos tienda. tienda/*/empleado FCC-BUAP 4

Especificación de patrones (XPath) III Selecciona todos los atributos precio de elementos objeto por debajo del contexto actual..//objeto/@precio Selecciona todos los elementos empleado que aparezcan a un nivel de profundidad de distancia por debajo de elementos tienda y cuyo nombre sea Alfredo. tienda/*/empleado[nombre $eq$ Alfredo ] Selecciona todos los elementos objeto por debajo del contexto actual, cuyo atributo precio sea menor que 500, y que el contenido de su sub-elemento tipo sea 1..//objeto[(@precio $le$ 500) $and$ (tipo $eq$ 1)] FCC-BUAP 5

Analizadores sintácticos Parsers hay muchos, variados, y con funcionamientos muy diferentes. Pueden incluir validación o no. Pueden realizar transformaciones o no. Pueden exponer la información de diferentes formas (DOM, SAX, etc.). Existen para la mayoría de los lenguajes y plataformas de desarrollo (VB, ASP, C, VC++, Perl, Python, PHP,...). FCC-BUAP 6

El parser de Microsoft (MSXML.DLL) Realiza validación contra DTD. Realiza transformaciones. Soporte para XSL (versión anterior de XSL). Gratuito y redistribuible libremente. Esta basado en DOM Level 1. Puede ser utilizado en cualquier lenguaje o plataforma que soporte llamadas a objetos ActiveX (ASP, VB, VC++,...) FCC-BUAP 7

Modelo de Objetos-Documento I DOM no es un modelo específico de XML, sino precisamente lo que convierte al HTML estático en dinámico. Podemos entenderlo como la forma en la que los exploradores interpretan una página que, por su naturaleza es estática (o desprovista de comportamientos programables), transforma sus elementos en objetos, y como tales poseen: Propiedades Métodos Eventos Por lo tanto, se convierten en entidades programables. FCC-BUAP 8

Modelo de Objetos-Documento II A los lenguajes de programación que nos permiten programar estos objetos DHTML (Dynamic HTML), se les denomina Lenguajes de Script (principalmente Javascript y VBScript, basados respectivamente en sus hermanos mayores, Java y Visual Basic). Un objeto DHTML se programa: 1. Asignándole un identificador (un valor para su atributo ID, lo que lo convierte en objeto programable) 2. Estableciendo una acción escrita en uno de estos lenguajes y asociada con uno cualquiera de los eventos de que el objeto disponga. FCC-BUAP 9

Modelo de Objetos-Documento III El esquema de la siguiente figura ilustra la forma en la que viaja y se transforma la información de estática a dinámica. FCC-BUAP 10

Modelo de Objetos-Documento IV Cuando un usuario solicita una página web (por ejemplo, http://www.hotmail.com). 1. El servidor Web busca dicha página 2. La página es enviada al cliente 3. Allí sufre un proceso de TRANSFORMACIÓN: a. Primero se lee todo el contenido, b. se construyen tantos objetos en la memoria como elementos de la página HTML tengan un identificador (ID), c. finalmente se da un formato gráfico de salida al documento. d. Al mismo tiempo el motor del navegador permanece a la escucha de los eventos que el usuario genere al navegar por la página. FCC-BUAP 11

Modelo de Objetos-Documento V Cuando se produce un evento, (como pasar el cursor por encima de un ítem de menú, o de un gráfico), el parser llama al intérprete del lenguaje de script que corresponda, y la acción se ejecuta. Esta es la forma en que los menús cambian de color o de tamaño cuando navegamos por ellos, y también la forma en la que se producen un sinfín de efectos especiales que estamos ya acostumbrados a ver en las páginas Web. FCC-BUAP 12

Modelo de Objetos-Documento VI La llegada de XML no supone un cambio de esa filosofía, al contrario, más bien supone una expansión de este concepto para que en lugar de tener que hacer un tratamiento individualizado de cada objeto, podamos trabajar con grupos de objetos (por ejemplo registros) dotándoles de un comportamiento similar al que puedan tener dentro de una interfaz de usuario tradicional. Una vez más, es labor del navegador (o de las librerías que realizan la interpretación o rendering) el construir objetos dinámicos a partir de lo que sólo es un documento, evitando así, el envío de componentes a través de la Web. FCC-BUAP 13

Modelo de Objetos-Documento VII En la siguiente figura se muestra la jerarquía de objetos de DOM, en su versión inicial (que alguno autores también denominan DHTML Object Model), o sea antes de la aparición de XML. FCC-BUAP 14

Modelo de Objetos-Documento VII Observamos que la jerarquía se basa sobre todo en dos objetos fundamentales: el objeto window, que refleja la estructura y propiedades del navegador, el objeto document (uno sólo, y no una colección, ya que se trata de una interfaz SDI), que contiene todo lo referente a la página web que se visualiza en un momento dado. FCC-BUAP 15

Modelo de Objetos-Documento VII Como podemos ver, algunos objetos pasan a pertenecer a colecciones concretas, como la colección de imágenes (images) o la colección de hojas de estilo (stylesheets). Otros, por su importancia se transforman en objetos individuales, como body o element, y además existe una colección donde van parar todos los objetos programables: all. FCC-BUAP 16

Modelo de Objetos-Documento XML I En el modelo de objetos con soporte XML, cuando se carga un documento XML existe un objeto especial denominado Document (implementado en la interfaz como XMLDOMDocument), del cual dependen todos los objetos de la jerarquía, y que podemos interpretar como el nodo raíz, o elemento principal. De él, se derivan objetos Node (o concretamente, XMLDOMNode), y objetos NamedNodeMap (XMLDOMNamedNodeMap), que permiten el acceso a los valores de los atributos, además de incluir soporte para los espacios de nombres (namespaces). FCC-BUAP 17

Modelo de Objetos-Documento XML II El objeto NodeList (XMLDOMNodeList), por su parte, permite acceder a los nodos de forma global, al tratarse de un objeto collection que contiene la lista de los nodos disponibles. Haciendo una abstracción de los objetos más importantes de cara al programador (la lista completa es larguísima), podemos hacernos una idea de la situación mediante el diagrama de la siguiente figura. El diagrama muestra como además de los objetos estándares, el soporte de IE5 añade ciertas funcionalidades no aprobadas todavía por W3C, para facilitar el manejo de los documentos XML. FCC-BUAP 18

Más del DOM XML I Como ya sabemos, su utilización dependerá del grado de seguridad que tengamos sobre el navegador o intérprete a utilizar en cada caso en particular. FCC-BUAP 19

Más del DOM XML II En detalle, el objeto ParseError (IDOMParseError) informa acerca de los problemas que pudiera encontrar el propio intérprete a la hora de transformar el documento XML. Mientras que el objeto HHTPRequest (IXMLHttpRequest), permite la gestión de un protocolo de comunicaciones con servidores HTTP en la parte del cliente. Respecto al objeto XTLRunTime (IXTLRunTime), se utiliza para permitir la manipulación de ficheros de presentación escritos en XSL, y asociados con el documento XML. FCC-BUAP 20

Más del DOM XML III Quizá exista una pregunta importante, qué pasa con el resto de elementos que hemos estudiado como parte del lenguaje XML: como es lógico también están presentes, y en su mayoría, son manejables a partir de los objetos que hemos listado anteriormente. Veremos algunos de ellos en los siguientes ejemplos. Para mayor información sobre toda la jerarquía de objetos del modelo XML DOM, se puede encontrar en su totalidad en la dirección Internet: http://www.w3.org/tr/rec-dom-level-1/ FCC-BUAP 21

Más del DOM XML IV Lo más importante antes de trabajar con XML DOM es tener presente que todo el contenido de un documento se ve desde la jerarquía como un conjunto de nodos. Por qué nodos en lugar de elementos? Porque una de las diferencias principales con la jerarquía DHTML es que allí encontrábamos colecciones que debían existir siempre, independientemente de que contuvieran o no elementos. Por ejemplo, siempre encontramos una colección imágenes, aunque la página no contenga una sola imagen. FCC-BUAP 22

Más del DOM XML V En XML, la situación es más flexible: no existen una serie de colecciones predefinidas de objetos hasta que no ha concluido el proceso de transformación. La única cosa que sabemos con seguridad, es que habrá un objeto element, que se corresponderá con el raíz. Todo lo demás dependerá del contenido del documento. Por eso, es mejor imaginarse el contenido como un estructura de árbol, y cada ítem como un nodo genérico. FCC-BUAP 23

Más del DOM XML VI Algunos nodos equivaldrán a las hojas, que no contendrán más sub-elementos. Otros serán equivalentes a los troncos y su misión será contener una serie de nodos hijos (child nodes). La complejidad inicial surge del hecho de que la transformación considera como nodos individuales tanto los elementos contenedores (las marcas mismas) como los contenidos (lo que hay entre ellas). FCC-BUAP 24

Ejemplo <Ciudad>Salamanca</Ciudad> Bien, pues, para el parser, existirá un nodo Ciudad que será de tipo element, pero la cadena Salamanca, que está contenida en él, también será un nodo pero de tipo Text. La propiedad value, del nodo Ciudad valdrá null, pero dispondrá de un nodo hijo cuya propiedad value será "Salamanca". Así pues, los nodos nos dan mediante sus propiedades y métodos, la posibilidad de averiguar todo lo referente a cada elemento de un documento. FCC-BUAP 25

Ejemplo Un nodo sólo podrá tener un nodo padre, pero podrá contener una colección de nodos hijos (con la sola excepción del nodo raíz, que no tiene nodo padre y sólo puede tener un nodo hijo, el principal de la jerarquía) que en nuestro ejemplo hemos llamado Clientes, por tanto el nodo raíz es como si hiciera referencia al documento mismo. Por su parte, los elementos pueden tener atributos, y estos atributos son a su vez objetos nodo, sólo que de un subtipo diferente al del resto de nodos. FCC-BUAP 26

Los nodos I Cada nodo tiene una propiedad childnodes, que hace referencia a sus nodos hijos, y una propiedad attributes. Si el nodo contiene algún atributo, la propiedad devuelve una referencia al objeto NamedNodeMap, que contiene los objetos nodo de tipo attribute, en caso contrario, devuelve null. En el primer caso, si el nodo contiene nodos hijos, la propiedad childnodes, devuelve una referencia al objeto NodeList que contiene los nodos hijos. En caso contrario, también devuelve null. Cada nodo, por su parte, dispone de los métodos necesarios para acceder a aquellos nodos que se encuentran vinculados con él mediante relaciones jerárquicas. FCC-BUAP 27

Los nodos II En el caso de utilizar IE, dispondremos, además, de algunas propiedades específicas, para consultar valores como el namespace, el prefijo (prefix), o la definición de un elemento. En otro orden de cosas, los nodos no son algo preestablecido y fijo. El usuario puede, dinámicamente crear nuevos nodos y cambiar características de los ya existentes. Para ello, cada nodo dispone de un conjunto de métodos, algunos estándares y otros específicos de cada navegador, que permiten la manipulación programática de elementos y contenidos. FCC-BUAP 28

Los nodos II En el caso de utilizar IE, dispondremos, además, de algunas propiedades específicas, para consultar valores como el namespace, el prefijo (prefix), o la definición de un elemento. En otro orden de cosas, los nodos no son algo preestablecido y fijo. El usuario puede, dinámicamente crear nuevos nodos y cambiar características de los ya existentes. Para ello, cada nodo dispone de un conjunto de métodos, algunos estándares y otros específicos de cada navegador, que permiten la manipulación programática de elementos y contenidos. FCC-BUAP 29

Objetos de alto nivel de la jerarquía DOM Hemos comentado algunas peculiaridades de los objetos básicos, pero vamos ahora a revisar los objetos de más alto nivel en la jerarquía, que añaden características extendidas al modelo DOM. Como ya se ha citado, un documento XML se representa como una estructura que comienza con un objeto (nodo) Document. A su vez, éste nodo puede tener su colección de nodos hijos (childnodes) y su colección de atributos (attributes), además de otros nodos que representan otros aspectos considerados de los documentos: por ejemplo, el objeto DocumentType, hace referencia al DTD de un documento, que tiene su propia colección de entidades (entities), notaciones (notations), etc. FCC-BUAP 30

Objetos de alto nivel de la jerarquía DOM El elemento primario que desciende de Document, es el nodo principal, dentro de cuyas etiquetas se encuentran todos los demás. Un diagrama más completo que el de la figura la siguiente diapositiva podría ser, el esquema que se muestra en la siguiente figura. Hemos visto hasta aquí algunos de los elementos principales de la jerarquía DOM, tal y su estructura y descripción funcional básica. FCC-BUAP 31

Objetos de alto nivel de la jerarquía DOM Pasemos ahora a la manipulación de los datos, desde un doble enfoque: el manejo de DOM desde el propio navegador, y la utilización cada vez más importante de los documentos XML como formato de intercambio de datos, para ser posteriormente leídos con una herramienta de desarrollo, como Visual Basic. FCC-BUAP 32