<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <xsd:element name="regQuery">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:group maxOccurs="1" minOccurs="1" ref="contents"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="userID">
        <xsd:simpleType>
            <xsd:restriction base="xsd:string"/>
        </xsd:simpleType>
    </xsd:element>
    <xsd:element name="query">
        <xsd:complexType>
            <xsd:sequence>
                <xsd:group maxOccurs="1" minOccurs="1" ref="criteria"/>
                <xsd:group maxOccurs="1" minOccurs="1" ref="return"/>
            </xsd:sequence>
        </xsd:complexType>
    </xsd:element>
    <xsd:element name="operator">
        <xsd:simpleType>
            <xsd:restriction base="xsd:string">
                <xsd:enumeration value="AND"/>
                <xsd:enumeration value="OR"/>
                <xsd:enumeration value="NOT"/>
                <xsd:enumeration value="LESSTHAN"/>
                <xsd:enumeration value="GREATERTHAN"/>
                <xsd:enumeration value="DIFFERENCE"/>
                <xsd:enumeration value="AVERAGE"/>
                <xsd:enumeration value="CONE"/>
                <xsd:enumeration value="EQUALS"/>
            </xsd:restriction>
        </xsd:simpleType>
    </xsd:element>
    <xsd:element name="field">
        <xsd:simpleType>
            <xsd:restriction base="xsd:string"/>
        </xsd:simpleType>
    </xsd:element>
    <xsd:element name="value">
        <xsd:simpleType>
            <xsd:restriction base="xsd:string"/>
        </xsd:simpleType>
    </xsd:element>
    <xsd:group name="contents">
        <xsd:sequence>
            <xsd:element maxOccurs="1" minOccurs="1" ref="userID"/>
            <xsd:element maxOccurs="1" minOccurs="1" ref="query"/>
        </xsd:sequence>
    </xsd:group>
    <xsd:group name="nameValuePairs">
        <xsd:sequence>
            <xsd:element maxOccurs="1" minOccurs="1" ref="field"/>
            <xsd:element maxOccurs="1" minOccurs="1" ref="value"/>
        </xsd:sequence>
    </xsd:group>
    <xsd:group name="criteria">
        <xsd:sequence>
            <xsd:element maxOccurs="1" minOccurs="1" ref="operator"/>
            <xsd:group maxOccurs="1" minOccurs="1" ref="nameValuePairs"/>
        </xsd:sequence>
    </xsd:group>
    <xsd:group name="return">
        <xsd:sequence>
            <xsd:element maxOccurs="unbounded" minOccurs="0" ref="field"/>
        </xsd:sequence>
    </xsd:group>
</xsd:schema>
