The problem is in your schema definition. Per the XML Schema 2001 specification, <element> does not have a “namespace” attribute. (This attribute is a proprietary extension in Microsoft’s schema compiler). Axis is performing correctly. It is ignoring the “namespace” attribute and therefore treats the element as a local element.

 

This definition is not correct:

<element name="getStringsReturn" type="tns:AuthorData"  namespace="urn:ConfigTest"/>

 

If you want this element to be namespace qualified, you should define it this way:

<element name="getStringsReturn" type="tns:AuthorData"  form="qualified"/>

 

Alternatively, you can specify that elements should be qualified by default:

<schema xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:ConfigTest" elementFormDefault=”qualified”>

(but if you do this then you will need to specify form=”unqualified” on your two local elements (“ids” and “values”))

 

I’ve attached an updated version of your WSDL in which I included the “elementFormDefault” attribute. I removed all incidents of the “namespace” attributes on your element definitions, and I added the form=”unqualified” attributed to your local elements. Also notice that I removed the “namespace” attributes from your binding <input> and <output> definitions. You must not specify the namespace attribute when using Doc/Literal.

 

Regards,

Anne


From: bolek [mailto:[EMAIL PROTECTED]
Sent: Thursday, June 24, 2004 11:18 AM
To: [EMAIL PROTECTED]
Subject: missing namespace element

 

Hello,

 

I’m having a little trouble with my webservice. I have written a wsdl and generated associated source code. I edited the IMPL file and deployed without fail. Using InfoPath as a client I tried to connect to my webservice and got the following error when I ran a query with the webservice method:

 

Element 'getStringsReturn' is unexpected according to content model of parent element '{urn:ConfigTest}getStringsResponse'.

Expecting: {urn:ConfigTest}getStringsReturn.

 

The actual soap message over the wire:

 

<?xml version="1.0" encoding="UTF-8"?>

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

 <soapenv:Body>

  <getStringsResponse xmlns="urn:ConfigTest">

   <getStringsReturn xmlns="">

    <ids>paul</ids>

    <ids>skye</ids>

    <ids>luci</ids>

    <ids>manu</ids>

    <values>apples</values>

    <values>oranges</values>

   </getStringsReturn>

  </getStringsResponse>

 </soapenv:Body>

</soapenv:Envelope>

 

As indicated by InfoPath the xmlns value is missing for the getStringsReturn element. Is it an Axis error or InfoPath problem?

What do I need to modify/implement so that getStringsReturn will have namespace associated with it? Any help is much appreciated. Attached is my wsdl.

 

Thanks,

-Bolek

 

 

Attachment: TestAxisUpdated.wsdl
Description: Binary data

Reply via email to