axis-c-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Samisa Abeysinghe <sam...@wso2.com>
Subject [Axis2] Issues AXIS2C-551, AXIS2C-542 and AXIS2C-557
Date Wed, 21 Mar 2007 00:10:56 GMT
Hi Milinda,
    Could you please look into the above mentioned issues and let us 
know if you would be able to fix them.
    Please add your comments in Jira.
Thanks,
Samisa...

Samisa Abeysinghe (JIRA) wrote:

>     [ https://issues.apache.org/jira/browse/AXIS2C-551?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
>
>Samisa Abeysinghe updated AXIS2C-551:
>-------------------------------------
>
>    Fix Version/s:     (was: Current (Nightly))
>         Priority: Major  (was: Blocker)
>
>  
>
>>WSDL2C: generated code does not handle optional elements
>>--------------------------------------------------------
>>
>>                Key: AXIS2C-551
>>                URL: https://issues.apache.org/jira/browse/AXIS2C-551
>>            Project: Axis2-C
>>         Issue Type: Bug
>>         Components: code generation
>>   Affects Versions: Current (Nightly)
>>        Environment: Windows XP
>>           Reporter: Dave Meier
>>
>>With an optional element specified in the WSDL, the generated code returns an error
if the element is not provided.  In the following WSDL I have an optional element called "name".
>>----------
>>WSDL:
>>----------
>><?xml version="1.0" encoding="UTF-8"?>
>><definitions name="test"
>> targetNamespace="http://localhost:80/gsoap/test.wsdl"
>> xmlns:tns="http://localhost:80/gsoap/test.wsdl"
>> xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>> xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>> xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>> xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#"
>> xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
>> xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
>> xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
>> xmlns:tt="urn:test"
>> xmlns:SOAP="http://schemas.xmlsoap.org/wsdl/soap/"
>> xmlns:MIME="http://schemas.xmlsoap.org/wsdl/mime/"
>> xmlns:DIME="http://schemas.xmlsoap.org/ws/2002/04/dime/wsdl/"
>> xmlns:WSDL="http://schemas.xmlsoap.org/wsdl/"
>> xmlns="http://schemas.xmlsoap.org/wsdl/">
>><types>
>> <schema targetNamespace="urn:test"
>>  xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"
>>  xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/"
>>  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>>  xmlns:c14n="http://www.w3.org/2001/10/xml-exc-c14n#"
>>  xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"
>>  xmlns:ds="http://www.w3.org/2000/09/xmldsig#"
>>  xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"
>>  xmlns:tt="urn:test"
>>  xmlns="http://www.w3.org/2001/XMLSchema"
>>  elementFormDefault="qualified"
>>  attributeFormDefault="qualified">
>>  <import namespace="http://www.w3.org/2001/10/xml-exc-c14n#"/>
>>  <import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd"/>
>>  <import namespace="http://www.w3.org/2000/09/xmldsig#"/>
>>  <import namespace="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd"/>
>>  <import namespace="http://schemas.xmlsoap.org/soap/encoding/"/>
>>  <simpleType name="Attachment-Access-Type">
>>   <restriction base="xsd:string">
>>    <enumeration value="ATTACHACCESS-DEFAULT"/>
>>    <enumeration value="ATTACHACCESS-RESTRICTED"/>
>>    <enumeration value="ATTACHACCESS-UNRESTRICTED"/>
>>   </restriction>
>>  </simpleType>
>>  <!-- operation request element -->
>>  <element name="SetAccess">
>>   <complexType>
>>    <sequence>
>>     <element name="name" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/>
>>     <element name="activeInactive" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
>>    </sequence>
>>   </complexType>
>>  </element>
>>  <!-- operation response element -->
>>  <element name="SetAccessResponse">
>>   <complexType>
>>    <sequence>
>>    </sequence>
>>   </complexType>
>>  </element>
>> </schema>
>></types>
>><message name="SetAccess">
>> <part name="parameters" element="tt:SetAccess"/>
>></message>
>><message name="SetAccessResponse">
>> <part name="parameters" element="tt:SetAccessResponse"/>
>></message>
>><portType name="testPortType">
>> <operation name="SetAccess">
>>  <documentation>SetAccess</documentation>
>>  <input message="tns:SetAccess"/>
>>  <output message="tns:SetAccessResponse"/>
>> </operation>
>></portType>
>><binding name="test" type="tns:testPortType">
>> <SOAP:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>
>> <operation name="SetAccess">
>>  <SOAP:operation soapAction=""/>
>>  <input>
>>     <SOAP:body parts="parameters" use="literal"/>
>>  </input>
>>  <output>
>>     <SOAP:body parts="parameters" use="literal"/>
>>  </output>
>> </operation>
>></binding>
>><service name="test">
>> <documentation>gSOAP 2.7.6e generated service definition</documentation>
>> <port name="test" binding="tns:test">
>>  <SOAP:address location="http://localhost:80/gsoap/gsoap_ssl.dll?test"/>
>> </port>
>></service>
>></definitions>
>>------------------------
>>Generated Code:
>>------------------------
>>current_element = AXIOM_NODE_GET_DATA_ELEMENT( current_node, env);
>>text_value = AXIOM_ELEMENT_GET_TEXT(current_element, env, current_node );
>>if ( NULL == text_value )
>>{
>>  status = AXIS2_FAILURE;
>>}
>>else
>>{
>>  status = AXIS2_SETACCESS_SET_NAME( SetAccess, env,
>>                                                                   text_value);
>>}
>>--------------------------
>>Recommendation:
>>--------------------------
>>Do not check if the value is NULL.  Instead, just set it.  It's okay to set the value
to NULL in the structure.  Right now, the data is not filled in because of the error being
returned, so everything fails.  Should generated this code instead:
>>current_element = AXIOM_NODE_GET_DATA_ELEMENT( current_node, env);
>>text_value = AXIOM_ELEMENT_GET_TEXT(current_element, env, current_node );
>>status = AXIS2_SETACCESS_SET_NAME( SetAccess, env,
>>                                                                   text_value);
>>    
>>
>
>  
>



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


Mime
View raw message