37class ORCUS_DLLPUBLIC xml_structure_tree
40 std::unique_ptr<impl> mp_impl;
43 xml_structure_tree() =
delete;
44 xml_structure_tree(
const xml_structure_tree&) =
delete;
45 xml_structure_tree& operator= (
const xml_structure_tree&) =
delete;
47 struct ORCUS_DLLPUBLIC entity_name
50 std::string_view name;
53 entity_name(xmlns_id_t _ns, std::string_view _name);
55 bool operator< (
const entity_name& r)
const;
56 bool operator== (
const entity_name& r)
const;
58 struct ORCUS_DLLPUBLIC
hash
60 size_t operator ()(
const entity_name& val)
const;
64 typedef std::vector<entity_name> entity_names_type;
66 struct ORCUS_DLLPUBLIC element
73 element(
const entity_name& _name,
bool _repeat,
bool _has_content);
81 class ORCUS_DLLPUBLIC walker
83 friend class xml_structure_tree;
85 std::unique_ptr<walker_impl> mp_impl;
87 walker(
const xml_structure_tree::impl& parent_impl);
90 walker(
const walker& r);
92 walker& operator= (
const walker& r);
157 std::string get_xmlns_short_name(xmlns_id_t ns)
const;
177 xml_structure_tree(xml_structure_tree&& other);
178 ~xml_structure_tree();
180 void parse(std::string_view s);
182 void dump_compact(std::ostream& os)
const;
184 walker get_walker()
const;
188 void process_ranges(range_handler_type rh)
const;
190 void swap(xml_structure_tree& other);
Definition xml_namespace.hpp:100