Pergunta

Vamos dizer que eu quero ser capaz de validar que um 50GB + conforma arquivo XML para um determinado XSD. Eu poderia usar

DOMDocument::load & DOMDocument::schemaValidate

mas que terá todo o tempo no carregamento e geralmente esgotar toda a memória disponível para mim. Existe alguma maneira para alimentar um XSD a um SAX ou qualquer outro tipo de processador de fluxo e tê-lo verificar que tudo está bem?

Foi útil?

Solução

Você pode usar XMLReader:

$reader = new XMLReader();
$reader->open('xmlfile.xml');
$reader->setSchema('schemafile.xsd');
while($reader->read());
$reader->close();
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top