<?xml version="1.0" encoding="utf-8" ?>
<mapping xmlns="http://ans/mapping">
  <extent typeName='DeploymentOS' extentName='DeploymentOS' tableName='Deployment_OS_vw'>
    <id propertyName='OsId' fieldName='osId' columnName='osID' />
    <property propertyName="DisplayName" fieldName="displayName" columnName="displayName" />
    <property propertyName="Enabled" fieldName="enabled" columnName="enabled" />
  </extent>

  <extent typeName="Category" extentName="Category" tableName="Categories">
    <accessControlList>
      <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete' />
    </accessControlList>
    <compositeId>
      <generatedIdProperty propertyName='CategoryId' fieldName='categoryId' columnName='categoryId' generated='true'
          type='Identity' />
    </compositeId>
    <property propertyName="CategoryName" fieldName="categoryName" columnName="category" />
    <collection propertyName='SubCategories' fieldName='subCategories' targetExtentName='SubCategory'
        childColumnNames='categoryId' />
  </extent>

  <extent typeName="SubCategory" extentName="SubCategory" tableName="SubCategories">
    <accessControlList>
      <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete' />
    </accessControlList>
    <compositeId>
      <parentRef propertyName="Category" fieldName="category" targetExtentName="Category" childColumnNames="categoryId" />
      <generatedIdProperty propertyName='SubCategoryId' fieldName='subCategoryId' columnName='subCategoryId'
          generated='true' type='Identity' />
    </compositeId>
    <property propertyName='SubCategoryName' fieldName='subCategoryName' columnName='subCategory' />
    <!-- Required association for Applications -->
    <associationCollection propertyName='Applications' fieldName='applications' associationName='Apps_SubCategories'
        participantName='SubCategory' treatAsBinary='true'>
      <valueType typeName='ApplicationCategory'>
        <ref participantName='Application' propertyName='Application' fieldName='application' />
        <ref participantName='SubCategory' propertyName='SubCategory' fieldName='subCategory' />
      </valueType>
    </associationCollection>
    <!-- Required association for Computers -->
    <associationCollection propertyName='Computers' fieldName='computers' associationName='Computers_SubCategories'
        participantName='SubCategory' treatAsBinary='true'>
      <valueType typeName='ComputerCategory'>
        <ref participantName='Computer' propertyName='Computer' fieldName='computer' />
        <ref participantName='SubCategory' propertyName='SubCategory' fieldName='subCategory' />
      </valueType>
    </associationCollection>
    <!-- Required association for Devices -->
    <associationCollection propertyName='Devices' fieldName='devices' associationName='Devices_SubCategories'
        participantName='SubCategory' treatAsBinary='true'>
      <valueType typeName='DeviceCategory'>
        <ref participantName='Device' propertyName='Device' fieldName='device' />
        <ref participantName='SubCategory' propertyName='SubCategory' fieldName='subCategory' />
      </valueType>
    </associationCollection>
        <!-- Required association for Websites  -->
    <associationCollection propertyName='Websites' fieldName='websites' associationName='Websites_SubCategories'
        participantName='SubCategory' treatAsBinary='true'>
      <valueType typeName='WebsiteCategory'>
        <ref participantName='Url' propertyName='Url' fieldName='url' />
        <ref participantName='SubCategory' propertyName='SubCategory' fieldName='subCategory' />
      </valueType>
    </associationCollection>
  </extent>
  <!-- Extents for queries -->
  <!-- NOTE: These must never be materialized -->

  <extent extentName="AppReportIssuesQueryExtent" typeName="ReportIssuesQueryType" tableName="AppReport_Issues_Query">
    <compositeId>
      <parentRef propertyName="Report" fieldName="report" targetExtentName="AppReportExtent" childColumnNames="appIdentity,osID"/>
      <property propertyName="IssueID" fieldName="issueID" columnName="issueID" />
    </compositeId>
    <property propertyName="IssueType" fieldName="issueType" columnName="issueType" />
    <property propertyName="IsResolved" fieldName="isResolved" columnName="isResolved" />
    <property propertyName="Cause" fieldName="cause" columnName="cause" />
    <property propertyName="Priority" fieldName="priority" columnName="priority" />
    <property propertyName="Provider" fieldName="provider" columnName="provider" />
    <property propertyName="SubProvider" fieldName="subProvider" columnName="subProvider" />
    <property propertyName="Severity" fieldName="severity" columnName="severity" />
    <property propertyName="Symptom" fieldName="symptom" columnName="symptom" />
    <property propertyName="PublishedDate" fieldName="publishedDate" columnName="publishedDate" />
    <property propertyName="DateCreated" fieldName="dateCreated" columnName="dateCreated" />
    <collection propertyName="Solutions" fieldName="solutions" targetExtentName="IssueSolutionsQueryExtent"
        childColumnNames="issueID" parentColumnNames="issueID"/>
  </extent>

  <extent extentName="UrlReportIssuesQueryExtent" typeName="ReportIssuesQueryType" tableName="UrlReport_Issues_Query">
    <compositeId>
      <parentRef propertyName="Report" fieldName="report" targetExtentName="UrlReportExtent" childColumnNames="urlId,osID"/>
      <property propertyName="IssueID" fieldName="issueID" columnName="issueID" />
    </compositeId>
    <property propertyName="IssueType" fieldName="issueType" columnName="issueType" />
    <property propertyName="IsResolved" fieldName="isResolved" columnName="isResolved" />
    <property propertyName="Cause" fieldName="cause" columnName="cause" />
    <property propertyName="Priority" fieldName="priority" columnName="priority" />
    <property propertyName="Provider" fieldName="provider" columnName="provider" />
    <property propertyName="SubProvider" fieldName="subProvider" columnName="subProvider" />
    <property propertyName="Severity" fieldName="severity" columnName="severity" />
    <property propertyName="Symptom" fieldName="symptom" columnName="symptom" />
    <property propertyName="PublishedDate" fieldName="publishedDate" columnName="publishedDate" />
    <property propertyName="DateCreated" fieldName="dateCreated" columnName="dateCreated" />
    <collection propertyName="Solutions" fieldName="solutions" targetExtentName="IssueSolutionsQueryExtent"
        childColumnNames="issueID" parentColumnNames="issueID"/>
  </extent>

  <extent extentName="IssueSolutionsQueryExtent" typeName="IssueSolutionsQueryType" tableName="Issue_Solutions_Query">
    <compositeId>
      <property propertyName="IssueID" fieldName="issueID" columnName="issueID" />
      <property propertyName="SolutionID" fieldName="solutionID" columnName="solutionID" />
    </compositeId>
    <property propertyName="Provider" fieldName="provider" columnName="provider" />
    <property propertyName="SubProvider" fieldName="subProvider" columnName="subProvider" />
    <property propertyName="PublishedDate" fieldName="publishedDate" columnName="publishedDate" />
    <property propertyName="DateModified" fieldName="dateModified" columnName="dateModified" />
    <property propertyName="SolutionType" fieldName="solutionType" columnName="solutionType" />
  </extent>

  <extent extentName="AppComputersQueryExtent" typeName="AppComputersQueryType" tableName="Application_Computers_Query">
    <compositeId>
      <parentRef propertyName="ParentObject" fieldName="parentObject" targetExtentName="ApplicationExtent" childColumnNames="appIdentity" parentColumnNames="appIdentity" />
      <property propertyName="MacAddress" fieldName="macAddress" columnName="macAddress" />
    </compositeId>
    <property propertyName="ServicePackMinor" fieldName="servicePackMinor" columnName="servicePackMinor" />
    <property propertyName="MachineName" fieldName="machineName" columnName="machineName" />
    <property propertyName="DomainName" fieldName="domainName" columnName="domainName" />
    <property propertyName="WindowsDirectory" fieldName="windowsDirectory" columnName="windowsDirectory" />
    <property propertyName="SystemDirectory" fieldName="systemDirectory" columnName="systemDirectory" />
    <property propertyName="RootPath" fieldName="rootPath" columnName="rootPath" />
    <property propertyName="Priority" fieldName="priority" columnName="priority" />
    <property propertyName="Ram" fieldName="ram" columnName="ram" />
    <property propertyName="AssetTag" fieldName="assetTag" columnName="assetTag" />
    <property propertyName="ChassisSerialNumber" fieldName="chassisSerialNumber" columnName="chassisSerialNumber" />
    <property propertyName="ChassisVendorName" fieldName="chassisVendorName" columnName="chassisVendorName" />
    <property propertyName="ProcessorVendorName" fieldName="processorVendorName" columnName="processorVendorName" />
    <property propertyName="ProcessorName" fieldName="processorName" columnName="processorName" />
    <property propertyName="ClockSpeed" fieldName="clockSpeed" columnName="clockSpeed" />
    <property propertyName="ProcessorArchitecture" fieldName="processorArchitecture" columnName="processorArchitecture" />
    <property propertyName="ProcessorFamily" fieldName="processorFamily" columnName="processorFamily" />
  </extent>

  <!-- Application query for categories -->
  <extent extentName="CategorizedApplicationQueryExtent" typeName="CategorizedQueryType" tableName="Categorized_Applications_Query">
    <compositeId>
      <parentRef propertyName="ParentObject" fieldName="parentObject" targetExtentName="ApplicationExtent"
          childColumnNames="appIdentity" parentColumnNames="appIdentity" />
      <property propertyName="CategoryName" fieldName="categoryName" columnName="category" />
      <property propertyName="SubCategoryName" fieldName="subCategoryName" columnName="subCategory" />
    </compositeId>
  </extent>
  <!-- Machine query for categories -->
  <extent extentName="CategorizedMachineQueryExtent" typeName="CategorizedQueryType" tableName="Categorized_Machines_Query">
    <compositeId>
      <parentRef propertyName="ParentObject" fieldName="parentObject" targetExtentName="LogicalMachineExtent"
          childColumnNames="osID,machineID" />
      <property propertyName="CategoryName" fieldName="categoryName" columnName="category" />
      <property propertyName="SubCategoryName" fieldName="subCategoryName" columnName="subCategory" />
    </compositeId>
  </extent>
  <!-- Website query for categories -->
  <extent extentName="CategorizedWebsiteQueryExtent" typeName="CategorizedQueryType" tableName="Categorized_Websites_Query">
    <compositeId>
      <parentRef propertyName="ParentObject" fieldName="parentObject" targetExtentName="UrlExtent" childColumnNames="ieceUrlId"/>
      <property propertyName="CategoryName" fieldName="categoryName" columnName="category"/>
      <property propertyName="SubCategoryName" fieldName="subCategoryName" columnName="subCategory"/>
    </compositeId>
  </extent>

  <extent extentName="CategorizedDeviceQueryExtent" typeName="CategorizedQueryType" tableName="Categorized_Devices_Query">
    <compositeId>
      <parentRef propertyName="ParentObject" fieldName="parentObject" targetExtentName="ReportDeviceListExtent" childColumnNames="osID,deviceID" />
      <property propertyName="CategoryName" fieldName="categoryName" columnName="category"/>
      <property propertyName="SubCategoryName" fieldName="subCategoryName" columnName="subCategory"/>
    </compositeId>
  </extent>

  <extent extentName="ApplicationTagExtent" typeName="ApplicationTag" tableName="Tagged_Applications">
    <compositeId>
      <parentRef propertyName="Application" fieldName="application" targetExtentName="ApplicationExtent" childColumnNames="appIdentity" parentColumnNames="appIdentity" />
      <property propertyName="Tag" fieldName="tag" columnName="tag"/>
    </compositeId>
  </extent>

  <extent extentName="MachineTagExtent" typeName="MachineTag" tableName="Tagged_Machines">
    <compositeId>
      <parentRef propertyName="Machine" fieldName="machine" targetExtentName="LogicalMachineExtent" childColumnNames="osID,machineID" />
      <property propertyName="Tag" fieldName="tag" columnName="tag"/>
    </compositeId>
  </extent>

  <!-- Device query for categories -->
  <association associationName='Apps_SubCategories' tableName='Categorized_Applications'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <participant participantName='Application' targetExtentName='ApplicationExtent' childColumnNames='appIdentity'
        parentColumnNames='appIdentity' />
    <participant participantName='SubCategory' targetExtentName='SubCategory' childColumnNames='subCategoryId,categoryId' />
  </association>
  <association associationName='Computers_SubCategories' tableName='Categorized_Machines'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <participant participantName='Computer' targetExtentName='LogicalMachineExtent' childColumnNames='osID,machineID' />
    <participant participantName='SubCategory' targetExtentName='SubCategory' childColumnNames='subCategoryId,categoryId' />
  </association>
  <association associationName='Devices_SubCategories' tableName='Categorized_Devices'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <participant participantName='Device' targetExtentName='ReportDeviceListExtent' childColumnNames='osID,deviceID' />
    <participant participantName='SubCategory' targetExtentName='SubCategory' childColumnNames='subCategoryId,categoryId' />
  </association>
  <association associationName='Websites_SubCategories' tableName='Categorized_Websites'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <participant participantName='Url' targetExtentName='UrlExtent' childColumnNames='ieceUrlId'/>
    <participant participantName='SubCategory' targetExtentName='SubCategory' childColumnNames='subCategoryId,categoryId'/>
  </association>
  <association associationName="AppInstalledOnComputers" tableName="App_Installed_On_Machine">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <participant participantName="Application" targetExtentName="ApplicationExtent" childColumnNames="appIdentity"
        parentColumnNames="appIdentity" />
    <participant participantName="Computer" targetExtentName="LogicalMachineExtent" childColumnNames="osID,machineID" />
  </association>
  <extent typeName='OperatingSystem' extentName='OperatingSystem' tableName='OS'>
    <id propertyName='OsId' fieldName='osId' columnName='osID' />
    <property propertyName='Name' fieldName='name' columnName='osName' />
    <property propertyName='MajorVersion' fieldName='majorVersion' columnName='majorVersion' />
    <property propertyName='MinorVersion' fieldName='minorVersion' columnName='minorVersion' />
    <property propertyName='BuildNumber' fieldName='buildNumber' columnName='buildNumber' />
    <property propertyName='ServicePackMajor' fieldName='servicePackMajor' columnName='servicePackMajor' />
    <property propertyName='ServicePackMinor' fieldName='servicePackMinor' columnName='servicePackMinor' />
    <property propertyName='CsdVersion' fieldName='csdVersion' columnName='csdVersion' />
    <property propertyName='ProductType' fieldName='productType' columnName='productType' />
    <property propertyName='Suite' fieldName='suite' columnName='suite' />
    <property propertyName="ServicePackName" fieldName="servicePackName" columnName="servicePackName" />
    <property propertyName="PublishedDate" fieldName="publishedDate" columnName="publishedDate" />
  </extent>

  <extent typeName="LpsStatusType" extentName="LpsStatus" tableName="LPS_Status">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Read,Update" />
    </accessControlList>
    <compositeId>
      <property propertyName="LogType" fieldName="logType" columnName="logType" />
    </compositeId>
    <property propertyName="TotalSuccess" fieldName="totalSuccess" columnName="totalSuccess" />
    <property propertyName="LastSuccessTime" fieldName="lastSuccessTime" columnName="lastSuccessTime" />
    <property propertyName="TotalFailures" fieldName="totalFailures" columnName="totalFailures" />
    <property propertyName="LastFailureTime" fieldName="lastFailureTime" columnName="lastFailureTime" />
  </extent>

  <extent typeName="DeploymentEnabledOSType" extentName="DeploymentEnabledOS" tableName="Deployment_Enabled_OSes">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Read,Update" />
    </accessControlList>
    <compositeId>
      <property propertyName="OsId" fieldName="osId" columnName="osID" />
    </compositeId>
    <property propertyName="Enabled" fieldName="enabled" columnName="enabled" />
    <property propertyName="LastSyncTime" fieldName="lastSyncTime" columnName="lastSyncTime" />
  </extent>

  <extent typeName="ApplicationGroupType" extentName="ApplicationGroupExtent" tableName="Application_Groups">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <property propertyName="GroupID" fieldName="groupID" columnName="groupID" />
    </compositeId>
    <property propertyName="HeaderApp" fieldName="headerApp" columnName="headerApp" />
    <property propertyName="ComputerCount" fieldName="computerCount" columnName="computerCount" readOnly="true"/>
    <property propertyName="AppCount" fieldName="appCount" columnName="appCount" readOnly="true"/>
    <property propertyName="SendMyIssues" fieldName="sendMyIssues" columnName="sendMyIssues" />
  </extent>

    <extent typeName="ApplicationType" extentName="ApplicationExtent" tableName="Applications">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <generatedIdProperty propertyName='AppIdentity' fieldName='appIdentity' columnName='appIdentity' generated='true'
          type='Identity' />
    </compositeId>
    <property propertyName="AppID" fieldName="appID" columnName="appID" />
    <property propertyName="ProgramID" fieldName="programID" columnName="programID" />
    <property propertyName="MemberOf" fieldName="memberOf" columnName="memberOf" />
    <property propertyName="ComputerCount" fieldName="computerCount" columnName="computerCount" readOnly="true"/>
    <property propertyName="PartialKeyHash" fieldName="partialKeyHash" columnName="partial_key_hash" />
    <property propertyName="AttribMatchString" fieldName="attribMatchString" columnName="attrib_match_string" />
    <property propertyName="AppType" fieldName="appType" columnName="Type" />
    <property propertyName="AppName" fieldName="appName" columnName="appName" />
    <property propertyName="VendorName" fieldName="vendorName" columnName="vendorName" />
    <property propertyName="Version" fieldName="version" columnName="version" />
    <property propertyName="Language" fieldName="language" columnName="language" />
    <property propertyName="IsOsComponent" fieldName="isOsComponent" columnName="osComponent" />
    <property propertyName="Priority" fieldName="priority" columnName="priority" />
    <property propertyName="TimeFirstFound" fieldName="timeFirstFound" columnName="timeFound" />
    <property propertyName="Checksum" fieldName="checksum" columnName="checksum" />
    <property propertyName="LastSyncTime" fieldName="lastSyncTime" columnName="lastSyncTime" />
    <collection propertyName="Tags" fieldName="tags" targetExtentName="ApplicationTagExtent"
            childColumnNames="appIdentity" parentColumnNames="appIdentity" />
    <collection propertyName="AssociatedIssues" fieldName="associatedIssues" targetExtentName="IssueAssociatedWithAppExtent"
        childColumnNames="appIdentity" parentColumnNames="appIdentity" />
    <!-- Required association for SubCategories -->
    <associationCollection propertyName='Categories' fieldName='categories' associationName='Apps_SubCategories'
        participantName='Application' treatAsBinary='true'>
      <valueType typeName='ApplicationCategory'>
        <ref participantName='Application' propertyName='Application' fieldName='application' />
        <ref participantName='SubCategory' propertyName='SubCategory' fieldName='subCategory' />
      </valueType>
    </associationCollection>
    <associationCollection propertyName='Computers' fieldName='computers' associationName='AppInstalledOnComputers'
        participantName='Application' treatAsBinary='true'>
      <valueType typeName='ApplicationComputer'>
        <ref participantName='Computer' propertyName='Computer' fieldName='computer' />
        <ref participantName='Application' propertyName='Application' fieldName='application' />
      </valueType>
    </associationCollection>
    <!-- Collection for queries on categories -->
    <collection propertyName="CategoriesQuery" fieldName="categoriesQuery" targetExtentName="CategorizedApplicationQueryExtent"
        childColumnNames="appIdentity" parentColumnNames="appIdentity" />

    <collection
        propertyName="AppComputersQuery"
        fieldName="appComputersQuery"
        targetExtentName="AppComputersQueryExtent"
        childColumnNames="appIdentity" parentColumnNames="appIdentity" />
  </extent>
  <association associationName='Issue_AffectedOs' tableName='Issue_Affects_OS'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <participant participantName='Issue' targetExtentName='IssueExtent' childColumnNames='issueID,issueType' />
    <participant participantName='DeploymentOs' targetExtentName='DeploymentOsExtent' childColumnNames='osID' />
  </association>
  <association associationName='Issue_Solution' tableName='IssueSolution'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <participant participantName='Issue' targetExtentName='IssueExtent' childColumnNames='issueID,issueType' />
    <participant participantName='Solution' targetExtentName='SolutionExtent' childColumnNames='solutionID' />
  </association>
  <extent typeName="IssueType" extentName="IssueExtent" tableName="Issues">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <property propertyName="IssueId" fieldName="issueId" columnName="issueID" />
      <property propertyName="IssueType" fieldName="issueType" columnName="issueType" />
    </compositeId>
    <property propertyName="AppIdentity" fieldName="appIdentity" columnName="appIdentity" />
    <property propertyName="PartialKeyHash" fieldName="partialKeyHash" columnName="partial_key_hash" />
    <property propertyName="AttribMatchString" fieldName="attribMatchString" columnName="attrib_match_string" />
    <property propertyName="Provider" fieldName="provider" columnName="provider" />
    <property propertyName="SubProvider" fieldName="subProvider" columnName="subProvider" />
    <property propertyName="Severity" fieldName="severity" columnName="severity" />
    <property propertyName="Priority" fieldName="priority" columnName="priority" />
    <property propertyName="Symptom" fieldName="symptom" columnName="symptom" />
    <property propertyName="Cause" fieldName="cause" columnName="cause" />
    <versioning type="Timestamp" useUniversalTime="true" propertyName="PublishedDate" fieldName="publishedDate"
        columnName="publishedDate" generated="true" />
    <property propertyName="IsDeleted" fieldName="isDeleted" columnName="deleteMarker" />
    <property propertyName="IsStateDependent" fieldName="isStateDependent" columnName="isStateDependent" />
    <property propertyName="DateCreated" fieldName="dateCreated" columnName="dateCreated" />
    <property propertyName="MyIssue" fieldName="myIssue" columnName="myIssue" />
   
    <!-- Required association for affectedOs -->
    <associationCollection propertyName='AffectedOsList' fieldName='affectedOsList' associationName='Issue_AffectedOs'
        participantName='Issue' treatAsBinary='true'>
      <valueType typeName='IssueAffectsOs'>
        <ref participantName='Issue' propertyName='Issue' fieldName='issue' />
        <ref participantName='DeploymentOs' propertyName='DeploymentOs' fieldName='os' />
      </valueType>
    </associationCollection>
    <!-- Required association for solutions -->
    <associationCollection propertyName='Solutions' fieldName='solutions' associationName='Issue_Solution'
        participantName='Issue' treatAsBinary='false'>
      <valueType typeName='IssueSolutionOs'>
        <ref participantName='Issue' propertyName='Issue' fieldName='issue' />
        <ref participantName='Solution' propertyName='Solution' fieldName='solution' />
      </valueType>
    </associationCollection>
    <collection propertyName='Applications' fieldName='applications' targetExtentName='IssueAssociatedWithAppExtent'
        childColumnNames="issueID,issueType" parentColumnNames="issueID,issueType" />
    <collection propertyName='Websites' fieldName='websites' targetExtentName='IssueAssociatedWithUrlExtent'
        childColumnNames="issueID,issueType" parentColumnNames="issueID,issueType" />
  </extent>
  <extent typeName='LocalizedIssueType' extentName='LocalizedIssueExtent' tableName='Localized_Issue'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <property propertyName='LocaleId' fieldName='localeId' columnName='locale' />
      <parentRef propertyName="Issue" fieldName="issueRef" targetExtentName="IssueExtent" childColumnNames="issueID,issueType"
          parentColumnNames="issueID,issueType" />
    </compositeId>
    <property propertyName="IssueId" fieldName="issueId" columnName="issueID" readOnly="true" />
    <property propertyName="IssueType" fieldName="issueType" columnName="issueType" readOnly="true" />
    <property propertyName='Title' fieldName='title' columnName='title' />
    <property propertyName='Details' fieldName='details' columnName='Details' />
    <property propertyName='LinkHref' fieldName='linkHref' columnName='linkHref' />
    <property propertyName='LinkTitle' fieldName='linkTitle' columnName='linkTitle' />
    <property propertyName='ReproSteps' fieldName='reproSteps' columnName='reproSteps' />
    <property propertyName='ExpectedResult' fieldName='expectedResult' columnName='expectedResult' />
    <versioning type="Timestamp" propertyName="Timestamp" fieldName="timestamp" columnName="LastUpdatedDateTime"
        generated="true" />
  </extent>
  <extent typeName="IssueAffectsOSType" extentName="IssueAffectsOSExtent" tableName="Issue_Affects_OS">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <property propertyName="OsId" fieldName="osId" columnName="osID" />
      <parentRef propertyName="Issue" fieldName="issueRef" targetExtentName="IssueExtent" childColumnNames="issueID,issueType"
          parentColumnNames="issueID,issueType" />
    </compositeId>
    <property propertyName="IssueId" fieldName="issueId" columnName="issueID" readOnly="true" />
    <property propertyName="IssueType" fieldName="issueType" columnName="issueType" readOnly="true" />
  </extent>
  <extent typeName="IssueAssociatedWithAppType" extentName="IssueAssociatedWithAppExtent"
      tableName="Issues_Associated_With_App">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <parentRef propertyName="Issue" fieldName="issueRef" targetExtentName="IssueExtent" childColumnNames="issueID,issueType"
          parentColumnNames="issueID,issueType" />
      <objectRef propertyName="Application" fieldName="application" targetExtentName="ApplicationExtent"
          childColumnNames="appIdentity" parentColumnNames="appIdentity" />
    </compositeId>
    <property propertyName="IssueId" fieldName="issueId" columnName="issueID" readOnly="true" />
    <property propertyName="IssueType" fieldName="issueType" columnName="issueType" readOnly="true" />
    <property propertyName="AppIdentity" fieldName="appIdentity" columnName="appIdentity" readOnly="true" />
    <property propertyName="IsResolved" fieldName="isResolved" columnName="isResolved" />
  </extent>

  <extent typeName='AppGroupReportType' extentName='AppGroupReportExtent' tableName='ApplicationGroup_Report'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Read,Update" />
    </accessControlList>
    <compositeId>
      <property propertyName="GroupID" fieldName="groupID" columnName="groupID" />
      <property propertyName='OsId' fieldName='osid' columnName='osID' />
    </compositeId>
    <property propertyName='CompatibilityRating32' fieldName='compatibilityRating32' columnName='CompatibilityRating32' readOnly='true' />
    <property propertyName='CompatibilityRating64' fieldName='compatibilityRating64' columnName='CompatibilityRating64' readOnly='true' />
    <property propertyName='Works32' fieldName='works32' columnName='Works32' readOnly='true' />
    <property propertyName='PartiallyWorks32' fieldName='partiallyWorks32' columnName='PartiallyWorks32' readOnly='true' />
    <property propertyName='DoesNotWork32' fieldName='doesNotWork32' columnName='DoesNotWork32' readOnly='true' />
    <property propertyName='Works64' fieldName='works64' columnName='Works64' readOnly='true' />
    <property propertyName='PartiallyWorks64' fieldName='partiallyWorks64' columnName='PartiallyWorks64' readOnly='true' />
    <property propertyName='DoesNotWork64' fieldName='doesNotWork64' columnName='DoesNotWork64' readOnly='true' />
    <property propertyName='UAWorks32' fieldName='uaworks32' columnName='UAWorks32' readOnly='true' />
    <property propertyName='UAPartiallyWorks32' fieldName='uapartiallyWorks32' columnName='UAPartiallyWorks32' readOnly='true' />
    <property propertyName='UADoesNotWork32' fieldName='uadoesNotWork32' columnName='UADoesNotWork32' readOnly='true' />
    <property propertyName='UAWorks64' fieldName='uaworks64' columnName='UAWorks64' readOnly='true' />
    <property propertyName='UAPartiallyWorks64' fieldName='uapartiallyWorks64' columnName='UAPartiallyWorks64' readOnly='true' />
    <property propertyName='UADoesNotWork64' fieldName='uadoesNotWork64' columnName='UADoesNotWork64' readOnly='true' />
    <property propertyName='ActiveIssueCount' fieldName='activeIssueCount' columnName='activeIssueCount'
    readOnly='true' />
    <property propertyName='ResolvedIssueCount' fieldName='resolvedIssueCount' columnName='resolvedIssueCount'
        readOnly='true' />
  </extent>

  <extent typeName='AppReportType' extentName='AppReportExtent' tableName='Application_Report'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Read,Update" />
    </accessControlList>
    <compositeId>
      <property propertyName="AppIdentity" fieldName="appIdentity" columnName="appIdentity" />
      <property propertyName='OsId' fieldName='osid' columnName='osID' />
    </compositeId>
    <property propertyName='MyRating32' fieldName='myRating32' columnName='myRating32' />
    <property propertyName='MyRating64' fieldName='myRating64' columnName='myRating64' />
    <property propertyName='CompatibilityRating32' fieldName='compatibilityRating32' columnName='CompatibilityRating32' readOnly='true' />
    <property propertyName='SolutionType32' fieldName='solutionType32' columnName='SolutionType32' readOnly='true' />
    <property propertyName='CompatibilityRating64' fieldName='compatibilityRating64' columnName='CompatibilityRating64' readOnly='true' />
    <property propertyName='SolutionType64' fieldName='solutionType64' columnName='SolutionType64' readOnly='true' />
    <versioning type="Counter" propertyName="Version" fieldName="version" columnName="version" generated="true" />
    <property propertyName='Works32' fieldName='works32' columnName='Works32' readOnly='true' />
    <property propertyName='PartiallyWorks32' fieldName='partiallyWorks32' columnName='PartiallyWorks32' readOnly='true' />
    <property propertyName='DoesNotWork32' fieldName='doesNotWork32' columnName='DoesNotWork32' readOnly='true' />
    <property propertyName='Works64' fieldName='works64' columnName='Works64' readOnly='true' />
    <property propertyName='PartiallyWorks64' fieldName='partiallyWorks64' columnName='PartiallyWorks64' readOnly='true' />
    <property propertyName='DoesNotWork64' fieldName='doesNotWork64' columnName='DoesNotWork64' readOnly='true' />
    <property propertyName='UAWorks32' fieldName='uaworks32' columnName='UAWorks32' readOnly='true' />
    <property propertyName='UAPartiallyWorks32' fieldName='uapartiallyWorks32' columnName='UAPartiallyWorks32' readOnly='true' />
    <property propertyName='UADoesNotWork32' fieldName='uadoesNotWork32' columnName='UADoesNotWork32' readOnly='true' />
    <property propertyName='UAWorks64' fieldName='uaworks64' columnName='UAWorks64' readOnly='true' />
    <property propertyName='UAPartiallyWorks64' fieldName='uapartiallyWorks64' columnName='UAPartiallyWorks64' readOnly='true' />
    <property propertyName='UADoesNotWork64' fieldName='uadoesNotWork64' columnName='UADoesNotWork64' readOnly='true' />
    <property propertyName='ActiveIssueCount' fieldName='activeIssueCount' columnName='activeIssueCount'
        readOnly='true' />
    <property propertyName='ResolvedIssueCount' fieldName='resolvedIssueCount' columnName='resolvedIssueCount'
        readOnly='true' />
    <property propertyName='DeploymentStatus' fieldName='deploymentStatus' columnName='deploymentStatus' />
    <property propertyName='SolutionCount' fieldName='solutionCount' columnName='solutionCount' />

    <!-- Query collection for issues -->
    <collection propertyName='IssuesQuery' fieldName='issuesQuery' targetExtentName='AppReportIssuesQueryExtent' childColumnNames="appIdentity,osID"/>
  </extent>

  <extent extentName='AppInstalledOnMachineExtent' typeName='AppInstalledOnMachineType' tableName='App_Installed_On_Machine'>
    <accessControlList>
      <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete' />
    </accessControlList>
    <compositeId>
      <property propertyName='OsId' fieldName='osId' columnName='osID' />
      <property propertyName="AppIdentity" fieldName="appIdentity" columnName="appIdentity" />
      <property propertyName='MachineID' fieldName='machineID' columnName='machineID' />
    </compositeId>
  </extent>

  <extent extentName='UserMachineExtent' typeName='UserMachineType' tableName='UserMachine'>
    <accessControlList>
      <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete' />
    </accessControlList>
    <compositeId>
      <property propertyName="UserMachineID" fieldName="userMachineID" columnName="userMachineID" />
    </compositeId>
    <property propertyName='UserID' fieldName='userID' columnName='userID' />
    <property propertyName='MachineID' fieldName='machineID' columnName='machineID' />
    <property propertyName='OsId' fieldName='osId' columnName='osID' />
  </extent>

  <extent extentName='UserExtent' typeName='UserType' tableName='Users'>
    <accessControlList>
      <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete' />
    </accessControlList>
    <compositeId>
      <property propertyName='UserID' fieldName='userID' columnName='userID' />
    </compositeId>
    <property propertyName='UserName' fieldName='userName' columnName='userName' />
  </extent>

  <extent extentName='LogicalMachineExtent' typeName='LogicalMachine' tableName='Machines'>
    <accessControlList>
      <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete' />
    </accessControlList>
    <compositeId>
      <property propertyName='OsId' fieldName='osID' columnName='osID' />
      <property propertyName='MachineID' fieldName='machineID' columnName='machineID' />
    </compositeId>
    <property propertyName="DeviceCount" fieldName="deviceCount" columnName="deviceCount" readOnly="true" />
    <property propertyName="AppCount" fieldName="appCount" columnName="appCount" readOnly="true" />
    <property propertyName="MacAddress" fieldName="macAddress" columnName="macAddress" readOnly="true" />
    <property propertyName='SevicePackMinor' fieldName='servicePackMinor' columnName='servicePackMinor' />
    <property propertyName='MachineName' fieldName='machineName' columnName='machineName' />
    <property propertyName='DomainName' fieldName='domainName' columnName='domainName' />
    <property propertyName='WindowsDirectory' fieldName='windowsDirectory' columnName='windowsDirectory' />
    <property propertyName='SystemDirectory' fieldName='systemDirectory' columnName='systemDirectory' />
    <property propertyName='RootPath' fieldName='rootPath' columnName='rootPath' />
    <property propertyName="Priority" fieldName="priority" columnName="priority" />
    <property propertyName="ChassisVendorName" fieldName="chassisVendorName" columnName="chassisVendorName" />
    <property propertyName="AssetTag" fieldName="assetTag" columnName="assetTag" />
    <property propertyName="SerialNumber" fieldName="serialNumber" columnName="chassisSerialNumber" />
    <property propertyName="HwId" fieldName="smsHwId" columnName="smsHwId" />
    <property propertyName="Ram" fieldName="ram" columnName="ram" />
    <clientComputedProperty propertyName="RamMB" fieldName="ramMB" fromMethod="Microsoft.ApplicationExperience.ApplicationCompatibilityToolkit.ApplicationCompatibilityManager.ComputedProperties.MBFromBytes"
        fromColumns="ram" />
    <property propertyName="ProcessorSpeed" fieldName="processorSpeed" columnName="clockSpeed" />
    <property propertyName="ProcessorVendorName" fieldName="processorVendorName" columnName="processorVendorName" />
    <property propertyName="ProcessorName" fieldName="processorName" columnName="processorName" />
    <property propertyName="ProcessorArchitecture" fieldName="processorArchitecture" columnName="processorArchitecture" />
    <property propertyName="ProcessorFamily" fieldName="processorFamily" columnName="processorFamily" />
    <!-- Required association for SubCategories -->
    <associationCollection propertyName='Categories' fieldName='categories' associationName='Computers_SubCategories'
        participantName='Computer' treatAsBinary='true'>
      <valueType typeName='ComputerCategory'>
        <ref participantName='Computer' propertyName='Computer' fieldName='computer' />
        <ref participantName='SubCategory' propertyName='SubCategory' fieldName='subCategory' />
      </valueType>
    </associationCollection>
    <associationCollection propertyName='Applications' fieldName='computers' associationName='AppInstalledOnComputers'
        participantName='Computer' treatAsBinary='true'>
      <valueType typeName='ApplicationComputer'>
        <ref participantName='Computer' propertyName='Computer' fieldName='computer' />
        <ref participantName='Application' propertyName='Application' fieldName='application' />
      </valueType>
    </associationCollection>
    <!-- Collection for queries on categories -->
    <collection propertyName="Tags" fieldName="tags" targetExtentName="MachineTagExtent"
            childColumnNames="osID,machineID" />
    <collection propertyName="CategoriesQuery" fieldName="categoriesQuery" targetExtentName="CategorizedMachineQueryExtent"
        childColumnNames="osID,machineID" />
    <collection propertyName="IPAddresses" fieldName="ipAddresses" targetExtentName="IPAddressMachineExtent"
        childColumnNames="osID,machineID" parentColumnNames="osID,machineID" />
    <collection propertyName="Devices" fieldName="devices" targetExtentName="PhysicalMachineDeviceExtent"
        childColumnNames="osID,machineID" parentColumnNames="osID,MachineID" />
  </extent>

  <extent typeName="PhysicalMachineDevice" extentName="PhysicalMachineDeviceExtent" tableName="Machines_Devices">
    <accessControlList>
      <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete' />
    </accessControlList>
    <compositeId>
      <property propertyName="MachineID" fieldName="machineID" columnName="MachineID" />
      <objectRef propertyName="Device" fieldName="device" targetExtentName="DeviceExtent" childColumnNames="deviceID,deviceType"
          parentColumnNames="deviceID,deviceType" />
    </compositeId>
  </extent>
  <extent typeName="PnPDevice" extentName="ActPnPDeviceExtent" tableName="PnPDevice_Machines">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <property propertyName="DeviceId" fieldName="deviceId" columnName="deviceID" />
      <property propertyName="MachineID" fieldName="machineID" columnName="MachineID" />
    </compositeId>
  </extent>
  <polymorphicExtent typeName="Device" extentName="DeviceExtent" tableName="Devices" discriminatorColumn="deviceType"
      discriminatorValue="DeviceType">
    <accessControlList>
      <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete' />
    </accessControlList>
    <compositeId>
      <property propertyName="DeviceId" fieldName="deviceId" columnName="deviceID" />
      <property propertyName="DeviceType" fieldName="deviceType" columnName="deviceType" />
    </compositeId>
    <property propertyName="DeviceName" fieldName="deviceName" columnName="deviceName" />
    <property propertyName="VendorName" fieldName="vendorName" columnName="vendorName" />
    <subclass typeName="DisplayType" parentTypeName="Device" discriminatorValue="Display">
      <property propertyName="ChipType" fieldName="chipType" columnName="chipType" />
      <property propertyName="VideoRAM" fieldName="videoRAM" columnName="videoRAM" />
      <clientComputedProperty propertyName="VideoRAMMB" fieldName="videoRAMMB" fromMethod="Microsoft.ApplicationExperience.ApplicationCompatibilityToolkit.ApplicationCompatibilityManager.ComputedProperties.MBFromBytes"
          fromColumns="videoRAM" />
    </subclass>
    <subclass typeName="DiskType" parentTypeName="Device" discriminatorValue="Drive">
      <property propertyName="DriveLetter" fieldName="driveLetter" columnName="driveLetter" />
      <property propertyName="SpaceAvailable" fieldName="spaceAvailable" columnName="spaceAvailable" />
      <property propertyName="FileSystemType" fieldName="fileSystemType" columnName="fileSystemType" />
      <property propertyName="Capacity" fieldName="capacity" columnName="capacity" />
      <clientComputedProperty propertyName="CapacityGB" fieldName="capacityGB" fromMethod="Microsoft.ApplicationExperience.ApplicationCompatibilityToolkit.ApplicationCompatibilityManager.ComputedProperties.GBFromBytes"
          fromColumns="capacity" />
      <clientComputedProperty propertyName="SpaceAvailableGB" fieldName="spaceAvailableGB" fromMethod="Microsoft.ApplicationExperience.ApplicationCompatibilityToolkit.ApplicationCompatibilityManager.ComputedProperties.GBFromBytes"
          fromColumns="spaceAvailable" />
    </subclass>
  </polymorphicExtent>

  <extent typeName="AppSummaryReportType" extentName="AppSummaryReportExtent" tableName="Summary_Reports">
    <accessControlList>
      <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete' />
    </accessControlList>
    <compositeId>
      <property propertyName="Type" fieldName="type" columnName="type" />
      <property propertyName="Os" fieldName="os" columnName="osid" />
    </compositeId>
    <property propertyName="NotWorking" fieldName="notWorking" columnName="notWorking" />
    <property propertyName="MinorIssue" fieldName="minorIssue" columnName="minorIssue" />
    <property propertyName="NoKnownIssue" fieldName="noKnownIssue" columnName="noKnownIssue" />
    <property propertyName="NoData" fieldName="noData" columnName="noData" />
    <property propertyName="Total" fieldName="total" columnName="total" />
  </extent>

  <extent typeName="AttachedFile" extentName="AttachedFileExtent" tableName="AttachedFile">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <property propertyName="AttachedFileID" fieldName="attachedFileID" columnName="attachedFileID" />
    </compositeId>
    <property propertyName="AttachedFileBlob" fieldName="attachedFileBlob" columnName="attachedFileBlob" />
  </extent>

  <extent typeName="IPAddress" extentName="IPAddressMachineExtent" tableName="IPAddress_Machine">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <property propertyName="IPAddress" fieldName="ipAddress" columnName="IPAddress" />
      <property propertyName="MachineID" fieldName="machineID" columnName="machineID" />
    </compositeId>
  </extent>

  <!-- Computer Report Extent for displaying counts -->

  <extent typeName="ComputerReportType" extentName="ComputerReportExtent" tableName="Computer_Report">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Read,Update" />
    </accessControlList>
    <compositeId>
      <property propertyName="OsId" fieldName="osId" columnName="osID" />
      <property propertyName="DeploymentOsId" fieldName="deploymentOsId" columnName="depOsID" />
      <property propertyName="MachineID" fieldName="machineID" columnName="machineID" />
    </compositeId>
    <property propertyName="AppIssueCount" fieldName="appIssueCount" columnName="appIssueCount"
        readOnly='true' />
    <property propertyName="DeviceIssueCount" fieldName="deviceIssueCount" columnName="deviceIssueCount"
        readOnly='true' />
  </extent>

  <!-- Plymorphic Extent for Indicators -->
  <polymorphicExtent typeName="IndicatorType" extentName="IndicatorExtent" tableName="Application_Indicators"
      discriminatorColumn="type" discriminatorValue="ApplicationIndicators">
    <!-- Define the IDs -->
    <compositeId>
      <property propertyName="Id" fieldName="id" columnName="indicatorID" />
      <objectRef propertyName="ApplicationType" fieldName="applicationType" targetExtentName="ApplicationExtent"
          childColumnNames="appIdentity" parentColumnNames="appIdentity" />
    </compositeId>
    <property propertyName='GUID' fieldName='gUID' columnName='indicatorGUID' />
    <property propertyName='OsComponent' fieldName='osComponent' columnName='indicatorOsComponent' />
    <property propertyName='UniqueId' fieldName='uniqueId' columnName='indicatorUniqueId' />
    <property propertyName="TypeOfIndicator" fieldName="typeName" columnName="type" />
    <versioning type="Timestamp" propertyName="Timestamp" fieldName="timestamp" columnName="LastUpdatedDateTime"
        generated="true" />
    <!-- Sub Class MSI Type -->
    <subclass typeName="MsiType" parentTypeName="IndicatorType" discriminatorValue="Msi">
      <property propertyName="ProductName" fieldName="productName" columnName="msiProductName" />
      <property propertyName="CompanyName" fieldName="companyName" columnName="msiCompanyName" />
      <property propertyName="ProductVersion" fieldName="productVersion" columnName="msiProductVersion" />
      <property propertyName="InstallDate" fieldName="installDate" columnName="msiInstallDate" />
      <property propertyName="Language" fieldName="language" columnName="msiLanguageID" />
      <property propertyName="ProductId" fieldName="productId" columnName="msiProductGUID" />
      <property propertyName="PackageId" fieldName="packageId" columnName="msiPackageGUID" />
    </subclass>
    <!-- Sub Class Manifest Type -->
    <subclass typeName="ManifestType" parentTypeName="IndicatorType" discriminatorValue="Manifest">
      <property propertyName="Path" fieldName="path" columnName="mnftPath" />
      <property propertyName="ProductName" fieldName="productName" columnName="mnftProductName" />
      <property propertyName="CompanyName" fieldName="companyName" columnName="mnftCompanyName" />
      <property propertyName="ProductVersion" fieldName="productVersion" columnName="mnftProductVersion" />
      <property propertyName="Description" fieldName="description" columnName="mnftDescription" />
      <property propertyName="FileName" fieldName="fileName" columnName="mnftFileName" />
      <property propertyName="PublicKeyToken" fieldName="publicKeyToken" columnName="mnftPublicKeyToken" />
      <property propertyName="MnftType" fieldName="mnftType" columnName="mnftType" />
      <property propertyName="ProcessorArchitecture" fieldName="processorArchitecture" columnName="mnftProcessorArch" />
    </subclass>
    <!-- Sub Class WindowsComponent Type -->
    <subclass typeName="WindowsComponentType" parentTypeName="IndicatorType" discriminatorValue="WindowsComponent">
      <property propertyName="Path" fieldName="path" columnName="winPath" />
      <property propertyName="ProductName" fieldName="productName" columnName="winProductName" />
      <property propertyName="Description" fieldName="description" columnName="winDescription" />
      <property propertyName="Inf" fieldName="inf" columnName="winInfo" />
    </subclass>
    <!-- Sub Class ServiceControlManager Type -->
    <subclass typeName="ServiceControlManagerType" parentTypeName="IndicatorType" discriminatorValue="ServiceControlManager">
      <property propertyName="Directory" fieldName="directory" columnName="scmDirectory" />
      <property propertyName="DisplayName" fieldName="displayName" columnName="scmDisplayName" />
      <property propertyName="Path" fieldName="path" columnName="scmPath" />
      <property propertyName="Dll" fieldName="dll" columnName="scmDll" />
      <property propertyName="Name" fieldName="name" columnName="scmName" />
      <property propertyName="CommandLine" fieldName="commandLine" columnName="scmCommandLine" />
      <property propertyName="StartType" fieldName="startType" columnName="scmStartType" />
      <property propertyName="ServiceType" fieldName="serviceType" columnName="scmServiceType" />
      <property propertyName="SvcHost" fieldName="svcHost" columnName="scmSvcHost" />
    </subclass>
    <!-- Sub Class Directory Type -->
    <subclass typeName="DirectoryType" parentTypeName="IndicatorType" discriminatorValue="Directory">
      <property propertyName="Path" fieldName="path" columnName="dirPath" />
      <property propertyName="Name" fieldName="name" columnName="dirName" />
    </subclass>
    <!-- Sub Class AddRemoveProgram Type -->
    <subclass typeName="AddRemoveProgramType" parentTypeName="IndicatorType" discriminatorValue="AddRemoveProgram">
      <property propertyName="Path" fieldName="path" columnName="arpPath" />
      <property propertyName="RegistrySubKey" fieldName="registrySubKey" columnName="arpRegistrySubKey" />
      <property propertyName="RegistryPath" fieldName="registryPath" columnName="arpRegistryPath" />
      <property propertyName="DisplayName" fieldName="displayName" columnName="arpDisplayName" />
      <property propertyName="CompanyName" fieldName="companyName" columnName="arpCompanyName" />
      <property propertyName="ProductVersion" fieldName="productVersion" columnName="arpProductVersion" />
      <property propertyName="UninstallString" fieldName="uninstallString" columnName="arpUninstallString" />
      <property propertyName="LastUsed" fieldName="lastUsed" columnName="arpLastUsedDate" />
      <property propertyName="TimesUsed" fieldName="timesUsed" columnName="arpTimesUsed" />
      <property propertyName="Hotfix" fieldName="hotfix" columnName="arpHotfix" />
    </subclass>
    <!-- Sub Class Shell Type -->
    <subclass typeName="ShellType" parentTypeName="IndicatorType" discriminatorValue="Shell">
      <property propertyName="Path" fieldName="path" columnName="shellPath" />
      <property propertyName="ShellName" fieldName="shellName" columnName="shellName" />
      <property propertyName="ParentName" fieldName="parentName" columnName="shellParentName" />
      <property propertyName="LinkPath" fieldName="linkPath" columnName="shellLinkPath" />
      <property propertyName="LinkDirectory" fieldName="linkDirectory" columnName="shellLinkDirectory" />
      <property propertyName="TargetPath" fieldName="targetPath" columnName="shellTargetPath" />
      <property propertyName="TargetArg" fieldName="targetArg" columnName="shellTargetArg" />
      <property propertyName="FileName" fieldName="fileName" columnName="shellFileName" />
      <property propertyName="HasFolderSibling" fieldName="hasFolderSibling" columnName="shellHasFolderSibling" />
    </subclass>
    <!-- Sub Class App Path Type -->
    <subclass typeName="AppPathType" parentTypeName="IndicatorType" discriminatorValue="AppPath">
      <property propertyName="Path" fieldName="path" columnName="appPath" />
      <property propertyName="Name" fieldName="name" columnName="appName" />
      <property propertyName="FilePath" fieldName="filePath" columnName="appFilePath" />
      <property propertyName="RegistryPath" fieldName="registryPath" columnName="appRegistryPath" />
    </subclass>
    <!-- Sub Class Registry Type -->
    <subclass typeName="RegistryType" parentTypeName="IndicatorType" discriminatorValue="Registry">
      <property propertyName="Path" fieldName="path" columnName="regPath" />
      <property propertyName="RegistryPath" fieldName="registryPath" columnName="regRegistryPath" />
      <property propertyName="Name" fieldName="name" columnName="regName" />
      <property propertyName="File" fieldName="file" columnName="regFileName" />
      <property propertyName="CommandLine" fieldName="commandLine" columnName="regCommandLine" />
      <property propertyName="RegistryRun" fieldName="registryRun" columnName="regRegistryRun" />
    </subclass>
    <!-- Sub Class Path Env Var Type -->
    <subclass typeName="PathEnvVarType" parentTypeName="IndicatorType" discriminatorValue="PathEnvVar">
      <property propertyName="Path" fieldName="path" columnName="pevPath" />
      <property propertyName="Name" fieldName="name" columnName="pevName" />
      <property propertyName="RegistryPath" fieldName="registryPath" columnName="pevRegistryPath" />
    </subclass>
    <!-- Sub Class File Extension Type -->
    <subclass typeName="FileExtType" parentTypeName="IndicatorType" discriminatorValue="FileExt">
      <property propertyName="Path" fieldName="path" columnName="fexPath" />
      <property propertyName="RegistryPath" fieldName="registryPath" columnName="fexRegistryPath" />
      <property propertyName="File" fieldName="file" columnName="fexFile" />
      <property propertyName="Name" fieldName="name" columnName="fexName" />
      <property propertyName="Extension" fieldName="extension" columnName="fexExtension" />
    </subclass>
  </polymorphicExtent>

  <extent typeName='ArchitecturePreferences' extentName='ArchitecturePreferencesExtent' tableName='Architecture_Preferences'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Read,Update" />
    </accessControlList>
    <id propertyName='Identity' fieldName='identity' columnName='ID' />
    <property propertyName='X86Enabled' fieldName='x86enabled' columnName='x86enabled' />
    <property propertyName='X64Enabled' fieldName='x64enabled' columnName='x64enabled' />
  </extent>

  <extent typeName="ProvidersType" extentName="ProvidersExtent" tableName="Providers">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Read,Update" />
    </accessControlList>
    <compositeId>
      <property propertyName="Provider" fieldName="provider" columnName="provider" />
      <property propertyName="SubProvider" fieldName="subprovider" columnName="subProvider" />
    </compositeId>
  </extent>

  <extent typeName='ClientState' extentName='ClientStateDetailsExtent' tableName='Client_State_Details'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <id propertyName='Identity' fieldName='identity' columnName='ID' />
    <property propertyName='LastNewIssueMatch' fieldName='lastNewIssueMatch' columnName='Last_New_Issue_Match' />
    <property propertyName='LastStateMatch' fieldName='lastStateMatch' columnName='Last_State_Ind_Match' />
    <property propertyName='LastServerSync' fieldName='lastServerSync' columnName='Last_Server_Sync_Time' />
    <property propertyName='LastNewPropIssueMatch' fieldName='lastNewPropIssueMatch' columnName='Last_New_Prop_Issue_Match' />
    <property propertyName='LastClientSync' fieldName='lastClientSync' columnName='Last_Client_Sync_Time' />
  </extent>

  <extent typeName="DeploymentOsType" extentName="DeploymentOsExtent" tableName="Deployment_OS">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <id propertyName="OsId" fieldName="osId" columnName="osID" />
    <property propertyName="PublishedDate" fieldName="publishedDate" columnName="publishedDate" />
    <!-- Required association for issueAffectsOs -->
    <associationCollection propertyName='Issues' fieldName='issues' associationName='Issue_AffectedOs' participantName='DeploymentOs'
        treatAsBinary='true'>
      <valueType typeName='IssueAffectsOs'>
        <ref participantName='Issue' propertyName='Issue' fieldName='issue' />
        <ref participantName='DeploymentOs' propertyName='DeploymentOs' fieldName='os' />
      </valueType>
    </associationCollection>
  </extent>
  <extent typeName="SolutionType" extentName="SolutionExtent" tableName="Solution">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <property propertyName="SolutionId" fieldName="solutionId" columnName="solutionID" />
    </compositeId>
    <property propertyName="SolutionType" fieldName="solutionType" columnName="solutionType" />
    <property propertyName="Provider" fieldName="provider" columnName="provider" />
    <property propertyName="SubProvider" fieldName="subProvider" columnName="subProvider" />
    <versioning type="Timestamp" useUniversalTime="true" propertyName="PublishedDate" fieldName="publishedDate"
        columnName="publishedDate" generated="true" />
    <property propertyName="DateModified" fieldName="dateModified" columnName="dateModified" />
    <property propertyName="IsDeleted" fieldName="isDeleted" columnName="deleteMarker" />
    <!-- Required association for issues -->
    <associationCollection propertyName='Issues' fieldName='issues' associationName='Issue_Solution' participantName='Solution'
        treatAsBinary='false'>
      <valueType typeName='IssueSolutionOs'>
        <ref participantName='Issue' propertyName='Issue' fieldName='issue' />
        <ref participantName='Solution' propertyName='Solution' fieldName='solution' />
      </valueType>
    </associationCollection>
  </extent>
  <extent typeName="LocalizedSolutionType" extentName="LocalizedSolutionExtent" tableName="Localized_Solution">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <parentRef propertyName="Solution" fieldName="solutionRef" targetExtentName="SolutionExtent"
          childColumnNames="solutionID" parentColumnNames="solutionID" />
      <property propertyName="LocaleId" fieldName="localeId" columnName="locale" />
    </compositeId>
    <property propertyName="SolutionId" fieldName="solutionId" columnName="solutionID" readOnly="true" />
    <property propertyName="Title" fieldName="title" columnName="title" />
    <property propertyName="Details" fieldName="details" columnName="Details" />
    <property propertyName="LinkHref" fieldName="linkHref" columnName="linkHref" />
    <property propertyName="LinkTitle" fieldName="linkTitle" columnName="linkTitle" />
    <versioning type="Timestamp" propertyName="Timestamp" fieldName="timestamp" columnName="LastUpdatedDateTime"
        generated="true" />
  </extent>
  <extent typeName="IssueSolutionType" extentName="IssueSolutionExtent" tableName="IssueSolution">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <objectRef propertyName="Issue" fieldName="issueRef" targetExtentName="IssueExtent" childColumnNames="issueID,issueType" />
      <objectRef propertyName="Solution" fieldName="solutionRef" targetExtentName="SolutionExtent"
          childColumnNames="solutionID" parentColumnNames="solutionID" />
    </compositeId>
    <property propertyName="IssueId" fieldName="issueId" columnName="issueID" readOnly="true" />
    <property propertyName="IssueType" fieldName="issueType" columnName="issueType" readOnly="true" />
    <property propertyName="SolutionId" fieldName="solutionId" columnName="solutionID" readOnly="true" />
  </extent>
  <extent typeName="ReportDeviceListType" extentName="ReportDeviceListExtent" tableName="Device_Report_vw">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <property propertyName="OsId" fieldName="osId" columnName="osID" />
      <property propertyName="DeviceId" fieldName="deviceId" columnName="deviceID" />
    </compositeId>
    <property propertyName="Model" fieldName="model" columnName="model" />
    <property propertyName="Manufacturer" fieldName="manufacturer" columnName="manufacturer" />
    <property propertyName="Class" fieldName="class" columnName="class" />
    <property propertyName="CompatibilityRating32" fieldName="compatibilityRating32" columnName="CompatibilityRating32" />
    <property propertyName="CompatibilityRating64" fieldName="compatibilityRating64" columnName="CompatibilityRating64" />
    <property propertyName="Status" fieldName="status" columnName="status" />
    <property propertyName="NumOfComputers" fieldName="numOfComputers" columnName="computers" />
    <property propertyName="Priority" fieldName="priority" columnName="priority" />
    <!-- Required association for subcategories -->
    <associationCollection propertyName='Categories' fieldName='categories' associationName='Devices_SubCategories'
        participantName='Device' treatAsBinary='true'>
      <valueType typeName='DeviceCategory'>
        <ref participantName='Device' propertyName='Device' fieldName='device' />
        <ref participantName='SubCategory' propertyName='SubCategory' fieldName='subCategory' />
      </valueType>
    </associationCollection>
    <!-- Collection for queries on categories -->
    <collection propertyName="CategoriesQuery" fieldName="categoriesQuery" targetExtentName="CategorizedDeviceQueryExtent"
        childColumnNames="osID,deviceID" />
  </extent>
  <extent typeName='UrlType' extentName='UrlExtent' tableName='File_Opens_Url'>
    <accessControlList>
      <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete' />
    </accessControlList>
    <compositeId>
      <generatedIdProperty propertyName='UrlId' fieldName='urlId' columnName='ieceUrlId' generated='true'
    type='Identity' />
    </compositeId>
    <property propertyName="Url" fieldName="url" columnName="ieceUrlPath" />
    <property propertyName="Priority" fieldName="priority" columnName="priority" />
    <!-- Required association for SubCategories  -->
    <associationCollection propertyName='Categories' fieldName='categories' associationName='Websites_SubCategories'
        participantName='Url' treatAsBinary='true'>
      <valueType typeName='WebsiteCategory'>
        <ref participantName='Url' propertyName='Url' fieldName='url' />
        <ref participantName='SubCategory' propertyName='SubCategory' fieldName='subCategory' />
      </valueType>
    </associationCollection>
    <!-- Collection for queries on categories -->
    <collection propertyName="CategoriesQuery" fieldName="categoriesQuery" targetExtentName="CategorizedWebsiteQueryExtent"
        childColumnNames="ieceUrlId" />
  </extent>
  <extent typeName="IssueAssociatedWithUrlType" extentName="IssueAssociatedWithUrlExtent"
      tableName="Issues_Associated_With_Url">
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Create,Read,Update,Delete" />
    </accessControlList>
    <compositeId>
      <objectRef propertyName="Issue" fieldName="issueRef" targetExtentName="IssueExtent" childColumnNames="issueID,issueType"  />
      <objectRef propertyName="UrlRef" fieldName="urlRef" targetExtentName="UrlExtent" childColumnNames="urlID" parentColumnNames="ieceUrlId"/>
    </compositeId>
    <property propertyName="UrlId" fieldName="urlId" columnName="urlID" />
    <property propertyName="IssueId" fieldName="issueId" columnName="issueID" readOnly="true" />
    <property propertyName="IssueType" fieldName="issueType" columnName="issueType" readOnly="true" />
    <property propertyName='IsResolved' fieldName='isResolved' columnName='isResolved' />
  </extent>

  <!-- Url Report Extent to maitain Website related counts -->

  <extent typeName='UrlReportType' extentName='UrlReportExtent' tableName='Url_Report'>
    <accessControlList>
      <accessControlItem roleName="Default" accessType="Read,Update" />
    </accessControlList>
    <compositeId>
      <property propertyName="UrlId" fieldName="urlId" columnName="ieceUrlId" />
      <property propertyName='OsId' fieldName='osid' columnName='osID' />
    </compositeId>
    <versioning type="Counter" propertyName="Version" fieldName="version" columnName="version" generated="true" />
    <property propertyName='MyRating' fieldName='myRating' columnName='myRating' />
    <property propertyName='ActiveIssueCount' fieldName='activeIssueCount' columnName='activeIssueCount'
        readOnly='true' />
    <property propertyName='ResolvedIssueCount' fieldName='resolvedIssueCount' columnName='resolvedIssueCount'
        readOnly='true' />
    <property propertyName='DeploymentStatus' fieldName='deploymentStatus' columnName='deploymentStatus' />

    <!-- Query collection for issues -->
    <collection propertyName='IssuesQuery' fieldName='issuesQuery' targetExtentName='UrlReportIssuesQueryExtent' childColumnNames='ieceUrlId,osID'
        parentColumnNames='urlId,osID'/>
  </extent>

  <polymorphicExtent typeName="TimeLineEventType" extentName="TimeLineEventExtent" tableName="TimeLineEvents"
      discriminatorColumn="timeLineEventType" discriminatorValue="TimeLineEventDefault">
    <!-- Define the IDs -->
    <compositeId>
      <property propertyName="TimeLineEventId" fieldName="timeLineEventId" columnName="timeLineEventID" />
    </compositeId>
    <objectRef propertyName="AttachedFileObject" fieldName="attachedFileObject" targetExtentName="AttachedFileExtent" childColumnNames="feedbackAttachedFile" parentColumnNames="attachedFileID"/>
    <property propertyName="EventTimeStamp" fieldName="eventTimeStamp" columnName="eventTimeStamp" />
    <property propertyName="EventDescription" fieldName="eventDescription" columnName="timeLineEventDescription" />
    <property propertyName="PropertyType" fieldName="propertyType" columnName="timeLineEventType" readOnly="true" />
    <property propertyName="UserMachineId" fieldName="userMachineId" columnName="userMachineId"/>
    <property propertyName="AppIdentity" fieldName="appIdentity" columnName="appIdentity"/>
    <property propertyName="FeedbackAttachedFile" fieldName="feedbackAttachedFile" columnName="feedbackAttachedFile"/>
    <!-- Sub Class from PCA Event Type -->
    <subclass typeName="PCAEventBaseType" parentTypeName="TimeLineEventType" discriminatorValue="PcaEventType">
      <property propertyName="PcaExePath" fieldName="pcaExePath" columnName="pcaExePath"/>
    </subclass>
    <!-- Sub Class from PCA Event base Type -->
    <subclass typeName="PcaHelpedUserEvent" parentTypeName="PCAEventBaseType" discriminatorValue="PcaHelpedUserEvent">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaDeprecatedComponent" parentTypeName="PCAEventBaseType" discriminatorValue="PcaDeprecatedComponent">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaInstallFailure" parentTypeName="PCAEventBaseType" discriminatorValue="PcaInstallFailure">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaDWM" parentTypeName="PCAEventBaseType" discriminatorValue="PcaDWM">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaLaunch16BitApp" parentTypeName="PCAEventBaseType" discriminatorValue="PcaLaunch16BitApp">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaFaultTolerantHeap" parentTypeName="PCAEventBaseType" discriminatorValue="PcaFaultTolerantHeap">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaPinDLL" parentTypeName="PCAEventBaseType" discriminatorValue="PcaPinDLL">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaQuarantine" parentTypeName="PCAEventBaseType" discriminatorValue="PcaQuarantine">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaLegacyControlPanelApplet" parentTypeName="PCAEventBaseType" discriminatorValue="PcaLegacyControlPanelApplet">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaDllLoadFailure" parentTypeName="PCAEventBaseType" discriminatorValue="PcaDllLoadFailure">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaQuickAppTermination" parentTypeName="PCAEventBaseType" discriminatorValue="PcaQuickAppTermination">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaUnhandledException" parentTypeName="PCAEventBaseType" discriminatorValue="PcaUnhandledException">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaWRPAccessError" parentTypeName="PCAEventBaseType" discriminatorValue="PcaWRPAccessError">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaElevateCreateProcess" parentTypeName="PCAEventBaseType" discriminatorValue="PcaElevateCreateProcess">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <subclass typeName="PcaRegSvr32Failure" parentTypeName="PCAEventBaseType" discriminatorValue="PcaRegSvr32Failure">
      <property propertyName="PcaUserAction" fieldName="pcaUserAction" columnName="pcaUserAction"/>
      <property propertyName="PcaCompatibilityLayer" fieldName="pcaCompatibilityLayer" columnName="pcaCompatibilityLayer"/>
    </subclass>
    <!-- Sub Class from WerApplicationCrash Type -->
    <subclass typeName="WerApplicationCrash" parentTypeName="TimeLineEventType" discriminatorValue="WerApplicationCrash">
      <property propertyName="WerExePath" fieldName="werExePath" columnName="werExePath"/>
    </subclass>
    <!-- Sub Class from WerApplicationHang Type -->
    <subclass typeName="WerApplicationHang" parentTypeName="TimeLineEventType" discriminatorValue="WerApplicationHang">
      <property propertyName="WerExePath" fieldName="werExePath" columnName="werExePath"/>
    </subclass>
    <!-- Sub Class from SuaFileIssue Type -->
    <subclass typeName="SuaFileIssue" parentTypeName="TimeLineEventType" discriminatorValue="SuaFileIssue">
      <property propertyName="SuaExePath" fieldName="suaExePath" columnName="suaExePath"/>
      <property propertyName="SuaApiName" fieldName="suaApiName" columnName="suaApiName"/>
      <property propertyName="SuaMessage" fieldName="suaMessage" columnName="suaMessage"/>
    </subclass>
    <!-- Sub Class from SuaRegistryIssue Type -->
    <subclass typeName="SuaRegistryIssue" parentTypeName="TimeLineEventType" discriminatorValue="SuaRegistryIssue">
      <property propertyName="SuaExePath" fieldName="suaExePath" columnName="suaExePath"/>
      <property propertyName="SuaApiName" fieldName="suaApiName" columnName="suaApiName"/>
      <property propertyName="SuaMessage" fieldName="suaMessage" columnName="suaMessage"/>
    </subclass>
    <!-- Sub Class from SuaIniIssue Type -->
    <subclass typeName="SuaIniIssue" parentTypeName="TimeLineEventType" discriminatorValue="SuaIniIssue">
      <property propertyName="SuaExePath" fieldName="suaExePath" columnName="suaExePath"/>
      <property propertyName="SuaApiName" fieldName="suaApiName" columnName="suaApiName"/>
      <property propertyName="SuaMessage" fieldName="suaMessage" columnName="suaMessage"/>
    </subclass>
    <!-- Sub Class from SuaTokenIssue Type -->
    <subclass typeName="SuaTokenIssue" parentTypeName="TimeLineEventType" discriminatorValue="SuaTokenIssue">
      <property propertyName="SuaExePath" fieldName="suaExePath" columnName="suaExePath"/>
      <property propertyName="SuaApiName" fieldName="suaApiName" columnName="suaApiName"/>
      <property propertyName="SuaMessage" fieldName="suaMessage" columnName="suaMessage"/>
    </subclass>
    <!-- Sub Class from SuaPrivilegeIssue Type -->
    <subclass typeName="SuaPrivilegeIssue" parentTypeName="TimeLineEventType" discriminatorValue="SuaPrivilegeIssue">
      <property propertyName="SuaExePath" fieldName="suaExePath" columnName="suaExePath"/>
      <property propertyName="SuaApiName" fieldName="suaApiName" columnName="suaApiName"/>
      <property propertyName="SuaMessage" fieldName="suaMessage" columnName="suaMessage"/>
    </subclass>
    <!-- Sub Class from SuaNameSpaceIssue Type -->
    <subclass typeName="SuaNameSpaceIssue" parentTypeName="TimeLineEventType" discriminatorValue="SuaNameSpaceIssue">
      <property propertyName="SuaExePath" fieldName="suaExePath" columnName="suaExePath"/>
      <property propertyName="SuaApiName" fieldName="suaApiName" columnName="suaApiName"/>
      <property propertyName="SuaMessage" fieldName="suaMessage" columnName="suaMessage"/>
    </subclass>
    <!-- Sub Class from SuaOtherObjectIssue Type -->
    <subclass typeName="SuaOtherObjectIssue" parentTypeName="TimeLineEventType" discriminatorValue="SuaOtherObjectIssue">
      <property propertyName="SuaExePath" fieldName="suaExePath" columnName="suaExePath"/>
      <property propertyName="SuaApiName" fieldName="suaApiName" columnName="suaApiName"/>
      <property propertyName="SuaMessage" fieldName="suaMessage" columnName="suaMessage"/>
    </subclass>
    <!-- Sub Class from SuaProcessIssue Type -->
    <subclass typeName="SuaProcessIssue" parentTypeName="TimeLineEventType" discriminatorValue="SuaProcessIssue">
      <property propertyName="SuaExePath" fieldName="suaExePath" columnName="suaExePath"/>
      <property propertyName="SuaApiName" fieldName="suaApiName" columnName="suaApiName"/>
      <property propertyName="SuaMessage" fieldName="suaMessage" columnName="suaMessage"/>
    </subclass>
    <!-- Sub Class from SuaMitigation Type -->
    <subclass typeName="SuaMitigation" parentTypeName="TimeLineEventType" discriminatorValue="SuaMitigation">
      <property propertyName="SuaExePath" fieldName="suaExePath" columnName="suaExePath"/>
      <property propertyName="SuaShimName" fieldName="suaShimName" columnName="suaShimName"/>
      <property propertyName="SuaShimParam" fieldName="suaShimParam" columnName="suaShimParam"/>
    </subclass>
    <!-- Sub Class from ShimCompatibilityFixEvent Type -->
    <subclass typeName="ShimCompatibilityFixEvent" parentTypeName="TimeLineEventType" discriminatorValue="ShimCompatibilityFixEvent">
      <property propertyName="ShimExePath" fieldName="shimExePath" columnName="shimExePath"/>
      <property propertyName="ShimFixName" fieldName="shimFixName" columnName="shimFixName"/>
      <property propertyName="ShimFixId" fieldName="shimFixId" columnName="shimFixId"/>
      <property propertyName="ShimFlags" fieldName="shimFlags" columnName="shimFlags"/>
      <property propertyName="ShimParams" fieldName="shimParams" columnName="shimParams"/>
      <property propertyName="ShimFileVersion" fieldName="shimFileVersion" columnName="shimFileVersion"/>
      <property propertyName="ShimProductVersion" fieldName="shimProductVersion" columnName="shimProductVersion"/>
      <property propertyName="ShimCompanyName" fieldName="shimCompanyName" columnName="shimCompanyName"/>
      <property propertyName="ShimProductName" fieldName="shimProductName" columnName="shimProductName"/>
      <property propertyName="ShimLanguage" fieldName="shimLanguage" columnName="shimLanguage"/>
      <property propertyName="ShimExeBitness" fieldName="shimExeBitness" columnName="shimExeBitness"/>
    </subclass>
      <!-- Sub Class from PSR Event Type -->
    <subclass typeName="PsrEvent" parentTypeName="TimeLineEventType" discriminatorValue="PsrEvent">
      <property propertyName="PsrExePath" fieldName="psrExePath" columnName="psrExePath"/>
      <property propertyName="PsrDescription" fieldName="psrDescription" columnName="psrDescription"/>
    </subclass>
    <!-- Sub Class from GeneralFeedback Event Type -->
    <subclass typeName="GeneralFeedback" parentTypeName="TimeLineEventType" discriminatorValue="GeneralFeedback">
      <property propertyName="FeedbackTitle" fieldName="feedbackTitle" columnName="feedbackTitle"/>
      <property propertyName="FeedbackDetail" fieldName="feedbackDetails" columnName="feedbackDetails"/>
    </subclass>
    <!-- Sub Class from ApplicationFeedback Event Type -->
    <subclass typeName="ApplicationFeedback" parentTypeName="TimeLineEventType" discriminatorValue="ApplicationFeedback">
      <property propertyName="FeedbackTitle" fieldName="feedbackTitle" columnName="feedbackTitle"/>
      <property propertyName="FeedbackDetail" fieldName="feedbackDetails" columnName="feedbackDetails"/>
      <property propertyName="FeedbackRating" fieldName="feedbackRating" columnName="feedbackRating"/>
    </subclass>
    <!-- Sub Class from Iece Issue Event Type -->
    <subclass typeName="IeceEventType" parentTypeName="TimeLineEventType" discriminatorValue="IeceEventType">
      <property propertyName="UrlPath" fieldName="urlPath" columnName="ieceUrlPath"/>
      <property propertyName="UrlZone" fieldName="urlZone" columnName="ieceUrlZone"/>
      <property propertyName="MitigationCode" fieldName="mitigationCode" columnName="ieceMitigationCode"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceMimeHandling01" parentTypeName="IeceEventType" discriminatorValue="IeceMimeHandling01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="FileName" fieldName="fileName" columnName="ieceFileName"/>
      <property propertyName="CacheFileName" fieldName="cacheFileName" columnName="ieceCacheFileName"/>
      <property propertyName="HttpHeadCT" fieldName="httpHeadCT" columnName="ieceHttpHeadCT"/>
      <property propertyName="HttpHeadCD" fieldName="httpHeadCD" columnName="ieceHttpHeadCD"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceMimeHandling02" parentTypeName="IeceEventType" discriminatorValue="IeceMimeHandling02">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="CalcMimeType" fieldName="calcMimeType" columnName="ieceCalcMimeType"/>
      <property propertyName="CFExtProgID" fieldName="cFExtProgID" columnName="ieceCFExtProgID"/>
      <property propertyName="CLSIDMimeH" fieldName="cLSIDMimeH" columnName="ieceCLSIDMimeH"/>
      <property propertyName="CLSIDExtH" fieldName="cLSIDExtH" columnName="ieceCLSIDExtH"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceMimeHandling03" parentTypeName="IeceEventType" discriminatorValue="IeceMimeHandling03">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="MHProgID" fieldName="mHProgID" columnName="ieceMHProgId"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceWindowRestrictions01" parentTypeName="IeceEventType" discriminatorValue="IeceWindowRestrictions01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="WindowCommand" fieldName="windowCommand" columnName="ieceWindowCommand"/>
      <property propertyName="WindowsParam" fieldName="windowsParam" columnName="ieceWindowsParam"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceZoneElev01" parentTypeName="IeceEventType" discriminatorValue="IeceZoneElev01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="TargetURL" fieldName="targetURL" columnName="ieceTargetURL"/>
      <property propertyName="TargetZone" fieldName="targetZone" columnName="ieceTargetZone"/>
      <property propertyName="FailureMode" fieldName="failureMode" columnName="ieceFailureMode"/>
      <property propertyName="LoadingUrl" fieldName="loadingUrl" columnName="ieceLoadingUrl"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceBinaryBhvr01" parentTypeName="IeceEventType" discriminatorValue="IeceBinaryBhvr01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="BhvrUrl" fieldName="bhvrUrl" columnName="ieceBhvrUrl"/>
      <property propertyName="RestrictBeh" fieldName="restrictBeh" columnName="ieceRestrictBeh"/>
      <property propertyName="FailureMode" fieldName="failureMode" columnName="ieceFailureMode"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceObjCache01" parentTypeName="IeceEventType" discriminatorValue="IeceObjCache01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceControlBlock01" parentTypeName="IeceEventType" discriminatorValue="IeceControlBlock01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="Publisher" fieldName="publisher" columnName="iecePublisher"/>
      <property propertyName="ControlURL" fieldName="controlURL" columnName="ieceControlURL"/>
      <property propertyName="BlockReason" fieldName="blockReason" columnName="ieceBlockReason"/>
      <property propertyName="CLSID" fieldName="cLSID" columnName="ieceCLSID"/>
      <property propertyName="Error" fieldName="error" columnName="ieceError"/>
      <property propertyName="AXKill" fieldName="aXKill" columnName="ieceAXKill"/>
      <property propertyName="Signature" fieldName="signature" columnName="ieceSignature"/>
      <property propertyName="ControlUpgrade" fieldName="controlUpgrade" columnName="ieceControlUpgrade"/>
      <property propertyName="ControlUpgradePath" fieldName="controlUpgradePath" columnName="ieceControlUpgradePath"/>
      <property propertyName="ControlUpgradePublisher" fieldName="controlUpgradePublisher" columnName="ieceControlUpgradePublisher"/>
      <property propertyName="ControlUpgradeSignature" fieldName="controlUpgradeSignature" columnName="ieceControlUpgradeSignature"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceControlBlock02" parentTypeName="IeceEventType" discriminatorValue="IeceActiveXBlock02">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="SignedBy" fieldName="signedBy" columnName="ieceSignedBy"/>
      <property propertyName="Signature_Error" fieldName="signature_Error" columnName="ieceSignature_Error"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceControlBlock03" parentTypeName="IeceEventType" discriminatorValue="IeceActiveXBlock03">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="Local_Control_Path" fieldName="local_Control_Path" columnName="ieceLocal_Control_Path"/>
      <property propertyName="Local_Control_Signature" fieldName="local_Control_Signature" columnName="ieceLocal_Control_Signature"/>
      <property propertyName="ControlZone" fieldName="controlZone" columnName="ieceControlZone"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IecePUBlock01" parentTypeName="IeceEventType" discriminatorValue="IecePUBlock01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="PopupURL" fieldName="popupURL" columnName="iecePopupUrl"/>
      <property propertyName="PopupFlags" fieldName="popupFlags" columnName="iecePopupFlags"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceDownloadBlock01" parentTypeName="IeceEventType" discriminatorValue="IeceDownloadBlock01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="DLFile" fieldName="dLFile" columnName="ieceDLFile"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceLMZL01" parentTypeName="IeceEventType" discriminatorValue="IeceLMZL01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="RestrictedAction" fieldName="restrictedAction" columnName="ieceRestrictedAction"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceURLCreationFailure01" parentTypeName="IeceEventType" discriminatorValue="IeceURLCreationFailure01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="Reason" fieldName="reason" columnName="ieceReason"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceIDNNavigation01" parentTypeName="IeceEventType" discriminatorValue="IeceIDNNavigation01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="PunyCodeHost" fieldName="punyCodeHost" columnName="iecePunyCodeHost"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceSSLNavBlock01" parentTypeName="IeceEventType" discriminatorValue="IeceSSLNavBlock01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="BlockedURL" fieldName="blockedURL" columnName="ieceBlockedURL"/>
      <property propertyName="SecurityProblem" fieldName="securityProblem" columnName="ieceSecurityProblem"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceScriptUrlBlock01" parentTypeName="IeceEventType" discriminatorValue="IeceScriptUrlBlock01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceScriptUrlBlock02" parentTypeName="IeceEventType" discriminatorValue="IeceScriptUrlBlock02">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="ScriptURL" fieldName="scriptURL" columnName="ieceScriptURL"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceAntiphishingBlock01" parentTypeName="IeceEventType" discriminatorValue="IeceAntiphishingBlock01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="Reason" fieldName="reason" columnName="ieceReason"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceManageAddOns01" parentTypeName="IeceEventType" discriminatorValue="IeceManageAddOns01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="ControlGuid" fieldName="controlGuid" columnName="ieceControlGuid"/>
      <property propertyName="ControlPublisher" fieldName="controlPublisher" columnName="ieceControlPublisher"/>
      <property propertyName="ControlName" fieldName="controlName" columnName="ieceControlName"/>
      <property propertyName="Reason" fieldName="reason" columnName="ieceReason"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceProtectedMode01" parentTypeName="IeceEventType" discriminatorValue="IeceProtectedMode01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="ModuleName" fieldName="moduleName" columnName="ieceModuleName"/>
      <property propertyName="VirtualizationAction" fieldName="virtualizationAction" columnName="ieceVirtualizationAction"/>
      <property propertyName="ObjectType" fieldName="objectType" columnName="ieceObjectType"/>
      <property propertyName="APIName" fieldName="aPIName" columnName="ieceAPIName"/>
      <property propertyName="ReqObjectPath" fieldName="reqObjectPath" columnName="ieceReqObjectPath"/>
      <property propertyName="NewObjectPath" fieldName="newObjectPath" columnName="ieceNewObjectPath"/>
      <property propertyName="APIResult" fieldName="aPIResult" columnName="ieceAPIResult"/>
      <property propertyName="LastError" fieldName="lastError" columnName="ieceLastError"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceSubframeNavigateBlock01" parentTypeName="IeceEventType" discriminatorValue="IeceSubframeNavigateBlock01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="TargetURL" fieldName="targetURL" columnName="ieceTargetURL"/>
      <property propertyName="TargetFrameName" fieldName="targetFrameName" columnName="ieceTargetFrameName"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceCreateURLMonikerDifference01" parentTypeName="IeceEventType" discriminatorValue="IeceCreateURLMonikerDifference01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="NewURI" fieldName="newURI" columnName="ieceNewURI"/>
      <property propertyName="OldURI" fieldName="oldURI" columnName="ieceOldURI"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceCSSFixes01" parentTypeName="IeceEventType" discriminatorValue="IeceCSSFixes01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="CSSFix" fieldName="cSSFix" columnName="ieceCSSFix"/>
      <property propertyName="CSSInformation" fieldName="cSSInformation" columnName="ieceCSSInformation"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceUIPIExtensionBlocked01" parentTypeName="IeceEventType" discriminatorValue="IeceUIPIExtensionBlocked01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
      <property propertyName="ExtensionType" fieldName="extensionType" columnName="ieceExtensionType"/>
      <property propertyName="CLSID" fieldName="cLSID" columnName="ieceCLSID"/>
      <property propertyName="Info" fieldName="info" columnName="ieceInfo"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceXSSFilterPageSanitize01" parentTypeName="IeceEventType" discriminatorValue="IeceXSSFilterPageSanitize01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceDEPNX01" parentTypeName="IeceEventType" discriminatorValue="IeceDEPNX01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceStandardsMode01" parentTypeName="IeceEventType" discriminatorValue="IeceStandardsMode01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceFileUploadNoPath01" parentTypeName="IeceEventType" discriminatorValue="IeceFileUploadNoPath01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceCodepageDisabled01" parentTypeName="IeceEventType" discriminatorValue="IeceCodepageDisabled01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceAjaxNavigation01" parentTypeName="IeceEventType" discriminatorValue="IeceAjaxNavigation01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceApplicationProtocolDialog01" parentTypeName="IeceEventType" discriminatorValue="IeceApplicationProtocolDialog01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceFrameNavigationRestricted01" parentTypeName="IeceEventType" discriminatorValue="IeceFrameNavigationRestricted01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
      <property propertyName="TargetURL" fieldName="targetURL" columnName="ieceTargetURL" />
      <property propertyName="TargetFrameName" fieldName="targetFrameName" columnName="ieceTargetFrameName" />
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <!-- the name of this class is trimmed by 1 char to fit the partial_key_hash column size (32); fix it if the column size gets upgraded -->
    <subclass typeName="IeceImageNotUpgradedToXMLorHTM01" parentTypeName="IeceEventType" discriminatorValue="IeceImageNotUpgradedToXMLorHTM01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceCrossMIC01" parentTypeName="IeceEventType" discriminatorValue="IeceCrossMIC01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID"/>
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceCertFilteringDefaultChange01" parentTypeName="IeceEventType" discriminatorValue="IeceCertFilteringDefaultChange01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceContentFromProxyDiscarded01" parentTypeName="IeceEventType" discriminatorValue="IeceContentFromProxyDiscarded01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
    </subclass>
    <!-- Sub Class from Iece Issue Type -->
    <subclass typeName="IeceUIPICrossProcessWM01" parentTypeName="IeceEventType" discriminatorValue="IeceUIPICrossProcessWM01">
      <property propertyName="CategoryID" fieldName="categoryID" columnName="ieceCategoryID" />
    </subclass>

    <collection propertyName="LinkedTimeLineEvents" fieldName="linkedTimeLineEvents" targetExtentName="IssueAppTimeLineEventExtent"
                childColumnNames="timeLineEventID" parentColumnNames="timeLineEventID"/>
  </polymorphicExtent>
  <!-- Modules "touched" by an application -->
  <!-- THIS EXTENT IS A WORKAROUND FOR THE INABILITY TO JOIN ON SUBTYPES 
     discriminatorValue="ModuleLoad" -->

  <extent typeName="GeneralFeedbackReportType" extentName="GeneralFeedbackReportExtent" tableName="GeneralFeedback_Report">
    <compositeId>
      <property propertyName='TimeLineEventId' fieldName='timeLineEventID' columnName='timeLineEventID' />
      <property propertyName="EventTimeStamp" fieldName="eventTimeStamp" columnName="eventTimeStamp" />
    </compositeId>
    <objectRef propertyName="AttachedFileObject" fieldName="attachedFileObject" targetExtentName="AttachedFileExtent" parentColumnNames="attachedFileID" childColumnNames="attachedFile" />
    <property propertyName='UserMachineId' fieldName='userMachineId' columnName='userMachineId' />
    <property propertyName='UserName' fieldName='userName' columnName='userName' />
    <property propertyName='MachineName' fieldName='machineName' columnName='machineName' />
    <property propertyName='OsId' fieldName='osID' columnName='osID' />
    <property propertyName='Title' fieldName='title' columnName='title' />
    <property propertyName='Detail' fieldName='detail' columnName='detail' />
    <property propertyName='AttachedFile' fieldName='attachedFile' columnName='attachedFile' />
  </extent>
  
  <extent typeName="IssueAppTimeLineEventType" extentName="IssueAppTimeLineEventExtent" tableName="App_Issues_Linked_TimeLineEvents">
    <compositeId>
      <parentRef propertyName="TimeLineEvent" fieldName="timeLineEvent" targetExtentName="TimeLineEventExtent"
                childColumnNames="timeLineEventID" />
      <property propertyName="AppIdentity" fieldName="appIdentity" columnName="appIdentity"/>
      <property propertyName="IssueId" fieldName="issueId" columnName="issueID"/>
      <property propertyName="IssueType" fieldName="issueType" columnName="issueType"/>
    </compositeId>
  </extent>

  <extent typeName="WSClientStateDetailsType" extentName="WSClientStateDetailsExtent" tableName="Client_State_Details">
      <accessControlList>
          <accessControlItem roleName='Default' accessType='Create,Read,Update,Delete'/>
      </accessControlList>
      <id propertyName="Id" fieldName="id" columnName="ID" />
      <property propertyName="LastServerSync" fieldName="lastServerSync" columnName="Last_Server_Sync_Time" />
      <property propertyName="LastClientSync" fieldName="lastClientSync" columnName="Last_Server_Sync_Time_Client" />
  </extent>
</mapping>
