1 <?xml version="1.0" encoding="UTF-8"?>
3 Metaproxy XML config file schemas
5 Copyright (c) 2005-2008 Index Data.
7 See the LICENSE file for details
10 The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
12 The RelaxNG XML Syntax and XML Schema are generated using 'trang':
13 trang metaproxy.rnc metaproxy.rng
14 trang metaproxy.rnc metaproxy.xsd
16 Config file validation is done using 'xmllint':
17 xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml
18 xmllint -/-schema metaproxy.xsd config-bytarget.xml
20 For information on RelaxNG see http://relaxng.org
21 see also http://books.xmlschemata.org/relaxng/
23 <grammar xmlns:mp="http://indexdata.com/metaproxy" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
24 <start combine="choice">
25 <ref name="metaproxy"/>
27 <include href="retrievalinfo.rng"/>
44 <define name="metaproxy">
45 <element name="mp:metaproxy">
46 <attribute name="version">
50 <element name="mp:dlpath">
54 <element name="mp:start">
55 <attribute name="route">
60 <element name="mp:filters">
66 <element name="mp:routes">
74 <element name="mp:route">
83 <define name="filter">
84 <element name="mp:filter">
86 <ref name="filter_refid"/>
87 <ref name="filter_auth_simple"/>
88 <ref name="filter_backend_test"/>
89 <ref name="filter_bounce"/>
90 <ref name="filter_cql_rpn"/>
91 <ref name="filter_frontend_net"/>
92 <ref name="filter_http_file"/>
93 <ref name="filter_load_balance"/>
94 <ref name="filter_log"/>
95 <ref name="filter_multi"/>
96 <ref name="filter_query_rewrite"/>
97 <ref name="filter_record_transform"/>
98 <ref name="filter_session_shared"/>
99 <ref name="filter_sru_z3950"/>
100 <ref name="filter_virt_db"/>
101 <ref name="filter_z3950_client"/>
102 <ref name="filter_limit"/>
104 <!-- | filter_zeerex_explain -->
107 <define name="filter_refid">
108 <attribute name="refid">
109 <data type="NCName"/>
112 <define name="filter_auth_simple">
113 <attribute name="type">
114 <value>auth_simple</value>
117 <attribute name="id">
118 <data type="NCName"/>
122 <attribute name="name">
123 <data type="NCName"/>
127 <element name="mp:userRegister">
128 <data type="string"/>
132 <element name="mp:targetRegister">
133 <data type="string"/>
137 <element name="mp:discardUnauthorisedTargets">
142 <define name="filter_backend_test">
143 <attribute name="type">
144 <value>backend_test</value>
147 <attribute name="id">
148 <data type="NCName"/>
152 <attribute name="name">
153 <data type="NCName"/>
157 <define name="filter_bounce">
158 <attribute name="type">
159 <value>bounce</value>
162 <attribute name="id">
163 <data type="NCName"/>
167 <attribute name="name">
168 <data type="NCName"/>
172 <define name="filter_cql_rpn">
173 <attribute name="type">
174 <value>cql_rpn</value>
177 <attribute name="id">
178 <data type="NCName"/>
182 <attribute name="name">
183 <data type="NCName"/>
186 <element name="mp:conversion">
187 <attribute name="file">
188 <data type="string"/>
192 <define name="filter_frontend_net">
193 <attribute name="type">
194 <value>frontend_net</value>
197 <attribute name="id">
198 <data type="NCName"/>
202 <attribute name="name">
203 <data type="NCName"/>
207 <element name="mp:threads">
208 <data type="integer"/>
212 <element name="mp:port">
213 <data type="string"/>
217 <element name="mp:timeout">
218 <data type="integer"/>
222 <define name="filter_http_file">
223 <attribute name="type">
224 <value>http_file</value>
227 <attribute name="id">
228 <data type="NCName"/>
232 <attribute name="name">
233 <data type="NCName"/>
236 <element name="mp:mimetypes">
237 <data type="string"/>
239 <element name="mp:area">
240 <element name="mp:documentroot">
241 <data type="string"/>
243 <element name="mp:prefix">
244 <data type="string"/>
248 <define name="filter_load_balance">
249 <attribute name="type">
250 <value>load_balance</value>
253 <attribute name="id">
254 <data type="NCName"/>
258 <attribute name="name">
259 <data type="NCName"/>
263 <define name="filter_log">
264 <attribute name="type">
268 <attribute name="id">
269 <data type="NCName"/>
273 <attribute name="name">
274 <data type="NCName"/>
278 <element name="mp:message">
279 <data type="string"/>
283 <element name="mp:time-format">
284 <data type="string"/>
288 <element name="mp:filename">
289 <data type="string"/>
293 <element name="mp:category">
295 <attribute name="user-access">
296 <data type="boolean"/>
300 <attribute name="access">
301 <data type="boolean"/>
305 <attribute name="init-options">
306 <data type="boolean"/>
310 <attribute name="request-session">
311 <data type="boolean"/>
315 <attribute name="response-session">
316 <data type="boolean"/>
320 <attribute name="apdu">
321 <data type="boolean"/>
325 <attribute name="request-apdu">
326 <data type="boolean"/>
330 <attribute name="response-apdu">
331 <data type="boolean"/>
337 <define name="filter_multi">
338 <attribute name="type">
342 <attribute name="id">
343 <data type="NCName"/>
347 <attribute name="name">
348 <data type="NCName"/>
352 <element name="mp:target">
353 <attribute name="route">
354 <data type="string"/>
356 <data type="string"/>
360 <element name="mp:hideunavailable">
365 <element name="mp:mergetype">
366 <data type="string"/>
370 <define name="filter_query_rewrite">
371 <attribute name="type">
372 <value>query_rewrite</value>
375 <attribute name="id">
376 <data type="NCName"/>
380 <attribute name="name">
381 <data type="NCName"/>
384 <element name="mp:xslt">
385 <attribute name="stylesheet">
386 <data type="string"/>
390 <define name="filter_record_transform">
391 <attribute name="type">
392 <value>record_transform</value>
395 <attribute name="id">
396 <data type="NCName"/>
400 <attribute name="name">
401 <data type="NCName"/>
404 <ref name="retrievalinfo"/>
406 <define name="filter_session_shared">
407 <attribute name="type">
408 <value>session_shared</value>
411 <attribute name="id">
412 <data type="NCName"/>
416 <attribute name="name">
417 <data type="NCName"/>
421 <element name="mp:resultset">
422 <attribute name="max">
423 <data type="integer"/>
425 <attribute name="ttl">
426 <data type="integer"/>
431 <element name="mp:session">
432 <attribute name="ttl">
433 <data type="integer"/>
438 <define name="filter_sru_z3950">
439 <attribute name="type">
440 <value>sru_z3950</value>
443 <attribute name="id">
444 <data type="NCName"/>
448 <attribute name="name">
449 <data type="NCName"/>
453 <element name="mp:database">
454 <attribute name="name">
455 <data type="NCName"/>
461 <define name="filter_virt_db">
462 <attribute name="type">
463 <value>virt_db</value>
466 <attribute name="id">
467 <data type="NCName"/>
471 <attribute name="name">
472 <data type="NCName"/>
476 <element name="mp:virtual">
478 <attribute name="route">
479 <data type="NCName"/>
482 <element name="mp:database">
483 <data type="NCName"/>
486 <element name="mp:target">
487 <data type="string"/>
493 <define name="filter_z3950_client">
494 <attribute name="type">
495 <value>z3950_client</value>
498 <attribute name="id">
499 <data type="NCName"/>
503 <attribute name="name">
504 <data type="NCName"/>
508 <element name="mp:timeout">
509 <data type="integer"/>
513 <element name="mp:default_target">
514 <data type="string"/>
518 <element name="mp:force_target">
519 <data type="string"/>
523 <define name="filter_limit">
524 <attribute name="type">
528 <element name="mp:limit">
530 <attribute name="bandwidth">
531 <data type="integer"/>
535 <attribute name="pdu">
536 <data type="integer"/>
540 <attribute name="search">
541 <data type="integer"/>
545 <attribute name="retrieve">
546 <data type="integer"/>
554 filter_zeerex_explain =
555 attribute type { "zeerex_explain" },
556 attribute id { xsd:NCName }?,
557 attribute name { xsd:NCName }?,
558 element mp:database {
559 attribute name { xsd:NCName },