[ 
https://issues.apache.org/jira/browse/AXIS2C-557?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Samisa Abeysinghe resolved AXIS2C-557.
--------------------------------------

       Resolution: Fixed
    Fix Version/s: 1.1.0
         Assignee: Samisa Abeysinghe

Fixed the Java tool's template to handle the case.

> WSDL2C: generated adb code does not allow any elements to be omitted - too 
> inflexible
> -------------------------------------------------------------------------------------
>
>                 Key: AXIS2C-557
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-557
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: code generation
>    Affects Versions: Current (Nightly)
>         Environment: Windows XP
>            Reporter: Dave Meier
>            Assignee: Samisa Abeysinghe
>             Fix For: 1.1.0
>
>         Attachments: test2.wsdl
>
>
> I am using WSDL2C with adb data binding.
> The code that is generated requires all elements specified in the WSDL for a 
> given web service call to be present.  It should instead check the name of 
> each node and allow some data elements to be omitted.
> Instead it generates code like the following, where it assumes the next node 
> is the node it expects.  It should check the name of the node and skip to the 
> next expected node if the name does not match:
>                      
>                                    /**
>                                      * because elements are ordered this 
> works fine
>                                      */
>                                    
>                                    if( current_node != NULL)
>                                    {
>                                        current_node = 
> AXIOM_NODE_GET_NEXT_SIBLING( current_node, env);
>                                    }
>                                  
>                            if ( current_node != NULL)
>                            {
>                               current_element = AXIOM_NODE_GET_DATA_ELEMENT( 
> current_node, env);
>                                       text_value = 
> AXIOM_ELEMENT_GET_TEXT(current_element, env, current_node );
> Here it blindly gets the text_value and sets it into the field that it 
> expects the value to be for.  This means that all the nodes must be present 
> or it will set the wrong values in the fields.  So if  new arguments are 
> added to an object passed in the call, it will no longer be backwards 
> compatible with clients that are using the older version of the WSDL.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to