Class Pxp_reader.combine


class combine : ?mode:combination_mode -> resolver list -> resolver
Combines several resolver objects. If a concrete entity with an ext_id is to be opened, the combined resolver tries the contained resolvers in turn until a resolver accepts opening the entity (i.e. until a resolver does not raise Not_competent on open_rid).

If the entity to open has several names, e.g. a public name and a system name, these names are tried in parallel by default. For backward compatibility, the mode argument allows one to specify a different order:

Clones: If the clone method is invoked on the combined resolver while it is closed, the effect is that all contained resolvers are cloned and the combination is repeated on the clones. If the clone method is invoked while the resolver is open, only the active sub resolver is cloned (i.e. the resolver that accepted the ID in the first place).