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"/>
103 <!-- | filter_zeerex_explain -->
106 <define name="filter_refid">
107 <attribute name="refid">
108 <data type="NCName"/>
111 <define name="filter_auth_simple">
112 <attribute name="type">
113 <value>auth_simple</value>
116 <attribute name="id">
117 <data type="NCName"/>
121 <attribute name="name">
122 <data type="NCName"/>
126 <element name="mp:userRegister">
127 <data type="string"/>
131 <element name="mp:targetRegister">
132 <data type="string"/>
136 <element name="mp:discardUnauthorisedTargets">
141 <define name="filter_backend_test">
142 <attribute name="type">
143 <value>backend_test</value>
146 <attribute name="id">
147 <data type="NCName"/>
151 <attribute name="name">
152 <data type="NCName"/>
156 <define name="filter_bounce">
157 <attribute name="type">
158 <value>bounce</value>
161 <attribute name="id">
162 <data type="NCName"/>
166 <attribute name="name">
167 <data type="NCName"/>
171 <define name="filter_cql_rpn">
172 <attribute name="type">
173 <value>cql_rpn</value>
176 <attribute name="id">
177 <data type="NCName"/>
181 <attribute name="name">
182 <data type="NCName"/>
185 <element name="mp:conversion">
186 <attribute name="file">
187 <data type="string"/>
191 <define name="filter_frontend_net">
192 <attribute name="type">
193 <value>frontend_net</value>
196 <attribute name="id">
197 <data type="NCName"/>
201 <attribute name="name">
202 <data type="NCName"/>
206 <element name="mp:threads">
207 <data type="integer"/>
211 <element name="mp:port">
212 <data type="string"/>
216 <element name="mp:timeout">
217 <data type="integer"/>
221 <define name="filter_http_file">
222 <attribute name="type">
223 <value>http_file</value>
226 <attribute name="id">
227 <data type="NCName"/>
231 <attribute name="name">
232 <data type="NCName"/>
235 <element name="mp:mimetypes">
236 <data type="string"/>
238 <element name="mp:area">
239 <element name="mp:documentroot">
240 <data type="string"/>
242 <element name="mp:prefix">
243 <data type="string"/>
247 <define name="filter_load_balance">
248 <attribute name="type">
249 <value>load_balance</value>
252 <attribute name="id">
253 <data type="NCName"/>
257 <attribute name="name">
258 <data type="NCName"/>
262 <define name="filter_log">
263 <attribute name="type">
267 <attribute name="id">
268 <data type="NCName"/>
272 <attribute name="name">
273 <data type="NCName"/>
277 <element name="mp:message">
278 <data type="string"/>
282 <element name="mp:time-format">
283 <data type="string"/>
287 <element name="mp:filename">
288 <data type="string"/>
292 <element name="mp:category">
294 <attribute name="user-access">
295 <data type="boolean"/>
299 <attribute name="access">
300 <data type="boolean"/>
304 <attribute name="init-options">
305 <data type="boolean"/>
309 <attribute name="request-session">
310 <data type="boolean"/>
314 <attribute name="response-session">
315 <data type="boolean"/>
319 <attribute name="apdu">
320 <data type="boolean"/>
324 <attribute name="request-apdu">
325 <data type="boolean"/>
329 <attribute name="response-apdu">
330 <data type="boolean"/>
336 <define name="filter_multi">
337 <attribute name="type">
341 <attribute name="id">
342 <data type="NCName"/>
346 <attribute name="name">
347 <data type="NCName"/>
351 <element name="mp:target">
352 <attribute name="route">
353 <data type="string"/>
355 <data type="string"/>
359 <element name="mp:hideunavailable">
364 <element name="mp:mergetype">
365 <data type="string"/>
369 <define name="filter_query_rewrite">
370 <attribute name="type">
371 <value>query_rewrite</value>
374 <attribute name="id">
375 <data type="NCName"/>
379 <attribute name="name">
380 <data type="NCName"/>
383 <element name="mp:xslt">
384 <attribute name="stylesheet">
385 <data type="string"/>
389 <define name="filter_record_transform">
390 <attribute name="type">
391 <value>record_transform</value>
394 <attribute name="id">
395 <data type="NCName"/>
399 <attribute name="name">
400 <data type="NCName"/>
403 <ref name="retrievalinfo"/>
405 <define name="filter_session_shared">
406 <attribute name="type">
407 <value>session_shared</value>
410 <attribute name="id">
411 <data type="NCName"/>
415 <attribute name="name">
416 <data type="NCName"/>
420 <element name="mp:resultset">
421 <attribute name="max">
422 <data type="integer"/>
424 <attribute name="ttl">
425 <data type="integer"/>
430 <element name="mp:session">
431 <attribute name="ttl">
432 <data type="integer"/>
437 <define name="filter_sru_z3950">
438 <attribute name="type">
439 <value>sru_z3950</value>
442 <attribute name="id">
443 <data type="NCName"/>
447 <attribute name="name">
448 <data type="NCName"/>
452 <element name="mp:database">
453 <attribute name="name">
454 <data type="NCName"/>
460 <define name="filter_virt_db">
461 <attribute name="type">
462 <value>virt_db</value>
465 <attribute name="id">
466 <data type="NCName"/>
470 <attribute name="name">
471 <data type="NCName"/>
475 <element name="mp:virtual">
477 <attribute name="route">
478 <data type="NCName"/>
481 <element name="mp:database">
482 <data type="NCName"/>
485 <element name="mp:target">
486 <data type="string"/>
492 <define name="filter_z3950_client">
493 <attribute name="type">
494 <value>z3950_client</value>
497 <attribute name="id">
498 <data type="NCName"/>
502 <attribute name="name">
503 <data type="NCName"/>
507 <element name="mp:timeout">
508 <data type="integer"/>
512 <element name="mp:default_target">
513 <data type="string"/>
517 <element name="mp:force_target">
518 <data type="string"/>
524 filter_zeerex_explain =
525 attribute type { "zeerex_explain" },
526 attribute id { xsd:NCName }?,
527 attribute name { xsd:NCName }?,
528 element mp:database {
529 attribute name { xsd:NCName },