| filter_auth_simple
| filter_backend_test
| filter_bounce
+ | filter_cgi
| filter_cql_rpn
| filter_frontend_net
| filter_http_file
attribute retrieve { xsd:integer }?
}?
+filter_cgi =
+ attribute type { "cgi" },
+ element mp:map {
+ attribute path { xsd:string },
+ attribute exec { xsd:string }
+ }*
+
#filter_zeerex_explain =
# attribute type { "zeerex_explain" },
# attribute id { xsd:NCName }?,
<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"/>
</element>
</optional>
</define>
+ <define name="filter_cgi">
+ <attribute name="type">
+ <value>cgi</value>
+ </attribute>
+ <zeroOrMore>
+ <element name="mp:map">
+ <attribute name="path">
+ <data type="string"/>
+ </attribute>
+ <attribute name="exec">
+ <data type="string"/>
+ </attribute>
+ </element>
+ </zeroOrMore>
+ </define>
</grammar>
<!--
filter_zeerex_explain =
<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: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: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 =