Question

Dans notre application nous sommes obligés de consommer plusieurs WebServices. Au début, nous avons utilisé juste l'option de menu « Ajouter un service de référence », afin de créer un proxy WCF.

L'assistant n'a pas généré un DataContract, mais bien plutôt une classe XML sérialisable. Jusqu'à présent, si mal, mais ce ne fut pas le tueur. Cependant, plus tard, nous avons remarqué que nous étions en train de perdre des données, car le proxy généré ajoutait la propriété de la commande lors de l'attribution et cela posait un problème.

Maintenant, nous essayons de générer des classes proxy à partir du WSDL à l'aide du Svcutil.exe, mais nous sommes tout le temps faire passer le message d'erreur suivant:

    C:\temp\WSDL>svcutil /serializer:DataContractSerializer ReadSddsAddressOut.wsdl
Microsoft (R) Service Model Metadata Tool
[Microsoft (R) Windows (R) Communication Foundation, Version 3.0.4506.2152]
Copyright (c) Microsoft Corporation.  All rights reserved.

Warning: Das optionale WSDL-Erweiterungselement "body" aus Namespace "http://schemas.xmlsoap.org/wsdl/soap/" wurde nicht behandelt.
XPath: //wsdl:definitions[@targetNamespace='http://post.ch/sdds/address']/wsdl:binding[@name='ReadSddsAddressOutBinding']/wsdl:operation[@name='GeoSuchKanton']/wsdl:input


Warning: Das optionale WSDL-Erweiterungselement "body" aus Namespace "http://schemas.xmlsoap.org/wsdl/soap/" wurde nicht behandelt.
XPath: //wsdl:definitions[@targetNamespace='http://post.ch/sdds/address']/wsdl:binding[@name='ReadSddsAddressOutBinding']/wsdl:operation[@name='GeoSuchKanton']/wsdl:output


Warning: Das optionale WSDL-Erweiterungselement "body" aus Namespace "http://schemas.xmlsoap.org/wsdl/soap/" wurde nicht behandelt.
XPath: //wsdl:definitions[@targetNamespace='http://post.ch/sdds/address']/wsdl:binding[@name='ReadSddsAddressOutBinding']/wsdl:operation[@name='GeoSuchPlz']/wsdl:input


Warning: Das optionale WSDL-Erweiterungselement "body" aus Namespace "http://schemas.xmlsoap.org/wsdl/soap/" wurde nicht behandelt.
XPath: //wsdl:definitions[@targetNamespace='http://post.ch/sdds/address']/wsdl:binding[@name='ReadSddsAddressOutBinding']/wsdl:operation[@name='GeoSuchPlz']/wsdl:output


Warning: Das optionale WSDL-Erweiterungselement "body" aus Namespace "http://schemas.xmlsoap.org/wsdl/soap/" wurde nicht behandelt.
XPath: //wsdl:definitions[@targetNamespace='http://post.ch/sdds/address']/wsdl:binding[@name='ReadSddsAddressOutBinding']/wsdl:operation[@name='GeoSuchNation']/wsdl:input


Warning: Das optionale WSDL-Erweiterungselement "body" aus Namespace "http://schemas.xmlsoap.org/wsdl/soap/" wurde nicht behandelt.
XPath: //wsdl:definitions[@targetNamespace='http://post.ch/sdds/address']/wsdl:binding[@name='ReadSddsAddressOutBinding']/wsdl:operation[@name='GeoSuchNation']/wsdl:output


Warning: Das optionale WSDL-Erweiterungselement "body" aus Namespace "http://schemas.xmlsoap.org/wsdl/soap/" wurde nicht behandelt.
XPath: //wsdl:definitions[@targetNamespace='http://post.ch/sdds/address']/wsdl:binding[@name='ReadSddsAddressOutBinding']/wsdl:operation[@name='GeoSuchAdr']/wsdl:input


