<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.pwg.org/schemas/2009/4/sm" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:pwg="http://www.pwg.org/schemas/2009/4/sm" targetNamespace="http://www.pwg.org/schemas/2009/4/sm" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.70">
	<xs:include schemaLocation="AvailableResource.xsd"/>
	<xs:include schemaLocation="Subunits.xsd"/>
	<!--04/14/09 PJZ Updated Namespace-->
	<!--09/01/08 PJZ Changed ResidentResources to AvailableResources-->
	<!--07/17/08 PJZ Changed Resources to ResidentResources-->
	<!--05/30/08 PJZ Move back to single namespace-->
	<!--05/21/08 PJZ Partial alignment with WS-Scan-->
	<!--10/08/06 PJZ Reworked dependencies and removed Chameleon-->
	<!--08/08/06 PJZ Changed namespace-->
	<!-- This schema requires an include of 'Resource.xsd' to compile -->
	<!-- This schema requires an include of 'Schedule.xsd' to compile -->
	<xs:include schemaLocation="./Schedule.xsd"/>
	<!-- This schema requires an include of 'Subunits.xsd' to compile -->
	<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>
	<!--                                -->
	<!-- alert element type definitions -->
	<!--                                -->
	<!-- NOTE:  After PWG 'last call' and formal approval, these WKV -->
	<!--        enums will be moved to std 'PwgWellKnownValues.xsd' -->
	<xs:simpleType name="NotifySubscriptionStateWKV">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="Other"/>
			<xs:enumeration value="Unknown"/>
			<xs:enumeration value="Idle"/>
			<xs:enumeration value="Processing"/>
			<!-- subscription is in other state -->
			<!-- subscription is in unknown state -->
			<!-- subscription is idle (not generating notifications) -->
			<!-- see 'idle' - section 4.4.11 [RFC2911] -->
			<!-- subscription is processing (now generating notifications) -->
			<!-- see 'processing' - section 4.4.11 [RFC2911] -->
			<!-- intentionally omitted 'stopped' - section 4.4.11 [RFC2911] -->
		</xs:restriction>
		<!-- state of this subscription -->
		<!-- see IPP printer-state - section 4.4.11 [RFC2911] -->
	</xs:simpleType>
	<xs:simpleType name="NotifyJobStateWKV">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="Other"/>
			<xs:enumeration value="Unknown"/>
			<xs:enumeration value="Pending"/>
			<xs:enumeration value="PendingHeld"/>
			<xs:enumeration value="Processing"/>
			<xs:enumeration value="ProcessingStopped"/>
			<xs:enumeration value="Canceled"/>
			<xs:enumeration value="Aborted"/>
			<xs:enumeration value="Completed"/>
			<!-- job is in other state -->
			<!-- job is in unknown state -->
			<!-- job is currently pending (not processing) -->
			<!-- job is currently pending and held (not processing) -->
			<!-- job is currently processing -->
			<!-- job is currently stopped (while processing) -->
			<!-- job has been canceled by user or administrator -->
			<!-- job has been aborted by system -->
			<!-- job has completed successfully (or with warnings or errors) -->
		</xs:restriction>
		<!-- job state -->
		<!-- see job-state - section 4.3.7 [RFC2911] -->
		<!-- see jmJobState in [RFC2707] -->
	</xs:simpleType>
	<xs:simpleType name="NotifyDocumentStateWKV">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="Other"/>
			<xs:enumeration value="Unknown"/>
			<xs:enumeration value="Pending"/>
			<xs:enumeration value="Processing"/>
			<xs:enumeration value="Canceled"/>
			<xs:enumeration value="Aborted"/>
			<xs:enumeration value="Completed"/>
			<!-- document is in other state -->
			<!-- document is in unknown state -->
			<!-- document is currently pending (not processing) -->
			<!-- document is currently processing -->
			<!-- document has been canceled by user or administrator -->
			<!-- document has been aborted by system -->
			<!-- document has completed successfully (or warnings/errors) -->
		</xs:restriction>
		<!-- document state -->
		<!-- see document-state - section 9.1.25 [PWG5100.5] -->
	</xs:simpleType>
	<!--                           -->
	<!-- alert element definitions -->
	<!--                           -->
	<xs:element name="NotifyElement" type="ObjectElement"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- standard or extension element (and value) from any namespace -->
	<xs:element name="NotifySubscriptionId" type="pwg:ObjectIdentifier32"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- unique integer key of this subscription -->
	<!-- see notify-subscription-id - section 5.4.1 [RFC3995] -->
	<xs:element name="NotifySubscriptionState" type="NotifySubscriptionStateWKV"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- subscription state -->
	<!-- see printer-state - section 4.4.11 [RFC2911] -->
	<xs:element name="NotifyPersistence" type="pwg:ObjectPersistenceWKV"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- persistence (life cycle) of this subscription -->
	<xs:element name="NotifyOwnerURI" type="xs:anyURI"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- URI of legacy or WIMS manager owner of this subscription -->
	<!-- see notify-subscriber-user-name - section 5.4.7 [RFC3995] -->
	<xs:element name="NotifyRecipientURI" type="xs:anyURI"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- URI of legacy or WIMS manager to receive notifications -->
	<!-- (target of all later notifications for this subscription) -->
	<!-- see notify-recipient-uri - section 5.3.1 [RFC3995] -->
	<xs:element name="NotifyAgentReferences" type="ObjectAgentReferences"/>
	<!-- OPTIONAL - MAY be multi-valued -->
	<!-- list of references to legacy or WIMS agents to be monitored -->
	<!-- e.g., 'pwg-wims://example.com' (a WIMS agent) -->
	<!-- or 'snmp://example.com:162' (an SNMP trap generator) -->
	<xs:element name="NotifyCreateDate" type="xs:dateTime"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- date and time when this subscription was created -->
	<xs:element name="NotifyExpireDate" type="xs:dateTime"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- date and time when the lease of this subscription will expire -->
	<!-- (i.e., when NotifySubscriptionState will become 'Unknown') -->
	<!-- see notify-lease-expiration-time - section 5.4.3 [RFC3995] -->
	<xs:element name="NotifyResourceReference" type="ObjectResourceReference"/>
	<!-- REQUIRED - MUST be single-valued -->
	<xs:element name="NotifySequenceNumber" type="pwg:ObjectCounter32"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- sequence number of most recent event for subscription -->
	<!-- see notify-sequence-number - section 5.4.2 [RFC3995] -->
	<xs:element name="NotifySubunitReference" type="pwg:SubunitReference"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- see SubunitReference in Subunits XML schema -->
	<xs:element name="NotifySubunitStates" type="pwg:SubunitStates"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- see SubunitStates in Subunits XML schema -->
	<xs:element name="NotifyJobReference" type="pwg:ObjectJobReference"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- reference to job for this notification -->
	<!-- see notify-job-id - section 5.4.6 [RFC3995] -->
	<!-- see job-id - section 4.3.2 [RFC2911] -->
	<!-- see jmJobIndex in [RFC2707] -->
	<!-- see jmGeneralJobSetIndex in [RFC2707] -->
	<xs:element name="NotifyElements">
		<!-- OPTIONAL - MAY be multi-valued -->
		<!-- list of requested elements without values (in subscription) -->
		<!-- list of delivered elements with values (in notification) -->
		<!-- see notify-attributes - section 5.3.3 [RFC3995] -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NotifyElement" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="NotifyUserData" type="pwg:ObjectStringShort"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- opaque user data to be delivered with notifications -->
	<!-- see notify-user-data - section 5.3.4 [RFC3995] -->
	<xs:element name="NotifyText" type="pwg:ObjectStringMax"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- human-readable text to be delivered with notifications -->
	<!-- see notify-text - section 8.2 [RFC3995] -->
	<xs:element name="NotifyCharset" type="pwg:ObjectStringShort"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- charset for text delivered in notifications -->
	<!-- see notify-charset - section 5.3.5 [RFC3995] -->
	<xs:element name="NotifyNaturalLanguage" type="pwg:ObjectStringShort"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- natural language for text delivered in notifications -->
	<!-- see notify-natural-language - section 5.3.6 [RFC3995] -->
	<!-- see IETF 'Tags for the Identification of Languages' [RFC3066] -->
	<xs:element name="NotifyTimeInterval" type="pwg:ObjectCounter32"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- minimum time interval (in seconds) between notifications -->
	<!-- see notify-time-interval - section 5.3.8 [RFC3995] -->
	<xs:element name="NotifyAgentReference" type="ObjectAgentReference"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- reference to legacy or WIMS agent for this notification -->
	<!-- see notify-printer-uri - section 5.4.5 [RFC3995] -->
	<xs:element name="NotifyAgentDate" type="xs:dateTime"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- date and time when this notification was generated -->
	<!-- see printer-up-time - section 9.1 [RFC3995] -->
	<!-- see printer-current-time - section 9.1 [RFC3995] -->
	<xs:element name="NotifyManagedEntityType" type="WIMSManagedEntityTypeWKV"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- type of managed entity for notification, for example, -->
	<!-- 'Agent' (WIMS Agent object) or 'Printer' (PWG Printer object) -->
	<xs:element name="NotifyManagedEntityReference" type="WIMSManagedEntityReference"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- reference to managed entity for notification, for example, -->
	<!-- 'pwg-wims://example.com' (WIMS Agent object) -->
	<!-- (a value of '*' is a wildcard and specifies any object -->
	<!-- of the type specified by NotifyManagedEntityType) -->
	<xs:element name="NotifyManagedEntityState" type="WIMSManagedEntityStateWKV"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- managed entity state -->
	<!-- see printer-state - section 4.4.11 [RFC2911] -->
	<xs:element name="NotifyManagedEntityStateReasons" type="ObjectStateReasons"/>
	<!-- OPTIONAL - MAY be multi-valued -->
	<!-- list of managed entity state reasons -->
	<!-- see printer-state-reasons - section 4.4.12 [RFC2911] -->
	<!-- see hrPrinterStatus in [RFC2790] -->
	<!-- see hrPrinterDetectedErrorState in [RFC2790] -->
	<xs:element name="NotifyJobState" type="NotifyJobStateWKV"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- job state -->
	<!-- see job-state - section 4.3.7 [RFC2911] -->
	<xs:element name="NotifyJobStateReasons" type="ObjectStateReasons"/>
	<!-- OPTIONAL - MAY be multi-valued -->
	<!-- list of job state reasons -->
	<!-- see job-state-reasons - section 4.3.8 [RFC2911] -->
	<xs:element name="NotifyDocumentNumber" type="pwg:ObjectPointer32"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- see document-number - section 9.1.23 [RFC5100.5] -->
	<!-- see sheetCompletedDocumentNumber in [RFC2707] -->
	<xs:element name="NotifyDocumentState" type="NotifyDocumentStateWKV"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- document state -->
	<!-- see document-state - section 9.1.25 [PWG5100.5] -->
	<xs:element name="NotifyDocumentStateReasons" type="ObjectStateReasons"/>
	<!-- OPTIONAL - MAY be multi-valued -->
	<!-- list of document state reasons -->
	<!-- see document-state-reasons - section 9.1.27 [PWG5100.5] -->
	<!--                         -->
	<!-- alert group definitions -->
	<!--                         -->
	<xs:element name="AlertBasic">
		<!-- AlertBasic - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="PlanStatus" minOccurs="0"/>
				<xs:element ref="PlanAction" minOccurs="0"/>
				<xs:element ref="NotifySubscriptionId"/>
				<xs:element ref="NotifySequenceNumber"/>
				<xs:element ref="NotifyRecipientURI"/>
				<xs:element ref="NotifyEvents"/>
				<xs:element ref="NotifyElements" minOccurs="0"/>
				<xs:element ref="NotifyUserData" minOccurs="0"/>
				<xs:element ref="NotifyText" minOccurs="0"/>
				<xs:element ref="NotifyNaturalLanguage" minOccurs="0"/>
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="AlertScope">
		<!-- AlertScope - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NotifyAgentReference"/>
				<xs:element ref="NotifyAgentDate"/>
				<xs:element ref="NotifyManagedEntityType"/>
				<xs:element ref="NotifyManagedEntityReference"/>
				<xs:element ref="NotifyManagedEntityState"/>
				<xs:element ref="NotifyManagedEntityStateReasons" minOccurs="0"/>
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="AlertJob">
		<!-- AlertJob - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NotifyJobReference"/>
				<xs:element ref="NotifyJobState"/>
				<xs:element ref="NotifyJobStateReasons" minOccurs="0"/>
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="AlertDocument">
		<!-- AlertDocument - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NotifyDocumentNumber"/>
				<xs:element ref="NotifyDocumentState"/>
				<xs:element ref="NotifyDocumentStateReasons" minOccurs="0"/>
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="AlertResource">
		<!-- AlertResource - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NotifyResourceReference"/>
				<xs:element ref="AvailableResourceState"/>
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="AlertSubunit">
		<!-- AlertSubunit - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NotifySubunitReference"/>
				<xs:element ref="NotifySubunitStates"/>
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="AlertSubscription">
		<!-- AlertSubscription - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NotifySubscriptionId"/>
				<xs:element ref="NotifySubscriptionState"/>
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!--                  -->
	<!-- alert definition -->
	<!--                  -->
	<xs:complexType name="Alerts">
		<xs:sequence>
			<xs:element ref="Alert" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<!-- Alerts - set of alerts -->
	</xs:complexType>
	<xs:complexType name="Alert">
		<xs:sequence>
			<xs:element ref="AlertBasic"/>
			<xs:element ref="AlertScope"/>
			<xs:element ref="AlertJob" minOccurs="0"/>
			<xs:element ref="AlertDocument" minOccurs="0"/>
			<xs:element ref="AlertResource" minOccurs="0"/>
			<xs:element ref="AlertSubunit" minOccurs="0"/>
			<xs:element ref="AlertSubscription" minOccurs="0"/>
			<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<!-- Alert - content for an event notification -->
		<!-- see Event Notification Content - section 9 [RFC3995] -->
	</xs:complexType>
	<xs:element name="Alert" type="Alert"/>
	<!-- Alert - content for an event notification -->
	<!-- see Event Notification Content - section 9 [RFC3995] -->
	<!--                                -->
	<!-- subscription group definitions -->
	<!--                                -->
	<xs:element name="SubscriptionStatus">
		<!-- SubscriptionStatus - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NotifySubscriptionId"/>
				<xs:element ref="NotifySubscriptionState"/>
				<xs:element ref="NotifyPersistence"/>
				<xs:element ref="NotifyOwnerURI"/>
				<xs:element ref="NotifyRecipientURI"/>
				<xs:element ref="NotifyAgentReferences"/>
				<xs:element ref="NotifyCreateDate"/>
				<xs:element ref="NotifyExpireDate" minOccurs="0"/>
				<xs:element ref="NotifySequenceNumber"/>
				<xs:element ref="NotifyTimeInterval" minOccurs="0"/>
				<xs:element ref="NotifyJobReference" minOccurs="0"/>
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="SubscriptionDescription">
		<!-- SubscriptionDescription - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="NotifyEvents"/>
				<xs:element ref="NotifyElements"/>
				<xs:element ref="NotifyCharset" minOccurs="0"/>
				<xs:element ref="NotifyNaturalLanguage" minOccurs="0"/>
				<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!--                         -->
	<!-- subscription definition -->
	<!--                         -->
	<xs:complexType name="Subscriptions">
		<xs:sequence>
			<xs:element ref="Subscription" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<!-- Subscriptions - set of subscriptions -->
	</xs:complexType>
	<xs:complexType name="Subscription">
		<xs:sequence>
			<xs:element ref="SubscriptionStatus"/>
			<xs:element ref="SubscriptionDescription"/>
			<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<!-- Subscription - subscription for event notifications -->
		<!-- see Subscription Object - section 5 [RFC3995] -->
	</xs:complexType>
	<xs:element name="Subscription" type="Subscription"/>
	<!-- Subscription - subscription for event notifications -->
	<!-- see Subscription Object - section 5 [RFC3995] -->
</xs:schema>

