8 #ifndef INCLUDED_ORCUS_SAX_TOKEN_PARSER_HPP 9 #define INCLUDED_ORCUS_SAX_TOKEN_PARSER_HPP 16 #include "sax_ns_parser.hpp" 24 #if ORCUS_DEBUG_SAX_PARSER 25 template<
typename _Attr,
typename _Tokens>
26 class attr_printer :
public ::std::unary_function<_Attr, void>
29 attr_printer(
const _Tokens& tokens, const ::std::string& indent) :
30 m_tokens(tokens), m_indent(indent) {}
32 void operator() (
const _Attr& attr)
const 35 cout << m_indent <<
" attribute: " 37 << m_tokens.get_token_name(attr.name) <<
"=\"" 38 << attr.value.str() <<
"\"" << endl;
41 const _Tokens& m_tokens;
42 ::std::string m_indent;
57 std::vector<xml_token_attr_t> attrs;
66 xml_token_t tokenize(
const pstring& name)
const;
79 template<
typename _Handler>
83 typedef _Handler handler_type;
86 const char* content,
const size_t size,
const tokens& _tokens,
101 handler_type& m_handler;
104 handler_wrapper(
const tokens& _tokens, handler_type& handler) :
109 void start_declaration(
const pstring&) {}
111 void end_declaration(
const pstring&)
113 m_elem.attrs.clear();
119 m_handler.start_element(m_elem);
120 m_elem.attrs.clear();
126 m_handler.end_element(m_elem);
129 void characters(
const pstring& val,
bool transient)
131 m_handler.characters(val,
transient);
136 handler_wrapper m_wrapper;
140 template<
typename _Handler>
142 const char* content,
const size_t size,
const tokens& _tokens,
xmlns_context& ns_cxt, handler_type& handler) :
143 m_wrapper(_tokens, handler),
144 m_parser(content, size, ns_cxt, m_wrapper)
148 template<
typename _Handler>
153 template<
typename _Handler>
Definition: sax_token_parser.hpp:80
Definition: pstring.hpp:24
Definition: sax_token_parser.hpp:52
Definition: sax_ns_parser.hpp:31
Definition: xml_namespace.hpp:80
Definition: sax_ns_parser.hpp:22
Definition: sax_token_parser.hpp:60
Definition: tokens.hpp:21
Definition: sax_parser_base.hpp:45
Definition: base64.hpp:15