[xsde-users] using same TypeNames in different NameSpaces in inheritance chain

Песоцкий Максим aazmp at yandex.ru
Tue Dec 11 06:50:40 EST 2018


Could someone please tell if 

i use incorrect xsd schema
 or incorrect xsde compiler parameters 
 or if type serializer is incorrectly generated

tested with 3.3.0-a8 version for linux and git version

in attachment archive there are 
xsd-schemas, (level1.xsd, level2.xsd)
runCompiler.sh (with two calls to xsdeCompiler)
main.cpp (creates aggregator for derived type element and calls its root_serializer )

i have two schemas (level1.xsd, level2.xsd), each in it's own namespace (level1, level2 respectiely)
level2.xsd imports level1.xsd

on level1 i declare a type level1:ElemType and element level1:Elem of this type
on level2 - level2:ElemType derived from level1:ElemType and element level2:Elem, that substitutes level1:Elem

on level1 my element have one field a1 (int)
and on level2 field a2 (double) is added

when i create top level aggregator level2::Elem_saggr and try to serialize with its root_serializer()
program is stopped at this assertion (in file level2-sskel.cxx):

int ElemType_sskel::
a1 ()
  assert (this->ElemType_impl_); // <---- here this->ElemType_impl_ == 0x0
  return this->ElemType_impl_->a1 ();

it checks ElemType_impl_ of derived type, not base
if this check is replaced with
assert (level1::ElemType_sskel::ElemType_impl_);
then it passes ok

or if in level2.xsd schema derived type is named differently ElemType2
this function becomes
int ElemType2_sskel::
a1 ()
  assert (this->ElemType_impl_);
  return this->ElemType_impl_->a1 ();
and checks base ElemType_impl_, which is not null

is it correct to have same type names (in different namespaces) for derived types?
or maybe its incorrect to use TIEIN reuse style in that case?


-------------- next part --------------
A non-text attachment was scrubbed...
Name: xsdeNameOverlap.tar.gz
Type: application/x-gzip
Size: 1583 bytes
Desc: not available
Url : https://codesynthesis.com/pipermail/xsde-users/attachments/20181211/f80f7076/xsdeNameOverlap.tar.bin

More information about the xsde-users mailing list