<?xml version="1.0" encoding="UTF-8"?>
<!--W3C Schema generated by XMLSpy v2011 sp1 (x64) (http://www.altova.com)-->
<xs:schema targetNamespace="http://www.microsoft.com/ApplicationExperience/UpgradeAdvisor/01012009" xmlns="http://www.microsoft.com/ApplicationExperience/UpgradeAdvisor/01012009" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Version">
    <xs:complexType>
      <xs:attribute name="ServicePackMinor" use="required" type="xs:unsignedByte"/>
      <xs:attribute name="ServicePackMajor" use="required" type="xs:unsignedByte"/>
      <xs:attribute name="Minor" use="required" type="xs:unsignedByte"/>
      <xs:attribute name="Major" use="required" type="xs:unsignedByte"/>
      <xs:attribute name="Build" use="required" type="xs:short"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="System">
    <xs:complexType>
      <xs:all>
        <xs:element ref="Version"/>
        <xs:element ref="Machine"/>
        <xs:element ref="SdbInfo"/>
      </xs:all>
      <xs:attribute name="OSArch" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="x86"/>
            <xs:enumeration value="x64"/>
            <xs:enumeration value="arm"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="UserLocale" use="required" type="xs:short"/>
      <xs:attribute name="UICulture" use="optional" type="xs:string" />
      <xs:attribute name="ComplianceIssuesCount" use="required" type="xs:short"/>
      <xs:attribute name="RequireActionIssueCount" use="required" type="xs:short"/>
      <xs:attribute name="WontWorkIssueCount" use="required" type="xs:short"/>
      <xs:attribute name="KnownWorkingCount" use="required" type="xs:short"/>
      <xs:attribute name="BlockUpgradeIssueCount" use="required" type="xs:short"/>
      <xs:attribute name="BlockUpgradeCanReinstallCount" use="required" type="xs:short"/>
      <xs:attribute name="BlockUpgradeUntilUpdateCount" use="required" type="xs:short"/>
      <xs:attribute name="DismissableIssueCount" use="required" type="xs:short"/>
      <xs:attribute name="HardBlockedDevicesCount" use="required" type="xs:short"/>
      <xs:attribute name="IssueCount64Bit" use="optional" type="xs:short"/>
      <xs:attribute name="IssueCount32Bit" use="optional" type="xs:short"/>
      <xs:attribute name="TotalIssueCount" use="required" type="xs:short"/>
      <xs:attribute name="TotalAppCount" use="required" type="xs:short"/>
      <xs:attribute name="TotalDeviceCount" use="required" type="xs:short"/>
      <xs:attribute name="Resolution" use="optional" type="xs:string" />
      <xs:attribute name="Edition" use="required" type="xs:string" />
      <xs:attribute name="TargetBuild" use="required" type="xs:string" />
      <xs:attribute name="Model" use="optional" type="xs:string" />
      <xs:attribute name="Manufacturer" use="optional" type="xs:string" />
      <xs:attribute name="SocBlock" use="optional" type="xs:boolean" />
    </xs:complexType>
  </xs:element>
  <xs:element name="SysMain32Sdb">
    <xs:complexType>
      <xs:attribute name="FileSize" use="required" type="xs:int"/>
      <xs:attribute name="CreationDateTime" use="required" type="xs:dateTime"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="SysMain64Sdb">
    <xs:complexType>
      <xs:attribute name="FileSize" use="required" type="xs:int"/>
      <xs:attribute name="CreationDateTime" use="required" type="xs:dateTime"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="SdbInfo">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="SysMain32Sdb"/>
        <xs:element ref="SysMain64Sdb"/>
        <xs:element ref="DrvMainSdb"/>
        <xs:element ref="DrvMainSdb64"/>
        <xs:element ref="DrvMainSdbArm"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Programs">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Program" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Program">
    <xs:complexType>
      <xs:all>
        <xs:element ref="CompatibilityInfo"/>
        <xs:element ref="Action" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="Version" use="required" type="xs:string"/>
      <xs:attribute name="Type" use="optional" type="xs:string"/>
      <xs:attribute name="Source" use="optional" type="xs:string"/>
      <xs:attribute name="Publisher" use="required" type="xs:string"/>
      <xs:attribute name="Name" use="required" type="xs:string"/>
      <xs:attribute name="Language" use="optional" type="xs:short"/>
      <xs:attribute name="Id" use="required" type="xs:string"/>
      <xs:attribute name="AMApp" use="optional" type="xs:boolean" />
    </xs:complexType>
  </xs:element>
  <xs:element name="Machine">
    <xs:complexType>
      <xs:attribute name="ModelNumber" use="required" type="xs:string"/>
      <xs:attribute name="ComputerHardwareId" use="required" type="xs:string"/>
      <xs:attribute name="Category" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="HwId">
    <xs:complexType>
      <xs:attribute name="Id" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="HardwareItem">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="CompatibilityInfo"/>
      </xs:sequence>
      <xs:attribute name="Misc" use="optional" type="xs:string"/>
      <xs:attribute name="HardwareType" use="required" type="xs:string"/>
      <xs:attribute name="DisplayValue" use="optional" type="xs:string"/>
      <xs:attribute name="ActualValue" use="optional" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="HardwareIds">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="HwId" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Hardware">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="HardwareItem" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DrvMainSdb">
    <xs:complexType>
      <xs:attribute name="FileSize" use="required" type="xs:int"/>
      <xs:attribute name="CreationDateTime" use="required" type="xs:dateTime"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="DrvMainSdb64">
    <xs:complexType>
      <xs:attribute name="FileSize" use="required" type="xs:int"/>
      <xs:attribute name="CreationDateTime" use="required" type="xs:dateTime"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="DrvMainSdbArm">
    <xs:complexType>
      <xs:attribute name="FileSize" use="required" type="xs:int"/>
      <xs:attribute name="CreationDateTime" use="required" type="xs:dateTime"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Drivers">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Driver" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Driver">
    <xs:complexType>
      <xs:attribute name="WDFVersion" use="optional" type="xs:unsignedByte"/>
      <xs:attribute name="PageableMemory" use="optional" type="xs:int"/>
      <xs:attribute name="NonePageMemory" use="optional" type="xs:int"/>
      <xs:attribute name="DriverVersion" use="optional" type="xs:string"/>
      <xs:attribute name="DriverType" use="optional" type="xs:string"/>
      <xs:attribute name="DriverTimeStamp" use="optional" type="xs:string"/>
      <xs:attribute name="DriverName" use="required" type="xs:string"/>
      <xs:attribute name="DriverCompany" use="optional" type="xs:string"/>
      <xs:attribute name="DriverCheckSum" use="optional" type="xs:int"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Devices">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Device" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DeviceContainers">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Container" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="Device">
    <xs:complexType>
      <xs:all>
        <xs:element ref="HardwareIds"/>
        <xs:element ref="CompatibleIds"/>
        <xs:element ref="CompatibilityInfo"/>
        <xs:element ref="InstalledDriver"/>
      </xs:all>
      <xs:attribute name="ProblemCode" use="optional" type="xs:unsignedByte"/>
      <xs:attribute name="ParentId" use="optional" type="xs:int"/>
      <xs:attribute name="Model" use="required" type="xs:string"/>
      <xs:attribute name="MatchingId" use="optional" type="xs:string"/>
      <xs:attribute name="Manufacturer" use="optional" type="xs:string"/>
      <xs:attribute name="IsMachineDevice" use="optional" type="xs:boolean"/>
      <xs:attribute name="InstanceId" use="optional" type="xs:int"/>
      <xs:attribute name="InstallState" use="optional" type="xs:unsignedByte"/>
      <xs:attribute name="InstallDate" use="optional" type="xs:dateTime"/>
      <xs:attribute name="FirstInstallDate" use="optional" type="xs:dateTime"/>
      <xs:attribute name="EnumeratorName" use="optional" type="xs:string"/>
      <xs:attribute name="DeviceModelId" use="required" type="xs:string"/>
      <xs:attribute name="DeviceId" use="required" type="xs:string"/>
      <xs:attribute name="DevNodeStatus" use="optional" type="xs:unsignedByte"/>
      <xs:attribute name="ModelInstanceId" use="required" type="xs:string"/>
      <xs:attribute name="Class" use="required" type="xs:string"/>
      <xs:attribute name="ClassGuid" use="optional" type="xs:string" />
      <xs:attribute name="BlockMigration" use="required" type="xs:boolean"/>
      <xs:attribute name="Excluded" use="optional" type="xs:string"/>
      <xs:attribute name="ShownAsContainer" use="optional" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Container">
    <xs:complexType>
      <xs:attribute name="PrimaryCategory" use="optional" type="xs:string"/>
      <xs:attribute name="ModelNumber" use="optional" type="xs:string"/>
      <xs:attribute name="ModelName" use="optional" type="xs:string"/>
      <xs:attribute name="ModelId" use="optional" type="xs:string"/>
      <xs:attribute name="Manufacturer" use="optional" type="xs:string"/>
      <xs:attribute name="IsPaired" use="optional" type="xs:boolean"/>
      <xs:attribute name="IsNetworked" use="optional" type="xs:boolean"/>
      <xs:attribute name="IsMachineContainer" use="optional" type="xs:boolean"/>
      <xs:attribute name="IsDefault" use="optional" type="xs:boolean"/>
      <xs:attribute name="IsConnected" use="optional" type="xs:boolean"/>
      <xs:attribute name="IsActive" use="optional" type="xs:boolean"/>
      <xs:attribute name="DiscoveryMethod" use="optional" type="xs:string"/>
      <xs:attribute name="DeviceModelId" use="required" type="xs:string"/>
      <xs:attribute name="DeviceDescription2" use="optional" type="xs:string"/>
      <xs:attribute name="DeviceDescription1" use="optional" type="xs:string"/>
      <xs:attribute name="ModelInstanceId" use="required" type="xs:string"/>
      <xs:attribute name="Categories" use="optional" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="CompatibleIds">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="CompId" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CompatibilityInfo">
    <xs:complexType>
      <xs:attribute name="Status" type="xs:string" use="required" />
      <xs:attribute name="StatusDetail" type="xs:string" use="optional" />
      <xs:attribute name="Solution" type="xs:string" use="optional" />
      <xs:attribute name="Link" type="xs:string" use="optional" />
      <xs:attribute name="SdbId" type="xs:string" use="optional" />
      <xs:attribute name="MigXmlType" type="xs:string" use="optional" />
      <xs:attribute name="BlockingType" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="None"/>
            <xs:enumeration value="Hard"/>
            <xs:enumeration value="Soft"/>
            <xs:enumeration value="Unknown"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="InstalledDriver">
    <xs:complexType>
      <xs:attribute name="matchingID" type="xs:string" use="optional" />
      <xs:attribute name="fileName" type="xs:string" use="optional" />
      <xs:attribute name="driverVerVersion" type="xs:string" use="optional" />
      <xs:attribute name="driverVerDate" type="xs:string" use="optional" />
      <xs:attribute name="manufacturer" type="xs:string" use="optional" />
      <xs:attribute name="class" type="xs:string" use="optional" />
      <xs:attribute name="classDescription" type="xs:string" use="optional" />
      <xs:attribute name="classGuid" type="xs:string" use="optional" />
      <xs:attribute name="model" type="xs:string" use="optional" />
      <xs:attribute name="provider" type="xs:string" use="optional" />
      <xs:attribute name="upperFilters" type="xs:string" use="optional" />
      <xs:attribute name="lowerFilters" type="xs:string" use="optional" />
      <xs:attribute name="upperClassFilters" type="xs:string" use="optional" />
      <xs:attribute name="lowerClassFilters" type="xs:string" use="optional" />
      <xs:attribute name="driverInBox" type="xs:string" use="optional" />
      <xs:attribute name="driverSigned" type="xs:string" use="optional" />
    </xs:complexType>
  </xs:element>
  <xs:element name="CompatReport">
    <xs:complexType>
      <xs:all>
        <xs:element ref="System"/>
        <xs:element ref="Hardware"/>
        <xs:element ref="Devices"/>
        <xs:element ref="DeviceContainers" minOccurs="0"/>
        <xs:element ref="Drivers" minOccurs="0"/>
        <xs:element ref="Programs"/>
        <xs:element ref="Usage" minOccurs="0"/>
        <xs:element ref="Performance" minOccurs="0"/>
      </xs:all>
      <xs:attribute name="Version" use="required" type="xs:string"/>
      <xs:attribute name="MID" use="required" type="xs:string"/>
      <xs:attribute name="UserAction" use="optional">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Next"/>
            <xs:enumeration value="Back"/>
            <xs:enumeration value="Close"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="ReportScenario" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="PrePurchase"/>
            <xs:enumeration value="PreDownload"/>
            <xs:enumeration value="PreInstall"/>
            <xs:enumeration value="PreStore"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
    </xs:complexType>
  </xs:element>
  <xs:element name="CompId">
    <xs:complexType>
      <xs:attribute name="Id" use="required" type="xs:string"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Action">
    <xs:complexType>
      <xs:attribute name="ResolveState" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Resolved"/>
            <xs:enumeration value="NotRun"/>
            <xs:enumeration value="Failed"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="Name" use="required" type="xs:string"/>
      <xs:attribute name="DisplayStyle" use="required">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="Link"/>
            <xs:enumeration value="Text"/>
          </xs:restriction>
        </xs:simpleType>
      </xs:attribute>
      <xs:attribute name="Attempts" use="optional" type="xs:unsignedByte"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="Performance">
    <xs:complexType>
      <xs:attribute name="SystemScanDuration" use="optional" type="xs:int"/>
      <xs:attribute name="DeviceScanDuration" use="optional" type="xs:int"/>
      <xs:attribute name="AppScanDuration" use="optional" type="xs:int"/>
      <xs:attribute name="MsiCollectionDuration" use="optional" type="xs:int"/>
      <xs:attribute name="ArpCollectionDuration" use="optional" type="xs:int"/>
      <xs:attribute name="FileScanDuration" use="optional" type="xs:int"/>
      <xs:attribute name="QueryAppBlockDuration" use="optional" type="xs:int"/>
      <xs:attribute name="QueryDeviceBlockDuration" use="optional" type="xs:int"/>
      <xs:attribute name="WebServiceCallDuration" use="optional" type="xs:int"/>
      <xs:attribute name="WicaTotalDuration" use="required" type="xs:int" />
    </xs:complexType>
  </xs:element>
  <xs:element name="Usage">
    <xs:complexType>
      <xs:attribute name="SystemScanReturnCode" use="optional" type="xs:int"/>
      <xs:attribute name="DeviceScanReturnCode" use="optional" type="xs:int"/>
      <xs:attribute name="AppScanReturnCode" use="optional" type="xs:int"/>
      <xs:attribute name="QueryAppBlockReturnCode" use="optional" type="xs:int"/>
      <xs:attribute name="QueryDeviceBlockReturnCode" use="optional" type="xs:int"/>
      <xs:attribute name="WebServiceCallSuccess" use="optional" type="xs:int"/>
      <xs:attribute name="WICAReturnCode" use="optional" type="xs:int"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
