greenter/ubl-validator
Validate UBL (OASIS Universal Business Language) XML documents against official XSD schemas. Automatically resolves the UBL version, locates the matching schema, and reports validation errors. Supports custom XSD directories for other UBL versions.
OASIS Universal Business Language (UBL) Schema Validator.
Via Composer from packagist.org.
composer require greenter/ubl-validator
Simple usage.
use Greenter\Ubl\UblValidator;
$xml = file_get_contents('20000000001-01-F001-1.xml');
$validator = new UblValidator();
if ($validator->isValid($xml)) {
echo 'Success!!!';
} else {
echo $validator->getError();
}
Above example follows next steps:
<cbc:UBLVersionID>XSD file in base directoryschemaValidate and gets resultThis package not include all UBL xsd, but you can add others xsd directory and use other UBL version.
use Greenter\Ubl\UblValidator;
use Greenter\Ubl\Resolver\UblPathResolver;
$ubl = new UblValidator();
$ubl->pathResolver = new UblPathResolver();
$ubl->pathResolver->baseDirectory = './my-ubl-xsd';
echo $ubl->isValid('<Invoice ...>');
/my-ubl-xsd directory follows this structure:
\my-ubl-xsd
│
├─2.1/
│ ├─ common/
│ └─ maindoc/
│
├─2.2/
│ ├─ common/
│ └─ maindoc/
You can download UBL xsd from oasis-open
How can I help you explore Laravel packages today?