<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns="http://www.pwg.org/schemas/2006/10/ScanService" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:scan="http://www.pwg.org/schemas/2006/10/ScanService" xmlns:pwg="http://www.pwg.org/schemas/2006/10/sm" xmlns:counters="http://www.pwg.org/schemas/2006/10/Counters" targetNamespace="http://www.pwg.org/schemas/2006/10/ScanService" elementFormDefault="qualified" version="1.07">
	<xs:import namespace="http://www.pwg.org/schemas/2006/10/Counters" schemaLocation="Counter.xsd"/>
	<xs:import namespace="http://www.pwg.org/schemas/2006/10/sm" schemaLocation="DocumentTypes.xsd"/>
	<xs:import namespace="http://www.pwg.org/schemas/2006/10/sm" schemaLocation="JobTypes.xsd"/>
	<xs:import namespace="http://www.pwg.org/schemas/2006/10/sm" schemaLocation="ServiceTypes.xsd"/>
	<xs:import namespace="http://www.pwg.org/schemas/2006/10/sm" schemaLocation="Subunits.xsd"/>
	<xs:import namespace="http://www.pwg.org/schemas/2006/10/sm" schemaLocation="PwgCommon.xsd"/>
	<xs:import namespace="http://www.pwg.org/schemas/2006/10/sm" schemaLocation="Capabilities.xsd"/>
	<!--09/13/07 PJZ Reworked default and supported-->
	<!--10/08/06 PJZ Reworked dependencies and removed Chameleon-->
	<!--07/20/06 PJZ Updated based on PWG input-->
	<!--10/04/06 PJZ Created-->
	<xs:annotation>
		<xs:documentation xml:lang="en">
   PWG Semantic Model v2   

Copyright 2002-2008, IEEE Industry Standards and Technology Organization/ScanService Working Group. 
All rights reserved  

    - version 1.08 - 18 December 2007 -Editors:  Peter Zehler, Ira McDoanald 
