main
  1<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
  2<!-- NCoverExplorer (c) 2007 Grant Drake.  -->
  3<!-- Schema for configuration file to be passed to NCoverExplorer-Console.exe using /config: switch  -->
  4<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  5  <xs:element name="ConsoleSetting">
  6    <xs:complexType>
  7      <xs:sequence>
  8		<!-- Title name to appear on the report (equivalent to /project:xx). Default is blank. -->
  9		<xs:element name="ProjectName" type="xs:string" minOccurs="0" maxOccurs="1" />
 10        <!-- Threshold for acceptance criteria for coverage reports detailing acceptable coverage levels. Default is 95% -->
 11        <xs:element name="SatisfactoryCoverageThreshold" type="xs:decimal" minOccurs="0" maxOccurs="1" />
 12        <!-- Threshold for acceptance criteria for coverage reports detailing acceptable coverage as #seqPts rather than %. Default is 0. -->
 13        <xs:element name="SatisfactoryUnvisitedSequencePoints" type="xs:decimal" minOccurs="0" maxOccurs="1" />
 14        <!-- Threshold for acceptance criteria for coverage reports detailing acceptable function coverage levels. Default is 80% -->
 15        <xs:element name="SatisfactoryFunctionThreshold" type="xs:decimal" minOccurs="0" maxOccurs="1" />
 16        <!-- Filtering to be applied to the results. Use integer (starting from 0=None) or named value. Default is "None". -->
 17        <xs:element name="TreeFilterStyle" minOccurs="0" maxOccurs="1">
 18          <xs:simpleType>
 19            <xs:restriction base="xs:string">
 20              <xs:enumeration value="None" />
 21              <xs:enumeration value="HideUnvisited" />
 22              <xs:enumeration value="HideFullyCovered" />
 23              <xs:enumeration value="HideThresholdCovered" />
 24            </xs:restriction>
 25          </xs:simpleType>
 26        </xs:element>
 27        <!-- Sorting to be applied to the results. Use integer (starting from 0=Name) or named value. Default is "Name". -->
 28        <xs:element name="TreeSortStyle" minOccurs="0" maxOccurs="1">
 29          <xs:simpleType>
 30            <xs:restriction base="xs:string">
 31              <xs:enumeration value="Name" />
 32              <xs:enumeration value="ClassLine" />
 33              <xs:enumeration value="CoveragePercentageAscending" />
 34              <xs:enumeration value="CoveragePercentageDescending" />
 35              <xs:enumeration value="UnvisitedSequencePointsAscending" />
 36              <xs:enumeration value="UnvisitedSequencePointsDescending" />
 37              <xs:enumeration value="VisitCountAscending" />
 38              <xs:enumeration value="VisitCountDescending" />
 39              <xs:enumeration value="FunctionCoverageAscending" />
 40              <xs:enumeration value="FunctionCoverageDescending" />
 41            </xs:restriction>
 42          </xs:simpleType>
 43        </xs:element>
 44        <!-- Coverage exclusions to exclude specified assemblies, namespaces, classes and/or methods. -->
 45        <xs:element name="CoverageExclusions" minOccurs="0" maxOccurs="1">
 46          <xs:complexType>
 47            <xs:sequence>
 48              <xs:element ref="CoverageExclusion" maxOccurs="unbounded" />
 49            </xs:sequence>
 50          </xs:complexType>
 51        </xs:element>
 52        <!-- Module specific coverage thresholds if wanting more granular coverage tolerances. -->
 53        <xs:element name="ModuleThresholds" minOccurs="0" maxOccurs="1">
 54          <xs:complexType>
 55            <xs:sequence>
 56              <xs:element ref="ModuleThreshold" maxOccurs="unbounded" />
 57            </xs:sequence>
 58          </xs:complexType>
 59        </xs:element>
 60        <!-- Names of the coverage files to merge/report on. Wildcards can be used. -->
 61        <xs:element name="CoverageFileNames" minOccurs="1" maxOccurs="1">
 62          <xs:complexType>
 63            <xs:sequence>
 64			  <xs:element name="CoverageFileName" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
 65            </xs:sequence>
 66          </xs:complexType>
 67        </xs:element>
 68        <!-- Report to be generated by running NCoverExplorer.Console. Default is "None". -->
 69        <xs:element name="ReportType" minOccurs="0" maxOccurs="1">
 70          <xs:simpleType>
 71            <xs:restriction base="xs:string">
 72              <xs:enumeration value="None" />
 73              <xs:enumeration value="ModuleSummary" />
 74              <xs:enumeration value="ModuleNamespaceSummary" />
 75              <xs:enumeration value="ModuleClassSummary" />
 76              <xs:enumeration value="ModuleClassFunctionSummary" />
 77            </xs:restriction>
 78          </xs:simpleType>
 79        </xs:element>
 80		<!-- File name for the output HTML report if wanting to generate one. -->
 81		<xs:element name="HtmlReportFileName" type="xs:string" minOccurs="0" maxOccurs="1" />
 82		<!-- File name for the output XML report if wanting to generate one. -->
 83		<xs:element name="XmlReportFileName" type="xs:string" minOccurs="0" maxOccurs="1" />
 84		<!-- File name for the output merged coverage.xml file if any resulting from merging the inputs. -->
 85		<xs:element name="MergeFileName" type="xs:string" minOccurs="0" maxOccurs="1" />
 86		<!-- Whether to show the excluded elements in the footer of the output report if being generated. Default is false. -->
 87		<xs:element name="ShowExcludedFooter" type="xs:boolean" minOccurs="0" maxOccurs="1" />
 88		<!-- Whether to return a failure exit code if any module is below the minimum coverage threshold. Default is false. -->
 89		<xs:element name="FailIfBelowMinimum" type="xs:boolean" minOccurs="0" maxOccurs="1" />
 90		<!-- Whether to return a failure exit code if total coverage is below the minimum coverage threshold. Default is false. -->
 91		<xs:element name="FailIfBelowCombinedMinimum" type="xs:boolean" minOccurs="0" maxOccurs="1" />
 92		<!-- For use with the FailIfXXX options - the minimum coverage threshold if not specifying at the module level. -->
 93		<xs:element name="MinimumCoverage" type="xs:decimal" minOccurs="0" maxOccurs="1" />
 94		<!-- Whether to suppress virtually all console output when running. Default is false. -->
 95		<xs:element name="NoLog" type="xs:boolean" minOccurs="0" maxOccurs="1" />
 96      </xs:sequence>
 97    </xs:complexType>
 98  </xs:element>
 99  <xs:element name="CoverageExclusion">
100    <xs:complexType>
101      <xs:sequence>
102        <xs:element name="ExclusionType" minOccurs="1" maxOccurs="1">
103          <xs:simpleType>
104            <xs:restriction base="xs:string">
105              <xs:enumeration value="Assembly" />
106              <xs:enumeration value="Namespace" />
107              <xs:enumeration value="Class" />
108              <xs:enumeration value="Method" />
109            </xs:restriction>
110          </xs:simpleType>
111        </xs:element>
112        <xs:element name="Pattern" type="xs:string" minOccurs="1" maxOccurs="1" />
113        <xs:element name="IsRegex" type="xs:boolean" minOccurs="0" maxOccurs="1" />
114      </xs:sequence>
115    </xs:complexType>
116  </xs:element>
117  <xs:element name="ModuleThreshold">
118    <xs:complexType>
119      <xs:attribute name="ModuleName" use="required" type="xs:string" />
120      <xs:attribute name="SatisfactoryCoverage" use="required" type="xs:decimal" />
121    </xs:complexType>
122  </xs:element>
123</xs:schema>