Professional Documents
Culture Documents
Ya que existen numerosas aplicaciones que usan XML para intercambiar, transmitir y almacenar datos, las herramientas para una gestin efectiva de datos XML estn siendo cada vez mas importantes. Las herramientas para consultar y transformar los datos XML son: Esenciales para extraer informacin de grandes datos de XML Para convertir los datos en distintos representaciones o esquemas en XML
La herramienta de salida de consulta XML puede ser un documento XML. Varios lenguajes proporcionan grados crecientes de capacidades de consulta y transformacin: XPATH XSLT XQUERY
XPATH:
Es un lenguaje para encontrar informacin en un documento XML
XPath XPath XPath XPath es una sintaxis para definir partes de un documento XML utiliza expresiones de ruta para navegar en documentos XML contiene una biblioteca de funciones estndar es un elemento importante en XSLT
Seleccin de nodos
XPath utiliza expresiones de ruta para seleccionar nodos en un documento XML. El nodo es seleccionado siguiendo un camino o pasos. Las expresiones de ruta ms tiles son las siguientes: Expresin Nodename / // Descripcin Selecciona todos los nodos secundarios del nodo denominado Selecciona desde el nodo raz /banco-2/cliente/name/text() Selecciona nodos en el documento desde el nodo actual que coincidan con la seleccin sin importar donde este /banco-2//name
. .. @ []
Selecciona el nodo actual Selecciona el padre del nodo actual Selecciona los atributos /banco-2/cuenta/@numero-cuenta La seleccin de predicados pueden seguir cualquier paso en una ruta y estn contenidos entre corchetes. /banco-2/cuenta[saldo>400] Calcula dos conjuntos de Nodos /banco-2/cuenta/id(@tenedores) | /banco-2/prestamos/id(@prestamista) Devuelve el nodo (si existe) con un atributo del tipo ID y cuyo valor sea <<foo>>
| Id(<<foo>>)
XSLT
Una hoja de estilo es una representacin de las opciones de formato para un documento, normalmente almacenado fuera del documento mismo, por lo que el formato est separado del contenido. XSL es el lenguajes de hojas de estilo XML estaba originalmente diseado para generar HTML a partir de XML y es por ello una extensin lgica de hojas de estilo HTML, el lenguaje incluye un mecanismo de transformacin de propsito general denominado XSLT (transformaciones XSL), que se puede transformar un documento XML en otro documento XML o a otros formatos HTML. XSLT es bastante potente y puede incluso actuar como un lenguaje de consulta. Las transformaciones se expresan como una serie de reglas recursivas, denominadas plantillas. Las plantillas permiten la seleccin de nodos en un rbol XML mediante una expresin XPath. Aunque se pueda usar como un lenguaje de consulta su sintaxis y semntica es distinta a la SQL. Una plantilla sencilla para XSLT.
<xsl:template match =<</banco-2cliente>>> <xsl:value-of select =<<nombre-cliente>>/> </xsl:template> <xsl:template match =<<*>>/>
Las instrucciones: Xsl: template match : contiene una expresin XPath que selecciona uno o mas nodos Xsl: value-of : devuelve valores de los nodos en el resultado de la expresin XPath La recursividad estructural es una parte clave de XSLT. La idea de sta es que cuando una plantilla coincide con un elemento en la estructura de rbol XSLT puede usar la recursividad estructural para aplicar las reglas de la plantilla a los subarboles en lugar de simplemente devolver un valor. Aplica las reglas recursivamente mediante la directiva xsl:apply-templates.
<xsl:template match =<</banco>>> <clientes> <xsl:apply-templates/> </clientes> </xsl:template> <xsl:template match =<</cliente>>> <clientes> <xsl:value-of select =<<nombre-cliente>>/> </clientes> </xsl:template> <xsl:template match =<<*>>/>
XSLT proporciona caracteristica denominada KEY, que permite la bsqueda de elementos mediante el uso de valores de subelementos o atributos, los objetivos son similares a los de la funcin id() en XPath, pero permite usar atributos distintos a los atributos ID. Las claves se definen mediante una directiva xsl:key la cual tiene tres partes ejemplo: <xsl: key name =<<numcuenta>>match =
<<cuenta>>
use =
<<numero-cuenta>>/>
Name: Se usa para distinguir las claves distintas Match: especifica a los que se aplica la clave Use: especifica la expresin a usar como el valor de la clave.
Las claves se pueden usar en plantillas como parte de cualquier patrn mediante la funcin keyesta funcin toma el nombre de la clave y el valor y devuelve el conjunto de nodos que coinciden con ese valor. XSLT permite ordenar los nodos. Un ejemplo sencillo muestra como se usara xsl:sort en la hoja de estilo para devolver los elementos cliente ordenados por nombre.
<xsl:template match =<</banco>>> <xsl:apply-templates select = <<cliente>>> > <xsl:sort select = <<nombre-cliente>>> > </xsl:apply-template> </xsl:template> <xsl:template match =<</cliente>>> <clientes> <xsl:value-of select =<<nombre-cliente>>/> <xsl:value-of select =<<calle-cliente>>/> <xsl:value-of select =<<ciudad-cliente>>/> </clientes> </xsl:template> <xsl:template match =<<*>>/>
Select: restringe para que solo se aplique a los subelementos cliente.
Xsl:sort: hace que los nodos se ordenen antes de ser procedados por el siguiente conjunto de plantillas.
XQUERY
El consorcio W3C esta desarrollando XQuery, un lenguaje de consulta de XML. El lenguaje XQuery se deriva de un lenguaje de consulta XML denominado Quilt, la amyor parte de las caracteristicasa de XQuery que se analizan aqu son parte de Quilt. Quilt pos si mismo incluye caractersticas de lenguajes nateriores, tales como XPath, XML:XQL y XML:QL. A diferencia de XSLT, XQuery no representa consults en XML, se parecen mas a las consultas SQL y se organizan en expresiones <<FLWR>> que comprende cuatro secciones: for, let, where y return SECCION FOR: Proporciona una serie de variables que cuyos valores son los resultados de expresiones XPath. SECCION LET: Permite que se asignen expresiones complicadas a los nombres de las variables por simplicidad de representacin. SECCION WHERE: Ejecuta comprobaciones adicionales sobre las tuplas reunidad de la seccin for. SECCION RETURN: Permite la construccin de resultados en XML.
for $x in /banco-2/cuenta let $numcuenta := $x/@numero-cuenta where $x/saldo > 400 return <numero-cuenta> $numcuenta >/numero-cuenta> las expresiones de ruta en SQuery estn basadas en expresiones de ruta XPath, pero XQuery proporciona algunas extensiones. Una de las extensiones de sintaxis utiles es el: operador -> : se usa para desreferenciar IDREFs al igual que la funcin id().
En XQuery los resultados se pueden ordenar si se incluye una clausula sortby al final de cualquier expresin, la clausula especifica como se han de ordenar las instancias de esa expresin. Ejemplo: For $c in /banco/cliente Return <cliente> $c/* </ciente>sortby(name) Decending: para ordenar de forma decreciente. XQuery usa el sistema de tipos de XMLSchema. XMLSchema es un peso ligero modelo de objetos Java que se pueden utilizar para manipular y generar representaciones de esquema XML. Se puede utilizar para leer esquema XML (xsd) en la memoria y analizar o modificarlos, o para crear esquemas totalmente nuevo desde cero. XQuery ofrece una gran variedad de otras caractersticas, tales como clausulas if-Then-else, las cuales se pueden usar con clausulas return.
DOM tambin proporciona una serie de funciones para actualizar el documento mediante la adicin y el borrado de hijos elemento y atributo.
La segunda interfaz de programacin es API SIMPLE PARA XML es un modelo de eventos diseados para proporcionar una interfaz comn entre analizadores y aplicaciones. Esta construida bajo la nocion de manejadores de eventos que consisten en funciones especificadas por el usuario asociadas con eventos de anlisis. Los eventos de anlisis corresponden con el reconocimiento de partes de un documento, por ejemplo: Se genera un evento cuando se encuentra la etiqueta de inicio para un elemento y se genera otro evento cuando se encuentra la etiqueta de finalizacin.