[xsd-users] Problem linking with VS 2008

Boris Kolpackov boris at codesynthesis.com
Tue Feb 7 10:34:48 EST 2012


Hi Thomas,

Thomas Dobroth <dobroth at gmail.com> writes:

> Thanks for the previous help.  I'm now trying to compile the Google  
> Extensions to KML found here:
>
> xmlns:gx="http://www.google.com/kml/ext/2.2"
>
> [...]
>
> 1>        c:\users\tom\documents\visual studio 2008\projects\test2\test2\kml22gx.cxx(1470) : see reference to class template instantiation 'xsd::cxx::tree::element_factory_initializer<id,C,T>' being compiled
> 1>        with
> 1>        [
> 1>            id=0,
> 1>            C=char,
> 1>            T=xml_schema::double_
> 1>        ]

The Google KML extension schema uses xs:double as a type of an element
in a substitution group (with the root having the xs:anySimpleType type).
XSD by default maps xs:double to fundamental C++ type double, which is
not derived from xml_schema::simple_type (mapping for xs:anySimpleType).
As a result you get the above errors. I took a look at other errors and
the same problem is with the xs:float, xs:boolean, and xs:integer types.

To make this work you will need to customize the mapping for these types
and map them to C++ class-types that derive from xml_schema::simple_type.
For more information on type customization see the C++/Tree Mapping
Customization Guide:

http://wiki.codesynthesis.com/Tree/Customization_guide

As well as the examples in the examples/cxx/tree/custom/ directory.

Boris



More information about the xsd-users mailing list