Xsltproc custom compilation
Here should go questions about transforming XML with XSLT and FOP.
-
- Posts: 3
- Joined: Thu Jan 28, 2016 9:38 pm
Xsltproc custom compilation
Hi
I am using Oxygen 13.2 under Windows 8 64bits.
This version of Oxygen is bundled with xsltproc using libxml 1.1.26. I need to use libxml 1.1.28. I have found binaries for xsltproc using this version, installed them on my machine, it works.
When I replace Oxygen dll with he new ones, I get
I/O error : Invalid argument
The transformer process ended with code: 11
which is documented as "could not write the result to the output file"
I have tried multiple things for configuring the output file in scenario description, including no output file, and could not find anything that works. I have used xsltproc in command line with and without output file and it works fine.
So my question : is how can we see the command line used by Oxygen, or even better, customize it, so see/fix what is wrong ?
Since this was not working, I have tried creating a custom XSLT processor with my working command line : if I don't specify any output file in the command line, I get the transformation result as warnings instead of the editor view. If I specify the output file, I get same error as built-in xsltproc :
I/O error : Invalid argument
The transformer process ended with code: 11
I suspect there is some access right issue, I have tried executing Oxygen as administrator but not better...
Any ideas ??
Thanks for your help!
I am using Oxygen 13.2 under Windows 8 64bits.
This version of Oxygen is bundled with xsltproc using libxml 1.1.26. I need to use libxml 1.1.28. I have found binaries for xsltproc using this version, installed them on my machine, it works.
When I replace Oxygen dll with he new ones, I get
I/O error : Invalid argument
The transformer process ended with code: 11
which is documented as "could not write the result to the output file"
I have tried multiple things for configuring the output file in scenario description, including no output file, and could not find anything that works. I have used xsltproc in command line with and without output file and it works fine.
So my question : is how can we see the command line used by Oxygen, or even better, customize it, so see/fix what is wrong ?
Since this was not working, I have tried creating a custom XSLT processor with my working command line : if I don't specify any output file in the command line, I get the transformation result as warnings instead of the editor view. If I specify the output file, I get same error as built-in xsltproc :
I/O error : Invalid argument
The transformer process ended with code: 11
I suspect there is some access right issue, I have tried executing Oxygen as administrator but not better...
Any ideas ??
Thanks for your help!
-
- Posts: 2879
- Joined: Tue May 17, 2005 4:01 pm
Re: Xsltproc custom compilation
Hi,
I believe you are referring to libxslt 1.1.28. libxml is at a different version. Anyway, I found it here (for Windows) with all required libraries:
http://xmlsoft.org/sources/win32/64bit/
I downloaded most libraries for x86, put them all in the same folder and it works as you described.
e.g. However, if I use a forward slash (as in Unix paths) in the output path, it works:
So it seems to be a problem with this build of xsltproc, at least on Windows, as it expects absolute paths of the output to have forward slashes(/).
The simplest solution right now is to create a custom XSLT engine in Options > Preferences, XML > XSLT-FO-XQuery > Custom Engines and use the command line: Unfortunately you need to use a fixed output file and be careful that the "Working directory" is set to a location with write access (that's where the output file will be saved). Try ${cfd} (same as the input file directory).
Regards,
Adrian
I believe you are referring to libxslt 1.1.28. libxml is at a different version. Anyway, I found it here (for Windows) with all required libraries:
http://xmlsoft.org/sources/win32/64bit/
I downloaded most libraries for x86, put them all in the same folder and it works as you described.
I'm afraid you can't see the command line. But that doesn't seem to be the problem anyway. Oxygen simply provides absolute file paths for xsl , xml and output files. As soon as you specify an output file with an absolute path, this build of xsltproc fails. I can reproduce this problem independently from Oxygen.So my question : is how can we see the command line used by Oxygen, or even better, customize it, so see/fix what is wrong ?
e.g.
Code: Select all
xsltproc.exe -o "C:\path\to\out.xml" my.xsl my.xml
I/O error : Invalid argument
Code: Select all
xsltproc.exe -o "C:/path/to/out.xml" my.xsl my.xml
The simplest solution right now is to create a custom XSLT engine in Options > Preferences, XML > XSLT-FO-XQuery > Custom Engines and use the command line:
Code: Select all
xsltproc.exe -o fixedOutput.xml "${xsl}" "${xml}"
Regards,
Adrian
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
-
- Posts: 3
- Joined: Thu Jan 28, 2016 9:38 pm
Re: Xsltproc custom compilation
Hi
Thanks for your investigations that made me realize that even if I enter slashes in Oxygen "output file" setting, it gets converted as backslashes, which is why I thought that never slashes nor backslashes worked in Oxygen.
It works like you say, so it's kind of good, but actually what I really wanted to do what to display the result at the bottom of oxygen thanks to "display as" : "XML" setting. Until now I was not saving output anywhere but only displaying it.
If I use built-in xsltproc and leave output file blank but request to display output, I get the "I/O error : Invalid argument" error. I guess that Oxygen requests that the output is written to a temporary file so that I can be displayed ?
If I do the same with a custom xsltproc without specifying any "-o" argument, the output gets displayed as warnings, not as the actual result.
Is there a way to use the "display as" : "XML" setting with a custom xsltproc ?
Thanks again for your helpful comment!
Thanks for your investigations that made me realize that even if I enter slashes in Oxygen "output file" setting, it gets converted as backslashes, which is why I thought that never slashes nor backslashes worked in Oxygen.
It works like you say, so it's kind of good, but actually what I really wanted to do what to display the result at the bottom of oxygen thanks to "display as" : "XML" setting. Until now I was not saving output anywhere but only displaying it.
If I use built-in xsltproc and leave output file blank but request to display output, I get the "I/O error : Invalid argument" error. I guess that Oxygen requests that the output is written to a temporary file so that I can be displayed ?
If I do the same with a custom xsltproc without specifying any "-o" argument, the output gets displayed as warnings, not as the actual result.
Is there a way to use the "display as" : "XML" setting with a custom xsltproc ?
Thanks again for your helpful comment!
-
- Posts: 2879
- Joined: Tue May 17, 2005 4:01 pm
Re: Xsltproc custom compilation
Hi,
Regards,
Adrian
Yes. You have to configure the Output > Save As file from the transformation scenario to indicate the fixed output file of the custom xsltproc. This tells Oxygen where to find the output file. Then you can use the "Show As: XML".Is there a way to use the "display as" : "XML" setting with a custom xsltproc ?
Regards,
Adrian
Adrian Buza
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
<oXygen/> XML Editor, Schema Editor and XSLT Editor/Debugger
http://www.oxygenxml.com
-
- Posts: 3
- Joined: Thu Jan 28, 2016 9:38 pm
Re: Xsltproc custom compilation
Hi
Ok thanks for all input. Here is my final solution if anyone ever wants to do the same :
[*] Define a fixed output file for XSLT scenario
[*] Define custom xsltproc with command :
[*]Create ${oxygenInstallDir}/xsltproc.bat file with content :
[*]Edit [userdir]\AppData\Roaming\com.oxygenxml\oxyOptionsSa13.2.xml to batch modify xsltTransformer and outputFile for all my XSLT scenario
And finally I get output from this custom xsltproc directly in oxygen! Nice
Thanks again for the help!!!
Ok thanks for all input. Here is my final solution if anyone ever wants to do the same :
[*] Define a fixed output file for XSLT scenario
[*] Define custom xsltproc with command :
Code: Select all
${oxygenInstallDir}/xsltproc.bat -o "${out}" "${xsl}" "${xml}"
Code: Select all
@ECHO OFF
SET output=%2
SET fixedOutput=%output:\=/%
set xml=%3
set fixedXml=%xml:\=/%
set xsl=%4
set fixedXsl=%xsl:\=/%
SET command="%~dp0/xsltproc.exe" %1 %fixedOutput% %fixedXml% %fixedXsl%
%command%
And finally I get output from this custom xsltproc directly in oxygen! Nice

Thanks again for the help!!!
Jump to
- Oxygen XML Editor/Author/Developer
- ↳ Feature Request
- ↳ Common Problems
- ↳ DITA (Editing and Publishing DITA Content)
- ↳ SDK-API, Frameworks - Document Types
- ↳ DocBook
- ↳ TEI
- ↳ XHTML
- ↳ Other Issues
- Oxygen XML Web Author
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Content Fusion
- ↳ Feature Request
- ↳ Common Problems
- Oxygen JSON Editor
- ↳ Feature Request
- ↳ Common Problems
- Oxygen PDF Chemistry
- ↳ Feature Request
- ↳ Common Problems
- Oxygen Feedback
- ↳ Feature Request
- ↳ Common Problems
- Oxygen XML WebHelp
- ↳ Feature Request
- ↳ Common Problems
- XML
- ↳ General XML Questions
- ↳ XSLT and FOP
- ↳ XML Schemas
- ↳ XQuery
- NVDL
- ↳ General NVDL Issues
- ↳ oNVDL Related Issues
- XML Services Market
- ↳ Offer a Service