psv
Новичок
XML <-> XSD
Привет всем, помогите пожалуйста с проверкой на валидность XML-файла (на php).
Сейчас существует обработка приема информации из XML-файлов (объемы где-то максимум до гигабайта) через XMLReader и DOM с подключение RNG схемы. Всё работает супер, пока не всречается первая ошибка по некорректности XML-структуры.
Структура XML такого вида:
Проблематика в том, при возникновении ошибок, прием информации из файла останавливается (строит проверка на возврат валидности), а надо продолжать, убирать схему для проверки не хочется, т.к. многие ошибки вылавливаются именно по схеме.
Есть замысел сделать две схемы, одну облегченную, на весь файл, а вторую на блок info, чтобы если не коректен именно блок, то делать пропуск блока (без его принятия в систему) и идти дальше к другому блоку. Но не могу понять как реализовать програмную часть, т.е. поставить схему именно для проверки блока info. В инете ничего похожего не нашел, хотя может и плохо искал.
помогите какими-нибудь мыслями...
Привет всем, помогите пожалуйста с проверкой на валидность XML-файла (на php).
Сейчас существует обработка приема информации из XML-файлов (объемы где-то максимум до гигабайта) через XMLReader и DOM с подключение RNG схемы. Всё работает супер, пока не всречается первая ошибка по некорректности XML-структуры.
Структура XML такого вида:
PHP:
<?xml version="1.0" encoding="windows-1251"?>
<files version="2.0">
<info recnumber="1">
...
</info>
...
<info recnumber="n">
...
</info>
</files>
Проблематика в том, при возникновении ошибок, прием информации из файла останавливается (строит проверка на возврат валидности), а надо продолжать, убирать схему для проверки не хочется, т.к. многие ошибки вылавливаются именно по схеме.
Есть замысел сделать две схемы, одну облегченную, на весь файл, а вторую на блок info, чтобы если не коректен именно блок, то делать пропуск блока (без его принятия в систему) и идти дальше к другому блоку. Но не могу понять как реализовать програмную часть, т.е. поставить схему именно для проверки блока info. В инете ничего похожего не нашел, хотя может и плохо искал.
помогите какими-нибудь мыслями...