From 13d5da2d9dcecd6b7c4f53bc4191a3b7b5be6c8f Mon Sep 17 00:00:00 2001 From: Norman Walsh Date: Wed, 12 Jun 2024 17:24:53 +0100 Subject: [PATCH] Attempt to describe p:lookup-uri --- xproc/src/main/xml/specification.xml | 43 ++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) 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