Pregunta

Digamos que quiero poder validar que un archivo XML de 50GB + se ajusta a un XSD dado. Podría usar

DOMDocument::load & DOMDocument::schemaValidate

pero eso tomará todo el tiempo de carga y generalmente agotará toda la memoria disponible para mí. ¿Hay alguna manera de alimentar un XSD a un SAX o cualquier otro tipo de procesador de flujo y hacer que verifique que todo está bien?

¿Fue útil?

Solución

Puedes usar XMLReader:

$reader = new XMLReader();
$reader->open('xmlfile.xml');
$reader->setSchema('schemafile.xsd');
while($reader->read());
$reader->close();
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top