xsl-list
[Top] [All Lists]

[xsl] In XSLT context, base-uri() and document-uri() return different values

2021-08-18 10:27:49
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
--~--
<Prev in Thread] Current Thread [Next in Thread>