Skip to main content

Model Validations

Expansion Resource​

The validation rules are packaged as expansion-resources. These resources need to be added to your expansionSettings.xml to use them to validate your model.

E.g. to add basic validations for a standard NS applicationNS Application (NSApplication). A pre-built software stack that provides common enterprise application functionality such as CRUD, search, authentication, and business process modeling out of the box.:

<expansionResources>
...
<expansionResource name="net.democritus.validations.model:prime-validations" version="${project.version}"/>
</expansionResources>

Output Formats​

When running from Maven or Command Line, you can select one or more output formats.

stdout​

Prints issues to the terminal.

mvn expanders:validate-model -Dvalidation.print

produces

rules:
- deprecation:
- Deprecated:
- net.democritus.elements.validations.FieldIsStatusFieldRule:
reason: Status field will be determined using "isStatusField" option only. Fields with name "status" and type "String" should contain "isStatusField" option to preserve functionality.
description: Status field will be determined using "isStatusField" option only. Fields with name "status" and type "String" should contain "isStatusField" option to preserve functionality.
issues:
- <Field atodoComp::Duration::status> is missing "isStatusField" option
- <Field atodoComp::TaskAssignment::status> is missing "isStatusField" option

JUnit​

Generates JUnit-compatible XML report file.

mvn expanders:validate-model -Dvalidation.junit=target/validation-report.xml

HTML​

Generates a HTML validation report.

mvn expanders:validate-model -Dvalidation.html=target/validation-report.html

Filter Reports​

If you want to suppress rules, specific elements, or specific issues.

Create conf/validation.xml file to define your excludes.

<validation xmlns="https://schemas.normalizedsystems.org/xsd/model-validations/1/0/0/validation">
<excludes>
<exclude>
<!-- glob against rule className -->
<rule>DataCommandHasLogRule</rule>
<!-- no elements specified, ignore all -->
</exclude>

<exclude>
<!-- glob against rule className -->
<rule>FieldCollectionRequiresBaseFieldRule</rule>
<elements>
<!-- DataRef; exact match, no pattern/glob -->
<element>expansionControl::ExpansionGoal::expansionTargetElements</element>
<element>expansionControl::ExpansionGoal::expansionTargetElementTypes</element>
</elements>
</exclude>

</excludes>
</validation>

Re-run validation. The file conf/validation.xml will be automatically picked up.