Проверка с несколькими схемами XML с Xerces Dom Parser
-
22-10-2019 - |
Вопрос
Мне было интересно, был ли способ проверить несколько схем XML с использованием анализатора DOM XERCES в C ++?
Вот вариант использования: я хочу иметь возможность анализировать несколько файлов XML по соответствующей схеме XSD. Однако, когда я изначально смотрю на каждый файл XML, я не знаю, какой он файл, пока я не проанализирую его, поэтому я не могу связать с ним статический файл XSD. Есть ли способ сказать, я хочу проверить каждый файл XML против XSD1 или XSD2 или и т. Д.
После прочтения вокруг появляются настройки анализатора «SetExternalSchemAlocation», способные содержать список схем, но когда я делаю это в своем коде, он не проверяется правильно.
parser->setExternalSchemaLocation("http://www.somelocation schema.xsd http://www.somelocation schema1.xsd");
Схема работает само по себе, если я
parser->setExternalSchemaLocation("http://www.somelocation schema.xsd");
Поэтому я уверен, что в моем файле XML или XSD нет ошибок.
Любые понимания того, как проверить несколько схем XML?
Решение
Код не работает, если каждый XML находится в одном пространстве имен. Каждый XML -файл должен находиться в разных пространствах имен, чтобы приведенный выше код для работы.
parser->setExternalSchemaLocation("http://www.somelocation schema.xsd http://www.somelocation1 schema1.xsd");