Subject: RE: [xsl] Setting Base URL For Resolivng xsl:include/xsl:import From: "Michael Kay" <mhk@xxxxxxxxx> Date: Fri, 21 May 2004 16:34:09 +0100 |
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@xxxxxxxxxxxxxxxxxxx] > Sent: 21 May 2004 12:52 > To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx > 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@xxxxxxxxxxxxxxxxxxx > www.innodata-isogen.com
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Setting Base URL For Resolivn, Eliot Kimber | Thread | Re: [xsl] Setting Base URL For Reso, Jeni Tennison |
RE: [xsl] GML transformation, Michael Kay | Date | [xsl] GML to svg, sarra hamdi |
Month |