Start work on Torus extension for virt_db
[metaproxy-moved-to-github.git] / xml / schema / metaproxy.xsd
index ffeafa3..8fb6159 100644 (file)
     <xs:complexType>
       <xs:choice minOccurs="0">
         <xs:group ref="mp:filter_auth_simple"/>
+        <xs:group ref="mp:filter_cgi"/>
         <xs:element ref="mp:conversion"/>
         <xs:group ref="mp:filter_frontend_net"/>
         <xs:group ref="mp:filter_http_file"/>
+        <xs:group ref="mp:filter_limit"/>
         <xs:group ref="mp:filter_log"/>
         <xs:group ref="mp:filter_multi"/>
         <xs:element ref="mp:xslt"/>
@@ -87,7 +89,6 @@
         <xs:group ref="mp:filter_sru_z3950"/>
         <xs:group ref="mp:filter_virt_db"/>
         <xs:group ref="mp:filter_z3950_client"/>
-        <xs:group ref="mp:filter_limit"/>
       </xs:choice>
       <xs:attribute name="type">
         <xs:simpleType>
             <xs:enumeration value="auth_simple"/>
             <xs:enumeration value="backend_test"/>
             <xs:enumeration value="bounce"/>
+            <xs:enumeration value="cgi"/>
             <xs:enumeration value="cql_rpn"/>
             <xs:enumeration value="frontend_net"/>
             <xs:enumeration value="http_file"/>
+            <xs:enumeration value="limit"/>
             <xs:enumeration value="load_balance"/>
             <xs:enumeration value="log"/>
             <xs:enumeration value="multi"/>
             <xs:enumeration value="sru_z3950"/>
             <xs:enumeration value="virt_db"/>
             <xs:enumeration value="z3950_client"/>
-            <xs:enumeration value="limit"/>
           </xs:restriction>
         </xs:simpleType>
       </xs:attribute>
       <xs:element minOccurs="0" ref="mp:threads"/>
       <xs:element maxOccurs="unbounded" ref="mp:port"/>
       <xs:element minOccurs="0" ref="mp:timeout"/>
+      <xs:element minOccurs="0" ref="mp:connect-max"/>
     </xs:sequence>
   </xs:group>
   <xs:element name="threads" type="xs:integer"/>
   <xs:element name="port" type="xs:string"/>
   <xs:element name="timeout" type="xs:integer"/>
+  <xs:element name="connect-max" type="xs:integer"/>
   <xs:attributeGroup name="filter_frontend_net">
     <xs:attribute name="type" use="required">
       <xs:simpleType>
       <xs:attribute name="init-options" type="xs:boolean"/>
       <xs:attribute name="request-session" type="xs:boolean"/>
       <xs:attribute name="response-session" type="xs:boolean"/>
+      <xs:attribute name="session" type="xs:boolean"/>
       <xs:attribute name="apdu" type="xs:boolean"/>
       <xs:attribute name="request-apdu" type="xs:boolean"/>
       <xs:attribute name="response-apdu" type="xs:boolean"/>
     <xs:complexType>
       <xs:attribute name="max" use="required" type="xs:integer"/>
       <xs:attribute name="ttl" use="required" type="xs:integer"/>
+      <xs:attribute name="optimizesearch" use="required" type="xs:boolean"/>
     </xs:complexType>
   </xs:element>
   <xs:element name="session">
   </xs:attributeGroup>
   <xs:group name="filter_sru_z3950">
     <xs:sequence>
-      <xs:element maxOccurs="unbounded" ref="mp:database"/>
+      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:database"/>
     </xs:sequence>
   </xs:group>
   <xs:element name="database">
   </xs:attributeGroup>
   <xs:group name="filter_virt_db">
     <xs:sequence>
-      <xs:element maxOccurs="unbounded" ref="mp:virtual"/>
+      <xs:element minOccurs="0" ref="mp:pass-vhosts"/>
+      <xs:element minOccurs="0" ref="mp:torus"/>
+      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:virtual"/>
     </xs:sequence>
   </xs:group>
+  <xs:element name="pass-vhosts" type="xs:boolean"/>
+  <xs:element name="torus">
+    <xs:complexType>
+      <xs:attribute name="url" use="required" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
   <xs:element name="virtual">
     <xs:complexType>
       <xs:sequence>
-        <xs:element name="database" type="xs:NCName"/>
+        <xs:element name="database" type="xs:string"/>
         <xs:element maxOccurs="unbounded" name="target" type="xs:string"/>
       </xs:sequence>
       <xs:attribute name="route" type="xs:NCName"/>
       <xs:element minOccurs="0" ref="mp:timeout"/>
       <xs:element minOccurs="0" ref="mp:default_target"/>
       <xs:element minOccurs="0" ref="mp:force_target"/>
+      <xs:element minOccurs="0" ref="mp:force_close"/>
     </xs:sequence>
   </xs:group>
   <xs:element name="default_target" type="xs:string"/>
   <xs:element name="force_target" type="xs:string"/>
+  <xs:element name="force_close" type="xs:boolean"/>
   <xs:attributeGroup name="filter_z3950_client">
     <xs:attribute name="type" use="required">
       <xs:simpleType>
       </xs:simpleType>
     </xs:attribute>
   </xs:attributeGroup>
+  <xs:group name="filter_cgi">
+    <xs:sequence>
+      <xs:element minOccurs="0" maxOccurs="unbounded" ref="mp:map"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="map">
+    <xs:complexType>
+      <xs:attribute name="path" use="required" type="xs:string"/>
+      <xs:attribute name="exec" use="required" type="xs:string"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_cgi">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="cgi"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
+  </xs:attributeGroup>
 </xs:schema>
 <!--
   filter_zeerex_explain =