<xsd:complexType name="DefinitionType">
<xsd:annotation>
<xsd:documentation>The DefinitionType complex type holds the result of the evaluation of an OVAL Definition. The message element holds an error message or some other string that the analysis engine wishes to pass along. In addition, the optional criteria element provides the results of the individual pieces of the criteria. Please refer to the description of the CriteriaType for more information.</xsd:documentation>
<xsd:documentation>The required definition_id attribute is the OVAL id of the definition. The required version attribute is the specific version of the OVAL Definition used during analysis. The optional variable_instance attrbitue is a unique id that differentiates every unique instance (based on the value of variables used) of a definition in the OVAL Results file. Languages that include OVAL might reference the same definition multiple times. Each time a different set of values is supplied for the variables, a new instance of the definition result must be created. (definitions that do not use variables can only have one unique instance) The inclusion of a unique instance identifier will allow the OVAL results file to report the correct result of a definition for each combination of supplied values. The required result attribute holds the result of the evaluation. Please refer to the description of the resultEnumeration for details about the different result values.</xsd:documentation>
<xsd:appinfo>
<sch:pattern id="directives" xmlns:sch="http://purl.oclc.org/dsdl/schematron">
<sch:rule context="oval-res:definition[@result='true' and oval-res:criteria]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_true/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of TRUE should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_true/@content='full'">
<sch:value-of select="@definition_id" /> - definitions with a result of TRUE should contain THIN content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='true' and not(oval-res:criteria)]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_true/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of TRUE should not be included (see directives) xx</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_true/@content='thin'">
<sch:value-of select="@definition_id" /> - definitions with a result of TRUE should contain FULL content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='false' and oval-res:criteria]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_false/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of FALSE should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_false/@content='full'">
<sch:value-of select="@definition_id" /> - definitions with a result of FALSE should contain THIN content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='false' and not(oval-res:criteria)]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_false/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of FALSE should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_false/@content='thin'">
<sch:value-of select="@definition_id" /> - definitions with a result of FALSE should contain FULL content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='unknown' and oval-res:criteria]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_unknown/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of UNKNOWN should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_unknown/@content='full'">
<sch:value-of select="@definition_id" /> - definitions with a result of UNKNOWN should contain THIN content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='unknown' and not(oval-res:criteria)]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_unknown/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of UNKNOWN should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_unknown/@content='thin'">
<sch:value-of select="@definition_id" /> - definitions with a result of UNKNOWN should contain FULL content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='error' and oval-res:criteria]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_error/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of ERROR should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_error/@content='full'">
<sch:value-of select="@definition_id" /> - definitions with a result of ERROR should contain THIN content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='error' and not(oval-res:criteria)]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_error/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of ERROR should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_error/@content='thin'">
<sch:value-of select="@definition_id" /> - definitions with a result of ERROR should contain FULL content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='not evaluated' and oval-res:criteria]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_not_evaluated/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of NOT EVALUATED should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_not_evaluated/@content='full'">
<sch:value-of select="@definition_id" /> - definitions with a result of NOT EVALUATED should contain THIN content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='not evaluated' and not(oval-res:criteria)]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_not_evaluated/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of NOT EVALUATED should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_not_evaluated/@content='thin'">
<sch:value-of select="@definition_id" /> - definitions with a result of NOT EVALUATED should contain FULL content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='not applicable' and oval-res:criteria]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_not_applicable/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of NOT APPLICABLE should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_not_applicable/@content='full'">
<sch:value-of select="@definition_id" /> - definitions with a result of NOT APPLICABLE should contain THIN content (see directives)</sch:assert>
</sch:rule>
<sch:rule context="oval-res:definition[@result='not applicable' and not(oval-res:criteria)]">
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_not_applicable/@reported='true'">
<sch:value-of select="@definition_id" /> - definitions with a result of NOT APPLICABLE should not be included (see directives)</sch:assert>
<sch:assert test="/oval-res:oval_results/oval-res:directives/oval-res:definition_not_applicable/@content='thin'">
<sch:value-of select="@definition_id" /> - definitions with a result of NOT APPLICABLE should contain FULL content (see directives)</sch:assert>
</sch:rule>
</sch:pattern>
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="message" type="oval:MessageType" minOccurs="0" maxOccurs="unbounded" />
<xsd:element name="criteria" type="oval-res:CriteriaType" minOccurs="0" maxOccurs="1" />
</xsd:sequence>
<xsd:attribute name="definition_id" type="oval:DefinitionIDPattern" use="required" />
<xsd:attribute name="version" type="xsd:nonNegativeInteger" use="required" />
<xsd:attribute name="variable_instance" type="xsd:nonNegativeInteger" use="optional" default="1" />
<xsd:attribute name="result" type="oval-res:ResultEnumeration" use="required" />
</xsd:complexType>
|