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

Robert Lazarski resolved AXIS2C-1579.
-------------------------------------
    Fix Version/s: 2.0.0
       Resolution: Fixed

There is now a native code generator yet it lacked xsi:type support, see commit 
message below: 

Add xsi:type support to native WSDL2C generator (AXIS2C-1579)
    
    Implement proper xsi:type serialization for type polymorphism support.
    The generated code now correctly sets xmlns:xsi to the XML Schema Instance
    namespace (http://www.w3.org/2001/XMLSchema-instance) instead of incorrectly
    using the target namespace, and uses properly prefixed type names in 
xsi:type
    attributes (e.g., "ns1:TypeName" instead of just "TypeName").
    
    Changes:
    - Add XSI/XSD namespace constants to wsdl2c_native.h
    - Generate proper serialization code with xsi:type support
    - Add unit tests validating correct namespace and attribute format


> Wrong xsi:type in the response
> ------------------------------
>
>                 Key: AXIS2C-1579
>                 URL: https://issues.apache.org/jira/browse/AXIS2C-1579
>             Project: Axis2-C
>          Issue Type: Bug
>          Components: code generation
>    Affects Versions: 1.6.0
>            Reporter: Hengli Wang
>            Priority: Major
>             Fix For: 2.0.0
>
>
> I use axis2-1.6.1, and the responses created by the generated code has wrong 
> xsi:type. There are a few issues,
> 1. The xmlns:xsi is set to the target namespace of the last complex structure 
> in the response.
> 2. The top level xsi:type is set to the type of the last complex structure in 
> the response, with no prefix.
> Example WSDL,
> <wsdl:definitions>
>     <wsdl:types>
>         <xs:schema attributeFormDefault="qualified" 
> elementFormDefault="qualified" targetNamespace="urn:any">
>             <xs:complexType name="MyConfiguration">
>                 <xs:sequence>
>                     <xs:element name="name" type="xs:string"/>
>                     <xs:element minOccurs="0" name="policy" 
> type="tns:MyPolicyConfiguration"/>
>                 </xs:sequence>
>             </xs:complexType>
>             <xs:complexType name="MyPolicyConfiguration">
>                 <xs:sequence>
>                     <xs:element minOccurs="0" name="percent" 
> type="xs:boolean"/>
>                 </xs:sequence>
>             </xs:complexType>
>             <xs:element name="get_configurationResponse">
>                 <xs:complexType>
>                     <xs:sequence>
>                         <xs:element maxOccurs="unbounded" minOccurs="0" 
> name="return" type="tns:MyConfiguration"/>
>                     </xs:sequence>
>                 </xs:complexType>
>             </xs:element>
>         </xs:schema>
>     </wsdl:types>
>     <wsdl:message name="get_configurationRequest">
>         <wsdl:part name="parameters" element="tns:get_configuration"/>
>     </wsdl:message>
>     <wsdl:message name="get_configurationResponse">
>         <wsdl:part name="parameters" element="tns:get_configurationResponse"/>
>     </wsdl:message>
>     ...
> </wsdl:definitions>
> The response is,
> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/";>
>   <soapenv:Body>
>     <n:get_configurationResponse xmlns:n="urn:any"
>                                  xmlns:xsi="urn:any"
>                                  xsi:type="MyPolicyConfiguration">
>       <n:return xsi:type="ARXShareConfiguration">
>         <n:name>me</n:name>
>         <n:policy xsi:type="ARXSharePolicyConfiguration">
>           <n:percent>100</n:percent>
>         </n:policy>
>       </n:return>
>     </n:get_configurationResponse>
>   </soapenv:Body>
> </soapenv:Envelope>



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to