The validator is an XML validation-engine. It validates XML documents against XML Schema and Schematron Rules depending on self defined scenarios which are used to fully configure the validation process. The validator always outputs a validation report in XML including all validation errors and data about the validation.
The validator distribution contains the following artifacts:
- validationtool-
<version>
.jar: Java library for embedded use within an application - validationtool-
<version
>-standalone.jar: Uber-JAR for standalone usage containing all dependencies in one jar file. This file comes with JAXB embedded and can be used with Java 8 and Java >= 11) - validationtool-
<version
>-java8-standalone.jar: Uber-JAR for standalone usage with Java JDK 8 containing all dependencies in one jar file. This file file does not contain JAXB and depends on the bundled version of the JDK. - libs/*: directory containing all (incl. optional) dependencies of the validator
- Maven > 3.0.0
- Java > 8 update 111
mvn install
generates two different packages in the dist
directory:
The validator is just an engine and does not know anything about XML Documents and has no own validation rules.
Validation rules and details are defined in validation scenarios which are used to fully configure the validation process.
All configurations are self-contained modules and deployed on their own.
Currently, there are two public third party validation configurations available.
- Validation Configuration for XRechnung is available on
- Validation Configuration for XGewerbeanzeige
The validator is designed to be used in three different ways:
- as standalone application running from the cli
- as library embedded within a custom application
- as a daemon providing a http interface
The general way using the CLI is:
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file> [OPTIONS] [FILE] [FILE] [FILE] ...
You can more CLI options by
java -jar validationtool-<version>-standalone.jar --help
A concrete example with a specific validator configuration can be found on GitHub
You can also start the validator as an HTTP-Server. Just start it in Daemon-Mode with the -D
option.
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file> -D
Per default the HTTP-Server listens on localhost at Port 8080.
You can configure it with -H
for IP Adress and -P
for port number:
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file> -D -H 192.168.1.x -P 8081
You can HTTP-POST to /
and the response will return the report document as defined in your validator configuration.
Additionally there is the GET /health
endpoint which can be used by monitoring systems.
The validator can also be used in own Java Applications via the API. Details can be found here.