35 :std::runtime_error(XML_ErrorString(code)) {}
46 const XML_Parser parser;
50 :parser(XML_ParserCreate(nullptr)) {
51 XML_SetUserData(parser, userData);
55 :parser(XML_ParserCreateNS(nullptr, ns.separator)) {
56 XML_SetUserData(parser, userData);
60 XML_ParserFree(parser);
67 XML_EndElementHandler end) noexcept {
68 XML_SetElementHandler(parser, start, end);
72 XML_SetCharacterDataHandler(parser, charhndl);
75 void Parse(
const char *data,
size_t length,
bool is_final);
81 const char *
name) noexcept;
85 const char *
name) noexcept;
107 void Parse(
const char *data,
size_t length,
bool is_final) {
108 parser.
Parse(data, length, is_final);
117 const char *
name) noexcept {
123 const char *
name) noexcept {
129 const XML_Char **atts) = 0;
135 const XML_Char **atts) {
140 static void XMLCALL
EndElement(
void *user_data,
const XML_Char *
name) {
146 const XML_Char *s,
int len) {
CommonExpatParser(ExpatNamespaceSeparator ns)
A specialization of ExpatParser that provides the most common callbacks as virtual methods...
virtual void StartElement(const XML_Char *name, const XML_Char **atts)=0
static gcc_pure const char * GetAttribute(const XML_Char **atts, const char *name) noexcept
void Parse(const char *data, size_t length, bool is_final)
virtual void EndElement(const XML_Char *name)=0
ExpatParser & operator=(const ExpatParser &)=delete
ExpatParser(ExpatNamespaceSeparator ns, void *userData)
void SetElementHandler(XML_StartElementHandler start, XML_EndElementHandler end) noexcept
virtual void CharacterData(const XML_Char *s, int len)=0
void Parse(InputStream &is)
void Parse(const char *data, size_t length, bool is_final)
static gcc_pure const char * GetAttributeCase(const XML_Char **atts, const char *name) noexcept
static gcc_pure const char * GetAttributeCase(const XML_Char **atts, const char *name) noexcept
ExpatError(XML_Error code)
static gcc_pure const char * GetAttribute(const XML_Char **atts, const char *name) noexcept
ExpatParser(void *userData)
void SetCharacterDataHandler(XML_CharacterDataHandler charhndl) noexcept
ExpatError(XML_Parser parser)
const Partition const char * name