00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00026 #ifdef __GNUG__
00027 #pragma implementation
00028 #endif
00029
00030
00031 #include "saxemitter.h"
00032
00033
00040 #define SAFE_CALL_RECEPTOR(x) \
00041 if (saxReceptor) \
00042 saxReceptor->x;
00043
00044
00045
00052 #define SAFE_CALL_RECEPTOR_RETURN(x) \
00053 if (saxReceptor) \
00054 return saxReceptor->x; \
00055 else \
00056 return 1;
00057
00058
00059
00060
00064 SAXEmitter::SAXEmitter(void)
00065 : SAXBase()
00066 {
00067 saxReceptor = 0;
00068 }
00069
00070
00076 SAXEmitter::SAXEmitter(SAXReceptor *receptor)
00077 : SAXBase()
00078 {
00079 saxReceptor = receptor;
00080 }
00081
00082
00088 void SAXEmitter::setSAXReceptor(SAXReceptor *receptor)
00089 {
00090 saxReceptor = receptor;
00091 }
00092
00093
00094
00095
00096
00100 void SAXEmitter::reportError(void)
00101 {
00102 SAFE_CALL_RECEPTOR(reportError());
00103
00104 }
00105
00106
00114 void SAXEmitter::startElement(void *userData, const XmlChar *name, const XmlChar **attr)
00115 {
00116 SAFE_CALL_RECEPTOR(startElement(userData, name, attr));
00117 }
00118
00119
00120
00127 void SAXEmitter::endElement(void *userData,
00128 const XmlChar *name)
00129 {
00130 SAFE_CALL_RECEPTOR(endElement(userData, name));
00131 }
00132
00133
00134
00135
00136
00144 void SAXEmitter::characterData(void *userData,
00145 const XmlChar *data,
00146 int length)
00147 {
00148 SAFE_CALL_RECEPTOR(characterData(userData, data, length));
00149 }
00150
00151
00152
00160 void SAXEmitter::processingInstruction(void *userData,
00161 const XmlChar *target,
00162 const XmlChar *data)
00163 {
00164 SAFE_CALL_RECEPTOR(processingInstruction(userData, target, data));
00165 }
00166
00167
00174 void SAXEmitter::comment(void *userData,
00175 const XmlChar *data)
00176 {
00177 SAFE_CALL_RECEPTOR(comment(userData, data));
00178 }
00179
00180
00186 void SAXEmitter::startCDATASection(void *userData)
00187 {
00188 SAFE_CALL_RECEPTOR(startCDATASection(userData));
00189 }
00190
00191
00197 void SAXEmitter::endCDATASection(void *userData)
00198 {
00199 SAFE_CALL_RECEPTOR(endCDATASection(userData));
00200 }
00201
00202
00210 void SAXEmitter::defaultHandler(void *userData,
00211 const XmlChar *data,
00212 int length)
00213 {
00214 SAFE_CALL_RECEPTOR(defaultHandler(userData, data, length));
00215 }
00216
00217
00225 int SAXEmitter::unknownEncoding(void *unknownEncodingData,
00226 const XmlChar *name,
00227 XML_Encoding *info)
00228 {
00229 SAFE_CALL_RECEPTOR_RETURN(unknownEncoding(unknownEncodingData, name, info));
00230 }
00231
00232
00241 void SAXEmitter::xmlDecl(void *userData,
00242 const XmlChar *version,
00243 const XmlChar *encoding,
00244 int standalone)
00245 {
00246 SAFE_CALL_RECEPTOR(xmlDecl(userData, version, encoding, standalone));
00247 }
00248
00249
00259 void SAXEmitter::startDoctypeDecl(void *userData,
00260 const XmlChar *doctypeName,
00261 const XmlChar *systemId,
00262 const XmlChar *publicId,
00263 int hasInternalSubset)
00264 {
00265 SAFE_CALL_RECEPTOR(startDoctypeDecl(userData, doctypeName, systemId, publicId, hasInternalSubset));
00266 }
00267
00268
00269
00275 void SAXEmitter::endDoctypeDecl(void *userData)
00276 {
00277 SAFE_CALL_RECEPTOR(endDoctypeDecl(userData));
00278 }
00279
00280
00294 void SAXEmitter::entityDecl(void *userData,
00295 const XmlChar *entityName,
00296 int isParameterEntity,
00297 const XmlChar *value,
00298 int valueLength,
00299 const XmlChar *base,
00300 const XmlChar *systemId,
00301 const XmlChar *publicId,
00302 const XmlChar *notationName)
00303 {
00304 SAFE_CALL_RECEPTOR(entityDecl(userData, entityName, isParameterEntity, value, valueLength, base, systemId, publicId, notationName));
00305 }
00306
00307
00308
00318 void SAXEmitter::notationDecl(void *userData,
00319 const XmlChar *notationName,
00320 const XmlChar *base,
00321 const XmlChar *systemId,
00322 const XmlChar *publicId)
00323 {
00324 SAFE_CALL_RECEPTOR(notationDecl(userData, notationName, base, systemId, publicId));
00325 }
00326
00327
00328