Blog de Luis Arévalo
Dic 08
It is a pleasure for me to announce the release of a new software for the management of XML versions which is called vDocXML. Its implementation has been made by XQuery modules and it can be used to extend the XML native database (eXist) for adding versioning features in a native way. You can find […] [...more]
Posted: under eXist, Investigación, XML, XQuery.
Tags: Historical Information, versionstamp, XML versions
It is a pleasure for me to announce the release of a new software for the management of XML versions which is called vDocXML. Its implementation has been made by XQuery modules and it can be used to extend the XML native database (eXist) for adding versioning features in a native way. You can find more information in http://code.google.com/p/vdocxml/.
Nov 11
Last week, I was in Germany for a meeting in Rostock (3rd Model Meeting: Modeling biological systems. Bio-model versioning – how to identify, interpret and annotate changes in models). Besides I took advantages of this trip to visit Berlin. what wonderful cities! My contribution consisted of giving an overview of different techniques for the management […] [...more]
Posted: under eXist, Investigación, XQuery.
Tags: Historical Information, vDocXML, Versions, XML Versioning
My contribution consisted of giving an overview of different techniques for the management of XML versions as well as to show our versioning system which is called vDocXML (
slides). If you have any questions, just let me know adding a comment.
The abstract of this talk is: In this talk an overview of different techniques for the management of XML versions will be explained. Traditional systems, temporal databases, procedures based on XML change operations (delta XML) or by integrating the different versions into a single XML document using a temporal, a version or a temporal-version technique will be revised. The main advantages and disadvantages of each one will be discussed. In the second part of this talk, the vDocXML data model will be shown which uses a versionstamp instead of a timestamp technique. It allows us to manage branched versioning in an easy way. Furthermore, the vDocXML library, which is a versioning system based on this model and using XQuery modules, will be explained.
Feb 08
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 […] [...more]
Posted: under eXist, XML, XQuery.
Tags: Documentación, XQDoc, XQuery
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
Feb 01
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 […] [...more]
Posted: under eXist, XML, XQuery.
Tags: Buenas Prácticas, Codificación XQuery, Estilos XQuery
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.
Ene 20
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]
Posted: under eXist.
Tags: Configuración eXist, Memoria en eXist, Puerto en eXist
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
Sep 22
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») […] [...more]
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.
May 13
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 […] [...more]
Posted: under eXist, XML, XQuery.
Tags: Recuperación documentos binarios eXist xq XQuery
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
Mar 14
En el anterior post vimos como ejecutar una consulta en XQuery sobre eXist desde un programa escrito en Java. En este post continuamos viendo otros códigos para realizar las operaciones más habituales sobre eXist desde Java. [...more]
Posted: under eXist, java, XML, XQuery.
En el anterior post vimos como ejecutar una consulta en XQuery sobre eXist desde un programa escrito en Java. En este post continuamos viendo otros códigos para realizar las operaciones más habituales sobre eXist desde Java. more_link_text
Mar 08
Hasta ahora sólo me he preocupado de enseñaros como utilizar las herramientas que proporciona eXist. Pero, ¿Cómo podemos interactuar desde nuestra aplicación Java con eXist?. Esta pregunta espero responderla en este post. [...more]
Posted: under eXist, XML, XQuery.
Hasta ahora sólo me he preocupado de enseñaros como utilizar las herramientas que proporciona eXist. Pero, ¿Cómo podemos interactuar desde nuestra aplicación Java con eXist?. Esta pregunta espero responderla en este post.
more_link_text
Feb 23
Como os dije en mi anterior post, la opción más recomendable para instalar eXist es descargándote directamente el código fuente y compilándolo. Como veréis es muy sencillo y únicamente requiere de varios pasos: [...more]
Posted: under eXist, XML, XQuery.
Tags: Compilar eXist
Como os dije en mi anterior post, la opción más recomendable para instalar eXist es descargándote directamente el código fuente y compilándolo. Como veréis es muy sencillo y únicamente requiere de varios pasos:
more_link_text