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_core_types.I.resolver_id -> Neturl.url) -> base_url_of_id:(Pxp_core_types.I.resolver_id -> Neturl.url) -> channel_of_url:(Pxp_core_types.I.resolver_id -> Neturl.url -> accepted_id) -> unit ->resolver
url_of_id to 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
 the 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
 the accepted_id like resolve_to_any_obj_channel does. The resolver ID 
 passed to channel_of_url contains the string representation of the
 absolute URL as system ID.
 All functions, url_of_id, base_url_of_id, and 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 Not_competent
 from url_of_id or base_url_of_id is left as is, but a Not_competent from channel_of_url
 is converted to Not_resolvable. So only url_of_id and base_url_of_id
 decide which URLs
 are accepted by the resolver and which not, and in the latter case,
 other resolver can be tried. If channel_of_url raises Not_competent,
 however, the whole resolution procedure will stop, and no other resolver
 will be tried.
 When the resolver is closed, the function passed by the close
 argument is called. By default, the channel is closed
 (i.e. the default is: close:(fun ch -> ch # close_in())).