</xs:documentation>
	</xs:annotation>
	<!--Some common Scan things -->
	<!-- ScanDocumentStatus - group -->
	<xs:complexType name="ScanDocumentStatus">
		<xs:complexContent>
			<xs:extension base="pwg:ImagingDocumentStatus">
				<xs:sequence>
					<!-- Scan Document status references here -->
					<!-- Scan Document counters from service counters definition -->
					<xs:element ref="counters:ScanDocumentCounters" minOccurs="0"/>
					<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
		<!-- ScanDocumentStatus - group -->
	</xs:complexType>
	<xs:element name="ScanDocumentStatus" type="ScanDocumentStatus"/>
	<!--ScanTicket - groups-->
	<xs:complexType name="ScanJobTicket">
		<xs:sequence>
			<xs:element ref="ScanJobDescription" minOccurs="0"/>
			<xs:element ref="ScanJobProcessing" minOccurs="0"/>
			<xs:element ref="ScanDocumentProcessing" minOccurs="0"/>
			<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ScanJobTicket" type="ScanJobTicket"/>
	<xs:element name="ScanJobReceipt" type="ScanJobTicket"/>
	<xs:element name="DefaultScanTicket" type="ScanJobTicket"/>
	<xs:complexType name="ScanDocumentTicket">
		<xs:sequence>
			<xs:element ref="ScanDocumentDescription" minOccurs="0"/>
			<xs:element ref="ScanDocumentProcessing" minOccurs="0"/>
			<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ScanDocumentTicket" type="ScanDocumentTicket"/>
	<xs:element name="ScanDocumentReceipt" type="ScanDocumentTicket"/>
	<!--DefaultScanTicket - group -->
	<!-- ScanDocumentDescription - group -->
	<xs:complexType name="ScanDocumentDescription">
		<xs:complexContent>
			<xs:extension base="pwg:ImagingDocumentDescription">
				<xs:sequence>
					<!-- Scan Document description references here -->
					<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
		<!-- ScanDocumentDescription - group -->
	</xs:complexType>
	<xs:element name="ScanDocumentDescription" type="ScanDocumentDescription"/>
	<!-- ScanDocuments - set of Scan Documents -->
	<xs:complexType name="ScanDocuments">
		<xs:sequence>
			<xs:element ref="ScanDocument" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<!-- ScanDocuments - set of Scan Documents -->
	</xs:complexType>
	<xs:element name="ScanDocuments" type="ScanDocuments"/>
	<!-- ScanDocument - object -->
	<xs:complexType name="ScanDocument">
		<xs:sequence>
			<xs:element ref="ScanDocumentStatus"/>
			<xs:element ref="ScanDocumentTicket" minOccurs="0"/>
			<xs:element name="ScanDocumentReceipt" minOccurs="0">
				<xs:complexType/>
			</xs:element>
			<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
		</xs:sequence>
		<!-- ScanDocument - object -->
	</xs:complexType>
	<xs:element name="ScanDocument" type="ScanDocument"/>
	<!-- ScanJobStatus - group -->
	<xs:complexType name="ScanJobStatus">
		<xs:complexContent>
			<xs:extension base="pwg:ImagingJobStatus">
				<xs:sequence>
					<!-- Scan job status references here -->
					<!-- Scan job counters from service counters definition -->
					<xs:element ref="counters:ScanJobCounters" minOccurs="0"/>
					<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
		<!-- ScanJobStatus - group -->
	</xs:complexType>
	<xs:element name="ScanJobStatus" type="ScanJobStatus"/>
	<!-- ScanJobDescription - group -->
	<xs:complexType name="ScanJobDescription">
		<xs:complexContent>
			<xs:extension base="pwg:ImagingJobDescription">
				<xs:sequence>
					<!-- Scan job description references here -->
					<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
		<!-- ScanJobDescription - group -->
	</xs:complexType>
	<xs:element name="ScanJobDescription" type="ScanJobDescription"/>
	<!-- ScanJobProcessing - group -->
	<xs:complexType name="ScanJobProcessing">
		<xs:complexContent>
			<xs:extension base="pwg:ImagingJobProcessing">
				<xs:sequence>
					<!-- Scan job processing references here -->
					<xs:element ref="pwg:BatchMode" minOccurs="0"/>
					<xs:element ref="pwg:DocumentOutputMode" minOccurs="0"/>
					<xs:element ref="pwg:MultipleSetOriginal" minOccurs="0"/>
					<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
		<!-- ScanJobProcessing - group -->
	</xs:complexType>
	<xs:element name="ScanJobProcessing" type="ScanJobProcessing"/>
	<!-- ScanDocumentProcessing - group -->
	<xs:complexType name="ScanDocumentProcessing">
		<xs:complexContent>
			<xs:extension base="pwg:ImagingDocumentProcessing">
				<xs:sequence>
					<!-- Scan document processing references here -->
					<xs:element ref="pwg:AutoSkewCorrection" minOccurs="0"/>
					<xs:element ref="pwg:Compression" minOccurs="0"/>
					<xs:element ref="pwg:CompressionFactor" minOccurs="0"/>
					<xs:element ref="pwg:Destination"/>
					<xs:element ref="pwg:DocumentFormat" minOccurs="0"/>
					<xs:element name="Exposure" minOccurs="0">
						<xs:complexType>
							<xs:choice minOccurs="0">
								<xs:element ref="pwg:AutoExposure" minOccurs="0"/>
								<xs:sequence>
									<xs:element ref="pwg:Brightness" minOccurs="0"/>
									<xs:element ref="pwg:Contrast" minOccurs="0"/>
									<xs:element ref="pwg:Sharpness" minOccurs="0"/>
									<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
								</xs:sequence>
							</xs:choice>
						</xs:complexType>
					</xs:element>
					<xs:element ref="pwg:InputSource" minOccurs="0"/>
					<xs:element ref="pwg:Magnification" minOccurs="0"/>
					<xs:element ref="pwg:OriginalType" minOccurs="0"/>
					<xs:element ref="pwg:OutputDocumentColor" minOccurs="0"/>
					<xs:element ref="pwg:Resolution" minOccurs="0"/>
					<xs:element ref="pwg:Rotation" minOccurs="0"/>
					<xs:element ref="pwg:ScanRegions" minOccurs="0"/>
					<xs:element ref="pwg:Sides" minOccurs="0"/>
					<xs:element ref="pwg:SinglePageFile" minOccurs="0"/>
					<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
		<!-- ScanDocumentProcessing - group -->
	</xs:complexType>
	<xs:element name="ScanDocumentProcessing" type="ScanDocumentProcessing"/>
	<!-- ScanJobs - set of Scan jobs -->
	<xs:complexType name="ScanJobs">
		<xs:sequence>
			<xs:element ref="ScanJob" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<!-- ScanJobs - set of Scan jobs -->
	</xs:complexType>
	<xs:element name="ActiveJobs" type="ScanJobs"/>
	<xs:element name="JobHistory" type="ScanJobs"/>
	<!-- ScanJob - object -->
	<xs:complexType name="ScanJob">
		<xs:sequence>
			<xs:element name="ScanJobReceipt" type="ScanJobTicket" minOccurs="0"/>
			<xs:element ref="ScanJobStatus"/>
			<xs:element ref="ScanJobTicket" minOccurs="0"/>
			<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
		</xs:sequence>
		<!-- ScanJob - object -->
	</xs:complexType>
	<xs:element name="ScanJob">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ScanJob">
					<xs:sequence>
						<xs:element ref="ScanDocuments" minOccurs="0"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<!-- ScanServiceStatus - group -->
	<xs:complexType name="ScanServiceStatus">
		<xs:complexContent>
			<xs:extension base="pwg:ServiceStatus">
				<xs:sequence>
					<xs:element ref="counters:ScanServiceCounters" minOccurs="0"/>
					<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
		<!-- ScanServiceStatus - group -->
	</xs:complexType>
	<xs:element name="ScanServiceStatus" type="ScanServiceStatus"/>
	<!-- ScanServiceDescription - group -->
	<xs:complexType name="ScanServiceDescription">
		<xs:complexContent>
			<xs:extension base="pwg:ServiceDescription">
				<xs:sequence>
					<!-- Scan service description references -->
					<xs:element name="ScanJobTimeout" type="xs:int" minOccurs="0"/>
					<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
		<!-- ScanServiceDescription - group -->
	</xs:complexType>
	<xs:element name="ScanServiceDescription" type="ScanServiceDescription"/>
	<!-- ScanService Capabilities - group -->
	<xs:complexType name="ScanDocumentProcessingCapabilitiesType">
		<xs:annotation>
			<xs:documentation>ISSUE: (GP): I did not see a capability for the “light source” this can be changed in scanning and can be done for the document type (paper, transparencies, negatives).</xs:documentation>
		</xs:annotation>
		<xs:complexContent>
			<xs:extension base="pwg:DocumentProcessingCapabilitiesType">
				<xs:sequence>
					<xs:element name="AutoSkewCorrection" type="xs:boolean" minOccurs="0"/>
					<xs:element name="Compression" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="AllowedValue" type="pwg:CompressionWKV" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="CompressionFactor" type="pwg:RangeOfInt" minOccurs="0"/>
					<xs:element name="DocumentFormat" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="AllowedValue" type="pwg:DocumentFormatWKV" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Exposure" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="AutoExposure" type="xs:boolean" minOccurs="0"/>
								<xs:element name="Brightness" type="xs:boolean" minOccurs="0"/>
								<xs:element name="Contrast" type="xs:boolean" minOccurs="0"/>
								<xs:element name="Sharpness" type="xs:boolean" minOccurs="0"/>
								<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="InputSource" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="AllowedValues" type="pwg:InputSourceWKV" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Magnification" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Height" type="pwg:RangeOfInt"/>
								<xs:element name="Width" type="pwg:RangeOfInt"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="OriginalType" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="AllowedValue" type="pwg:OriginalTypeWKV" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="OutputDocumentColor" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="BitDepth" minOccurs="0">
									<xs:complexType>
										<xs:sequence>
											<xs:element name="AllowedValue" type="xs:int" maxOccurs="unbounded"/>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
								<xs:element name="ColorEncoding" minOccurs="0">
									<xs:complexType>
										<xs:sequence>
											<xs:element name="AllowedValue" type="pwg:ColorEncodingWKV" maxOccurs="unbounded"/>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
								<xs:element name="ColorSpace" minOccurs="0">
									<xs:complexType>
										<xs:sequence>
											<xs:element name="AllowedValue" type="pwg:ColorSpaceWKV" maxOccurs="unbounded"/>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
								<xs:element name="SamplesPerPixel" minOccurs="0">
									<xs:complexType>
										<xs:sequence>
											<xs:element name="AllowedValue" type="xs:int" maxOccurs="unbounded"/>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
								<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="OutputDocumentSize" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Height" type="pwg:RangeOfInt"/>
								<xs:element name="Width" type="pwg:RangeOfInt"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Resolution" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="CrossFeedDir">
									<xs:complexType>
										<xs:sequence>
											<xs:element name="AllowedValue" type="xs:int" maxOccurs="unbounded"/>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
								<xs:element name="FeedDir">
									<xs:complexType>
										<xs:sequence>
											<xs:element name="AllowedValue" type="xs:int" maxOccurs="unbounded"/>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
								<xs:element name="Units">
									<xs:complexType>
										<xs:sequence>
											<xs:element name="AllowedValue" type="xs:int" maxOccurs="unbounded"/>
										</xs:sequence>
									</xs:complexType>
								</xs:element>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Rotation" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="AllowedValue" type="pwg:RotationWKV" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="ScanRegion" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="Height" type="pwg:RangeOfInt"/>
								<xs:element name="Width" type="pwg:RangeOfInt"/>
								<xs:element name="XOffset" type="pwg:RangeOfInt" minOccurs="0"/>
								<xs:element name="YOffset" type="pwg:RangeOfInt" minOccurs="0"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="Sides" minOccurs="0">
						<xs:complexType>
							<xs:sequence>
								<xs:element name="AllowedValues" type="pwg:SidesWKV" maxOccurs="unbounded"/>
							</xs:sequence>
						</xs:complexType>
					</xs:element>
					<xs:element name="SinglePageFile" minOccurs="0"/>
					<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ScanDocumentProcessingCapabilities" type="ScanDocumentProcessingCapabilitiesType"/>
	<xs:complexType name="ScanJobDescriptionCapabilitiesType">
		<xs:complexContent>
			<xs:extension base="pwg:ImagingJobDescriptionCapabilitiesType">
				<xs:sequence>
					<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ScanJobDescriptionCapabilities" type="ScanJobDescriptionCapabilitiesType"/>
	<xs:complexType name="ScanJobProcessingCapabilitiesType">
		<xs:complexContent>
			<xs:extension base="pwg:JobProcessingCapabilitiesType"/>
		</xs:complexContent>
	</xs:complexType>
	<xs:element name="ScanJobProcessingCapabilities">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ScanJobProcessingCapabilitiesType">
					<xs:sequence>
						<xs:element name="BatchMode" type="xs:boolean" minOccurs="0"/>
						<xs:element name="DocumentOutputMode" minOccurs="0">
							<xs:complexType>
								<xs:sequence>
									<xs:element name="AllowedValue" maxOccurs="unbounded">
										<xs:simpleType>
											<xs:union memberTypes="pwg:DocumentOutputModeWKV pwg:KeywordNsExtensionPattern"/>
										</xs:simpleType>
									</xs:element>
								</xs:sequence>
							</xs:complexType>
						</xs:element>
						<xs:element name="MultipleSetOriginal" type="xs:boolean" minOccurs="0"/>
						<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
	<xs:complexType name="ScanServiceCapabilities">
		<xs:sequence>
			<xs:element ref="ScanDocumentProcessingCapabilities" minOccurs="0"/>
			<xs:element ref="ScanJobDescriptionCapabilities" minOccurs="0"/>
			<xs:element ref="ScanJobProcessingCapabilities" minOccurs="0"/>
			<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ScanServiceCapabilities" type="ScanServiceCapabilities"/>
	<!-- ScanServiceProcessingReady - group -->
	<xs:element name="ScanCapabilitiesReady" type="ScanServiceCapabilities"/>
	<!-- ScanServices - set of Scan services -->
	<xs:complexType name="ScanServices">
		<xs:sequence>
			<xs:element ref="ScanService" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
		<!-- ScanServices - set of Scan services -->
	</xs:complexType>
	<xs:element name="ScanServices" type="ScanServices"/>
	<!-- ScanService - object -->
	<xs:complexType name="ScanService">
		<xs:sequence>
			<xs:element ref="DefaultScanTicket" minOccurs="0"/>
			<xs:element ref="ScanServiceCapabilities" minOccurs="0"/>
			<xs:element name="ScanServiceConfiguration" type="pwg:Subunits" minOccurs="0"/>
			<xs:element ref="ScanServiceDescription" minOccurs="0"/>
			<xs:element ref="ScanServiceStatus"/>
			<xs:element ref="pwg:VendorExtension" minOccurs="0"/>
		</xs:sequence>
		<!-- ScanService - object -->
	</xs:complexType>
	<xs:element name="ScanService">
		<xs:complexType>
			<xs:complexContent>
				<xs:extension base="ScanService">
					<xs:sequence>
						<xs:element ref="ActiveJobs" minOccurs="0"/>
						<xs:element ref="JobHistory" minOccurs="0"/>
					</xs:sequence>
				</xs:extension>
			</xs:complexContent>
		</xs:complexType>
	</xs:element>
</xs:schema>