Warning: Das optionale WSDL-Erweiterungselement "body" aus Namespace "http://schemas.xmlsoap.org/wsdl/soap/" wurde nicht behandelt.
XPath: //wsdl:definitions[@targetNamespace='http://post.ch/sdds/address']/wsdl:binding[@name='ReadSddsAddressOutBinding']/wsdl:operation[@name='GeoSuchAdr']/wsdl:output


Warning: Das optionale WSDL-Erweiterungselement "body" aus Namespace "http://schemas.xmlsoap.org/wsdl/soap/" wurde nicht behandelt.
XPath: //wsdl:definitions[@targetNamespace='http://post.ch/sdds/address']/wsdl:binding[@name='ReadSddsAddressOutBinding']/wsdl:operation[@name='GeoSuchPkt']/wsdl:input


Warning: Das optionale WSDL-Erweiterungselement "body" aus Namespace "http://schemas.xmlsoap.org/wsdl/soap/" wurde nicht behandelt.
XPath: //wsdl:definitions[@targetNamespace='http://post.ch/sdds/address']/wsdl:binding[@name='ReadSddsAddressOutBinding']/wsdl:operation[@name='GeoSuchPkt']/wsdl:output


Generating files...
C:\temp\WSDL\ReadSddsAddressOut.cs
C:\temp\WSDL\output.config

Le message d'erreur en anglais ressemble à ceci

«L'élément d'extension optionnel WSDL 'corps' de l'espace de noms « http://schemas.xmlsoap.org / wsdl / savon / » n'a pas été traitée."

Le WSDL d'origine ressemble à ceci:

