SaxonHe (saxon_he v12.5.2)
Copy MarkdownWrapper alrededor de Saxon-HE (XSLT 3.0 / XQuery 3.1).
Mirror del paquete Node @saxon-he/cli.
Modo de invocación
Saxon expone dos comandos: transform (XSLT) y query (XQuery). Esta
librería invoca esos binarios directamente vía System.cmd/3 — no
arranca un JVM con -jar. Esto significa que necesitas tener transform
y/o query accesibles en tu PATH (o pasar binary: explícito en new/1).
En macOS con Homebrew, el binario saxon viene en
/opt/homebrew/Cellar/saxon/<version>/bin/saxon. Para tener un comando
transform global puedes hacer:
sudo ln -sf /opt/homebrew/Cellar/saxon/12.9/bin/saxon /usr/local/bin/transformSubmódulos
SaxonHe.Transform—transform(XSLT).SaxonHe.Query—query(XQuery).SaxonHe.CliShare— flags compartidos (uso interno).
Ejemplo
{:ok, cadena} =
SaxonHe.Transform.new()
|> SaxonHe.Transform.s("comprobante.xml")
|> SaxonHe.Transform.xsl("cadenaoriginal.xslt")
|> SaxonHe.Transform.run()Configuración legacy del JAR
saxon_jar_path/0 sigue disponible para quien necesite construir un
java -jar por su cuenta, pero la librería ya no lo usa internamente.
Summary
Functions
true si el binario dado se puede invocar (está en PATH o es ruta
absoluta a un ejecutable). Default: transform.
Ejecuta <binary> <args> con System.cmd/3.
Devuelve la ruta configurada al JAR de Saxon-HE.
Functions
true si el binario dado se puede invocar (está en PATH o es ruta
absoluta a un ejecutable). Default: transform.
@spec run(String.t(), [String.t()], keyword()) :: {:ok, String.t()} | {:error, {integer(), String.t()}} | {:error, {:binary_not_found, String.t()}}
Ejecuta <binary> <args> con System.cmd/3.
Opciones
:silent_stderr(defaultfalse) — combina stderr con stdout y lo descarta (stderr_to_stdout: true, into: ""). Útil para silenciar warnings de Saxon (Ambiguous rule match, etc).:cmd_opts— opciones extra paraSystem.cmd/3.
Devuelve {:ok, stdout} si exit code 0, {:error, {status, output}} si no,
o {:error, {:binary_not_found, binary}} si el ejecutable no se encuentra.
@spec saxon_jar_path() :: String.t()
Devuelve la ruta configurada al JAR de Saxon-HE.
Resuelve en orden:
- Variable de entorno
SAXON_JAR. config :saxon_he, :jar_path, "/path/to/saxon-he-12.jar".
Lanza si no está configurada. Mantenido para compatibilidad — la librería
ya no lo usa internamente; ahora invoca el binario transform/query.