yzen.dev / validator-xsd
ValidatorXSD 是一个 DOMDocument 的外观,可以让你更方便地验证 XML 文件。
0.0.10
2023-01-09 08:17 UTC
Requires
- php: ^7.4|^8.0
- ext-dom: *
- ext-libxml: *
Requires (Dev)
- mockery/mockery: ^1.0
- phpstan/phpstan: ^0.12.37
- phpunit/phpunit: ^9.3
- squizlabs/php_codesniffer: *
README
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}" меньше минимальной длины.', ]; } }