4#ifndef XSD_CXX_TREE_ELEMENT_MAP_HXX
5#define XSD_CXX_TREE_ELEMENT_MAP_HXX
12#include <xsd/cxx/config.hxx>
14#include <xsd/cxx/xml/qualified-name.hxx>
31 template <
typename C,
typename T>
47 static XSD_AUTO_PTR<element_type>
62 typedef xml::qualified_name<C> qualified_name;
64 typedef XSD_AUTO_PTR<element_type>
65 (*parser) (
const xercesc::DOMElement&,
flags f);
68 (*serializer) (xercesc::DOMElement&,
const element_type&);
71 register_parser (
const qualified_name&, parser);
74 register_serializer (
const qualified_name&, serializer);
79 map_entry () : parser_ (0), serializer_ (0) {}
82 serializer serializer_;
86 std::map<qualified_name, map_entry>
90 static std::size_t count_;
100 template <
typename C,
typename T>
101 typename element_map<C, T>::map* element_map<C, T>::map_ = 0;
103 template <
typename C,
typename T>
104 std::size_t element_map<C, T>::count_ = 0;
106 template <
typename C,
typename T>
107 struct element_map_init
110 ~element_map_init ();
115 template<
typename T,
typename C,
typename B>
116 XSD_AUTO_PTR<element_type<C, B> >
117 parser_impl (
const xercesc::DOMElement&, flags);
119 template<
typename T,
typename C,
typename B>
122 parser_init (
const std::basic_string<C>& name,
123 const std::basic_string<C>& ns);
128 template<
typename T,
typename C,
typename B>
130 serializer_impl (xercesc::DOMElement&,
const element_type<C, B>&);
132 template<
typename T,
typename C,
typename B>
133 struct serializer_init
135 serializer_init (
const std::basic_string<C>& name,
136 const std::basic_string<C>& ns);
144#include <xsd/cxx/tree/element-map.txx>
Root element map.
Definition element-map.hxx:33
static std::auto_ptr< element_type > parse(const xercesc::DOMElement &e, flags f=0)
Parse a DOM element.
static void serialize(xercesc::DOMElement &e, const element_type &x)
Serialize an element object to a DOM element.
tree::element_type< C, T > element_type
Common base class for all element types.
Definition element-map.hxx:38
Base class for element types.
Definition elements.hxx:1412
Parsing and serialization flags.
Definition elements.hxx:76
Contains C++ class definitions for XML Schema anyType and anySimpleType types as well as supporting c...