In our application we are forced to consume several WebServices. In the beginning we used just the "Add Service Reference" menu option, in order to create a WCF proxy.
The wizard didn't generate a DataContract, but much rather an XML-Serializable class. So far, so bad, but this wasn't the killer. However, later we noticed, that we were losing data, because the generated proxy was adding the Order property when attributing and this was causing problems.
Now we are trying to generate proxy classes from the WSDL using the SVCUTIL.EXE, but we are all the time getting the following error message:
C:empWSDL>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:empWSDLReadSddsAddressOut.cs
C:empWSDLoutput.config
The error message in English looks like this
"The optional WSDL extension element 'body' from namespace 'http://schemas.xmlsoap.org/wsdl/soap/' was not handled."
The original WSDL looks like this:
<?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"/>
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…