validator-xsd

ValidatorXSD is a facade over DOMDocument that will allow you to more conveniently validate your XML file

Overview

ValidatorXSD is a DOMDocument facade that will allow you to more conveniently validate your XML file and also localize errors.

Installation

The package can be installed via composer:

Terminal window
composer require yzen.dev/validator-xsd

Features

  • Simple use
  • Casting LibXMLError errors to ErrorXSD
  • Parsing fields, rules and more from an error
  • The ability to localize validator errors

Usage

Validate xml by schema:

$data = '<XML>...</XML>';
$validator = ValidatorXSD::init($data)
->loadSchema('./XSD/request.xsd')
->setLocalization(CustomLocalizationXSD::class);
echo $validator->validate();

Get all errors:

if (!$validator->validate()) {
foreach ($validator->getErrors() as $error) {
var_dump($error);
}
}

Pluck result and group by field:

$errors = $validator->getErrors()
->pluck(['element', 'message'])
->groupBy('element');

Create custom localization:

class CustomLocalizationXSD implements LocalizationXSD
{
public function customAttributes(): array
{
return [
'Country' => 'Страна',
'Province' => 'Область',
];
}
public function messages(): array
{
return [
'minLength' => 'Поле "${field}" меньше минимальной длины.',
];
}
}