Initial commit

This commit is contained in:
RunasSudo 2017-12-10 18:36:52 +10:30
commit cb65838b2c
Signed by: RunasSudo
GPG Key ID: 7234E476BF21C61A
10 changed files with 2254 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
data/*.zip
.python-version

423
data/ScanService/Common.xsd Normal file
View File

@ -0,0 +1,423 @@
<?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>
WSD Commom Element and Types schema
Copyright 2005-2006 Microsoft Corporation All rights reserved
</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="WellKnownValues.xsd"/>
<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>Common Types for the Scan Template definitions allowed values</xs:documentation>
</xs:annotation>
<xs:complexType name="ValueTokenListType">
<xs:sequence>
<xs:element name="AllowedValue" type="wscn:NMTOKENSExtType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ValueIntListType">
<xs:sequence>
<xs:element name="AllowedValue" type="wscn:IntExtType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ValueIntRangeType">
<xs:sequence>
<xs:element name="MinValue" type="wscn:IntExtType" minOccurs="0"/>
<xs:element name="MaxValue" type="wscn:IntExtType" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<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="IntExtType">
<xs:simpleContent>
<xs:extension base="xs:int">
<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="DateTimeExtType">
<xs:simpleContent>
<xs:extension base="xs:dateTime">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="String127ExtType">
<xs:simpleContent>
<xs:extension base="wscn:String127BaseType">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="String127BaseType">
<xs:restriction base="xs:string">
<xs:maxLength value="127"/>
<xs:whiteSpace value="preserve"/>
</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:complexType name="NMTOKENSExtType">
<xs:simpleContent>
<xs:extension base="xs:NMTOKENS">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="AnyURIExtType">
<xs:simpleContent>
<xs:extension base="xs:anyURI">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="QNameExtType">
<xs:simpleContent>
<xs:extension base="xs:QName">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:annotation>
<xs:documentation>Semantic elements used in more than one sub-schema or used directly in an interface</xs:documentation>
</xs:annotation>
<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: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="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: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="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="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="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: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: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:complexType name="ResolutionPairType">
<xs:sequence>
<xs:element name="Width" type="wscn:IntOneExtType"/>
<xs:element name="Height" type="wscn:IntOneExtType" minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ResolutionsType">
<xs:sequence>
<xs:element name="Widths" type="wscn:ResolutionWidthsType"/>
<xs:element name="Heights" type="wscn:ResolutionHeightsType"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ResolutionWidthsType">
<xs:sequence>
<xs:element name="Width" type="wscn:IntOneExtType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ResolutionHeightsType">
<xs:sequence>
<xs:element name="Height" type="wscn:IntOneExtType" maxOccurs="unbounded"/>
</xs:sequence>
<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="FormatSupportedType">
<xs:sequence>
<xs:element name="FormatValue" type="wscn:DocumentFormatExtType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="CompressionQualityFactorSupportedType">
<xs:sequence>
<xs:element name="MinValue" type="wscn:CompressionQualityFactorExtType"/>
<xs:element name="MaxValue" type="wscn:CompressionQualityFactorExtType"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ContentTypesSupportedType">
<xs:sequence>
<xs:element name="ContentTypeValue" type="wscn:ContentTypeExtType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ScalingRangeSupportedType">
<xs:sequence>
<xs:element name="ScalingWidth">
<xs:complexType>
<xs:sequence>
<xs:element name="MinValue" type="wscn:ScalingRangeType"/>
<xs:element name="MaxValue" type="wscn:ScalingRangeType"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
</xs:element>
<xs:element name="ScalingHeight">
<xs:complexType>
<xs:sequence>
<xs:element name="MinValue" type="wscn:ScalingRangeType"/>
<xs:element name="MaxValue" type="wscn:ScalingRangeType"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="RotationsSupportedType">
<xs:sequence>
<xs:element name="RotationValue" type="wscn:RotationExtType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="FilmScanModesSupportedType">
<xs:sequence>
<xs:element name="FilmScanModeValue" type="wscn:FilmScanModeExtType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="DeviceSettingsType">
<xs:sequence>
<xs:element name="FormatsSupported" type="wscn:FormatSupportedType"/>
<xs:element name="CompressionQualityFactorSupported" type="wscn:CompressionQualityFactorSupportedType"/>
<xs:element name="ContentTypesSupported" type="wscn:ContentTypesSupportedType"/>
<xs:element name="DocumentSizeAutoDetectSupported" type="wscn:BoolExtType"/>
<xs:element name="AutoExposureSupported" type="wscn:BoolExtType"/>
<xs:element name="BrightnessSupported" type="wscn:BoolExtType"/>
<xs:element name="ContrastSupported" type="wscn:BoolExtType"/>
<xs:element name="ScalingRangeSupported" type="wscn:ScalingRangeSupportedType"/>
<xs:element name="RotationsSupported" type="wscn:RotationsSupportedType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="PlatenType">
<xs:sequence>
<xs:element name="PlatenOpticalResolution" type="wscn:ResolutionPairType"/>
<xs:element name="PlatenResolutions" type="wscn:ResolutionsType"/>
<xs:element name="PlatenColor" type="wscn:ColorEntriesType"/>
<xs:element name="PlatenMinimumSize" type="wscn:DimensionsType" />
<xs:element name="PlatenMaximumSize" type="wscn:DimensionsType" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ColorEntriesType">
<xs:sequence>
<xs:element name="ColorEntry" type="wscn:ColorConfigType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ADFType">
<xs:sequence>
<xs:element name="ADFSupportsDuplex" type="wscn:BoolExtType"/>
<xs:element name="ADFFront" type="wscn:ADFEntryType" />
<xs:element name="ADFBack" type="wscn:ADFEntryType" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ADFEntryType">
<xs:sequence>
<xs:element name="ADFOpticalResolution" type="wscn:ResolutionPairType"/>
<xs:element name="ADFResolutions" type="wscn:ResolutionsType"/>
<xs:element name="ADFColor" type="wscn:ColorEntriesType"/>
<xs:element name="ADFMinimumSize" type="wscn:DimensionsType" />
<xs:element name="ADFMaximumSize" type="wscn:DimensionsType" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="FilmType">
<xs:sequence>
<xs:element name="FilmScanModesSupported" type="wscn:FilmScanModesSupportedType"/>
<xs:element name="FilmOpticalResolution" type="wscn:ResolutionPairType"/>
<xs:element name="FilmResolutions" type="wscn:ResolutionsType"/>
<xs:element name="FilmColor" type="wscn:ColorEntriesType"/>
<xs:element name="FilmMinimumSize" type="wscn:DimensionsType" />
<xs:element name="FilmMaximumSize" type="wscn:DimensionsType" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="RegionImageInformationBaseType">
<xs:sequence>
<xs:element name="PixelsPerLine" type="wscn:IntOneExtType"/>
<xs:element name="NumberOfLines" type="wscn:IntOneExtType"/>
<xs:element name="BytesPerLine" type="wscn:IntZeroExtType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ImageInformationType">
<xs:sequence>
<xs:element name="MediaFrontImageInfo" type="wscn:RegionImageInformationBaseType"/>
<xs:element name="MediaBackImageInfo" type="wscn:RegionImageInformationBaseType" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
</xs:schema>

View File

@ -0,0 +1,601 @@
<?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>
WSD Scanning - Document Object schema
Copyright 2005-2006 Microsoft Corp. All rights reserved
</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="Common.xsd"/>
<xs:complexType name="DocumentsType">
<xs:sequence>
<xs:element name="DocumentFinalParameters" type="wscn:ActualDocumentParametersType"/>
<xs:element name="Document" type="wscn:DocumentType" maxOccurs="unbounded" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>Document Element definition</xs:documentation>
</xs:annotation>
<xs:complexType name="DocumentType">
<xs:sequence>
<xs:element name="DocumentDescription" type="wscn:DocumentDescriptionType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>Document Description Element Definition</xs:documentation>
</xs:annotation>
<xs:complexType name="DocumentDescriptionType">
<xs:sequence>
<xs:element name="DocumentName" type="wscn:String255ExtType"/>
<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:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CompressionQualityFactor" type="wscn:CompressionQualityFactorType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ImagesToTransfer" type="wscn:ImagesToTransferType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InputSource" type="wscn:DocumentInputSourceType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="FilmScanMode" type="wscn:FilmScanModeType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ContentType" type="wscn:ContentTypeTicketType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InputSize" type="wscn:DocumentInputSizeType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Exposure" type="wscn:ScanExposureType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Scaling" type="wscn:ScalingType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Rotation" type="wscn:RotationType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<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="CompressionQualityFactorType">
<xs:simpleContent>
<xs:extension base="wscn:CompressionQualityFactorExtType">
<xs:attribute ref="wscn:MustHonor"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<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:complexType name="FilmScanModeType">
<xs:simpleContent>
<xs:extension base="wscn:FilmScanModeExtType">
<xs:attribute ref="wscn:MustHonor"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<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="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="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="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="RotationType">
<xs:simpleContent>
<xs:extension base="wscn:RotationExtType">
<xs:attribute ref="wscn:MustHonor"/>
</xs:extension>
</xs:simpleContent>
</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="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>
<xs:complexType name="ScanRegionType">
<xs:sequence>
<xs:element name="ScanRegionXOffset" type="wscn:OffsetExtType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScanRegionYOffset" type="wscn:OffsetExtType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScanRegionWidth" type="wscn:DimensionExtType">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScanRegionHeight" type="wscn:DimensionExtType">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</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="MediaSideType">
<xs:sequence>
<xs:element name="ScanRegion" type="wscn:ScanRegionType" minOccurs="0"/>
<xs:element name="ColorProcessing" type="wscn:ColorJobType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution" type="wscn:ResolutionPairExtType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: MustHonor</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<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="ActualDocumentParametersType">
<xs:sequence>
<xs:element name="Format" type="wscn:DocumentFormatOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="CompressionQualityFactor" type="wscn:CompressionQualityFactorOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ImagesToTransfer" type="wscn:ImagesToTransferOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InputSource" type="wscn:DocumentInputSourceOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="FilmScanMode" type="wscn:FilmScanModeOverrideType" minOccurs="0">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ContentType" type="wscn:ContentTypeOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="InputSize" type="wscn:DocumentInputSizeOverrideType"/>
<xs:element name="Exposure" type="wscn:ScanExposureOverrideType"/>
<xs:element name="Scaling" type="wscn:ScalingOverrideType"/>
<xs:element name="Rotation" type="wscn:RotationOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="MediaSides" type="wscn:MediaSidesOverrideType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:attribute name="Override" type="xs:boolean" default="false"/>
<xs:attribute name="UsedDefault" type="xs:boolean" default="false"/>
<xs:complexType name="DocumentFormatOverrideType">
<xs:simpleContent>
<xs:extension base="wscn:DocumentFormatExtType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="CompressionQualityFactorOverrideType">
<xs:simpleContent>
<xs:extension base="wscn:CompressionQualityFactorExtType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ImagesToTransferOverrideType">
<xs:simpleContent>
<xs:extension base="wscn:IntZeroExtType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DocumentInputSourceOverrideType">
<xs:simpleContent>
<xs:extension base="wscn:DocumentInputSourceExtType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="FilmScanModeOverrideType">
<xs:simpleContent>
<xs:extension base="wscn:FilmScanModeExtType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ContentTypeOverrideType">
<xs:simpleContent>
<xs:extension base="wscn:ContentTypeExtType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="DocumentInputSizeOverrideType">
<xs:sequence>
<xs:element name="InputMediaSize" type="wscn:DimensionsOverrideType" />
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="DimensionsOverrideType">
<xs:sequence>
<xs:element name="Width" type="wscn:DimensionOverrideBaseType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Height" type="wscn:DimensionOverrideBaseType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="DimensionOverrideBaseType">
<xs:simpleContent>
<xs:extension base="wscn:IntOneExtType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ScanExposureOverrideType">
<xs:sequence>
<xs:element name="ExposureSettings" type="wscn:ExposureSettingsOverrideType"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ExposureSettingsOverrideType">
<xs:sequence>
<xs:element name="Contrast" type="wscn:Adjustment1000OverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Brightness" type="wscn:Adjustment1000OverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Sharpness" type="wscn:Adjustment100OverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="Adjustment1000OverrideType">
<xs:simpleContent>
<xs:extension base="wscn:Adjustment1000Type">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="Adjustment100OverrideType">
<xs:simpleContent>
<xs:extension base="wscn:Adjustment100Type">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ScalingOverrideType">
<xs:sequence>
<xs:element name="ScalingWidth" type="wscn:ScalingRangeOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScalingHeight" type="wscn:ScalingRangeOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ScalingRangeOverrideType">
<xs:simpleContent>
<xs:extension base="wscn:ScalingRangeType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="RotationOverrideType">
<xs:simpleContent>
<xs:extension base="wscn:RotationExtType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="MediaSidesOverrideType">
<xs:sequence>
<xs:element name="MediaFront" type="wscn:MediaSideOverrideType"/>
<xs:element name="MediaBack" type="wscn:MediaSideOverrideType" minOccurs="0"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="MediaSideOverrideType">
<xs:sequence>
<xs:element name="ScanRegion" type="wscn:ScanRegionOverrideType"/>
<xs:element name="ColorProcessing" type="wscn:ColorOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Resolution" type="wscn:ResolutionPairOverrideType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ScanRegionOverrideType">
<xs:sequence>
<xs:element name="ScanRegionXOffset" type="wscn:OffsetOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScanRegionYOffset" type="wscn:OffsetOverrideType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScanRegionWidth" type="wscn:DimensionOverrideBaseType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="ScanRegionHeight" type="wscn:DimensionOverrideBaseType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="OffsetOverrideType">
<xs:simpleContent>
<xs:extension base="wscn:IntZeroExtType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ColorOverrideType">
<xs:simpleContent>
<xs:extension base="wscn:ColorConfigType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="ResolutionPairOverrideType">
<xs:sequence>
<xs:element name="Width" type="wscn:ResolutionOverrideBaseType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="Height" type="wscn:ResolutionOverrideBaseType">
<xs:annotation>
<xs:documentation>Attribute: Override
Attribute: UsedDefault</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ResolutionOverrideBaseType">
<xs:simpleContent>
<xs:extension base="wscn:IntOneExtType">
<xs:attribute ref="wscn:Override"/>
<xs:attribute ref="wscn:UsedDefault"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>

177
data/ScanService/Job.xsd Normal file
View File

@ -0,0 +1,177 @@
<?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>
WSD Scanning - Job Object schema
Copyright 2005-2006 Microsoft Corp. All rights reserved
</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="Document.xsd"/>
<xs:annotation>
<xs:documentation>Job Element definition</xs:documentation>
</xs:annotation>
<xs:complexType name="JobTableType">
<xs:sequence>
<xs:element name="ActiveJobs" type="wscn:ListOfJobsType"/>
<xs:element name="JobHistory" type="wscn:ListOfJobsType" minOccurs="0" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="JobType">
<xs:sequence>
<xs:element name="JobStatus" type="wscn:JobStatusType"/>
<xs:element name="ScanTicket" type="wscn:ScanTicketType"/>
<xs:element name="Documents" type="wscn:DocumentsType" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ListOfJobsType">
<xs:sequence>
<xs:element name="Job" type="wscn:JobType" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="JobSummaryType">
<xs:sequence>
<xs:element name="JobId" type="wscn:IntOneExtType"/>
<xs:element name="JobName" type="wscn:String255ExtType"/>
<xs:element name="JobOriginatingUserName" type="wscn:String255ExtType"/>
<xs:element name="JobState" type="wscn:JobStateType"/>
<xs:element name="JobStateReasons" type="wscn:JobStateReasonsType" minOccurs="0"/>
<xs:element name="ScansCompleted" type="wscn:IntZeroExtType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ListOfSummarysType">
<xs:sequence>
<xs:element name="JobSummary" type="wscn:JobSummaryType" 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>Job Status Element definition</xs:documentation>
</xs:annotation>
<xs:complexType name="JobStatusType">
<xs:sequence>
<xs:element name="JobId" type="wscn:IntOneExtType"/>
<xs:element name="JobState" type="wscn:JobStateType"/>
<xs:element name="JobStateReasons" type="wscn:JobStateReasonsType" minOccurs="0"/>
<xs:element name="ScansCompleted" type="wscn:IntZeroExtType"/>
<xs:element name="JobCreatedTime" type="wscn:DateTimeExtType" minOccurs="0"/>
<xs:element name="JobCompletedTime" type="wscn:DateTimeExtType" 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 Status specific semantic elements</xs:documentation>
</xs:annotation>
<xs:complexType name="JobStateType">
<xs:simpleContent>
<xs:extension base="wscn:JobStateBaseType">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="JobStateBaseType">
<xs:union memberTypes="wscn:JobStateWKVType wscn:KeywordNsExtensionPatternType"/>
</xs:simpleType>
<xs:complexType name="JobStateReasonsType">
<xs:sequence>
<xs:element name="JobStateReason" type="wscn:JobStateReasonType" maxOccurs="unbounded">
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="JobStateReasonType">
<xs:simpleContent>
<xs:extension base="wscn:JobStateReasonBaseType">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="JobStateReasonBaseType">
<xs:union memberTypes="wscn:JobStateReasonWKVType wscn:KeywordNsExtensionPatternType"/>
</xs:simpleType>
<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>Any element name in any namespace</xs:documentation>
</xs:annotation>
<xs:simpleType name="JobElementsEntryWKVType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="JobStatus"/>
<xs:enumeration value="ScanTicket"/>
<xs:enumeration value="Document"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="JobElementsEntryType">
<xs:union memberTypes="wscn:JobElementsEntryWKVType wscn:KeywordNsExtensionPatternType"/>
</xs:simpleType>
<xs:complexType name="RequestedJobElementsType">
<xs:sequence>
<xs:element name="Name" type="wscn:JobElementsEntryType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="JobElementDataType">
<xs:choice>
<xs:element name="JobStatus" type="wscn:JobStatusType"/>
<xs:element name="ScanTicket" type="wscn:ScanTicketType"/>
<xs:element name="Documents" type="wscn:DocumentsType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="Name" type="xs:QName" use="required" />
<xs:attribute name="Valid" type="xs:boolean" use="required" />
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="JobElementsType">
<xs:sequence>
<xs:element name="ElementData" type="wscn:JobElementDataType" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Attribute: Name
Attribute: Valid</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
</xs:schema>

View File

@ -0,0 +1,278 @@
<?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>
WSD Scanning - Scanner Object schema
Copyright 2005-2006 Microsoft Corp. All rights reserved
</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="Job.xsd"/>
<xs:annotation>
<xs:documentation>NOTE: To use this schema you MUST include ScannerStatus.xs, ScannerDescription.xs,</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>Scanner Element definition</xs:documentation>
</xs:annotation>
<xs:complexType name="ScannerType">
<xs:sequence>
<xs:element name="ScannerDescription" type="wscn:ScannerDescriptionType"/>
<xs:element name="ScannerConfiguration" type="wscn:ScannerConfigurationType"/>
<xs:element name="ScannerStatus" type="wscn:ScannerStatusType"/>
<xs:element name="DefaultScanTicket" type="wscn:ScanTicketType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:element name="Scanner">
<xs:complexType>
<xs:complexContent>
<xs:extension base="wscn:ScannerType">
<xs:sequence>
<xs:element name="JobTable" type="wscn:JobTableType"/>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:annotation>
<xs:documentation>Scanner Description elements</xs:documentation>
</xs:annotation>
<xs:complexType name="ScannerDescriptionType">
<xs:sequence>
<xs:element name="ScannerName" type="wscn:String127ExtType" maxOccurs="unbounded"/>
<xs:element name="ScannerInfo" type="wscn:String127ExtType" minOccurs="0" maxOccurs="unbounded"/>
<xs:element name="ScannerLocation" type="wscn:String127ExtType" minOccurs="0" maxOccurs="unbounded"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ScannerConfigurationType">
<xs:sequence>
<xs:element name="DeviceSettings" type="wscn:DeviceSettingsType" />
<xs:element name="Platen" type="wscn:PlatenType" minOccurs="0" />
<xs:element name="ADF" type="wscn:ADFType" minOccurs="0" />
<xs:element name="Film" type="wscn:FilmType" minOccurs="0" />
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>Scanner Status Element definition</xs:documentation>
</xs:annotation>
<xs:complexType name="ScannerStatusType">
<xs:sequence>
<xs:element name="ScannerCurrentTime" type="wscn:DateTimeExtType"/>
<xs:element name="ScannerState" type="wscn:ScannerStateType"/>
<xs:element name="ScannerStateReasons" type="wscn:ScannerStateReasonsType" minOccurs="0"/>
<xs:element name="ActiveConditions" type="wscn:ActiveConditionsTableType" />
<xs:element name="ConditionHistory" type="wscn:ConditionHistoryTableType" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>Scanner Status specific semantic elements</xs:documentation>
</xs:annotation>
<xs:complexType name="ScannerStateType">
<xs:simpleContent>
<xs:extension base="wscn:ScannerStateBaseType">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="ScannerStateBaseType">
<xs:union memberTypes="wscn:ScannerStateWKVType wscn:KeywordNsExtensionPatternType"/>
</xs:simpleType>
<xs:complexType name="ScannerStateReasonsType">
<xs:sequence>
<xs:element name="ScannerStateReason" type="wscn:ScannerStateReasonType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ScannerStateReasonType">
<xs:simpleContent>
<xs:extension base="wscn:ScannerStateReasonBaseType">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="ScannerStateReasonBaseType">
<xs:union memberTypes="wscn:ScannerStateReasonWKVType wscn:KeywordNsExtensionPatternType"/>
</xs:simpleType>
<xs:complexType name="ActiveConditionsTableType">
<xs:sequence>
<xs:element name="DeviceCondition" type="wscn:DeviceConditionType" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Attribute: Id</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ConditionHistoryTableType">
<xs:sequence>
<xs:element name="ConditionHistoryEntry" type="wscn:ConditionHistoryEntryType" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Attribute: Id</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="DeviceConditionType">
<xs:sequence>
<xs:element name="Time" type="wscn:DateTimeExtType"/>
<xs:element name="Name" type="wscn:ConditionNameType"/>
<xs:element name="Component" type="wscn:ConditionComponentType"/>
<xs:element name="Severity" type="wscn:ConditionSeverityType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="Id" type="wscn:IntOneBaseType" use="required"/>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ConditionHistoryEntryType">
<xs:complexContent>
<xs:extension base="wscn:DeviceConditionType">
<xs:sequence>
<xs:element name="ClearTime" type="wscn:DateTimeExtType"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ConditionNameType">
<xs:simpleContent>
<xs:extension base="wscn:ConditionNameBaseType">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="ConditionNameBaseType">
<xs:restriction base="xs:NMTOKEN">
<xs:maxLength value="255"/>
<xs:enumeration value="Calibrating"/>
<xs:enumeration value="CoverOpen"/>
<xs:enumeration value="InputTrayEmpty"/>
<xs:enumeration value="InterlockOpen"/>
<xs:enumeration value="InternalStorageFull"/>
<xs:enumeration value="MediaJam"/>
<xs:enumeration value="LampError"/>
<xs:enumeration value="LampWarning"/>
<xs:enumeration value="MultipleFeedError"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ConditionComponentType">
<xs:simpleContent>
<xs:extension base="wscn:ConditionComponentBaseType">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="ConditionComponentBaseType">
<xs:restriction base="xs:NMTOKEN">
<xs:maxLength value="255"/>
<xs:enumeration value="ADF"/>
<xs:enumeration value="Film"/>
<xs:enumeration value="MediaPath"/>
<xs:enumeration value="Platen"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ConditionSeverityType">
<xs:simpleContent>
<xs:extension base="wscn:ConditionSeverityBaseType">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:simpleType name="ConditionSeverityBaseType">
<xs:restriction base="xs:NMTOKEN">
<xs:maxLength value="255"/>
<xs:enumeration value="Informational"/>
<xs:enumeration value="Warning"/>
<xs:enumeration value="Critical"/>
</xs:restriction>
</xs:simpleType>
<xs:annotation>
<xs:documentation>Client Information definition</xs:documentation>
</xs:annotation>
<xs:complexType name="RequestedScannerElementsType">
<xs:sequence>
<xs:element name="Name" type="xs:QName" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ScannerElementDataType">
<xs:choice>
<xs:element name="ScannerDescription" type="wscn:ScannerDescriptionType"/>
<xs:element name="ScannerConfiguration" type="wscn:ScannerConfigurationType"/>
<xs:element name="ScannerStatus" type="wscn:ScannerStatusType"/>
<xs:element name="DefaultScanTicket" type="wscn:ScanTicketType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:choice>
<xs:attribute name="Name" type="xs:QName" use="required" />
<xs:attribute name="Valid" type="xs:boolean" use="required" />
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ScannerElementsType">
<xs:sequence>
<xs:element name="ElementData" type="wscn:ScannerElementDataType" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>Attribute: Name
Attribute: Valid</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:annotation>
<xs:documentation>Global definitions for ScanAvaliable subscribe extensions</xs:documentation>
</xs:annotation>
<xs:complexType name="ScanDestinationsType">
<xs:sequence>
<xs:element name="ScanDestination" type="wscn:ScanDestinationBaseType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="ScanDestinationBaseType">
<xs:sequence>
<xs:element name="ClientDisplayName" type="wscn:String127ExtType"/>
<xs:element name="ClientContext" type="wscn:String255ExtType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:element name="ScanDestinations" type="wscn:ScanDestinationsType"/>
<xs:complexType name="DestinationResponsesType">
<xs:sequence>
<xs:element name="DestinationResponse" type="wscn:DestinationResponseBaseType" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:complexType>
<xs:complexType name="DestinationResponseBaseType">
<xs:sequence>
<xs:element name="ClientContext" type="wscn:String255ExtType"/>
<xs:element name="DestinationToken" type="wscn:String255ExtType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="DestinationResponses" type="wscn:DestinationResponsesType"/>
</xs:schema>

View File

@ -0,0 +1,264 @@
<?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>
WSD Scanning - Scanner Object schema
Copyright 2005-2006 Microsoft Corp. All rights reserved
</xs:documentation>
</xs:annotation>
<xs:include schemaLocation="Common.xsd"/>
<xs:include schemaLocation="Document.xsd"/>
<xs:include schemaLocation="Job.xsd"/>
<xs:include schemaLocation="Scanner.xsd"/>
<xs:annotation>
<xs:documentation>
All WSD Scan Unique Faults
</xs:documentation>
</xs:annotation>
<xs:simpleType name="ScanServiceFaultValuesType" >
<xs:restriction base="xs:QName" >
<xs:enumeration value="wscn:InvalidArgs" />
<xs:enumeration value="wscn:OperationFailed" />
<xs:enumeration value="wscn:ServerErrorTemporaryError" />
<xs:enumeration value="wscn:ServerErrorInternalError" />
<xs:enumeration value="wscn:ServerErrorNotAcceptingJobs" />
<xs:enumeration value="wscn:ClientErrorJobCancelled" />
<xs:enumeration value="wscn:ClientErrorJobIdNotFound" />
<xs:enumeration value="wscn:ClientErrorFormatNotSupported" />
<xs:enumeration value="wscn:ClientErrorInvalidScanIdentifier" />
<xs:enumeration value="wscn:ClientErrorInvalidDestinationToken" />
<xs:enumeration value="wscn:ClientErrorNoImagesAvailable" />
<xs:enumeration value="wscn:ClientErrorInvalidJobToken" />
<xs:enumeration value="wscn:ClientErrorConflictingRequiredParameters" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CreateScanJobRequestType">
<xs:sequence>
<xs:element name="ScanIdentifier" type="wscn:String255ExtType" minOccurs="0"/>
<xs:element name="DestinationToken" type="wscn:String255ExtType" minOccurs="0"/>
<xs:element name="ScanTicket" type="wscn:ScanTicketType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="CreateScanJobRequest" type="wscn:CreateScanJobRequestType"/>
<xs:complexType name="CreateScanJobResponseType">
<xs:sequence>
<xs:element name="JobId" type="wscn:IntOneExtType"/>
<xs:element name="JobToken" type="wscn:String255ExtType"/>
<xs:element name="ImageInformation" type="wscn:ImageInformationType" />
<xs:element name="DocumentFinalParameters" type="wscn:ActualDocumentParametersType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="CreateScanJobResponse" type="wscn:CreateScanJobResponseType"/>
<xs:complexType name="RetrieveImageRequestType">
<xs:sequence>
<xs:element name="JobId" type="wscn:IntOneExtType"/>
<xs:element name="JobToken" type="wscn:String255ExtType"/>
<xs:element name="DocumentDescription" type="wscn:DocumentDescriptionType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="RetrieveImageRequest" type="wscn:RetrieveImageRequestType"/>
<xs:complexType name="ScanDataExtType">
<xs:simpleContent>
<xs:extension base="xs:base64Binary">
<xs:anyAttribute namespace="##other" processContents="lax"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<xs:complexType name="RetrieveImageResponseType">
<xs:sequence>
<xs:element name="ScanData" type="wscn:ScanDataExtType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="RetrieveImageResponse" type="wscn:RetrieveImageResponseType"/>
<xs:complexType name="CancelJobRequestType">
<xs:sequence>
<xs:element name="JobId" type="wscn:IntOneExtType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="CancelJobRequest" type="wscn:CancelJobRequestType"/>
<xs:complexType name="CancelJobResponseType">
<xs:sequence>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="CancelJobResponse" type="wscn:CancelJobResponseType"/>
<xs:complexType name="ValidateScanTicketRequestType">
<xs:sequence>
<xs:element name="ScanTicket" type="wscn:ScanTicketType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ValidateScanTicketRequest" type="wscn:ValidateScanTicketRequestType"/>
<xs:complexType name="ValidationInfoType">
<xs:sequence>
<xs:element name="ValidTicket" type="wscn:BoolExtType"/>
<xs:element name="ImageInformation" type="wscn:ImageInformationType" />
<xs:element name="ValidScanTicket" type="wscn:ScanTicketType" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ValidateScanTicketResponseType">
<xs:sequence>
<xs:element name="ValidationInfo" type="wscn:ValidationInfoType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ValidateScanTicketResponse" type="wscn:ValidateScanTicketResponseType"/>
<xs:complexType name="GetScannerElementsRequestType">
<xs:sequence>
<xs:element name="RequestedElements" type="wscn:RequestedScannerElementsType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="GetScannerElementsRequest" type="wscn:GetScannerElementsRequestType"/>
<xs:complexType name="GetScannerElementsResponseType">
<xs:sequence>
<xs:element name="ScannerElements" type="wscn:ScannerElementsType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="GetScannerElementsResponse" type="wscn:GetScannerElementsResponseType"/>
<xs:complexType name="GetJobElementsRequestType">
<xs:sequence>
<xs:element name="JobId" type="wscn:IntOneExtType"/>
<xs:element name="RequestedElements" type="wscn:RequestedJobElementsType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="GetJobElementsRequest" type="wscn:GetJobElementsRequestType"/>
<xs:complexType name="GetJobElementsResponseType">
<xs:sequence>
<xs:element name="JobElements" type="wscn:JobElementsType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="GetJobElementsResponse" type="wscn:GetJobElementsResponseType"/>
<xs:complexType name="GetActiveJobsRequestType">
<xs:sequence>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="GetActiveJobsRequest" type="wscn:GetActiveJobsRequestType"/>
<xs:complexType name="GetActiveJobsResponseType">
<xs:sequence>
<xs:element name="ActiveJobs" type="wscn:ListOfSummarysType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="GetActiveJobsResponse" type="wscn:GetActiveJobsResponseType"/>
<xs:complexType name="GetJobHistoryRequestType">
<xs:sequence>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="GetJobHistoryRequest" type="wscn:GetJobHistoryRequestType"/>
<xs:complexType name="GetJobHistoryResponseType">
<xs:sequence>
<xs:element name="JobHistory" type="wscn:ListOfSummarysType"/>
</xs:sequence>
</xs:complexType>
<xs:element name="GetJobHistoryResponse" type="wscn:GetJobHistoryResponseType"/>
<xs:complexType name="ScanAvailableEventType">
<xs:sequence>
<xs:element name="ClientContext" type="wscn:String255ExtType"/>
<xs:element name="ScanIdentifier" type="wscn:String255ExtType"/>
<xs:element name="InputSource" type="wscn:DocumentInputSourceExtType" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ScanAvailableEvent" type="wscn:ScanAvailableEventType"/>
<xs:complexType name="ElementChangesType">
<xs:sequence>
<xs:element name="ScannerDescription" type="wscn:ScannerDescriptionType" minOccurs="0"/>
<xs:element name="ScannerConfiguration" type="wscn:ScannerConfigurationType" minOccurs="0"/>
<xs:element name="DefaultScanTicket" type="wscn:ScanTicketType" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ScannerElementsChangeEventType">
<xs:sequence>
<xs:element name="ElementChanges" type="wscn:ElementChangesType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ScannerElementsChangeEvent" type="wscn:ScannerElementsChangeEventType"/>
<xs:complexType name="StatusSummaryType">
<xs:sequence>
<xs:element name="ScannerState" type="wscn:ScannerStateType"/>
<xs:element name="ScannerStateReasons" type="wscn:ScannerStateReasonsType" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ScannerStatusSummaryEventType">
<xs:sequence>
<xs:element name="StatusSummary" type="wscn:StatusSummaryType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ScannerStatusSummaryEvent" type="wscn:ScannerStatusSummaryEventType"/>
<xs:complexType name="ScannerStatusConditionEventType">
<xs:sequence>
<xs:element name="DeviceCondition" type="wscn:DeviceConditionType">
<xs:annotation>
<xs:documentation>Attribute: Id</xs:documentation>
</xs:annotation>
</xs:element>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ScannerStatusConditionEvent" type="wscn:ScannerStatusConditionEventType"/>
<xs:complexType name="DeviceConditionClearedType">
<xs:sequence>
<xs:element name="ConditionId" type="wscn:IntOneExtType"/>
<xs:element name="ConditionClearTime" type="wscn:DateTimeExtType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ScannerStatusConditionClearedEventType">
<xs:sequence>
<xs:element name="DeviceConditionCleared" type="wscn:DeviceConditionClearedType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="ScannerStatusConditionClearedEvent" type="wscn:ScannerStatusConditionClearedEventType"/>
<xs:complexType name="JobStatusEventType">
<xs:sequence>
<xs:element name="JobStatus" type="wscn:JobStatusType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="JobStatusEvent" type="wscn:JobStatusEventType"/>
<xs:complexType name="JobEndStateType">
<xs:sequence>
<xs:element name="JobId" type="wscn:IntOneExtType"/>
<xs:element name="JobCompletedState" type="wscn:JobStateType"/>
<xs:element name="JobCompletedStateReasons" type="wscn:JobStateReasonsType"/>
<xs:element name="JobName" type="wscn:String255ExtType"/>
<xs:element name="JobOriginatingUserName" type="wscn:String255ExtType"/>
<xs:element name="ScansCompleted" type="wscn:IntZeroExtType"/>
<xs:element name="JobCompletedTime" type="wscn:DateTimeExtType" minOccurs="0"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="JobEndStateEventType">
<xs:sequence>
<xs:element name="JobEndState" type="wscn:JobEndStateType"/>
<xs:any namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<xs:element name="JobEndStateEvent" type="wscn:JobEndStateEventType"/>
</xs:schema>

Binary file not shown.

View File

@ -0,0 +1,335 @@
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/"
xmlns:wsoap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:wsdp="http://schemas.xmlsoap.org/ws/2006/02/devprof"
xmlns:wsp="http://schemas.xmlsoap.org/ws/2004/09/policy"
xmlns:wsd="http://schemas.xmlsoap.org/ws/2005/04/discovery"
xmlns:wse="http://schemas.xmlsoap.org/ws/2004/08/eventing"
xmlns:wsa="http://schemas.xmlsoap.org/ws/2004/08/addressing"
xmlns:wscn="http://schemas.microsoft.com/windows/2006/08/wdp/scan"
xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
targetNamespace="http://schemas.microsoft.com/windows/2006/08/wdp/scan"
name="WSDScannerService">
<xs:annotation>
<xs:documentation>
WSD Scanner Service Web Service Description (WSDL) file
Copyright 2005-2006 Microsoft Corporation. All rights reserved
</xs:documentation>
</xs:annotation>
<wsp:Policy wsu:Id="ServicePolicy">
<wsdp:Profile />
</wsp:Policy>
<types>
<xs:schema targetNamespace="http://schemas.microsoft.com/windows/2006/08/wdp/scan">
<xs:include schemaLocation="WDPScan.xsd"/>
</xs:schema>
</types>
<message name="CreateScanJobRequestMsg">
<part name="body" element="wscn:CreateScanJobRequest"/>
</message>
<message name="CreateScanJobResponseMsg">
<part name="body" element="wscn:CreateScanJobResponse"/>
</message>
<message name="RetrieveImageRequestMsg">
<part name="body" element="wscn:RetrieveImageRequest"/>
</message>
<message name="RetrieveImageResponseMsg">
<part name="body" element="wscn:RetrieveImageResponse"/>
</message>
<message name="CancelJobRequestMsg">
<part name="body" element="wscn:CancelJobRequest"/>
</message>
<message name="CancelJobResponseMsg">
<part name="body" element="wscn:CancelJobResponse"/>
</message>
<message name="ValidateScanTicketRequestMsg">
<part name="body" element="wscn:ValidateScanTicketRequest"/>
</message>
<message name="ValidateScanTicketResponseMsg">
<part name="body" element="wscn:ValidateScanTicketResponse"/>
</message>
<message name="GetScannerElementsRequestMsg">
<part name="body" element="wscn:GetScannerElementsRequest"/>
</message>
<message name="GetScannerElementsResponseMsg">
<part name="body" element="wscn:GetScannerElementsResponse"/>
</message>
<message name="GetJobElementsRequestMsg">
<part name="body" element="wscn:GetJobElementsRequest"/>
</message>
<message name="GetJobElementsResponseMsg">
<part name="body" element="wscn:GetJobElementsResponse"/>
</message>
<message name="GetActiveJobsRequestMsg">
<part name="body" element="wscn:GetActiveJobsRequest"/>
</message>
<message name="GetActiveJobsResponseMsg">
<part name="body" element="wscn:GetActiveJobsResponse"/>
</message>
<message name="GetJobHistoryRequestMsg">
<part name="body" element="wscn:GetJobHistoryRequest"/>
</message>
<message name="GetJobHistoryResponseMsg">
<part name="body" element="wscn:GetJobHistoryResponse"/>
</message>
<message name="ScanAvailableEventMsg">
<part name="body" element="wscn:ScanAvailableEvent"/>
</message>
<message name="ScannerElementsChangeEventMsg">
<part name="body" element="wscn:ScannerElementsChangeEvent"/>
</message>
<message name="ScannerStatusSummaryEventMsg">
<part name="body" element="wscn:ScannerStatusSummaryEvent"/>
</message>
<message name="ScannerStatusConditionEventMsg">
<part name="body" element="wscn:ScannerStatusConditionEvent"/>
</message>
<message name="ScannerStatusConditionClearedEventMsg">
<part name="body" element="wscn:ScannerStatusConditionClearedEvent"/>
</message>
<message name="JobStatusEventMsg">
<part name="body" element="wscn:JobStatusEvent"/>
</message>
<message name="JobEndStateEventMsg">
<part name="body" element="wscn:JobEndStateEvent"/>
</message>
<portType name="ScannerServiceType" wse:EventSource="true">
<operation name="CreateScanJob">
<input message="wscn:CreateScanJobRequestMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/CreateScanJob" />
<output message="wscn:CreateScanJobResponseMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/CreateScanJobResponse" />
</operation>
<operation name="RetrieveImage">
<input message="wscn:RetrieveImageRequestMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/RetrieveImage" />
<output message="wscn:RetrieveImageResponseMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/RetrieveImageResponse" />
</operation>
<operation name="CancelJob">
<input message="wscn:CancelJobRequestMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/CancelJob" />
<output message="wscn:CancelJobResponseMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/CancelJobResponse" />
</operation>
<operation name="ValidateScanTicket">
<input message="wscn:ValidateScanTicketRequestMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ValidateScanTicket" />
<output message="wscn:ValidateScanTicketResponseMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ValidateScanTicketResponse" />
</operation>
<operation name="GetScannerElements">
<input message="wscn:GetScannerElementsRequestMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetScannerElements" />
<output message="wscn:GetScannerElementsResponseMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetScannerElementsResponse" />
</operation>
<operation name="GetJobElements">
<input message="wscn:GetJobElementsRequestMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetJobElements" />
<output message="wscn:GetJobElementsResponseMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetJobElementsResponse" />
</operation>
<operation name="GetActiveJobs">
<input message="wscn:GetActiveJobsRequestMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetActiveJobs" />
<output message="wscn:GetActiveJobsResponseMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetActiveJobsResponse" />
</operation>
<operation name="GetJobHistory">
<input message="wscn:GetJobHistoryRequestMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetJobHistory" />
<output message="wscn:GetJobHistoryResponseMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetJobHistoryResponse" />
</operation>
<operation name="ScanAvailableEvent">
<output message="wscn:ScanAvailableEventMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ScanAvailableEvent" />
</operation>
<operation name="ScannerElementsChangeEvent">
<output message="wscn:ScannerElementsChangeEventMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ScannerElementsChangeEvent" />
</operation>
<operation name="ScannerStatusSummaryEvent">
<output message="wscn:ScannerStatusSummaryEventMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ScannerStatusSummaryEvent" />
</operation>
<operation name="ScannerStatusConditionEvent">
<output message="wscn:ScannerStatusConditionEventMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ScannerStatusConditionEvent" />
</operation>
<operation name="ScannerStatusConditionClearedEvent">
<output message="wscn:ScannerStatusConditionClearedEventMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ScannerStatusConditionClearedEvent" />
</operation>
<operation name="JobStatusEvent">
<output message="wscn:JobStatusEventMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/JobStatusEvent" />
</operation>
<operation name="JobEndStateEvent">
<output message="wscn:JobEndStateEventMsg"
wsa:Action="http://schemas.microsoft.com/windows/2006/08/wdp/scan/JobEndStateEvent" />
</operation>
</portType>
<binding name="ScannerServiceBinding" type="wscn:ScannerServiceType">
<wsoap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
<wsp:PolicyReference URI="#ServicePolicy" />
<operation name="CreateScanJob">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/CreateScanJob"
soapActionRequired="true" />
<input>
<wsoap12:body use="literal" />
</input>
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="RetrieveImage">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/RetrieveImage"
soapActionRequired="true" />
<input>
<wsoap12:body use="literal" />
</input>
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="CancelJob">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/CancelJob"
soapActionRequired="true" />
<input>
<wsoap12:body use="literal" />
</input>
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="ValidateScanTicket">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ValidateScanTicket"
soapActionRequired="true" />
<input>
<wsoap12:body use="literal" />
</input>
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="GetScannerElements">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetScannerElements"
soapActionRequired="true" />
<input>
<wsoap12:body use="literal" />
</input>
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="GetJobElements">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetJobElements"
soapActionRequired="true" />
<input>
<wsoap12:body use="literal" />
</input>
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="GetActiveJobs">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetActiveJobs"
soapActionRequired="true" />
<input>
<wsoap12:body use="literal" />
</input>
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="GetJobHistory">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/GetJobHistory"
soapActionRequired="true" />
<input>
<wsoap12:body use="literal" />
</input>
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="ScanAvailableEvent">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ScanAvailableEvent"
soapActionRequired="true" />
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="ScannerElementsChangeEvent">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ScannerElementsChangeEvent"
soapActionRequired="true" />
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="ScannerStatusSummaryEvent">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ScannerStatusSummaryEvent"
soapActionRequired="true" />
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="ScannerStatusConditionEvent">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ScannerStatusConditionEvent"
soapActionRequired="true" />
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="ScannerStatusConditionClearedEvent">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/ScannerStatusConditionClearedEvent"
soapActionRequired="true" />
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="JobStatusEvent">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/JobStatusEvent"
soapActionRequired="true" />
<output>
<wsoap12:body use="literal" />
</output>
</operation>
<operation name="JobEndStateEvent">
<wsoap12:operation
soapAction="http://schemas.microsoft.com/windows/2006/08/wdp/scan/JobEndStateEvent"
soapActionRequired="true" />
<output>
<wsoap12:body use="literal" />
</output>
</operation>
</binding>
<service name="ScannerService">
<port name="ScannerPort" binding="wscn:ScannerServiceBinding">
<wsoap12:address location="http://localhost/ScannerService/"/>
</port>
</service>
</definitions>

View File

@ -0,0 +1,158 @@
<?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>
WSD Printing - Well Known Values schema (excluding Media)
Copyright 2005-2006 Microsoft Corp. All rights reserved
</xs:documentation>
</xs:annotation>
<xs:annotation>
<xs:documentation>Well known values (i.e. keywords) used by semantic elements</xs:documentation>
</xs:annotation>
<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: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: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: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: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: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:simpleType name="JobStateWKVType">
<xs:restriction base="xs:NMTOKEN">
<xs:maxLength value="255"/>
<xs:enumeration value="Aborted"/>
<xs:enumeration value="Canceled"/>
<xs:enumeration value="Completed"/>
<xs:enumeration value="Creating"/>
<xs:enumeration value="Pending"/>
<xs:enumeration value="Pending-Held"/>
<xs:enumeration value="Processing"/>
<xs:enumeration value="Started"/>
<xs:enumeration value="Terminating"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="JobStateReasonWKVType">
<xs:restriction base="xs:NMTOKEN">
<xs:maxLength value="255"/>
<xs:enumeration value="InvalidScanTicket"/>
<xs:enumeration value="CompressionError"/>
<xs:enumeration value="DocumentFormatError"/>
<xs:enumeration value="JobCanceledAtDevice"/>
<xs:enumeration value="JobCompletedSuccessfully"/>
<xs:enumeration value="JobCompletedWithErrors"/>
<xs:enumeration value="JobCompletedWithWarnings"/>
<xs:enumeration value="JobScanning"/>
<xs:enumeration value="JobScanningAndTransfering"/>
<xs:enumeration value="JobTimedOut"/>
<xs:enumeration value="JobTransfering"/>
<xs:enumeration value="None"/>
<xs:enumeration value="ScannerStopped"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ScannerStateWKVType">
<xs:restriction base="xs:NMTOKEN">
<xs:maxLength value="255"/>
<xs:enumeration value="Idle"/>
<xs:enumeration value="Processing"/>
<xs:enumeration value="Stopped"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ScannerStateReasonWKVType">
<xs:restriction base="xs:NMTOKEN">
<xs:enumeration value="AttentionRequired"/>
<xs:enumeration value="Calibrating"/>
<xs:enumeration value="CoverOpen"/>
<xs:enumeration value="InterlockOpen"/>
<xs:enumeration value="InternalStorageFull"/>
<xs:enumeration value="LampError"/>
<xs:enumeration value="LampWarming"/>
<xs:enumeration value="MediaJam"/>
<xs:enumeration value="MultipleFeedError"/>
<xs:enumeration value="None"/>
<xs:enumeration value="Paused"/>
</xs:restriction>
</xs:simpleType>
<!-- 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>
<!-- String extension federated by namespaces -->
<xs:simpleType name="StringNsExtensionPatternType">
<xs:restriction base="xs:string">
<xs:pattern value="\w+:[\w:/;_\-\\\+\.]*" />
</xs:restriction>
</xs:simpleType>
</xs:schema>

16
main.py Executable file
View File

@ -0,0 +1,16 @@
#!/usr/bin/env python3
# https://msdn.microsoft.com/en-us/library/windows/hardware/dn641604(v=vs.85).aspx
# https://docs.microsoft.com/en-us/windows-hardware/drivers/image/web-services-on-devices-reference
import zeep
# Override WS-Addressing namespace (use WS2006 instead of WS 1.1)
zeep.ns.WSA = 'http://schemas.xmlsoap.org/ws/2004/08/addressing'
import zeep.wsa
client = zeep.Client('data/ScanService/WSDScannerService.wsdl', plugins=[zeep.wsa.WsAddressingPlugin()])
service = client.create_service('{http://schemas.microsoft.com/windows/2006/08/wdp/scan}ScannerServiceBinding', 'http://192.168.0.8:9867/ws2/')
import pdb; pdb.set_trace()