| <?xml version="1.0" encoding="UTF-8"?> |
| <?xml-stylesheet type="text/css" href="validator.css"?> |
| <?eclipse version="3.4"?> |
| <plugin> |
| <extension |
| point="org.eclipse.emf.validation.constraintProviders"> |
| <category |
| id="org.eclipse.rmf.reqif10.constraints" |
| mandatory="false" |
| name="Constraints for ReqIF 1.0"> |
| Constraints for validating ReqIF 1.0 models |
| </category> |
| <constraintProvider |
| cache="true" |
| mode="Batch"> |
| <package |
| namespaceUri="http://www.omg.org/spec/ReqIF/20110401/reqif.xsd"> |
| </package> |
| <constraints categories="org.eclipse.rmf.reqif10.constraints"> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.IdentifiableLongNameExistenceConstraint" |
| id="C1.1" |
| lang="JAVA" |
| mode="Batch" |
| name="C1.1 EnumValue - existence of long name" |
| severity="ERROR" |
| statusCode="0101"> |
| <message> |
| [C1.1] LongName is not set |
| </message> |
| <description> |
| LongName of EnumValue must be set |
| </description> |
| <target |
| class="EnumValue"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.IdentifiableLongNameExistenceConstraint" |
| id="C1.2" |
| lang="JAVA" |
| mode="Batch" |
| name="C1.2 AttributeDefinitionBoolean - existence of long name" |
| severity="ERROR" |
| statusCode="0102"> |
| <message> |
| [C1.2] LongName is not set |
| </message> |
| <description> |
| LongName of AttributeDefinitionBoolean must be set |
| </description> |
| <target |
| class="AttributeDefinitionBoolean"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.IdentifiableLongNameExistenceConstraint" |
| id="C1.3" |
| lang="JAVA" |
| mode="Batch" |
| name="C1.3 AttributeDefinitionDate - existence of long name" |
| severity="ERROR" |
| statusCode="0103"> |
| <message> |
| [C1.3] LongName is not set |
| </message> |
| <description> |
| LongName of AttributeDefinitionDate must be set |
| </description> |
| <target |
| class="AttributeDefinitionDate"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.IdentifiableLongNameExistenceConstraint" |
| id="C1.4" |
| lang="JAVA" |
| mode="Batch" |
| name="C1.4 AttributeDefinitionEnumeration - existence of long name" |
| severity="ERROR" |
| statusCode="0104"> |
| <message> |
| [C1.4] LongName is not set |
| </message> |
| <description> |
| LongName of AttributeDefinitionEnumeration must be set |
| </description> |
| <target |
| class="AttributeDefinitionEnumeration"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.IdentifiableLongNameExistenceConstraint" |
| id="C1.5" |
| lang="JAVA" |
| mode="Batch" |
| name="C1.5 AttributeDefinitionInteger - existence of long name" |
| severity="ERROR" |
| statusCode="0105"> |
| <message> |
| [C1.5] LongName is not set |
| </message> |
| <description> |
| LongName of AttributeDefinitionInteger must be set |
| </description> |
| <target |
| class="AttributeDefinitionInteger"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.IdentifiableLongNameExistenceConstraint" |
| id="C1.6" |
| lang="JAVA" |
| mode="Batch" |
| name="C1.6 AttributeDefinitionReal - existence of long name" |
| severity="ERROR" |
| statusCode="0106"> |
| <message> |
| [C1.6] LongName is not set |
| </message> |
| <description> |
| LongName of AttributeDefinitionReal must be set |
| </description> |
| <target |
| class="AttributeDefinitionReal"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.IdentifiableLongNameExistenceConstraint" |
| id="C1.7" |
| lang="JAVA" |
| mode="Batch" |
| name="C1.7 AttributeDefinitionString - existence of long name" |
| severity="ERROR" |
| statusCode="0107"> |
| <message> |
| [C1.7] LongName is not set |
| </message> |
| <description> |
| LongName of AttributeDefinitionString must be set |
| </description> |
| <target |
| class="AttributeDefinitionString"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.IdentifiableLongNameExistenceConstraint" |
| id="C1.8" |
| lang="JAVA" |
| mode="Batch" |
| name="C1.8 AttributeDefinitionXHTML - existence of long name" |
| severity="ERROR" |
| statusCode="0108"> |
| <message> |
| [C1.8] LongName is not set |
| </message> |
| <description> |
| LongName of AttributeDefinitionXHTML must be set |
| </description> |
| <target |
| class="AttributeDefinitionXHTML"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.IdentifiableLongNameExistenceConstraint" |
| id="C1.9" |
| lang="JAVA" |
| mode="Batch" |
| name="C1.9 RelationGroup - existence of long name" |
| severity="ERROR" |
| statusCode="0109"> |
| <message> |
| [C1.9] LongName is not set |
| </message> |
| <description> |
| LongName of RelationGroup must be set |
| </description> |
| <target |
| class="RelationGroup"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.IdentifiableLongNameExistenceConstraint" |
| id="C1.10" |
| lang="JAVA" |
| mode="Batch" |
| name="C1.10 DatatypeDefinition - existence of long name" |
| severity="WARNING" |
| statusCode="0101"> |
| <message> |
| [C1.10] LongName of {0} is not set |
| </message> |
| <description> |
| LongName of DatatypeDefinition must be set |
| </description> |
| <target |
| class="DatatypeDefinition"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeDefinitionDatatypeDefinitionExistenceConstraint" |
| id="C2.0" |
| lang="JAVA" |
| mode="Batch" |
| name="C2.0 AttributeDefinition - existence of DatatypeDefinitiion" |
| severity="ERROR" |
| statusCode="0200"> |
| <message> |
| [C2.3] DatatypeDefinition is not set |
| </message> |
| <target |
| class="AttributeDefinition"> |
| </target> |
| <description> |
| DatatypeDefinition of AttributeDefinition must be set |
| </description> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeDefinitionDatatypeDefinitionTypeConstraint" |
| id="C2.1" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C2.1 AttributeDefinitionBoolean - existence of DatatypeDefinitionBoolean" |
| severity="ERROR" |
| statusCode="0201"> |
| <message> |
| [C2.1] DatatypeDefinition of wrong type |
| </message> |
| <target |
| class="AttributeDefinitionBoolean"> |
| </target> |
| <description> |
| DatatypeDefinition of AttributeDefinition must have correct type |
| </description> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeDefinitionDatatypeDefinitionTypeConstraint" |
| id="C2.6" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C2.6 AttributeDefinitionReal - existence of DatatypeDefinitionReal" |
| severity="ERROR" |
| statusCode="0201"> |
| <message> |
| [C2.6] DatatypeDefinition of wrong type |
| </message> |
| <target |
| class="AttributeDefinitionReal"> |
| </target> |
| <description> |
| DatatypeDefinition of AttributeDefinition must have correct type |
| </description> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.DatatypeDefinitionMinValueConstraint" |
| id="C3.1" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C3.1 DatatypeDefinition - minValue is set" |
| severity="ERROR" |
| statusCode="0301"> |
| <target |
| class="DatatypeDefinitionReal"> |
| </target> |
| <target |
| class="DatatypeDefinitionInteger"></target> |
| <message> |
| [C3.1] minValue of {0} is not set |
| </message> |
| <description> |
| minValue of DatatypeDefinitionReal or DatatypeDefinitionInteger is set. |
| </description> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.DatatypeDefinitionMaxValueConstraint" |
| id="C3.2" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C3.2 DatatypeDefinition - maxValue is set" |
| severity="ERROR" |
| statusCode="0302"> |
| <target |
| class="DatatypeDefinitionReal"> |
| </target> |
| <target |
| class="DatatypeDefinitionInteger"> |
| </target> |
| <message> |
| [C3.2] maxValue of {0} is not set |
| </message> |
| <description> |
| maxValue of DatatypeDefinitionReal or DatatypeDefinitionInteger is set. |
| </description> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.DatatypeDefinitionAccuracyConstraint" |
| id="C3.3" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C3.3 DatatypeDefinition - Accuracy is set" |
| severity="ERROR" |
| statusCode="0303"> |
| <target |
| class="DatatypeDefinitionReal"> |
| </target> |
| <message> |
| [C3.3] accuracy of {0} is not set |
| </message> |
| <description> |
| Accuracy of DatatypeDefinitionReal is set. |
| </description> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.DatatypeDefinitionMaxLengthConstraint" |
| id="C3.4" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C3.4 DatatypeDefinition - maxLength is set" |
| severity="ERROR" |
| statusCode="0304"> |
| <target |
| class="DatatypeDefinitionString"> |
| </target> |
| <message> |
| [C3.4] maxLength of {0} is not set |
| </message> |
| <description> |
| maxLength of DatatypeDefinitionString is set. |
| </description> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.DatatypeDefinitionRealMinMax" |
| id="C3.5" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C3.5 DatatypeDefinitionReal - minValue<=maxValue" |
| severity="WARNING" |
| statusCode="0305"> |
| <message> |
| [C3.5] DatatypeDefinitionReal minValue is greater than maxValue |
| </message> |
| <description> |
| minValue of DatatypeDefinitionReal should not be greater than maxValue |
| </description> |
| <target |
| class="DatatypeDefinitionReal"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.DatatypeDefinitionIntegerMinMax" |
| id="C3.6" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C3.6 DatatypeDefinitionInteger - minValue<=maxValue" |
| severity="WARNING" |
| statusCode="0306"> |
| <message> |
| [C3.6] DatatypeDefinitionInteger minValue is greater than maxValue |
| </message> |
| <description> |
| minValue of DatatypeDefinitionInteger should not be greater than maxValue |
| </description> |
| <target |
| class="DatatypeDefinitionInteger"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueRealInRange" |
| id="AV1.1" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="AV1.1 AttributeValueReal - between min and max" |
| severity="ERROR" |
| statusCode="0401"> |
| <message> |
| [AV1.1] AttributeValueReal {0} than {1} |
| </message> |
| <description> |
| theValue of AttributeValueReal must be between minValue and maxValue |
| </description> |
| <target |
| class="AttributeValueReal"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueIntegerInRange" |
| id="AV1.2" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="AV1.2 AttributeValueInteger - between min and max" |
| severity="ERROR" |
| statusCode="0402"> |
| <message> |
| [AV1.2] AttributeValueInteger {0} than {1} |
| </message> |
| <description> |
| theValue of AttributeValueInteger must be between minValue and maxValue |
| </description> |
| <target |
| class="AttributeValueInteger"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueStringMaxLength" |
| id="AV1.3" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="AV1.3 AttributeValueString - not longer than maxLength" |
| severity="ERROR" |
| statusCode="0403"> |
| <message> |
| [AV1.3] AttributeValueString is longer than maxLength |
| </message> |
| <description> |
| theValue of AttributeString must not be longer than maxLength |
| </description> |
| <target |
| class="AttributeValueString"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueEnumObeysMultiValued" |
| id="AV1.4" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="AV1.4 AttributeValueEnumeration Multiplicity - max one value if not multiValued" |
| severity="ERROR" |
| statusCode="0404"> |
| <message> |
| [AV1.4] AttributeValueEnumeration is single valued but contains {0} values |
| </message> |
| <description> |
| AttributeValueEnumeration must not contain more than one Value if its not multiValued |
| </description> |
| <target |
| class="AttributeValueEnumeration"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueRealAccuracy" |
| id="AV1.5" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="AV1.5 AttributeValueReal - not more precise that accuracy" |
| severity="ERROR" |
| statusCode="0405"> |
| <message> |
| [AV1.5] AttributeValueReal {0} has {1} fracional digits but accuracy of DatatypeDefinition is {2} |
| </message> |
| <description> |
| AttributeValueReal must not have more fractional digits than accuracy |
| </description> |
| <target |
| class="AttributeValueReal"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueXHTMLObjectsExist" |
| id="AV1.6" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="AV1.6 AttributeValueXHTML - referenced objects exist" |
| severity="ERROR" |
| statusCode="0406"> |
| <message> |
| [AV1.6] AttributeValueXHTML references {0} that can not be found: {1} |
| </message> |
| <description> |
| All files referenced in an AttributeValueXHTML by a file URI exist |
| </description> |
| <target |
| class="AttributeValueXHTML"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueXHTMLObjectsIsNotFile" |
| id="AV1.6a" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="AV1.6a AttributeValueXHTML - referenced objects is file" |
| severity="WARNING" |
| statusCode="0406"> |
| <message> |
| [AV1.6a] AttributeValueXHTML references {0} non-file object(s) {1} |
| </message> |
| <description> |
| object should be referenced by a file URI |
| </description> |
| <target |
| class="AttributeValueXHTML"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueEnumValidValue" |
| id="AV1.7" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="AV1.7 AttributeValueEnumeration uses valid EnumValue" |
| severity="ERROR" |
| statusCode="0404"> |
| <message> |
| [AV1.7] AttributeValueEnumeration uses an illegal EnumValue |
| </message> |
| <description> |
| An AttributeValueEnumeration only references values that are defined by its DatatypeDefinitionEnumeration |
| </description> |
| <target |
| class="AttributeValueEnumeration"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueXHTMLNoClassAttribute" |
| id="C6.1" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C6.1 The XHTML class attribute must not be used" |
| severity="ERROR" |
| statusCode="0406"> |
| <message> |
| [C6.1] AttributeValueXHTML contains {0} with a class attribute: {1} |
| </message> |
| <description> |
| The 'class' attribute of the XHTML Core Attribute Collection MUST NOT be used |
| </description> |
| <target |
| class="AttributeValueXHTML"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueXHTMLObjectsAlternative" |
| id="C6.2" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C6.2 Alternative images and texts must be exported" |
| severity="ERROR" |
| statusCode="0406"> |
| <message> |
| [C6.2] AttributeValueXHTML missing alternative for data object |
| </message> |
| <description> |
| For XHTML object elements that refer to an external object that is not an image with the MIME-Type image/png, an alternative image AND an alternative text MUST be provided |
| </description> |
| <target |
| class="AttributeValueXHTML"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueXHTMLObjectOnlyAllowedAttributes" |
| id="C6.3" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C6.3 Only data, type, width and height are allowed as attributes for XHTML <object>" |
| severity="ERROR" |
| statusCode="0406"> |
| <message> |
| [C6.3] AttributeValueXHTML contains {0} with illegal attributes: {1} |
| </message> |
| <description> |
| If there is a specific MIME-type for the application that handles the external object, it MUST be stored in the 'type' attribute and no other attributes than 'data', 'type', 'width' and 'height' MUST be used in that case. |
| </description> |
| <target |
| class="AttributeValueXHTML"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeValueXHTMLObjectsDataAttributePresent" |
| id="C6.4" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="C6.4 The location of an external object MUST be specified via the data attribute" |
| severity="ERROR" |
| statusCode="0406"> |
| <message> |
| [C6.4] AttributeValueXHTML missing data attribute in {0} |
| </message> |
| <description> |
| The location of an external object MUST be specified via the 'data' attribute. |
| </description> |
| <target |
| class="AttributeValueXHTML"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.schema" |
| id="SCHEMA" |
| lang="JAVA" |
| mode="Batch" |
| name="SCHEMA - reqif complies xsd schema" |
| severity="ERROR" |
| statusCode="10001"> |
| <message> |
| [XSD] {0} |
| </message> |
| <description> |
| The input file must comply the xsd schema |
| </description> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.emfschema" |
| id="EMFSCHEMA" |
| lang="JAVA" |
| mode="Batch" |
| name="EMFSCHEMA - reqif complies xsd schema" |
| severity="ERROR" |
| statusCode="10002"> |
| <message> |
| {0} |
| </message> |
| <description> |
| the Reqif must comply the emf-schema |
| </description> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.AttributeNamePrefix" |
| id="IG_R3" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="IG_R3 Name of Attributes should always be represented without a ReqIF. prefix" |
| severity="WARNING" |
| statusCode="0406"> |
| <message> |
| [IG_R3] Name of Attribute {0} has a ReqIF. prefix |
| </message> |
| <description> |
| According to the Implementaion Guide"Names of user defined attributes should always be represented in ReqIF XML documents and requirements authoring tools without a ReqIF. prefix." [2.3.2 R3] |
| Note: this constraint checks for the prefix "ReqIF." case sensitive |
| </description> |
| <target |
| class="AttributeDefinition"> |
| </target> |
| </constraint> |
| <constraint |
| class="org.eclipse.rmf.reqif10.constraints.ConflictingIsEditableForAttributeDefinitionEnumeration" |
| id="IG_2_10" |
| isEnabledByDefault="true" |
| lang="JAVA" |
| mode="Batch" |
| name="IG_2_10 Conflicting IsEditable for AttributeDefinitionEnumeration" |
| severity="WARNING" |
| statusCode="0406"> |
| <message> |
| [IG_2_10] DatatypeDefinitionEnumeration {0} is referenced by different AttributeDefinitionEnumeration of which some are editable and some are not editable |
| </message> |
| <description> |
| Generates a Warning if a DatatypeDefinitionEnumeration is used by more than one AttributeDefinition and one of the is set to isEditable while another one is set to Non-Editable. |
| |
| See Implementaion Guide Chapter 2.10 How to resolve conflicting isEditable values for AttributeDefinitionEnumeration: |
| |
| [...]Concerning AttributeDefinitionEnumeration, the following conflict may occur as a consequence: |
| one AttributeDefinitionEnumeration element (A) is editable a different AttributeDefinitionEnumeration element (B) is not editable both AttributeDefinitionEnumeration elements refer to the same DatatypeDefinitionEnumeration, which defines the enumeration literals. |
| |
| If that conflict occurs, it may not be clear whether the first AttributeDefinitionEnumeration element (A) should be treated as editable or not, as changes to the list of enumeration literals will be visible in the second AttributeDefinitionEnumeration element (B). |
| </description> |
| <target |
| class="DatatypeDefinitionEnumeration"> |
| </target> |
| </constraint> |
| </constraints> |
| </constraintProvider> |
| </extension> |
| |
| <!-- to be moved into user application --> |
| <extension point="org.eclipse.emf.validation.constraintBindings"> |
| <binding |
| context="EObjectContext" |
| category="org.eclipse.rmf.reqif10.constraints"/> |
| </extension> |
| |
| <extension point="org.eclipse.emf.validation.constraintBindings"> |
| <clientContext id="EObjectContext"> |
| <enablement> |
| <instanceof value="org.eclipse.emf.ecore.EObject"/> |
| </enablement> |
| </clientContext> |
| </extension> |
| |
| </plugin> |