[ http://issues.apache.org/jira/browse/AXISCPP-978?page=comments#action_12418044 ]
Franz Fehringer commented on AXISCPP-978: ----------------------------------------- In the generated code (see attachment) it is checked if the optional element BuyRate is present (using peekNextElementName). As a consequence the attribute m_bPeeked is true in the next call to getChardataAs()/next(), where the value of the reqired element SellRate is to be read. This in turn means that next() does not advance from START_ELEMENT to CHARACTER_ELEMENT. It would do so, if m_bPeeked where false. The test against CHARACTER_ELEMENT fails in getChardataAs() and so the SellRate value is missed. > deserializing of arrays of complex types with optional elements broken > ---------------------------------------------------------------------- > > Key: AXISCPP-978 > URL: http://issues.apache.org/jira/browse/AXISCPP-978 > Project: Axis-C++ > Type: Bug > Components: Client - Deserialization > Versions: current (nightly) > Environment: WIN2KSP4 MSVC6SP6 JDK 1.5.0_07 XercesC 2.7.0 > Reporter: Franz Fehringer > Attachments: pegs.wsdl, pegs.xsd, vaw.xml > > With AxisC++ (current SVN plus XercesC 2.7.0 on WIN2KSP4/JDK5/VC6SP6) i have > a severe problem, namely that my response message is not parsed correctly. > With the fragment (whole xml response appended) > <pgs:RequiredRoom exactMatch="true" adults="1" children="1" cots="1" > extraAdultBeds="1" extraChildBeds="1">SINGLE</pgs:RequiredRoom> > <pgs:SellRate currencyCode="USD" inclusiveOfTax="false" > commission="5">70</pgs:SellRate> > in the first line the AxisC XercesC wrapper advances (using next()) from > START_ELEMENT to CHARACTER_ELEMENT after having read all attributes and > therefore correctly detects "SINGLE". > But in the second line after having read all attributes, next() does not > advance to CHARACTER_ELEMENT, but stays on START_ELEMENT, which means that > "70" cannot be read (and the whole following xml block is disregarded too). > It seems, that in the second line the AxisC++ deserializing code thinks that > there is something left, which has to be handled prior to advancing to the > CHARACTER_ELEMENT. > We had some debug sessions and our first guess is, that there is something > wrong with deserializing arrays/lists/sequences (which are nested in this > case; maybe the problem?). > A second (to our opinion less probable) guess is, that the AxisC deserializer > thinks, that there could be remaining attributes. > What can be observed is, that in the first (successful) case m_bPeeked is > false, whereas in the second (error) case m_bPeeked is true. -- 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 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
