Update schema for CGI filter configuration
[metaproxy-moved-to-github.git] / xml / schema / metaproxy.xsd
index dfb47c9..1f1e86e 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: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: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 =