[
Lists Home |
Date Index |
Thread Index
]
> However, XSLT and XPath appear to lack anything like an "absolutize"
> function. I don't see any clear path forward for this in the context of
> XSLT 1.0 and XPath 1.0, nor do my preliminary explorations of the 2.0
> versions offer me much more hope on this issue.
>
> Overall, I'm looking for a function that:
> takes a URI as an argument
> IF the URI is absolute, it returns the same URI
> IF the URI is relative, it absolutizes it, based on:
> a) xml:base if available or
> b) the base URI of the document (or external entity) itself or
> c) a provided base URI
>
> (b) would be for archiving information more or less in-place, while (c)
> would be for archiving the information at a different location. (a), (b)
> and (c) might well be represented as separate functions.
>
> EXSLT doesn't (yet) have such a function, though I understand that a
> pair of extension functions can make this work in 4XSLT. Given the
> status of XML Base as a W3C Recommendation, I have to admit that this
> feels like a surprising omission from at least the latest of these
> specs.
Yes, 4XSLT has a f:resolve-url extension and a f:base-uri extension. The
combination of the two as so:
f:resolve-url($uri-in-question, f:base-uri(.))
Would meet Simon's need, using the current context node to supply the base
URI. Note: f:resolve-url resolves but does not retrieve.
I think both separate functions are useful enough that merging them doesn't
make sense.
I certainly agree with Simon that this is something that should be added to
the XPath core library or to EXSLT. I think that if we had it in XPath, it
would help remove the disgusting hack of two-argument document().
--
Uche Ogbuji Fourthought, Inc.
http://uche.ogbuji.net http://4Suite.org http://fourthought.com
Track chair, XML/Web Services One Boston: http://www.xmlconference.com/
The many heads of XML modeling - http://adtmag.com/article.asp?id=6393
Will XML live up to its promise? - http://www-106.ibm.com/developerworks/xml/li
brary/x-think11.html
|