[ http://issues.apache.org/jira/browse/AXIS2-1138?page=comments#action_12439853 ] Thilina Gunarathne commented on AXIS2-1138: -------------------------------------------
Hi Todd, There was a typo in my fix and now only I found that it worked only when both attribute and elementFormDefault is unqualified... I commited a fix for that... Please try the nightly builds after some time... http://svn.apache.org/viewvc?view=rev&rev=452904 Thanx a lot for trying out and pointing this out.. ~Thilina > 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: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]