Проверка по нескольким 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");