Saltar al contenido

Cómo ejecutar la transformación saxon xslt en java

Luego de consultar especialistas en el tema, programadores de varias áreas y maestros hemos dado con la solución al problema y la dejamos plasmada en este post.

Solución:

La documentación está aquí: http://www.saxonica.com/documentation/index.html#!using-xsl/embedding

Saxon ofrece dos API para ejecutar transformaciones XSLT desde una aplicación Java: la API JAXP y la API s9api. JAXP es una interfaz estándar que ofrecen casi todos los procesadores Java XSLT, por lo que querrá usar esta si desea que su aplicación sea portátil; su desventaja es que (a) está muy orientado a XSLT 1.0 y eso dificulta aprovechar las nuevas capacidades en XSLT 2.0 y XSLT 3.0, y (b) no se integra especialmente bien con las API para tareas relacionadas como el esquema procesamiento y evaluación XPath.

La API s9api se asemeja mucho más a las capacidades de Saxon en una variedad de tareas que incluyen validación XSLT, XQuery, XPath y XSD, pero no es portátil.

Es tu elección.

Es mejor que trabaje con las API estándar de Java para el procesamiento de XML y XSLT: java.xml.transform

La primera clase a la que debe acceder es javax.xml.transform.TransformerFactory, que usa para crear un objeto Transformer, que luego usa para ejecutar su transformación XSLT. Alternativamente, puede usar TransformerFactory para crear un objeto Plantillas (lo que hará que Saxon preprocese/compile/etc. su hoja de estilo XSLT), y luego use el objeto Plantillas repetidamente para crear objetos Transformador para sus transformaciones XSLT.

Para asegurarse de que la clase javax.xml.transform.TransformerFactory se asigne a la implementación de Saxon, puede jugar con el classpath de arranque usando las opciones de la línea de comandos o usar el código para hacer lo mismo:

System.setProperty(“javax.xml.transform.TransformerFactory”, “net.sf.saxon.TransformerFactoryImpl”);

Una vez hecho esto, cualquier llamada a TransformerFactory.newInstance() creará mágicamente implementaciones de Saxon TransformerFactory. Es mucho mejor usar este método, ya que obtendrá los beneficios de las API estándar de Java y tendrá la libertad de pasar a otros procesadores XSLT más adelante. Es posible que desee considerar el uso de XSLTC, que es parte de Apache Xalan, ya que es más rápido para ciertos tipos de hojas de estilo XSLT.

Finalizando este artículo puedes encontrar las interpretaciones de otros gestores de proyectos, tú también tienes el poder mostrar el tuyo si dominas el tema.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *