1 # Metaproxy XML config file schemas
3 # Copyright (c) 2005-2008 Index Data.
5 # See the LICENSE file for details
8 # The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
10 # The RelaxNG XML Syntax and XML Schema are generated using 'trang':
11 # trang metaproxy.rnc metaproxy.rng
12 # trang metaproxy.rnc metaproxy.xsd
14 # Config file validation is done using 'xmllint':
15 # xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml
16 # xmllint -/-schema metaproxy.xsd config-bytarget.xml
18 # For information on RelaxNG see http://relaxng.org
19 # see also http://books.xmlschemata.org/relaxng/
22 namespace mp = "http://indexdata.com/metaproxy"
26 include "retrievalinfo.rnc"
28 any = (text | element * { attribute * { text }*, any })*
31 element mp:metaproxy {
32 attribute version { "1.0" },
33 element mp:dlpath { xsd:string }?,
35 attribute route { xsd:NCName }
37 element mp:filters { filter+ }?,
38 element mp:routes { route+ }
43 attribute id { xsd:NCName },
59 | filter_query_rewrite
60 | filter_record_transform
61 | filter_session_shared
66 # | filter_zeerex_explain
69 filter_refid = attribute refid { xsd:NCName }
72 attribute type { "auth_simple" },
73 attribute id { xsd:NCName }?,
74 attribute name { xsd:NCName }?,
75 element mp:userRegister { xsd:string }?,
76 element mp:targetRegister { xsd:string }?,
77 element mp:discardUnauthorisedTargets { empty }?
80 attribute type { "backend_test" },
81 attribute id { xsd:NCName }?,
82 attribute name { xsd:NCName }?
85 attribute type { "bounce" },
86 attribute id { xsd:NCName }?,
87 attribute name { xsd:NCName }?
90 attribute type { "cql_rpn" },
91 attribute id { xsd:NCName }?,
92 attribute name { xsd:NCName }?,
93 element mp:conversion {
94 attribute file { xsd:string }
98 attribute type { "frontend_net" },
99 attribute id { xsd:NCName }?,
100 attribute name { xsd:NCName }?,
101 element mp:threads { xsd:integer }?,
102 element mp:port { xsd:string }+,
103 element mp:timeout { xsd:integer }?
106 attribute type { "http_file" },
107 attribute id { xsd:NCName }?,
108 attribute name { xsd:NCName }?,
109 element mp:mimetypes { xsd:string },
111 element mp:documentroot { xsd:string },
112 element mp:prefix { xsd:string }
115 filter_load_balance =
116 attribute type { "load_balance" },
117 attribute id { xsd:NCName }?,
118 attribute name { xsd:NCName }?
121 attribute type { "log" },
122 attribute id { xsd:NCName }?,
123 attribute name { xsd:NCName }?,
124 element mp:message { xsd:string }?,
125 element mp:time-format { xsd:string }?,
126 element mp:filename { xsd:string }?,
127 element mp:category {
128 attribute user-access { xsd:boolean }?,
129 attribute access { xsd:boolean }?,
130 attribute init-options { xsd:boolean }?,
131 attribute request-session { xsd:boolean }?,
132 attribute response-session { xsd:boolean }?,
133 attribute apdu { xsd:boolean }?,
134 attribute request-apdu { xsd:boolean }?,
135 attribute response-apdu { xsd:boolean }?
139 attribute type { "multi" },
140 attribute id { xsd:NCName }?,
141 attribute name { xsd:NCName }?,
143 attribute route { xsd:string },
146 element mp:hideunavailable { empty }?,
147 element mp:mergetype { xsd:string }?
149 filter_query_rewrite =
150 attribute type { "query_rewrite" },
151 attribute id { xsd:NCName }?,
152 attribute name { xsd:NCName }?,
154 attribute stylesheet { xsd:string }
157 filter_record_transform =
158 attribute type { "record_transform" },
159 attribute id { xsd:NCName }?,
160 attribute name { xsd:NCName }?,
163 filter_session_shared =
164 attribute type { "session_shared" },
165 attribute id { xsd:NCName }?,
166 attribute name { xsd:NCName }?,
167 element mp:resultset {
168 attribute max { xsd:integer },
169 attribute ttl { xsd:integer }
172 attribute ttl { xsd:integer }
176 attribute type { "sru_z3950" },
177 attribute id { xsd:NCName }?,
178 attribute name { xsd:NCName }?,
179 element mp:database {
180 attribute name { xsd:NCName },
185 attribute type { "virt_db" },
186 attribute id { xsd:NCName }?,
187 attribute name { xsd:NCName }?,
189 attribute route { xsd:NCName }?,
190 element mp:database { xsd:NCName },
191 element mp:target { xsd:string }+
194 filter_z3950_client =
195 attribute type { "z3950_client" },
196 attribute id { xsd:NCName }?,
197 attribute name { xsd:NCName }?,
198 element mp:timeout { xsd:integer }?,
199 element mp:default_target { xsd:string }?,
200 element mp:force_target { xsd:string }?
203 attribute type { "limit" },
205 attribute bandwidth { xsd:integer }?,
206 attribute pdu { xsd:integer }?,
207 attribute search { xsd:integer }?,
208 attribute retrieve { xsd:integer }?
211 #filter_zeerex_explain =
212 # attribute type { "zeerex_explain" },
213 # attribute id { xsd:NCName }?,
214 # attribute name { xsd:NCName }?,
215 # element mp:database {
216 # attribute name { xsd:NCName },