[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: <xsl:include> using relative paths and Saxon 8

Subject: RE: <xsl:include> using relative paths and Saxon 8
From: "Chris Ward" <cward@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 20 Jan 2006 17:21:21 -0000
xtse0165
> The reason it fails is that when it's a Source its concept of
> a location depends on how its created - if its reading from a
> file on disk then the location is known, if its reading from
> memory then it doesnt have a location, so you have to provide
> one with setSystemId().
>
> If the Source was created using a File then the systemId is
> taken from the File (which is why it worked then), but as the
> code was modified to use urlConn.getInputStream() the
> systemId gets lost, which is why you have to set it manually.
>

Ah - I get you.  I've never encountered this before.

It's better now but still not working.

It still seems to be confused.  Remember I am passing it an http:// url
to a
an XSL file which does a

	<xsl:include href="Common.xsl"/>

the responsse is...

========================================================================
====================

DEBUG : XSLTUtils.newTransformer(http://<ip
address>:8080/lisa/jnlp/TestXLST2.0.xsl)

Error at xsl:include on line 6 of file:///lisa/jnlp/TestXLST2.0.xsl:
  XTSE0165: java.io.FileNotFoundException: \lisa\jnlp\Common.xsl (The
system cannot find the
  path specified)
Problem loading XSLT: Failed to compile stylesheet. 1 error detected.
No params specified

========================================================================
====================

It seems to be going from http: to file: and missing the server path.

I expect I'm doing something cockeyed.

Here's my change code...


    public static synchronized Transformer newTransformer(String
xsltUrl) throws
        TransformerConfigurationException {

                URL url = new URL(xsltUrl);

			<blah blah blah>

                InputStream is = urlConn.getInputStream();
                Source xslSource = new StreamSource(is);
                xslSource.setSystemId(xsltUrl);  /////////// NEW NEW NEW
NEW

                TransformerFactory transFact =
TransformerFactory.newInstance();
                Templates templates = transFact.newTemplates(xslSource);


I tried the

                xslSource.setSystemId(url.getPathI());

but that had similar problems (although it was still "more right" than
before)

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.