[Ext] Re: [xsd-users] Issues with operator==
Nicolas Weidmann
n.weidmann at lombardodier.com
Wed Sep 2 11:54:10 EDT 2026
Hello Boris,
How are you doing?
I cam back from holidays 3 weeks ago, but could tackle the == issue only now.
My == issue is exactly what you suggested!
An issue with the registration code.
Remember, I had to implement custom String & AnyURI.
Their comparison initializers where missing...
I added this in a *.cpp file in my lib and the problem disappeared:
namespace {
const ::xsd::cxx::tree::comparison_initializer<0, char, XsdCommonLibrary::String> String_comparison_init;
const ::xsd::cxx::tree::comparison_initializer<0, char, XsdCommonLibrary::AnyURI> AnyURI_comparison_init;
} // namespace
Are there other such structures I should create for those 2 custom types?
Regards,
Nicolas Weidmann
Banque Lombard Odier & Cie SA
Rue de la Corraterie 11 - 1204 Genève - Suisse
T +41 22 709 23 17
www.lombardodier.com
-----Original Message-----
From: Boris Kolpackov <boris at codesynthesis.com>
Sent: jeudi, 6 août 2026 11:15
To: Nicolas Weidmann <n.weidmann at lombardodier.com>
Cc: xsd-users at codesynthesis.com
Subject: Re: [Ext] Re: [xsd-users] Issues with operator==
Nicolas Weidmann <n.weidmann at lombardodier.com> writes:
> It's not a lib issue...
>
> It's another polymorphic issue when a XSD is included into another.
>
> Whenever I create a transaction with an order of type Fidget,
> transaction.getValeu() == transaction.getValeu() is OK
>
> But if my transaction holds a SubFidget instead, the same comparison
> results in the exception.
Unlike element types, comparison is polymorphism-aware. The exception
you are getting indicates that no dynamic type-specific comparison
function was registered for this type. This normally has two causes:
1. You didn't compile your schema with --generate-polymorphic. This seems
unlikely since parsing/serialization work as expected.
2. The registartion code was not executed. This is often happens with
static libraries if the object file in question did not end up being
linked in (which is a peculiar semantics of static libraries).
Can you try to step into operator==() that throws with a debugger and
see what happens there? You can also try to find the registartion code
for the type in question and set a breakpoint there to see if it gets
executed.
[[ rethink everything. ]]<https://www.lombardodier.com>
[[LinkedIn]]<https://www.linkedin.com/company/lombard-odier> [[Twitter]] <https://twitter.com/lombardodier> [[Facebook]] <https://facebook.com/lombardodier> [[Instagram]] <https://www.instagram.com/lombardodier/> [[YouTube]] <https://www.youtube.com/channel/UCqatbeqXskmWejbm0KPLV3w>
*** IMPORTANT NOTICE REGARDING INSTRUCTIONS by EMAIL ***
Please be aware that instructions received by e-mail should be
considered delayed and not executed unless they have been
specifically confirmed by your relationship manager/banker.
Email traffic during turbulent times in the financial markets is
high and cannot always be acted upon at all times.
Lombard Odier cannot be held liable for such delay in execution
or for the non-execution of an instruction given by email even
if it was given in due time. Therefore, instructions requiring
immediate action must be communicated by telephone by calling
the bank’s registered landline.
Thank you for your understanding.
*** IMPORTANT INFORMATION ABOUT DATA PROTECTION ***
You might be receiving this because you have provided us with
your contact details. If this is the case note that we may process
your personal data for direct marketing purposes.
If you wish to object to this processing, please notify the
Group’s Data Protection Officer<mailto:group-dataprotection at lombardodier.com>.
For more information: www.lombardodier.com/privacy-policy
DISCLAIMER **********************************************
This message is intended only for use by the person
to whom it is addressed. It may contain information
that is privileged and confidential. Its content does
not constitute a formal commitment by any company
of the Lombard Odier group. If you are not the intended
recipient of this message, kindly notify the sender
immediately and destroy this message. Thank You.
*******************************************************(dch)*
More information about the xsd-users
mailing list