要素を作成し、何度か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 ファイルへのリンク