<?xml version="1.0" encoding="utf-8" ?>
<xsd:schema 
	xmlns:xsd="http://www.w3.org/2001/XMLSchema" 
	xmlns="urn:schemas-upnp-org:lp:DeviceListInfo"
	targetNamespace="urn:schemas-upnp-org:lp:DeviceListInfo"
	elementFormDefault="qualified">
	<xsd:annotation>
		<xsd:documentation xml:lang="en">
      DeviceListInfo
      This is for Version 1.0 of the UPnP Low Power specification.
      Copyright 2004-2006 Contributing Members of the UPnP Forum. All rights reserved.
    </xsd:documentation>
	</xsd:annotation>
	<xsd:element name="DeviceListInfo">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="DeviceInfo" minOccurs="0" maxOccurs="unbounded">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="DeviceFriendlyName" type="xsd:string" />
							<xsd:element name="DDDURI" type="xsd:string" />
							<xsd:element name="UUID" type="UUIDType" />
							<xsd:element name="DeviceType" type="xsd:string" />
							<xsd:element name="Service" minOccurs="0" maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="ServiceType" type="xsd:string" />
										<xsd:element name="ServiceID" type="xsd:string" />
									</xsd:sequence>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="EmbeddedDeviceInfo" minOccurs="0" maxOccurs="unbounded">
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element name="DDDURI" type="xsd:string" />
										<xsd:element name="UUID" type="UUIDType" />
										<xsd:element name="DeviceType" type="xsd:string" />
										<xsd:element name="EmbeddedService" minOccurs="0" maxOccurs="unbounded">
											<xsd:complexType>
												<xsd:sequence>
													<xsd:element name="ServiceType" type="xsd:string" />
													<xsd:element name="ServiceID" type="xsd:string" />
												</xsd:sequence>
											</xsd:complexType>
										</xsd:element>
									</xsd:sequence>
								</xsd:complexType>
							</xsd:element>
							<xsd:element name="PowerState" minOccurs="1" maxOccurs="1">
								<xsd:simpleType>
									<xsd:restriction base="xsd:integer">
										<xsd:minInclusive value="1" />
										<xsd:maxInclusive value="7" />
									</xsd:restriction>
								</xsd:simpleType>
							</xsd:element>
							<xsd:element name="SleepPeriod" type="xsd:integer" />
							<xsd:element name="ProxyWakeupPossible">
								<xsd:simpleType>
									<xsd:restriction base="xsd:string">
										<xsd:enumeration value="Yes" />
										<xsd:enumeration value="No" />
									</xsd:restriction>
								</xsd:simpleType>
							</xsd:element>
							<xsd:element name="WakeupMethod">
								<xsd:complexType>
									<xsd:sequence>
										<xsd:element ref="BearerWakeupMethod" minOccurs="0" maxOccurs="unbounded" />
										<xsd:element ref="NonBearerWakeupMethod" minOccurs="0" maxOccurs="unbounded" />
									</xsd:sequence>
								</xsd:complexType>
							</xsd:element>
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:simpleType name="UUIDType">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="([0-9a-fA-F][ 0-9a-fA-F ]){4}-([0-9a-fA-F ][ 0-9a-fA-F]){2}-([0-9a-fA-F ][ 0-9a-fA-F ]){2}-([0-9a-fA-F ][ 0-9a-fA-F ]){2}-([0-9a-fA-F ][ 0-9a-fA-F]){6}" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="BearerWakeupMethod">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element name="IanaTechnologyType" type="xsd:integer" minOccurs="0" />
				<xsd:element name="WakeupPattern" type="xsd:string" />
				<xsd:element name="AdditionalBearerInfo">
					<xsd:complexType>
						<xsd:sequence>
							<xsd:element name="Address" type="xsd:string" minOccurs="0" />
							<xsd:element name="Bearer_Info" type="xsd:string" />
						</xsd:sequence>
					</xsd:complexType>
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="NonBearerWakeupMethod">
			<xsd:complexType>
				<xsd:sequence>
					<xsd:element name="BearerType" type="NonBearer" />
					<xsd:element name="VendorNonBearerInfo" type="xsd:string" />
				</xsd:sequence>
			</xsd:complexType>
		</xsd:element>
	
	<!-- Define the types of Non-bearers -->
	<xsd:simpleType name="NonBearer">
			<xsd:restriction base="xsd:string">
				<xsd:enumeration value="Infrared" />
				<xsd:enumeration value="NFC" />
				<!-- The types of non-bearers are not complete and more enumeration values may follow-->
			</xsd:restriction>
		</xsd:simpleType>
</xsd:schema>
