8#ifndef INCLUDED_ORCUS_SAX_TOKEN_PARSER_HPP
9#define INCLUDED_ORCUS_SAX_TOKEN_PARSER_HPP
11#include "sax_ns_parser.hpp"
22class ORCUS_PSR_DLLPUBLIC sax_token_handler_wrapper_base
29 xml_token_t tokenize(std::string_view name)
const;
33 sax_token_handler_wrapper_base(
const tokens& _tokens);
35 void attribute(std::string_view name, std::string_view val);
91 (void)val; (void)transient;
107template<
typename HandlerT>
108class sax_token_parser
111 typedef HandlerT handler_type;
114 std::string_view content,
const tokens& _tokens,
117 ~sax_token_parser() =
default;
129 handler_type& m_handler;
132 handler_wrapper(
const tokens& _tokens, handler_type& handler) :
137 void start_declaration(std::string_view) {}
139 void end_declaration(std::string_view)
141 m_handler.declaration(m_declaration);
142 m_elem.attrs.clear();
148 m_handler.start_element(m_elem);
149 m_elem.attrs.clear();
155 m_handler.end_element(m_elem);
158 void characters(std::string_view val,
bool transient)
160 m_handler.characters(val, transient);
165 handler_wrapper m_wrapper;
169template<
typename HandlerT>
170sax_token_parser<HandlerT>::sax_token_parser(
171 std::string_view content,
const tokens& _tokens,
xmlns_context& ns_cxt, handler_type& handler) :
172 m_wrapper(_tokens, handler),
173 m_parser(content, ns_cxt, m_wrapper)
177template<
typename HandlerT>
178void sax_token_parser<HandlerT>::parse()
Definition sax_ns_parser.hpp:213
Definition sax_token_parser.hpp:23
Definition sax_token_parser.hpp:40
void declaration(const orcus::xml_declaration_t &decl)
Definition sax_token_parser.hpp:48
void start_element(const orcus::xml_token_element_t &elem)
Definition sax_token_parser.hpp:59
void end_element(const orcus::xml_token_element_t &elem)
Definition sax_token_parser.hpp:70
void characters(std::string_view val, bool transient)
Definition sax_token_parser.hpp:89
Definition xml_namespace.hpp:100
Definition sax_parser_base.hpp:37
Definition sax_ns_parser.hpp:35
Definition sax_ns_parser.hpp:21