class combine :Combines several resolver objects. If a concrete entity with an
?mode:combination_mode -> resolver list ->
ext_idis 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
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:
Public_before_system: Try first to open as public identifier, and if that fails, fall back to the system identifier
System_before_public: Try first to open as system identifier, and if that fails, fall back to the public identifier
clonemethod 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
clonemethod 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).