<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.pwg.org/schemas/2009/5/sm" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pwg="http://www.pwg.org/schemas/2009/5/sm" targetNamespace="http://www.pwg.org/schemas/2009/5/sm" elementFormDefault="qualified" version="1.76">
	<xs:include schemaLocation="PwgCommon.xsd"/>
	<!--04/14/09 PJZ Updated Namespace-->
	<!--05/30/08 PJZ Moved back to single namespace-->
	<!--05/21/08 PJZ Partial alignment with WS-Scan-->
	<!--10/08/06 PJZ Reworked dependencies and re,oved Chameleon-->
	<!--08/08/06   PJZ moved types to PwgCore that are used by subunits-->
	<!--08/07/06   PZ   Moved to new namespace-->
	<xs:annotation>
		<xs:documentation xml:lang="en">
   PWG Semantic Model v2   

Copyright 2002-2009, IEEE Industry Standards and Technology Organization/PWG - MFD Working Group. 
All rights reserved  

   Editors:  Peter Zehler, Ira McDoanald 
</xs:documentation>
	</xs:annotation>
	<!--                               -->
	<!-- WIMS element type definitions -->
	<!--                               -->
	<!-- NOTE:  After PWG 'last call' and formal approval, these WKV -->
	<!--        enums will be moved to std 'PwgWellKnownValues.xsd' -->
	<xs:complexType name="ObjectAgentPath">
		<xs:sequence>
			<xs:element name="ObjectAgentReference" type="ObjectAgentReference" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<!-- path to legacy or WIMS agent nearest to a managed entity -->
		<!-- for support of multi-level WIMS Proxy configurations -->
	</xs:complexType>
	<xs:complexType name="ObjectAgentPaths">
		<xs:sequence>
			<xs:element name="ObjectAgentPath" type="ObjectAgentPath" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectAgentPathSupported">
		<xs:sequence>
			<xs:element name="ObjectAgentPath" type="ObjectAgentPath" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectAgentReference">
		<xs:sequence>
			<xs:element name="ObjectAgentId" type="pwg:ObjectIdentifier32" minOccurs="0"/>
			<xs:element name="ObjectAgentName" type="pwg:ObjectStringLong" minOccurs="0"/>
			<xs:element name="ObjectAgentURI" type="xs:anyURI" minOccurs="0"/>
		</xs:sequence>
		<!-- see printer-uri-supported - section 4.4.1 [RFC2911] -->
	</xs:complexType>
	<xs:complexType name="ObjectAgentReferences">
		<xs:sequence>
			<xs:element name="ObjectAgentReference" type="ObjectAgentReference" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectAgentSupported">
		<xs:sequence>
			<xs:element name="ObjectAgentReference" type="ObjectAgentReference" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectElement">
		<xs:sequence>
			<xs:element name="ObjectElementName" type="ObjectQualifiedNamePattern"/>
			<xs:element name="ObjectElementValue" type="xs:anyType" minOccurs="0"/>
		</xs:sequence>
		<!-- standard or extension element (and value) from any namespace -->
	</xs:complexType>
	<xs:complexType name="ObjectManagerReference">
		<xs:sequence>
			<xs:element name="ObjectManagerId" type="pwg:ObjectIdentifier32" minOccurs="0"/>
			<xs:element name="ObjectManagerName" type="pwg:ObjectStringLong" minOccurs="0"/>
			<xs:element name="ObjectManagerURI" type="xs:anyURI" minOccurs="0"/>
		</xs:sequence>
		<!-- see printer-name - section 4.4.4 [RFC2911] -->
		<!-- see printer-uri-supported - section 4.4.1 [RFC2911] -->
	</xs:complexType>
	<xs:complexType name="ObjectManagerReferences">
		<xs:sequence>
			<xs:element name="ObjectManagerReference" type="ObjectManagerReference" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectManagerSupported">
		<xs:sequence>
			<xs:element name="ObjectManagerReference" type="ObjectManagerReference" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="ObjectNaturalLanguage">
		<xs:restriction base="xs:string">
			<xs:minLength value="0"/>
			<xs:maxLength value="63"/>
		</xs:restriction>
		<!-- OPTIONAL - MUST be single-valued -->
		<!-- natural language for text elements on this object -->
		<!-- see IETF 'Tags for the Identification of Languages' [RFC3066] -->
	</xs:simpleType>
	<xs:complexType name="ObjectPrinterReference">
		<xs:sequence>
			<xs:element name="ObjectPrinterId" type="pwg:ObjectIdentifier32" minOccurs="0"/>
			<xs:element name="ObjectPrinterName" type="pwg:ObjectStringLong" minOccurs="0"/>
			<xs:element name="ObjectPrinterURI" type="xs:anyURI" minOccurs="0"/>
		</xs:sequence>
		<!-- see printer-uri-supported - section 4.4.1 [RFC2911] -->
	</xs:complexType>
	<xs:complexType name="ObjectPrinterReferences">
		<xs:sequence>
			<xs:element name="ObjectPrinterReference" type="ObjectPrinterReference" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="ObjectQualifiedNamePattern">
		<xs:restriction base="xs:NMTOKEN">
			<xs:pattern value="\w+:[\w_\-\.]+"/>
		</xs:restriction>
		<!-- fully qualified name of element or object, for example -->
		<!-- 'pwg-pwg:Printer.PrinterDescription.PrinterUriSupported' -->
		<!-- see KeywordNsExtensionPattern - 'PwgWellKnownValues.xsd' -->
	</xs:simpleType>
	<xs:complexType name="ObjectStateReasons">
		<xs:sequence>
			<xs:element name="ObjectStateReason" type="pwg:ObjectStringShort" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="ObjectSystemReference">
		<xs:sequence>
			<xs:element name="ObjectSystemId" type="pwg:ObjectIdentifier32" minOccurs="0"/>
			<xs:element name="ObjectSystemName" type="pwg:ObjectStringLong" minOccurs="0"/>
			<xs:element name="ObjectSystemURI" type="xs:anyURI" minOccurs="0"/>
		</xs:sequence>
		<!-- see WIMS Object Model - section 4 [WIMS-PRO] -->
		<!-- see printer-name - section 4.4.4 [RFC2911] -->
		<!-- see printer-uri-supported - section 4.4.1 [RFC2911] -->
	</xs:complexType>
	<xs:complexType name="ObjectSystemReferences">
		<xs:sequence>
			<xs:element name="ObjectSystemReference" type="ObjectSystemReference" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="WIMSActionTypeWKV">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="GetElements"/>
			<xs:enumeration value="GetResources"/>
			<xs:enumeration value="SubscribeForAlerts"/>
			<xs:enumeration value="UnsubscribeForAlerts"/>
			<xs:enumeration value="UpdateSchedule"/>
			<xs:enumeration value="DeleteResources"/>
			<xs:enumeration value="SetElements"/>
			<xs:enumeration value="SetResources"/>
			<xs:enumeration value="Vendor"/>
			<xs:enumeration value="Disable"/>
			<xs:enumeration value="Enable"/>
			<xs:enumeration value="Pause"/>
			<xs:enumeration value="Resume"/>
			<xs:enumeration value="PurgeJobs"/>
			<xs:enumeration value="Restart"/>
			<xs:enumeration value="Shutdown"/>
			<xs:enumeration value="Startup"/>
			<!-- see WIMS Monitoring Actions - section 6.3 [WIMS-PRO] -->
			<!-- read elements from target objects in resulting Report in -->
			<!-- ExecuteAction response or SendReports request to manager -->
			<!-- read resources from target objects in resulting Report in -->
			<!-- ExecuteAction response or SendReports request to manager -->
			<!-- create subscription for alerts confirmed in Report in -->
			<!-- ExecuteAction response or SendReports request to manager -->
			<!-- cancel one or more subscriptions confirmed in Report in -->
			<!-- ExecuteAction response or SendReports request to manager -->
			<!-- wakeup WIMS agent and WIMS agent confirmed in Report in -->
			<!-- ExecuteAction response or SendReports request to manager -->
			<!-- and WIMS Agent must GetSchedule query to manager -->
			<!-- see WIMS Management Actions - section 6.4 [WIMS-PRO] -->
			<!-- delete resources from target objects confirmed in Report in -->
			<!-- ExecuteAction response or SendReports request to manager -->
			<!-- write elements to target objects confirmed in Report in -->
			<!-- ExecuteAction response or SendReports request to manager -->
			<!-- write resources to target objects confirmed in Report in -->
			<!-- ExecuteAction response or SendReports request to manager -->
			<!-- vendor extension action confirmed in Report in -->
			<!-- ExecuteAction response or SendReports request to manager -->
			<!-- see ActionVendorAction for specific action type -->
			<!-- see WIMS Administration Actions - section 6.5 [WIMS-PRO] -->
			<!-- stop input jobs and data -->
			<!-- start input jobs and data -->
			<!-- stop output jobs and data -->
			<!-- start output jobs and data -->
			<!-- remove all jobs (regardless of state) -->
			<!-- restart target objects (reboot software) -->
			<!-- shutdown target objects (terminate software) -->
			<!-- startup target objects (new software) -->
		</xs:restriction>
		<!-- WIMS action type -->
	</xs:simpleType>
	<xs:complexType name="WIMSManagedEntityReference">
		<xs:choice minOccurs="0">
			<xs:element name="WIMSAgentReference" type="ObjectAgentReference" minOccurs="0"/>
			<xs:element name="WIMSDeviceReference" type="pwg:ObjectDeviceReference" minOccurs="0"/>
			<xs:element name="WIMSManagerReference" type="ObjectManagerReference" minOccurs="0"/>
			<xs:element name="WIMSPrinterReference" type="ObjectPrinterReference" minOccurs="0"/>
			<xs:element name="WIMSServiceReference" type="ObjectServiceReference" minOccurs="0"/>
			<xs:element name="WIMSSystemReference" type="ObjectSystemReference" minOccurs="0"/>
		</xs:choice>
		<!-- reference to Semantic Model or WIMS managed entity -->
		<!-- see PWG Semantic Model -->
		<!-- see WIMS Object Model - section 4 [WIMS-PRO] -->
	</xs:complexType>
	<xs:simpleType name="WIMSManagedEntityStateWKV">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="Other"/>
			<xs:enumeration value="Unknown"/>
			<xs:enumeration value="Idle"/>
			<xs:enumeration value="Processing"/>
			<xs:enumeration value="Stopped"/>
			<xs:enumeration value="Testing"/>
			<xs:enumeration value="Down"/>
			<!-- managed entity is in other state -->
			<!-- managed entity is in unknown state -->
			<!-- managed entity is idle (no active jobs) -->
			<!-- managed entity is currently processing -->
			<!-- (in one or more jobs) -->
			<!-- managed entity is currently stopped -->
			<!-- (in one or more jobs - human intervention is required) -->
			<!-- managed entity is testing or in maintenance mode -->
			<!-- managed entity is down (unavailable for jobs) -->
		</xs:restriction>
		<!-- WIMS managed entity state -->
		<!-- see printer-state - section 4.4.11 [RFC2911] -->
		<!-- see hrDeviceStatus in [RFC2790] -->
	</xs:simpleType>
	<xs:simpleType name="WIMSManagedEntityTypeWKV">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="Agent"/>
			<xs:enumeration value="Device"/>
			<xs:enumeration value="Manager"/>
			<xs:enumeration value="Printer"/>
			<xs:enumeration value="Service"/>
			<xs:enumeration value="System"/>
			<!-- WIMS Agent -->
			<!-- WIMS Device -->
			<!-- generalized IPP/1.1 [RFC2911] Output Device -->
			<!-- see also Printer MIB v2 [RFC3805] -->
			<!-- WIMS Manager -->
			<!-- IPP/1.1 [RFC2911] and PWG Semantic Model/1.0 Printer -->
			<!-- WIMS Service -->
			<!-- generalized IPP/1.1 [RFC2911] Printer -->
			<!-- WIMS System -->
			<!-- generalized Printer MIB v2 [RFC3805] System Controller -->
		</xs:restriction>
		<!-- Semantic Model or WIMS managed entity type -->
		<!-- see PWG Semantic Model -->
		<!-- see WIMS Object Model - section 4 [WIMS-PRO] -->
	</xs:simpleType>
	<xs:simpleType name="WIMSObjectTypeWKV">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="Agent"/>
			<xs:enumeration value="Alert"/>
			<xs:enumeration value="Device"/>
			<xs:enumeration value="Manager"/>
			<xs:enumeration value="Report"/>
			<xs:enumeration value="Resource"/>
			<xs:enumeration value="Schedule"/>
			<xs:enumeration value="Service"/>
			<xs:enumeration value="Subscription"/>
			<xs:enumeration value="System"/>
			<!-- WIMS Agent -->
			<!-- WIMS Alert -->
			<!-- WIMS Device -->
			<!-- generalized IPP/1.1 [RFC2911] Output Device -->
			<!-- see also Printer MIB v2 [RFC3805] -->
			<!-- WIMS Manager -->
			<!-- WIMS Report -->
			<!-- WIMS Resource -->
			<!-- WIMS Schedule -->
			<!-- WIMS Service -->
			<!-- generalized IPP/1.1 [RFC2911] Printer -->
			<!-- WIMS Subscription -->
			<!-- WIMS System -->
			<!-- generalized Printer MIB v2 [RFC3805] System Controller -->
		</xs:restriction>
		<!-- WIMS object type -->
		<!-- see WIMS Object Model - section 4 [WIMS-PRO] -->
	</xs:simpleType>
	<xs:simpleType name="WIMSOperationTypeWKV">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="GetSchedule"/>
			<xs:enumeration value="SendAlerts"/>
			<xs:enumeration value="SendReports"/>
			<xs:enumeration value="RegisterForManagement"/>
			<xs:enumeration value="UnregisterForManagement"/>
			<xs:enumeration value="BeginManagement"/>
			<xs:enumeration value="EndManagement"/>
			<xs:enumeration value="SetSchedule"/>
			<xs:enumeration value="ExecuteAction"/>
			<!-- WIMS Agent Interface operations (agent to manager) -->
			<!-- WIMS Manager Interface operations (manager to agent) -->
		</xs:restriction>
		<!-- WIMS operation type -->
		<!-- see WIMS Agent Interface - section 6.1 [WIMS-PRO] -->
		<!-- see WIMS Manager Interface - section 6.2 [WIMS-PRO] -->
	</xs:simpleType>
	<!--                          -->
	<!-- WIMS element definitions -->
	<!--                          -->
	<xs:element name="WIMSActionsSupported">
		<!-- list of actions supported by this WIMS agent or manager -->
		<!-- see WIMS Interface Definition - section 6 [WIMS-PRO] -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="WIMSActionType" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="WIMSActionType" type="WIMSActionTypeWKV"/>
	<!-- action type supported by this WIMS agent or manager -->
	<xs:element name="WIMSObjectsSupported">
		<!-- list of object types supported by this WIMS agent or manager -->
		<!-- see WIMS Object Model - section 4 [WIMS-PRO] -->
		<xs:complexType>
			<xs:sequence>
				<xs:element name="WIMSObjectType" type="WIMSObjectTypeWKV" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="WIMSObjectType" type="WIMSObjectTypeWKV"/>
	<!-- object type supported by this WIMS agent or manager -->
	<xs:element name="WIMSOperationsSupported">
		<!-- list of operations supported by this WIMS agent or manager -->
		<!-- see WIMS Interface Definition - section 6 [WIMS-PRO] -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="WIMSOperationType" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="WIMSOperationType" type="WIMSOperationTypeWKV"/>
	<!-- operation supported by this WIMS agent or manager -->
</xs:schema>

