Edexml library
PHP Library for validating and importing Edexml files., (*1)
Installation
Install with composer:, (*2)
$ composer require harmbandstra/edexmllib
, (*3)
Usage
$xml = file_get_contents('path_to_file');
try {
$edex = EdexmlFactory::load($xml);
} catch (ValidationException $exception) {
// Handle exception
}
foreach ($edex->getGroepen()->getGroep() as $groep) {
echo $groep->getNaam();
}
foreach ($edex->getLeerlingen() as $leerling) {
echo $leerling->getGebruikersnaam();
}
If the Edexml file contains elements with a type defined in a non-public XSD, you can strip the
block before loading the XML., (*4)
$xml = file_get_contents('path_to_file');
try {
$edex = EdexmlFactory::load(
EdexmlFactory::stripToevoegingen($xml)
);
} catch (ValidationException $exception) {
// Handle exception
}
To skip validation, set strict to false
, (*5)
$xml = file_get_contents('path_to_file');
$edex = EdexmlFactory::load($xml, false);
Development
The library uses xsd2php for creating JMS Serializer definition files. These files are used to deserialize the XML into bite-sized PHP objects., (*6)
Generate classes
To generate new classed and JMS Serializer configuration based on the XSD files, run:, (*7)
php vendor/bin/xsd2php convert config.yml src/Resources/xsd/*.xsd
, (*8)
This is only needed when the specification changes., (*9)