<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
           xmlns="http://cometsystem.cz/schemas/soapTx5xx_v2.xsd"
           targetNamespace="http://cometsystem.cz/schemas/soapTx5xx_v2.xsd"
           elementFormDefault="qualified">

  <xs:simpleType name="passKeyType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{8}"/>    
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="deviceType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{1,5}"/>    
    </xs:restriction>
  </xs:simpleType>
  
  <xs:simpleType name="valueType">
    <xs:restriction base="xs:string">
      <xs:pattern value="([+-]?[0-9]{1,10})(\.[0-9]{1,10}|())"/>    
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="alarmsType">
    <xs:restriction base="xs:string">
      <xs:pattern value="((no|hi|lo),(no|hi|lo),(no|hi|lo),(no|hi|lo))"/>    
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="compTypeType">
    <xs:restriction base="xs:string">
      <xs:pattern value="((Absolute humidity)|(Specific humidity)|(Mixing proportion)|(Specific enthalpy)|(Dew point)|(n/a))"/>    
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="tempUType">
    <xs:restriction base="xs:string">
      <xs:pattern value="((C)|(F)|(n/a))"/>    
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="pressureUType">
    <xs:restriction base="xs:string">
      <xs:pattern value="((hPa)|(PSI)|(inHg)|(mBar)|(oz/in^2)|(mmHg)|(inH20)|(kPa)|(n/a))"/>    
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="timerType">
    <xs:restriction base="xs:string">
      <xs:pattern value="[0-9]{1,5}"/>    
    </xs:restriction>  
  </xs:simpleType>
  
  <xs:complexType name="InsertTx5xxSampleType">
    <xs:sequence>
      <xs:element name="passKey" type="passKeyType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="device" type="deviceType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="temp" type="valueType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="relHum" type="valueType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="compQuant" type="valueType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="pressure" type="valueType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="alarms" type="alarmsType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="compType" type="compTypeType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="tempU" type="tempUType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="pressureU" type="pressureUType" minOccurs="1" maxOccurs="1"/>
      <xs:element name="timer" type="timerType" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
  </xs:complexType>
  
  <xs:element name="InsertTx5xxSample" type="InsertTx5xxSampleType"/>

</xs:schema>
