Когда я проверяю свой xml-файл по xsd с помощью нескольких инструментов проверки, все они дают положительный результат: проверка прошла успешно.
Но когда это делается в php с schemaValidate, проверка прерывается ровно через 60 секунд, показывая пустую страницу. Я пытаюсь найти объяснение этому:
$doc = new DOMDocument();
$doc->load('C:\a\xml.xml');try{
$is_valid_xml = $doc->schemaValidate('http://xxxxxxx/schema.xsd');
if ($is_valid_xml == true) {
echo 'ok';
}else {
throw new Exception('Validation not successful!');
}
}catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "<br />";
} finally {
print_r(error_get_last());
}
Когда я использую описанный выше метод на каком-то другом универсальном примере xml + xsd, он работает нормально. Если я намеренно испорчу этот xml, то получу результат «Поймано исключение: проверка не удалась!» и некоторая информация об ошибках, но с моими реальными файлами xml + xsd (которые намного сложнее) я получаю пустую страницу.
Есть идеи, почему это происходит? Эти точные 60 секунд выглядят как время ожидания сеанса или что-то в этом роде, но я посмотрел в php.ini, что оно установлено на 1440 секунд (session.gc_maxlifetime = 1440) …
Я нашел решение. Проблема была в php.ini >>> max_execution_time = 30
Других решений пока нет …