yzen.dev/validator-xsd

ValidatorXSD 是一个 DOMDocument 的外观,可以让你更方便地验证 XML 文件。

0.0.10 2023-01-09 08:17 UTC

This package is auto-updated.

Last update: 2024-09-12 17:40:56 UTC


README

Packagist Version Packagist Downloads Packagist Downloads

ValidatorXSD 是一个 DOMDocument 外观,可以让你更方便地验证 XML 文件,还可以本地化错误。

📜 安装

可以通过 composer 安装此包

composer require yzen.dev/validator-xsd

📜 功能

  • 简单使用
  • 将 LibXMLError 错误转换为 ErrorXSD
  • 从错误中解析字段、规则等
  • 本地化验证器错误的能力

📜 使用方法

通过模式验证 xml

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

获取所有错误

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

提取结果并按字段分组

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

创建自定义本地化

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