Saltar al contenido principal

Visual Studio Code

Es posible llevar a cabo transformaciones XSLT en Visual Studio Code de diferentes formas. En este apartado, presentamos las siguientes:

  • Utilizando la extensión XSLT/XPath for Visual Studio Code.
  • Utilizando Saxon.

XSLT/XPath for Visual Studio Code

La extensión XSLT/XPath for Visual Studio Code ofrece diferentes funcionalidades, entre las cuales se encuentra la transformación XSLT.

Las transformaciones se pueden realizar a través de tareas (tasks). Para realizar una, debemos seleccionar la opción en el menú Terminal:

A continuación, seleccionamos el procesador XSLT. En este caso, Saxon:

Por último, seguimos los pasos que se piden. Debemos elegir:

  • El fichero XML fuente.
  • La hoja XSL.
  • El nombre del fichero de salida.

Saxon

Otra forma de realizar transformaciones XSLT es utilizando Saxon y la extension Run On Save de forma conjunta.

En primer lugar, debemos instalar la extensión:

En segundo lugar, debemos descargar Saxon en el mismo directorio donde tenemos los ficheros XML y XSLT. Es requisito tener previamente instalado el SDK de Java.

Los ficheros XML, XSLT y los ficheros de Saxon deben estar en el mismo directorio y en el directorio raíz del proyecto. No pueden estar en ningún subdirectorio.

Por último, debemos configurar la extensión utilizando el fichero settings.json con el siguiente código:

{
"emeraldwalk.runonsave": {
"commands": [
{
"match": "\\.xml|\\.xsl",
"cmd": "java -cp saxon-ee-12.0.jar net.sf.saxon.Transform -s:doc.xml -xsl:style.xsl -o:out.xml"
}
]
}
}

En el código anterior se está configurando que:

  • doc.xml sea el documento XML de entrada.
  • style.xsl sea la hoja XSL utilizada para realizar la transformación.
  • out.xml sea el documento XML de salida, es decir, el documento resultante tras la transformación XSLT.

La salida del comando ejecutado por la extensión la podemos ver en Output pulsando CTRL+Shift+U y seleccionando Run on Save en el menú desplegable situado en la parte derecha.

Si los archivos no están todos en el mismo directorio y en la raíz, obtendremos el siguiente error:

Error: Could not find or load main class net.sf.saxon.Transform
Caused by: java.lang.ClassNotFoundException: net.sf.saxon.Transform