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]