• No results found

Como se mencionó en la sección 2.3.3, existen lenguajes para consultar documentos XML directamente. Se describirá brevemente uno de ellos, llamado XML-QL (XML Query Language) [Web Page 17]. Al final se mencionan otras alternativas.

Comencemos con un ejemplo. Supóngase que se tiene un documento XML llamado a.xml y que está ubicado en el sitio www.biblio.com.

El contenido de dicho documento es:

<biblio> <book>

<editor> Hill </editor> <title> Isla </title> <author> Steve </author> </book>

<book>

<editor> Morgan </editor> <title> El león </title>

<author> Johnny B </author> <price>5000 </price>

</book> <book>

<editor> Hill </editor> <title> Monicongo </title> <author> Don Duende </author> <price> 60000 </price>

</book> </biblio>

Consulta ejemplo 1.

where <book>

<editor> Hill </editor> <title> $T </title> <author> $A </author>

</book> in "www.biblio.com/a.com", construct

<author> $A </author>

Significado de la consulta: (aunque es bastante intuitivo) se busca en todo el documento XML ubicado en el sitio www.biblio.com/a.com , todos aquellos libros, que tengan el patrón <editor> Hill </editor>, o sea libros publicados por la editorial Hill, que tengan un título (no importa cual título, lo que importa es que tengan un título contenido entre los rótulos <title> ... </title> ) y que tengan un author ( <author> ... </author> ) no importa cual.

Observaciones:

 La salida serán elementos de tipo $A, o sea lo contenido entre los rótulos <author> ...</author> para aquellos books que cumplieron el patrón y la salida queda precisamente cobijada por los rótulos <author> ... </author> para cada $A seleccionado.

 $A y $T son variables que se utilizan para referirse al contenido de los elementos <author> ... </author> y <title> ... </title> respectivamente; y se pueden igualmente utilizar para construir el resultado, en este caso haciendo uso de $A.

Nótese que el contenido de $A y/o $T podría estar conformado de estructuras anidadas, no sólo de elementos atómicos.

 Si un libro (book) tiene otros subelementos aparte de los que establece la consulta, no importan, es decir si un libro tiene por ejemplo <price> ... </price>, siempre y cuando cumpla el patrón, sin importar si tiene o no otros subelementos, será seleccionado.

 No importa si el book o alguno de sus subelementos tienen propiedades, si cumplen el patrón especificado es suficiente para ser seleccionado.(Aunque las propiedades también pueden consultarse).

Para la muestra de datos anterior la salida generada es:

<author> Steve </author> <author> Don Duende </author>

La salida son elementos XML, aunque les falta un elemento raíz, el cual puede ser añadido como se muestra en el siguiente ejemplo.

Consulta ejemplo 2. <rta> where <book> <editor> Hill </> <title> $T </> <author> $A </> </> in "www.biblio.com/a.xml", construct <result> <author> $A </> <title> $T </> </rta>

La condición de búsqueda es la misma del primer ejemplo pero se tienen varias adiciones:

 Se usa la notación </> como abreviatura para evitar escribir el nombre del rótulo de cierre correspondiente.

 Se añaden los rótulos <rta> </rta> como elementos raíz de la salida. Estos sólo aparecerán una vez en la salida que se genere.

 Para cada libro (book) se generan elementos XML de la forma:

<result>

<author> ... </author> <title> ... </title> </result>

Donde los puntos suspensivos (...) son remplazados en cada libro por el contenido de las variables $A y $T respectivamente.

Para este ejemplo la salida generada será entonces:

<rta> <result>

<author> Steve </author> <title> Isla </title> </result>

<result>

<author> Don Duende </author> <title> Monicongo </title> </result>

</rta>

Existen otros lenguajes de consulta para XML, dos de los más interesantes son XPath y XML Query, los cuales pueden consultarse en [Web Page 10]. Tomando a XML-QL como lenguaje de aproximación de consulta para XML se observa que su concepción es bastante aceptable en especial para aquellos que han programado con SQL la analogía entre ambos es fuerte.

Cualquier lector puede crear un documento XML, colocarlo en cualquier servidor, luego dirigirse a [Web Page 11] y entrar allí el código de la consulta correspondiente. Desde tal sitio se ejecuta la consulta y se devuelve el resultado allí mismo. Por lo menos hasta la fecha de entrega de este proyecto el sitio estaba activo. Por lo tanto, para probar lo mostrado aquí se requiere simplemente acceso a Internet, el resto es crear un documento XML (con cualquier editor) y escribir alguna consulta, guiándose por la sintaxis que allí se presenta igualmente.

Related documents