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) {
68 XML_SetElementHandler(parser, start, end);
72 XML_SetCharacterDataHandler(parser, charhndl);
75 void Parse(
const char *data,
size_t length,
bool is_final);
107 void Parse(
const char *data,
size_t length,
bool is_final) {
108 parser.
Parse(data, length, is_final);
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...
static gcc_pure const char * GetAttribute(const XML_Char **atts, const char *name)
virtual void StartElement(const XML_Char *name, const XML_Char **atts)=0
void Parse(const char *data, size_t length, bool is_final)
static gcc_pure const char * GetAttributeCase(const XML_Char **atts, const char *name)
void SetElementHandler(XML_StartElementHandler start, XML_EndElementHandler end)
virtual void EndElement(const XML_Char *name)=0
ExpatParser & operator=(const ExpatParser &)=delete
ExpatParser(ExpatNamespaceSeparator ns, void *userData)
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)
void SetCharacterDataHandler(XML_CharacterDataHandler charhndl)
static gcc_pure const char * GetAttributeCase(const XML_Char **atts, const char *name)
ExpatError(XML_Error code)
ExpatParser(void *userData)
static gcc_pure const char * GetAttribute(const XML_Char **atts, const char *name)
ExpatError(XML_Parser parser)
const Partition const char * name