X-Git-Url: http://git.indexdata.com/?a=blobdiff_plain;f=xml%2Fschema%2Fmetaproxy.rnc;h=02c1bf02d4d2fb82f410a34f85a90419c701a723;hb=6b53d99d063b40491100575eeaa4996303ef21f1;hp=f648a18eeabe9fdd6d8a631c4e1d7984cd425b32;hpb=5c729d564d57d5c4c650d253b5e531825befafba;p=metaproxy-moved-to-github.git diff --git a/xml/schema/metaproxy.rnc b/xml/schema/metaproxy.rnc index f648a18..02c1bf0 100644 --- a/xml/schema/metaproxy.rnc +++ b/xml/schema/metaproxy.rnc @@ -1,71 +1,105 @@ -# The RelaxNG Compact Syntax file is the master copy +# Metaproxy XML config file schemas +# +# Copyright (C) Index Data. +# +# See the LICENSE file for details +# +# +# The RelaxNG Compact Syntax file 'metaproxy.rnc' is the master copy. +# +# The RelaxNG XML Syntax and XML Schema are generated using 'trang': # trang metaproxy.rnc metaproxy.rng -# xmllint --relaxng metaproxy.rng ../../../etc/config1.xml -# see also http://books.xmlschemata.org/relaxng/relax-CHP-16-SECT-2.html +# trang metaproxy.rnc metaproxy.xsd +# +# Config file validation is done using 'xmllint': +# xmllint -/-relaxng metaproxy.rng ../../../etc/config1.xml +# xmllint -/-schema metaproxy.xsd config-bytarget.xml +# +# For information on RelaxNG see http://relaxng.org +# see also http://books.xmlschemata.org/relaxng/ -default namespace = "http://indexdata.dk/yp2/config/1" +namespace mp = "http://indexdata.com/metaproxy" -start = metaproxy +start |= metaproxy -metaproxy = - element yp2 { - element start { - attribute route { xsd:NCName } - }, - element filters { filter+ }?, - element routes { - route+ - } - } - -route = element route { - attribute id { xsd:NCName }, - (filter - | filter_ref_id - )+ -} +include "filter_auth_simple.rnc" +include "filter_backend_test.rnc" +include "filter_bounce.rnc" +include "filter_cgi.rnc" +include "filter_cql_rpn.rnc" +include "filter_frontend_net.rnc" +include "filter_http_client.rnc" +include "filter_http_file.rnc" +include "filter_http_rewrite.rnc" +include "filter_http_rewrite1.rnc" +include "filter_limit.rnc" +include "filter_load_balance.rnc" +include "filter_log.rnc" +include "filter_multi.rnc" +include "filter_present_chunk.rnc" +include "filter_query_rewrite.rnc" +include "filter_record_transform.rnc" +include "filter_sd_remove.rnc" +include "filter_session_shared.rnc" +include "filter_sort.rnc" +include "filter_sru_z3950.rnc" +include "filter_virt_db.rnc" +include "filter_z3950_client.rnc" +include "filter_zoom.rnc" -filter = - (filter_log - | filter_bounce - | filter_frontend_net - | filter_z3950_client - ) +any = (text | element * { attribute * { text }*, any })* -filter_ref_id = - element filter { - attribute refid { xsd:NCName } +metaproxy = + element mp:metaproxy { + attribute version { "1.0" }, + element mp:dlpath { xsd:string }?, + element mp:start { + attribute route { xsd:NCName } + }, + element mp:filters { filter+ }?, + element mp:routes { route+ } } -filter_bounce = - element filter { - attribute type { "bounce" }, - attribute id { xsd:NCName }?, - attribute name { xsd:NCName } +route = + element mp:route { + attribute id { xsd:NCName }, + filters+ } -filter_log = - element filter { - attribute type { "log" }, - attribute id { xsd:NCName }?, - attribute name { xsd:NCName }?, - element message { xsd:NCName }? +filters = + filter | + element mp:filters { + filters+ } -filter_frontend_net = - element filter { - attribute type { "frontend_net" }, - attribute id { xsd:NCName }?, - attribute name { xsd:NCName }?, - element threads { xsd:integer }, - element port { xsd:string } +filter = + element mp:filter { + filter_refid + | filter_auth_simple + | filter_backend_test + | filter_bounce + | filter_cgi + | filter_cql_rpn + | filter_frontend_net + | filter_http_client + | filter_http_file + | filter_http_rewrite + | filter_http_rewrite1 + | filter_limit + | filter_load_balance + | filter_log + | filter_multi + | filter_present_chunk + | filter_query_rewrite + | filter_record_transform + | filter_sd_remove + | filter_session_shared + | filter_sort + | filter_sru_z3950 + | filter_virt_db + | filter_z3950_client + | filter_zoom } -filter_z3950_client = - element filter { - attribute type { "z3950_client" }, - attribute id { xsd:NCName }?, - attribute name { xsd:NCName }?, - element timeout { xsd:integer } - } +filter_refid = attribute refid { xsd:NCName }