RE: Fighting WSDL.exe



You're going to have to forgive me on being a little vauge, but I've not
dealt with this in a while (totally jaded about web services, here :-)

but...

The problem is with your import statement. The wsdl.exe is going to try to
resolve the import by processing it as a URI. try expressing it as
"file://c:/......"

Be aware, though, that you may end up with issues down the road, depending
on how you move forward.

The MS implementation of Web Services makes the assumption, at runtime, that
no one ever created a WSDL file and, therefore, it doesn't perform any
validation against the original WSDL file OR the original schema.

just take a good close look at the generated code when you're done (esp the
attributes attached to the abstract server) to make sure nothing strange
happened.

Side note...When you're doing web services via studio, you're,
unfortunately, wasting your time creating this contract first and then
creating code based on the contract since, as mentioned earlier, the contract
is never enforced, by default. After creating a number of web services using
the WSDL-first approach, I realized that you're doing work that, once the
implementation is completed, really won't have much of a payoff.


"Nick Locke" wrote:

Hello, a very newbie here, so please don't be too harsh! I have found my way
through to using Altova XMLSpy to create what it says is a valid WSDL file
(including picking up the Types from an external file as I shall need to
reuse them). XMLSpy is happy, but when I try to push the WSDL through the MS
WSDL.EXE tool, it has kittens. I have added the Lecture from WSDL.EXE first
and then my WSDL. I would welcome any help - and apologies for the length of
the post!


--------------------------------------------------------------------------------

C:\>wsdl /server /out:c:\temp c:\temp.wsdl

Microsoft (R) Web Services Description Language Utility

[Microsoft (R) .NET Framework, Version 2.0.50727.42]

Copyright (C) Microsoft Corporation. All rights reserved.

Warning: This web reference does not conform to WS-I Basic Profile v1.1.

R2204: A document-literal binding in a DESCRIPTION MUST refer, in each of
its soapbind:body element(s), only to wsdl:part element(s) that have been
defined using the element attribute.

- Part 'VehicleDetails' of message 'AddRequest' from service description
with targetNamespace='http://interfaces.xxxx-yyyyy.org.uk/StolenVehicle'.

- Part 'StolenVehicleId' of message 'AddResponse' from service description
with targetNamespace='http://interfaces.xxxx-yyyyy.org.uk/StolenVehicle'.

- Part 'ServerTime' of message 'AddResponse' from service description with
targetNamespace='http://interfaces.xxxx-yyyyy.org.uk/StolenVehicle'.

R2210: If a document-literal binding in a DESCRIPTION does not specify the
parts attribute on a soapbind:body element, the corresponding abstract
wsdl:message MUST define zero or one wsdl:parts.

- Operation 'StolenVehicleAdd' on binding 'StolenBinding' from namespace
'http://interfaces.xxxx-yyyyy.org.uk/StolenVehicle'.

For more details on the WS-I Basic Profile v1.1, see the specificationat
http://www.ws-i.org/Profiles/BasicProfile-1.1.html.

Error: Unable to import binding 'StolenBinding' from namespace
'http://interfaces.xxxx-yyyyy.org.uk/StolenVehicle'.

- Unable to import operation 'StolenVehicleAdd'.

- The operation binding 'StolenVehicleAdd' from namespace
'http://interfaces.xxxx-yyyyy.org.uk/StolenVehicle' had invalid syntax.
Missing soap:operation binding.


--------------------------------------------------------------------------------

<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2006 rel. 3 sp2 (http://www.altova.com) by Nick
Locke (N/A) -->
<definitions xmlns="http://schemas.xmlsoap.org/wsdl/";
xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
xmlns:xs="http://www.w3.org/2001/XMLSchema";
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
xmlns:y="http://interfaces.xxxx-yyyyy.org.uk/StolenVehicle";
xmlns:t="http://interfaces.xxxx-yyyyy.org.uk/types";
xmlns:st="http://interfaces.xxxx-yyyyy.org.uk/simple_types";
targetNamespace="http://interfaces.xxxx-yyyyy.org.uk/StolenVehicle";>
<types>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema";
xmlns:t="http://interfaces.xxxx-yyyyy.org.uk/types"; targetNamespace="empty"
elementFormDefault="qualified">
<xsd:import namespace="http://interfaces.xxxx-yyyyy.org.uk/types";
schemaLocation="C:\Documents and Settings\NickLocke\My Documents\Altova
Projects\Types.xsd"/>
</xsd:schema>
</types>
<message name="AddRequest">
<part name="VehicleDetails" type="t:Vehicle"/>
</message>
<message name="AddResponse">
<part name="StolenVehicleId" type="st:VehicleId_Type"/>
<part name="ServerTime" type="st:Timestamp_Type"/>
</message>
<portType name="SOAPport">
<operation name="StolenVehicleAdd">
<input message="y:AddRequest"/>
<output message="y:AddResponse"/>
</operation>
</portType>
<binding name="StolenBinding" type="y:SOAPport">
<soap:binding style="document"
transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="StolenVehicleAdd">
<input>
<soap:body use="literal"/>
</input>
<output>
<soap:body use="literal"/>
</output>
</operation>
</binding>
<service name="StolenVehicle">
<port name="StolenVehiclePort" binding="y:StolenBinding">
<soap:address location="http://interfaces.xxxx-yyyyy.org.uk"/>
</port>
</service>
</definitions>



.



Relevant Pages

  • RE: Fighting WSDL.exe
    ... but when I try to push the WSDL through the MS ... Microsoft Web Services Description Language Utility ... This web reference does not conform to WS-I Basic Profile v1.1. ... If a document-literal binding in a DESCRIPTION does not specify the ...
    (microsoft.public.dotnet.framework.aspnet.webservices)
  • Re: Confessions of an "OO Foreigner"
    ... >> late binding). ... > I tried using inline method invocation in late bound programs and it didn't ... Web services do not require the adoption of .NET. ... In other areas and other languages it HAS fulfilled its ...
    (comp.lang.cobol)
  • Re: calling a .net assembly written in .net 2.0 from a .net 1.1 app, v
    ... Late binding from the 1.1 consumer worked only. ... Ciaran O''Donnellhttp://wannabedeveloper.spaces.live.com ... The constraints are no web services. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Newbie question - how to use Web Service function in Access
    ... You'll have to make the SOAP Requests and process the SOAP Responses ... Have the developers given you a WSDL file? ... I have data in an Access table that I need to write to a SQL Server ... The web services developers have provided me 3 ...
    (microsoft.public.dotnet.framework.aspnet.webservices)
  • Re: Fitting TableAdapter into Remoting Infrastructure
    ... Web services solve my problem because the WSDL file ... describes all the objects being exposed and allows the server classes to be ... are linked via VPN) and the overhead of XML on every round-trip is not ...
    (microsoft.public.dotnet.framework.adonet)