It would be really nice, if someone could take care of the remaining open problems.
But for me the foremost killer is presently described in my mail with subject
XML parsing problem (array or attribute related?)
I will open a JIRA issue for it.

HELP HELP HELP

Franz

Nadir Amra schrieb:
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]

  

begin:vcard
fn:Dr. Franz Fehringer
n:Fehringer;Franz
org:ISO Software Systeme
adr;quoted-printable:;;Eichendorffstrasse 29;N=C3=BCrnberg;;90491;Deutschland
email;internet:mailto:[EMAIL PROTECTED]
tel;work:+49/(911) - 99594-0 
tel;fax:+49/(911) - 99594-580
x-mozilla-html:TRUE
url:http://www.isogmbh.de/
version:2.1
end:vcard


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

Reply via email to