MeaXMLParser::MeaXMLParser(MeaXMLParserHandler *handler, bool buildDOM) : IValidationHandler(), m_isSubParser(false), m_handler(handler), m_haveDTD(false), m_context(NULL), m_buildDOM(buildDOM), m_dom(NULL) { // Create the XML parser and set its handlers. // m_pathnameStack = new PathnameStack; m_elementStack = new ElementStack; m_nodeStack = new NodeStack; m_parser = XML_ParserCreate(NULL); MeaAssert(m_parser != NULL); XML_SetUserData(m_parser, this); XML_SetExternalEntityRefHandlerArg(m_parser, this); XML_SetParamEntityParsing(m_parser, XML_PARAM_ENTITY_PARSING_UNLESS_STANDALONE); XML_SetElementHandler(m_parser, StartElementHandler, EndElementHandler); XML_SetCharacterDataHandler(m_parser, CharacterDataHandler); XML_SetExternalEntityRefHandler(m_parser, ExternalEntityRefHandler); XML_SetStartDoctypeDeclHandler(m_parser, DoctypeDeclHandler); XML_SetElementHandler(m_parser, StartElementHandler, EndElementHandler); XML_SetElementDeclHandler(m_parser, ElementDeclHandler); XML_SetAttlistDeclHandler(m_parser, AttributeDeclHandler); // Create the validator. // m_validator = new ev::Validator(this); }
END_TEST /* Regression test for SF bug #483514. */ START_TEST(test_dtd_default_handling) { char *text = "<!DOCTYPE doc [\n" "<!ENTITY e SYSTEM 'http://xml.libexpat.org/e'>\n" "<!NOTATION n SYSTEM 'http://xml.libexpat.org/n'>\n" "<!ELEMENT doc EMPTY>\n" "<!ATTLIST doc a CDATA #IMPLIED>\n" "<?pi in dtd?>\n" "<!--comment in dtd-->\n" "]><doc/>"; XML_SetDefaultHandler(parser, accumulate_characters); XML_SetDoctypeDeclHandler(parser, dummy_start_doctype_handler, dummy_end_doctype_handler); XML_SetEntityDeclHandler(parser, dummy_entity_decl_handler); XML_SetNotationDeclHandler(parser, dummy_notation_decl_handler); XML_SetElementDeclHandler(parser, dummy_element_decl_handler); XML_SetAttlistDeclHandler(parser, dummy_attlist_decl_handler); XML_SetProcessingInstructionHandler(parser, dummy_pi_handler); XML_SetCommentHandler(parser, dummy_comment_handler); run_character_check(text, "\n\n\n\n\n\n\n<doc/>"); }
void _Expat_XML_SetAttlistDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_AttlistDeclHandler attdecl) { XML_SetAttlistDeclHandler(parser, attdecl); }
void bmx_expat_XML_SetAttlistDeclHandler(XML_Parser parser) { XML_SetAttlistDeclHandler(parser, bmx_expat_AttlistDeclHandler); }