<?xml version="1.0" encoding="utf-8"?>
<wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/" xmlns:tns="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService" xmlns:s1="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService" xmlns:s2="http://microsoft.com/wsdl/types/" xmlns:s="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:http="http://schemas.xmlsoap.org/wsdl/http/" targetNamespace="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:types>
<s:schema elementFormDefault="qualified" targetNamespace="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService">
<s:import namespace="http://microsoft.com/wsdl/types/" />
<s:element name="GetConfig">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="protocolVersion" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetConfigResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetConfigResult" type="tns:Config" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="Config">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="LastChange" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="IsRegistrationRequired" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="AuthInfo" type="tns:ArrayOfAuthPlugInInfo" />
<s:element minOccurs="0" maxOccurs="1" name="AllowedEventIds" type="tns:ArrayOfInt" />
<s:element minOccurs="0" maxOccurs="1" name="Properties" type="tns:ArrayOfConfigurationProperty" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfAuthPlugInInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AuthPlugInInfo" nillable="true" type="tns:AuthPlugInInfo" />
</s:sequence>
</s:complexType>
<s:complexType name="AuthPlugInInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PlugInID" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ServiceUrl" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Parameter" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfInt">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="int" type="s:int" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfConfigurationProperty">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="ConfigurationProperty" nillable="true" type="tns:ConfigurationProperty" />
</s:sequence>
</s:complexType>
<s:complexType name="ConfigurationProperty">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Name" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Value" type="s:string" />
</s:sequence>
</s:complexType>
<s:element name="GetCookie">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="authCookies" type="tns:ArrayOfAuthorizationCookie" />
<s:element minOccurs="0" maxOccurs="1" name="oldCookie" type="tns:Cookie" />
<s:element minOccurs="1" maxOccurs="1" name="lastChange" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="currentTime" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="protocolVersion" type="s:string" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfAuthorizationCookie">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="AuthorizationCookie" nillable="true" type="tns:AuthorizationCookie" />
</s:sequence>
</s:complexType>
<s:complexType name="AuthorizationCookie">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="PlugInId" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="CookieData" type="s:base64Binary" />
</s:sequence>
</s:complexType>
<s:complexType name="Cookie">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Expiration" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="EncryptedData" type="s:base64Binary" />
</s:sequence>
</s:complexType>
<s:element name="GetCookieResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetCookieResult" type="tns:Cookie" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="RegisterComputer">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="cookie" type="tns:Cookie" />
<s:element minOccurs="0" maxOccurs="1" name="computerInfo" type="tns:ComputerInfo" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ComputerInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="DnsName" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="OSMajorVersion" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="OSMinorVersion" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="OSBuildNumber" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="OSServicePackMajorNumber" type="s:short" />
<s:element minOccurs="1" maxOccurs="1" name="OSServicePackMinorNumber" type="s:short" />
<s:element minOccurs="0" maxOccurs="1" name="OSLocale" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ComputerManufacturer" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="ComputerModel" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="BiosVersion" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="BiosName" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="BiosReleaseDate" type="s:dateTime" />
<s:element minOccurs="0" maxOccurs="1" name="ProcessorArchitecture" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="SuiteMask" type="s:short" />
<s:element minOccurs="1" maxOccurs="1" name="OldProductType" type="s:unsignedByte" />
<s:element minOccurs="1" maxOccurs="1" name="NewProductType" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="SystemMetrics" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="ClientVersionMajorNumber" type="s:short" />
<s:element minOccurs="1" maxOccurs="1" name="ClientVersionMinorNumber" type="s:short" />
<s:element minOccurs="1" maxOccurs="1" name="ClientVersionBuildNumber" type="s:short" />
<s:element minOccurs="1" maxOccurs="1" name="ClientVersionQfeNumber" type="s:short" />
<s:element minOccurs="0" maxOccurs="1" name="OSDescription" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="OEM" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="DeviceType" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="FirmwareVersion" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="MobileOperator" type="s:string" />
</s:sequence>
</s:complexType>
<s:element name="RegisterComputerResponse">
<s:complexType />
</s:element>
<s:element name="StartCategoryScan">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="requestedCategories" type="tns:ArrayOfCategoryRelationship" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfCategoryRelationship">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="CategoryRelationship" nillable="true" type="tns:CategoryRelationship" />
</s:sequence>
</s:complexType>
<s:complexType name="CategoryRelationship">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="IndexOfAndGroup" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="CategoryId" type="s2:guid" />
</s:sequence>
</s:complexType>
<s:element name="StartCategoryScanResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="preferredCategoryIds" type="tns:ArrayOfGuid" />
<s:element minOccurs="0" maxOccurs="1" name="requestedCategoryIdsInError" type="tns:ArrayOfGuid" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfGuid">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="guid" type="s2:guid" />
</s:sequence>
</s:complexType>
<s:element name="SyncUpdates">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="cookie" type="tns:Cookie" />
<s:element minOccurs="0" maxOccurs="1" name="parameters" type="tns:SyncUpdateParameters" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="SyncUpdateParameters">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ExpressQuery" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="InstalledNonLeafUpdateIDs" type="tns:ArrayOfInt" />
<s:element minOccurs="0" maxOccurs="1" name="OtherCachedUpdateIDs" type="tns:ArrayOfInt" />
<s:element minOccurs="0" maxOccurs="1" name="SystemSpec" type="tns:ArrayOfDevice" />
<s:element minOccurs="0" maxOccurs="1" name="CachedDriverIDs" type="tns:ArrayOfInt" />
<s:element minOccurs="1" maxOccurs="1" name="SkipSoftwareSync" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="FilterCategoryIds" type="tns:ArrayOfCategoryIdentifier" />
<s:element minOccurs="0" maxOccurs="1" name="NeedTwoGroupOutOfScopeUpdates" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="ComputerSpec" type="s1:ComputerHardwareSpecification" />
<s:element minOccurs="0" maxOccurs="1" name="FeatureScoreMatchingKey" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfDevice">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Device" nillable="true" type="tns:Device" />
</s:sequence>
</s:complexType>
<s:complexType name="Device">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="HardwareIDs" type="tns:ArrayOfString" />
<s:element minOccurs="0" maxOccurs="1" name="CompatibleIDs" type="tns:ArrayOfString" />
<s:element minOccurs="0" maxOccurs="1" name="installedDriver" type="tns:InstalledDriver" />
<s:element minOccurs="0" maxOccurs="1" name="extensionDriver" type="tns:ArrayOfExtensionDriver" />
<s:element minOccurs="0" maxOccurs="1" name="DriverRecoveryIDs" type="tns:ArrayOfDriverRecoveryID" />
<s:element minOccurs="0" maxOccurs="1" name="DeviceFlags" type="xs:unsignedByte"/>
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfString">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="InstalledDriver">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="MatchingID" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="DriverVerDate" type="s:dateTime" />
<s:element minOccurs="1" maxOccurs="1" name="DriverVerVersion" type="s:long" />
<s:element minOccurs="0" maxOccurs="1" name="Class" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Manufacturer" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Provider" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Model" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="MatchingComputerHWID" nillable="true"
type="s2:guid" />
<s:element minOccurs="1" maxOccurs="1" name="DriverRank" type="s:int" />
</s:sequence>
</s:complexType>
<s:complexType name="extensionDriver">
<s:sequence>
<s:element name="ExtensionId" type="s:string" minOccurs="1" maxOccurs="1" />
<s:element name="DriverVerDate" type="s:dateTime" minOccurs="1" maxOccurs="1" />
<s:element name="DriverVerVersion" type="s:long" minOccurs="1" maxOccurs="1" />
<s:element name="Class" type="s:string" minOccurs="1" maxOccurs="1" />
<s:element name="DriverRank" type="xs:int" minOccurs="1" maxOccurs="1" />
<s:element name="MatchingComputerHWID" type="q4:guid" nillable="true"
xmlns:q4="http://microsoft.com/wsdl/types/" minOccurs="0" maxOccurs="1" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfExtensionDriver">
<s:sequence>
<s:element minOccurs="1" maxOccurs="unbounded" name="extensionDriver" nillable="true" type="tns:extensionDriver" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfDriverRecoveryID">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="DriverRecoveryID" nillable="true" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="ComputerHardwareSpecification">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="HardwareIDs" type="s1:ArrayOfGuid" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfCategoryIdentifier">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="CategoryIdentifier" nillable="true" type="tns:CategoryIdentifier" />
</s:sequence>
</s:complexType>
<s:complexType name="CategoryIdentifier">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="Id" type="s2:guid" />
</s:sequence>
</s:complexType>
<s:element name="SyncUpdatesResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="SyncUpdatesResult" type="tns:SyncInfo" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="SyncInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="NewUpdates" type="tns:ArrayOfUpdateInfo" />
<s:element minOccurs="0" maxOccurs="1" name="OutOfScopeRevisionIDs" type="tns:ArrayOfInt" />
<s:element minOccurs="0" maxOccurs="1" name="ChangedUpdates" type="tns:ArrayOfUpdateInfo" />
<s:element minOccurs="1" maxOccurs="1" name="Truncated" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="NewCookie" type="tns:Cookie" />
<s:element minOccurs="0" maxOccurs="1" name="DeployedOutOfScopeRevisionIds" type="tns:ArrayOfInt" />
<s:element minOccurs="0" maxOccurs="1" name="DriverSyncNotNeeded" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfUpdateInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="UpdateInfo" nillable="true" type="tns:UpdateInfo" />
</s:sequence>
</s:complexType>
<s:complexType name="UpdateInfo">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="Deployment" type="tns:Deployment" />
<s:element minOccurs="1" maxOccurs="1" name="IsLeaf" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="Xml" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="Deployment">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ID" type="s:int" />
<s:element minOccurs="1" maxOccurs="1" name="Action" type="tns:DeploymentAction" />
<s:element minOccurs="0" maxOccurs="1" name="Deadline" type="s:string" />
<s:element minOccurs="1" maxOccurs="1" name="IsAssigned" type="s:boolean" />
<s:element minOccurs="1" maxOccurs="1" name="LastChangeTime" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="DownloadPriority" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="HardwareIds" type="tns:ArrayOfString" />
<s:element minOccurs="0" maxOccurs="1" name="AutoSelect" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="AutoDownload" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="SupersedenceBehavior" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="FlagBitmask" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name=" ClientBehaviors"
type="tns:ArrayOfClientBehavior" />
</s:sequence>
</s:complexType>
<s:simpleType name="DeploymentAction">
<s:restriction base="s:string">
<s:enumeration value="OptionalInstall" />
<s:enumeration value="Install" />
<s:enumeration value="Uninstall" />
<s:enumeration value="PreDeploymentCheck" />
<s:enumeration value="Block" />
<s:enumeration value="Evaluate" />
<s:enumeration value="Bundle" />
</s:restriction>
</s:simpleType>
<s:complexType name="ArrayOfClientBehavior">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="ClientMetadata"
nillable="true" type="tns:ClientMetadata" />
</s:sequence>
</s:complexType>
<s:complexType name="ClientMetadata">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="MetadataType" type="tns:MetadataType" />
<s:element minOccurs="1" maxOccurs="1" name="Metadata" type="s:string" />
<s:element minOccurs="0" maxOccurs="1" name="Verification" type="tns:Verification" />
</s:sequence>
</s:complexType>
<s:simpleType name="MetadataType">
<s:restriction base="s:string">
<s:enumeration value="Audience" />
<s:enumeration value="Update" />
<s:enumeration value="Admin" />
</s:restriction>
</s:simpleType>
<s:complexType name="Verification">
<s:attribute name="Timestamp" type="s:dateTime" use="required" />
<s:attribute name="LeafCertificateId" type="s:unsignedInt" use="required" />
<s:attribute name="Signature" type="s:base64Binary" use="required" />
<s:attribute name="Algorithm" type="s:string" use="required" />
</s:complexType>
<s:element name="SyncPrinterCatalog">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="cookie" type="tns:Cookie" />
<s:element minOccurs="0" maxOccurs="1" name="installedNonLeafUpdateIDs" type="tns:ArrayOfInt" />
<s:element minOccurs="0" maxOccurs="1" name="printerUpdateIDs" type="tns:ArrayOfInt" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="SyncPrinterCatalogResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="SyncPrinterCatalogResult" type="tns:SyncInfo" />
</s:sequence>
</s:complexType>
</s:element>
<s:element name="RefreshCache">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="cookie" type="tns:Cookie" />
<s:element minOccurs="0" maxOccurs="1" name="globalIDs" type="tns:ArrayOfUpdateIdentity" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfUpdateIdentity">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="UpdateIdentity" nillable="true" type="tns:UpdateIdentity" />
</s:sequence>
</s:complexType>
<s:complexType name="UpdateIdentity">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="UpdateID" type="s2:guid" />
<s:element minOccurs="1" maxOccurs="1" name="RevisionNumber" type="s:int" />
</s:sequence>
</s:complexType>
<s:element name="RefreshCacheResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="RefreshCacheResult" type="tns:ArrayOfRefreshCacheResult" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfRefreshCacheResult">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="RefreshCacheResult" nillable="true" type="tns:RefreshCacheResult" />
</s:sequence>
</s:complexType>
<s:complexType name="RefreshCacheResult">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="RevisionID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="GlobalID" type="tns:UpdateIdentity" />
<s:element minOccurs="1" maxOccurs="1" name="IsLeaf" type="s:boolean" />
<s:element minOccurs="0" maxOccurs="1" name="Deployment" type="tns:Deployment" />
</s:sequence>
</s:complexType>
<s:element name="GetExtendedUpdateInfo">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="cookie" type="tns:Cookie" />
<s:element minOccurs="0" maxOccurs="1" name="revisionIDs" type="tns:ArrayOfInt" />
<s:element minOccurs="0" maxOccurs="1" name="infoTypes" type="tns:ArrayOfXmlUpdateFragmentType" />
<s:element minOccurs="0" maxOccurs="1" name="locales" type="tns:ArrayOfString" />
<s:element minOccurs="0" maxOccurs="1" name="GeoId" type="s1:String" />
<s:element minOccurs="0" maxOccurs="1" name="callerAttributes" type="s1:String" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfXmlUpdateFragmentType">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="XmlUpdateFragmentType" type="tns:XmlUpdateFragmentType" />
</s:sequence>
</s:complexType>
<s:simpleType name="XmlUpdateFragmentType">
<s:restriction base="s:string">
<s:enumeration value="Published" />
<s:enumeration value="Core" />
<s:enumeration value="Extended" />
<s:enumeration value="VerificationRule" />
<s:enumeration value="LocalizedProperties" />
<s:enumeration value="Eula" />
<s:enumeration value="FileUrl" />
<s:enumeration value="FileDecryption" />
</s:restriction>
</s:simpleType>
<s:element name="GetExtendedUpdateInfoResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetExtendedUpdateInfoResult" type="tns:ExtendedUpdateInfo" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ExtendedUpdateInfo">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Updates" type="tns:ArrayOfUpdateData" />
<s:element minOccurs="0" maxOccurs="1" name="FileLocations" type="tns:ArrayOfFileLocation" />
<s:element minOccurs="0" maxOccurs="1" name="OutOfScopeRevisionIDs" type="tns:ArrayOfInt" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfUpdateData">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="Update" nillable="true" type="tns:UpdateData" />
</s:sequence>
</s:complexType>
<s:complexType name="UpdateData">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="ID" type="s:int" />
<s:element minOccurs="0" maxOccurs="1" name="Xml" type="s:string" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfFileLocation">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="FileLocation" nillable="true" type="tns:FileLocation" />
</s:sequence>
</s:complexType>
<s:complexType name="FileLocation">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="FileDigest" type="s:base64Binary" />
<s:element minOccurs="0" maxOccurs="1" name="Url" type="s:string" />
</s:sequence>
</s:complexType>
<s:element name="GetFileLocations">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="cookie" type="tns:Cookie" />
<s:element minOccurs="0" maxOccurs="1" name="fileDigests" type="tns:ArrayOfBase64Binary" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ArrayOfBase64Binary">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="base64Binary" nillable="true" type="s:base64Binary" />
</s:sequence>
</s:complexType>
<s:element name="GetExtendedUpdateInfo2">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="cookie" type="tns:Cookie"/>
<s:element minOccurs="0" maxOccurs="1" name="updateIDs" type="tns:ArrayOfUpdateIdentity"/>
<s:element minOccurs="0" maxOccurs="1" name="infoTypes" type="tns:ArrayOfXmlUpdateFragmentType"/>
<s:element minOccurs="0" maxOccurs="1" name="locales" type="tns:ArrayOfString"/>
<s:element minOccurs="0" maxOccurs="1" name="callerAttributes" type="s:string"/>
</s:sequence>
</s:complexType>
</s:element>
<s:element name="GetExtendedUpdateInfo2Response">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetExtendedUpdateInfo2Result" type="s1:ExtendedUpdateInfo2"/>
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="ExtendedUpdateInfo2">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="Updates" type="tns:ArrayOfUpdateData"/>
<s:element minOccurs="0" maxOccurs="1" name="FileLocations" type="tns:ArrayOfFileLocation"/>
<s:element minOccurs="0" maxOccurs="1" name="UpdateReportingSamplingRates" type="tns:ArrayOfUpdateReportingSampleRate"/>
<s:element minOccurs="0" maxOccurs="1" name="FileDecryptionData" type="tns:ArrayOfFileDecryption"/>
<s:element minOccurs="0" maxOccurs="1" name="FileDecryptionData2" type="tns:ArrayOfFileDecryption2"/>
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfUpdateReportingSampleRate">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="UpdateReportingSampleRate" nillable="true" type="tns:UpdateReportingSampleRate"/>
</s:sequence>
</s:complexType>
<s:complexType name="UpdateReportingSampleRate">
<s:sequence>
<s:element minOccurs="1" maxOccurs="1" name="UpdateId" type="s2:guid" xmlns:q2="http://microsoft.com/wsdl/types/"/>
<s:element minOccurs="1" maxOccurs="1" name="SamplingRateForInstall" type="s:int"/>
<s:element minOccurs="1" maxOccurs="1" name="SamplingRateForDownload" type="s:int"/>
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfFileDecryption">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="FileDecryption" nillable="true" type="tns:FileDecryption" />
</s:sequence>
</s:complexType>
<s:complexType name="FileDecryption">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="FileDigest" type="s:base64Binary" />
<s:element minOccurs="0" maxOccurs="1" name="DecryptionKey" type="s:base64Binary" />
<s:element minOccurs="0" maxOccurs="1" name="SecurityData" type="tns:ArrayOfBase64Binary" />
</s:sequence>
</s:complexType>
<s:complexType name="ArrayOfFileDecryption2">
<s:sequence>
<s:element minOccurs="0" maxOccurs="unbounded" name="FileDecryption2" nillable="true" type="tns:FileDecryption2" />
</s:sequence>
</s:complexType>
<s:complexType name="FileDecryption2">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="FileDigest" type="s:base64Binary" />
<s:element minOccurs="0" maxOccurs="1" name="DecryptionKey" type="s:base64Binary" />
<s:element minOccurs="0" maxOccurs="1" name="SecurityData" type="tns:ArrayOfBase64Binary" />
</s:sequence>
</s:complexType>
<s:element name="GetFileLocationsResponse">
<s:complexType>
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="GetFileLocationsResult" type="tns:GetFileLocationsResults" />
</s:sequence>
</s:complexType>
</s:element>
<s:complexType name="GetFileLocationsResults">
<s:sequence>
<s:element minOccurs="0" maxOccurs="1" name="FileLocations" type="tns:ArrayOfFileLocation" />
<s:element minOccurs="0" maxOccurs="1" name="NewCookie" type="tns:Cookie" />
</s:sequence>
</s:complexType>
</s:schema>
<s:schema elementFormDefault="qualified" targetNamespace="http://microsoft.com/wsdl/types/">
<s:simpleType name="guid">
<s:restriction base="s:string">
<s:pattern value="[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}" />
</s:restriction>
</s:simpleType>
</s:schema>
</wsdl:types>
<wsdl:message name="GetConfigSoapIn">
<wsdl:part name="parameters" element="tns:GetConfig" />
</wsdl:message>
<wsdl:message name="GetConfigSoapOut">
<wsdl:part name="parameters" element="tns:GetConfigResponse" />
</wsdl:message>
<wsdl:message name="GetCookieSoapIn">
<wsdl:part name="parameters" element="tns:GetCookie" />
</wsdl:message>
<wsdl:message name="GetCookieSoapOut">
<wsdl:part name="parameters" element="tns:GetCookieResponse" />
</wsdl:message>
<wsdl:message name="RegisterComputerSoapIn">
<wsdl:part name="parameters" element="tns:RegisterComputer" />
</wsdl:message>
<wsdl:message name="RegisterComputerSoapOut">
<wsdl:part name="parameters" element="tns:RegisterComputerResponse" />
</wsdl:message>
<wsdl:message name="StartCategoryScanSoapIn">
<wsdl:part name="parameters" element="tns:StartCategoryScan" />
</wsdl:message>
<wsdl:message name="StartCategoryScanSoapOut">
<wsdl:part name="parameters" element="tns:StartCategoryScanResponse" />
</wsdl:message>
<wsdl:message name="SyncUpdatesSoapIn">
<wsdl:part name="parameters" element="tns:SyncUpdates" />
</wsdl:message>
<wsdl:message name="SyncUpdatesSoapOut">
<wsdl:part name="parameters" element="tns:SyncUpdatesResponse" />
</wsdl:message>
<wsdl:message name="SyncPrinterCatalogSoapIn">
<wsdl:part name="parameters" element="tns:SyncPrinterCatalog" />
</wsdl:message>
<wsdl:message name="SyncPrinterCatalogSoapOut">
<wsdl:part name="parameters" element="tns:SyncPrinterCatalogResponse" />
</wsdl:message>
<wsdl:message name="RefreshCacheSoapIn">
<wsdl:part name="parameters" element="tns:RefreshCache" />
</wsdl:message>
<wsdl:message name="RefreshCacheSoapOut">
<wsdl:part name="parameters" element="tns:RefreshCacheResponse" />
</wsdl:message>
<wsdl:message name="GetExtendedUpdateInfoSoapIn">
<wsdl:part name="parameters" element="tns:GetExtendedUpdateInfo" />
</wsdl:message>
<wsdl:message name="GetExtendedUpdateInfoSoapOut">
<wsdl:part name="parameters" element="tns:GetExtendedUpdateInfoResponse" />
</wsdl:message>
<wsdl:message name="GetExtendedUpdateInfo2SoapIn">
<wsdl:part name="parameters" element="tns:GetExtendedUpdateInfo2" />
</wsdl:message>
<wsdl:message name="GetExtendedUpdateInfo2SoapOut">
<wsdl:part name="parameters" element="tns:GetExtendedUpdateInfo2Response" />
</wsdl:message>
<wsdl:message name="GetFileLocationsSoapIn">
<wsdl:part name="parameters" element="tns:GetFileLocations" />
</wsdl:message>
<wsdl:message name="GetFileLocationsSoapOut">
<wsdl:part name="parameters" element="tns:GetFileLocationsResponse" />
</wsdl:message>
<wsdl:portType name="ClientSoap">
<wsdl:operation name="GetConfig">
<wsdl:input message="tns:GetConfigSoapIn" />
<wsdl:output message="tns:GetConfigSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetCookie">
<wsdl:input message="tns:GetCookieSoapIn" />
<wsdl:output message="tns:GetCookieSoapOut" />
</wsdl:operation>
<wsdl:operation name="RegisterComputer">
<wsdl:input message="tns:RegisterComputerSoapIn" />
<wsdl:output message="tns:RegisterComputerSoapOut" />
</wsdl:operation>
<wsdl:operation name="StartCategoryScan">
<wsdl:input message="tns:StartCategoryScanSoapIn" />
<wsdl:output message="tns:StartCategoryScanSoapOut" />
</wsdl:operation>
<wsdl:operation name="SyncUpdates">
<wsdl:input message="tns:SyncUpdatesSoapIn" />
<wsdl:output message="tns:SyncUpdatesSoapOut" />
</wsdl:operation>
<wsdl:operation name="SyncPrinterCatalog">
<wsdl:input message="tns:SyncPrinterCatalogSoapIn" />
<wsdl:output message="tns:SyncPrinterCatalogSoapOut" />
</wsdl:operation>
<wsdl:operation name="RefreshCache">
<wsdl:input message="tns:RefreshCacheSoapIn" />
<wsdl:output message="tns:RefreshCacheSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetExtendedUpdateInfo">
<wsdl:input message="tns:GetExtendedUpdateInfoSoapIn" />
<wsdl:output message="tns:GetExtendedUpdateInfoSoapOut" />
</wsdl:operation>
<wsdl:operation name="GetExtendedUpdateInfo2">
<wsdl:input message="tns:GetExtendedUpdateInfo2SoapIn" />
<wsdl:output message="tns:GetExtendedUpdateInfo2SoapOut" />
</wsdl:operation>
<wsdl:operation name="GetFileLocations">
<wsdl:input message="tns:GetFileLocationsSoapIn" />
<wsdl:output message="tns:GetFileLocationsSoapOut" />
</wsdl:operation>
</wsdl:portType>
<wsdl:binding name="ClientSoap" type="tns:ClientSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="GetConfig">
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetConfig" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetCookie">
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetCookie" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="RegisterComputer">
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/RegisterComputer" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="StartCategoryScan">
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/StartCategoryScan" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="SyncUpdates">
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/SyncUpdates" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="SyncPrinterCatalog">
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/SyncPrinterCatalog" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="RefreshCache">
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/RefreshCache" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetExtendedUpdateInfo">
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetExtendedUpdateInfo" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetExtendedUpdateInfo2">
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetExtendedUpdateInfo2" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetFileLocations">
<soap:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetFileLocations" style="document" />
<wsdl:input>
<soap:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:binding name="ClientSoap12" type="tns:ClientSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
<wsdl:operation name="GetConfig">
<soap12:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetConfig" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetCookie">
<soap12:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetCookie" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="RegisterComputer">
<soap12:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/RegisterComputer" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="StartCategoryScan">
<soap12:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/StartCategoryScan" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="SyncUpdates">
<soap12:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/SyncUpdates" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="SyncPrinterCatalog">
<soap12:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/SyncPrinterCatalog" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="RefreshCache">
<soap12:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/RefreshCache" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetExtendedUpdateInfo">
<soap12:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetExtendedUpdateInfo" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
<wsdl:operation name="GetFileLocations">
<soap12:operation soapAction="http://www.microsoft.com/SoftwareDistribution/Server/ClientWebService/GetFileLocations" style="document" />
<wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
<wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
<wsdl:service name="Client">
<wsdl:port name="ClientSoap" binding="tns:ClientSoap">
<soap:address location="http://localhost/ClientWebService/Client.asmx" />
</wsdl:port>
<wsdl:port name="ClientSoap12" binding="tns:ClientSoap12">
<soap12:address location="http://localhost/ClientWebService/Client.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>