1 # Metaproxy XML config file schemas
2 # $Id: metaproxy.rnc,v 1.9 2006-11-29 21:45:04 marc Exp $
4 # Copyright (c) 2005-2006, 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"
25 include "retrievalinfo.rnc"
30 element mp:metaproxy {
31 attribute version { "1.0" },
33 attribute route { xsd:NCName }
35 element mp:filters { filter+ }?,
36 element mp:routes { route+ }
41 attribute id { xsd:NCName },
55 | filter_query_rewrite
56 | filter_record_transform
57 | filter_session_shared
63 filter_refid = attribute refid { xsd:NCName }
66 attribute type { "auth_simple" },
67 attribute id { xsd:NCName }?,
68 attribute name { xsd:NCName }?,
69 element mp:userRegister { xsd:string }?,
70 element mp:targetRegister { xsd:string }?,
71 element mp:discardUnauthorisedTargets { empty }?
74 attribute type { "backend_test" },
75 attribute id { xsd:NCName }?,
76 attribute name { xsd:NCName }?
79 attribute type { "bounce" },
80 attribute id { xsd:NCName }?,
81 attribute name { xsd:NCName }?
84 attribute type { "frontend_net" },
85 attribute id { xsd:NCName }?,
86 attribute name { xsd:NCName }?,
87 element mp:threads { xsd:integer }?,
88 element mp:port { xsd:string },
89 element mp:timeout { xsd:integer }?
92 attribute type { "http_file" },
93 attribute id { xsd:NCName }?,
94 attribute name { xsd:NCName }?,
95 element mp:mimetypes { xsd:string },
97 element mp:documentroot { xsd:string },
98 element mp:prefix { xsd:string }
102 attribute type { "log" },
103 attribute id { xsd:NCName }?,
104 attribute name { xsd:NCName }?,
105 element mp:message { xsd:string }?,
106 element mp:filename { xsd:string }?,
107 element mp:category {
108 attribute init-options { xsd:boolean }?,
109 attribute request-session { xsd:boolean }?,
110 attribute response-session { xsd:boolean }?,
111 attribute apdu { xsd:boolean }?,
112 attribute request-apdu { xsd:boolean }?,
113 attribute response-apdu { xsd:boolean }?
117 attribute type { "multi" },
118 attribute id { xsd:NCName }?,
119 attribute name { xsd:NCName }?,
121 attribute route { xsd:string },
124 element mp:hideunavailable { empty }?
126 filter_query_rewrite =
127 attribute type { "query_rewrite" },
128 attribute id { xsd:NCName }?,
129 attribute name { xsd:NCName }?,
130 element mp:xslt { xsd:string }
132 filter_record_transform =
133 attribute type { "record_transform" },
134 attribute id { xsd:NCName }?,
135 attribute name { xsd:NCName }?,
138 filter_session_shared =
139 attribute type { "session_shared" },
140 attribute id { xsd:NCName }?,
141 attribute name { xsd:NCName }?,
142 element mp:resultset {
143 attribute max { xsd:integer },
144 attribute ttl { xsd:integer }
147 attribute ttl { xsd:integer }
151 attribute type { "sru_z3950" },
152 attribute id { xsd:NCName }?,
153 attribute name { xsd:NCName }?
156 attribute type { "virt_db" },
157 attribute id { xsd:NCName }?,
158 attribute name { xsd:NCName }?,
160 attribute route { xsd:NCName }?,
161 element mp:database { xsd:NCName },
162 element mp:target { xsd:string }+
165 filter_z3950_client =
166 attribute type { "z3950_client" },
167 attribute id { xsd:NCName }?,
168 attribute name { xsd:NCName }?,
169 element mp:timeout { xsd:integer }?