00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #ifndef __SENXMLREADER_H
00022 #define __SENXMLREADER_H
00023
00024
00025 #include <xml\Parser.h>
00026 #include <xml\ParserFeature.h>
00027 #include <xml\ContentHandler.h>
00028 #include <badesca.h>
00029
00030 using namespace Xml;
00031
00032
00033 const TInt KSenDefaultParserFeature = (TInt)EReportNamespaceMapping;
00034
00035
00036 class MSenContentHandlerClient;
00037 class RFs;
00038
00039
00040
00049 class CSenXmlReader : public CBase, public MContentHandler
00050 {
00051 public:
00052
00058 IMPORT_C static CSenXmlReader* NewL();
00059
00066 IMPORT_C static CSenXmlReader* NewLC();
00067
00077 IMPORT_C static CSenXmlReader* NewL(TInt aParserFeature);
00078
00088 IMPORT_C static CSenXmlReader* NewLC(TInt aParserFeature);
00089
00093 IMPORT_C virtual ~CSenXmlReader();
00094
00095
00096
00103 IMPORT_C virtual void SetContentHandler(
00104 MSenContentHandlerClient& aContentHandler);
00105
00111 IMPORT_C virtual TInt EnabledParserFeature();
00112
00116 IMPORT_C virtual TInt ParserFeature();
00117
00126 TInt SetParserFeature(TInt aParserFeature);
00127
00133 IMPORT_C void ParseL(const TDesC8& aBuff);
00134
00141 IMPORT_C void ParseL(RFs &aRFs, const TDesC& aFileToParse);
00142
00143
00144
00145
00146
00155 virtual void OnStartDocumentL(const RDocumentParameters& aDocParam,
00156 TInt aErrorCode);
00157
00166 virtual void OnEndDocumentL(TInt aErrorCode);
00167
00176 virtual void OnStartElementL(const RTagInfo& aElement,
00177 const RAttributeArray& aAttributes,
00178 TInt aErrorCode);
00179
00188 virtual void OnEndElementL(const RTagInfo& aElement, TInt aErrorCode);
00189
00196 virtual void OnContentL(const TDesC8& aBytes, TInt aErrorCode);
00197
00206 virtual void OnStartPrefixMappingL(const RString& aPrefix,
00207 const RString& aUri,
00208 TInt aErrorCode);
00209
00218 virtual void OnEndPrefixMappingL(const RString& aPrefix, TInt aErrorCode);
00219
00228 virtual void OnIgnorableWhiteSpaceL(const TDesC8& aBytes, TInt aErrorCode);
00229
00238 virtual void OnSkippedEntityL(const RString& aName, TInt aErrorCode);
00239
00248 virtual void OnProcessingInstructionL(const TDesC8& aTarget,
00249 const TDesC8& aData,
00250 TInt aErrorCode);
00251
00260 virtual void OnError(TInt aErrorCode);
00261
00274 virtual TAny* GetExtendedInterface(const TInt32 aUid);
00275
00276 protected:
00277
00281 IMPORT_C CSenXmlReader(TInt aParserFeature);
00282
00286 void ConstructL();
00287
00288
00289
00294 void RecreateParserL();
00295
00296 private:
00297
00298 CParser* iParser;
00299
00300 MSenContentHandlerClient* iContentHandler;
00301
00302 CDesC8Array* ipNsPrefixes;
00303
00304 CDesC8Array* ipNsUris;
00305
00306 RStringPool iStringPool;
00307
00308 TInt iEnabledFeature;
00309 };
00310
00311
00312 #endif
00313
00314
00315