// file : xsd/cxx/tree/type-serializer-map.txx // author : Boris Kolpackov // copyright : Copyright (c) 2005-2011 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #include #include #include // xml::bits::{xsi_namespace, type} #include // dom::{create_*, prefix} #include #include #include namespace xsd { namespace cxx { namespace tree { // type_serializer_map // template type_serializer_map:: type_serializer_map () { // Register serializers for built-in non-fundamental types. // std::basic_string xsd (bits::xml_schema ()); // anyType and anySimpleType. // register_type ( typeid (type), qualified_name (bits::any_type (), xsd), &serializer_impl, false); typedef simple_type simple_type; register_type ( typeid (simple_type), qualified_name (bits::any_simple_type (), xsd), &serializer_impl, false); // Strings // typedef string string; register_type ( typeid (string), qualified_name (bits::string (), xsd), &serializer_impl, false); typedef normalized_string normalized_string; register_type ( typeid (normalized_string), qualified_name (bits::normalized_string (), xsd), &serializer_impl, false); typedef token token; register_type ( typeid (token), qualified_name (bits::token (), xsd), &serializer_impl, false); typedef name name; register_type ( typeid (name), qualified_name (bits::name (), xsd), &serializer_impl, false); typedef nmtoken nmtoken; register_type ( typeid (nmtoken), qualified_name (bits::nmtoken (), xsd), &serializer_impl, false); typedef nmtokens nmtokens; register_type ( typeid (nmtokens), qualified_name (bits::nmtokens (), xsd), &serializer_impl, false); typedef ncname ncname; register_type ( typeid (ncname), qualified_name (bits::ncname (), xsd), &serializer_impl, false); typedef language language; register_type ( typeid (language), qualified_name (bits::language (), xsd), &serializer_impl, false); // ID/IDREF. // typedef id id; register_type ( typeid (id), qualified_name (bits::id (), xsd), &serializer_impl, false); typedef idref idref; register_type ( typeid (idref), qualified_name (bits::idref (), xsd), &serializer_impl, false); typedef idrefs idrefs; register_type ( typeid (idrefs), qualified_name (bits::idrefs (), xsd), &serializer_impl, false); // URI. // typedef uri uri; register_type ( typeid (uri), qualified_name (bits::any_uri (), xsd), &serializer_impl, false); // Qualified name. // typedef qname qname; register_type ( typeid (qname), qualified_name (bits::qname (), xsd), &serializer_impl, false); // Binary. // typedef base64_binary base64_binary; register_type ( typeid (base64_binary), qualified_name (bits::base64_binary (), xsd), &serializer_impl, false); typedef hex_binary hex_binary; register_type ( typeid (hex_binary), qualified_name (bits::hex_binary (), xsd), &serializer_impl, false); // Date/time. // typedef gday gday; register_type ( typeid (gday), qualified_name (bits::gday (), xsd), &serializer_impl, false); typedef gmonth gmonth; register_type ( typeid (gmonth), qualified_name (bits::gmonth (), xsd), &serializer_impl, false); typedef gyear gyear; register_type ( typeid (gyear), qualified_name (bits::gyear (), xsd), &serializer_impl, false); typedef gmonth_day gmonth_day; register_type ( typeid (gmonth_day), qualified_name (bits::gmonth_day (), xsd), &serializer_impl, false); typedef gyear_month gyear_month; register_type ( typeid (gyear_month), qualified_name (bits::gyear_month (), xsd), &serializer_impl, false); typedef date date; register_type ( typeid (date), qualified_name (bits::date (), xsd), &serializer_impl, false); typedef time time; register_type ( typeid (time), qualified_name (bits::time (), xsd), &serializer_impl