Existe-t-il un moyen de valider par XSD un flux XML en PHP?
-
05-07-2019 - |
Question
Disons que je veux pouvoir valider qu'un fichier XML de 50 Go + est conforme à un XSD donné. Je pourrais utiliser
DOMDocument::load & DOMDocument::schemaValidate
mais cela prendra tout le temps nécessaire au chargement et épuisera généralement toute la mémoire disponible pour moi. Existe-t-il un moyen de transmettre un fichier XSD à un SAX ou à un autre type de processeur de flux et de le faire vérifier que tout va bien?
La solution
Vous pouvez utiliser XMLReader:
$reader = new XMLReader();
$reader->open('xmlfile.xml');
$reader->setSchema('schemafile.xsd');
while($reader->read());
$reader->close();
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow