[ 
https://issues.apache.org/jira/browse/CXF-4981?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13662810#comment-13662810
 ] 

Gamma Tora commented on CXF-4981:
---------------------------------

I have the exact same problem with nested complexe types.

Environment: OSX 10.8.3

The following releases have been tested and contains this bug :
- 2.5.10
- 2.6.8
- 2.7.5

                
> wsdl2js failes to generate deserializer for nested complex sequences, but 
> calles the deserialize in the outer type
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: CXF-4981
>                 URL: https://issues.apache.org/jira/browse/CXF-4981
>             Project: CXF
>          Issue Type: Bug
>          Components: JavaScript Client
>    Affects Versions: 2.7.4
>         Environment: windows, 2.7.4 released binaries
>            Reporter: Stephen Muccione
>         Attachments: XMLFile1.wsdl
>
>
> When createing a js client where the wsdl has nested complex types, the 
> client code calls a deserializer that is never emitted (the call looks 
> appropriate)
> The wsdl in question is:
> <xsi:complexType name="continuousNBData">
> <xsi:sequence>
> <xsi:element name="type" minOccurs="1" maxOccurs="1" type="xsi:unsignedInt"/>
> <xsi:element name="classId" minOccurs="1" maxOccurs="1" 
> type="xsi:unsignedInt"/>
> <xsi:element name="active" minOccurs="1" maxOccurs="1" 
> type="xsi:unsignedInt"/>
> <xsi:element name="frequencyRange" minOccurs="2" maxOccurs="2" 
> type="xsi:unsignedInt"/>
> <xsi:element name="peakPower" minOccurs="1" maxOccurs="1" type="xsi:int"/>
> <xsi:element name="peakFrequency" minOccurs="1" maxOccurs="1" 
> type="xsi:unsignedInt"/>
> <xsi:element name="capacityImpact" minOccurs="1" maxOccurs="1" 
> type="xsi:unsignedInt"/>
> <xsi:element name="duration" minOccurs="1" maxOccurs="1" 
> type="xsi:unsignedInt"/>
> <xsi:element name="perMinDuration" minOccurs="15" maxOccurs="15" 
> type="xsi:unsignedInt"/>
> <xsi:element name="hits" minOccurs="1" maxOccurs="1" type="xsi:unsignedInt"/>
> <xsi:element name="perMinHits" minOccurs="15" maxOccurs="15" 
> type="xsi:unsignedInt"/>
> <xsi:element name="stabilityImpact" minOccurs="1" maxOccurs="1">
> <xsi:complexType>
> <xsi:sequence>
> <xsi:sequence minOccurs="1" maxOccurs="1">
> <xsi:element name="CRC" minOccurs="1" maxOccurs="1" type="xsi:unsignedInt"/>
> </xsi:sequence>
> <xsi:sequence minOccurs="1" maxOccurs="1">
> <xsi:element name="FEC" minOccurs="1" maxOccurs="1" type="xsi:unsignedInt"/>
> </xsi:sequence>
> <xsi:sequence minOccurs="1" maxOccurs="1">
> <xsi:element name="SES" minOccurs="1" maxOccurs="1" type="xsi:unsignedInt"/>
> </xsi:sequence>
> </xsi:sequence>
> </xsi:complexType>
> </xsi:element>
> <xsi:element name="perMinHits" minOccurs="15" maxOccurs="15" 
> type="xsi:unsignedInt"/>
> <xsi:element name="noisePSD" minOccurs="1" maxOccurs="1">
> <xsi:complexType>
> <xsi:sequence>
> <xsi:sequence minOccurs="12" maxOccurs="12">
> <xsi:element name="avgNoisePSD" minOccurs="1" maxOccurs="1" 
> type="xsi:unsignedInt"/>
> </xsi:sequence>
> <xsi:sequence minOccurs="12" maxOccurs="12">
> <xsi:element name="maxNoisePSD" minOccurs="1" maxOccurs="1" 
> type="xsi:unsignedInt"/>
> </xsi:sequence>
> <xsi:sequence minOccurs="12" maxOccurs="12">
> <xsi:element name="minNoisePSD" minOccurs="1" maxOccurs="1" 
> type="xsi:unsignedInt"/>
> </xsi:sequence>
> </xsi:sequence>
> </xsi:complexType>
> </xsi:element>
> </xsi:sequence>
> </xsi:complexType>
> and the emitted code is:
>     cxfjsutils.trace('curElement: ' + 
> cxfjsutils.traceElementName(curElement));
>     cxfjsutils.trace('processing stabilityImpact');
>     var value = null;
>     if (!cxfjsutils.isElementNil(curElement)) {
>      item = XSDI_stabilityImpact_deserialize(cxfjsutils, curElement);
>     }
>     newobject.setStabilityImpact(item);
> where XSDI_stabilityImpact_deserialize is never emitted:
> of note, this function naming may well be inappropriate.   I have multiple 
> top-level types declared with the same element name (stabilityImpact) as part 
> of a sequence.   If a top-level deserializer is emitted, they would have 
> identical names for their embedded element deserializers.   
> A more appropriate name would be:
> XSDI_continuousNBData_stabilityImpact_deserialize
> should probably chain the element names up the stack until you reach 
> root-level in order to guarantee uniqueness of names (either that or some 
> other obfuscation mechanism to guarantee uniqueness)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to