I will be looking into this....just trying to clean up some other things 
first.  I will also be looking at other jira issues and seeing what I can 
fix.  But all this takes time so please be patient.

Nadir K. Amra


Franz Fehringer <[EMAIL PROTECTED]> wrote on 06/26/2006 02:55:33 AM:

> Hello,
> 
> I work currently in the realm of deserializing xsd:extension based data 
> types.
> After noticing, that getChardataAs does not work as expected, i had a 
> closer look at it.
> It is defined (in SoapDeserializer.cpp) as
> void
> SoapDeSerializer::getChardataAs(void* pValue,
>                                  XSDTYPE type)
> and contains
> pValue = pSimpleType->getValue();
> Since call by value is done here, this has no effect on the caller side 
> (it is a local copy which is assigned to).
> Furthermore in the generated sources, calls like
> pIWSDZ->getChardataAs((void*)&(param->t_SellRate_value), XSD_DECIMAL);
> show up.
> Taking the address with an ampersand does not lead to a modifyable 
> lvalue, so some repair has to be done here too.
> With string (char*) datatypes there is an additional problem:
> pIWSDZ->getChardataAs((void*)&(param->t_RequiredRoom2_value), 
XSD_STRING);
> This is pointer to pointer, where only pointer was intended (no 
> ampersand should be applied for xsd__string and xsd__nmtoken; i made a 
> (resolved already) JIRA entry for a similar problem in the serializing 
> code).
> 
> I resolved these problems temporarily in the following way
> 
> Pass the void* as a reference
> void
> SoapDeSerializer::getChardataAs(void*& pValue,
>                                  XSDTYPE type)
> This means changes in SoapDeSerializer.cpp, SoapDeSerializer.h and 
> IWrapperSoapDeSerializer.hpp.
> 
> Replace
> 
> pIWSDZ->getChardataAs((void*)&(param->t_SellRate_value), XSD_DECIMAL);
> with
> void* pValue3;
> pIWSDZ->getChardataAs(pValue3, XSD_DECIMAL);
> param->t_SellRate_value = *((xsd__decimal*) pValue3);
> and
> pIWSDZ->getChardataAs((void*)&(param->t_RequiredRoom2_value), 
XSD_STRING);
> with
> void* pValue6;
> pIWSDZ->getChardataAs(pValue6, XSD_STRING);
> param->t_RequiredRoom2_value = (xsd__string) pValue6;
> 
> Any ideas, how to make this better?
> Any kind soul (Adrian, John, ...) to integrate this (or an alternative 
> approach) into stub generation?
> 
> Greetings
> 
> Franz
> 
> 
> [attachment "feh.vcf" deleted by Nadir Amra/Rochester/IBM] 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to