<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.pwg.org/schemas/2006/10/sm" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.pwg.org/schemas/2006/10/sm" elementFormDefault="qualified" version="1.07">
	<xs:include schemaLocation="PwgCommon.xsd"/>
	<!--10/08/06 PJZ Reworked dependencies and removed Chameleon-->
	<!--08/07/06   PZ   Moved to new namespace-->
	<!--070606  PJZ Added core namespace-->
	<xs:annotation>
		<xs:documentation source="www.pwg.org">
   PWG Semantic Model v2   

    IEEE/ISTO Printer Working Group (PWG)
    Web-Based Imaging Management Service (WIMS)
    Resource XML Schema

     - version 1.08 - 18 December 2007 -Editors:  Peter Zehler, Ira McDoanald

    Normative References
    --------------------
    [WIMS-PRO] Web-based Imaging Management Service (WIMS)
               (work-in-progress)

    Informative References
    ----------------------
    [IPP-RES] Internet Printing Protocol (IPP): Resource Objects
              (September 2000)
              ftp://ftp.pwg.org/pub/pwg/ipp/new_RES/
                draft-ietf-ipp-get-resource-01.txt

    [RFC2579] Textual Conventions for SMIv2
              (April 1999)
              ftp://ftp.isi.edu/in-notes/rfc2579.txt

    [RFC2911] Internet Printing Protocol/1.1: Model and Semantics
              (September 2000)
              ftp://ftp.isi.edu/in-notes/rfc2911.txt

    [PWG5100.5] Internet Printing Protocol (IPP): Document Object
                (October 2003)
                ftp://ftp.pwg.org/pub/pwg/standards/pwg5100.5.pdf
  </xs:documentation>
	</xs:annotation>
	<!--                                   -->
	<!-- resource element type definitions -->
	<!--                                   -->
	<!-- NOTE:  After PWG 'last call' and formal approval, these WKV -->
	<!--        enums will be moved to std 'PwgWellKnownValues.xsd' -->
	<xs:simpleType name="ResourceStateWKV">
		<xs:restriction base="xs:NMTOKEN">
			<xs:enumeration value="Other"/>
			<xs:enumeration value="Unknown"/>
			<xs:enumeration value="Idle"/>
			<xs:enumeration value="Reserved"/>
			<xs:enumeration value="Processing"/>
			<!-- resource is in other state -->
			<!-- resource is in unknown state -->
			<!-- resource is idle (not reserved by any job) -->
			<!-- (resource may be modified/deleted by authenticated admin) -->
			<!-- see 'idle' - section 4.4.11 [RFC2911] -->
			<!-- resource is currently reserved (by one or more jobs) -->
			<!-- resource extension to IPP Printer object state model -->
			<!-- resource is currently processing (in one or more jobs) -->
			<!-- see 'processing' - section 4.4.11 [RFC2911] -->
			<!-- intentionally omitted 'stopped' - section 4.4.11 [RFC2911] -->
		</xs:restriction>
		<!-- state of this resource -->
		<!-- see IPP printer-state - section 4.4.11 [RFC2911] -->
	</xs:simpleType>
	<!--                              -->
	<!-- resource element definitions -->
	<!--                              -->
	<xs:element name="ResourceId" type="ObjectIdentifier32"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- local unique integer key of this resource -->
	<!-- (across all resource classes) -->
	<!-- see resource-id - section 5.4.3 [IPP-RES] -->
	<xs:element name="ResourceState" type="ResourceStateWKV"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- state of this resource -->
	<!-- see resource-state - section x.x.x [IPP-RES] -->
	<!-- see IPP printer-state - section 4.4.11 [RFC2911] -->
	<xs:element name="ResourcePersistence" type="ObjectPersistenceWKV"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- persistence (life cycle) of this resource -->
	<!-- see 'StorageType' - section 2 [RFC2579] -->
	<xs:element name="ResourceOwnerURI" type="xs:anyURI"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- legacy or WIMS manager URI for owner of this resource -->
	<xs:element name="ResourceOwnerVCard" type="ObjectStringMax"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- vCard/3.0 (based on ITU-T X.520) for owner of this resource -->
	<!-- see vCard/3.0 - vCard MIME Directory Profile [RFC2426] -->
	<xs:element name="ResourceAccessModes" type="ObjectAccessModes"/>
	<!-- REQUIRED - MAY be multi-valued -->
	<!-- access permissions for this resource -->
	<!-- see 'chmod' - POSIX System Interfaces [ISO9945]-->
	<!-- see 'sys/stat.h' - POSIX System Interfaces [ISO9945]-->
	<xs:element name="ResourceCreateDate" type="xs:dateTime"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- date and time when this resource was created/installed -->
	<!-- see resource-create-date-time - section 5.3.5 [IPP-RES] -->
	<xs:element name="ResourceAccessDate" type="xs:dateTime"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- date and time when this resource was last accessed -->
	<xs:element name="ResourceExpireDate" type="xs:dateTime"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- date and time when the lease of this resource will expire -->
	<!-- (i.e., when ResourceState will become 'Unknown') -->
	<xs:element name="ResourceModifyDate" type="xs:dateTime"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- date and time when this resource was last modified -->
	<xs:element name="ResourceInfo" type="ObjectStringLong"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- description of this resource -->
	<!-- see resource-info - section 5.3.3 [IPP-RES] -->
	<xs:element name="ResourceName" type="ObjectStringLong"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- human-readable local name of this resource -->
	<!-- see resource-name - section 5.4.2 [IPP-RES] -->
	<xs:element name="ResourceURI" type="xs:anyURI"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- HTTP or FTP URI of this resource (for access to attributes) -->
	<!-- see resource-name - section 5.4.2 [IPP-RES] -->
	<xs:element name="ResourceJobIds">
		<!-- OPTIONAL - MAY be multi-valued -->
		<!-- list of jobs for which this resource is reserved -->
		<!-- see IPP job-id - section 4.3.2 [RFC2911] -->
		<xs:complexType>
			<xs:sequence>
				<xs:element name="ResourceJobId" type="ObjectPointer32" minOccurs="0" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ResourceCopyright" type="ObjectStringLong"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- human-readable copyright message for this resource -->
	<!-- for example, as required by the resource's usage license -->
	<xs:element name="ResourceVersion" type="ObjectStringLong"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- human-readable version message for this resource -->
	<!-- for example, 'Release 3a-4127' for a ResourceFirmware -->
	<xs:element name="ResourceDocumentFormatSupported" type="ObjectDocumentFormatSupported"/>
	<!-- OPTIONAL - MAY be multi-valued -->
	<!-- document formats (MIME types) supported by this resource -->
	<!-- for example, 'application/pdf' for a ResourceFont -->
	<!-- see resource-document-formats - section 5.3.4 [IPP-RES] -->
	<!-- see document-format - section 9.1.12 [PWG5100.5] -->
	<xs:element name="ResourceDataURI" type="xs:anyURI"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- data source URI of this resource data -->
	<!-- see resource-data-uri - section 5.3.8 [IPP-RES] -->
	<xs:element name="ResourceDataFormat" type="ObjectDocumentFormat"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- data format (MIME type) of this resource data -->
	<!-- see document-format - section 9.1.12 [PWG5100.5] -->
	<xs:element name="ResourceDataFormatVersion" type="ObjectStringLong"/>
	<!-- OPTIONAL - MUST be single-valued -->
	<!-- data format version of this resource data -->
	<!-- see document-format-version - section 9.1.16 [PWG5100.5] -->
	<xs:element name="ResourceDataCompression" type="ObjectDataCompressionWKV"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- data compression (if any) of this resource data -->
	<!-- see resource-data-compression - section 5.3.10 [IPP-RES] -->
	<!-- see IPP compression-supported - section 4.4.32 [RFC2911] -->
	<xs:element name="ResourceDataKOctets" type="ObjectCounter32"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- data size in k-octets of this resource data -->
	<!-- see resource-data-k-octets - section 5.3.9 [IPP-RES] -->
	<xs:element name="ResourceDataPresent" type="xs:boolean"/>
	<!-- REQUIRED - MUST be single-valued -->
	<!-- data present in local cache for this resource data -->
	<!-- see resource-data-present - section 5.3.7 [IPP-RES] -->
	<!--                            -->
	<!-- resource group definitions -->
	<!--                            -->
	<xs:element name="ResourceStatus">
		<!-- ResourceStatus - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ResourceId"/>
				<xs:element ref="ResourceState"/>
				<xs:element ref="ResourcePersistence"/>
				<xs:element ref="ResourceOwnerURI"/>
				<xs:element ref="ResourceOwnerVCard" minOccurs="0"/>
				<xs:element ref="ResourceAccessModes"/>
				<xs:element ref="ResourceCreateDate"/>
				<xs:element ref="ResourceAccessDate" minOccurs="0"/>
				<xs:element ref="ResourceExpireDate" minOccurs="0"/>
				<xs:element ref="ResourceModifyDate" minOccurs="0"/>
				<xs:element ref="VendorExtension" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ResourceData">
		<!-- ResourceData - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ResourceDataURI"/>
				<xs:element ref="ResourceDataFormat"/>
				<xs:element ref="ResourceDataFormatVersion" minOccurs="0"/>
				<xs:element ref="ResourceDataCompression"/>
				<xs:element ref="ResourceDataKOctets"/>
				<xs:element ref="ResourceDataPresent"/>
				<xs:element ref="VendorExtension" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="ResourceDescription">
		<!-- ResourceDescription - group -->
		<xs:complexType>
			<xs:sequence>
				<xs:element ref="ResourceURI" minOccurs="0"/>
				<xs:element ref="ResourceInfo" minOccurs="0"/>
				<xs:element ref="ResourceName" minOccurs="0"/>
				<xs:element ref="ResourceJobIds" minOccurs="0"/>
				<xs:element ref="ResourceCopyright" minOccurs="0"/>
				<xs:element ref="ResourceVersion" minOccurs="0"/>
				<xs:element ref="ResourceDocumentFormatSupported" minOccurs="0"/>
				<xs:element ref="ResourceData" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element ref="VendorExtension" minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<!--                            -->
	<!-- resource class definitions -->
	<!--                            -->
	<xs:complexType name="ResourceFirmware">
		<xs:sequence>
			<xs:element ref="ResourceStatus"/>
			<xs:element ref="ResourceDescription" minOccurs="0"/>
			<xs:element ref="VendorExtension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ResourceFirmware" type="ResourceFirmware"/>
	<!-- firmware resource class -->
	<!-- see resource-type - section 5.4.1 [IPP-RES] -->
	<xs:complexType name="ResourceFont">
		<xs:sequence>
			<xs:element ref="ResourceStatus"/>
			<xs:element ref="ResourceDescription" minOccurs="0"/>
			<xs:element ref="VendorExtension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ResourceFont" type="ResourceFont"/>
	<!-- font resource class -->
	<!-- see resource-type - section 5.4.1 [IPP-RES] -->
	<xs:complexType name="ResourceForm">
		<xs:sequence>
			<xs:element ref="ResourceStatus"/>
			<xs:element ref="ResourceDescription" minOccurs="0"/>
			<xs:element ref="VendorExtension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ResourceForm" type="ResourceForm"/>
	<!-- form resource class -->
	<!-- see resource-type - section 5.4.1 [IPP-RES] -->
	<xs:complexType name="ResourceImage">
		<xs:sequence>
			<xs:element ref="ResourceStatus"/>
			<xs:element ref="ResourceDescription" minOccurs="0"/>
			<xs:element ref="VendorExtension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ResourceImage" type="ResourceImage"/>
	<!-- image resource class -->
	<!-- see resource-type - section 5.4.1 [IPP-RES] -->
	<xs:complexType name="ResourceLogo">
		<xs:sequence>
			<xs:element ref="ResourceStatus"/>
			<xs:element ref="ResourceDescription" minOccurs="0"/>
			<xs:element ref="VendorExtension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ResourceLogo" type="ResourceLogo"/>
	<!-- logo resource class -->
	<!-- see resource-type - section 5.4.1 [IPP-RES] -->
	<xs:complexType name="ResourceSoftware">
		<xs:sequence>
			<xs:element ref="ResourceStatus"/>
			<xs:element ref="ResourceDescription" minOccurs="0"/>
			<xs:element ref="VendorExtension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ResourceSoftware" type="ResourceSoftware"/>
	<!-- software resource class -->
	<!-- see resource-type - section 5.4.1 [IPP-RES] -->
	<!--                     -->
	<!-- resource definition -->
	<!--                     -->
	<xs:complexType name="Resources">
		<xs:sequence>
			<xs:element ref="Resource" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<!-- Resources - set of resources -->
	</xs:complexType>
	<xs:complexType name="Resource">
		<xs:choice minOccurs="0">
			<xs:element ref="ResourceFirmware" minOccurs="0"/>
			<xs:element ref="ResourceFont" minOccurs="0"/>
			<xs:element ref="ResourceForm" minOccurs="0"/>
			<xs:element ref="ResourceImage" minOccurs="0"/>
			<xs:element ref="ResourceLogo" minOccurs="0"/>
			<xs:element ref="ResourceSoftware" minOccurs="0"/>
		</xs:choice>
		<!-- union of resource classes -->
	</xs:complexType>
	<xs:element name="Resources" type="Resources"/>
	<!-- Resources - set of resources -->
	<xs:element name="Resource" type="Resource"/>
	<!-- union of resource classes -->
</xs:schema>
