[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