Crea tus facturas electrónicas de forma sencilla y gratuita

“Hazte una Facturae” es un nuevo servicio disponible de forma gratuita y que permite realizar la emisión y firma digital de facturas en formato Facturae 3.1, generando adicionalmente una visualización de la misma en formato PDF.

Gracias a este servicio, las empresas pequeñas que tienen un volumen de facturación reducido, pueden emitir sus facturas electrónicas sin necesidad de adquirir un sotware especializado de facturación.

Como aspecto a reseñar, las facturas emitidas por este servicio validan perfectamente contra el servicio de validación que ofrece el Ministerio de Economía y Hacienda.

Maven Generators

Maven generators es el nombre que le he dado a un nuevo proyecto que he abierto en Google Code y que intenta hacer una primera recopilación de scripts de Maven para la generación de distintos tipos de salida, de forma que sea muy sencillo incorporar estas funcionalidades a nuestros proyectos.

En esta versión, podremos generar:

  • Clientes de acceso a Web Services a partir de un WSDL (soporta Axis2 y JAX-WS)
  • Clases de manejo de ficheros XML (marshall y unmarshall) con JAXB
  • Clases de manejo y persistencia de ficheros XML (marshall, unmarshall y almacenamiento con JPA) con HyperJAXB3
  • Clases de mapeo objeto/relacional con JPA e Hibernate

El proceso de generación siempre produce la salida en el directorio “target”, pudiéndose configurar en todos los casos el “package” de destino con el parámetro “-Dpackage=xxx”.
El primer paso en muchos de ellos es incluir el fichero a generar en el directorio “src/main/resources” y luego ejecutar el script de Maven asociado (todos cuentan con un README.txt explicativo con los pasos a seguir).

El formato ODF 1.2 tendrá soporte para XAdES

Hasta ahora, el formato ODF contaba con la posibilidad de poder almacenar una firma digital asociada en formato XML Signature.

Gracias a esta característica, podemos garantizar la identidad del autor o persona que ha generado el documento y lo ha firmado, y la integridad del mismo asegurando que no haya sido alterado.

Por otra parte, si queremos asegurar que el certificado utilizado es válido en el momento de la firma o establecer la fecha y hora de firma de forma feaciente, es necesario utilizar un formato de firma XML más avanzado que XML Signature.

Todos estos requisitos son cubiertos por el estándar XAdES, que en su perfil XAdES-X-L extiende la información criptográfica especificada por XML Signature y le añade la respuesta OCSP del servicio de validación de certificados y el sello de tiempo, entre otros muchos atributos. Es por todo esto que XAdES ha sido elegido como el formato de firma base para la generación de facturas electrónicas en formato Facturae.

Así pues, gracias al nuevo soporte de XAdES que tendrá ODF 1.2, podremos contar con todas estas nuevas funcionalidades que tan importantes son para la adminsitración electrónica y la preservación de documentos digitales.

Adicionalmente, es interesante destacar que PDF, vía la generación de firmas digitales en formato CMS, también es capaz de almacenar un sello de tiempo generado por una autoridad certificadora.

Enlace a la noticia original:

http://homembit.com/2009/01/firmas-digitales-en-el-odf-12-seran-compatibles-con-la-icp-brasil.html

ODF Toolkit Project

Logo ODF

Después de una muy larga espera y muchos intentos de tener un toolkit unificado para el manejo del estándar ODF (OpenDocument Format), IBM y Sun Microsystems han anunciado en la OpenOffice.org Conference 2008 el lanzamiento de un nuevo site que unificará todos los esfuerzos desplegados alrededor de ODF:

http://odftoolkit.org/

Dentro del ámbito de Java, han habido dos intentos reseñables de ofrecer un API “pura” para el manejo de ODF, es decir, que no necesitaran acceder a una instalación de OpenOffice corriendo como un servicio:

- odf4j. Implementación dentro del marco de desarrollo de OpenOffice.
- jOpenDocument. Implementación muy completa, con soporte incluso para la conversión de hojas de cálculo a PDF.

Posteriormente, la gente de Sun Microsystems tomaron el control del proyecto odf4j y lo rediseñaron por completo. Con una nueva arquitectura de capas y el “empujón” de tener un grupo de expertos desarrolladores detrás, nació ODFDOM.

Con este nuevo toolkit se ha conseguido unificar esfuerzos de forma que, jOpenDocument ha pasado a basarse en ODFDOM en lugar de realizar su propio mantenimiento del acceso al modelo de objetos de los documentos ODF.

Sólo añadir que, para los desarrolladores .NET, también existe una implementación oficial dentro del proyecto “ODF Toolkit” y se llama AODL.

Curso de especialización en desarrollo web avanzado

Con el fin de conocer más a fondo los nuevos entornos y tecnologías relacionadas con el desarrollo de aplicaciones Web, se presenta desde la Universitat Jaume I de Castellón, la segunda edición del “Curso de especialización en desarrollo web avanzado”. Este año totalmente online !!!

