Есть ли способ сделать проверку XSD потока XML в PHP

StackOverflow https://stackoverflow.com/questions/1402144

  •  05-07-2019
  •  | 
  •  

Вопрос

Допустим, я хочу иметь возможность проверить, что XML-файл размером более 50 ГБ соответствует заданному XSD. Я мог бы использовать

DOMDocument::load & DOMDocument::schemaValidate

но это займет все время при загрузке и вообще исчерпает всю доступную для меня память. Есть ли способ передать XSD в SAX или любой другой тип потокового процессора и убедиться, что все в порядке?

Это было полезно?

Решение

Вы можете использовать XMLReader:

$reader = new XMLReader();
$reader->open('xmlfile.xml');
$reader->setSchema('schemafile.xsd');
while($reader->read());
$reader->close();
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top