z3950_client filter: force_apdu facility
[metaproxy-moved-to-github.git] / xml / schema / metaproxy.xsd
index eeb4a5f..00dc21b 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"/>
             <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: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 minOccurs="0" ref="mp:pass-vhosts"/>
       <xs:element maxOccurs="unbounded" ref="mp:virtual"/>
     </xs:sequence>
   </xs:group>
+  <xs:element name="pass-vhosts" type="xs:boolean"/>
   <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:attribute name="id" type="xs:NCName"/>
     <xs:attribute name="name" type="xs:NCName"/>
   </xs:attributeGroup>
+  <xs:group name="filter_limit">
+    <xs:sequence>
+      <xs:element minOccurs="0" ref="mp:limit"/>
+    </xs:sequence>
+  </xs:group>
+  <xs:element name="limit">
+    <xs:complexType>
+      <xs:attribute name="bandwidth" type="xs:integer"/>
+      <xs:attribute name="pdu" type="xs:integer"/>
+      <xs:attribute name="search" type="xs:integer"/>
+      <xs:attribute name="retrieve" type="xs:integer"/>
+    </xs:complexType>
+  </xs:element>
+  <xs:attributeGroup name="filter_limit">
+    <xs:attribute name="type" use="required">
+      <xs:simpleType>
+        <xs:restriction base="xs:token">
+          <xs:enumeration value="limit"/>
+        </xs:restriction>
+      </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 =