Проверка по нескольким XML-схемам с помощью Xerces DOM parser - PullRequest
0 голосов
/ 26 января 2011

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

0 голосов
/ 15 февраля 2011

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

parser->setExternalSchemaLocation("http://www.somelocation schema.xsd http://www.somelocation1 schema1.xsd"); 
...