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.
- Maven
- CLI
mvn expanders:validate-model -Dvalidation.print
java -jar model-validations.jar --stdout
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.
- Maven
- CLI
mvn expanders:validate-model -Dvalidation.junit=target/validation-report.xml
java -jar model-validations.jar --junit target/validation-report.xml
HTML
Generates a HTML validation report.
- Maven
- CLI
mvn expanders:validate-model -Dvalidation.html=target/validation-report.html
java -jar model-validations.jar --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.