// file : xsd/cxx/tree/list.hxx // copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC // license : GNU GPL v2 + exceptions; see accompanying LICENSE file #ifndef XSD_CXX_TREE_LIST_HXX #define XSD_CXX_TREE_LIST_HXX #include #include #include #include // tree::istream #include // tree::istream #include // fundamental_p, sequence namespace xsd { namespace cxx { namespace tree { // Class template for xsd:list mapping. Based on the sequence // template. // template ::r> class list; // // template class list: public sequence { public: explicit list (container* c = 0) : sequence (c) { } list (typename sequence::size_type n, const T& x, container* c = 0) : sequence (n, x, c) { } template list (const I& b, const I& e, container* c = 0) : sequence (b, e, c) { } template list (istream&, flags = 0, container* c = 0); list (const list& l, flags f = 0, container* c = 0) : sequence (l, f, c) { } public: list (const xercesc::DOMElement&, flags = 0, container* c = 0); list (const xercesc::DOMAttr&, flags = 0, container* c = 0); list (const std::basic_string&, const xercesc::DOMElement*, flags = 0, container* c = 0); private: void init (const std::basic_string&, const xercesc::DOMElement*, flags); }; // // template class list: public sequence { public: explicit list (container* c = 0) : sequence (c) { } explicit list (typename sequence::size_type n, const T& x, container* c = 0) : sequence (n, x, c) { } template list (const I& b, const I& e, container* c = 0) : sequence (b, e, c) { } template list (istream&, flags = 0, container* c = 0); list (const list& l, flags f = 0, container* c = 0) : sequence (l, f, c) { } public: list (const xercesc::DOMElement&, flags = 0, container* c = 0); list (const xercesc::DOMAttr&, flags = 0, container* c = 0); list (const std::basic_string&, const xercesc::DOMElement*, flags = 0, container* c = 0); private: void init (const std::basic_string&, const xercesc::DOMElement*); }; } } } #endif // XSD_CXX_TREE_LIST_HXX