mirror of
https://github.com/itplr-kosit/validator.git
synced 2026-05-25 16:55:39 +00:00
Compare commits
No commits in common. "1e6f96dfad5b32e63e5f8c0dc3acb2218b06b011" and "da7515a055d293a48a196cb40ac70d3f277ce26d" have entirely different histories.
1e6f96dfad
...
da7515a055
4 changed files with 51 additions and 62 deletions
38
README.md
38
README.md
|
|
@ -1,5 +1,4 @@
|
|||
# KoSIT Validator
|
||||
|
||||
- [Introduction](#introduction)
|
||||
- [Validation Configurations](#validation-configurations)
|
||||
* [Third Party Validation Configurations](#third-party-validation-configurations)
|
||||
|
|
@ -10,18 +9,17 @@
|
|||
- [Packages](#packages)
|
||||
|
||||
## Introduction
|
||||
The validator is an XML validation engine to validate and process XML files in various formats. It basically does the following in order:
|
||||
|
||||
The validator is an XML validation engine to validate and process XML files in various formats. It basically does the following in order:
|
||||
|
||||
1. identify actual XML format
|
||||
1. validate the XML file (using schema and schematron rules)
|
||||
1. generate a custom report / extract custom data from the XML file
|
||||
1. identify actual xml format
|
||||
1. validate the xml file (using schema and schematron rules)
|
||||
1. generate a custom report / extract custom data from the xml file
|
||||
1. compute an acceptance status (according the supplied schema and rules)
|
||||
|
||||
The validator depends on self defined [scenarios](docs/configurations.md) in order to fully configure the whole process.
|
||||
It always creates a [validation report in XML](docs/configurations.md#validators-report). The actual content of the report can also be controlled by the scenario.
|
||||
The validator depends on self defined [scenarios](docs/configurations.md) which are used to fully configure the process.
|
||||
It always creates a [validation report in XML](docs/configurations.md#validators-report). The actual content of this is controlled by the scenario.
|
||||
|
||||
See [architecture](docs/architecture.md) for information about the whole validation process.
|
||||
See [architecture](docs/architecture.md) for information about the actual validation process.
|
||||
|
||||
|
||||
## Validation configurations
|
||||
|
|
@ -32,7 +30,7 @@ All configurations are self-contained modules which are deployed and developed o
|
|||
|
||||
### Third party validation configurations
|
||||
|
||||
Here are two public third party validation configurations available which might serve as examples:
|
||||
Currently, there are two public third party validation configurations available.
|
||||
|
||||
* Validation Configuration for [XRechnung](http://www.xoev.de/de/xrechnung):
|
||||
* Source code is available on [GitHub](https://github.com/itplr-kosit/validator-configuration-xrechnung)
|
||||
|
|
@ -45,31 +43,29 @@ Here are two public third party validation configurations available which might
|
|||
|
||||
The validator can be used in three different ways:
|
||||
|
||||
* as standalone application running from the CLI
|
||||
* as standalone application running from the cli
|
||||
* as library embedded within a custom application
|
||||
* as a daemon providing a http interface
|
||||
|
||||
### Standalone Command Line Interface (CLI)
|
||||
|
||||
**Important hint**: since v1.5.1 the filename has been changed from `validationtool-*` to `validator-*`
|
||||
### Standalone Command-Line Interface
|
||||
|
||||
The general way using the CLI is:
|
||||
|
||||
```shell
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file> -r <repository-path>
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file> -r <repository-path>
|
||||
[OPTIONS] [FILE] [FILE] [FILE] ...
|
||||
```
|
||||
|
||||
The help option displays further CLI options to customize the process:
|
||||
|
||||
```shell
|
||||
java -jar validator-<version>-standalone.jar --help
|
||||
java -jar validationtool-<version>-standalone.jar --help
|
||||
```
|
||||
|
||||
A concrete example with a specific validator configuration can be found on
|
||||
[GitHub](https://github.com/itplr-kosit/validator-configuration-xrechnung)
|
||||
|
||||
The [CLI documentation](./docs/cli.md) shows further configuration options.
|
||||
The [CLI documentation](./docs/cli.md) shows further configuration options.
|
||||
|
||||
### Application User Interface (API / embedded usage)
|
||||
|
||||
|
|
@ -97,7 +93,7 @@ will thus not be resolved transitively.
|
|||
You can also start the validator as a HTTP-Server. Just start it in _Daemon-Mode_ with the `-D` option.
|
||||
|
||||
```shell
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file> -D
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file> -D
|
||||
```
|
||||
|
||||
|
||||
|
|
@ -107,7 +103,7 @@ The [daemon documentation](./docs/daemon.md) shows more usage details and furthe
|
|||
|
||||
The validator distribution contains the following artifacts:
|
||||
|
||||
1. **validator-`<version>`.jar**: Java library for embedded use within an application
|
||||
1. **validator-`<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)
|
||||
1. **validator-`<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.
|
||||
1. **validationtool-`<version>`.jar**: Java library for embedded use within an application
|
||||
1. **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)
|
||||
1. **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.
|
||||
1. **libs/***: directory containing all (incl. optional) dependencies of the validator
|
||||
|
|
|
|||
34
docs/cli.md
34
docs/cli.md
|
|
@ -1,29 +1,27 @@
|
|||
# Validator Command Line Interface (CLI)
|
||||
# Validator CLI
|
||||
|
||||
The `validator` comes with a command line interface (CLI) which allows validating any number of input XML files.
|
||||
|
||||
**Important hint**: since v1.5.1 the filename has been changed from `validationtool-*` to `validator-*`
|
||||
The validator comes with a commandline interface (CLI) which allows validating any number of input xml files.
|
||||
|
||||
The general way using the CLI is:
|
||||
|
||||
```shell
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file> [OPTIONS] [FILE] [FILE] [FILE] ...
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file> [OPTIONS] [FILE] [FILE] [FILE] ...
|
||||
```
|
||||
|
||||
The validator can also read the XML file from the standard input
|
||||
The validator can also read the xml file from the standard input
|
||||
|
||||
```shell
|
||||
```shell script
|
||||
# via redirection
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file> [OPTIONS] < my-input.xml
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file> [OPTIONS] < my-input.xml
|
||||
|
||||
# read from pipe
|
||||
cat my-input.xml | validator-<version>-standalone.jar -s <scenario-config-file> [OPTIONS]
|
||||
cat my-input.xml | validationtool-<version>-standalone.jar -s <scenario-config-file> [OPTIONS]
|
||||
```
|
||||
|
||||
The help option displays further CLI options:
|
||||
The help option displays further CLI options to customize the process:
|
||||
|
||||
```shell
|
||||
java -jar validator-<version>-standalone.jar --help
|
||||
java -jar validationtool-<version>-standalone.jar --help
|
||||
```
|
||||
|
||||
You can also use multiple scenario configurations and multiple repositories with resources for these. The validator either supports
|
||||
|
|
@ -31,17 +29,17 @@ supplying the parameters in order or using named configuration. Valid usages are
|
|||
|
||||
```shell
|
||||
# multiple scenarios, implicit repository
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file1> -s <scenario-config-file2> [OPTIONS] [FILE]
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file1> -s <scenario-config-file2> [OPTIONS] [FILE]
|
||||
|
||||
# multiple scenarios, single defined repository
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file1> -s <scenario-config-file2> -r <path-to-repo> [OPTIONS] [FILE]
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file1> -s <scenario-config-file2> -r <path-to-repo> [OPTIONS] [FILE]
|
||||
|
||||
# multiple scenarios, multiple repositories ordered
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file1> -r <path-to-repo1> -s <scenario-config-file2> -r <path-to-repo2> [OPTIONS] [FILE]
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file1> -s <scenario-config-file2> -r <path-to-repo1> -r <path-to-repo2> [OPTIONS] [FILE]
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file1> -r <path-to-repo1> -s <scenario-config-file2> -r <path-to-repo2> [OPTIONS] [FILE]
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file1> -s <scenario-config-file2> -r <path-to-repo1> -r <path-to-repo2> [OPTIONS] [FILE]
|
||||
|
||||
# multiple scenarios, multiple repositories (named)
|
||||
java -jar validator-<version>-standalone.jar -s "NAME1=<scenario-config-file1>" -s "NAME2=<scenario-config-file2>" -r "NAME1=<path-to-repo1>" -r "NAME2=<path-to-repo2>" [OPTIONS] [FILE]
|
||||
java -jar validationtool-<version>-standalone.jar -s "NAME1=<scenario-config-file1>" -s "NAME2=<scenario-config-file2>" -r "NAME1=<path-to-repo1>" -r "NAME2=<path-to-repo2>" [OPTIONS] [FILE]
|
||||
```
|
||||
|
||||
## Special features
|
||||
|
|
@ -59,7 +57,7 @@ generated reports. This is mainly useful for scenario developers. Ask KoSIT for
|
|||
|
||||
| code | description |
|
||||
|-|-|
|
||||
| 0 | All validated xml files are acceptable according to the scenario configurations or application usage was requested |
|
||||
| 0 | All validated xml files are acceptable according to the scenario configurations |
|
||||
| positive integer | Number of rejected (e.g. not acceptable) xml files according to the scenario configurations|
|
||||
| -1 | Parsing error. The commandline arguments specified are incorrect |
|
||||
| -2 | Configuration error. There is an error loading the configuration and/or validation targets |
|
||||
| -2 | Configuration error. There is an error loading the configuration and/or validation targets |
|
||||
|
|
|
|||
|
|
@ -8,10 +8,8 @@ and should work with OpenJDK based distributions. Keep this in mind, if you want
|
|||
To use the validator daemon as is, start the _Daemon-Mode_ with the `-D` option and supply a suitable
|
||||
[validator configuration](configurations.md).
|
||||
|
||||
**Important hint**: since v1.5.1 the filename has been changed from `validationtool-*` to `validator-*`
|
||||
|
||||
```shell
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file> -D
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file> -D
|
||||
```
|
||||
|
||||
Per default the HTTP-Server listens on _localhost_ at Port 8080.
|
||||
|
|
@ -19,7 +17,7 @@ Per default the HTTP-Server listens on _localhost_ at Port 8080.
|
|||
You can configure the daemon with `-H` for IP Adress and `-P` for port number:
|
||||
|
||||
```shell
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file> -D -H 192.168.1.x -P 8081
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file> -D -H 192.168.1.x -P 8081
|
||||
```
|
||||
|
||||
## Customized usage
|
||||
|
|
@ -137,5 +135,5 @@ The daemon provides a simple GUI when issuing `GET` requests providing the follo
|
|||
The GUI can be disabled using the API (see above) or via CLI:
|
||||
|
||||
```shell script
|
||||
java -jar validator-<version>-standalone.jar -s <scenario-config-file> -D --disable-gui
|
||||
java -jar validationtool-<version>-standalone.jar -s <scenario-config-file> -D --disable-gui
|
||||
```
|
||||
|
|
|
|||
33
pom.xml
33
pom.xml
|
|
@ -15,15 +15,16 @@
|
|||
~ limitations under the License.
|
||||
-->
|
||||
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||
xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
||||
<name>KoSIT XML Validator</name>
|
||||
<name>KoSIT XML Prüftool Implementierung</name>
|
||||
|
||||
<groupId>org.kosit</groupId>
|
||||
<artifactId>validator</artifactId>
|
||||
<version>1.5.2-SNAPSHOT</version>
|
||||
|
||||
<version>1.5.1-SNAPSHOT</version>
|
||||
|
||||
<description>KoSIT XML Validator against XSD and Schematron based on defined scenarios.</description>
|
||||
<developers>
|
||||
<!-- In alphabetical order by last name -->
|
||||
|
|
@ -66,7 +67,7 @@
|
|||
<version.saxon-he>12.8</version.saxon-he>
|
||||
<version.slf4j>2.0.17</version.slf4j>
|
||||
</properties>
|
||||
|
||||
|
||||
<repositories>
|
||||
<repository>
|
||||
<id>project.local</id>
|
||||
|
|
@ -184,7 +185,7 @@
|
|||
<filtering>true</filtering>
|
||||
</resource>
|
||||
</resources>
|
||||
|
||||
|
||||
<pluginManagement>
|
||||
<plugins>
|
||||
<plugin>
|
||||
|
|
@ -201,13 +202,13 @@
|
|||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-gpg-plugin</artifactId>
|
||||
<version>3.2.8</version>
|
||||
</plugin>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</pluginManagement>
|
||||
|
||||
<plugins>
|
||||
<!-- for PR 152 -->
|
||||
<plugin>
|
||||
<!-- for PR 152 -->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-resources-plugin</artifactId>
|
||||
<version>3.3.1</version>
|
||||
|
|
@ -215,7 +216,7 @@
|
|||
<propertiesEncoding>ISO-8859-1</propertiesEncoding>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
||||
<plugin>
|
||||
<groupId>org.codehaus.mojo</groupId>
|
||||
<artifactId>build-helper-maven-plugin</artifactId>
|
||||
|
|
@ -463,14 +464,14 @@
|
|||
<artifactId>maven-surefire-plugin</artifactId>
|
||||
<version>3.5.3</version>
|
||||
<configuration>
|
||||
<!--suppress MavenModelInspection -->
|
||||
<argLine>-Dfile.encoding=UTF-8 ${jacocoSurefire}</argLine>
|
||||
<systemProperties>
|
||||
<property>
|
||||
<name>java.net.useSystemProxies</name>
|
||||
<value>true</value>
|
||||
</property>
|
||||
</systemProperties>
|
||||
<!--suppress MavenModelInspection -->
|
||||
<argLine>-Dfile.encoding=UTF-8 ${jacocoSurefire}</argLine>
|
||||
</configuration>
|
||||
</plugin>
|
||||
|
||||
|
|
@ -638,10 +639,6 @@
|
|||
</execution>
|
||||
</executions>
|
||||
</plugin>
|
||||
<plugin>
|
||||
<groupId>org.sonatype.central</groupId>
|
||||
<artifactId>central-publishing-maven-plugin</artifactId>
|
||||
</plugin>
|
||||
</plugins>
|
||||
</build>
|
||||
</profile>
|
||||
|
|
@ -726,9 +723,9 @@
|
|||
<tag>release/1.5.x</tag>
|
||||
<url>https://github.com/itplr-kosit/validator</url>
|
||||
</scm>
|
||||
|
||||
|
||||
<url>https://github.com/itplr-kosit/validator</url>
|
||||
|
||||
|
||||
<licenses>
|
||||
<license>
|
||||
<name>Apache License, Version 2.0</name>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue