RE: Fighting WSDL.exe
- From: David Jessee <DavidJessee@xxxxxxxxxxxxxxxxxxxxxxxxx>
- Date: Wed, 18 Oct 2006 06:55:02 -0700
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>
- Follow-Ups:
- Re: Fighting WSDL.exe
- From: Nick Locke
- Re: Fighting WSDL.exe
- From: John Saunders
- Re: Fighting WSDL.exe
- References:
- Fighting WSDL.exe
- From: Nick Locke
- Fighting WSDL.exe
- Prev by Date: Re: Spaces in UNC Paths
- Next by Date: Re: Fighting WSDL.exe
- Previous by thread: Fighting WSDL.exe
- Next by thread: Re: Fighting WSDL.exe
- Index(es):
Relevant Pages
|