<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://www.vitalab.tuwien.ac.at/vimocos/reachability" targetNamespace="http://www.vitalab.tuwien.ac.at/vimocos/reachability" elementFormDefault="qualified">
	<xs:element name="TopStatus">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="topType" type="TopType" minOccurs="0" maxOccurs="1"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="SubStatusReachable">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="subTypeReachable" type="SubTypeReachable" minOccurs="0" maxOccurs="1"/>
				<xs:element name="humanReadableStatus" type="xs:string" minOccurs="0" maxOccurs="1"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="SubStatusUnreachable">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="subTypeUnreachable" type="SubTypeUnreachable" minOccurs="0" maxOccurs="1"/>
				<xs:element name="humanReadableStatus" type="xs:string" minOccurs="0" maxOccurs="1"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	
	<xs:element name="Devices">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="device" type="Device" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="Device">
		<xs:sequence>
			<xs:element name="deviceName" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="deviceId" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="deviceStatus" type="DeviceStatus" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="CommCapabilities">
		<xs:complexType>
			<xs:sequence>
			<xs:element name="commCapability" type="CommCapability" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="CommCapability">
		<xs:sequence>
			<xs:element name="commName" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="commId" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="commEndpointAddress" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="commType" type="CommType" minOccurs="0" maxOccurs="1"/>
			<xs:element name="commStatus" type="CommStatus" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>
	
	<xs:simpleType name="TopType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="REACHABLE"/>
			<xs:enumeration value="UNREACHABLE"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SubTypeReachable">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ONLINE"/>
			<xs:enumeration value="ASYNC COMM OK"/>
			<xs:enumeration value="SYNC COMM OK"/>
			<xs:enumeration value="ASYNC AND SYNC OK"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="SubTypeUnreachable">
		<xs:restriction base="xs:string">
			<xs:enumeration value="OFFLINE"/>
			<xs:enumeration value="USE ASYNC COMM"/>
			<xs:enumeration value="IN A CALL"/>
			<xs:enumeration value="IN A MEETING"/>
			<xs:enumeration value="OUT FOR LUNCH"/>
			<xs:enumeration value="OUT OF OFFICE"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="DeviceStatus">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ON"/>
			<xs:enumeration value="OFF"/>
			<xs:enumeration value="UNKNOWN"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CommStatus">
		<xs:restriction base="xs:string">
			<xs:enumeration value="IN USE"/>
			<xs:enumeration value="NOT IN USE"/>
			<xs:enumeration value="UNKNOWN"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="CommType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ASYNC"/>
			<xs:enumeration value="SYNC"/>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>

