In the context of an XSLT 3 transform run by Saxon-HE 9.9.1.7J, I have a
variable that contains an element from a document loaded using the document()
function.
In my code I use base-uri() to get the base URI of the element in order to then
resolve URIs relative to this element. This is in code that’s been around a
long time (nearly 10 years).
In my latest use of this code, I’m seeing that base-uri() for the node reflects
the URI of the transform, not the node, but document-uri() for the element’s
root returns the expected document URI:
[xslt] + [DEBUG] df:resolveTopicRef():
base-uri($context)="file:/Users/eliot.kimber/git/dita-ot/dita-ot-air/plugins/org.dita.html5/xsl/map2html5Impl.xsl"
[xslt] + [DEBUG] df:resolveTopicRef():
document-uri($context)="file:/Users/eliot.kimber/git/temp/aair/air-html/bundle-aair-automated-incident-response.ditamap"
My understanding of base-uri() is that I should get the same values for
base-uri() and document-uri() in this case because there are no explicit
xml:base attributes in the source document.
Why am I seeing this anomalous result from base-uri()? I didn’t see anything in
the XSLT 3 spec or in the XPath spec that would suggest this behavior (looking
for mentions of “base-uri”).
Thanks,
Eliot
--
Eliot Kimber
http://contrext.com
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--