[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

microsoft.public.dotnet.framework.aspnet.webservices

wsdl.exe fails with WebMethods generated wsdl file

=?Utf-8?B?cm9kY2hhcg==?=

6/7/2004 6:51:00 PM

Using WebMethods, Inc Developer tool to create a wsdl for a flow service. Try to use .NET wsdl utility to create a C# proxy, but get the errors below. Support person at WebMethods, Inc. says it is a bug in wsdl.exe. I have included the text of the wsdl generated by WebMethods along with the response from WebMethods support. I appreciate any assistance.

wsdl generated by WebMethods' Developer:
<?xml version="1.0" encoding="UTF-8"?><wsdl:definitions name="mtst" targetNamespace="http://mtsrvr/"
xmlns:wsdns1="http://localhost/mtst/tfs"
xmlns:wsdl="http://schemas.xmlsoap.org/w...
xmlns:xsd="http://www.w3.org/2001/XMLSc...
xmlns:http="http://schemas.xmlsoap.org/wsdl/h...
xmlns:mime="http://schemas.xmlsoap.org/wsdl/m...
xmlns:soap="http://schemas.xmlsoap.org/wsdl/s...
xmlns:tns="http://mtsrvr/"><wsdl:types><xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSc... targetNamespace="http://localhost/mtst/tfs" xmlns:tns="http://localhost/mtst/tfs" xmlns:SOAP_ENC="http://schemas.xmlsoap.org/soap/encod... xmlns:wsdl="http://schemas.xmlsoap.org/w...><xsd:import namespace="http://schemas.xmlsoap.org/soap/encod.../><xsd:complexType name="__tfsInput"><xsd:sequence><xsd:element name="accountnumber" nillable="true" type="xsd:string"/><xsd:element name="ordernumber" nillable="true" type="xsd:string"/></xsd:sequence></xsd:complexType><xsd:complexType name="__tfsOutput"><xsd:sequence><xsd:element name="t" nillable="true" type="tns:__t"/></xsd:sequence></xsd:complexType><xsd:complexType name="__t"><xsd:sequence><xsd:element name="ns_x003A_BES" type="tns:__ns_x003A_BES"/></xsd:sequence></xsd:complexType><xsd:complexType name="__ns_x003A_BES"><xsd:sequence><xsd:element name="ns_x003A_BE" type="tns:ArrayOf__ns_x003A_BE" minOccurs="0"/></xsd:sequence></xsd:complexType><xsd:complexType name="__ns_x003A_BE"><xsd:sequence><xsd:element name="ns_x003A_AccountID" type="tns:__ns_x003A_AccountID"/><xsd:element name="ns_x003A_OrderNumber" type="tns:__ns_x003A_OrderNumber"/></xsd:sequence></xsd:complexType><xsd:simpleType name="__ns_x003A_AccountID"><xsd:restriction><xsd:simpleType><xsd:restriction base="xsd:string"><xsd:whiteSpace value="preserve"/></xsd:restriction></xsd:simpleType><xsd:maxLength value="10"/></xsd:restriction></xsd:simpleType><xsd:simpleType name="__ns_x003A_OrderNumber"><xsd:restriction><xsd:simpleType><xsd:restriction base="xsd:string"><xsd:whiteSpace value="preserve"/></xsd:restriction></xsd:simpleType><xsd:maxLength value="6"/></xsd:restriction></xsd:simpleType><xsd:complexType name="ArrayOf__ns_x003A_BE"><xsd:complexContent><xsd:restriction base="SOAP_ENC:Array"><xsd:attribute ref="SOAP_ENC:arrayType" wsdl:arrayType="tns:__ns_x003A_BE[]"/></xsd:restriction></xsd:complexContent></xsd:complexType></xsd:schema></wsdl:types><wsdl:message name="tfsInput"><wsdl:part name="accountnumber" type="xsd:string"/><wsdl:part name="ordernumber" type="xsd:string"/></wsdl:message><wsdl:message name="tfsOutput"><wsdl:part name="t" type="wsdns1:__t"/></wsdl:message><wsdl:portType name="mtstPortType"><wsdl:operation name="tfs"><wsdl:input message="tns:tfsInput"/><wsdl:output message="tns:tfsOutput"/></wsdl:operation></wsdl:portType><wsdl:binding name="mtstBinding" type="tns:mtstPortType"><soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/><wsdl... name="tfs"><soap:operation soapAction=""/><wsdl:input><soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encod... namespace="http://mtsrvr/mtst" use="encoded"/></wsdl:input><wsdl:output><soap:body encodingStyle="http://schemas.xmlsoap.org/soap/encod... namespace="http://mtsrvr/mtst" use="encoded"/></wsdl:output></wsdl:operation></wsdl:binding><wsdl:service name="mtstService"><wsdl:port name="mtstPort0" binding="tns:mtstBinding"><soap:address location="http://mtsrvr:5555/soap/rpc"/></wsdl:port></wsdl:service></wsdl:definitions>


wsdl.exe errors:
Microsoft (R) Web Services Description Language Utility
[Microsoft (R) .NET Framework, Version 1.1.4322.573]
Copyright (C) Microsoft Corporation 1998-2002. All rights reserved.

Schema validation warning: Invalid 'type' attribute: The ':' character, hexadeci
mal value 0x3A, cannot be included in a name..
Schema validation warning: Invalid 'type' attribute: The ':' character, hexadeci
mal value 0x3A, cannot be included in a name..
Schema validation warning: Invalid 'type' attribute: The ':' character, hexadeci
mal value 0x3A, cannot be included in a name..
Schema validation warning: Invalid 'type' attribute: The ':' character, hexadeci
mal value 0x3A, cannot be included in a name..

Warning: Schema could not be validated. Class generation may fail or may produce
incorrect results.

Error: Unable to import binding 'mtstBinding' from namespace 'http://mtsrvr/'.
- Unable to import operation 'tfs'.
- Schema with targetNamespace='http://localhost/mtst/tfs' has invalid syntax.
- Invalid 'type' attribute: The ':' character, hexadecimal value 0x3A, cannot
be included in a name..

If you would like more help, please type "wsdl /?".

WebMethods support response:
From my investigation, I have found that this is a .NET bug. Please find
below the explaination:
In a WSDL file schema section the element "name" attribute is defined
as an "NCName" in the XSD Specification[6].

An NSName[4] has the following production defined in the XSD Spec[7]:
NCName ::= (Letter | '_') (NCNameChar)*
NCNameChar ::= Letter|Digit|'.'|'-'|'_'|CombiningChar|Extender

.NET seems to think that a "x003A" sequence in a WSDL file element
"name" attribute has a ':' because it is the hex number of a ':'
character[3], meaning it thinks the text is "rsi_:_OfficerName" which
_would_ be illegal if the file really had "rsi_:_OfficerName" in it.
This character sequence is part of an NSName[6] value, which allows a
value of "x003A" to mean an element named "x003A".

The XML Specification is very clear in how one should embed a Hex
character definition in an XML file [5]. It is not the "x003A"
sequence, but the entity reference "&#x003A".