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_limit"/>
94 <ref name="filter_load_balance"/>
95 <ref name="filter_log"/>
96 <ref name="filter_multi"/>
97 <ref name="filter_query_rewrite"/>
98 <ref name="filter_record_transform"/>
99 <ref name="filter_session_shared"/>
100 <ref name="filter_sru_z3950"/>
101 <ref name="filter_virt_db"/>
102 <ref name="filter_z3950_client"/>
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 <element name="mp:connect-max">
223 <data type="integer"/>
227 <define name="filter_http_file">
228 <attribute name="type">
229 <value>http_file</value>
232 <attribute name="id">
233 <data type="NCName"/>
237 <attribute name="name">
238 <data type="NCName"/>
241 <element name="mp:mimetypes">
242 <data type="string"/>
244 <element name="mp:area">
245 <element name="mp:documentroot">
246 <data type="string"/>
248 <element name="mp:prefix">
249 <data type="string"/>
253 <define name="filter_load_balance">
254 <attribute name="type">
255 <value>load_balance</value>
258 <attribute name="id">
259 <data type="NCName"/>
263 <attribute name="name">
264 <data type="NCName"/>
268 <define name="filter_log">
269 <attribute name="type">
273 <attribute name="id">
274 <data type="NCName"/>
278 <attribute name="name">
279 <data type="NCName"/>
283 <element name="mp:message">
284 <data type="string"/>
288 <element name="mp:time-format">
289 <data type="string"/>
293 <element name="mp:filename">
294 <data type="string"/>
298 <element name="mp:category">
300 <attribute name="user-access">
301 <data type="boolean"/>
305 <attribute name="access">
306 <data type="boolean"/>
310 <attribute name="init-options">
311 <data type="boolean"/>
315 <attribute name="request-session">
316 <data type="boolean"/>
320 <attribute name="response-session">
321 <data type="boolean"/>
325 <attribute name="apdu">
326 <data type="boolean"/>
330 <attribute name="request-apdu">
331 <data type="boolean"/>
335 <attribute name="response-apdu">
336 <data type="boolean"/>
342 <define name="filter_multi">
343 <attribute name="type">
347 <attribute name="id">
348 <data type="NCName"/>
352 <attribute name="name">
353 <data type="NCName"/>
357 <element name="mp:target">
358 <attribute name="route">
359 <data type="string"/>
361 <data type="string"/>
365 <element name="mp:hideunavailable">
370 <element name="mp:mergetype">
371 <data type="string"/>
375 <define name="filter_query_rewrite">
376 <attribute name="type">
377 <value>query_rewrite</value>
380 <attribute name="id">
381 <data type="NCName"/>
385 <attribute name="name">
386 <data type="NCName"/>
389 <element name="mp:xslt">
390 <attribute name="stylesheet">
391 <data type="string"/>
395 <define name="filter_record_transform">
396 <attribute name="type">
397 <value>record_transform</value>
400 <attribute name="id">
401 <data type="NCName"/>
405 <attribute name="name">
406 <data type="NCName"/>
409 <ref name="retrievalinfo"/>
411 <define name="filter_session_shared">
412 <attribute name="type">
413 <value>session_shared</value>
416 <attribute name="id">
417 <data type="NCName"/>
421 <attribute name="name">
422 <data type="NCName"/>
426 <element name="mp:resultset">
427 <attribute name="max">
428 <data type="integer"/>
430 <attribute name="ttl">
431 <data type="integer"/>
436 <element name="mp:session">
437 <attribute name="ttl">
438 <data type="integer"/>
443 <define name="filter_sru_z3950">
444 <attribute name="type">
445 <value>sru_z3950</value>
448 <attribute name="id">
449 <data type="NCName"/>
453 <attribute name="name">
454 <data type="NCName"/>
458 <element name="mp:database">
459 <attribute name="name">
460 <data type="NCName"/>
466 <define name="filter_virt_db">
467 <attribute name="type">
468 <value>virt_db</value>
471 <attribute name="id">
472 <data type="NCName"/>
476 <attribute name="name">
477 <data type="NCName"/>
481 <element name="mp:pass-vhosts">
482 <data type="boolean"/>
486 <element name="mp:virtual">
488 <attribute name="route">
489 <data type="NCName"/>
492 <element name="mp:database">
493 <data type="NCName"/>
496 <element name="mp:target">
497 <data type="string"/>
503 <define name="filter_z3950_client">
504 <attribute name="type">
505 <value>z3950_client</value>
508 <attribute name="id">
509 <data type="NCName"/>
513 <attribute name="name">
514 <data type="NCName"/>
518 <element name="mp:timeout">
519 <data type="integer"/>
523 <element name="mp:default_target">
524 <data type="string"/>
528 <element name="mp:force_target">
529 <data type="string"/>
533 <define name="filter_limit">
534 <attribute name="type">
538 <element name="mp:limit">
540 <attribute name="bandwidth">
541 <data type="integer"/>
545 <attribute name="pdu">
546 <data type="integer"/>
550 <attribute name="search">
551 <data type="integer"/>
555 <attribute name="retrieve">
556 <data type="integer"/>
564 filter_zeerex_explain =
565 attribute type { "zeerex_explain" },
566 attribute id { xsd:NCName }?,
567 attribute name { xsd:NCName }?,
568 element mp:database {
569 attribute name { xsd:NCName },