The ValidationRules element is a collection of validation rules used to check if a Document Object is in a consistent or inconsistent state.
A validation rule defines a condition to validate. It is a predefined, configurable rule and can come in many different forms such as validating if the Document Object has the necessary traces or validating that the document object is part of any document file.
The validation rules are closely related to positive cues .
Example
The following example defines validation rules, along with positive cues, to check if the Document Object is traced and ready to sign. Note that the validation rule's RuleID must be referenced by a validation rule reference's RuleID.
Copy <PositiveCues>
<PositiveCue Label="Traced">
<ValidationRuleRef RuleID="UNDIRTraced" />
<ValidationRuleRef RuleID="UNVaTCTraced" />
<ValidationRuleRef RuleID="IsUNSuspect" />
</PositiveCue>
<PositiveCue FulfilledColor="#1ec158">
<ValidationRuleRef RuleID="IsUNReviewed" />
<ValidationRuleRef RuleID="IsUNInDoc" />
</PositiveCue>
</PositiveCues>
<ValidationRules>
<TracedToRule ToTraceTypeName="Design Input Requirement" RuleID="UNDIRTraced" />
<TracedToRule ToTraceTypeName="Validation Test Case" RuleID="UNVaTCTraced" />
<HasOpenIssueRule TypeNameIssue="Issue" OpenAttributeName="Status">
<ExpectedAttributeValue>Closed</ExpectedAttributeValue>
<ExpectedAttributeValue>Duplicate</ExpectedAttributeValue>
<ExpectedAttributeValue>Misunderstood</ExpectedAttributeValue>
</HasOpenIssueRule>
<NotReviewedRule ReviewTypeName="Review" RuleID="IsUNReviewed" />
<SuspectTraceRule RuleID="IsUNSuspect" />
<ObjectInFileRule FileTypeName="File" AttributeName="ObjectsInFile" RuleID="IsUNInDoc" />
</ValidationRules>
Validation Rules
There are many validation rules which need specific configuration. Providing detailed description for each rule is outside of the scope of this document.
This is a extract of the xml definition:
Copy <xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="NotReviewedRule" type="notReviewedRule"/>
<xs:element name="TracedToRule" type="tracedToRule" />
<xs:element name="TracedFromRule" type="tracedFromRule" />
<xs:element name="IllegalTraceToRule" type="illegalTraceToRule" />
<xs:element name="IllegalTraceFromRule" type="illegalTraceFromRule" />
<xs:element name="ObsoleteLinkedTraceRule" type="obsoleteLinkedTraceRule" />
<xs:element name="AttributeValueRule" type="attributeValueRule" />
<xs:element name="RelatedAttributeValueRule" type="relatedAttributeValueRule" />
<xs:element name="LinkedAttributeValueRule" type="relatedAttributeValueRule" />
<xs:element name="HasOpenIssueRule" type="hasOpenIssueRule" />
<xs:element name="SuspectTraceRule" type="suspectTraceRule" />
<xs:element name="ObjectInFileRule" type="objectInFileRule" />
<xs:element name="ObjectsInFileNotReviewedRule" type="objectsInFileNotReviewedRule"/>
<xs:element name="ObjectInCompletedSignatureRule" type="objectInCompletedSignatureRule"/>
<xs:element name="ObjectsInFileUpToDateRule" type="objectsInFileUpToDateRule" />
<xs:element name="DateOverdueRule" type="dateOverdueRule" />
<xs:element name="RiskNotMitigatedRule" type="riskNotMitigatedRule" />
<xs:element name="HarmNotMitigatedRule" type="harmNotMitigatedRule" />
<xs:element name="CombinedRules" type="combinedRules" />
<xs:element name="DHFPhaseRule" type="dhfPhaseRule" />
<xs:element name="DHFFullfilledRule" type="dhfFullfilledRule" />
<xs:element name="HasOpenSignatureRule" type="hasOpenSignatureRule" />
<xs:element name="ConditionalRule" type="conditionalRule" />
<xs:element name="ValidationOnTracesRule" type="validationOnTracesRule" />
<xs:element name="ValidationFromTracesRule" type="validationFromTracesRule" />
<xs:element name="HasConsistentClassification" type="hasConsistentClassification" />
<xs:element name="ExecutedFromLastRevision" type="executedFromLastRevision" />
<xs:element name="SignatureMissingRule" type="signatureMissingRule"/>
<xs:element name="TracedTableColumnRule" type="tracedTableColumnRule"/>
<xs:element name="AdvancedAttributeValueRule" type="advancedAttributeValueRule"/>
<xs:element name="MissingExecutionInTestRunRule" type="missingExecutionInTestRunRuleTemplate"/>
<xs:element name="UniqueAttributeValueRule" type="uniqueAttributeValueRuleTemplate"/>
<xs:element name="ValidationRuleReference" type="validationRuleReference"/>
<xs:element name="IncomingSuspectTraceRule" type="incomingSuspectTraceRule"/>
</xs:choice>