Entradas etiquetadas como xml

Uso de APIs web RESTful con Python requests


Uno de los métodos que se están imponiendo en Internet para la comunicación de aplicaciones con servicios web disponibles es una API web tipo RESTful o REST, este método está desplazando paulatinamente a XML-RPC que está en progresivo desuso o SOAP, protocolo que es una recomendación de la W3C para ofrecer servicios web.

Las API REST está imponiéndose a otros métodos por su sencillez, y a pesar de que no son un protocolo bien establecido como SOAP, tienen un conjunto de aspectos que las definen:

  • Se utiliza una URI para definir el servicio web
  • Los datos se transfieren utilizando un formato como estandarizado (XML y JSON son los dos más extendidos actualmente)
  • Se utilizan métodos estándar HTTP: GET, POST, PUT o DELETE

En esta entrada veremos mediante algunos ejemplos la forma de utilizar APIs REST desde una aplicación Python, utilizando la biblioteca requests.

Leer el resto de esta entrada »

Anuncios

, , ,

2 comentarios

xhtml 1.0 strict en emacs con nxml-mode


El modo por defecto que utiliza el editor emacs para trabajar con ficheros html se denomina html-mode, pero me resulta más cómodo utilizar el modo genérico nxml para trabajar con ficheros xml (en este caso será con xhtml). En esta breve entrada explicaremos los pasos que hay que dar para utilizar nxml adecuadamente con ficheros html, seleccionando el esquema concreto que queramos utilizar.

Modo nxml para ficheros html

En primer lugar hay que decirle a emacs que cuando se abra un fichero con extensión .html, no debe activar el modo html, sino que en su lugar debe activar el modo nxml. Para ello editamos el fichero de configuración de nuestro usuario (por ejemplo ~/.emacs) e incluimos la línea (aprovechamos e incluimos en este modo también los ficheros con extensión .xml, .xsl y .xhtml):

(setq auto-mode-alist
      (cons '("\\.\\(xml\\|xsl\\|xhtml\\|html\\)\\'" . nxml-mode)
            auto-mode-alist)

De esta manera cada vez que abramos un fichero de extensión .html o .xhtml se activará el modo nxml.

Seleccionar un esquema concreto

Hay más de un esquema en XHTML 1.0 para validar los documentos, más concretamente los dos más habituales son XHTML 1.0 Transitional y XHTML 1.0 Strict (¿y XHTML 1.0 Frameset? Ejem. pasapalabra). Emacs en modo nxml utiliza por defecto XHTML 1.0 transitional, que es más tolerante que el modo Strict. Sin embargo, es mucho más adecuado para aprender HTML utilizar el modo estricto, por lo que vamos a cambiar el comportamiento de emacs para que cargue el esquema de XHTML 1.0 Strict por defecto.

Añadimos la siguiente línea a nuestro fichero de configuración de Emacs (~/.emacs por ejemplo):

(eval-after-load 'rng-loc '(add-to-list 'rng-schema-locating-files "~/.schemas/schemas.xml"))

Para que se busquen los esquemas de los diferentes dialectos en el directorio ~/.schemas, de acuerdo a lo especificado en el fichero schemas.xml, por lo que el siguiente paso es crear el directorio ~/.schemas y ubicar allí el fichero schemas.xml con el siguiente contenido:

<locatingRules xmlns="http://thaiopensource.com/ns/locating-rules/1.0">
    <namespace ns="http://www.w3.org/1999/xhtml" typeId="XHTML"/>
    <typeId id="XHTML" typeId="XHTML Strict"/>
    <typeId id="XHTML Strict" uri="xhtml-strict.rnc"/>
    <typeId id="XHTML Transitional" uri="xhtml-transitional.rnc"/>
</locatingRules>

Ahora tenemos que ubicar dentro del directorio ~/.schemas los ficheros con los esquemas de XHTML 1.0 Strict y XHMTML 1.0 Transitional en formato Relax NG Compact que utiliza Emacs. En primer lugar instalamos los paquetes xhtml-relaxng y trang. El primero incluye los esquemas de XHTML, pero en formato rng, no rnc y trang es una aplicación que permite transformar uno en otro.

Copiamos el directorio con los esquemas de XHTML en formato rng a un directorio temporal:

$ cp -a /usr/share/xml/xhtml-relaxng /tmp/esquemas/

Utilizamos trang para transformar los ficheros .rng a .rnc:

$ cd /tmp/esquemas
$ trang -I rng -O rnc xhtml.rng xhtml-transitional.rnc
$ trang -I rng -O rnc xhtml-strict.rng xhtml-strict.rnc

Por último movemos todos los ficheros en formato .rnc al directorio ~/.schemas:

$ mv *.rnc ~/.schemas

Ahora podremos decidir el esquema a utilizar a través del menú “XML > Set Schema > For Document Type”

, ,

1 comentario

Primeros pasos con DocBook


Para realizar presentaciones o documentos de texto, en lugar de utilizar aplicaciones ofimáticas, llevo muchos años utilizando LaTeX. LaTeX es muy potente y el resultado final es impresionante, es el formato estándar para publicar documentación científica y era el formato utilizado para crear de forma colaborativa documentación en proyectos de software libre, sin embargo hace años surgió el formato Docbook, que ha sustituido a LaTeX en determinados ámbitos, en particular en este último. No tengo todavía una opinión formada sobre las ventajas de uno sobre otro, creo que voy a empezar a utilizar DocBook para determinadas cosas e iré aprendiendo de la experiencia.

En esta entrada se explica una manera de empezar a trabajar con DocBook (versión 5), utilizando Emacs como editor y Debian GNU/Linux (squeeze) como sistema operativo.

Leer el resto de esta entrada »

, ,

3 comentarios

Servicios web


Pequeña introducción a los servicios web para utilizar en el curso de Lenguajes de Marcas:

, , , , , ,

1 comentario

Guardando una copia de mis marcadores de del.icio.us


Hoy publican en barrapunto que yahoo podría cerrar del.icio.us, debe ser esto de la nube que cada vez parece más un nubarrón gris oscuro :-/.

Utilizo delicious desde hace tiempo y al enterarme de la noticia he buscado la forma de descargarme mis marcadores para guardarlos en casa al cobijo de los nubarrones, he encontrado la siguiente instrucción en commandlinefu.com:

curl -u alberto.molina -o bookmarks.xml https://api.del.icio.us/v1/posts/all

que utiliza la api de delicious y nos descarga todos los marcadores y almacen en el fichero bookmarks.xml, con una estructura muy simple. Si realmente delicious deja de funcionar, habrá que buscar una alternativa y volcar allí los marcadores.

, , , , , ,

Deja un comentario

Emacs como editor XML


Emacs es un extraordinario editor de textos que utilizo desde hace años (más de la cuenta :-) ), principalmente para algunas cosas de programación y LaTeX. Este año estoy descubriendo las posibilidades que tiene como editor XML utilzando el modo nxml.

En esta entrada se explica la configuración de emacs con el modo nxml, los pasos para transformar un esquema cualquiera al formato a rnc utilizado por emacs y cómo se demuestra la utilidad de XML con la validación al vuelo de documentos. En particular vamos a utilizar los esquemas de la api de virtualización libvirt y veremos que es mucho más sencillo así editar manualmente los ficheros de configuración para las máquinas y redes virtuales.

Esta implementación se ha realizado utilizando paquetes oficiales de la distribución de pruebas (actualmente squeeze) de Debian GNU/Linux, aunque seguramente es posible utilizarlo con pocos cambios en otras distribuciones GNU/Linux

Leer el resto de esta entrada »

, ,

1 comentario

A %d blogueros les gusta esto: