Проверка по нескольким XML-схемам с помощью Xerces DOM parser

Мне было интересно, если бы был способ проверить несколько схем 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?

1 ответ

Решение

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

parser->setExternalSchemaLocation("http://www.somelocation schema.xsd http://www.somelocation1 schema1.xsd"); 
Другие вопросы по тегам