williamr@2: // Copyright (c) 2003-2009 Nokia Corporation and/or its subsidiary(-ies). williamr@2: // All rights reserved. williamr@2: // This component and the accompanying materials are made available williamr@2: // under the terms of the License "Symbian Foundation License v1.0" to Symbian Foundation members and "Symbian Foundation End User License Agreement v1.0" to non-members williamr@2: // which accompanies this distribution, and is available williamr@2: // at the URL "http://www.symbianfoundation.org/legal/licencesv10.html". williamr@2: // williamr@2: // Initial Contributors: williamr@2: // Nokia Corporation - initial contribution. williamr@2: // williamr@2: // Contributors: williamr@2: // williamr@2: // Description: williamr@2: // williamr@2: williamr@2: #ifndef __PARSER_H__ williamr@2: #define __PARSER_H__ williamr@2: williamr@2: /** williamr@2: @file williamr@2: williamr@2: XML Framework CParser API header file. williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: williamr@2: #include // needed for the typedef williamr@2: #include // needed for the typedef williamr@2: williamr@2: class RFs; williamr@2: class RFile; williamr@2: williamr@2: namespace Xml williamr@2: { williamr@2: williamr@2: class MContentHandler; williamr@2: class RStringDictionaryCollection; williamr@2: class TParserImpl; williamr@2: class CMatchData; williamr@2: williamr@2: /** williamr@2: If you need to parse xml this is the class you need to use. williamr@2: williamr@2: Default plain-text XML parser plug-in supports following character set encodings: williamr@2: williamr@2: ISO_8859_1 williamr@2: US_ASCII williamr@2: UTF_8 williamr@2: UTF_16 williamr@2: UTF_16BE williamr@2: UTF_16LE williamr@2: williamr@2: @publishedAll williamr@2: @released williamr@2: */ williamr@2: class CParser : public CBase williamr@2: { williamr@2: public: williamr@2: static IMPORT_C CParser* NewL(const TDesC8& aParserMimeType, MContentHandler& aCallback); williamr@2: static IMPORT_C CParser* NewLC(const TDesC8& aParserMimeType, MContentHandler& aCallback); williamr@2: williamr@2: static IMPORT_C CParser* NewL(const CMatchData& aCriteria, MContentHandler& aCallback); williamr@2: static IMPORT_C CParser* NewLC(const CMatchData& aCriteria, MContentHandler& aCallback); williamr@2: williamr@2: virtual ~CParser(); williamr@2: williamr@2: IMPORT_C void ParseBeginL(); williamr@2: IMPORT_C void ParseBeginL(const TDesC8& aDocumentMimeType); williamr@2: IMPORT_C void ParseBeginL(const CMatchData& aCriteria); williamr@2: IMPORT_C void ParseL(const TDesC8& aFragment); williamr@2: IMPORT_C void ParseEndL(); williamr@2: williamr@2: IMPORT_C void SetProcessorChainL(const RContentProcessorUids& aPlugins); williamr@2: williamr@2: IMPORT_C TInt EnableFeature(TInt aParserFeature); williamr@2: IMPORT_C TInt DisableFeature(TInt aParserFeature); williamr@2: IMPORT_C TBool IsFeatureEnabled(TInt aParserFeature) const; williamr@2: williamr@2: IMPORT_C void AddPreloadedDictionaryL(const TDesC8& aPublicId); williamr@2: williamr@2: IMPORT_C RStringPool& StringPool(); williamr@2: IMPORT_C RStringDictionaryCollection& StringDictionaryCollection(); williamr@2: williamr@2: private: williamr@2: CParser(); williamr@2: void ConstructL(const TDesC8& aParserMimeType, MContentHandler& aCallback); williamr@2: void ConstructL(const CMatchData& aMatchData, MContentHandler& aCallback); williamr@2: TParserImpl* iImpl; williamr@2: }; williamr@2: williamr@2: IMPORT_C void ParseL(CParser& aParser, const TDesC8& aDocument); williamr@2: IMPORT_C void ParseL(CParser& aParser, RFs& aFs, const TDesC& aFilename); williamr@2: IMPORT_C void ParseL(CParser& aParser, RFile& aFile); williamr@2: } williamr@2: williamr@2: #endif //__PARSER_H__