Два вопроса по обработке XML документа в PHP

ShortMan

Новичок
Здравствуйте всем!
Имею у вас спросить два вопроса. Пишу валидатор XML на PHP (используя стандартные библиотеки). Столкнулся с двумя не очень приятными моментами.
Момент первый: Используя класс DOMDocument, при проверке входящего XML файла все работает нормально до использования метода DOMDoucument::schemaValidate();. Т.е. создание самого объекта, загрузка в него XML документа для проверки, все это занимает от 500ms до 1.5ms (в зависимости от размера загружаемого файла). Но как только доходит до проверки документа на соответствие XML-схеме (XSD), то все падает в хроническую обработку до получения ошибки 504 Gateway Time-out.
Если коротко то так:
Код:
libxml_use_internal_errors(true);
$doc = new DOMDocument('1.0','utf-8');

if(!$doc->loadXML($str))
    $errors[] = 'Ошибка загрузки XML';

if(!$doc->schemaValidate($xsd))
    foreach(libxml_get_errors() as $error){...}
Все умирает на последнем if.
Момент второй: Тема та же валидация XML-документа, но при этом используя НЕ DOMDocument, а XMLReader (в целях экономии памяти сервера). Картинка похожая, все создается, загружается и парсится. Но не обошлось без "НО". Метод XMLReader::setSchema($name_xsd);, всегда возвращает true. Даже при условии подсовывания битого XML-документа (отсутствие закрывающего тега в корневом элементе), возвращает true.
Код:
libxml_use_internal_errors(true);
            $reader = new XMLReader();
            $reader->open('sale.xml');
            var_dump($reader->setSchema('schema.xsd'));
Прокомментируйте ваши размышления по этому поводу. Возможно у кого то есть какие либо решения.
По первому моменту есть подозрения на проблемы на хостинге, потому как на локальном серве все летает.
По второму ничего не могу предположить, кроме нерабочего метода. (PHP скомпилирован с поддержкой libxml старше 20902 )
 

ShortMan

Новичок
Это конечно тоже решение. Но хочу реализовать стандартными средствами. Тем более для этого есть механизмы. Другой вопрос, насколько они корректны. Так или иначе спс за предложение. Но пока еще чувствую в себе силы, посмотрю в сторону java в самом тупиковом варианте. )))
 

AnrDaemon

Продвинутый новичок
IMHO, ваша проблема в п.2. в том, что вы всё делаете через… эээ… неправильно.
Вы сначала прочли документ, а потом пытаетесь к нему подключить схему.
 
Сверху