Как использовать gSOAP для проверки xml на xsd

Я столкнулся со следующей проблемой, связанной с проверкой xml с помощью gSOAP:

Я использую wsdl2h для создания файла заголовка из моего xsd и soapcpp2 для создания исходного кода C из этого файла заголовка. Используя сгенерированные источники в моей программе, я могу написать файл xml.

Есть ли способ проверить сгенерированный файл xml на соответствие xsd после/во время генерации?

Спасибо, Фло


person stackoverflo    schedule 14.11.2013    source источник


Ответы (1)


Сгенерированная структура XML будет допустимой в соответствии с дизайном инструментов XSD by gsoap (связывание данных и сериализация), но в некоторых случаях вам придется учитывать особые требования XSD к ограничениям появления элементов и атрибутов. Они включаются в сгенерированный файл .h и связываются с членами структуры/класса как информация о диапазоне min:max. Итак, в этом случае найдите задокументированные ограничения вхождения (minOccurs, maxOccurs и т. д.) в сгенерированном wsdl2h файле .h, чтобы определить, как заполнять данные C/C++ для сериализации XML. Почти все остальное автоматизировано алгоритмом сопоставления типов.

person Dr. Alex RE    schedule 16.11.2013
comment
Файл .h, сгенерированный из моего .xsd, содержит аннотации ограничений, подобные описанным в gSOAP. Руководство пользователя: гл. 17 Проверка XML. Использование soapcpp2 с флагами -s и -c и `soap_set_imode(&soap, SOAP_XML_STRICT);' в моем коде я все еще могу создать файл xml, который не соответствует .xsd (например, путем преднамеренного нарушения ограничений возникновения) без каких-либо ошибок SOAP. Не должен ли появиться один из кодов ошибок, упомянутых в гл. 10.2 Коды ошибок? - person stackoverflo; 18.11.2013