Start work on contentProxy support
[metaproxy-moved-to-github.git] / xml / schema / metaproxy.rng
index 8530e45..81e8915 100644 (file)
@@ -2,7 +2,7 @@
 <!--
   Metaproxy XML config file schemas
   
-    Copyright (c) 2005-2008 Index Data.
+    Copyright (C) 2005-2011 Index Data.
   
     See the LICENSE file for details
   
   <start combine="choice">
     <ref name="metaproxy"/>
   </start>
-  <include href="retrievalinfo.rng"/>
+  <include href="filter_auth_simple.rng"/>
+  <include href="filter_backend_test.rng"/>
+  <include href="filter_bounce.rng"/>
+  <include href="filter_cgi.rng"/>
+  <include href="filter_cql_rpn.rng"/>
+  <include href="filter_frontend_net.rng"/>
+  <include href="filter_http_file.rng"/>
+  <include href="filter_limit.rng"/>
+  <include href="filter_load_balance.rng"/>
+  <include href="filter_log.rng"/>
+  <include href="filter_multi.rng"/>
+  <include href="filter_query_rewrite.rng"/>
+  <include href="filter_record_transform.rng"/>
+  <include href="filter_session_shared.rng"/>
+  <include href="filter_sru_z3950.rng"/>
+  <include href="filter_virt_db.rng"/>
+  <include href="filter_z3950_client.rng"/>
+  <include href="filter_zoom.rng"/>
   <define name="any">
     <zeroOrMore>
       <choice>
         <ref name="filter_auth_simple"/>
         <ref name="filter_backend_test"/>
         <ref name="filter_bounce"/>
+        <ref name="filter_cgi"/>
         <ref name="filter_cql_rpn"/>
         <ref name="filter_frontend_net"/>
         <ref name="filter_http_file"/>
         <ref name="filter_sru_z3950"/>
         <ref name="filter_virt_db"/>
         <ref name="filter_z3950_client"/>
+        <ref name="filter_zoom"/>
       </choice>
-      <!--    | filter_zeerex_explain -->
     </element>
   </define>
   <define name="filter_refid">
       <data type="NCName"/>
     </attribute>
   </define>
-  <define name="filter_auth_simple">
-    <attribute name="type">
-      <value>auth_simple</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:userRegister">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:targetRegister">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:discardUnauthorisedTargets">
-        <empty/>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_backend_test">
-    <attribute name="type">
-      <value>backend_test</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-  </define>
-  <define name="filter_bounce">
-    <attribute name="type">
-      <value>bounce</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-  </define>
-  <define name="filter_cql_rpn">
-    <attribute name="type">
-      <value>cql_rpn</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <element name="mp:conversion">
-      <attribute name="file">
-        <data type="string"/>
-      </attribute>
-    </element>
-  </define>
-  <define name="filter_frontend_net">
-    <attribute name="type">
-      <value>frontend_net</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:threads">
-        <data type="integer"/>
-      </element>
-    </optional>
-    <oneOrMore>
-      <element name="mp:port">
-        <data type="string"/>
-      </element>
-    </oneOrMore>
-    <optional>
-      <element name="mp:timeout">
-        <data type="integer"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:connect-max">
-        <data type="integer"/>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_http_file">
-    <attribute name="type">
-      <value>http_file</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <element name="mp:mimetypes">
-      <data type="string"/>
-    </element>
-    <element name="mp:area">
-      <element name="mp:documentroot">
-        <data type="string"/>
-      </element>
-      <element name="mp:prefix">
-        <data type="string"/>
-      </element>
-    </element>
-  </define>
-  <define name="filter_load_balance">
-    <attribute name="type">
-      <value>load_balance</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-  </define>
-  <define name="filter_log">
-    <attribute name="type">
-      <value>log</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:message">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:time-format">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:filename">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:category">
-        <optional>
-          <attribute name="user-access">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="access">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="init-options">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="request-session">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="response-session">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="apdu">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="request-apdu">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="response-apdu">
-            <data type="boolean"/>
-          </attribute>
-        </optional>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_multi">
-    <attribute name="type">
-      <value>multi</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <zeroOrMore>
-      <element name="mp:target">
-        <attribute name="route">
-          <data type="string"/>
-        </attribute>
-        <data type="string"/>
-      </element>
-    </zeroOrMore>
-    <optional>
-      <element name="mp:hideunavailable">
-        <empty/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:mergetype">
-        <data type="string"/>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_query_rewrite">
-    <attribute name="type">
-      <value>query_rewrite</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <element name="mp:xslt">
-      <attribute name="stylesheet">
-        <data type="string"/>
-      </attribute>
-    </element>
-  </define>
-  <define name="filter_record_transform">
-    <attribute name="type">
-      <value>record_transform</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <ref name="retrievalinfo"/>
-  </define>
-  <define name="filter_session_shared">
-    <attribute name="type">
-      <value>session_shared</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:resultset">
-        <attribute name="max">
-          <data type="integer"/>
-        </attribute>
-        <attribute name="ttl">
-          <data type="integer"/>
-        </attribute>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:session">
-        <attribute name="ttl">
-          <data type="integer"/>
-        </attribute>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_sru_z3950">
-    <attribute name="type">
-      <value>sru_z3950</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <zeroOrMore>
-      <element name="mp:database">
-        <attribute name="name">
-          <data type="NCName"/>
-        </attribute>
-        <ref name="any"/>
-      </element>
-    </zeroOrMore>
-  </define>
-  <define name="filter_virt_db">
-    <attribute name="type">
-      <value>virt_db</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:pass-vhosts">
-        <data type="boolean"/>
-      </element>
-    </optional>
-    <oneOrMore>
-      <element name="mp:virtual">
-        <optional>
-          <attribute name="route">
-            <data type="NCName"/>
-          </attribute>
-        </optional>
-        <element name="mp:database">
-          <data type="string"/>
-        </element>
-        <oneOrMore>
-          <element name="mp:target">
-            <data type="string"/>
-          </element>
-        </oneOrMore>
-      </element>
-    </oneOrMore>
-  </define>
-  <define name="filter_z3950_client">
-    <attribute name="type">
-      <value>z3950_client</value>
-    </attribute>
-    <optional>
-      <attribute name="id">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <attribute name="name">
-        <data type="NCName"/>
-      </attribute>
-    </optional>
-    <optional>
-      <element name="mp:timeout">
-        <data type="integer"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:default_target">
-        <data type="string"/>
-      </element>
-    </optional>
-    <optional>
-      <element name="mp:force_target">
-        <data type="string"/>
-      </element>
-    </optional>
-  </define>
-  <define name="filter_limit">
-    <attribute name="type">
-      <value>limit</value>
-    </attribute>
-    <optional>
-      <element name="mp:limit">
-        <optional>
-          <attribute name="bandwidth">
-            <data type="integer"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="pdu">
-            <data type="integer"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="search">
-            <data type="integer"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="retrieve">
-            <data type="integer"/>
-          </attribute>
-        </optional>
-      </element>
-    </optional>
-  </define>
 </grammar>
-<!--
-  filter_zeerex_explain =
-   attribute type { "zeerex_explain" },
-   attribute id { xsd:NCName }?,
-   attribute name { xsd:NCName }?,
-   element mp:database {  
-      attribute name { xsd:NCName },
-      any        
-   }+
--->