2014-12-05 2 views
0

Когда я проверяю свой файл xml на xsd с помощью нескольких инструментов проверки, все они дают положительный результат: проверка прошла успешно.php - xml validation from 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 намеренно, я получаю результат «Caught exception: Validation not succesfull!» и некоторые сведения об ошибке, но с моими реальными файлами xml + xsd (которые намного сложнее) я получаю пустую страницу.

Любая идея, почему это происходит? Этот точный 60 секунд кажется некоторым сеансом тайм-аута или что-то в этом роде, но я посмотрел в php.ini, он установлен на 1440 сек (session.gc_maxlifetime = 1440) ...

+1

Добро пожаловать в переполнение стека. Существует хороший совет по заданию эффективных вопросов в файлах справки [SO help] (http://stackoverflow.com/help/how-to-ask) и в эссе Эрика Раймонда и эссе Рика Моэна [Как задавать вопросы умным способом] (http://catb.org/~esr/faqs/smart-questions.html). Вы получите лучшие ответы, если вы предоставите [минимальный полный проверяемый пример] (http://stackoverflow.com/help/mcve). Сокращая реальный XML и XSD до наименьшего примера, демонстрирующего проблему, вы можете обнаружить проблему и больше не нужно задавать вопрос - это всего лишь риск, который вы должны предпринять. –

+0

Здравствуйте, tnx для получения инструкций. Я нашел решение. Проблема была в php.ini >>> max_execution_time = 30 – Mario

ответ

0

Я нашел решение. Проблема была в php.ini >>> max_execution_time = 30