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  */
41 void
initxmlDefaultSAXHandler(xmlSAXHandlerV1 * hdlr,int warning)42 initxmlDefaultSAXHandler(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  */
90 void
inithtmlDefaultSAXHandler(xmlSAXHandlerV1 * hdlr)91 inithtmlDefaultSAXHandler(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  */
137 void
initdocbDefaultSAXHandler(xmlSAXHandlerV1 * hdlr)138 initdocbDefaultSAXHandler(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