<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions name="ReadSddsAddressOut" targetNamespace="http://post.ch/sdds/address" xmlns:p2="http://post.ch/sdds" xmlns:p1="http://post.ch/sdds/address" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
    <wsdl:documentation/>
    <wsdl:types>
        <xsd:schema targetNamespace="http://post.ch/sdds" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://post.ch/sdds">
            <xsd:element name="ZuboGeoKantonReq">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="GEOKTNID" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOKTNBEZ" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="maxRows" type="xsd:integer" minOccurs="0"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="ZuboGeoPktReq">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="GEOPKTID" type="xsd:integer" minOccurs="0"/>
                        <xsd:element name="GEOADRID" type="xsd:integer" minOccurs="0"/>
                        <xsd:element name="GEOKTNID" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOKTNBEZ" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOPLZPLZ" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOPLZPLZ4" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOPLZORT39" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOSTRBEZ" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOADRSTRNRT" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOADRCMT" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOPKTKORX" type="xsd:decimal" minOccurs="0"/>
                        <xsd:element name="GEOPKTKORY" type="xsd:decimal" minOccurs="0"/>
                        <xsd:element name="GEOPKTKORZ" type="xsd:decimal" minOccurs="0"/>
                        <xsd:element name="GEOPKTTYP" type="xsd:integer" minOccurs="0"/>
                        <xsd:element name="GEOPKTMAIN" type="xsd:boolean" minOccurs="0"/>
                        <xsd:element name="withDeletedPkt" type="xsd:boolean" minOccurs="0"/>
                        <xsd:element name="maxRows" type="xsd:integer" minOccurs="0"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="ZuboGeoNationResp">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="ErrorCode" type="xsd:integer"/>
                        <xsd:element name="ErrorText" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="DataSet">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="unbounded">
                                    <xsd:element name="row" minOccurs="0">
                                        <xsd:complexType>
                                            <xsd:sequence>
                                                <xsd:element name="GEONATID" type="xsd:string"/>
                                                <xsd:element name="GEONATBEZ" type="xsd:string"/>
                                            </xsd:sequence>
                                        </xsd:complexType>
                                    </xsd:element>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="ZuboGeoKantonResp">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="ErrorCode" type="xsd:integer"/>
                        <xsd:element name="ErrorText" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="DataSet">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="unbounded">
                                    <xsd:element name="row" minOccurs="0">
                                        <xsd:complexType>
                                            <xsd:sequence>
                                                <xsd:element name="GEOKTNID" type="xsd:string"/>
                                                <xsd:element name="GEOKTNBEZ" type="xsd:string"/>
                                                <xsd:element name="GEONATID" type="xsd:string"/>
                                                <xsd:element name="GEONATBEZ" type="xsd:string"/>
                                            </xsd:sequence>
                                        </xsd:complexType>
                                    </xsd:element>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="ZuboGeoPlzResp">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="ErrorCode" type="xsd:integer"/>
                        <xsd:element name="ErrorText" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="DataSet">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="unbounded">
                                    <xsd:element name="row" minOccurs="0">
                                        <xsd:complexType>
                                            <xsd:sequence>
                                                <xsd:element name="GEOPLZPLZ" type="xsd:string"/>
                                                <xsd:element name="GEOPLZPLZ4" type="xsd:string"/>
                                                <xsd:element name="GEOPLZONRP" type="xsd:integer"/>
                                                <xsd:element name="GEOPLZSPRCOD1" type="xsd:integer"/>
                                                <xsd:element name="GEOPLZSPRCOD2" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPLZORT18" type="xsd:string"/>
                                                <xsd:element name="GEOPLZORT27" type="xsd:string"/>
                                                <xsd:element name="GEOPLZORT39" type="xsd:string"/>
                                                <xsd:element name="GEOPLZPLZTYP" type="xsd:integer"/>
                                                <xsd:element name="GEOKTNID" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOKTNBEZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEONATID" type="xsd:string"/>
                                                <xsd:element name="GEONATBEZ" type="xsd:string"/>
                                                <xsd:element name="GEOPLZSTATUS" type="xsd:integer"/>
                                            </xsd:sequence>
                                        </xsd:complexType>
                                    </xsd:element>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="ZuboGeoPktResp">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="ErrorCode" type="xsd:integer"/>
                        <xsd:element name="ErrorText" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="DataSet">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="unbounded">
                                    <xsd:element name="row" minOccurs="0">
                                        <xsd:complexType>
                                            <xsd:sequence>
                                                <xsd:element name="GEOPKTID" type="xsd:integer"/>
                                                <xsd:element name="GEOPKTBEZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPKTKORX" type="xsd:decimal"/>
                                                <xsd:element name="GEOPKTKORY" type="xsd:decimal"/>
                                                <xsd:element name="GEOPKTKORZ" type="xsd:decimal" minOccurs="0"/>
                                                <xsd:element name="GEOPKTSTK" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPKTWOH" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPKTTYP" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPKTMAIN" type="xsd:boolean"/>
                                                <xsd:element name="GEOADRID" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOSTRBEZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOSTRTYP" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOADRSTRNR" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOADRSTRNRZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOADRSTRNRT" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOADRHAUSN" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOADRGEBFLG" type="xsd:boolean" minOccurs="0"/>
                                                <xsd:element name="GEOADRLAGFLG" type="xsd:boolean" minOccurs="0"/>
                                                <xsd:element name="GEOADRCMT" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOADRHAUSKEY" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOADRGPOID" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPLZPLZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPLZPLZ4" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPLZONRP" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPLZSPRCOD1" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPLZSPRCOD2" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPLZORT18" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPLZORT27" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPLZORT39" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPLZPLZTYP" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOKTNID" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOKTNBEZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEONATID" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEONATBEZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPKTSTATUS" type="xsd:integer"/>
                                            </xsd:sequence>
                                        </xsd:complexType>
                                    </xsd:element>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="ZuboGeoPlzReq">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="GEOPLZPLZ" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOPLZPLZ4" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOPLZORT39" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="maxRows" type="xsd:integer" minOccurs="0"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="ZuboGeoNationReq">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="GEONATID" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEONATBEZ" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="maxRows" type="xsd:integer" minOccurs="0"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="ZuboGeoAdrResp">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="ErrorCode" type="xsd:integer"/>
                        <xsd:element name="ErrorText" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="DataSet">
                            <xsd:complexType>
                                <xsd:sequence maxOccurs="unbounded">
                                    <xsd:element name="row" minOccurs="0">
                                        <xsd:complexType>
                                            <xsd:sequence>
                                                <xsd:element name="GEOADRID" type="xsd:integer"/>
                                                <xsd:element name="GEOSTRBEZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOSTRTYP" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOADRSTRNR" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOADRSTRNRZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOADRSTRNRT" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOADRSTRHAUSN" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOADRGEBFLG" type="xsd:boolean" minOccurs="0"/>
                                                <xsd:element name="GEOADRLAGFLG" type="xsd:boolean" minOccurs="0"/>
                                                <xsd:element name="GEOADRCMT" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOADRHAUSKEY" type="xsd:integer"/>
                                                <xsd:element name="GEOADRGPOID" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPLZPLZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPLZPLZ4" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPLZONRP" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPLZSPRCOD1" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPLZSPRCOD2" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOPLZORT18" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPLZORT27" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPLZORT39" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOPLZPLZTYP" type="xsd:integer" minOccurs="0"/>
                                                <xsd:element name="GEOKTNID" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOKTNBEZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEONATID" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEONATBEZ" type="xsd:string" minOccurs="0"/>
                                                <xsd:element name="GEOADRSTATUS" type="xsd:integer"/>
                                            </xsd:sequence>
                                        </xsd:complexType>
                                    </xsd:element>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="ZuboGeoAdrReq">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="GEOADRID" type="xsd:integer" minOccurs="0"/>
                        <xsd:element name="GEOKTNID" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOKTNBEZ" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOPLZPLZ" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOPLZPLZ4" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOPLZORT39" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOSTRBEZ" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOADRSTRNRT" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="GEOADRCMT" type="xsd:string" minOccurs="0"/>
                        <xsd:element name="withDeletedAdr" type="xsd:boolean" minOccurs="0"/>
                        <xsd:element name="maxRows" type="xsd:integer" minOccurs="0"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:schema>
    </wsdl:types>
    <wsdl:message name="p2.ZuboGeoKantonReq">
        <wsdl:documentation/>
        <wsdl:part name="ZuboGeoKantonReq" element="p2:ZuboGeoKantonReq"/>
    </wsdl:message>
    <wsdl:message name="p2.ZuboGeoKantonResp">
        <wsdl:documentation/>
        <wsdl:part name="ZuboGeoKantonResp" element="p2:ZuboGeoKantonResp"/>
    </wsdl:message>
    <wsdl:message name="p2.ZuboGeoPlzReq">
        <wsdl:documentation/>
        <wsdl:part name="ZuboGeoPlzReq" element="p2:ZuboGeoPlzReq"/>
    </wsdl:message>
    <wsdl:message name="p2.ZuboGeoPlzResp">
        <wsdl:documentation/>
        <wsdl:part name="ZuboGeoPlzResp" element="p2:ZuboGeoPlzResp"/>
    </wsdl:message>
    <wsdl:message name="p2.ZuboGeoNationReq">
        <wsdl:documentation/>
        <wsdl:part name="ZuboGeoNationReq" element="p2:ZuboGeoNationReq"/>
    </wsdl:message>
    <wsdl:message name="p2.ZuboGeoNationResp">
        <wsdl:documentation/>
        <wsdl:part name="ZuboGeoNationResp" element="p2:ZuboGeoNationResp"/>
    </wsdl:message>
    <wsdl:message name="p2.ZuboGeoAdrReq">
        <wsdl:documentation/>
        <wsdl:part name="ZuboGeoAdrReq" element="p2:ZuboGeoAdrReq"/>
    </wsdl:message>
    <wsdl:message name="p2.ZuboGeoAdrResp">
        <wsdl:documentation/>
        <wsdl:part name="ZuboGeoAdrResp" element="p2:ZuboGeoAdrResp"/>
    </wsdl:message>
    <wsdl:message name="p2.ZuboGeoPktReq">
        <wsdl:documentation/>
        <wsdl:part name="ZuboGeoPktReq" element="p2:ZuboGeoPktReq"/>
    </wsdl:message>
    <wsdl:message name="p2.ZuboGeoPktResp">
        <wsdl:documentation/>
        <wsdl:part name="ZuboGeoPktResp" element="p2:ZuboGeoPktResp"/>
    </wsdl:message>
    <wsdl:portType name="ReadSddsAddressOut">
        <wsdl:documentation/>
        <wsdl:operation name="GeoSuchKanton">
            <wsdl:documentation/>
            <wsdl:input message="p1:p2.ZuboGeoKantonReq"/>
            <wsdl:output message="p1:p2.ZuboGeoKantonResp"/>
        </wsdl:operation>
        <wsdl:operation name="GeoSuchPlz">
            <wsdl:documentation/>
            <wsdl:input message="p1:p2.ZuboGeoPlzReq"/>
            <wsdl:output message="p1:p2.ZuboGeoPlzResp"/>
        </wsdl:operation>
        <wsdl:operation name="GeoSuchNation">
            <wsdl:documentation/>
            <wsdl:input message="p1:p2.ZuboGeoNationReq"/>
            <wsdl:output message="p1:p2.ZuboGeoNationResp"/>
        </wsdl:operation>
        <wsdl:operation name="GeoSuchAdr">
            <wsdl:documentation/>
            <wsdl:input message="p1:p2.ZuboGeoAdrReq"/>
            <wsdl:output message="p1:p2.ZuboGeoAdrResp"/>
        </wsdl:operation>
        <wsdl:operation name="GeoSuchPkt">
            <wsdl:documentation/>
            <wsdl:input message="p1:p2.ZuboGeoPktReq"/>
            <wsdl:output message="p1:p2.ZuboGeoPktResp"/>
        </wsdl:operation>
    </wsdl:portType>
    <wsdl:binding name="ReadSddsAddressOutBinding" type="p1:ReadSddsAddressOut">
        <soap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
        <wsdl:operation name="GeoSuchKanton">
            <soap:operation soapAction="http://sap.com/xi/WebService/soap1.1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            <wsdl:input>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="GeoSuchPlz">
            <soap:operation soapAction="http://sap.com/xi/WebService/soap1.1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            <wsdl:input>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="GeoSuchNation">
            <soap:operation soapAction="http://sap.com/xi/WebService/soap1.1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            <wsdl:input>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="GeoSuchAdr">
            <soap:operation soapAction="http://sap.com/xi/WebService/soap1.1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            <wsdl:input>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:output>
        </wsdl:operation>
        <wsdl:operation name="GeoSuchPkt">
            <soap:operation soapAction="http://sap.com/xi/WebService/soap1.1" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            <wsdl:input>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:input>
            <wsdl:output>
                <soap:body use="literal" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
            </wsdl:output>
        </wsdl:operation>
    </wsdl:binding>
    <wsdl:service name="ReadSddsAddressOutService">
        <wsdl:port name="ReadSddsAddressOutPort" binding="p1:ReadSddsAddressOutBinding">
            <soap:address location="http://h03kyq:51000/XISOAPAdapter/MessageServlet?channel=:SDDS_DEV:ssReadSddsAddress" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"/>
        </wsdl:port>
    </wsdl:service>
