diff --git a/README.md b/README.md index c26ab1c..1b2af41 100644 --- a/README.md +++ b/README.md @@ -70,76 +70,7 @@ Eine Übersicht über die Eigenschaften der Testdateien in [/validator-configuration-xrechnung/src/test/instances](/validator-configuration-xrechnung/src/test/instances) findet sich in [/validator-configuration-xrechnung/src/test/instances/assertions.xlsx](/validator-configuration-xrechnung/src/test/assertions.xlsx). -## Verwendung als Bibliothek -Daneben kann das Prüftool auch in eigene Anwendungen integriert werden. -Die Bibliothek steht derzeit noch *nicht* im Maven-Central-Repository zur Verfügung. Sie muss manuell im lokalen oder -unternehmensweiten Maven-Repository bereitgestellt werden (siehe [vgl. Maven Dokumentation](https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)). - - - -* Maven -``` - - de.kosit - validationtool - 1.0.0 - -``` -* Gradle -``` -dependencies { - compile group: 'de.kosit', name: 'validationtool', version: '1.0.0' -} -``` - -Voraussetzung für die Verwendung ist eine valide Prüfszenarien-Definition (xml-Datei) und das dazugehörige Repository -mit den von den definierten Szenarien benötigten Artefakten. Der folgende Quellcode zeigt die Erzeugung einer neuen -Prüf-Instanz: - -```java -//Vorbereitung der Konfiguration -URI scenarios = URI.create("scenarios.xml"); -CheckConfiguration config = new CheckConfiguration(); -config.setScenarioDefinition(scenarios); - -//Instanziierung der DefaultCheck-Implementierung -Check implemenation = new DefaultCheck(config); -``` - -Weitere Konfigurationsoption ist der Pfad zum Repository. Standardmäßig wird das Repository relativ zur Szenarien-Defintion -unter "repository" gesucht. - -Die so erzeugte Prüfinstanz initialisiert sämtliche Szenarien und deren Prüfartefakte. Ein etwaiger Konfigurationsfehler -wird frühzeitig mitgeteilt. - -Die eigentlich Prüfung erfolgt mit den beiden Methoden des `Check`-Interfaces: - -```java -... -Check pruefer = new DefaultCheck(config); - -//einzelne Datei prüfen -Input pruefKandidat = InputFactory.read(new File("rechnung.xml")); -Document report = pruefer.implemenation(pruefKandidat); - -//Batch-Prüfung -List files = Files.list(Paths.get("rechnungen")).map(path -> path.toFile()).collect(Collectors.toList()); -List toCheck = files.stream().map(InputFactory::read).collect(Collectors.toList()); -List reports = pruefer.implemenation(toCheck); - -``` - -Eine einmal initialisierte Prüfinstanz ist *threadsafe* und kann beliebig oft wieder verwendet -werden. XML-Artefakte wie Schema oder XSLT-Executables werden bei Instantiierung des `DefaultCheck` initialisiert und -wiederverwendet. Da diese Objekte relativ aufwändig zu Erzeugen sind, empfielt sich die Wiederverwendung der `Check`-Instanz. - -Die Batch-Verarbeitung erfolgt grundsätzlich seriell. Der `DefaultCheck` implementiert *keine Parallelverarbeitung*. - -Einziges Eingabeobjekt ist `Input`, welches sich mit den verschiedenen Methoden der `InputFactory` aus div. Eingabe-Resourcen -erzeugen lässt. Die InputFactory erzeugt für jedes Eingabe-Objekt eine Prüfsumme, die im Report mitgeführt wird. Der -verwendete Algorithmus ist über die `read`-Methoden der `InputFactory` definierbar. Standardmäßig wird _SHA-256_ des JDK -verwendet ## Verwendung des Daemon-Mode Das Prüftool stellt auch eine HTTP-Schnittstelle bereit, über die die Funktionalität angesprochen werden kann. Dazu wird die Anwendung diff --git a/docs/api.md b/docs/api.md index 8f39b3f..dfbd462 100644 --- a/docs/api.md +++ b/docs/api.md @@ -1,2 +1,77 @@ # Validator API +The Validator offers an API which allows you to integrate Validator in your own applications. + +## Dependency Management + +Currently, we *do not* deploy to Maven Central or similar. Hence you need to build and optionally deploy the Validator artifacts to your own shared repository (see for example [Maven Documentation](https://maven.apache.org/guides/mini/guide-3rd-party-jars-local.html)). + +### Maven +Then you can declare the dependency as follows: + +```xml + + de.kosit + validationtool + ${validator.version} + +``` +### Gradle + +```js +dependencies { + compile group: 'de.kosit', name: 'validationtool', version: '1.0.0' +} +``` + +## Usage + + + +Voraussetzung für die Verwendung ist eine valide Prüfszenarien-Definition (xml-Datei) und das dazugehörige Repository +mit den von den definierten Szenarien benötigten Artefakten. Der folgende Quellcode zeigt die Erzeugung einer neuen +Prüf-Instanz: + +```java +//Vorbereitung der Konfiguration +URI scenarios = URI.create("scenarios.xml"); +CheckConfiguration config = new CheckConfiguration(); +config.setScenarioDefinition(scenarios); + +//Instanziierung der DefaultCheck-Implementierung +Check implemenation = new DefaultCheck(config); +``` + +Weitere Konfigurationsoption ist der Pfad zum Repository. Standardmäßig wird das Repository relativ zur Szenarien-Defintion +unter "repository" gesucht. + +Die so erzeugte Prüfinstanz initialisiert sämtliche Szenarien und deren Prüfartefakte. Ein etwaiger Konfigurationsfehler +wird frühzeitig mitgeteilt. + +Die eigentlich Prüfung erfolgt mit den beiden Methoden des `Check`-Interfaces: + +```java +... +Check pruefer = new DefaultCheck(config); + +//einzelne Datei prüfen +Input pruefKandidat = InputFactory.read(new File("rechnung.xml")); +Document report = pruefer.implemenation(pruefKandidat); + +//Batch-Prüfung +List files = Files.list(Paths.get("rechnungen")).map(path -> path.toFile()).collect(Collectors.toList()); +List toCheck = files.stream().map(InputFactory::read).collect(Collectors.toList()); +List reports = pruefer.implemenation(toCheck); + +``` + +Eine einmal initialisierte Prüfinstanz ist *threadsafe* und kann beliebig oft wieder verwendet +werden. XML-Artefakte wie Schema oder XSLT-Executables werden bei Instantiierung des `DefaultCheck` initialisiert und +wiederverwendet. Da diese Objekte relativ aufwändig zu Erzeugen sind, empfielt sich die Wiederverwendung der `Check`-Instanz. + +Die Batch-Verarbeitung erfolgt grundsätzlich seriell. Der `DefaultCheck` implementiert *keine Parallelverarbeitung*. + +Einziges Eingabeobjekt ist `Input`, welches sich mit den verschiedenen Methoden der `InputFactory` aus div. Eingabe-Resourcen +erzeugen lässt. Die InputFactory erzeugt für jedes Eingabe-Objekt eine Prüfsumme, die im Report mitgeführt wird. Der +verwendete Algorithmus ist über die `read`-Methoden der `InputFactory` definierbar. Standardmäßig wird _SHA-256_ des JDK +verwendet diff --git a/docs/configurations.md b/docs/configurations.md index de8d601..142b901 100644 --- a/docs/configurations.md +++ b/docs/configurations.md @@ -51,4 +51,4 @@ Here is an example: ``` -Here the errors reported by violating the schematron rule `BR/15` are translated from *error* to *warning*. +Here the errors reported by violating the schematron rule `BR-15` are translated from *error* to *warning*.