API's recomendadas para las transformaciones sobre XML

PAUT-0045 (Pauta)

MADEJA recomienda el uso de la librería Xalan para el tratamiento de las transformaciones en archivos XML

En ocasiones es necesario permitir realizar transformaciones de documentos XML con lenguajes basados en XSL(XSLT, XPath). El XML puede ser transformado en distintos formatos, como HTML u otro documento XML.

XSLT (XSL Transformations), definido por el grupo de trabajo XSL de la W3C, describe un lenguaje para transformar documentos XML en otros documentos XML o en otros formatos. Para realizar la transformación, normalmente necesitamos suministrar una hoja de estilo, que está escrita en "XML Stylesheet Language" (XSL). La hoja de estilo XSL específica como se mostrarán los datos XML. XSLT usa las instrucciones de formateo de la hoja de estilo para realizar la transformación. El documento convertido puede ser otro documento XML o un documento en otro formato, como HTML.

XSLT requiere que el desarrollador codifique reglas (plantillas) que serán aplicadas cuando se encuentren los patrones especificados en el documento fuente. Estos patrones se especifican usando el lenguaje Xpath.

Xpath se usa para localizar y extraer información desde el documento. Mientras que SAX y DOM requieren que el desarrollador Java escriba código Java, XSLT (a parte del propio motor de invocación) sólo requiere escribir hojas de estilo que son así mismo documentos XML.

Esisten API's que facilitan la tranformación.JAXP soporta XSLT con el paquete javax.xml.transform, que nos permite enchufar un transformer XSLT para realizar las transformaciones. Los subpaquetes tienen APIs de streams específicos, de SAX-, y de DOM-, que nos permiten realizar transformaciones directamente desde árboles DOM y eventos SAX.

Entre las principales características de Xalan se encuentran:

Ventajas:

  • Es multiplataforma, funciona tanto en linux como windows
  • Es compatible con JAXP, implementando la rama correspondiente a las transformaciones XSLT de dicha API.
  • La salida no tiene por qué ser HTML para visualización en un navegador, sino que puede estar en muchos formatos.
  • Permite manipular de muy diversas maneras un documento XML: reordenar elementos, filtrar, añadir, borrar, etc.
  • Permite acceder a todo el documento XML, no sólo al contenido de los elementos.
  • XSLT es un lenguaje XML, por lo que no hay que aprender nada especial acerca de su sintaxis.

Desventajas:

  • Su utilización es más compleja.
  • Consume cierta memoria y capacidad de proceso, pues se construye un árbol con el contenido del documento.

Contenidos relacionados

Recursos
Área: Desarrollo » Aplicaciones Java » Librerías y Utilidades para Aplicaciones Java
Código Título Tipo Carácter
RECU-0229 Xalan Ficha Técnica Recomendado