Blog de Luis Arévalo


XQDoc: Una herramienta para la Auto-Documentación de código XQuery


Feb 08

Posted: under eXist, XML, XQuery.
Tags: , ,

XQDoc es una herramienta para la generación automática de documentación en formato HTML a partir de código fuente XQuery, es decir, es la herramienta Javadoc para código XQuery (Javadoc una utilidad de Sun Microsystems para la generación de documentación automática de APIs en formato HTML). Este post surgió a partir de mi anterior entrada sobre «Guía de estilos en XQuery«.

Al igual que en Javadoc, es necesario introducir comentarios especiales en los módulos/ficheros XQuery para que posteriormente la herramienta pueda generar la documentación HTML. Principalmente deben documentarse dos elementos: more_link_text

Comments (0)

Guía de Estilo para XQuery


Feb 01

Posted: under eXist, XML, XQuery.
Tags: , ,

Todo lenguaje de programación tiene su propia «guía de codificación», consensuada generalmente por un grupo de «expertos» en la materia, que facilitan la codificación y compresión de código para dicho lenguaje. Y para no ser menos, también existe una guía para el lenguaje XQuery (Guía de Estilo).

En ella se establece entre otras cosas:

  • Modulos XQuery. Como realizar la correcta definición de modulos  XQuery y posteriormente realizar su importación.
  • Indentación
  • Comentarios donde existe un formato similar a Javadoc para posteriormente generar la documentación HTML automáticamente (Herramienta xqdoc)
  • El correcto orden de las expresiones
  • Colocación de los espacios en blancos.
  • Buenas prácticas de codificación.

A partir de ahora, otro manual para tener siempre encima de la mesa de trabajo.

Comments (0)

Configuración de eXist. Cambio de puerto y de memoria.


Ene 20

Posted: under eXist.
Tags: , ,

Después de una larga temporada sin poder añadir entradas, me he propuesto intentar una a la semana. En la entrada de hoy voy a indicar cómo configurar dos aspectos básicos de eXist: cambiar el puerto de la base de datos y cómo incrementar la memoria qué esta utiliza.

more_link_text

Comments (0)

Paquetes instalados


Dic 18

Posted: under GNU/Linux.

En muchas ocasiones me ha sucedido, igual que a muchos compañeros, que hemos tenido que instalar de cero una distribución GNU/Linux con la problemática de tener que instalar todos los paquetes que tenías anteriormente. Por lo general tengo que recurrir a un papel y bolí, antes  de realizar la instalación, para apuntar todos los paquetes más importantes que tengo para que así  no se me olvide ninguno.

Para evitar esto, existe una opción en el programa dpkg que te indique los paquetes instalados, de modo que podemos crear un backup con esta información.

dpkg --get-selections > backup.txt

La salida generada tiene todos los paquetes instalados, que suelen ser muchísimos. Aunque puede ser muy engorroso, pero te aseguras que no se te olvida ninguno.

Comments (0)

Recuperación de un documento XML completo en XQuery


Sep 22

Posted: under eXist, XML, XQuery.

Después de unos meses absorbido por completo con la tesis, ya tengo un poco más de tiempo para continuar con el blog. El objetivo de las siguientes entradas será proporcionar algunos códigos XQuery/XSLT de utilidad. En la entrada de hoy mostraré una función XQuery para recuperar un documento XML completo.

Estamos habituados a usar doc(«/db/examples.xml») para recuperar un documento XML en XQuery, pero que sucede si queremos recuperar el documento XML completo con sólo algunos elementos hijos o con algunos atributos concretos. En este caso es necesario hacer una función XQuery recursiva para esta operación.


