home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / WindowsServerTrial / server.iso / sources / install.wim / 2 / Windows / PLA / Rules / Rules.System.NetDiagFramework.xml < prev    next >
Extensible Markup Language  |  2006-09-18  |  57KB  |  853 lines

  1. <?xml version="1.0"?>
  2.  
  3. <!--***************************************************************************
  4.  
  5.   Copyright (c) Microsoft Corporation. All rights reserved.
  6.  
  7. ****************************************************************************-->
  8.  
  9. <Rules>
  10.  
  11.  
  12.  
  13. <StringTable>
  14.   <String ID="GroupNetDiagFramework" loc.comment="Name of Network Diagnostics Framework Rules Group">Network Diagnostics Framework Group</String>
  15.   <String ID="RuleNetDiagFrameworkSetup" loc.comment="Name of Rule to setup Network Diagnostics Framework Summary Group">Network Diagnostics Framework Checks Setup</String>
  16.   <String ID="RuleBuildNetDiagResultsTable" loc.comment="Name of Rule to Network Diagnostics Results Table">Build Network Diagnostics Table</String>
  17.   <String ID="RuleDiagResultsCheck" loc.comment="Name of Rule to check Net Diag Event results">Check Network Diagnostics Results</String>
  18.   <String ID="RuleNetDiagFrameworkSummary" loc.comment="Name of Rule to summary Network Diagnostics Framework Rules">Network Diagnostics Framework Checks Summary</String>
  19.   <String ID="RuleNetworkingDiagnosticsFrameworkCleanup" loc.comment="Name of Rule to cleanup Networking Diagnostics Framework ETW Tables">Cleanup Network Diagnostics Framework Tables</String>
  20.  
  21.   <String ID="LOC_TitleNetDiagFrameworkSummary" loc.comment="Title of Network Diagnostics Framework Rules Summary Group">Network Diagnostics Framework Checks</String>
  22.   <String ID="LOC_DescNetDiagFramework" loc.comment="Description of Network Diagnostics Framework Rules Summary Group">Checks relating to the Network Diagnostics Framework events</String>
  23.  
  24.  
  25.   <String ID="LOC_RuleDiagResultsCheck" loc.comment="Name of Rule to check Net Diag Event results">Check Network Diagnostics Results</String>
  26.  
  27.   <String ID="LOC_Failed" loc.comment="Text to display when a rule or group of rules failed">Failed</String>
  28.   <String ID="LOC_Passed" loc.comment="Text to display when a rule or group of rules passed">Passed</String>
  29.  
  30.  
  31. <String ID="WarnSuccessDiagNoProblem_symptom" loc.comment="Symptom string for warning message: WarnSuccessDiagNoProblem">Network Diagnosis was successful.</String>
  32. <String ID="WarnSuccessDiagNoProblem_cause" loc.comment="Cause string for warning message: WarnSuccessDiagNoProblem">The Network Diagnostics determined there is no problem with your network.</String>
  33. <String ID="WarnSuccessDiagNoProblem_details" loc.comment="Details string for warning message: WarnSuccessDiagNoProblem">The Network Diagnostics result revealed that there is no obvious problem with your network connection.</String>
  34. <String ID="WarnSuccessDiagNoProblem_res1" loc.comment="Resolution string for warning message: WarnSuccessDiagNoProblem">Contact your Internet Service Provider if you are still having issues with your network connection.</String>
  35.  
  36. <String ID="WarnCancelDiag_symptom" loc.comment="Symptom string for warning message: WarnCancelDiag">Network Diagnosis was cancelled by the user.</String>
  37. <String ID="WarnCancelDiag_cause" loc.comment="Cause string for warning message: WarnCancelDiag">The Network Diagnostics was not permitted to complete its work.</String>
  38. <String ID="WarnCancelDiag_details" loc.comment="Details string for warning message: WarnCancelDiag">The user canceled Network Diagnostics before it was able to complete its analysis of the system.</String>
  39. <String ID="WarnCancelDiag_res1" loc.comment="Resolution string for warning message: WarnCancelDiag">Please rerun Network Diagnostics and allow it run until it has completed its analysis.</String>
  40.  
  41. <String ID="WarnFailInHelper_symptom" loc.comment="Symptom string for warning message: WarnFailInHelper">Network Diagnosis failed to diagnose the problem.</String>
  42. <String ID="WarnFailInHelper_cause" loc.comment="Cause string for warning message: WarnFailInHelper">The Network Diagnostics tool failed to diagnosis the problem because a Helper Class failure.</String>
  43. <String ID="WarnFailInHelper_details" loc.comment="Details string for warning message: WarnFailInHelper">The helper class: {helperclassname} failed while trying to diagnose the problem.  It returned the following error code: {errorcode}.</String>
  44. <String ID="WarnFailInHelper_res1" loc.comment="Resolution string for warning message: WarnFailInHelper">Please rerun Network Diagnostics and contact your Internet Service Provider to determine if there are any currently known issues with your Internet service.</String>
  45.  
  46. <String ID="WarnFailInFramework_symptom" loc.comment="Symptom string for warning message: WarnFailInFramework">Network Diagnosis failed to diagnosis the problem.</String>
  47. <String ID="WarnFailInFramework_cause" loc.comment="Cause string for warning message: WarnFailInFramework">The Network Diagnostics failed to diagnose the problem because the framework failed to complete.</String>
  48. <String ID="WarnFailInFramework_details" loc.comment="Details string for warning message: WarnFailInFramework">The Network Diagnostic framework returned the following error code: {errorcode}.</String>
  49. <String ID="WarnFailInFramework_res1" loc.comment="Resolution string for warning message: WarnFailInFramework">Please rerun Network Diagnostics and contact your Internet Service Provider to determine if there are any currently known issues with your Internet service.</String>
  50.  
  51. <String ID="WarnSuccessValidation_symptom" loc.comment="Symptom string for warning message: WarnSuccessValidation">Network Diagnosis diagnosed the problem and validated the work done to repair the problem.</String>
  52. <String ID="WarnSuccessValidation_cause" loc.comment="Cause string for warning message: WarnSuccessValidation">The Network Diagnostics diagnosed the problem and verified the selected repair option solved the issue.</String>
  53. <String ID="WarnSuccessValidation_details" loc.comment="Details string for warning message: WarnSuccessValidation">The user chose the following repair option to fix their network problems: {repairoption}</String>
  54. <String ID="WarnSuccessValidation_res1" loc.comment="Resolution string for warning message: WarnSuccessValidation">The network appears to be working fine now.</String>
  55.  
  56. <String ID="WarnFailValidation_symptom" loc.comment="Symptom string for warning message: WarnFailValidation">Network Diagnosis diagnosed the problem but could not validate the repair work.</String>
  57. <String ID="WarnFailValidation_cause" loc.comment="Cause string for warning message: WarnFailValidation">The Network Diagnostics diagnosed the problem but could not verify the selected repair option selected fixed the issue.</String>
  58. <String ID="WarnFailValidation_details" loc.comment="Details string for warning message: WarnFailValidation">The user attempted the following repair option: {repairoption}.  This was recommended by the following helper class: {helperclassname}.  This repair required the follow Security Identifier Type: {sidtyperequired}.</String>
  59. <String ID="WarnFailValidation_res1" loc.comment="Resolution string for warning message: WarnFailValidation">The user can try the other repair options given during diagnosis. If all repair options have been attempted, the user may also want to contact their Internet Service Provider to determine if there is a known issue with the network.</String>
  60.  
  61. <String ID="WarnFailRepair_symptom" loc.comment="Symptom string for warning message: WarnFailRepair">Network Diagnosis diagnosed the problem but could not perform the repair option selected by the user.</String>
  62. <String ID="WarnFailRepair_cause" loc.comment="Cause string for warning message: WarnFailRepair">The Network Diagnostics diagnosed the problem but could not the repair the network connection.</String>
  63. <String ID="WarnFailRepair_details" loc.comment="Details string for warning message: WarnFailRepair">The user selected the following repair option: {repairoption}.  The repair option required the following Security Identifier Type: {sidtyperequired}. This choice did not resolve the problem.</String>
  64. <String ID="WarnFailRepair_res1" loc.comment="Resolution string for warning message: WarnFailRepair">The user should contact their Internet Service Provider to determine if there is a known issue with the network.</String>
  65.  
  66. <String ID="WarnCancelRepair_symptom" loc.comment="Symptom string for warning message: WarnCancelRepair">Network Diagnosis repair operation was cancelled by the user.</String>
  67. <String ID="WarnCancelRepair_cause" loc.comment="Cause string for warning message: WarnCancelRepair">The Network Diagnostics was not permitted to complete.</String>
  68. <String ID="WarnCancelRepair_details" loc.comment="Details string for warning message: WarnCancelRepair">The user cancelled Network Diagnostics before it was able to complete the repair operation selected by the user.</String>
  69. <String ID="WarnCancelRepair_res1" loc.comment="Resolution string for warning message: WarnCancelRepair">Please rerun Network Diagnostics and allow it run until it has completed its analysis and repair.</String>
  70.  
  71. <String ID="WarnSuccessDiagSingleOption_symptom" loc.comment="Symptom string for warning message: WarnSuccessDiagSingleOption">Network Diagnosis was successful, but the user may have selected a repair option that could not be validated by the Network Diagnostic Framework.</String>
  72. <String ID="WarnSuccessDiagSingleOption_cause" loc.comment="Cause string for warning message: WarnSuccessDiagSingleOption">The Network Diagnostics determined that there is a problem with your network that requires the user to take action to fix.</String>
  73. <String ID="WarnSuccessDiagSingleOption_details" loc.comment="Details string for warning message: WarnSuccessDiagSingleOption">The Network Diagnostics result revealed that the user may be able to resolve their networking issue(s).</String>
  74. <String ID="WarnSuccessDiagSingleOption_res1" loc.comment="Resolution string for warning message: WarnSuccessDiagSingleOption">The user has been prompted to implement: {repairoption}</String>
  75.  
  76. <String ID="WarnSuccessDiagMultipleOptions_symptom" loc.comment="Symptom string for warning message: WarnSuccessDiagMultipleOptions">Network Diagnosis was successful, but the user may have selected a repair option that could not be validated by the Network Diagnostic Framework.</String>
  77. <String ID="WarnSuccessDiagMultipleOptions_cause" loc.comment="Cause string for warning message: WarnSuccessDiagMultipleOptions">The Network Diagnostics determined that there is a problem with your network that requires the user to take action to fix.</String>
  78. <String ID="WarnSuccessDiagMultipleOptions_details" loc.comment="Details string for warning message: WarnSuccessDiagMultipleOptions">The Network Diagnostics result revealed that the user may be able to resolve their networking issue(s).</String>
  79. <String ID="WarnSuccessDiagMultipleOptions_res1" loc.comment="Resolution string for warning message: WarnSuccessDiagMultipleOptions">The user has been offered multiple repair options. See the Networking Diagnostics section for more details.</String>
  80.  
  81. </StringTable>
  82.  
  83.  
  84.  <Group name="$(GroupNetDiagFramework)" enabled="true" > 
  85.   <Rule name="$(RuleNetDiagFrameworkSetup)" enabled="true">
  86.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='start']">
  87.       <Exists>
  88.         <Otherwise>
  89.           <Variable name="diagnosticsrun" expression="count(Item)" />
  90.           <Variable name="diagnosticsresultsreported" expression="number('0')" />
  91.         </Otherwise>
  92.       </Exists>
  93.       <Otherwise>
  94.         <Variable name="diagnosticsrun" expression="number('0')" />
  95.         <Variable name="diagnosticsresultsreported" expression="number('0')" />
  96.       </Otherwise>
  97.     </Step>
  98.  
  99.     <Step select="/Report[{diagnosticsrun} > 0]" fatal="true">
  100.       <Exists>
  101.         <Otherwise />
  102.       </Exists>
  103.     </Step>
  104.  
  105.     <Step select="/Report/Section[@name='advice']/Table[@name='alltests']">
  106.       <Exists>
  107.        <When expression="1 = 1">
  108.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  109.         <Variable name="description">$(LOC_DescNetDiagFramework)</Variable>
  110.         <Insert>
  111.           <Node axis="child">
  112.             <Item>
  113.               <Data name="alltestgroups" link="TableNetDiagResults">{group}</Data>
  114.               <Data name="alltestdesc">{description}</Data>
  115.             </Item>
  116.           </Node>
  117.         </Insert>
  118.        </When>
  119.        <Otherwise/>
  120.       </Exists>
  121.     </Step>
  122.  
  123.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='start']">
  124.       <Exists>
  125.         <When expression="{diagnosticsrun} > 0">
  126.           <Insert select=".">
  127.             <Node axis="preceding-sibling">
  128.               <Table name="TableNetDiagResults" topic="netdiagframework" >
  129.                 <Header>
  130.                   <Sort field="diagstarttime" type="number" order="ascending" />
  131.                   <Data name="diagstarttime" class="number" />
  132.                   <Data name="diagstopstate" class="string" />
  133.                   <Data name="activityid" class="string" />
  134.                   <Data name="helperclassname" class="string" />
  135.                   <Data name="numberofattributes" class="string" />
  136.                   <Data name="helperclassattributes" class="string" />
  137.                   <Data name="resulthr" class="number" />
  138.                   <Header>
  139.                     <Data name="diagstep" class="string" />
  140.                     <Data name="timestamp" class="number" />
  141.                     <Header>
  142.                       <Data name="diagstepproperty" class="string" />
  143.                       <Data name="diagstepvalue" class="string" />
  144.                     </Header>
  145.                   </Header>
  146.                 </Header>
  147.               </Table>
  148.             </Node>
  149.           </Insert>
  150.         </When>
  151.         <Otherwise />
  152.       </Exists>
  153.     </Step>
  154.   </Rule>
  155.  
  156.   <Rule name="$(RuleBuildNetDiagResultsTable)" enabled="true">
  157.     <Step select="/Report[{diagnosticsrun} > 0]" fatal="true">
  158.       <Exists>
  159.         <Otherwise/>
  160.       </Exists>
  161.     </Step>
  162.  
  163.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='start']/Item" sortType="all">
  164.       <Variable name="diagstarttime" expression="Data[@name='timestamp']" />
  165.       <Variable name="diagrunactivityid" expression="Data[@name='activityid']" />
  166.       <Variable name="helperclassname" expression="Data[@name='helperclassname']" />
  167.       <Variable name="numberofattributes" expression="Data[@name='numberofattributes']" />
  168.       <Variable name="helperclassattributes" expression="Data[@name='helperclassattributes']" />
  169.       <Exists>
  170.         <Otherwise>
  171.           <Variable name="diagstopstate" expression="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='stopsuccessdiag' or @name='stopfaildiag' or @name='stopcanceldiag' or @name='stopsuccessrepair' or @name='stopfailrepair' or @name='stopcancelrepair'][Item/Data[@name='activityid' and . = '{diagrunactivityid}']]/@name" />
  172.           <Variable name="diagstopstatestring" expression="'{diagstopstate}'" />
  173.           <Variable name="resulthr" expression="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='stopsuccessdiag' or @name='stopfaildiag' or @name='stopcanceldiag' or @name='stopsuccessrepair' or @name='stopfailrepair' or @name='stopcancelrepair']/Item[Data[@name='activityid' and . = '{diagrunactivityid}']]/Data[@name='resulthr']" />
  174.  
  175.           <Insert select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']">
  176.             <Node axis="child">
  177.               <Item>
  178.                 <Data name="diagstarttime">{diagstarttime}</Data>
  179.                 <Data name="diagstopstate" translate="value">{diagstopstatestring}</Data>
  180.                 <Data name="activityid">{diagrunactivityid}</Data>
  181.                 <Data name="helperclassname">{helperclassname}</Data>
  182.                 <Data name="numberofattributes">{numberofattributes}</Data>
  183.                 <Data name="helperclassattributes">{helperclassattributes}</Data>
  184.                 <Data name="resulthr">{resulthr}</Data>
  185.               </Item>
  186.             </Node>
  187.           </Insert>
  188.         </Otherwise>
  189.       </Exists>
  190.     </Step>
  191.  
  192.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='failinframework']/Item" sortType="all">
  193.       <Exists>
  194.         <Otherwise>
  195.           <Variable name="activityid" expression="Data[@name='activityid']" />
  196.           <Variable name="failinframeworktime" expression="Data[@name='timestamp']" />
  197.           <Variable name="errorcode" expression="Data[@name='resulthr']" />
  198.  
  199.           <Insert select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[Data[@name='activityid'] = '{activityid}']">
  200.             <Node axis="child">
  201.               <Item>
  202.                 <Data name="diagstep" translate="value">failinframework</Data>
  203.                 <Data name="timestamp">{failinframeworktime}</Data>
  204.                 <Item>
  205.                   <Data name="diagstepproperty" translate="value">resulthr</Data>
  206.                   <Data name="diagstepvalue">{errorcode}</Data>
  207.                 </Item>
  208.               </Item>
  209.             </Node>
  210.           </Insert>
  211.         </Otherwise>
  212.       </Exists>
  213.       <Otherwise/>
  214.     </Step>
  215.  
  216.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='failinhelper']/Item" sortType="all">
  217.       <Exists>
  218.         <Otherwise>
  219.           <Variable name="activityid" expression="Data[@name='activityid']" />
  220.           <Variable name="failinhelpertime" expression="Data[@name='timestamp']" />
  221.           <Variable name="errorcode" expression="Data[@name='resulthr']" />
  222.  
  223.           <Insert select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[Data[@name='activityid'] = '{activityid}']">
  224.             <Node axis="child">
  225.               <Item>
  226.                 <Data name="diagstep" translate="value">failinhelper</Data>
  227.                 <Data name="timestamp">{failinhelpertime}</Data>
  228.                 <Item>
  229.                   <Data name="diagstepproperty" translate="value">resulthr</Data>
  230.                   <Data name="diagstepvalue">{errorcode}</Data>
  231.                 </Item>
  232.               </Item>
  233.             </Node>
  234.           </Insert>
  235.         </Otherwise>
  236.       </Exists>
  237.       <Otherwise />
  238.     </Step>
  239.  
  240.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='diagsuccess']/Item" sortType="all">
  241.       <Exists>
  242.         <Otherwise>
  243.           <Variable name="activityid" expression="Data[@name='activityid']" />
  244.           <Variable name="diagsuccesstime" expression="Data[@name='timestamp']" />
  245.           <Variable name="repairoption" expression="Data[@name='repairoption']" />
  246.           <Variable name="repairguid" expression="Data[@name='repairguid']" />
  247.           <Variable name="secondsrequired" expression="Data[@name='secondsrequired']" />
  248.           <Variable name="sidtyperequired" expression="Data[@name='sidtyperequired']" />
  249.  
  250.           <Insert select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[Data[@name='activityid'] = '{activityid}']">
  251.             <Node axis="child">
  252.               <Item>
  253.                 <Data name="diagstep" translate="value">diagsuccess</Data>
  254.                 <Data name="timestamp">{diagsuccesstime}</Data>
  255.                 <Item>
  256.                   <Data name="diagstepproperty" translate="value">repairoption</Data>
  257.                   <Data name="diagstepvalue">{repairoption}</Data>
  258.                 </Item>
  259.                 <Item>
  260.                   <Data name="diagstepproperty" translate="value">repairguid</Data>
  261.                   <Data name="diagstepvalue">{repairguid}</Data>
  262.                 </Item>
  263.                 <Item>
  264.                   <Data name="diagstepproperty" translate="value">secondsrequired</Data>
  265.                   <Data name="diagstepvalue">{secondsrequired}</Data>
  266.                 </Item>
  267.                 <Item>
  268.                   <Data name="diagstepproperty" translate="value">sidtyperequired</Data>
  269.                   <Data name="diagstepvalue">{sidtyperequired}</Data>
  270.                 </Item>
  271.               </Item>
  272.             </Node>
  273.           </Insert>
  274.         </Otherwise>
  275.       </Exists>
  276.       <Otherwise />
  277.     </Step>
  278.  
  279.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='diagsuccessnp']/Item" sortType="all">
  280.       <Exists>
  281.         <Otherwise>
  282.           <Variable name="activityid" expression="Data[@name='activityid']" />
  283.           <Variable name="diagsuccessnptime" expression="Data[@name='timestamp']" />
  284.  
  285.           <Insert select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[Data[@name='activityid'] = '{activityid}']">
  286.             <Node axis="child">
  287.               <Item>
  288.                 <Data name="diagstep" translate="value">diagsuccessnp</Data>
  289.                 <Data name="timestamp">{diagsuccessnptime}</Data>
  290.               </Item>
  291.             </Node>
  292.           </Insert>
  293.         </Otherwise>
  294.       </Exists>
  295.       <Otherwise />
  296.     </Step>
  297.  
  298.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='diagfail']/Item" sortType="all">
  299.       <Exists>
  300.         <Otherwise>
  301.           <Variable name="activityid" expression="Data[@name='activityid']" />
  302.           <Variable name="diagfailtime" expression="Data[@name='timestamp']" />
  303.           <Variable name="errorcode" expression="Data[@name='resulthr']" />
  304.  
  305.           <Insert select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[Data[@name='activityid'] = '{activityid}']">
  306.             <Node axis="child">
  307.               <Item>
  308.                 <Data name="diagstep" translate="value">diagfail</Data>
  309.                 <Data name="timestamp">{diagfailtime}</Data>
  310.                 <Item>
  311.                   <Data name="diagstepproperty" translate="value">resulthr</Data>
  312.                   <Data name="diagstepvalue">{errorcode}</Data>
  313.                 </Item>
  314.               </Item>
  315.             </Node>
  316.           </Insert>
  317.         </Otherwise>
  318.       </Exists>
  319.       <Otherwise />
  320.     </Step>
  321.  
  322.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='validationsuccess']/Item" sortType="all">
  323.       <Exists>
  324.         <Otherwise>
  325.           <Variable name="activityid" expression="Data[@name='activityid']" />
  326.           <Variable name="validationsuccesstime" expression="Data[@name='timestamp']" />
  327.           <Variable name="repairoption" expression="Data[@name='repairoption']" />
  328.           <Variable name="repairguid" expression="Data[@name='repairguid']" />
  329.           <Variable name="secondsrequired" expression="Data[@name='secondsrequired']" />
  330.           <Variable name="sidtyperequired" expression="Data[@name='sidtyperequired']" />
  331.           <Variable name="helperclassname" expression="Data[@name='helperclassname']" />
  332.  
  333.           <Insert select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[Data[@name='activityid'] = '{activityid}']">
  334.             <Node axis="child">
  335.               <Item>
  336.                 <Data name="diagstep" translate="value">validationsuccess</Data>
  337.                 <Data name="timestamp">{validationsuccesstime}</Data>
  338.                 <Item>
  339.                   <Data name="diagstepproperty" translate="value">repairoption</Data>
  340.                   <Data name="diagstepvalue">{repairoption}</Data>
  341.                 </Item>
  342.                 <Item>
  343.                   <Data name="diagstepproperty" translate="value">repairguid</Data>
  344.                   <Data name="diagstepvalue">{repairguid}</Data>
  345.                 </Item>
  346.                 <Item>
  347.                   <Data name="diagstepproperty" translate="value">secondsrequired</Data>
  348.                   <Data name="diagstepvalue">{secondsrequired}</Data>
  349.                 </Item>
  350.                 <Item>
  351.                   <Data name="diagstepproperty" translate="value">sidtyperequired</Data>
  352.                   <Data name="diagstepvalue">{sidtyperequired}</Data>
  353.                 </Item>
  354.                 <Item>
  355.                   <Data name="diagstepproperty" translate="value">helperclassname</Data>
  356.                   <Data name="diagstepvalue">{helperclassname}</Data>
  357.                 </Item>
  358.               </Item>
  359.             </Node>
  360.           </Insert>
  361.         </Otherwise>
  362.       </Exists>
  363.       <Otherwise />
  364.     </Step>
  365.  
  366.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='validationfail']/Item" sortType="all">
  367.       <Exists>
  368.         <Otherwise>
  369.           <Variable name="activityid" expression="Data[@name='activityid']" />
  370.           <Variable name="validationfailtime" expression="Data[@name='timestamp']" />
  371.           <Variable name="repairoption" expression="Data[@name='repairoption']" />
  372.           <Variable name="repairguid" expression="Data[@name='repairguid']" />
  373.           <Variable name="secondsrequired" expression="Data[@name='secondsrequired']" />
  374.           <Variable name="sidtyperequired" expression="Data[@name='sidtyperequired']" />
  375.           <Variable name="helperclassname" expression="Data[@name='helperclassname']" />
  376.  
  377.           <Insert select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[Data[@name='activityid'] = '{activityid}']">
  378.             <Node axis="child">
  379.               <Item>
  380.                 <Data name="diagstep" translate="value">validationfail</Data>
  381.                 <Data name="timestamp">{validationfailtime}</Data>
  382.                 <Item>
  383.                   <Data name="diagstepproperty" translate="value">repairoption</Data>
  384.                   <Data name="diagstepvalue">{repairoption}</Data>
  385.                 </Item>
  386.                 <Item>
  387.                   <Data name="diagstepproperty" translate="value">repairguid</Data>
  388.                   <Data name="diagstepvalue">{repairguid}</Data>
  389.                 </Item>
  390.                 <Item>
  391.                   <Data name="diagstepproperty" translate="value">secondsrequired</Data>
  392.                   <Data name="diagstepvalue">{secondsrequired}</Data>
  393.                 </Item>
  394.                 <Item>
  395.                   <Data name="diagstepproperty" translate="value">sidtyperequired</Data>
  396.                   <Data name="diagstepvalue">{sidtyperequired}</Data>
  397.                 </Item>
  398.                 <Item>
  399.                   <Data name="diagstepproperty" translate="value">helperclassname</Data>
  400.                   <Data name="diagstepvalue">{helperclassname}</Data>
  401.                 </Item>
  402.               </Item>
  403.             </Node>
  404.           </Insert>
  405.         </Otherwise>
  406.       </Exists>
  407.       <Otherwise />
  408.     </Step>
  409.  
  410.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='repairoptfail']/Item" sortType="all">
  411.       <Exists>
  412.         <Otherwise>
  413.           <Variable name="activityid" expression="Data[@name='activityid']" />
  414.           <Variable name="repairoptfailtime" expression="Data[@name='timestamp']" />
  415.           <Variable name="repairoption" expression="Data[@name='repairoption']" />
  416.           <Variable name="repairguid" expression="Data[@name='repairguid']" />
  417.           <Variable name="secondsrequired" expression="Data[@name='secondsrequired']" />
  418.           <Variable name="sidtyperequired" expression="Data[@name='sidtyperequired']" />
  419.  
  420.           <Insert select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[Data[@name='activityid'] = '{activityid}']">
  421.             <Node axis="child">
  422.               <Item>
  423.                 <Data name="diagstep" translate="value">repairoptfail</Data>
  424.                 <Data name="timestamp">{repairoptfailtime}</Data>
  425.                 <Item>
  426.                   <Data name="diagstepproperty" translate="value">repairoption</Data>
  427.                   <Data name="diagstepvalue">{repairoption}</Data>
  428.                 </Item>
  429.                 <Item>
  430.                   <Data name="diagstepproperty" translate="value">repairguid</Data>
  431.                   <Data name="diagstepvalue">{repairguid}</Data>
  432.                 </Item>
  433.                 <Item>
  434.                   <Data name="diagstepproperty" translate="value">secondsrequired</Data>
  435.                   <Data name="diagstepvalue">{secondsrequired}</Data>
  436.                 </Item>
  437.                 <Item>
  438.                   <Data name="diagstepproperty" translate="value">sidtyperequired</Data>
  439.                   <Data name="diagstepvalue">{sidtyperequired}</Data>
  440.                 </Item>
  441.               </Item>
  442.             </Node>
  443.           </Insert>
  444.         </Otherwise>
  445.       </Exists>
  446.       <Otherwise />
  447.     </Step>
  448.  
  449.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='repairfail']/Item" sortType="all">
  450.       <Exists>
  451.         <Otherwise>
  452.           <Variable name="activityid" expression="Data[@name='activityid']" />
  453.           <Variable name="repairfailtime" expression="Data[@name='timestamp']" />
  454.           <Variable name="errorcode" expression="Data[@name='resulthr']" />
  455.  
  456.           <Insert select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[Data[@name='activityid'] = '{activityid}']">
  457.             <Node axis="child">
  458.               <Item>
  459.                 <Data name="diagstep" translate="value">repairfail</Data>
  460.                 <Data name="timestamp">{repairfailtime}</Data>
  461.                 <Item>
  462.                   <Data name="diagstepproperty" translate="value">resulthr</Data>
  463.                   <Data name="diagstepvalue">{errorcode}</Data>
  464.                 </Item>
  465.               </Item>
  466.             </Node>
  467.           </Insert>
  468.         </Otherwise>
  469.       </Exists>
  470.       <Otherwise />
  471.     </Step>
  472.   </Rule>
  473.  
  474.   <Rule name="$(RuleDiagResultsCheck)" enabled="true">
  475.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[Data[@name='diagstopstate'] = 'stopcanceldiag' or Data[@name='diagstopstate'] = 'stopcancelrepair' or Item/Data[@name='diagstep' and (. = 'diagsuccessnp' or . = 'diagfail' or . = 'validationsuccess' or . = 'validationfail' or . = 'repairoptfail' or . = 'failinframework' or . = 'failinhelper')]]" sortType="max" sortNode="Data[@name='diagstarttime']" sortDataType="number" >
  476.       <Variable name="diagstopstate" expression="Data[@name='diagstopstate']" />
  477.       <Variable name="validationfailed" expression="count(Item/Data[@name='diagstep' and . = 'validationfail'])" />
  478.       <Variable name="repairfailed" expression="count(Item/Data[@name='diagstep' and . = 'repairoptfail'])" />
  479.       <Variable name="failinframework" expression="count(Item/Data[@name='diagstep' and . = 'failinframework'])" />
  480.       <Variable name="failinhelper" expression="count(Item/Data[@name='diagstep' and . = 'failinhelper'])" />
  481.       <Exists>
  482.         <When expression="'{diagstopstate}' = 'stopsuccessdiag'">
  483.         <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  484.         <Variable name="ruleDiagResultsCheck_symptom">$(WarnSuccessDiagNoProblem_symptom)</Variable>
  485.         <Variable name="ruleDiagResultsCheck_cause">$(WarnSuccessDiagNoProblem_cause)</Variable>
  486.         <Variable name="ruleDiagResultsCheck_details">$(WarnSuccessDiagNoProblem_details)</Variable>
  487.         <Variable name="ruleDiagResultsCheck_res1">$(WarnSuccessDiagNoProblem_res1)</Variable>
  488.          <Warning tag="ruleDiagResultsCheck_WarnSuccessDiagNoProblem_{internalruleindex}"  select="Data[@name='diagstopstate']" table="/Report/Section[@name='advice']/Table[@name='info']">
  489.            <Item>
  490.  
  491.               <Data name="symptom" img="info" link="ruleDiagResultsCheck_WarnSuccessDiagNoProblem_{internalruleindex}"  message="ruleDiagResultsCheck_WarnSuccessDiagNoProblem_{internalruleindex}">{ruleDiagResultsCheck_symptom}</Data>
  492.               <Data name="cause" message="ruleDiagResultsCheck_WarnSuccessDiagNoProblem_{internalruleindex}" >{ruleDiagResultsCheck_cause}</Data>
  493.               <Data name="details"  message="ruleDiagResultsCheck_WarnSuccessDiagNoProblem_{internalruleindex}" >{ruleDiagResultsCheck_details}</Data>
  494.               <Data name="resolution"  message="ruleDiagResultsCheck_WarnSuccessDiagNoProblem_{internalruleindex}" >{ruleDiagResultsCheck_res1}</Data>
  495.            </Item>
  496.          </Warning>
  497.  
  498.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  499.         <Variable name="test">$(LOC_RuleDiagResultsCheck)</Variable>
  500.         <Variable name="description">$(LOC_Passed)</Variable>
  501. <Insert select="/Report/Section[@name='advice']/Table[@name='alltests']/Item[Data[@name='alltestgroups'] = '{group}']">
  502.          <Node axis="child">
  503.            <Item>
  504.              <Data name="allchildtest">{test}</Data>
  505.              <Data name="allchildtotal">1</Data>
  506.              <Data name="allchildfail">0</Data>
  507.              <Data name="allchilddesc">{description}</Data>
  508.            </Item>
  509.          </Node>
  510.        </Insert>
  511.           <Variable name="diagnosticsresultsreported" expression="number('1')" />
  512.         </When>
  513.         <When expression="'{diagstopstate}' = 'stopcanceldiag'">
  514.         <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  515.         <Variable name="ruleDiagResultsCheck_symptom">$(WarnCancelDiag_symptom)</Variable>
  516.         <Variable name="ruleDiagResultsCheck_cause">$(WarnCancelDiag_cause)</Variable>
  517.         <Variable name="ruleDiagResultsCheck_details">$(WarnCancelDiag_details)</Variable>
  518.         <Variable name="ruleDiagResultsCheck_res1">$(WarnCancelDiag_res1)</Variable>
  519.          <Warning tag="ruleDiagResultsCheck_WarnCancelDiag_{internalruleindex}"  select="Data[@name='diagstopstate']" table="/Report/Section[@name='advice']/Table[@name='warning']">
  520.            <Item>
  521.  
  522.               <Data name="symptom" img="warning" link="ruleDiagResultsCheck_WarnCancelDiag_{internalruleindex}"  message="ruleDiagResultsCheck_WarnCancelDiag_{internalruleindex}">{ruleDiagResultsCheck_symptom}</Data>
  523.               <Data name="cause" message="ruleDiagResultsCheck_WarnCancelDiag_{internalruleindex}" >{ruleDiagResultsCheck_cause}</Data>
  524.               <Data name="details"  message="ruleDiagResultsCheck_WarnCancelDiag_{internalruleindex}" >{ruleDiagResultsCheck_details}</Data>
  525.               <Data name="resolution"  message="ruleDiagResultsCheck_WarnCancelDiag_{internalruleindex}" >{ruleDiagResultsCheck_res1}</Data>
  526.            </Item>
  527.          </Warning>
  528.  
  529.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  530.         <Variable name="test">$(LOC_RuleDiagResultsCheck)</Variable>
  531.         <Variable name="description">$(LOC_Failed)</Variable>
  532. <Insert select="/Report/Section[@name='advice']/Table[@name='alltests']/Item[Data[@name='alltestgroups'] = '{group}']">
  533.          <Node axis="child">
  534.            <Item>
  535.              <Data name="allchildtest">{test}</Data>
  536.              <Data name="allchildtotal">1</Data>
  537.              <Data name="allchildfail">1</Data>
  538.              <Data name="allchilddesc">{description}</Data>
  539.            </Item>
  540.          </Node>
  541.        </Insert>
  542.           <Variable name="diagnosticsresultsreported" expression="number('1')" />
  543.         </When>
  544.         <When expression="'{diagstopstate}' = 'stopfaildiag' and {failinframework} > 0">
  545.           <Variable name="errorcode" expression="Item[Data[@name='diagstep' and . = 'failinframework']]/Item[Data[@name='diagstepproperty'] = 'errorcode']/Data[@name='diagstepvalue']" />
  546.  
  547.         <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  548.         <Variable name="ruleDiagResultsCheck_symptom">$(WarnFailInFramework_symptom)</Variable>
  549.         <Variable name="ruleDiagResultsCheck_cause">$(WarnFailInFramework_cause)</Variable>
  550.         <Variable name="ruleDiagResultsCheck_details">$(WarnFailInFramework_details)</Variable>
  551.         <Variable name="ruleDiagResultsCheck_res1">$(WarnFailInFramework_res1)</Variable>
  552.          <Warning tag="ruleDiagResultsCheck_WarnFailInFramework_{internalruleindex}"  select="Item/Data[@name='diagstep' and . = 'failinframework']" table="/Report/Section[@name='advice']/Table[@name='error']">
  553.            <Item>
  554.  
  555.               <Data name="symptom" img="error" link="ruleDiagResultsCheck_WarnFailInFramework_{internalruleindex}"  message="ruleDiagResultsCheck_WarnFailInFramework_{internalruleindex}">{ruleDiagResultsCheck_symptom}</Data>
  556.               <Data name="cause" message="ruleDiagResultsCheck_WarnFailInFramework_{internalruleindex}" >{ruleDiagResultsCheck_cause}</Data>
  557.               <Data name="details"  message="ruleDiagResultsCheck_WarnFailInFramework_{internalruleindex}" >{ruleDiagResultsCheck_details}</Data>
  558.               <Data name="resolution"  message="ruleDiagResultsCheck_WarnFailInFramework_{internalruleindex}" >{ruleDiagResultsCheck_res1}</Data>
  559.            </Item>
  560.          </Warning>
  561.  
  562.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  563.         <Variable name="test">$(LOC_RuleDiagResultsCheck)</Variable>
  564.         <Variable name="description">$(LOC_Failed)</Variable>
  565. <Insert select="/Report/Section[@name='advice']/Table[@name='alltests']/Item[Data[@name='alltestgroups'] = '{group}']">
  566.          <Node axis="child">
  567.            <Item>
  568.              <Data name="allchildtest">{test}</Data>
  569.              <Data name="allchildtotal">1</Data>
  570.              <Data name="allchildfail">1</Data>
  571.              <Data name="allchilddesc">{description}</Data>
  572.            </Item>
  573.          </Node>
  574.        </Insert>
  575.           <Variable name="diagnosticsresultsreported" expression="number('1')" />
  576.         </When>
  577.         <When expression="'{diagstopstate}' = 'stopfaildiag' and {failinhelper} > 0">
  578.           <Variable name="errorcode" expression="Item[Data[@name='diagstep' and . = 'failinhelper']]/Item[Data[@name='diagstepproperty'] = 'errorcode']/Data[@name='diagstepvalue']" />
  579.           <Variable name="helperclassname" expression="Data[@name='helperclassname']" />
  580.  
  581.         <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  582.         <Variable name="ruleDiagResultsCheck_symptom">$(WarnFailInHelper_symptom)</Variable>
  583.         <Variable name="ruleDiagResultsCheck_cause">$(WarnFailInHelper_cause)</Variable>
  584.         <Variable name="ruleDiagResultsCheck_details">$(WarnFailInHelper_details)</Variable>
  585.         <Variable name="ruleDiagResultsCheck_res1">$(WarnFailInHelper_res1)</Variable>
  586.          <Warning tag="ruleDiagResultsCheck_WarnFailInHelper_{internalruleindex}"  select="Item/Data[@name='diagstep' and . = 'failinhelper']" table="/Report/Section[@name='advice']/Table[@name='error']">
  587.            <Item>
  588.  
  589.               <Data name="symptom" img="error" link="ruleDiagResultsCheck_WarnFailInHelper_{internalruleindex}"  message="ruleDiagResultsCheck_WarnFailInHelper_{internalruleindex}">{ruleDiagResultsCheck_symptom}</Data>
  590.               <Data name="cause" message="ruleDiagResultsCheck_WarnFailInHelper_{internalruleindex}" >{ruleDiagResultsCheck_cause}</Data>
  591.               <Data name="details"  message="ruleDiagResultsCheck_WarnFailInHelper_{internalruleindex}" >{ruleDiagResultsCheck_details}</Data>
  592.               <Data name="resolution"  message="ruleDiagResultsCheck_WarnFailInHelper_{internalruleindex}" >{ruleDiagResultsCheck_res1}</Data>
  593.            </Item>
  594.          </Warning>
  595.  
  596.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  597.         <Variable name="test">$(LOC_RuleDiagResultsCheck)</Variable>
  598.         <Variable name="description">$(LOC_Failed)</Variable>
  599. <Insert select="/Report/Section[@name='advice']/Table[@name='alltests']/Item[Data[@name='alltestgroups'] = '{group}']">
  600.          <Node axis="child">
  601.            <Item>
  602.              <Data name="allchildtest">{test}</Data>
  603.              <Data name="allchildtotal">1</Data>
  604.              <Data name="allchildfail">1</Data>
  605.              <Data name="allchilddesc">{description}</Data>
  606.            </Item>
  607.          </Node>
  608.        </Insert>
  609.           <Variable name="diagnosticsresultsreported" expression="number('1')" />
  610.         </When>
  611.         <When expression="'{diagstopstate}' = 'stopsuccessrepair'">
  612.         <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  613.         <Variable name="ruleDiagResultsCheck_symptom">$(WarnSuccessValidation_symptom)</Variable>
  614.         <Variable name="ruleDiagResultsCheck_cause">$(WarnSuccessValidation_cause)</Variable>
  615.         <Variable name="ruleDiagResultsCheck_details">$(WarnSuccessValidation_details)</Variable>
  616.         <Variable name="ruleDiagResultsCheck_res1">$(WarnSuccessValidation_res1)</Variable>
  617.          <Warning tag="ruleDiagResultsCheck_WarnSuccessValidation_{internalruleindex}"  select="Data[@name='diagstopstate']" table="/Report/Section[@name='advice']/Table[@name='info']">
  618.            <Item>
  619.  
  620.               <Data name="symptom" img="info" link="ruleDiagResultsCheck_WarnSuccessValidation_{internalruleindex}"  message="ruleDiagResultsCheck_WarnSuccessValidation_{internalruleindex}">{ruleDiagResultsCheck_symptom}</Data>
  621.               <Data name="cause" message="ruleDiagResultsCheck_WarnSuccessValidation_{internalruleindex}" >{ruleDiagResultsCheck_cause}</Data>
  622.               <Data name="details"  message="ruleDiagResultsCheck_WarnSuccessValidation_{internalruleindex}" >{ruleDiagResultsCheck_details}</Data>
  623.               <Data name="resolution"  message="ruleDiagResultsCheck_WarnSuccessValidation_{internalruleindex}" >{ruleDiagResultsCheck_res1}</Data>
  624.            </Item>
  625.          </Warning>
  626.  
  627.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  628.         <Variable name="test">$(LOC_RuleDiagResultsCheck)</Variable>
  629.         <Variable name="description">$(LOC_Passed)</Variable>
  630. <Insert select="/Report/Section[@name='advice']/Table[@name='alltests']/Item[Data[@name='alltestgroups'] = '{group}']">
  631.          <Node axis="child">
  632.            <Item>
  633.              <Data name="allchildtest">{test}</Data>
  634.              <Data name="allchildtotal">1</Data>
  635.              <Data name="allchildfail">0</Data>
  636.              <Data name="allchilddesc">{description}</Data>
  637.            </Item>
  638.          </Node>
  639.        </Insert>
  640.           <Variable name="diagnosticsresultsreported" expression="number('1')" />
  641.         </When>
  642.         <When expression="'{diagstopstate}' = 'stopcancelrepair'">
  643.         <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  644.         <Variable name="ruleDiagResultsCheck_symptom">$(WarnCancelRepair_symptom)</Variable>
  645.         <Variable name="ruleDiagResultsCheck_cause">$(WarnCancelRepair_cause)</Variable>
  646.         <Variable name="ruleDiagResultsCheck_details">$(WarnCancelRepair_details)</Variable>
  647.         <Variable name="ruleDiagResultsCheck_res1">$(WarnCancelRepair_res1)</Variable>
  648.          <Warning tag="ruleDiagResultsCheck_WarnCancelRepair_{internalruleindex}"  select="Data[@name='diagstopstate']" table="/Report/Section[@name='advice']/Table[@name='warning']">
  649.            <Item>
  650.  
  651.               <Data name="symptom" img="warning" link="ruleDiagResultsCheck_WarnCancelRepair_{internalruleindex}"  message="ruleDiagResultsCheck_WarnCancelRepair_{internalruleindex}">{ruleDiagResultsCheck_symptom}</Data>
  652.               <Data name="cause" message="ruleDiagResultsCheck_WarnCancelRepair_{internalruleindex}" >{ruleDiagResultsCheck_cause}</Data>
  653.               <Data name="details"  message="ruleDiagResultsCheck_WarnCancelRepair_{internalruleindex}" >{ruleDiagResultsCheck_details}</Data>
  654.               <Data name="resolution"  message="ruleDiagResultsCheck_WarnCancelRepair_{internalruleindex}" >{ruleDiagResultsCheck_res1}</Data>
  655.            </Item>
  656.          </Warning>
  657.  
  658.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  659.         <Variable name="test">$(LOC_RuleDiagResultsCheck)</Variable>
  660.         <Variable name="description">$(LOC_Failed)</Variable>
  661. <Insert select="/Report/Section[@name='advice']/Table[@name='alltests']/Item[Data[@name='alltestgroups'] = '{group}']">
  662.          <Node axis="child">
  663.            <Item>
  664.              <Data name="allchildtest">{test}</Data>
  665.              <Data name="allchildtotal">1</Data>
  666.              <Data name="allchildfail">1</Data>
  667.              <Data name="allchilddesc">{description}</Data>
  668.            </Item>
  669.          </Node>
  670.        </Insert>
  671.           <Variable name="diagnosticsresultsreported" expression="number('1')" />
  672.         </When>
  673.         <When expression="'{diagstopstate}' = 'stopfailrepair' and {validationfailed} > 0">
  674.           <Variable name="repairoption" expression="Item[Data[@name='diagstep' and . = 'validationfail']]/Item[Data[@name='diagstepproperty'] = 'repairoption']/Data[@name='diagstepvalue']" />
  675.           <Variable name="sidtyperequired" expression="Item[Data[@name='diagstep' and . = 'validationfail']]/Item[Data[@name='diagstepproperty'] = 'sidtyperequired']/Data[@name='diagstepvalue']" />
  676.           <Variable name="helperclassname" expression="Item[Data[@name='diagstep' and . = 'validationfail']]/Item[Data[@name='diagstepproperty'] = 'helperclassname']/Data[@name='diagstepvalue']" />
  677.  
  678.         <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  679.         <Variable name="ruleDiagResultsCheck_symptom">$(WarnFailValidation_symptom)</Variable>
  680.         <Variable name="ruleDiagResultsCheck_cause">$(WarnFailValidation_cause)</Variable>
  681.         <Variable name="ruleDiagResultsCheck_details">$(WarnFailValidation_details)</Variable>
  682.         <Variable name="ruleDiagResultsCheck_res1">$(WarnFailValidation_res1)</Variable>
  683.          <Warning tag="ruleDiagResultsCheck_WarnFailValidation_{internalruleindex}"  select="Item/Data[@name='diagstep' and . = 'validationfail']" table="/Report/Section[@name='advice']/Table[@name='error']">
  684.            <Item>
  685.  
  686.               <Data name="symptom" img="error" link="ruleDiagResultsCheck_WarnFailValidation_{internalruleindex}"  message="ruleDiagResultsCheck_WarnFailValidation_{internalruleindex}">{ruleDiagResultsCheck_symptom}</Data>
  687.               <Data name="cause" message="ruleDiagResultsCheck_WarnFailValidation_{internalruleindex}" >{ruleDiagResultsCheck_cause}</Data>
  688.               <Data name="details"  message="ruleDiagResultsCheck_WarnFailValidation_{internalruleindex}" >{ruleDiagResultsCheck_details}</Data>
  689.               <Data name="resolution"  message="ruleDiagResultsCheck_WarnFailValidation_{internalruleindex}" >{ruleDiagResultsCheck_res1}</Data>
  690.            </Item>
  691.          </Warning>
  692.  
  693.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  694.         <Variable name="test">$(LOC_RuleDiagResultsCheck)</Variable>
  695.         <Variable name="description">$(LOC_Failed)</Variable>
  696. <Insert select="/Report/Section[@name='advice']/Table[@name='alltests']/Item[Data[@name='alltestgroups'] = '{group}']">
  697.          <Node axis="child">
  698.            <Item>
  699.              <Data name="allchildtest">{test}</Data>
  700.              <Data name="allchildtotal">1</Data>
  701.              <Data name="allchildfail">1</Data>
  702.              <Data name="allchilddesc">{description}</Data>
  703.            </Item>
  704.          </Node>
  705.        </Insert>
  706.           <Variable name="diagnosticsresultsreported" expression="number('1')" />
  707.         </When>
  708.         <When expression="'{diagstopstate}' = 'stopfailrepair' and {repairfailed} > 0">
  709.           <Variable name="repairoption" expression="Item[Data[@name='diagstep' and . = 'repairoptfail']]/Item[Data[@name='diagstepproperty'] = 'repairoption']/Data[@name='diagstepvalue']" />
  710.           <Variable name="sidtyperequired" expression="Item[Data[@name='diagstep' and . = 'repairoptfail']]/Item[Data[@name='diagstepproperty'] = 'sidtyperequired']/Data[@name='diagstepvalue']" />
  711.  
  712.         <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  713.         <Variable name="ruleDiagResultsCheck_symptom">$(WarnFailRepair_symptom)</Variable>
  714.         <Variable name="ruleDiagResultsCheck_cause">$(WarnFailRepair_cause)</Variable>
  715.         <Variable name="ruleDiagResultsCheck_details">$(WarnFailRepair_details)</Variable>
  716.         <Variable name="ruleDiagResultsCheck_res1">$(WarnFailRepair_res1)</Variable>
  717.          <Warning tag="ruleDiagResultsCheck_WarnFailRepair_{internalruleindex}"  select="Item/Data[@name='diagstep' and . = 'repairoptfail']" table="/Report/Section[@name='advice']/Table[@name='error']">
  718.            <Item>
  719.  
  720.               <Data name="symptom" img="error" link="ruleDiagResultsCheck_WarnFailRepair_{internalruleindex}"  message="ruleDiagResultsCheck_WarnFailRepair_{internalruleindex}">{ruleDiagResultsCheck_symptom}</Data>
  721.               <Data name="cause" message="ruleDiagResultsCheck_WarnFailRepair_{internalruleindex}" >{ruleDiagResultsCheck_cause}</Data>
  722.               <Data name="details"  message="ruleDiagResultsCheck_WarnFailRepair_{internalruleindex}" >{ruleDiagResultsCheck_details}</Data>
  723.               <Data name="resolution"  message="ruleDiagResultsCheck_WarnFailRepair_{internalruleindex}" >{ruleDiagResultsCheck_res1}</Data>
  724.            </Item>
  725.          </Warning>
  726.  
  727.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  728.         <Variable name="test">$(LOC_RuleDiagResultsCheck)</Variable>
  729.         <Variable name="description">$(LOC_Failed)</Variable>
  730. <Insert select="/Report/Section[@name='advice']/Table[@name='alltests']/Item[Data[@name='alltestgroups'] = '{group}']">
  731.          <Node axis="child">
  732.            <Item>
  733.              <Data name="allchildtest">{test}</Data>
  734.              <Data name="allchildtotal">1</Data>
  735.              <Data name="allchildfail">1</Data>
  736.              <Data name="allchilddesc">{description}</Data>
  737.            </Item>
  738.          </Node>
  739.        </Insert>
  740.           <Variable name="diagnosticsresultsreported" expression="number('1')" />
  741.         </When>
  742.       </Exists>
  743.     </Step>
  744.  
  745.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='TableNetDiagResults']/Item[last()]">
  746.       <Variable name="diagnosticsteps" expression="count(Item)" />
  747.       <Exists>
  748.         <When expression="{diagnosticsresultsreported} = 0 and {diagnosticsrun} = 1 and {diagnosticsteps} = 1">
  749.           <Variable name="repairoption" expression="Item/Item[Data[@name='diagstepproperty'] = 'repairoption']/Data[@name='diagstepvalue']" />
  750.  
  751.         <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  752.         <Variable name="ruleDiagResultsCheck_symptom">$(WarnSuccessDiagSingleOption_symptom)</Variable>
  753.         <Variable name="ruleDiagResultsCheck_cause">$(WarnSuccessDiagSingleOption_cause)</Variable>
  754.         <Variable name="ruleDiagResultsCheck_details">$(WarnSuccessDiagSingleOption_details)</Variable>
  755.         <Variable name="ruleDiagResultsCheck_res1">$(WarnSuccessDiagSingleOption_res1)</Variable>
  756.          <Warning tag="ruleDiagResultsCheck_WarnSuccessDiagSingleOption_{internalruleindex}"  select="Data[@name='diagstopstate' and . = 'stopsuccessdiag']" table="/Report/Section[@name='advice']/Table[@name='warning']">
  757.            <Item>
  758.  
  759.               <Data name="symptom" img="warning" link="ruleDiagResultsCheck_WarnSuccessDiagSingleOption_{internalruleindex}"  message="ruleDiagResultsCheck_WarnSuccessDiagSingleOption_{internalruleindex}">{ruleDiagResultsCheck_symptom}</Data>
  760.               <Data name="cause" message="ruleDiagResultsCheck_WarnSuccessDiagSingleOption_{internalruleindex}" >{ruleDiagResultsCheck_cause}</Data>
  761.               <Data name="details"  message="ruleDiagResultsCheck_WarnSuccessDiagSingleOption_{internalruleindex}" >{ruleDiagResultsCheck_details}</Data>
  762.               <Data name="resolution"  message="ruleDiagResultsCheck_WarnSuccessDiagSingleOption_{internalruleindex}" >{ruleDiagResultsCheck_res1}</Data>
  763.            </Item>
  764.          </Warning>
  765.  
  766.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  767.         <Variable name="test">$(LOC_RuleDiagResultsCheck)</Variable>
  768.         <Variable name="description">$(LOC_Failed)</Variable>
  769. <Insert select="/Report/Section[@name='advice']/Table[@name='alltests']/Item[Data[@name='alltestgroups'] = '{group}']">
  770.          <Node axis="child">
  771.            <Item>
  772.              <Data name="allchildtest">{test}</Data>
  773.              <Data name="allchildtotal">1</Data>
  774.              <Data name="allchildfail">1</Data>
  775.              <Data name="allchilddesc">{description}</Data>
  776.            </Item>
  777.          </Node>
  778.        </Insert>
  779.         </When>
  780.         <When expression="{diagnosticsresultsreported} = 0 and {diagnosticsrun} = 1 and {diagnosticsteps} > 1">
  781.         <Variable name="internalruleindex" expression="{internalruleindex} + 1"/>
  782.         <Variable name="ruleDiagResultsCheck_symptom">$(WarnSuccessDiagMultipleOptions_symptom)</Variable>
  783.         <Variable name="ruleDiagResultsCheck_cause">$(WarnSuccessDiagMultipleOptions_cause)</Variable>
  784.         <Variable name="ruleDiagResultsCheck_details">$(WarnSuccessDiagMultipleOptions_details)</Variable>
  785.         <Variable name="ruleDiagResultsCheck_res1">$(WarnSuccessDiagMultipleOptions_res1)</Variable>
  786.          <Warning tag="ruleDiagResultsCheck_WarnSuccessDiagMultipleOptions_{internalruleindex}"  select="Data[@name='diagstopstate' and . = 'stopsuccessdiag']" table="/Report/Section[@name='advice']/Table[@name='warning']">
  787.            <Item>
  788.  
  789.               <Data name="symptom" img="warning" link="ruleDiagResultsCheck_WarnSuccessDiagMultipleOptions_{internalruleindex}"  message="ruleDiagResultsCheck_WarnSuccessDiagMultipleOptions_{internalruleindex}">{ruleDiagResultsCheck_symptom}</Data>
  790.               <Data name="cause" message="ruleDiagResultsCheck_WarnSuccessDiagMultipleOptions_{internalruleindex}" >{ruleDiagResultsCheck_cause}</Data>
  791.               <Data name="details"  message="ruleDiagResultsCheck_WarnSuccessDiagMultipleOptions_{internalruleindex}" >{ruleDiagResultsCheck_details}</Data>
  792.               <Data name="resolution"  message="ruleDiagResultsCheck_WarnSuccessDiagMultipleOptions_{internalruleindex}" >{ruleDiagResultsCheck_res1}</Data>
  793.            </Item>
  794.          </Warning>
  795.  
  796.         <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  797.         <Variable name="test">$(LOC_RuleDiagResultsCheck)</Variable>
  798.         <Variable name="description">$(LOC_Failed)</Variable>
  799. <Insert select="/Report/Section[@name='advice']/Table[@name='alltests']/Item[Data[@name='alltestgroups'] = '{group}']">
  800.          <Node axis="child">
  801.            <Item>
  802.              <Data name="allchildtest">{test}</Data>
  803.              <Data name="allchildtotal">1</Data>
  804.              <Data name="allchildfail">1</Data>
  805.              <Data name="allchilddesc">{description}</Data>
  806.            </Item>
  807.          </Node>
  808.        </Insert>
  809.         </When>
  810.       </Exists>
  811.     </Step>
  812.   </Rule>
  813.  
  814.   <Rule name="$(RuleNetDiagFrameworkSummary)" enabled="true">
  815.      <Step select="/Report/Section[@name='advice']/Table[@name='alltests']" fatal="true">
  816.        <Variable name="group">$(LOC_TitleNetDiagFrameworkSummary)</Variable>
  817.        <Variable name="groupfailedtestscount" expression="count(Item[Data[@name='alltestgroups'] = '{group}']/Item[Data[@name='allchildfail'] != '0'])" />
  818.        <Exists>
  819.          <When expression="{diagnosticsrun} > 0 and {groupfailedtestscount} > 0">
  820.            <Variable name="failedmsg">$(LOC_Failed)</Variable>
  821.            <Insert select="Item[Data[@name='alltestgroups'] = '{group}']/Data">
  822.              <Node axis="following-sibling">
  823.                <Data name="allteststatus">{failedmsg}</Data>
  824.              </Node>
  825.            </Insert>
  826.          </When>
  827.          <When expression="{diagnosticsrun} > 0 and {groupfailedtestscount} = 0">
  828.            <Variable name="passedmsg">$(LOC_Passed)</Variable>
  829.            <Insert select="Item[Data[@name='alltestgroups'] = '{group}']/Data">
  830.              <Node axis="following-sibling">
  831.                <Data name="allteststatus">{passedmsg}</Data>
  832.              </Node>
  833.            </Insert>
  834.          </When>
  835.        </Exists>
  836.      </Step>
  837.   </Rule>
  838.  
  839.   <Rule name="$(RuleNetworkingDiagnosticsFrameworkCleanup)" enabled="true">
  840.     <Step select="/Report/Section[@name='tracerptNetworkDiag']/Table[@name='start' or @name='stopsuccessdiag' or @name='stopsuccessrepair' or @name='stopfaildiag' or @name='stopfailrepair' or @name='stopcanceldiag' or @name='stopcancelrepair' or @name='failinframework' or @name='failinhelper' or @name='diagsuccess' or @name='diagsuccessnp' or @name='diagfail' or @name='validationsuccess' or @name='validationfail' or @name='repairoptfail' or @name='repairfail' or @name='helperclassdebuginfo' or @name='diagnosticsdebug' or @name='hypothesisdebug' or @name='repairdebug' or @name='validationdebug' or @name='cachehitdebug' or @name='registrydebug' or @name='unclassifieddebug']" sortType="all">
  841.       <Exists>
  842.         <Otherwise>
  843.           <Delete select="." />
  844.         </Otherwise>
  845.       </Exists>
  846.     </Step>
  847.   </Rule>
  848.  
  849. </Group>
  850.  
  851. </Rules>
  852.  
  853.