2011-12-13 1 views
0

Я пытаюсь загрузить некоторые XML-данные в код (классы) C++ с помощью gsoap. В примерах, которые они приводят в документации, говорится о загрузке документов веб-сервисов в заголовки C++ (wsdl2h); но не было явных примеров с использованием файлов XML напрямую. В любом случае, я установил gsoap (используя предварительно скомпилированные двоичные файлы) и попытался в качестве первого шага, делая:gsoap с данными XML для генерации кода на C++

wsld2h -o <myexample_cpp.h> <myexample.xml> 

и я получил:

../../bin/linux386/wsdl2h: ../../bin/linux386/wsdl2h: cannot execute binary file 

в качестве последней ноты, я пробовал в Cygwin (используя двоичный файл linux), но я сомневаюсь, что это может повлиять на любую ошибку. Также я хотел знать, должен ли XML-файл иметь расширение «xml» для его работы? Цените, если кто-нибудь с некоторыми идеями может поделиться своим опытом.

Редактировать: На самом деле это может быть связано с запуском предварительно скомпилированного бинарного файла Linux на cygwin. Во всяком случае, я попытался это из командной строки Windows, вместо того, чтобы и я получил то, что, как представляется легитимным ошибка:

<path/to>\tests\gsoap>..\..\bin\win32\wsdl2h.exe -o myexample_soap_cpp.h myexample.xml 

    ** The gSOAP WSDL/Schema processor for C and C++, wsdl2h release 2.8.5 
    ** Copyright (C) 2000-2011 Robert van Engelen, Genivia Inc. 
    ** All Rights Reserved. This product is provided "as is", without any warranty. 
    ** The wsdl2h tool is released under one of the following two licenses: 
    ** GPL or the commercial license by Genivia Inc. Use option -l for details. 

    Saving myexample_soap_cpp.h 

    Cannot open file 'typemap.dat' 
    Problem reading type map file 'typemap.dat'. 
    Using internal type definitions for C++ instead. 


    Reading file 'myexample.xml'... 

    An error occurred while parsing WSDL or XSD from 'myexample.xml' 
    Error 3 fault: SOAP-ENV:Client [no subcode] 
    "Validation constraint violation: tag name or namespace mismatch in element 'ns4:xmlDocument'" 
    Detail: [no detail] 
    <?xml version="1.0" encoding="UTF-8" standalone="yes"?> 
    <ns4:xmlDocument xmlns="http://purl.org/dc/terms/" xmlns:ns2="http://www.w3.org/1999/xlink" xmlns:ns3="http://www.opengis.net/gml/3.2" xmlns:ns4="h 
    /www.isotc211.org/2005/gmd" xmlns:ns7="http://www.<my_website>" version="1.1.0.0(XML)"> 
<title>myexample</title> 
<creator>l0352955</creator> 
<publisher>blah</publisher> 
<created xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="W3CDTF">2011-07-25T10:43:26.622+02:00</created> 
<format>XML/HDF</format> 
<ns4:areaOfInterest ns3:id="AreaOfInterest"> 
    <ns3:description>Some description</ns3:description> 
    <ns3:boundedBy> 
     <ns3:Envelope> 
      <ns3:lowerCorner>427875.13794 6736113.80757</ns3:lowerCorner> 
      <ns3:upperCorner>436165.54057 6747905.74672</ns3:upperCorner> 
     </ns3:Envelope> 
    </ns3:boundedBy> 
    <ns4:outline> 
     <ns3:SomeShape ns3:id="ShapeOfInterest"> 
      <ns3:exterior> 
       <ns3:Linear> 
        <ns3:pos>431960.26388 6736113.80757</ns3:pos> 
        <ns3:pos>436165.54057 6737898.90462</ns3:pos> 
        <ns3:pos>431960.26388 
+1

Собственно, я решил это. Проблема заключалась в использовании. Мне нужно выпустить исполняемый файл wsdl2h с помощью схем XSD в качестве аргумента, а не файлов XML. Это исправляет все ошибки (я тестировал это только на Windows 64-битной Vista). Благодарю. –

+0

Опубликовать это как ответ, затем. –

ответ

0

На самом деле, я решил это. Проблема заключалась в использовании. Мне нужно выпустить исполняемый файл wsdl2h с помощью схем XSD в качестве аргумента, а не файлов XML. Это исправляет все ошибки (я тестировал это только на Windows 64-битной Vista). Благодарю.