01. declare namespace f='f.ns';
02. declare function f:RetrieveXML($nodes as node()*) {
03. for $x in $nodes
04. return
05.    if ($x instance of comment()) then $x
06.    else if ($x instance of processing-instruction())then $x
07.   else if ($x instance of element()) (:también $x:)
08.   then element {node-name($x)} {
09.     for $y in $x/@* (: también $x/@*:)
10.       return attribute {local-name($y)}{$y}
11.      ,
12.      for $y in $x/node()
13.        return f:RetrieveXML($y)
14.   }
15.   else if ($x instance of text()) then xs:string($x)
16.   else ()
17. };
(: Ejemplo de uso : )
18. f:RetrieveXML(doc("/db/examples.xml")/*)

La implementación se realiza mediante la instrucción instance of. En primer lugar y a partir del nodo XML recibido (línea 2) se procesan todos sus descendientes y dependiendo de su tipo se realiza un procesamiento distinto: comentario (5), instrucción de procesamiento (6), elemento (7) o texto(15). En el caso de un elemento XML se procede a crear el elemento en cuestión (element), sus atributos (attribute) y a llamar recursivamente a sus descendientes.

En el caso de los atributos o elementos se podría hacer directamente $x pero he utilizado las instrucciones element y attribute de XQuery para entender su funcionamiento.

Comments (0)

Retrieving Binary Documents from an eXist Database


May 13

Posted: under eXist, XML, XQuery.
Tags:

eXist is an XML database, that is,  it allows us to store XML documents  as well as to store another kind of documents, such as :XQuery Query documents (. xq),  XQuery Module documents (. xqm),  stylesheet documents (.xslt), etc… in a binary way. In this post, I will show an XQuery code to retrieve the textual information from a binary document stored in eXist.

let $binary := util:binary-doc("/db/queries/query.xq")
let $text := util:binary-to-string($binary) //Convertir binario a texto
return $text

where the binary document (query.xq) is stored in the /db/queries collection.  In case you want to retrieve a binary document from an external eXist database, you should use the following URL in the previous binary-doc function:

xmldb:exist://HOST:PORT/db/queries/vdoc2doc.xq

Comments (0)

Acto de Graduación de los alumnos del Centro Universitario de Mérida


May 10

Posted: under Docencia.
Tags:

Ayer sábado 9 de mayo de 2009 tuve el enorme placer de acompañar al alumnado del Centro Universitario de Mérida, probablemente, en uno de los días más importantes de su vida: La graduación.

El evento llevado al cabo, finalmente después de una dura lucha entre el alumnado y el consorcio, en el majestuoso Teatro Romano de Mérida el cual actuó de un anfitrión inmejorable para este acto. Eso si, todos los asistentes  echamos un auténtico órdago a la madre naturaleza  que ganamos con una 31 in-extremis pues justo empezó a llover al minuto de acabarse el acto.

Además, en mi caso, el día fue más conmovedor si cabe pues además de poder acompañar a Juanfran, Carlos S., Carlos U. y Javier tuve el enomer placer de realizar la imposición de beca al alumno que he tutorizado durante los tres últimos años: Juanfran. Sirva la presente entrada de mi blog como agradecimiento hacia Juanfran por haber contado conmigo para este acto, por haber sido un excelente tutorando y desearte un futuro lleno de grandes triunfos (puedes conseguir lo que te propongas). Finalmente también me gustaría agradecer a los alumnos de Telemática (Gema) y de Diseño Industrial (Marta) por acordarse de mi en sus discursos. Gracias.

Graduación Juanfran


Comments (0)

XML Quick References. Chuletario XML


May 07

Posted: under XML, XQuery.
Tags:

Navegando, navegando, …. hoy he encontrado lo que en Español llamaría «Chuletario XML» de gran ayuda para las personas que necesitamos tener en un único documento pdf todas las funcionalidaes/funciones de estos lenguajes de forma resumida.

Se encuentra en formato pdf  para los lenguajes  XML, XSLT v1, XSLT v2, XPath, XQuery y expresiones reguales. He decido pegar los enlaces directamente de la página web del autor (gracias Mulberry por estos valiosísimos documentos)

Comments (1)

Editores XML, XQuery y XSLT en GNU/Linux


May 06

Posted: under XML, XQuery.
Tags: ,

Aquellas personas que me conocen y saben mi experiencia en XML, GNU/Linux, …. tarde o temprano me hacen la misma pregunta. «Qué editor XML / XQuery/XSLT bajo GNU/Linux» me recomiendas. more_link_text

Comments (0)

Alumnos de Telemática del CUM realizan un viaje tecnológico a Madrid


Abr 30

Posted: under Docencia.
Tags:

Un grupo de 25 estudiantes y tres profesores de Ingeniería Técnica de Telecomunicaciones, especialidad Telemática, del Centro Universitario de Mérida han participado esta semana en un viaje tecnológico a Madrid como actividad dentro del Proyecto de Acogida y Tutorización de la Titulación de Telemática. El alumnado realizó la visita a una de las mayores empresas de Comunicaciones, Cisco Systems, y al museo de Correos.

La visita a la multinacional Cisco permitió al alumnado tener un acercamiento directo a una de las empresas punteras del sector de las telecomunicaciones a nivel mundial donde asistieron a una conferencia y demostración sobre Comunicaciones Unificadas, una sesión de telepresencia y una mesa redonda sobre el mercado de las telecomunicaciones.

Las Comunicaciones Unificadas combinan todas las formas de comunicación empresarial en un solo sistema unificado. Es un tecnología muy novedosa que consiste en  integrar en una misma infraestructura todos los servicios de telefonía, mensajería electrónica (correo electrónico, voz y fax), mensajería instantánea, recursos compartidos por web, etc.

A continuación, se realizó una sesión de telepresencia con Lisboa. La telepresencia se puede considerar como el siguiente paso a la video-conferencia donde el objetivo que se persigue es que los integrantes de la conferencia tenga la sensación de estar físicamente juntos pudiendo estar a miles de kilómetros de distancia.

Por la tarde, los alumnos visitaron el Museo de Correos situado en Aravaca, donde asistieron a una presentación sobre la historia de éste ente para posteriormente visitar las distintas salas que lo compone: instrumentos de la telegrafía del siglo XIX, siglo XX y las salas dedicadas a aspectos más relacionados con Correos como la sala de sellos o uniformes.

Telematica_Cisco

Comments (0)