</wsdl:definitions>

Et la classe proxy (vissé) ressemble à ceci:

//------------------------------------------------------------------------------
// <auto-generated>
//     Dieser Code wurde von einem Tool generiert.
//     Laufzeitversion:2.0.50727.3074
//
//     Änderungen an dieser Datei können falsches Verhalten verursachen und gehen verloren, wenn
//     der Code erneut generiert wird.
// </auto-generated>
//------------------------------------------------------------------------------



[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
[System.ServiceModel.ServiceContractAttribute(Namespace="http://post.ch/sdds/address", ConfigurationName="ReadSddsAddressOut")]
public interface ReadSddsAddressOut
{

    [System.ServiceModel.OperationContractAttribute()]
    void GeoSuchKanton();

    [System.ServiceModel.OperationContractAttribute()]
    void GeoSuchPlz();

    [System.ServiceModel.OperationContractAttribute()]
    void GeoSuchNation();

    [System.ServiceModel.OperationContractAttribute()]
    void GeoSuchAdr();

    [System.ServiceModel.OperationContractAttribute()]
    void GeoSuchPkt();
}

[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public interface ReadSddsAddressOutChannel : ReadSddsAddressOut, System.ServiceModel.IClientChannel
{
}

[System.Diagnostics.DebuggerStepThroughAttribute()]
[System.CodeDom.Compiler.GeneratedCodeAttribute("System.ServiceModel", "3.0.0.0")]
public partial class ReadSddsAddressOutClient : System.ServiceModel.ClientBase<ReadSddsAddressOut>, ReadSddsAddressOut
{

    public ReadSddsAddressOutClient()
    {
    }

    public ReadSddsAddressOutClient(string endpointConfigurationName) : 
            base(endpointConfigurationName)
    {
    }

    public ReadSddsAddressOutClient(string endpointConfigurationName, string remoteAddress) : 
            base(endpointConfigurationName, remoteAddress)
    {
    }

    public ReadSddsAddressOutClient(string endpointConfigurationName, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(endpointConfigurationName, remoteAddress)
    {
    }

    public ReadSddsAddressOutClient(System.ServiceModel.Channels.Binding binding, System.ServiceModel.EndpointAddress remoteAddress) : 
            base(binding, remoteAddress)
    {
    }

    public void GeoSuchKanton()
    {
        base.Channel.GeoSuchKanton();
    }

    public void GeoSuchPlz()
    {
        base.Channel.GeoSuchPlz();
    }

    public void GeoSuchNation()
    {
        base.Channel.GeoSuchNation();
    }

    public void GeoSuchAdr()
    {
        base.Channel.GeoSuchAdr();
    }

    public void GeoSuchPkt()
    {
        base.Channel.GeoSuchPkt();
    }
}

Toute aide serait grande.

Était-ce utile?

La solution

Le schéma utilisé par le wsdl ne se conforme pas au contrat de données sérialiseur Schéma de référence .

Problèmes:

  1. « Tous les éléments doivent être qualifiés pour un schéma à être pris en charge par DataContractSerializer ».

    Votre schéma omet l'attribut elementFormDefault sur l'étiquette si la valeur par défaut, « non qualifié » est en vigueur. Vous devez ajouter le nom attribut suivant / paire de valeurs au élément afin que le sérialiseur de contrat de données (DCS) peut résoudre les éléments locaux / types.

    elementFormDefault = "qualifié"

  2. maxOccurs et les attributs minOccurs sur balise doit être 1 ou omis (par défaut est 1).

    Alors, retirez maxOccurs = "unbounded" sur la .

  3. Ajouter maxOccurs = "unbounded" sur la pour obtenir un contrat de données de collection imbriquées généré pour le champ DataSet.

    Par exemple,

    <xsd:element name="DataSet"> <xsd:complexType> <xsd:sequence> <xsd:element name="row" minOccurs="0" maxOccurs="unbounded"/>

Autres conseils

Je devais me débarrasser de l'utilisation de « élément » et bien plutôt juste utilisé les s « complexType ».

J'enlevé les éléments d'enceinte sur les DataContracts et dans les messages, je définir l'attribut de type à la place de l'attribut de l'élément. Maintenant, cela fonctionne, je vous remercie beaucoup. :)

Hey je ne sais pas comment vous avez généré votre wsdl et d'autres choses, mais les jeux de données a quelques bizarreries.

Lors de la génération de mon proxy avec ds que je dois faire référence à cette assemblée:

C: \ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ System.Data.dll

Cordialement, Stian

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top