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