Implement limit filter (bug #2697, bug #2698)
[metaproxy-moved-to-github.git] / xml / schema / metaproxy.rnc
index 9f49097..ebb819f 100644 (file)
@@ -1,7 +1,6 @@
 # Metaproxy XML config file schemas
-#  $Id: metaproxy.rnc,v 1.15 2007-01-08 13:07:39 marc Exp $
 # 
-#   Copyright (c) 2005-2006, Index Data.
+#   Copyright (c) 2005-2008 Index Data.
 # 
 #   See the LICENSE file for details
 # 
@@ -31,6 +30,7 @@ any = (text | element * { attribute * { text }*, any })*
 metaproxy =
   element mp:metaproxy {
     attribute version { "1.0" },
+    element mp:dlpath { xsd:string }?,
     element mp:start {
             attribute route { xsd:NCName }
     },
@@ -50,6 +50,7 @@ filter =
     | filter_auth_simple
     | filter_backend_test
     | filter_bounce
+    | filter_cql_rpn
     | filter_frontend_net
     | filter_http_file
     | filter_load_balance
@@ -61,6 +62,7 @@ filter =
     | filter_sru_z3950
     | filter_virt_db
     | filter_z3950_client
+    | filter_limit
 #    | filter_zeerex_explain
   }
 
@@ -84,12 +86,20 @@ filter_bounce =
   attribute id { xsd:NCName }?,
   attribute name { xsd:NCName }?
 
+filter_cql_rpn =
+  attribute type { "cql_rpn" },
+  attribute id { xsd:NCName }?,
+  attribute name { xsd:NCName }?,
+  element mp:conversion {
+    attribute  file { xsd:string }
+  }
+
 filter_frontend_net =
   attribute type { "frontend_net" },
   attribute id { xsd:NCName }?,
   attribute name { xsd:NCName }?,
   element mp:threads { xsd:integer }?,
-  element mp:port { xsd:string },
+  element mp:port { xsd:string }+,
   element mp:timeout { xsd:integer }?
 
 filter_http_file =
@@ -112,8 +122,11 @@ filter_log =
   attribute id { xsd:NCName }?,
   attribute name { xsd:NCName }?,
   element mp:message { xsd:string }?,
+  element mp:time-format { xsd:string }?,
   element mp:filename { xsd:string }?,
   element mp:category {
+    attribute user-access { xsd:boolean }?,
+    attribute access { xsd:boolean }?,
     attribute init-options { xsd:boolean }?,
     attribute request-session { xsd:boolean }?,
     attribute response-session { xsd:boolean }?,
@@ -130,7 +143,8 @@ filter_multi =
     attribute route { xsd:string },
     xsd:string
   }*,
-  element mp:hideunavailable { empty }?
+  element mp:hideunavailable { empty }?,
+  element mp:mergetype { xsd:string }?
 
 filter_query_rewrite =
   attribute type { "query_rewrite" },
@@ -153,10 +167,10 @@ filter_session_shared =
   element mp:resultset {
     attribute max { xsd:integer },
     attribute ttl { xsd:integer }
-  },
+  }?,
   element mp:session {
     attribute ttl { xsd:integer }
-  }
+  }?
 
 filter_sru_z3950 =
   attribute type { "sru_z3950" },
@@ -181,7 +195,18 @@ filter_z3950_client =
   attribute type { "z3950_client" },
   attribute id { xsd:NCName }?,
   attribute name { xsd:NCName }?,
-  element mp:timeout { xsd:integer }?
+  element mp:timeout { xsd:integer }?,
+  element mp:default_target { xsd:string }?,
+  element mp:force_target { xsd:string }?
+
+filter_limit =
+  attribute type { "limit" },
+  element mp:limit {
+    attribute bandwidth { xsd:integer }?,
+    attribute pdu { xsd:integer }?,
+    attribute search { xsd:integer }?,
+    attribute retrieve { xsd:integer }?
+  }?
 
 #filter_zeerex_explain =
 #  attribute type { "zeerex_explain" },
@@ -192,4 +217,4 @@ filter_z3950_client =
 #     any        
 #  }+
 
\ No newline at end of file