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">
49 <element name="mp:start">
50 <attribute name="route">
55 <element name="mp:filters">
61 <element name="mp:routes">
69 <element name="mp:route">
78 <define name="filter">
79 <element name="mp:filter">
81 <ref name="filter_refid"/>
82 <ref name="filter_auth_simple"/>
83 <ref name="filter_backend_test"/>
84 <ref name="filter_bounce"/>
85 <ref name="filter_cql_rpn"/>
86 <ref name="filter_frontend_net"/>
87 <ref name="filter_http_file"/>
88 <ref name="filter_load_balance"/>
89 <ref name="filter_log"/>
90 <ref name="filter_multi"/>
91 <ref name="filter_query_rewrite"/>
92 <ref name="filter_record_transform"/>
93 <ref name="filter_session_shared"/>
94 <ref name="filter_sru_z3950"/>
95 <ref name="filter_virt_db"/>
96 <ref name="filter_z3950_client"/>
98 <!-- | filter_zeerex_explain -->
101 <define name="filter_refid">
102 <attribute name="refid">
103 <data type="NCName"/>
106 <define name="filter_auth_simple">
107 <attribute name="type">
108 <value>auth_simple</value>
111 <attribute name="id">
112 <data type="NCName"/>
116 <attribute name="name">
117 <data type="NCName"/>
121 <element name="mp:userRegister">
122 <data type="string"/>
126 <element name="mp:targetRegister">
127 <data type="string"/>
131 <element name="mp:discardUnauthorisedTargets">
136 <define name="filter_backend_test">
137 <attribute name="type">
138 <value>backend_test</value>
141 <attribute name="id">
142 <data type="NCName"/>
146 <attribute name="name">
147 <data type="NCName"/>
151 <define name="filter_bounce">
152 <attribute name="type">
153 <value>bounce</value>
156 <attribute name="id">
157 <data type="NCName"/>
161 <attribute name="name">
162 <data type="NCName"/>
166 <define name="filter_cql_rpn">
167 <attribute name="type">
168 <value>cql_rpn</value>
171 <attribute name="id">
172 <data type="NCName"/>
176 <attribute name="name">
177 <data type="NCName"/>
180 <element name="mp:conversion">
181 <attribute name="file">
182 <data type="string"/>
186 <define name="filter_frontend_net">
187 <attribute name="type">
188 <value>frontend_net</value>
191 <attribute name="id">
192 <data type="NCName"/>
196 <attribute name="name">
197 <data type="NCName"/>
201 <element name="mp:threads">
202 <data type="integer"/>
206 <element name="mp:port">
207 <data type="string"/>
211 <element name="mp:timeout">
212 <data type="integer"/>
216 <define name="filter_http_file">
217 <attribute name="type">
218 <value>http_file</value>
221 <attribute name="id">
222 <data type="NCName"/>
226 <attribute name="name">
227 <data type="NCName"/>
230 <element name="mp:mimetypes">
231 <data type="string"/>
233 <element name="mp:area">
234 <element name="mp:documentroot">
235 <data type="string"/>
237 <element name="mp:prefix">
238 <data type="string"/>
242 <define name="filter_load_balance">
243 <attribute name="type">
244 <value>load_balance</value>
247 <attribute name="id">
248 <data type="NCName"/>
252 <attribute name="name">
253 <data type="NCName"/>
257 <define name="filter_log">
258 <attribute name="type">
262 <attribute name="id">
263 <data type="NCName"/>
267 <attribute name="name">
268 <data type="NCName"/>
272 <element name="mp:message">
273 <data type="string"/>
277 <element name="mp:time-format">
278 <data type="string"/>
282 <element name="mp:filename">
283 <data type="string"/>
287 <element name="mp:category">
289 <attribute name="user-access">
290 <data type="boolean"/>
294 <attribute name="access">
295 <data type="boolean"/>
299 <attribute name="init-options">
300 <data type="boolean"/>
304 <attribute name="request-session">
305 <data type="boolean"/>
309 <attribute name="response-session">
310 <data type="boolean"/>
314 <attribute name="apdu">
315 <data type="boolean"/>
319 <attribute name="request-apdu">
320 <data type="boolean"/>
324 <attribute name="response-apdu">
325 <data type="boolean"/>
331 <define name="filter_multi">
332 <attribute name="type">
336 <attribute name="id">
337 <data type="NCName"/>
341 <attribute name="name">
342 <data type="NCName"/>
346 <element name="mp:target">
347 <attribute name="route">
348 <data type="string"/>
350 <data type="string"/>
354 <element name="mp:hideunavailable">
359 <element name="mp:mergetype">
360 <data type="string"/>
364 <define name="filter_query_rewrite">
365 <attribute name="type">
366 <value>query_rewrite</value>
369 <attribute name="id">
370 <data type="NCName"/>
374 <attribute name="name">
375 <data type="NCName"/>
378 <element name="mp:xslt">
379 <attribute name="stylesheet">
380 <data type="string"/>
384 <define name="filter_record_transform">
385 <attribute name="type">
386 <value>record_transform</value>
389 <attribute name="id">
390 <data type="NCName"/>
394 <attribute name="name">
395 <data type="NCName"/>
398 <ref name="retrievalinfo"/>
400 <define name="filter_session_shared">
401 <attribute name="type">
402 <value>session_shared</value>
405 <attribute name="id">
406 <data type="NCName"/>
410 <attribute name="name">
411 <data type="NCName"/>
415 <element name="mp:resultset">
416 <attribute name="max">
417 <data type="integer"/>
419 <attribute name="ttl">
420 <data type="integer"/>
425 <element name="mp:session">
426 <attribute name="ttl">
427 <data type="integer"/>
432 <define name="filter_sru_z3950">
433 <attribute name="type">
434 <value>sru_z3950</value>
437 <attribute name="id">
438 <data type="NCName"/>
442 <attribute name="name">
443 <data type="NCName"/>
447 <element name="mp:database">
448 <attribute name="name">
449 <data type="NCName"/>
455 <define name="filter_virt_db">
456 <attribute name="type">
457 <value>virt_db</value>
460 <attribute name="id">
461 <data type="NCName"/>
465 <attribute name="name">
466 <data type="NCName"/>
470 <element name="mp:virtual">
472 <attribute name="route">
473 <data type="NCName"/>
476 <element name="mp:database">
477 <data type="NCName"/>
480 <element name="mp:target">
481 <data type="string"/>
487 <define name="filter_z3950_client">
488 <attribute name="type">
489 <value>z3950_client</value>
492 <attribute name="id">
493 <data type="NCName"/>
497 <attribute name="name">
498 <data type="NCName"/>
502 <element name="mp:timeout">
503 <data type="integer"/>
507 <element name="mp:default_target">
508 <data type="string"/>
512 <element name="mp:force_target">
513 <data type="string"/>
519 filter_zeerex_explain =
520 attribute type { "zeerex_explain" },
521 attribute id { xsd:NCName }?,
522 attribute name { xsd:NCName }?,
523 element mp:database {
524 attribute name { xsd:NCName },