The XML Pipeline Processor
Announcing the first release of the XML Pipeline Processor, my implementation of XProc: An XML Pipeline Processor.
At last, I'm releasing my nascent XProc processor. You'll find all the details on the project status page.
Fair warning: this release is extremely alpha. In addition to scant documentation and a woefully inadequate test suite, it is known to have the following bugs:
-
The defaulting story for primary inputs and outputs (i.e., a pipeline with no declared inputs gets an anonymous input if it's needed) is not supported.
-
There is no command-line syntax for binding options.
-
Parameters bound on the command-line are ignored.
-
The following steps are not implemented:
p:error
,p:xsl-formatter
, andp:xquery
. -
The
p:http-request
step is incompletely and incorrectly implemented. -
A large, almost random collection of debugging messages are printed.
-
Error reporting is abysmal.
No doubt it has many others.
However, it does implement a fair chunk of the specification and it does work for me, so maybe it'll work for you. I suggest you read the release notes before deciding if it's something you want to try today.
Bug reports and other comments most welcome. I expect to continue to work on making it complete and correct at least until the XProc specification has successfully exited its candidate recommendation phase.
Comments
Hi Norman,
Great news! (ok, I already knew you were releasing it ;-))
I've just downloaded and setup XProc, and have gave it a try. I had a few problems related with paths, I think because I'm here on Windows. You say here "Bug reports and other comments most welcome", but you don't say were this is the best to report them (here, on your personal email, on a dedicated ML, ...) so I post here. Please let me know if there is a more appropriate place to do so.
First, Windows doesn't seem to like the "/tmp/xproc.log" path:
As this is only a log file, I commented the following lines in xproc.Driver (lines 92-93):
Then Java doesn't like the Windows-like paths to construct URIs (note I just replaced some part of the full path on my system by "..."):
I replaced in org.xproc.parsers.XMLParser the following line (118):
by:
Adding a slash after "file:" was enough to solve the problem:
This is fine. But the path I tried to access to contained spaces (you know "My Documents/..."). URLEncoder.encode() replace some chars by their Unicode number (you know that), but spaces with '+'. So when the path contains a space, at the end of the day the system will try to find a directory whose the path contains "My+Documents/...", which doesn't exist:
So finally I replaced '+' by '%20' in the URL encoded string:
I am sure there would be better way to handle that, but I think that this gives you the idea.
Hope that helps.
Thanks for having made your implementation public. Best regards,
--drkm
Thanks, Florent! (And I think the issues you pointed out are now fixed in the repository.)
With respect to where to send bug reports, I think I remembered to say where in the release notes and the project page :-)
The best thing is to use one of the project mailing lists or the issue tracker at xproc.dev.java.net.
First I want to thank you for the nice work! XML Pipeline is very crucial to our application and I am so glad to see a decent open source implementation.
My question is, how can we use xml catalogs to validate when using xproc? Thank you!