1/* 2 * SAX.c : Old SAX v1 handlers to build a tree. 3 * Deprecated except for compatibility 4 * 5 * See Copyright for the status of this software. 6 * 7 * Daniel Veillard <daniel@veillard.com> 8 */ 9 10 11#define IN_LIBXML 12#include "libxml.h" 13#include <stdlib.h> 14#include <string.h> 15#include <libxml/xmlmemory.h> 16#include <libxml/tree.h> 17#include <libxml/parser.h> 18#include <libxml/parserInternals.h> 19#include <libxml/valid.h> 20#include <libxml/entities.h> 21#include <libxml/xmlerror.h> 22#include <libxml/debugXML.h> 23#include <libxml/xmlIO.h> 24#include <libxml/SAX.h> 25#include <libxml/uri.h> 26#include <libxml/valid.h> 27#include <libxml/HTMLtree.h> 28#include <libxml/globals.h> 29#include <libxml/SAX2.h> 30 31#ifdef LIBXML_LEGACY_ENABLED 32#ifdef LIBXML_SAX1_ENABLED 33/** 34 * initxmlDefaultSAXHandler: 35 * @hdlr: the SAX handler 36 * @warning: flag if non-zero sets the handler warning procedure 37 * 38 * Initialize the default XML SAX version 1 handler 39 * DEPRECATED: use xmlSAX2InitDefaultSAXHandler() for the new SAX2 blocks 40 */ 41void 42initxmlDefaultSAXHandler(xmlSAXHandlerV1 *hdlr, int warning) 43{ 44 45 if(hdlr->initialized == 1) 46 return; 47 48 hdlr->internalSubset = xmlSAX2InternalSubset; 49 hdlr->externalSubset = xmlSAX2ExternalSubset; 50 hdlr->isStandalone = xmlSAX2IsStandalone; 51 hdlr->hasInternalSubset = xmlSAX2HasInternalSubset; 52 hdlr->hasExternalSubset = xmlSAX2HasExternalSubset; 53 hdlr->resolveEntity = xmlSAX2ResolveEntity; 54 hdlr->getEntity = xmlSAX2GetEntity; 55 hdlr->getParameterEntity = xmlSAX2GetParameterEntity; 56 hdlr->entityDecl = xmlSAX2EntityDecl; 57 hdlr->attributeDecl = xmlSAX2AttributeDecl; 58 hdlr->elementDecl = xmlSAX2ElementDecl; 59 hdlr->notationDecl = xmlSAX2NotationDecl; 60 hdlr->unparsedEntityDecl = xmlSAX2UnparsedEntityDecl; 61 hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator; 62 hdlr->startDocument = xmlSAX2StartDocument; 63 hdlr->endDocument = xmlSAX2EndDocument; 64 hdlr->startElement = xmlSAX2StartElement; 65 hdlr->endElement = xmlSAX2EndElement; 66 hdlr->reference = xmlSAX2Reference; 67 hdlr->characters = xmlSAX2Characters; 68 hdlr->cdataBlock = xmlSAX2CDataBlock; 69 hdlr->ignorableWhitespace = xmlSAX2Characters; 70 hdlr->processingInstruction = xmlSAX2ProcessingInstruction; 71 if (warning == 0) 72 hdlr->warning = NULL; 73 else 74 hdlr->warning = xmlParserWarning; 75 hdlr->error = xmlParserError; 76 hdlr->fatalError = xmlParserError; 77 78 hdlr->initialized = 1; 79} 80 81#ifdef LIBXML_HTML_ENABLED 82 83/** 84 * inithtmlDefaultSAXHandler: 85 * @hdlr: the SAX handler 86 * 87 * Initialize the default HTML SAX version 1 handler 88 * DEPRECATED: use xmlSAX2InitHtmlDefaultSAXHandler() for the new SAX2 blocks 89 */ 90void 91inithtmlDefaultSAXHandler(xmlSAXHandlerV1 *hdlr) 92{ 93 if(hdlr->initialized == 1) 94 return; 95 96 hdlr->internalSubset = xmlSAX2InternalSubset; 97 hdlr->externalSubset = NULL; 98 hdlr->isStandalone = NULL; 99 hdlr->hasInternalSubset = NULL; 100 hdlr->hasExternalSubset = NULL; 101 hdlr->resolveEntity = NULL; 102 hdlr->getEntity = xmlSAX2GetEntity; 103 hdlr->getParameterEntity = NULL; 104 hdlr->entityDecl = NULL; 105 hdlr->attributeDecl = NULL; 106 hdlr->elementDecl = NULL; 107 hdlr->notationDecl = NULL; 108 hdlr->unparsedEntityDecl = NULL; 109 hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator; 110 hdlr->startDocument = xmlSAX2StartDocument; 111 hdlr->endDocument = xmlSAX2EndDocument; 112 hdlr->startElement = xmlSAX2StartElement; 113 hdlr->endElement = xmlSAX2EndElement; 114 hdlr->reference = NULL; 115 hdlr->characters = xmlSAX2Characters; 116 hdlr->cdataBlock = xmlSAX2CDataBlock; 117 hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace; 118 hdlr->processingInstruction = xmlSAX2ProcessingInstruction; 119 hdlr->comment = xmlSAX2Comment; 120 hdlr->warning = xmlParserWarning; 121 hdlr->error = xmlParserError; 122 hdlr->fatalError = xmlParserError; 123 124 hdlr->initialized = 1; 125} 126 127#endif /* LIBXML_HTML_ENABLED */ 128 129#ifdef LIBXML_DOCB_ENABLED 130/** 131 * initdocbDefaultSAXHandler: 132 * @hdlr: the SAX handler 133 * 134 * Initialize the default DocBook SAX version 1 handler 135 * DEPRECATED: use xmlSAX2InitDocbDefaultSAXHandler() for the new SAX2 blocks 136 */ 137void 138initdocbDefaultSAXHandler(xmlSAXHandlerV1 *hdlr) 139{ 140 if(hdlr->initialized == 1) 141 return; 142 143 hdlr->internalSubset = xmlSAX2InternalSubset; 144 hdlr->externalSubset = NULL; 145 hdlr->isStandalone = xmlSAX2IsStandalone; 146 hdlr->hasInternalSubset = xmlSAX2HasInternalSubset; 147 hdlr->hasExternalSubset = xmlSAX2HasExternalSubset; 148 hdlr->resolveEntity = xmlSAX2ResolveEntity; 149 hdlr->getEntity = xmlSAX2GetEntity; 150 hdlr->getParameterEntity = NULL; 151 hdlr->entityDecl = xmlSAX2EntityDecl; 152 hdlr->attributeDecl = NULL; 153 hdlr->elementDecl = NULL; 154 hdlr->notationDecl = NULL; 155 hdlr->unparsedEntityDecl = NULL; 156 hdlr->setDocumentLocator = xmlSAX2SetDocumentLocator; 157 hdlr->startDocument = xmlSAX2StartDocument; 158 hdlr->endDocument = xmlSAX2EndDocument; 159 hdlr->startElement = xmlSAX2StartElement; 160 hdlr->endElement = xmlSAX2EndElement; 161 hdlr->reference = xmlSAX2Reference; 162 hdlr->characters = xmlSAX2Characters; 163 hdlr->cdataBlock = NULL; 164 hdlr->ignorableWhitespace = xmlSAX2IgnorableWhitespace; 165 hdlr->processingInstruction = NULL; 166 hdlr->comment = xmlSAX2Comment; 167 hdlr->warning = xmlParserWarning; 168 hdlr->error = xmlParserError; 169 hdlr->fatalError = xmlParserError; 170 171 hdlr->initialized = 1; 172} 173 174#endif /* LIBXML_DOCB_ENABLED */ 175 176#endif /* LIBXML_SAX1_ENABLED */ 177 178#define bottom_SAX 179#include "elfgcchack.h" 180#endif /* LIBXML_LEGACY_ENABLED */ 181