Fix Metaproxy stops logging after check config failed MP-590
[metaproxy-moved-to-github.git] / xml / schema / metaproxy.rnc
1 # Metaproxy XML config file schemas
2
3 #   Copyright (C) Index Data.
4
5 #   See the LICENSE file for details
6
7
8 # The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy.
9
10 # The RelaxNG XML Syntax and XML Schema are generated using 'trang':
11 # trang metaproxy.rnc metaproxy.rng 
12 # trang metaproxy.rnc metaproxy.xsd 
13
14 # Config file validation is done using 'xmllint':
15 # xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml 
16 # xmllint -/-schema metaproxy.xsd config-bytarget.xml
17
18 # For information on RelaxNG see http://relaxng.org 
19 # see also http://books.xmlschemata.org/relaxng/
20
21 namespace mp = "http://indexdata.com/metaproxy"
22
23 start |= metaproxy
24
25 include "filter_auth_simple.rnc"
26 include "filter_backend_test.rnc"
27 include "filter_bounce.rnc"
28 include "filter_cgi.rnc"
29 include "filter_cql_rpn.rnc"
30 include "filter_frontend_net.rnc"
31 include "filter_http_client.rnc"
32 include "filter_http_file.rnc"
33 include "filter_http_rewrite.rnc"
34 include "filter_http_rewrite1.rnc"
35 include "filter_limit.rnc"
36 include "filter_load_balance.rnc"
37 include "filter_log.rnc"
38 include "filter_multi.rnc"
39 include "filter_present_chunk.rnc"
40 include "filter_query_rewrite.rnc"
41 include "filter_record_transform.rnc"
42 include "filter_sd_remove.rnc"
43 include "filter_session_shared.rnc"
44 include "filter_sort.rnc"
45 include "filter_sru_z3950.rnc"
46 include "filter_virt_db.rnc"
47 include "filter_z3950_client.rnc"
48 include "filter_zoom.rnc"
49
50 any = (text | element * { attribute * { text }*, any })*
51
52 metaproxy =
53   element mp:metaproxy {
54     attribute version { "1.0" },
55     element mp:dlpath { xsd:string }?,
56     element mp:start {
57             attribute route { xsd:NCName }
58     },
59     element mp:filters { filter+ }?,
60     element mp:routes { route+ }
61   }
62
63 route =
64   element mp:route {
65     attribute id { xsd:NCName },
66     filters+
67   }
68
69 filters =
70   filter |
71   element mp:filters {
72     filters+
73   }
74
75 filter =
76   element mp:filter {
77     filter_refid
78     | filter_auth_simple
79     | filter_backend_test
80     | filter_bounce
81     | filter_cgi
82     | filter_cql_rpn
83     | filter_frontend_net
84     | filter_http_client
85     | filter_http_file
86     | filter_http_rewrite
87     | filter_http_rewrite1
88     | filter_limit
89     | filter_load_balance
90     | filter_log
91     | filter_multi
92     | filter_present_chunk
93     | filter_query_rewrite
94     | filter_record_transform
95     | filter_sd_remove
96     | filter_session_shared
97     | filter_sort
98     | filter_sru_z3950
99     | filter_virt_db
100     | filter_z3950_client
101     | filter_zoom
102   }
103
104 filter_refid = attribute refid { xsd:NCName }
105