/ubl-validator

OASIS Universal Business Language Schema Validator XSD (UBL v2.0, UBL v2.1)

Primary LanguagePHPMIT LicenseMIT

OASIS UBL Schema Validator

Github Actions Coverage Status Codacy Badge Mutation Badge
OASIS Universal Business Language (UBL) Schema Validator.

Install

Via Composer from packagist.org.

composer require greenter/ubl-validator

Examples

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:

  • Resolve <cbc:UBLVersionID>
  • Find XSD file in base directory
  • Run schemaValidate and gets result

Change UBL XSD directory

This 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