En esta segunda edición prevista desde Noviembre del 2008 a Junio de 2009, se abordarán las siguientes temáticas:

  • - Web 2.0: Conceptos e implicaciones
  • - Activos de información: Gestión, protección y control
  • - Herramientas y nuevos entornos de desarrollo: Wiki, Subversion, Eclipse, Trac
  • - Tecnologías base de cliente: XHTML/XML, CSS, JavaScript, SVG en cuanto a las tecnologías base y algunos frameworks de cliente rico como Prototype, JQuery o ExtJS
  • - Tecnologías de servidor: PHP y Java
  • - Seguridad en entornos web
  • - Arquitecturas orientadas a servicios: SOA, Web Services, WSDL y REST

Para más información, se encuentra disponible la página del curso donde, además, se pueden ver algunos ejemplos descargables de los materiales proporcionados:

http://cursowebavanzado.uji.es/

Os esperamos!!!

Script de conversión de MARC21 a MARCXML

El formato MARC o Machine Readable Cataloging nació en los años 60 para compartir registros bibliográficos y catálogos entre bibliotecas.

Ejemplo de un registro en formato MARC21:

00549nam 2200181 450 008004100000021002100041035001500062080001000077100\
00280008724500630011525000100017826000300018830000300021849000380024850400270028\
6650002400313999003000337^^920413s1988 sp ad W 000 cat ^^10^_a84-7596-137-1^_bm^^ ^_a0000-00560^^00^_a82.08^^10^_aCassany i Comas^_hDaniel^^10^_aDescriure escriure^_bcom s'aprèn a escriure^_dDaniel Cassany^^00^_a2ª ed^^00^_aBarcelona^_bEmpúries^_c1988^^00^_a192 p.^_bil.^_igràf.^_c20 cm^^00^_aBiblioteca Universal Empúries^_v35^^00^_aBibliogr.: p.[185]-190^^00^_aLiteratura^_xTècnica^^00^_aVTLSFF4002 930429 0002^^^]

Posteriormente nace MARCXML, con la definición de un XML Schema para describir la estructura MARC21 y así poder codificar los registros MARC en XML:

http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd

El equivalente al ejemplo anterior, pero en formato MARC es el siguiente:

<?xml version="1.0" encoding="iso-8859-1" ?>
<marc:collection xmlns:marc="http://www.loc.gov/MARC21/slim"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.loc.gov/MARC21/slim http://www.loc.gov/standards/marcxml/schema/MARC21slim.xsd">
<marc:record>
<marc:leader>00549nam 2200181 450</marc:leader>
<marc:controlfield tag="008">920413s1988 sp ad W 000 cat</marc:controlfield>
<marc:datafield tag="021" ind1="1" ind2="0">
<marc:subfield code="a">84-7596-137-1</marc:subfield>
<marc:subfield code="b">m</marc:subfield>
</marc:datafield>
<marc:datafield tag="035" ind1="" ind2="">
<marc:subfield code="a">0000-00560</marc:subfield>
</marc:datafield>
<marc:datafield tag="080" ind1="0" ind2="0">
<marc:subfield code="a">82.08</marc:subfield>
</marc:datafield>
<marc:datafield tag="100" ind1="1" ind2="0">
<marc:subfield code="a">Cassany i Comas</marc:subfield>
<marc:subfield code="h">Daniel</marc:subfield>
</marc:datafield>
<marc:datafield tag="245" ind1="1" ind2="0">
<marc:subfield code="a">Descriure escriure</marc:subfield>
<marc:subfield code="b">com s'aprèn a escriure</marc:subfield>
<marc:subfield code="d">Daniel Cassany</marc:subfield>
</marc:datafield>
<marc:datafield tag="250" ind1="0" ind2="0">
<marc:subfield code="a">2ª ed</marc:subfield>
</marc:datafield>
<marc:datafield tag="260" ind1="0" ind2="0">
<marc:subfield code="a">Barcelona</marc:subfield>
<marc:subfield code="b">Empúries</marc:subfield>
<marc:subfield code="c">1988</marc:subfield>
</marc:datafield>
<marc:datafield tag="300" ind1="0" ind2="0">
<marc:subfield code="a">192 p.</marc:subfield>
<marc:subfield code="b">il.</marc:subfield>
<marc:subfield code="i">gràf.</marc:subfield>
<marc:subfield code="c">20 cm</marc:subfield>
</marc:datafield>
<marc:datafield tag="490" ind1="0" ind2="0">
<marc:subfield code="a">Biblioteca Universal Empúries</marc:subfield>
<marc:subfield code="v">35</marc:subfield>
</marc:datafield>
<marc:datafield tag="504" ind1="0" ind2="0">
<marc:subfield code="a">Bibliogr.: p.[185]-190</marc:subfield>
</marc:datafield>
<marc:datafield tag=”650″ ind1=”0″ ind2=”0″>
<marc:subfield code=”a”>Literatura</marc:subfield>
<marc:subfield code=”x”>Tècnica</marc:subfield>
</marc:datafield>
<marc:datafield tag=”999″ ind1=”0″ ind2=”0″>
<marc:subfield code=”a”>VTLSFF4002 930429 0002</marc:subfield>
</marc:datafield>
</marc:record>
</marc:collection>

Así pues, ante la necesidad de convertir de MARC21 a MARCXML, he desarrollado un sencillo script en Python que realiza el proceso. Para utilizarlo, sólo es necesario pasarle como parámetro el fichero de origen y el destino:

python marc2xml.py
Usage: run.py <fichero_marc> <fichero_xml>

Podeis descargar el script aquí

Entradas siguientes »