updated wih copyright info
[metaproxy-moved-to-github.git] / xml / schema / metaproxy.rnc
index f648a18..8f67dbf 100644 (file)
@@ -1,7 +1,23 @@
-# The RelaxNG Compact Syntax file is the master copy
+# Metaproxy XML config file schemas
+#  $Id: metaproxy.rnc,v 1.3 2006-10-06 22:42:24 marc Exp $
+#
+#   Copyright (c) 2005-2006, 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"
 
@@ -20,52 +36,104 @@ metaproxy =
 
 route =  element route {
     attribute id { xsd:NCName },
-    (filter
-     | filter_ref_id
-     )+
+    filter+
 }
 
 filter = 
-    (filter_log
-    | filter_bounce
-    | filter_frontend_net
-    | filter_z3950_client 
-    )
-
-filter_ref_id =
   element filter {
-    attribute refid { xsd:NCName }
-  }
+   ( filter_refid
+   | filter_auth_simple
+   | filter_backend_test
+   | filter_bounce
+   | filter_frontend_net
+   | filter_http_file
+   | filter_log
+   | filter_multi
+   | filter_query_rewrite
+   | filter_virt_db
+   | filter_z3950_client
+   )
+}
 
-filter_bounce =
-  element filter {
+filter_refid = attribute refid { xsd:NCName }
+
+filter_auth_simple = 
+    attribute type { "auth_simple" },
+    attribute id { xsd:NCName }?,
+    attribute name { xsd:NCName }?,
+    element userRegister { xsd:string }?,
+    element targetRegister { xsd:string }?,
+    element discardUnauthorisedTargets { empty }?
+
+filter_backend_test = 
+    attribute type { "backend_test" },
+    attribute id { xsd:NCName }?,
+    attribute name { xsd:NCName }?
+
+filter_bounce = 
     attribute type { "bounce" },
     attribute id { xsd:NCName }?,
-    attribute name { xsd:NCName }
-  }
+    attribute name { xsd:NCName }?
 
-filter_log =
-  element filter {
+filter_frontend_net = 
+    attribute type { "frontend_net" },
+    attribute id { xsd:NCName }?,
+    attribute name { xsd:NCName }?,
+    element threads { xsd:integer }?,
+    element port { xsd:string }
+
+filter_http_file = 
+    attribute type { "http_file" },
+    attribute id { xsd:NCName }?,
+    attribute name { xsd:NCName }?,
+    element mimetypes { xsd:string },
+    element area { 
+        element documentroot { xsd:string },
+        element prefix { xsd:string }
+    }
+
+filter_log = 
     attribute type { "log" },
     attribute id { xsd:NCName }?,
     attribute name { xsd:NCName }?,
-    element message { xsd:NCName }?
-  }
+    element message { xsd:NCName },
+    element filename { xsd:string }?,
+    element category {
+        attribute request-session { xsd:boolean }?, 
+        attribute response-session { xsd:boolean }?, 
+        attribute request-apdu { xsd:boolean }?, 
+        attribute response-apdu { xsd:boolean }? 
+    }?
 
-filter_frontend_net =
-  element filter {
-    attribute type { "frontend_net" },
+filter_multi = 
+    attribute type { "multi" },
     attribute id { xsd:NCName }?,
     attribute name { xsd:NCName }?,
-    element threads { xsd:integer },
-    element port { xsd:string }
-  }
+    element target {
+        attribute route { xsd:string },
+        xsd:string
+    }*,
+    element hideunavailable { empty }?
 
-filter_z3950_client =
-  element filter {
+filter_query_rewrite = 
+    attribute type { "query_rewrite" },
+    attribute id { xsd:NCName }?,
+    attribute name { xsd:NCName }?,
+    element xslt { xsd:string }
+
+filter_virt_db = 
+    attribute type { "virt_db" },
+    attribute id { xsd:NCName }?,
+    attribute name { xsd:NCName }?,
+    element virtual {
+       attribute route { xsd:NCName }?,
+       element database { xsd:NCName },
+       element target  { xsd:string }+
+    }+
+
+filter_z3950_client = 
     attribute type { "z3950_client" },
     attribute id { xsd:NCName }?,
     attribute name { xsd:NCName }?,
     element timeout { xsd:integer }
-  }