Yes, it should work the way you describe it. I can't see any reason from
this description why it isn't working.
Michael Kay
-----Original Message-----
From: Eliot Kimber [mailto:ekimber(_at_)innodata-isogen(_dot_)com]
Sent: 21 May 2004 12:52
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: [xsl] Setting Base URL For Resolivng xsl:include/xsl:import
This may be a Saxon-specific question but I think it should
be a general
XSLT question.
What I'm trying to do is enable the direct processing of XSLT style
sheets that are stored in a versioning repository that provides HTTP
access to versions of files. As part of this system, one uses
relative
URLs in documents to point to other files. At processing time you set
the resolution base (e.g., <base> in HTML) to set the appropriate
resolution context.
For example, in an XSLT document I might have a link like this:
<xsl:import href="res_000000002/onSnapshot"/>
This is a relative URL that, in my repository, resolves to a specific
version based on the directory the URL fragment is resolved against.
To run a style sheet with Saxon 6.5.2 I can use a command
line like this:
saxon -o test.html
http://localhost:9090/br_00001/snapshot_0002/ver_00003
http://localhost:9090/br_00002/snapshot_0005/ver_00008
Where "http://localhost:9090/br_00002/snapshot_0005/ver_00008" is the
URL of the XSLT style sheet with the above import statement.
This works
for a single-file style sheet but not if there are includes
or imports
because the relative URLs are not resolved (in fact, I don't see any
attempt to resolve the include in my server log).
My expectation was that the import statements would be
resolved relative
to the URL of the style sheet, in this case producing the
effective URL:
http://localhost:9090/br_00002/snapshot_0005/res_000000002/onSnapshot
However, it appears that this is not case.
My questions:
1. Was my expectation justified or have I misunderstood how URL
resolution works generally or in XSLT or in Saxon?
2. Is there a general way to establish the URL resolution
base in XSLT
so that I would get the behavior I expected? In the context of my
repository I could, for example, set an attribute on the StyleSheet
element as I serve the XSLT document out, although I would
prefer to use
a command-line option. That is, as a matter of design
principle, I want
my repository to have know as little as possible about the details of
the data it is serving out--my hope being that if tools use standard
HTTP mechanisms everything "just works".
Reading the Saxon docs I see that I could implement my own
URL resolver
which I'm sure would solve the problem but my hope was that I could
enable the direct use of style sheets out of my repository by
unmodified
XSLT processors.
Thanks,
Eliot
--
W. Eliot Kimber
Professional Services
Innodata Isogen
9030 Research Blvd, #410
Austin, TX 78758
(512) 372-8122
eliot(_at_)innodata-isogen(_dot_)com
www.innodata-isogen.com
--+------------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail:
<mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--+--