You are viewing a plain text version of this content. The canonical link for it is here.
Posted to c-dev@axis.apache.org by "Dushshantha Chandradasa (JIRA)" <ax...@ws.apache.org> on 2005/04/18 11:32:44 UTC

[jira] Created: (AXISCPP-621) Support for the WSDL construct choice

Support for the WSDL construct choice
-------------------------------------

         Key: AXISCPP-621
         URL: http://issues.apache.org/jira/browse/AXISCPP-621
     Project: Axis-C++
        Type: Bug
  Components: Basic Architecture  
    Versions: 1.6 Alpha    
 Environment: All
    Reporter: Dushshantha Chandradasa


Axis C++ doesn't support the construct choice.

-- 
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


[jira] Commented: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Samisa Abeysinghe (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=comments#action_63136 ]
     
Samisa Abeysinghe commented on AXISCPP-621:
-------------------------------------------

http://www.w3schools.com/schema/el_choice.asp is a useful reference

> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: Bug
>   Components: WSDL processing
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa

>
> Axis C++ doesn't support the construct choice.

-- 
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


[jira] Commented: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Dushshantha Chandradasa (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=comments#action_64831 ]
     
Dushshantha Chandradasa commented on AXISCPP-621:
-------------------------------------------------

hmm, choice is complete for Doc/Lit style. 3 new tests were added to the test framework to test 'choice' construct as follows;

   1.BasicChoice    - to test string type choice elements
   2.SimpleChoice   - to test Simple type choice elements
   3.UnboundedChoice- to test simple type unbounded choice elements

All these test are document style tests. Have to test for rpc as well. They also should work properly.

All the modifications are in the cvs. 

Thanks,
Dushshantha



> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: New Feature
>   Components: WSDL processing - RPC
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa
>     Assignee: Dushshantha Chandradasa
>  Attachments: Choice.wsdl, ChoiceTest.wsdl
>
> Axis C++ doesn't support the WSDL construct "choice".

-- 
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


[jira] Assigned: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Dushshantha Chandradasa (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=all ]

Dushshantha Chandradasa reassigned AXISCPP-621:
-----------------------------------------------

    Assign To: Dushshantha Chandradasa

> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: New Feature
>   Components: WSDL processing - RPC
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa
>     Assignee: Dushshantha Chandradasa
>  Attachments: Choice.wsdl, ChoiceTest.wsdl
>
> Axis C++ doesn't support the WSDL construct "choice".

-- 
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


[jira] Updated: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Dushshantha Chandradasa (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=all ]

Dushshantha Chandradasa updated AXISCPP-621:
--------------------------------------------

    Attachment: Choice.wsdl

The attached file Choice.wsdl can be used to test the wsdl construct "choice". This file was taken from Axis Java.

> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: New Feature
>   Components: WSDL processing
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa
>  Attachments: Choice.wsdl
>
> Axis C++ doesn't support the WSDL construct "choice".

-- 
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


[jira] Updated: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Dushshantha Chandradasa (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=all ]

Dushshantha Chandradasa updated AXISCPP-621:
--------------------------------------------

    Attachment: ChoiceTest.wsdl

Found a better wsdl file test Choice construct. The original file Round4XSDTest.wsdl was taken from http://mssoapinterop.org/asmx/xsd/ and modified according to our needs with the name ChoiceTest.wsdl which is attached here. 

Samisa, Thank you for helping me to find suitable wsdl files.


> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: New Feature
>   Components: WSDL processing
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa
>  Attachments: Choice.wsdl, ChoiceTest.wsdl
>
> Axis C++ doesn't support the WSDL construct "choice".

-- 
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


[jira] Commented: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Dushshantha Chandradasa (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=comments#action_64616 ]
     
Dushshantha Chandradasa commented on AXISCPP-621:
-------------------------------------------------

i managed to solve half the problem. Chinthana implemented a peek mechanism in xml parser which allows the deserializer to identify the name of the next element from the xml stream. I used that mechanism in the generated stub level codes to get the next element name and deserialize only that element. This is done if and only if the perticular element is a wsdl choice. 

I changed the wsdl2ws tool to generate codes accordingly. now it works for nillable types and simple types with 1 occurrence. This is working only for document style. These changes now are in the cvs. 

Have to look in to unbounded occurrences.

i'm planning to add three tests in to the test framework. 
    1. Test for nillable types
    2. Test for Simple types (two seperate tests for rpc and doc/lit)
    3. Test for unbounded occurrences


  

> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: New Feature
>   Components: WSDL processing - RPC
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa
>     Assignee: Dushshantha Chandradasa
>  Attachments: Choice.wsdl, ChoiceTest.wsdl
>
> Axis C++ doesn't support the WSDL construct "choice".

-- 
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


[jira] Resolved: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Dushshantha Chandradasa (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=all ]
     
Dushshantha Chandradasa resolved AXISCPP-621:
---------------------------------------------

    Resolution: Fixed

The support for 'choice' WSDL construct in Axis C++ is implemented. 

 

> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: New Feature
>   Components: WSDL processing - RPC
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa
>     Assignee: Dushshantha Chandradasa
>  Attachments: Choice.wsdl, ChoiceTest.wsdl
>
> Axis C++ doesn't support the WSDL construct "choice".

-- 
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


[jira] Closed: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Dushshantha Chandradasa (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=all ]
     
Dushshantha Chandradasa closed AXISCPP-621:
-------------------------------------------


the WSDL construct 'choice' is now supported by Axis C++ server. Five new tests were also added to the test framework to test several cases.

Generating Getters and setters of the attributes of generated classes is yet to be done. It was addressed in a seperate Jira issue, so i decided to close this issue first and fix the getters and setters problem seperately.

> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: New Feature
>   Components: WSDL processing - RPC
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa
>     Assignee: Dushshantha Chandradasa
>  Attachments: Choice.wsdl, ChoiceTest.wsdl
>
> Axis C++ doesn't support the WSDL construct "choice".

-- 
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


[jira] Updated: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Samisa Abeysinghe (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=all ]

Samisa Abeysinghe updated AXISCPP-621:
--------------------------------------

           type: New Feature  (was: Bug)
    Description: Axis C++ doesn't support the WSDL construct "choice".  (was: Axis C++ doesn't support the construct choice.)
        Version: 1.5 Final
                     (was: 1.6 Alpha)
      Component: WSDL processing
                     (was: Basic Architecture)

> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: New Feature
>   Components: WSDL processing
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa

>
> Axis C++ doesn't support the WSDL construct "choice".

-- 
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


[jira] Commented: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Dushshantha Chandradasa (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=comments#action_63365 ]
     
Dushshantha Chandradasa commented on AXISCPP-621:
-------------------------------------------------

The original wsdl file in Axis java was ChoiceService.wsdl. We renamed it as Choice.wsdl because we use the same wsdl file to generate both the service and the client. 

> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: New Feature
>   Components: WSDL processing
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa
>  Attachments: Choice.wsdl
>
> Axis C++ doesn't support the WSDL construct "choice".

-- 
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


[jira] Commented: (AXISCPP-621) Support for the WSDL construct choice

Posted by "Dushshantha Chandradasa (JIRA)" <ax...@ws.apache.org>.
     [ http://issues.apache.org/jira/browse/AXISCPP-621?page=comments#action_63753 ]
     
Dushshantha Chandradasa commented on AXISCPP-621:
-------------------------------------------------

In this problem, we can identify two defferent problem areas that we have to look in to.

    1. wsdl2ws tool changes
    2. Deserialization changes

1. wsdl2ws tool changes
   --------------------

1.1

First the tool should decide whether there is a choice construct in the wsdl file.

1.2

When we come across a choice, the tool has to generate code accordingly. The changes should be in the deserialization part of the complex type. 


2. Deserialization changes
   -----------------------

2.1

First, we need to know out of the possible choices which choice is available. For this, we neet to get the element name from the parser level and compare the name with possible choices at the generated code level. 
This can be done by a method implemented in xml parser which can be named as getChoiceName(), which returns the element name. This method should be accessed by the genrated code through the Deserializer because stub level doesn't have the direct access to parser. This  element name can be compared with the available choices and the correct choice can be selected for deserialization.

2.2

Once the starting tag is pulled in advance, we cannot use the current deserializer code as it is to deserialize the rest because it assumes that the start tag would be there. 
need to have a design to overcome this problem. 
 


2.3

Once the choice is known, we have to pull the multiple occurances of the choice based on min-occurs and max-occurs.
we can do this by having a method in parser to return whether there is a next occurance, which can be named as hasChoiceNext() which returns a boolean value.
 
  



> Support for the WSDL construct choice
> -------------------------------------
>
>          Key: AXISCPP-621
>          URL: http://issues.apache.org/jira/browse/AXISCPP-621
>      Project: Axis-C++
>         Type: New Feature
>   Components: WSDL processing
>     Versions: 1.5 Final
>  Environment: All
>     Reporter: Dushshantha Chandradasa
>  Attachments: Choice.wsdl
>
> Axis C++ doesn't support the WSDL construct "choice".

-- 
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