+ another target; or even multiple targets.
+ </para>
+ <para>
+ The configuration of virt_db consists of zero or more
+ <literal><virtual></literal> elements each describing the
+ Z39.50 virtual database recognized.
+ The name of the database is the text content of the
+ <literal><database></literal> element which should be
+ first element inside the virtual section.
+ </para>
+ <para>
+ For Metaproxy 1.0.20 and later, the database is treated as a glob pattern.
+ This allows operators * (any number of any character) and
+ ? (any single character). The virtual sections are inspected in
+ the order given. The first matching virtual database is used.
+ </para>
+ <para>
+ Following that is one or more <literal><target></literal>
+ elements with the identifier of each target that the virtual database
+ maps to. If a database is given for a target (following a slash), that
+ database name is used as Z39.50 database for this target. If the
+ database is omitted for the target, the original (virtual) database
+ is used as Z39.50 database.
+ </para>
+ <para>
+ If multiple targets are given that has special meaning depending on the
+ filter following virt_db. If the following filter is load_balance, then
+ the load_balance filter will load balance between the targets given
+ (assuming they serve same content). If the following filter is multi,
+ then results will be merged from all targets instead.
+ </para>
+ <para>
+ The z3950_filter, on the other hand, does not support multiple targets.
+ </para>
+ <para>
+ For <literal><virtual></literal> a route may be given as
+ an attribute. This will make Metaproxy route traffic to the route
+ given. Note that virtual databases may not be combined if all
+ databases do not result in the same routing.