[oXygen-user] using custom parser in saxon 9 transformation scenario

Sorin Ristache
Wed Apr 23 09:45:21 CDT 2008


Now I think I understand. You want to apply an XSLT 
stylesheet to a stream of XML events generated by a custom 
parser from a binary file. You call the custom parser from a 
custom URI resolver that resolves the URL of the input XML 
file. You set the -u parameter for passing the URL of the 
input XML file through the custom URI resolver.

This cannot be done in the current version of Oxygen because 
Oxygen passes the URL of the input XML file only through a 
built-in resolver that tries to resolve the URL of the input 
XML file with the XML catalogs set in the user preferences. 
The Saxon custom URI resolver is used by Saxon internally 
only for URIs from the XSLT stylesheet because the stream of 
XML events from the input XML file is provided by Oxygen. A 
future version of Oxygen will pass the URL of the input file 
also through the Saxon custom URI resolver as if the -u 
parameter is always set when Saxon is used in Oxygen.

There is a very simple workaround: load the input file 
through your custom URI resolver directly from the XSLT 
stylesheet with the document() function, something like:

     <xsl:template match="/">

Of course you have to set the class name of your custom URI 
resolver in Options -> Preferences -- XML -- XSLT/FO/XQuery 
-- XSLT -- Saxon -- Saxon 9 -- Advanced -- URI Resolver 
class name.


Peter Rushforth wrote:
> I believe I've set the extension classes correctly.  An odd thing is that when I
> try to run the same thing from the command line, when I *don't* use the -u
> option I get the same message regarding content not allowed in prolog.
> Where I look at the saxon command line documentation, I see that the -u
> option is used to tell saxon that the files are "urls", unless they begin with
> http: or file:, in which case they are taken as urls as is.
> But I don't see anywhere in oxygen I can set the -u parameter.

More information about the oXygen-user mailing list