<?xml version="1.0" encoding="UTF-8" ?> 
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified">

 <xs:element name="ServiceXML">
  <xs:annotation>
   <xs:documentation>Instrument Service XML Metadata</xs:documentation>
  </xs:annotation>
  <xs:complexType>
   <xs:attribute name="source" type="xs:string" use="required"/>
   <xs:attribute name="value" type="xs:string" use="required"/>
  </xs:complexType>
 </xs:element>

 <xs:element name="ServiceState">
  <xs:annotation>
   <xs:documentation>Instrument Service State</xs:documentation>
  </xs:annotation>
   <xs:attribute name="source" type="xs:string" use="required"/>
  <xs:complexType>
   <xs:sequence>
    <xs:element ref="ServiceStateAttribute" minOccurs="0" maxOccurs="unbounded" />
    <xs:element ref="DeviceSpecificStateAttribute" minOccurs="0" maxOccurs="unbounded" /> 
   </xs:sequence>
  </xs:complexType>
 </xs:element>


 <xs:element name="ServiceStateAttribute">
  <xs:complexType>
   <xs:attribute name="source" type="xs:string" use="required"/>
   <xs:attribute name="type" type="xs:string" use="required"/>
   <xs:attribute name="value" type="xs:string" use="required"/>
  </xs:complexType> 
 </xs:element>

 <xs:element name="DeviceSpecificStateAttribute">
  <xs:complexType>
   <xs:attribute name="source" type="xs:string" use="required"/>
   <xs:attribute name="type" type="xs:string" use="required"/>
   <xs:attribute name="value" type="xs:string" use="required"/>
  </xs:complexType> 
 </xs:element>


 <xs:element name="DeviceState">
  <xs:complexType>
   <xs:attribute name="value" type="xs:string" use="required"/>
  </xs:complexType> 
 </xs:element> 

</xs:schema>