我有两个文件:
- 示例 XML 文件。
- 带有架构的 .xsd 文件,上述 XML 文件必须遵守该文件。
为了根据架构验证 XML 文件,我一直在使用:
$dom = new DOMDocument();
//$this->xmlstr; is my XML file after being loaded into a string.
$dom->loadXML($this->xmlstr);
//$xsd_file is definitely my xsd file.
if(!$dom->schemaValidate($xsd_file)){
$errors = libxml_get_errors(); //supposed to give back errors?
var_dump($errors); //debugging - shows: array empty
}
但是,只要我的 XML 文档不遵守架构中的规则,我就会不断收到警告错误。
警告:DOMDocument::schemaValidate() [domdocument.schemavalidate]:元素“标题”:不需要此元素。预期是(路由)
我故意搞砸了我的 XML 文件,只是想看看 $dom->schemaValidate 是如何处理它的。显然,我不希望 PHP 在 XML 不符合架构时将警告消息吐出到页面上。相反,我希望我的应用程序能够解决这个问题。我在这里忽略了什么吗?