diff --git a/xproc/src/main/xml/specification.xml b/xproc/src/main/xml/specification.xml index 7fdf7dd2d..d01c3f9d8 100644 --- a/xproc/src/main/xml/specification.xml +++ b/xproc/src/main/xml/specification.xml @@ -2586,6 +2586,49 @@ how to load function libraries of that type, this function returns normally during static analysis. +
+Lookup URI + +The p:lookup-uri function +attempts to determine what URI would be dereferenced if an attempt was made +to retrieve a resource. + + + +xs:anyURI +p:lookup-uri +xs:anyURIhref + + +Many systems employ some form of URI resolver. A URI resolver allows one +resource to be substituted for another, perhaps loading +file:/system/xml/doc.rng when +https://example.com/schemas/doc.rng is requested. It is +implementation-defined which kinds of URI resolvers a +processor supports, if any, and how they are configured. + +If the processor has a URI resolver, the p:lookup-uri +function allows the pipeline to “peek” at what URI will be used in the request +if an attempt is made to retrieve $href. If the URI resolver +maps A.xml to B.xml, then +p:lookup-uri('A.xml') should return B.xml. + +If the processor can’t determine what the mapping is (because the resolver +being used doesn’t provide an API to do so, for example), or doesn’t support a resolver, +the function +should return the original URI. + +The implementation must not attempt to dereference the +resource in order to identify the mapping. Consequently, this function cannot +determine if one or more server side redirects may occur and it has no +insight into what caching proxies may be involved if the request accesses the +network. + +The p:lookup-uri function behaves +normally during static analysis but note that it is possible that a processor +might use different resolvers at compile-time and run-time. +
+
Other XPath Extension Functions It is implementation-defined if the processor supports