[oXygen-user] using custom parser in saxon 9 transformation scenario
Sorin Ristache
Wed Apr 23 09:45:21 CDT 2008
Hello,
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="/">
<xsl:apply-templates
select="document('URI-of-binary-file-resolved-by-custom-UR-resolver')"/>
</xsl:template>
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.
Regards,
Sorin
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