---
title: "KositValidator – API-Referenz · Quittio"
description: "Official Schematron validation (level L5) with the KoSIT validator."
canonical_url: "https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositValidator"
locale: de
meta:
  "og:description": "Official Schematron validation (level L5) with the KoSIT validator."
  "og:image": "https://quittio.dev/og/quittio-de.jpg"
  "og:image:alt": "Quittio: E-Rechnungen für PHP und Laravel. Rechtssicher, validiert, archiviert, mit geprüfter Beispielrechnung."
  "og:image:height": "630"
  "og:image:type": image/jpeg
  "og:image:width": "1200"
  "og:title": "KositValidator – API-Referenz · Quittio"
  "twitter:image": "https://quittio.dev/og/quittio-de.jpg"
  "twitter:image:alt": "Quittio: E-Rechnungen für PHP und Laravel. Rechtssicher, validiert, archiviert, mit geprüfter Beispielrechnung."
---

> Index of every page on this site: [llms.txt](https://quittio.dev/llms.txt)

[API reference](https://quittio.dev/docs/api) / [Quittio](https://quittio.dev/docs/api/Quittio) \\ [Core](https://quittio.dev/docs/api/Quittio/Core) \\ [Validation](https://quittio.dev/docs/api/Quittio/Core/Validation) \\ [Drivers](https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers)

# KositValidator

final class in quittio/core · implements [`ValidationDriver`](https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationDriver)

`Quittio\Core\Validation\Drivers\KositValidator` · [Source](https://github.com/Quittio/quittio/blob/v0.7.1/packages/core/src/Validation/Drivers/KositValidator.php#L27)

Official Schematron validation (level L5) with the KoSIT validator.

Modes:

- daemon: HTTP POST to a running validator (recommended; also for Docker or an own endpoint),
- cli: one JVM per call (slow start, no service needed).

Schematron rules are XSLT 2.0, which PHP cannot execute; therefore Java is required.

## Constants \#

| Constant | Value | Description |
| --- | --- | --- |
| `MODE_CLI` | `'cli'` | |
| `MODE_DAEMON` | `'daemon'` | |

## Methods \#

| Method | Description |
| --- | --- |
| `->__construct()` | |
| `->lastReport()` | Raw report of the last validation (for archiving as test report). |
| `->levels()` | |
| `->name()` | |
| `->supports()` | |
| `->validate()` | |
| `->validateXml()` | |

### `__construct()`#

```
public function __construct(
    string $mode = self::MODE_DAEMON,
    string $url = 'http://127.0.0.1:8081',
    ?string $jar = null,
    list<array{scenarios: string, repository: string}> $configurations = [],
    string $java = 'java',
    int $timeout = 30,
    bool $failOnUnavailable = true,
    KositReportParser $parser = new \Quittio\Core\Validation\Drivers\KositReportParser(),
    (Closure(string, string, int): array{status: int, body: ?string})|null $http = null,
)
```

| Parameter | Type | Description |
| --- | --- | --- |
| `$mode` | `string` = `self::MODE_DAEMON` | |
| `$url` | `string` = `'http://127.0.0.1:8081'` | |
| `$jar` | `?string` = `null` | |
| `$configurations` | `list<array{scenarios: string, repository: string}>` = `[]` | cli mode only |
| `$java` | `string` = `'java'` | |
| `$timeout` | `int` = `30` | |
| `$failOnUnavailable` | `bool` = `true` | |
| `$parser` | `[KositReportParser](https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositReportParser)` = `new \Quittio\Core\Validation\Drivers\KositReportParser()` | |
| `$http` | `(Closure(string, string, int): array{status: int, body: ?string})\|null` = `null` | |

### `lastReport()`#

```
public function lastReport(): ?string
```

Raw report of the last validation (for archiving as test report).

<dl><dt>Returns</dt>
<dd><code>?string</code></dd>
</dl>

### `levels()`#

```
public function levels(): array
```

<dl><dt>Returns</dt>
<dd><code>array</code></dd>
</dl>

### `name()`#

```
public function name(): string
```

<dl><dt>Returns</dt>
<dd><code>string</code></dd>
</dl>

### `supports()`#

```
public function supports(ValidationSubject $subject): bool
```

| Parameter | Type | Description |
| --- | --- | --- |
| `$subject` | `[ValidationSubject](https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationSubject)` | |

<dl><dt>Returns</dt>
<dd><code>bool</code></dd>
</dl>

### `validate()`#

```
public function validate(ValidationSubject $subject): ValidationResult
```

| Parameter | Type | Description |
| --- | --- | --- |
| `$subject` | `[ValidationSubject](https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationSubject)` | |

<dl><dt>Returns</dt>
<dd><code><a href="https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationResult">ValidationResult</a></code></dd>
</dl>

### `validateXml()`#

```
public function validateXml(string $xml): list<ValidationMessage>
```

| Parameter | Type | Description |
| --- | --- | --- |
| `$xml` | `string` | |

<dl><dt>Returns</dt>
<dd><code>list&lt;<a href="https://quittio.dev/docs/api/Quittio/Core/Validation/ValidationMessage">ValidationMessage</a>&gt;</code></dd>
</dl>

```json
{"@context":"https://schema.org","@graph":[{"@id":"https://quittio.dev/#website","@type":"WebSite","description":"E-Rechnungen für PHP und Laravel: ZUGFeRD, XRechnung und Peppol erstellen, prüfen, lesen und archivieren.","inLanguage":"de-DE","name":"Quittio","url":"https://quittio.dev/","publisher":{"@id":"https://quittio.dev/#identity"},"workTranslation":{"@id":"https://quittio.dev/en#website"}},{"@id":"https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositValidator#webpage","@type":"WebPage","description":"Official Schematron validation (level L5) with the KoSIT validator.","name":"KositValidator – API-Referenz","url":"https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositValidator","isPartOf":{"@id":"https://quittio.dev/#website"},"potentialAction":[{"@type":"ReadAction","target":["https://quittio.dev/docs/api/Quittio/Core/Validation/Drivers/KositValidator"]}],"primaryImageOfPage":{"@id":"https://quittio.dev/#logo"}},{"@id":"https://quittio.dev/#identity","@type":"Organization","description":"Open-Source-Bibliothek für E-Rechnungen in PHP und Laravel (ZUGFeRD, XRechnung, Peppol) und Quittio Managed.","email":"kontakt@niklasforst.de","legalName":"Niklas Forst – Softwareentwicklung","name":"Quittio","url":"https://quittio.dev","founder":{"@type":"Person","name":"Niklas Forst","url":"https://quittio.dev/ueber"},"logo":{"@id":"https://quittio.dev/#logo"},"sameAs":["https://github.com/Quittio/quittio","https://packagist.org/packages/quittio/quittio"]},{"@id":"https://quittio.dev/#logo","@type":"ImageObject","caption":"Quittio","contentUrl":"https://quittio.dev/logo.png","inLanguage":"de-DE","url":"https://quittio.dev/logo.png"}]}
```