Я создал DOMDocument
элемент, позвоните по телефону appendChild()
несколько раз и так далее.Ошибка проверки схемы php
После завершения построения XML я хотел бы validate it against an XSD schema.
$newDocument->schemaValidate($schemaPath);
я получил ошибку
No matching global declaration available for the validation root.
Но, если я сохранить сгенерированный XML в файл, открыть его и проверить все в порядке. Или если что-то типа:
$newDocument->loadXML($newDocument->saveXML());
Тогда все в порядке.
Можете ли вы объяснить, почему валидатор не может найти корневой элемент в первом случае?
UPDATE
Как построить свой 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, поэтому считаю, что проблема на моей стороне. Ссылка на .xsd-файл на сайте. http://www.editeur.org/onix/2.1/reference/ONIX_BookProduct_Release2.1_reference.xsd
Как вы не показали, как вы строите XML или схему XSD, на ваш вопрос нельзя ответить вообще. Я предлагаю вам сравнить с существующим материалом Q & A, который, по крайней мере, кажется связанным с некоторой фактической информацией о проблеме: [Нет подходящей глобальной декларации, доступной для корня проверки] (http://stackoverflow.com/questions/8426154/no-matching-global -declaration доступный-для-проверки корня) – hakre