2017-09-04 13 views
1

このWDSLを使用してVS2013 BizTalkでSOAP-Web-Proxyを生成すると問題が発生します。WSDLからSOAP Webプロキシを生成する問題BizTalk VS2013

VSが適切なxsdとcsを生成しないようです。 VSによって生成された

<ns0:timeseriesValues xmlns:ns0="http://test.com/abc/DataService/xyz"> 
    <ns0:id>mdsId_0</ns0:id> 
    <ns0:res>day</ns0:res> 
    <ns0:quality>prognosis</ns0:quality> 
    <ns0:timeseries> 
    <ns0:time>1999-05-31T13:20:00.000-05:00</ns0:time> 
    <ns0:value>10</ns0:value> 
    </ns0:timeseries> 
    <ns0:timeseries> 
    <ns0:time>1999-05-31T13:20:00.000-05:00</ns0:time> 
    <ns0:value>10</ns0:value> 
    </ns0:timeseries> 
    <ns0:timeseries> 
    <ns0:time>1999-05-31T13:20:00.000-05:00</ns0:time> 
    <ns0:value>10</ns0:value> 
    </ns0:timeseries> 
</ns0:timeseriesValues> 

しかし、それはWSと話をし、このようにする必要があります:

<ns0:sendTemp xmlns:ns0="http://www.test.com/DataService.xsd"> 
    <ns0:id>138846</ns0:id> 
    <ns0:res>hour</ns0:res> 
    <ns0:quality>prognosis</ns0:quality> 
    <ns0:timeseries> 
     <ns0:time>2017-08-27T23:00:00+02:00</ns0:time> 
     <ns0:value>16.7</ns0:value> 
    </ns0:timeseries> 
    <ns0:timeseries> 
     <ns0:time>2017-08-28T00:00:00+02:00</ns0:time> 
     <ns0:value>16</ns0:value> 
    </ns0:timeseries> 
</ns0:sendTemp> 

WSDL:私は、XSDからインスタンスを生成するとき、それはこのようになります

