<?xml version="1.0" encoding="UTF-8"?>
<xs:schema version="1.0"
  
  xmlns:xs="http://www.w3.org/2001/XMLSchema">

<xs:simpleType name="logicalType">
  <xs:restriction base="xs:string">
     
    <xs:enumeration value="AND"/>
 
    <xs:enumeration value="OR"/>
  </xs:restriction>
</xs:simpleType>

<xs:simpleType name="operationType">
  <xs:restriction base="xs:string">
     
    <xs:enumeration value="EQUAL"/>
 
    <xs:enumeration value="NOT_EQUAL"/>
 
    <xs:enumeration value="IN"/>
 
    <xs:enumeration value="NOT_IN"/>
 
    <xs:enumeration value="LIKE"/>
 
    <xs:enumeration value="NOT_LIKE"/>
 
    <xs:enumeration value="GT"/>
 
    <xs:enumeration value="GTE"/>
 
    <xs:enumeration value="LT"/>
 
    <xs:enumeration value="LTE"/>
 
    <xs:enumeration value="IS_NULL"/>
 
    <xs:enumeration value="IS_NOT_NULL"/>
  </xs:restriction>
</xs:simpleType>

<xs:complexType name="filter">
       <xs:sequence>
              <xs:element name="logical" type="logicalType" minOccurs="0">
              </xs:element>
              <xs:element name="name" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="value" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="operation" type="operationType" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="listConfig">
       <xs:sequence>
              <xs:element name="page" type="xs:int" minOccurs="0">
              </xs:element>
              <xs:element name="rows" type="xs:int" minOccurs="0">
              </xs:element>
              <xs:element name="sidx" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="sord" type="xs:string" minOccurs="0">
              </xs:element>
              <xs:element name="count" type="xs:long" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

<xs:complexType name="listParam">
       <xs:sequence>
              <xs:element name="columns" type="xs:string" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
              <xs:element name="filters" type="filter" minOccurs="0" maxOccurs="unbounded">
              </xs:element>
              <xs:element name="config" type="listConfig" minOccurs="0">
              </xs:element>
      </xs:sequence>
</xs:complexType>

</xs:schema>