[xsd-users] validating expat parser fails

Ovanes Markarian om_codesynthesis at keywallet.com
Thu Sep 25 11:51:44 EDT 2014


On Thu, Sep 25, 2014 at 10:20 AM, Boris Kolpackov <boris at codesynthesis.com>
wrote:

> This could be many things (bug in XSD, bug in Clang, etc). So some things
> to try:
>
> 1. Build with different optimization options (and with optimization
> disabled)
>    and see if that makes any difference. I vaguely remember there was some
>    version of Clang that miscompiled code when optimization enabled.
>
Yes, and it still breaks...


> 2. Build with GCC on Linux and see if that works.
>
Unfortunately, this is the reason, why I use clang on linux. GCC just
crashes with that many templates and C++11 features :( I last time tried it
with GCC 4.9.0


> 3. Upgrade to more recent clang and try to build with address sanitizer.
>
Mmm.. That's sounds strange how address sanitizer is going to fix it. I
have no crashes etc. It is just an exception that states, that '1002' is
not valid. This is also the ID which is in XML. I saw the code which does
the conversion it is doing it via iostream or at least stream like
interface. How do you parse the numbers. May be a small offtopic, but
wouldn't be parsing XML like types with Boost Karma a faster approach.
Additionally, I had initially in schema xs:integer as the type and in
http://www.w3schools.com/schema/schema_dtypes_numeric.asp is stated that
xs:integer is some integral value, somewhere else I saw that
0000000000003333330303003004505055 is a valid value. Would the current
stream based conversion be able to convert it?

Thanks,
Ovanes


More information about the xsd-users mailing list