我创建了DOMDocument
元素,appendChild()
多次调用等等。
在我完成构建 XML 后,我想根据 XSD 模式对其进行验证。
$newDocument->schemaValidate($schemaPath);
我有错误
No matching global declaration available for the validation root.
但是,如果我将生成的 XML 保存到文件中,打开它并验证一切正常。或者,如果执行以下操作:
$newDocument->loadXML($newDocument->saveXML());
然后一切都很好。
你能解释一下,为什么验证器在第一种情况下找不到根元素?
更新
我如何构建我的 xml:
$newDocument = new DOMDocument();
$rootElement = $newDocument->createElement('ONIXMessage');
$rootElement->setAttribute('xmlns', 'http://www.editeur.org/onix/2.1/reference');
$newDocument->appendChild($rootElement);
在我将子元素添加到根元素之后,但当我尝试根据 XML 模式对其进行验证时,即使列出的代码也会产生错误。
关于 xml 模式文件。我从 EDItEUR 组织下载了它,所以我相信问题就在我身边。链接到网站http://www.editeur.org/onix/2.1/reference/ONIX_BookProduct_Release2.1_reference.xsd上的 .xsd 文件