2013-11-14 1 views
0

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

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

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

Спасибо, Flo

ответ

0

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

+0

Файл .h, сгенерированный из моего .xsd, содержит аннотации ограничений, как описано в [gSOAP User Guide: Chap. 17 Проверка XML] (http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc17). Использование soapcpp2 с флагами -s и -c и 'soap_set_imode (& soap, SOAP_XML_STRICT); в моем коде я все еще могу генерировать xml-файл, который не соответствует .xsd (например, путем намеренного нарушения ограничений на наличие) без получения SOAP-ошибки. Не должно появляться один из кодов ошибок, упомянутых в [Гл. 10.2 Коды ошибок] (http://www.cs.fsu.edu/~engelen/soapdoc2.html#tth_sEc10.2)? – Flo