Проверка с несколькими схемами XML с Xerces Dom Parser

StackOverflow https://stackoverflow.com/questions/4800155

  •  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"); 
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top