<?xml version='1.0' encoding='UTF-8'?> 
<wsdl:definitions 
    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:ns="http://www.test.com/DataService.xsd" 
    xmlns:wsc="http://www.test.com/DataService.xsd" 
    xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" 
    xmlns:xs="http://www.w3.org/2001/XMLSchema" 
    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" 
    targetNamespace="http://www.test.com/DataService.xsd"> 
    <wsdl:types> 
    <xs:schema 
     xmlns="http://test.com/abc/DataService/xyz" 
     attributeFormDefault="unqualified" 
     elementFormDefault="qualified" 
     targetNamespace="http://test.com/abc/DataService/xyz">  
     <xs:complexType name="timeseriesValues"> 
     <xs:sequence> 
      <xs:element name="id" type="xs:string" /> 
      <xs:element name="res"> 
      <xs:simpleType> 
       <xs:restriction base="xs:string"> 
       <xs:enumeration value="day" /> 
       <xs:enumeration value="hour" /> 
       </xs:restriction> 
      </xs:simpleType> 
      </xs:element> 
      <xs:element name="quality" minOccurs="0"> 
      <xs:simpleType> 
       <xs:restriction base="xs:string"> 
       <xs:enumeration value="prognosis"/> 
       <xs:enumeration value="allocation"/> 
       </xs:restriction> 
      </xs:simpleType>  
      </xs:element> 
      <xs:element maxOccurs="unbounded" minOccurs="0" name="timeseries"> 
      <xs:complexType> 
       <xs:sequence> 
       <xs:element name="time" type="xs:dateTime" /> 
       <xs:element name="value" type="xs:double" /> 
       </xs:sequence> 
      </xs:complexType> 
      </xs:element> 
     </xs:sequence> 
     </xs:complexType> 
    </xs:schema> 
    <xs:schema 
     xmlns:xs="http://www.w3.org/2001/XMLSchema" 
     xmlns="http://www.test.com/DataService.xsd" 
     xmlns:xyz="http://test.com/abc/DataService/xyz" 
     attributeFormDefault="qualified" 
     elementFormDefault="qualified" 
     targetNamespace="http://www.test.com/DataService.xsd"> 
     <xs:import namespace="http://test.com/abc/DataService/xyz" /> 
     <xs:element name="sendPreise" type="xyz:timeseriesValues" /> 
     <xs:element name="sendPreiseResponse" type="xs:anyType" /> 
     <xs:element name="sendTemp" type="xyz:timeseriesValues" /> 
     <xs:element name="sendTempResponse" type="xs:anyType" />  
    </xs:schema> 
    </wsdl:types> 
    <wsdl:message name="sendTempResponse"> 
    <wsdl:part name="sendTempResponse" element="wsc:sendTempResponse"> 
    </wsdl:part> 
    </wsdl:message> 
    <wsdl:message name="sendTemp"> 
    <wsdl:part name="parameters" element="ns:sendTemp"> 
    </wsdl:part> 
    </wsdl:message> 
    <wsdl:message name="sendPreise"> 
    <wsdl:part name="parameters" element="ns:sendPreise"> 
    </wsdl:part> 
    </wsdl:message> 
    <wsdl:message name="sendPreiseResponse"> 
    <wsdl:part name="sendPreiseResponse" element="wsc:sendPreiseResponse"> 
    </wsdl:part> 
    </wsdl:message> 
    <wsdl:portType name="event_PortType"> 
    <wsdl:operation name="sendPreise"> 
     <wsdl:input name="sendPreise" message="wsc:sendPreise"> 
     </wsdl:input> 
     <wsdl:output name="sendPreiseResponse" message="wsc:sendPreiseResponse"> 
     </wsdl:output> 
    </wsdl:operation> 
    <wsdl:operation name="sendTemp"> 
     <wsdl:input name="sendTemp" message="wsc:sendTemp"> 
     </wsdl:input> 
     <wsdl:output name="sendTempResponse" message="wsc:sendTempResponse"> 
     </wsdl:output> 
    </wsdl:operation> 
    </wsdl:portType> 
    <wsdl:binding name="event_Binding" type="wsc:event_PortType"> 
    <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" /> 
    <wsdl:operation name="sendPreise"> 
     <wsdlsoap:operation soapAction="sendPreise" /> 
     <wsdl:input name="sendPreise"> 
     <wsdlsoap:body parts="parameters" use="literal" /> 
     </wsdl:input> 
     <wsdl:output name="sendPreiseResponse"> 
     <wsdlsoap:body parts="sendPreiseResponse" use="literal" /> 
     </wsdl:output> 
    </wsdl:operation> 
    <wsdl:operation name="sendTemp"> 
     <wsdlsoap:operation soapAction="sendTemp" /> 
     <wsdl:input name="sendTemp"> 
     <wsdlsoap:body parts="parameters" use="literal" /> 
     </wsdl:input> 
     <wsdl:output name="sendTempResponse"> 
     <wsdlsoap:body parts="sendTempResponse" use="literal" /> 
     </wsdl:output> 
    </wsdl:operation> 
    </wsdl:binding> 
    <wsdl:service name="event"> 
    <wsdl:port name="event_Port" binding="wsc:event_Binding"> 
     <wsdlsoap:address location="http://TEST:80/WS/" /> 
    </wsdl:port> 
    </wsdl:service> 
</wsdl:definitions> 

これはバグですか、誰かがこれを行う理由を教えてもらえますか?

これはルート要素の名前です。

timeseries

sendTempまたはsendPreise。

リクエストは "sendTemp"または "sendPreise"ですが、次にシリアル化問題が発生します。

スキーマを定義していますsendPreiseタイプ= timeseriesvalues sendTempタイプ= timeseriesvalues

しかし、唯一の "timeseriesvaluesを" ルート要素の名前が作品として。

+0

あなたの問題は、正確に何ですか? idは文字列として定義されているため、インスタンスを生成するときには期待どおりに動作します。どのような他のフィールドに問題がありますか? – Dijkgraaf

+0

私があなたに答えたオプション(Add> Add Generated Items> WCFサービスを消費する)を使ってインスタンスを生成すると、このXML xyz:id_0 ... これでは必要なのは何ですか? – felixmondelo

答えて

0

私はバグを発見していません。

XML名前空間は、IDは、WSDL、したがって、スキーマ内の文字列として定義されているWSDLにtargetNameSpaceとに従って"http://test.com/abc/DataService/xyz"

あります。それを生成すると、文字列の例が生成されます。

resは、曜日または時間のいずれかであると定義されているため、これも正しいです。時系列下

値は、二重(いないINT)のように定義されるように、それはそれはそれが生成されたサンプルであるものであり、

時間が日時である例として発生するものです。

0

あなたは追加でのBizTalkプロジェクトからそのWSDLを追加する場合>生成された項目の追加]> [WCFサービスを利用したいと、あなたはXSDを取得します:

enter image description here

関連する問題