[ https://issues.apache.org/jira/browse/AXIS2C-779?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dimuthu Gamage updated AXIS2C-779: ---------------------------------- Attachment: delete.tar.gz Now the issue is fixed. Please check the attachment for generated code from latest svn. > WSDL2C generates invalid function prototypes when WSDL operation name is a > C/C++ reserved word > ---------------------------------------------------------------------------------------------- > > Key: AXIS2C-779 > URL: https://issues.apache.org/jira/browse/AXIS2C-779 > Project: Axis2-C > Issue Type: Improvement > Components: code generation > Affects Versions: Current (Nightly) > Environment: Windows XP, Visual Studio 2005 > Reporter: Bill Mitchell > Assignee: Dimuthu Gamage > Priority: Minor > Attachments: delete.tar.gz, service.wsdl > > > When given a WSDL with a operation with the name "delete", WSDL2C generates a > function prototype for the operation using "delete" as the name of a formal > parameter. Of course, the C++ compiler processing the header considers this > an invalid use of a reserved word. > In particular, let the WSDL contain an operation definition of the form: > ... > <operation name="delete"> > <input message="fw:deleteRequest"/> > <output message="fw:deleteResponse"/> > </operation> > ... > The generated prototype looks like this: > The template in the header for the stub for this operation is: > axiom_node_t* axis2_stub_Fservice_delete( axis2_stub_t *stub, const > axutil_env_t *env, > axiom_node_t* delete); > I have verified that the same problem arises with words from the C reserved > word list. If the operation name is "struct", then the formal parameter name > is also "struct", in both the generated .h and .c files. > At least 3 approaches to resolving the problem are possible: > (1) Always prefix the names used in the formal parameters with a fixed Axis2 > string, e.g., "op_". > (2) Replace names with a substitute when they are found to conflict with a > word in the C/C++ reserved word list. > (3) Prefix all names from the WSDL with a string representing the namespace, > so that every name is of the form nsstring_name, where even the default > namespace is replaced with some nsstring. > Where solution (3) might solve a general class of conflcts of names across > namespaces as well as this specific issue, for this one issue of the formal > parameter to the operation stub solution (1) should be adequate. > The workaround, where the user is not able to change the WSDL itself, is to > hand massage the generated .h and .c files after code generation wherever the > conflict arises and the compiler diagnoses the error. -- 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]