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_cgi"/>
91 <ref name="filter_cql_rpn"/>
92 <ref name="filter_frontend_net"/>
93 <ref name="filter_http_file"/>
94 <ref name="filter_limit"/>
95 <ref name="filter_load_balance"/>
96 <ref name="filter_log"/>
97 <ref name="filter_multi"/>
98 <ref name="filter_query_rewrite"/>
99 <ref name="filter_record_transform"/>
100 <ref name="filter_session_shared"/>
101 <ref name="filter_sru_z3950"/>
102 <ref name="filter_virt_db"/>
103 <ref name="filter_z3950_client"/>
105 <!-- | filter_zeerex_explain -->
108 <define name="filter_refid">
109 <attribute name="refid">
110 <data type="NCName"/>
113 <define name="filter_auth_simple">
114 <attribute name="type">
115 <value>auth_simple</value>
118 <attribute name="id">
119 <data type="NCName"/>
123 <attribute name="name">
124 <data type="NCName"/>
128 <element name="mp:userRegister">
129 <data type="string"/>
133 <element name="mp:targetRegister">
134 <data type="string"/>
138 <element name="mp:discardUnauthorisedTargets">
143 <define name="filter_backend_test">
144 <attribute name="type">
145 <value>backend_test</value>
148 <attribute name="id">
149 <data type="NCName"/>
153 <attribute name="name">
154 <data type="NCName"/>
158 <define name="filter_bounce">
159 <attribute name="type">
160 <value>bounce</value>
163 <attribute name="id">
164 <data type="NCName"/>
168 <attribute name="name">
169 <data type="NCName"/>
173 <define name="filter_cql_rpn">
174 <attribute name="type">
175 <value>cql_rpn</value>
178 <attribute name="id">
179 <data type="NCName"/>
183 <attribute name="name">
184 <data type="NCName"/>
187 <element name="mp:conversion">
188 <attribute name="file">
189 <data type="string"/>
193 <define name="filter_frontend_net">
194 <attribute name="type">
195 <value>frontend_net</value>
198 <attribute name="id">
199 <data type="NCName"/>
203 <attribute name="name">
204 <data type="NCName"/>
208 <element name="mp:threads">
209 <data type="integer"/>
213 <element name="mp:port">
214 <data type="string"/>
218 <element name="mp:timeout">
219 <data type="integer"/>
223 <element name="mp:connect-max">
224 <data type="integer"/>
228 <define name="filter_http_file">
229 <attribute name="type">
230 <value>http_file</value>
233 <attribute name="id">
234 <data type="NCName"/>
238 <attribute name="name">
239 <data type="NCName"/>
242 <element name="mp:mimetypes">
243 <data type="string"/>
245 <element name="mp:area">
246 <element name="mp:documentroot">
247 <data type="string"/>
249 <element name="mp:prefix">
250 <data type="string"/>
254 <define name="filter_load_balance">
255 <attribute name="type">
256 <value>load_balance</value>
259 <attribute name="id">
260 <data type="NCName"/>
264 <attribute name="name">
265 <data type="NCName"/>
269 <define name="filter_log">
270 <attribute name="type">
274 <attribute name="id">
275 <data type="NCName"/>
279 <attribute name="name">
280 <data type="NCName"/>
284 <element name="mp:message">
285 <data type="string"/>
289 <element name="mp:time-format">
290 <data type="string"/>
294 <element name="mp:filename">
295 <data type="string"/>
299 <element name="mp:category">
301 <attribute name="user-access">
302 <data type="boolean"/>
306 <attribute name="access">
307 <data type="boolean"/>
311 <attribute name="init-options">
312 <data type="boolean"/>
316 <attribute name="request-session">
317 <data type="boolean"/>
321 <attribute name="response-session">
322 <data type="boolean"/>
326 <attribute name="session">
327 <data type="boolean"/>
331 <attribute name="apdu">
332 <data type="boolean"/>
336 <attribute name="request-apdu">
337 <data type="boolean"/>
341 <attribute name="response-apdu">
342 <data type="boolean"/>
348 <define name="filter_multi">
349 <attribute name="type">
353 <attribute name="id">
354 <data type="NCName"/>
358 <attribute name="name">
359 <data type="NCName"/>
363 <element name="mp:target">
364 <attribute name="route">
365 <data type="string"/>
367 <data type="string"/>
371 <element name="mp:hideunavailable">
376 <element name="mp:mergetype">
377 <data type="string"/>
381 <define name="filter_query_rewrite">
382 <attribute name="type">
383 <value>query_rewrite</value>
386 <attribute name="id">
387 <data type="NCName"/>
391 <attribute name="name">
392 <data type="NCName"/>
395 <element name="mp:xslt">
396 <attribute name="stylesheet">
397 <data type="string"/>
401 <define name="filter_record_transform">
402 <attribute name="type">
403 <value>record_transform</value>
406 <attribute name="id">
407 <data type="NCName"/>
411 <attribute name="name">
412 <data type="NCName"/>
415 <ref name="retrievalinfo"/>
417 <define name="filter_session_shared">
418 <attribute name="type">
419 <value>session_shared</value>
422 <attribute name="id">
423 <data type="NCName"/>
427 <attribute name="name">
428 <data type="NCName"/>
432 <element name="mp:resultset">
433 <attribute name="max">
434 <data type="integer"/>
436 <attribute name="ttl">
437 <data type="integer"/>
439 <attribute name="optimizesearch">
440 <data type="boolean"/>
445 <element name="mp:session">
446 <attribute name="ttl">
447 <data type="integer"/>
452 <define name="filter_sru_z3950">
453 <attribute name="type">
454 <value>sru_z3950</value>
457 <attribute name="id">
458 <data type="NCName"/>
462 <attribute name="name">
463 <data type="NCName"/>
467 <element name="mp:database">
468 <attribute name="name">
469 <data type="NCName"/>
475 <define name="filter_virt_db">
476 <attribute name="type">
477 <value>virt_db</value>
480 <attribute name="id">
481 <data type="NCName"/>
485 <attribute name="name">
486 <data type="NCName"/>
490 <element name="mp:pass-vhosts">
491 <data type="boolean"/>
495 <element name="mp:virtual">
497 <attribute name="route">
498 <data type="NCName"/>
501 <element name="mp:database">
502 <data type="string"/>
505 <element name="mp:target">
506 <data type="string"/>
512 <define name="filter_z3950_client">
513 <attribute name="type">
514 <value>z3950_client</value>
517 <attribute name="id">
518 <data type="NCName"/>
522 <attribute name="name">
523 <data type="NCName"/>
527 <element name="mp:timeout">
528 <data type="integer"/>
532 <element name="mp:default_target">
533 <data type="string"/>
537 <element name="mp:force_target">
538 <data type="string"/>
542 <element name="mp:force_close">
543 <data type="boolean"/>
547 <define name="filter_limit">
548 <attribute name="type">
552 <element name="mp:limit">
554 <attribute name="bandwidth">
555 <data type="integer"/>
559 <attribute name="pdu">
560 <data type="integer"/>
564 <attribute name="search">
565 <data type="integer"/>
569 <attribute name="retrieve">
570 <data type="integer"/>
576 <define name="filter_cgi">
577 <attribute name="type">
581 <element name="mp:map">
582 <attribute name="path">
583 <data type="string"/>
585 <attribute name="exec">
586 <data type="string"/>
593 filter_zeerex_explain =
594 attribute type { "zeerex_explain" },
595 attribute id { xsd:NCName }?,
596 attribute name { xsd:NCName }?,
597 element mp:database {
598 attribute name { xsd:NCName },