cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Stephen Muccione (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CXF-4981) wsdl2js failes to generate deserializer for nested complex sequences, but calles the deserialize in the outer type
Date Tue, 23 Apr 2013 19:59:16 GMT
Stephen Muccione created CXF-4981:
-------------------------------------

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


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

Mime
View raw message