<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Display">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="MemberInfo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="LicensePlateNo" type="xs:string" />
            </xs:sequence>
            <xs:attribute name="Id" type="xs:string" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="StationInfo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="StationNo" type="xs:string" />
              <xs:element name="StationName" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="ProductInfo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="ProductNo" type="xs:int" />
              <xs:element name="UnitPrice" type="xs:decimal" />
              <xs:element name="ProductType" type="xs:string" />
              <xs:element name="ProductDiscription" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="PumpInfo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="NozzleId" type="xs:int" />
              <xs:element name="GradeName" type="xs:string" />
            </xs:sequence>
            <xs:attribute name="Id" type="xs:int" use="required" />
          </xs:complexType>
        </xs:element>
        <xs:element name="CompanyContactInfo">
          <xs:complexType>
            <xs:sequence>
              <xs:element name="Tel" type="xs:string" />
              <xs:element name="Address" type="xs:string" />
            </xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name="TrxList">
          <xs:complexType>
            <xs:sequence>
              <xs:element maxOccurs="unbounded" name="Trx">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="TimeStamp">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="StartTime" type="xs:dateTime" />
                          <xs:element name="FinishTime" type="xs:dateTime" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="MemberInfo">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="LicensePlateNo" type="xs:string" />
                        </xs:sequence>
                        <xs:attribute name="Id" type="xs:string" use="required" />
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="FillingInfo">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="PumpId" type="xs:int" />
                          <xs:element name="NozzleId" type="xs:int" />
                          <xs:element name="ProductNo" type="xs:int" />
                          <xs:element name="ProductType" type="xs:string" />
                          <xs:element name="UnitPrice" type="xs:decimal" />
                          <xs:element name="ProductDiscription" type="xs:string" />
                          <xs:element name="Amount" type="xs:decimal" />
                          <xs:element name="AmountPaid" type="xs:decimal" />
                          <xs:element name="Volume" type="xs:decimal" />
                          <xs:element name="NozzleSelected" type="xs:int" />
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                    <xs:element name="NozzleList">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element maxOccurs="unbounded" name="Nozzle">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="NozzleId" type="xs:int" />
                                <xs:element name="Prompt" type="xs:string" />
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                  <xs:attribute name="Id" type="xs:string" use="required" />
                  <xs:attribute name="State" type="TrxStatus" use="required" />
                </xs:complexType>
              </xs:element>
            </xs:sequence>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
      <xs:attribute name="ScreenType" type="ScreenType" use="required" />
      <xs:attribute name="RequestId" type="xs:int" use="required"/>
      <xs:attribute name="Timeout" type="xs:int" />
    </xs:complexType>
  </xs:element>

  <xs:simpleType name="ScreenType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Idle"/>
      <xs:enumeration value="Welcome"/>
      <xs:enumeration value="ShowTrxList"/>
      <xs:enumeration value="TrxResult"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="TrxStatus">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ReadyForFillingStart"/>
      <xs:enumeration value="FillingOngoing"/>
      <xs:enumeration value="PendingForPayment"/>
      <xs:enumeration value="Success"/>
      <xs:enumeration value="Failed"/>
    </xs:restriction>
  </xs:simpleType>

</xs:schema>