Beispiel #1
0
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);
}
Beispiel #2
0
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_SetElementDeclHandler(struct ExpatIFace * Self, XML_Parser parser, XML_ElementDeclHandler eldecl)
{
	XML_SetElementDeclHandler(parser, eldecl);
}