1 # Metaproxy XML config file schemas
2 # $Id: metaproxy.rnc,v 1.20 2007-05-23 06:53:00 adam Exp $
4 # Copyright (c) 2005-2007, Index Data.
6 # See the LICENSE file for details
9 # The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
11 # The RelaxNG XML Syntax and XML Schema are generated using 'trang':
12 # trang metaproxy.rnc metaproxy.rng
13 # trang metaproxy.rnc metaproxy.xsd
15 # Config file validation is done using 'xmllint':
16 # xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml
17 # xmllint -/-schema metaproxy.xsd config-bytarget.xml
19 # For information on RelaxNG see http://relaxng.org
20 # see also http://books.xmlschemata.org/relaxng/
23 namespace mp = "http://indexdata.com/metaproxy"
27 include "retrievalinfo.rnc"
29 any = (text | element * { attribute * { text }*, any })*
32 element mp:metaproxy {
33 attribute version { "1.0" },
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
65 # | filter_zeerex_explain
68 filter_refid = attribute refid { xsd:NCName }
71 attribute type { "auth_simple" },
72 attribute id { xsd:NCName }?,
73 attribute name { xsd:NCName }?,
74 element mp:userRegister { xsd:string }?,
75 element mp:targetRegister { xsd:string }?,
76 element mp:discardUnauthorisedTargets { empty }?
79 attribute type { "backend_test" },
80 attribute id { xsd:NCName }?,
81 attribute name { xsd:NCName }?
84 attribute type { "bounce" },
85 attribute id { xsd:NCName }?,
86 attribute name { xsd:NCName }?
89 attribute type { "cql_rpn" },
90 attribute id { xsd:NCName }?,
91 attribute name { xsd:NCName }?,
92 element mp:conversion {
93 attribute file { xsd:string }
97 attribute type { "frontend_net" },
98 attribute id { xsd:NCName }?,
99 attribute name { xsd:NCName }?,
100 element mp:threads { xsd:integer }?,
101 element mp:port { xsd:string }+,
102 element mp:timeout { xsd:integer }?
105 attribute type { "http_file" },
106 attribute id { xsd:NCName }?,
107 attribute name { xsd:NCName }?,
108 element mp:mimetypes { xsd:string },
110 element mp:documentroot { xsd:string },
111 element mp:prefix { xsd:string }
114 filter_load_balance =
115 attribute type { "load_balance" },
116 attribute id { xsd:NCName }?,
117 attribute name { xsd:NCName }?
120 attribute type { "log" },
121 attribute id { xsd:NCName }?,
122 attribute name { xsd:NCName }?,
123 element mp:message { xsd:string }?,
124 element mp:filename { xsd:string }?,
125 element mp:category {
126 attribute user-access { xsd:boolean }?,
127 attribute access { xsd:boolean }?,
128 attribute init-options { xsd:boolean }?,
129 attribute request-session { xsd:boolean }?,
130 attribute response-session { xsd:boolean }?,
131 attribute apdu { xsd:boolean }?,
132 attribute request-apdu { xsd:boolean }?,
133 attribute response-apdu { xsd:boolean }?
137 attribute type { "multi" },
138 attribute id { xsd:NCName }?,
139 attribute name { xsd:NCName }?,
141 attribute route { xsd:string },
144 element mp:hideunavailable { empty }?
146 filter_query_rewrite =
147 attribute type { "query_rewrite" },
148 attribute id { xsd:NCName }?,
149 attribute name { xsd:NCName }?,
151 attribute stylesheet { xsd:string }
154 filter_record_transform =
155 attribute type { "record_transform" },
156 attribute id { xsd:NCName }?,
157 attribute name { xsd:NCName }?,
160 filter_session_shared =
161 attribute type { "session_shared" },
162 attribute id { xsd:NCName }?,
163 attribute name { xsd:NCName }?,
164 element mp:resultset {
165 attribute max { xsd:integer },
166 attribute ttl { xsd:integer }
169 attribute ttl { xsd:integer }
173 attribute type { "sru_z3950" },
174 attribute id { xsd:NCName }?,
175 attribute name { xsd:NCName }?,
176 element mp:database {
177 attribute name { xsd:NCName },
182 attribute type { "virt_db" },
183 attribute id { xsd:NCName }?,
184 attribute name { xsd:NCName }?,
186 attribute route { xsd:NCName }?,
187 element mp:database { xsd:NCName },
188 element mp:target { xsd:string }+
191 filter_z3950_client =
192 attribute type { "z3950_client" },
193 attribute id { xsd:NCName }?,
194 attribute name { xsd:NCName }?,
195 element mp:timeout { xsd:integer }?,
196 element mp:default_target { xsd:string }?,
197 element mp:force_target { xsd:string }?
199 #filter_zeerex_explain =
200 # attribute type { "zeerex_explain" },
201 # attribute id { xsd:NCName }?,
202 # attribute name { xsd:NCName }?,
203 # element mp:database {
204 # attribute name { xsd:NCName },