mirror of
https://github.com/darlinghq/darling-libxml2.git
synced 2024-12-04 02:11:16 +00:00
8127390f03
* Makefile.am SAX.c SAX2.c configure.in globals.c parser.c parserInternals.c testReader.c testSAX.c xmlIO.c xmllint.c xmlreader.c example/gjobread.c include/libxml/xmlversion.h.in: added 2 new configure option: --with-reader --with-sax1 to allow removing the reader or non-xmlReadxxx() interfaces. Daniel
176 lines
5.3 KiB
C
176 lines
5.3 KiB
C
/*
|
|
* SAX.c : Old SAX v1 handlers to build a tree.
|
|
* Deprecated except for compatibility
|
|
*
|
|
* See Copyright for the status of this software.
|
|
*
|
|
* Daniel Veillard <daniel@veillard.com>
|
|
*/
|
|
|
|
|
|
#define IN_LIBXML
|
|
#include "libxml.h"
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <libxml/xmlmemory.h>
|
|
#include <libxml/tree.h>
|
|
#include <libxml/parser.h>
|
|
#include <libxml/parserInternals.h>
|
|
#include <libxml/valid.h>
|
|
#include <libxml/entities.h>
|
|
#include <libxml/xmlerror.h>
|
|
#include <libxml/debugXML.h>
|
|
#include <libxml/xmlIO.h>
|
|
#include <libxml/SAX.h>
|
|
#include <libxml/uri.h>
|
|
#include <libxml/valid.h>
|
|
#include <libxml/HTMLtree.h>
|
|
#include <libxml/globals.h>
|
|
#include <libxml/SAX2.h>
|
|
|
|
#ifdef LIBXML_SAX1_ENABLED
|
|
/**
|
|
* initxmlDefaultSAXHandler:
|
|
* @hdlr: the SAX handler
|
|
* @warning: flag if non-zero sets the handler warning procedure
|
|
*
|
|
* Initialize the default XML SAX version 1 handler
|
|
* DEPRECATED: use xmlSAX2InitDefaultSAXHandler() for the new SAX2 blocks
|
|
*/
|
|
void
|
|
initxmlDefaultSAXHandler(xmlSAXHandlerV1 *hdlr, int warning)
|
|
{
|
|
|
|
if(hdlr->initialized == 1)
|
|
return;
|
|
|
|
hdlr->internalSubset = xmlSAX2InternalSubset;
|
|
hdlr->externalSubset = xmlSAX2ExternalSubset;
|
|
hdlr->isStandalone = xmlSAX2IsStandalone;
|
|
hdlr->hasInternalSubset = xmlSAX2HasInternalSubset;
|
|
hdlr->hasExternalSubset = xmlSAX2HasExternalSubset;
|
|
hdlr->resolveEntity = xmlSAX2ResolveEntity;
|
|
hdlr->getEntity = xmlSAX2GetEntity;
|
|
hdlr->getParameterEntity = xmlSAX2GetParameterEntity;
|
|
hdlr->entityDecl = xmlSAX2EntityDecl;
|
|
hdlr->attributeDecl = xmlSAX2AttributeDecl;
|
|
hdlr->elementDecl = xmlSAX2ElementDecl;
|
|
hdlr->notationDecl = xmlSAX2NotationDecl;
|
|
hdlr->unparsedEntityDecl = xmlSAX2UnparsedEntityDecl;
|
|
hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
|
|
hdlr->startDocument = xmlSAX2StartDocument;
|
|
hdlr->endDocument = xmlSAX2EndDocument;
|
|
hdlr->startElement = xmlSAX2StartElement;
|
|
hdlr->endElement = xmlSAX2EndElement;
|
|
hdlr->reference = xmlSAX2Reference;
|
|
hdlr->characters = xmlSAX2Characters;
|
|
hdlr->cdataBlock = xmlSAX2CDataBlock;
|
|
hdlr->ignorableWhitespace = xmlSAX2Characters;
|
|
hdlr->processingInstruction = xmlSAX2ProcessingInstruction;
|
|
if (warning == 0)
|
|
hdlr->warning = NULL;
|
|
else
|
|
hdlr->warning = xmlParserWarning;
|
|
hdlr->error = xmlParserError;
|
|
hdlr->fatalError = xmlParserError;
|
|
|
|
hdlr->initialized = 1;
|
|
}
|
|
#endif /* LIBXML_SAX1_ENABLED */
|
|
|
|
#ifdef LIBXML_HTML_ENABLED
|
|
|
|
/**
|
|
* inithtmlDefaultSAXHandler:
|
|
* @hdlr: the SAX handler
|
|
*
|
|
* Initialize the default HTML SAX version 1 handler
|
|
* DEPRECATED: use xmlSAX2InitHtmlDefaultSAXHandler() for the new SAX2 blocks
|
|
*/
|
|
void
|
|
inithtmlDefaultSAXHandler(xmlSAXHandlerV1 *hdlr)
|
|
{
|
|
if(hdlr->initialized == 1)
|
|
return;
|
|
|
|
hdlr->internalSubset = xmlSAX2InternalSubset;
|
|
hdlr->externalSubset = NULL;
|
|
hdlr->isStandalone = NULL;
|
|
hdlr->hasInternalSubset = NULL;
|
|
hdlr->hasExternalSubset = NULL;
|
|
hdlr->resolveEntity = NULL;
|
|
hdlr->getEntity = xmlSAX2GetEntity;
|
|
hdlr->getParameterEntity = NULL;
|
|
hdlr->entityDecl = NULL;
|
|
hdlr->attributeDecl = NULL;
|
|
hdlr->elementDecl = NULL;
|
|
hdlr->notationDecl = NULL;
|
|
hdlr->unparsedEntityDecl = NULL;
|
|
hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
|
|
hdlr->startDocument = xmlSAX2StartDocument;
|
|
hdlr->endDocument = xmlSAX2EndDocument;
|
|
hdlr->startElement = xmlSAX2StartElement;
|
|
hdlr->endElement = xmlSAX2EndElement;
|
|
hdlr->reference = NULL;
|
|
hdlr->characters = xmlSAX2Characters;
|
|
hdlr->cdataBlock = xmlSAX2CDataBlock;
|
|
hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
|
|
hdlr->processingInstruction = NULL;
|
|
hdlr->comment = xmlSAX2Comment;
|
|
hdlr->warning = xmlParserWarning;
|
|
hdlr->error = xmlParserError;
|
|
hdlr->fatalError = xmlParserError;
|
|
|
|
hdlr->initialized = 1;
|
|
}
|
|
|
|
#endif /* LIBXML_HTML_ENABLED */
|
|
|
|
#ifdef LIBXML_DOCB_ENABLED
|
|
|
|
/**
|
|
* initdocbDefaultSAXHandler:
|
|
* @hdlr: the SAX handler
|
|
*
|
|
* Initialize the default DocBook SAX version 1 handler
|
|
* DEPRECATED: use xmlSAX2InitDocbDefaultSAXHandler() for the new SAX2 blocks
|
|
*/
|
|
void
|
|
initdocbDefaultSAXHandler(xmlSAXHandlerV1 *hdlr)
|
|
{
|
|
if(hdlr->initialized == 1)
|
|
return;
|
|
|
|
hdlr->internalSubset = xmlSAX2InternalSubset;
|
|
hdlr->externalSubset = NULL;
|
|
hdlr->isStandalone = xmlSAX2IsStandalone;
|
|
hdlr->hasInternalSubset = xmlSAX2HasInternalSubset;
|
|
hdlr->hasExternalSubset = xmlSAX2HasExternalSubset;
|
|
hdlr->resolveEntity = xmlSAX2ResolveEntity;
|
|
hdlr->getEntity = xmlSAX2GetEntity;
|
|
hdlr->getParameterEntity = NULL;
|
|
hdlr->entityDecl = xmlSAX2EntityDecl;
|
|
hdlr->attributeDecl = NULL;
|
|
hdlr->elementDecl = NULL;
|
|
hdlr->notationDecl = NULL;
|
|
hdlr->unparsedEntityDecl = NULL;
|
|
hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator;
|
|
hdlr->startDocument = xmlSAX2StartDocument;
|
|
hdlr->endDocument = xmlSAX2EndDocument;
|
|
hdlr->startElement = xmlSAX2StartElement;
|
|
hdlr->endElement = xmlSAX2EndElement;
|
|
hdlr->reference = xmlSAX2Reference;
|
|
hdlr->characters = xmlSAX2Characters;
|
|
hdlr->cdataBlock = NULL;
|
|
hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace;
|
|
hdlr->processingInstruction = NULL;
|
|
hdlr->comment = xmlSAX2Comment;
|
|
hdlr->warning = xmlParserWarning;
|
|
hdlr->error = xmlParserError;
|
|
hdlr->fatalError = xmlParserError;
|
|
|
|
hdlr->initialized = 1;
|
|
}
|
|
|
|
#endif /* LIBXML_DOCB_ENABLED */
|