Проверка XML с заголовком схемы и поиском в каталоге - PullRequest
2 голосов
/ 03 ноября 2011

Как проверить файл xml (используя libxml) без явного указания файла схемы?Файл xsd находится в заголовке файла xml.Соответствующий URL-адрес xsd-файла должен быть расположен в локальной файловой системе с использованием Catalog.xml.

1 Ответ

0 голосов
/ 05 сентября 2012

Похоже, на данный момент это невозможно (libxml 2.8.0).Это взято со страницы libxml ( xmlschemas ):

интерфейс для обработки схем XML и проверки правильности схемы, сейчас он не завершен.

В качестве временного решения можно использовать комбинированную схему с большим количеством элементов import.Могут быть указаны лишние пространства имен.Наконец, объединенная схема должна быть явно передана в валидатор.

Пространства имен, импортированные с xsd:import, разрешаются корректно с использованием каталогов, если только schemaLocation в import не указывает допустимое прямое расположение.

<import namespace="http://example.com"
          schemaLocation="example.xsd">

Если example.xsd не существует в текущем каталоге, оно разрешается с использованием файлов каталога.

...