Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
针对xsd的php-xml验证_Php_Xml_Validation_Xsd - Fatal编程技术网

针对xsd的php-xml验证

针对xsd的php-xml验证,php,xml,validation,xsd,Php,Xml,Validation,Xsd,当我使用几种验证工具针对xsd验证xml文件时,它们都返回了积极的结果:验证成功 但当使用schemaValidate在php中执行此操作时,验证会在显示空白页面的60秒后完全中断。我试图找到一些解释: $doc = new DOMDocument(); $doc->load('C:\a\xml.xml'); try{ $is_valid_xml = $doc->schemaValidate('http://xxxxxxx/schema.xsd'); if

当我使用几种验证工具针对xsd验证xml文件时,它们都返回了积极的结果:验证成功

但当使用schemaValidate在php中执行此操作时,验证会在显示空白页面的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());
}
$doc=newDOMDocument();
$doc->load('C:\a\xml.xml');
试一试{
$is\u valid\u xml=$doc->schemaValidate('http://xxxxxxx/schema.xsd');
if($is\u valid\u xml==true){
回声‘ok’;
}否则{
抛出新异常('验证未成功!');
}
}捕获(例外$e){
回显“捕获的异常:”,$e->getMessage(),“
”; }最后{ 打印(错误获取上次()); }
当我在其他一些通用xml+xsd示例上使用上述方法时,效果很好。如果我故意弄乱了xml,我会得到结果“捕获异常:验证未成功!”和一些错误信息,但对于真正的xml+xsd文件(要复杂得多),我会得到空白页


知道为什么会这样吗?这个精确的60秒看起来像是某个会话超时或类似的东西,但我在php.ini中查看过,它被设置为1440秒(session.gc_maxlife=1440).

我找到了解决方案。问题出在php.ini>>>max_execution_time=30

欢迎使用堆栈溢出。埃里克·雷蒙德(Eric Raymond)和里克·莫恩(Rick Moen)的文章中有关于提出有效问题的好建议。如果你能提供一个更好的答案,你会得到更好的回答。在将真正的XML和XSD缩减到显示问题行为的最小示例时,您可能会发现问题,不再需要提出问题——这只是您必须承担的风险。Hi tnx获取说明。我找到了解决办法。问题出在php.ini>>>max_execution_time=30中