axis-java-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Todd Doolittle (JIRA)" <j...@apache.org>
Subject [jira] Commented: (AXIS2-1138) Generated client code does not handle attribute namespaces correclty.
Date Tue, 03 Oct 2006 14:23:20 GMT
    [ http://issues.apache.org/jira/browse/AXIS2-1138?page=comments#action_12439514 ] 
            
Todd Doolittle commented on AXIS2-1138:
---------------------------------------


Did this make it into the nightly build?

I tested with the nightly build, and the client is namespace qualifying the attributes even
though the WSDL does not specify attributeFormDefault (menaing it should default to unqualified).
 I'm guessing this just didn't make it into the nightlies.  

I used this nightly build...
axis2-std-SNAPSHOT-bin.zip 03-Oct-2006 06:17  9.4M 

I'll test it again tomorrow.

Here is the SOAP envelope that a client generated with the nightly created.  The "count" attribute
in the "lookup" element is being namespace qualified.  See the WSDL snippet below...

<?xml version='1.0' encoding='UTF-8'?>
<soapenv:Envelope
   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
   <soapenv:Header />
   <soapenv:Body>
      <ns1:lookup xmlns:ns1="http://tempuri.org/" ns1:count="1">
         <ns1:upc>2000000910</ns1:upc>
         <ns1:upc
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:nil="true" />
      </ns1:lookup>
   </soapenv:Body>
</soapenv:Envelope>


Here is the XML schema from the WSDL.  Since attributeFormDefault is not specified, it should
default to "unqualified" and the "count" attribute in the "lookup" element should not have
been namespace qualified...

<wsdl:types>
   <xsd:schema elementFormDefault="qualified"
      targetNamespace="http://tempuri.org/"
      xmlns:s1="http://tempuri.org/">
      <xsd:element name="lookup">
         <xsd:complexType>
            <xsd:sequence>
               <xsd:element maxOccurs="unbounded" minOccurs="0"
                  name="upc" nillable="true" type="xsd:string" />
            </xsd:sequence>
            <xsd:attribute name="count" type="xsd:int"
               use="required" />
         </xsd:complexType>
      </xsd:element>
   </xsd:schema>
</wsdl:types>


Thanks!
Todd

> Generated client code does not handle attribute namespaces correclty.
> ---------------------------------------------------------------------
>
>                 Key: AXIS2-1138
>                 URL: http://issues.apache.org/jira/browse/AXIS2-1138
>             Project: Apache Axis 2.0 (Axis2)
>          Issue Type: Bug
>          Components: Tools
>         Environment: Java 1.4.2, Tomcat 4, Axis 2 nightly build from 09/05/2006
>            Reporter: Todd Doolittle
>         Assigned To: Thilina Gunarathne
>            Priority: Blocker
>
> I am using the WSDL listed below.  I generated a client.  This client is pointing to
a non-java service.  The service fails because it cannot find the "count" attribute for the
"lookup" element.  This is because the Axis 2 client namespace qualified the attribute.  
> I contacted the service provider and they indicated that Axis 2 should not be namespace
qualifying the attribute.  The <xsd:schema> element in the WSDL specified elementFormDefault="required"
but it does not specify the attributeFormDefault.  In the abscense of the attributeFormDefault
the default value in "unqualified".  
> I believe this means that the stub code generated by Axis 2 should not be namespace qualifying
the attributes.
> Here is the envelope the Axis 2 stub created.  Notice the "count" attribute in the lookup
element is namespace qualified...
> <?xml version='1.0' encoding='UTF-8'?>
> <soapenv:Envelope
>   xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
>   <soapenv:Header />
>   <soapenv:Body>
>     <ns1:lookup xmlns:ns1="http://tempuri.org/" ns1:count="1">
>       <ns1:upc>1234567890</ns1:upc>
>     </ns1:lookup>
>   </soapenv:Body>
> </soapenv:Envelope>
> Here is the WSDL.  Notice that the <xsd:schema> element doesn't specifiy the attributeDefaultFormat
which means it defaults to "unqualified"...
> <?xml version="1.0" encoding="UTF-8" standalone="no" ?>
> <wsdl:definitions xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
>   name="POC" targetNamespace="http://tempuri.org/"
>   xmlns:fjs="http://tempuri.org/"
>   xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
>   xmlns:xsd="http://www.w3.org/2001/XMLSchema">
>   <wsdl:types>
>     <xsd:schema elementFormDefault="qualified"
>       targetNamespace="http://tempuri.org/"
>       xmlns:s1="http://tempuri.org/">
>       <xsd:element name="lookup">
>         <xsd:complexType>
>           <xsd:sequence>
>             <xsd:element maxOccurs="unbounded" minOccurs="0"
>               name="upc" nillable="true" type="xsd:string" />
>           </xsd:sequence>
>           <xsd:attribute name="count" type="xsd:int"
>             use="required" />
>         </xsd:complexType>
>       </xsd:element>
>       <xsd:element name="GetinfoResponse">
>         <xsd:complexType>
>           <xsd:sequence>
>             <xsd:element name="items" nillable="true">
>               <xsd:complexType>
>                 <xsd:sequence>
>                   <xsd:element maxOccurs="unbounded"
>                     minOccurs="0" name="item" nillable="true">
>                     <xsd:complexType>
>                       <xsd:sequence>
>                         <xsd:element name="ksn"
>                           nillable="true" type="xsd:int" />
>                         <xsd:element name="upc"
>                           nillable="true" type="xsd:string" />
>                         <xsd:element
>                           name="maintdt" nillable="true" type="xsd:date" />
>                         <xsd:element name="dpt"
>                           nillable="true" type="xsd:int" />
>                       </xsd:sequence>
>                     </xsd:complexType>
>                   </xsd:element>
>                 </xsd:sequence>
>               </xsd:complexType>
>             </xsd:element>
>           </xsd:sequence>
>           <xsd:attribute name="count" type="xsd:int"
>             use="required" />
>         </xsd:complexType>
>       </xsd:element>
>     </xsd:schema>
>   </wsdl:types>
>   <wsdl:message name="GetinfoIn">
>     <wsdl:part element="fjs:lookup" name="parameters" />
>   </wsdl:message>
>   <wsdl:message name="GetinfoOut">
>     <wsdl:part element="fjs:GetinfoResponse" name="parameters" />
>   </wsdl:message>
>   <wsdl:portType name="POCPortType">
>     <wsdl:operation name="Getinfo">
>       <wsdl:input message="fjs:GetinfoIn" name="lookup" />
>       <wsdl:output message="fjs:GetinfoOut"
>         name="GetinfoResponse" />
>     </wsdl:operation>
>   </wsdl:portType>
>   <wsdl:binding name="POCBinding" type="fjs:POCPortType">
>     <soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
>     <wsdl:operation name="Getinfo">
>       <soap:operation soapAction="getinfo" style="document" />
>       <wsdl:input name="lookup">
>         <soap:body use="literal" />
>       </wsdl:input>
>       <wsdl:output name="GetinfoResponse">
>         <soap:body use="literal" />
>       </wsdl:output>
>     </wsdl:operation>
>   </wsdl:binding>
>   <wsdl:service name="POC">
>     <wsdl:port binding="fjs:POCBinding" name="POCPortType">
>       <soap:address location="http://localhost:8090/POC/POC" />
>     </wsdl:port>
>   </wsdl:service>
> </wsdl:definitions>

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: axis-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: axis-dev-help@ws.apache.org


Mime
View raw message