6.2.3 wscn

 <?xml version="1.0" encoding="UTF-8"?>
 <xs:schema targetNamespace="http://schemas.microsoft.com/windows/2006/08/wdp/scan"
            xmlns:wscn="http://schemas.microsoft.com/windows/2006/08/wdp/scan"
            xmlns:xs="http://www.w3.org/2001/XMLSchema"
            elementFormDefault="qualified">
  
     <xs:annotation>
         <xs:documentation>Scan Ticket Element definition</xs:documentation>
     </xs:annotation>
     <xs:complexType name="ScanTicketType">
         <xs:sequence>
             <xs:element name="JobDescription" type="wscn:JobDescriptionType"/>
             <xs:element name="DocumentParameters" type="wscn:DocumentParametersType" 
                 minOccurs="0"/>
             <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
  
     <xs:annotation>
         <xs:documentation>Job Description Element definition</xs:documentation>
     </xs:annotation>
     <xs:complexType name="JobDescriptionType">
         <xs:sequence>
             <xs:element name="JobName" type="wscn:String255ExtType"/>
             <xs:element name="JobOriginatingUserName" type="wscn:String255ExtType"/>
             <xs:element name="JobInformation" type="wscn:String255ExtType" minOccurs="0"/>
             <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
  
     <xs:annotation>
         <xs:documentation>Document Parameters Element Definition</xs:documentation>
     </xs:annotation>
     <xs:complexType name="DocumentParametersType">
         <xs:sequence>
             <xs:element name="Format" type="wscn:DocumentFormatType" minOccurs="0"/>
             <xs:element name="CompressionQualityFactor" 
                 type="wscn:CompressionQualityFactorType" minOccurs="0"/>
             <xs:element name="ImagesToTransfer" type="wscn:ImagesToTransferType" 
                 minOccurs="0"/>
             <xs:element name="InputSource" type="wscn:DocumentInputSourceType" 
                  minOccurs="0"/>
             <xs:element name="FilmScanMode" type="wscn:FilmScanModeType" minOccurs="0"/>
             <xs:element name="ContentType" type="wscn:ContentTypeTicketType" minOccurs="0"/>
             <xs:element name="InputSize" type="wscn:DocumentInputSizeType" minOccurs="0"/>
             <xs:element name="Exposure" type="wscn:ScanExposureType" minOccurs="0"/>
             <xs:element name="Scaling" type="wscn:ScalingType" minOccurs="0"/>
             <xs:element name="Rotation" type="wscn:RotationType" minOccurs="0"/>
             <xs:element name="MediaSides" type="wscn:MediaSidesType" minOccurs="0"/>
             <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
  
     <xs:annotation>
         <xs:documentation>Document Parameters specific semantic elements</xs:documentation>
     </xs:annotation>
     <xs:complexType name="DocumentFormatType">
         <xs:simpleContent>
             <xs:extension base="wscn:DocumentFormatExtType">
                 <xs:attribute ref="wscn:MustHonor"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="DocumentFormatExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:DocumentFormatBaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="DocumentFormatBaseType">
         <xs:union memberTypes="wscn:DocumentFormatWKVType wscn:MimeExtensionPatternType"/>
     </xs:simpleType>
     <xs:simpleType name="DocumentFormatWKVType">
         <xs:restriction base="xs:NMTOKEN">
             <xs:maxLength value="255"/>
             <xs:enumeration value="dib"/>
             <xs:enumeration value="exif"/>
             <xs:enumeration value="jbig"/>
             <xs:enumeration value="jfif"/>
             <xs:enumeration value="jpeg2k"/>
             <xs:enumeration value="pdf-a"/>
             <xs:enumeration value="png"/>
             <xs:enumeration value="tiff-single-uncompressed"/>
             <xs:enumeration value="tiff-single-g4"/>
             <xs:enumeration value="tiff-single-g3mh"/>
             <xs:enumeration value="tiff-single-jpeg-tn2"/>
             <xs:enumeration value="tiff-multi-uncompressed"/>
             <xs:enumeration value="tiff-multi-g4"/>
             <xs:enumeration value="tiff-multi-g3mh"/>
             <xs:enumeration value="tiff-multi-jpeg-tn2"/>
             <xs:enumeration value="xps"/>
         </xs:restriction>
     </xs:simpleType>
  
     <xs:complexType name="CompressionQualityFactorType">
         <xs:simpleContent>
             <xs:extension base="wscn:CompressionQualityFactorExtType">
                 <xs:attribute ref="wscn:MustHonor"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="CompressionQualityFactorExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:CompressionQualityFactorBaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="CompressionQualityFactorBaseType">
         <xs:restriction base="xs:int">
             <xs:minInclusive value="0"/>
             <xs:maxInclusive value="100"/>
         </xs:restriction>
     </xs:simpleType>
  
     <xs:complexType name="ImagesToTransferType">
         <xs:simpleContent>
             <xs:extension base="wscn:IntZeroExtType">
                 <xs:attribute ref="wscn:MustHonor"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
  
     <xs:complexType name="DocumentInputSourceType">
         <xs:simpleContent>
             <xs:extension base="wscn:DocumentInputSourceExtType">
                 <xs:attribute ref="wscn:MustHonor"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="DocumentInputSourceExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:DocumentInputSourceBaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="DocumentInputSourceBaseType">
         <xs:union memberTypes="wscn:DocumentInputSourceWKVType 
             wscn:KeywordNsExtensionPatternType"/>
     </xs:simpleType>
     <xs:simpleType name="DocumentInputSourceWKVType">
         <xs:restriction base="xs:NMTOKEN">
             <xs:maxLength value="255"/>
             <xs:enumeration value="ADF"/>
             <xs:enumeration value="ADFDuplex"/>
             <xs:enumeration value="Film"/>
             <xs:enumeration value="Platen"/>
         </xs:restriction>
     </xs:simpleType>
  
     <xs:complexType name="FilmScanModeType">
         <xs:simpleContent>
             <xs:extension base="wscn:FilmScanModeExtType">
                 <xs:attribute ref="wscn:MustHonor"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="FilmScanModeExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:FilmScanModeBaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="FilmScanModeBaseType">
         <xs:union memberTypes="wscn:FilmScanModeWKVType wscn:KeywordNsExtensionPatternType"/>
     </xs:simpleType>
     <xs:simpleType name="FilmScanModeWKVType">
         <xs:restriction base="xs:NMTOKEN">
             <xs:maxLength value="255"/>
             <xs:enumeration value="NotApplicable"/>
             <xs:enumeration value="ColorSlideFilm"/>
             <xs:enumeration value="ColorNegativeFilm"/>
             <xs:enumeration value="BlackandWhiteNegativeFilm"/>
         </xs:restriction>
     </xs:simpleType>
  
     <xs:complexType name="ContentTypeTicketType">
         <xs:simpleContent>
             <xs:extension base="wscn:ContentTypeExtType">
                 <xs:attribute ref="wscn:MustHonor"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="ContentTypeExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:ContentTypeBaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="ContentTypeBaseType">
         <xs:union memberTypes="wscn:ContentTypeWKVType wscn:KeywordNsExtensionPatternType"/>
     </xs:simpleType>
     <xs:simpleType name="ContentTypeWKVType">
         <xs:restriction base="xs:NMTOKEN">
             <xs:maxLength value="255"/>
             <xs:enumeration value="Auto"/>
             <xs:enumeration value="Text"/>
             <xs:enumeration value="Photo"/>
             <xs:enumeration value="Halftone"/>
             <xs:enumeration value="Mixed"/>
         </xs:restriction>
     </xs:simpleType>
  
     <xs:complexType name="DocumentInputSizeType">
         <xs:choice>
             <xs:element name="DocumentSizeAutoDetect" type="wscn:BoolExtType"/>
             <xs:element name="InputMediaSize" type="wscn:DimensionsType"/>
         </xs:choice>
         <xs:attribute ref="wscn:MustHonor"/>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
     <xs:complexType name="DimensionsType">
         <xs:sequence>
             <xs:element name="Width" type="wscn:IntOneExtType"/>
             <xs:element name="Height" type="wscn:IntOneExtType"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
  
     <xs:complexType name="ScanExposureType">
         <xs:choice>
             <xs:element name="AutoExposure" type="wscn:BoolExtType"/>
             <xs:element name="ExposureSettings" type="wscn:ExposureSettingsType"/>
         </xs:choice>
         <xs:attribute ref="wscn:MustHonor"/>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
     <xs:complexType name="ExposureSettingsType">
         <xs:sequence>
             <xs:element name="Contrast" type="wscn:Adjustment1000Type" minOccurs="0"/>
             <xs:element name="Brightness" type="wscn:Adjustment1000Type" minOccurs="0"/>
             <xs:element name="Sharpness" type="wscn:Adjustment100Type" minOccurs="0"/>
             <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
     <xs:complexType name="Adjustment1000Type">
         <xs:simpleContent>
             <xs:extension base="wscn:Adjustment1000BaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="Adjustment1000BaseType">
         <xs:restriction base="xs:int">
             <xs:minInclusive value="-1000"/>
             <xs:maxInclusive value="1000"/>
         </xs:restriction>
     </xs:simpleType>
     <xs:complexType name="Adjustment100Type">
         <xs:simpleContent>
             <xs:extension base="wscn:Adjustment100BaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="Adjustment100BaseType">
         <xs:restriction base="xs:int">
             <xs:minInclusive value="-100"/>
             <xs:maxInclusive value="100"/>
         </xs:restriction>
     </xs:simpleType>
  
     <xs:complexType name="ScalingType">
         <xs:sequence>
             <xs:element name="ScalingWidth" type="wscn:ScalingRangeType"/>
             <xs:element name="ScalingHeight" type="wscn:ScalingRangeType"/>
         </xs:sequence>
         <xs:attribute ref="wscn:MustHonor"/>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
     <xs:complexType name="ScalingRangeType">
         <xs:simpleContent>
             <xs:extension base="wscn:ScalingRangeBaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="ScalingRangeBaseType">
         <xs:restriction base="xs:int">
             <xs:minInclusive value="1"/>
             <xs:maxInclusive value="1000"/>
         </xs:restriction>
     </xs:simpleType>
  
     <xs:complexType name="RotationType">
         <xs:simpleContent>
             <xs:extension base="wscn:RotationExtType">
                 <xs:attribute ref="wscn:MustHonor"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="RotationExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:RotationBaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="RotationBaseType">
         <xs:union memberTypes="wscn:RotationWKVType wscn:KeywordNsExtensionPatternType"/>
     </xs:simpleType>
     <xs:simpleType name="RotationWKVType">
         <xs:restriction base="xs:NMTOKEN">
             <xs:enumeration value="0"/>
             <xs:enumeration value="90"/>
             <xs:enumeration value="180"/>
             <xs:enumeration value="270"/>
         </xs:restriction>
     </xs:simpleType>
  
     <xs:complexType name="MediaSidesType">
         <xs:sequence>
             <xs:element name="MediaFront" type="wscn:MediaSideType"/>
             <xs:element name="MediaBack" type="wscn:MediaSideType" minOccurs="0"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
  
     <xs:complexType name="MediaSideType">
         <xs:sequence>
             <xs:element name="ScanRegion" type="wscn:ScanRegionType" minOccurs="0"/>
             <xs:element name="ColorProcessing" type="wscn:ColorJobType" minOccurs="0"/>
             <xs:element name="Resolution" type="wscn:ResolutionPairExtType" minOccurs="0"/>
             <xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
  
     <xs:complexType name="ScanRegionType">
         <xs:sequence>
             <xs:element name="ScanRegionXOffset" type="wscn:OffsetExtType" minOccurs="0"/>
             <xs:element name="ScanRegionYOffset" type="wscn:OffsetExtType" minOccurs="0"/>
             <xs:element name="ScanRegionWidth" type="wscn:DimensionExtType"/>
             <xs:element name="ScanRegionHeight" type="wscn:DimensionExtType"/>
         </xs:sequence>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
     <xs:complexType name="OffsetExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:IntZeroExtType">
                 <xs:attribute ref="wscn:MustHonor"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="DimensionExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:IntOneExtType">
                 <xs:attribute ref="wscn:MustHonor"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
  
     <xs:complexType name="ColorJobType">
         <xs:simpleContent>
             <xs:extension base="wscn:ColorConfigType">
                 <xs:attribute ref="wscn:MustHonor"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="ColorConfigType">
         <xs:simpleContent>
             <xs:extension base="wscn:ColorConfigBaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="ColorConfigBaseType">
         <xs:union memberTypes="wscn:ColorWKVType wscn:KeywordNsExtensionPatternType"/>
     </xs:simpleType>
     <xs:simpleType name="ColorWKVType">
         <xs:restriction base="xs:NMTOKEN">
             <xs:enumeration value="BlackAndWhite1"/>
             <xs:enumeration value="Grayscale4"/>
             <xs:enumeration value="Grayscale8"/>
             <xs:enumeration value="Grayscale16"/>
             <xs:enumeration value="RGB24"/>
             <xs:enumeration value="RGB48"/>
             <xs:enumeration value="RGBa32"/>
             <xs:enumeration value="RGBa64"/>
         </xs:restriction>
     </xs:simpleType>
  
     <xs:complexType name="ResolutionPairExtType">
         <xs:sequence>
             <xs:element name="Width" type="wscn:IntOneExtType"/>
             <xs:element name="Height" type="wscn:IntOneExtType" minOccurs="0"/>
         </xs:sequence>
         <xs:attribute ref="wscn:MustHonor"/>
         <xs:anyAttribute namespace="##other" processContents="lax"/>
     </xs:complexType>
  
     <!-- Keyword extension federated by namespaces -->
     <xs:simpleType name="KeywordNsExtensionPatternType">
         <xs:restriction base="xs:NMTOKEN">
             <xs:pattern value="\w+:[\w_\-\.]+" />
         </xs:restriction>
     </xs:simpleType>
     <!-- Media type Keyword extension federated by MIME type names -->
     <xs:simpleType name="MimeExtensionPatternType">
         <xs:restriction base="xs:NMTOKEN">
             <xs:pattern value="\w+[\w:/;_\-\\\+\.]*" />
         </xs:restriction>
     </xs:simpleType>
  
     <xs:annotation>
         <xs:documentation>Common attributes and Types used by semantic elements</xs:documentation>
     </xs:annotation>
     <xs:attribute name="MustHonor" type="xs:boolean" default="false"/>
  
     <xs:annotation>
         <xs:documentation>Basic element types used in more than one sub-schema</xs:documentation>
     </xs:annotation>
     <xs:complexType name="BoolExtType">
         <xs:simpleContent>
             <xs:extension base="xs:boolean">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:complexType name="IntZeroExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:IntZeroBaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="IntZeroBaseType">
         <xs:restriction base="xs:int">
             <xs:minInclusive value="0"/>
         </xs:restriction>
     </xs:simpleType>
     <xs:complexType name="IntOneExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:IntOneBaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="IntOneBaseType">
         <xs:restriction base="xs:int">
             <xs:minInclusive value="1"/>
         </xs:restriction>
     </xs:simpleType>
     <xs:complexType name="String255ExtType">
         <xs:simpleContent>
             <xs:extension base="wscn:String255BaseType">
                 <xs:anyAttribute namespace="##other" processContents="lax"/>
             </xs:extension>
         </xs:simpleContent>
     </xs:complexType>
     <xs:simpleType name="String255BaseType">
         <xs:restriction base="xs:string">
             <xs:maxLength value="255"/>
             <xs:whiteSpace value="preserve"/>
         </xs:restriction>
     </xs:simpleType>
  
 </xs:schema>