class resolve_to_url_obj_channel :When this resolver gets an ID to read from, it calls the function
?close:Netchannels.in_obj_channel -> unit -> url_of_id:(Pxp_types.resolver_id -> Neturl.url) -> base_url_of_id:(Pxp_types.resolver_id -> Neturl.url) -> channel_of_url:(Pxp_types.resolver_id -> Neturl.url -> accepted_id) -> unit ->
url_of_idto get the corresponding URL (such IDs are normally system IDs, but it is also possible to other kinds of IDs to URLs). This URL may be a relative URL; however, a URL scheme must be used which contains a path. The resolver converts the URL to an absolute URL if necessary.
To do so, the resolver calls
base_url_of_id to get the URL the relative
URL must be interpreted relative to. Usually, this function returns
rid_system_base as URL. This URL must be absolute.
The third function,
channel_of_url, is fed with the absolute URL
as input. This function opens the resource to read from, and returns
resolve_to_any_obj_channel does. The resolver ID
channel_of_url contains the string representation of the
absolute URL as system ID.
channel_of_url, can raise
Not_competent to indicate that the object is not able to read from
the specified resource. However, there is a difference: A
url_of_id is left as is, but a
is converted to
Not_resolvable. So only
url_of_id decides which URLs
are accepted by the resolver and which not, and in the latter case,
other resolver can be tried. If
however, the whole resolution procedure will stop, and no other resolver
will be tried.
When the resolver is closed, the function passed by the
argument is called. By default, the channel is closed
(i.e. the default is:
close:(fun ch -> ch # close_in())).