Xml::CParser Class Reference

#include <xml/parser.h>

Link against: xmlframework.lib

class Xml::CParser : public CBase

Inherits from

  • Xml::CParser

    Detailed Description

    If you need to parse xml this is the class you need to use.

    Default plain-text XML parser plug-in supports following character set encodings:

    ISO_8859_1 US_ASCII UTF_8 UTF_16 UTF_16BE UTF_16LE

    Constructor & Destructor Documentation

    ~CParser ( )

    ~CParser()[virtual]

    This method is the destructor for the object.

    Member Function Documentation

    AddPreloadedDictionaryL ( const TDesC8 & )

    IMPORT_C voidAddPreloadedDictionaryL(const TDesC8 &aPublicId)

    This method preloads a string dictionary prior to parsing.

    leave
    ... One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h
    ParameterDescription
    aPublicIdthe public identifier representing the document dtd.

    DisableFeature ( TInt )

    IMPORT_C TIntDisableFeature(TIntaParserFeature)

    This method disables a specific feature of the parser.

    See also: TParserFeature

    ParameterDescription
    aParserFeatureThe parser feature that must be disabled.

    Returns: KErrNone if successful, KErrNotSupported if the feature can't be disabled.

    EnableFeature ( TInt )

    IMPORT_C TIntEnableFeature(TIntaParserFeature)

    This method enables a specific feature of the parser.

    See also: TParserFeature

    ParameterDescription
    aParserFeatureThe parser feature that must be enabled.

    Returns: KErrNone if successful, KErrNotSupported if the parser doesn't support the feature.

    IsFeatureEnabled ( TInt )

    IMPORT_C TBoolIsFeatureEnabled(TIntaParserFeature)const

    This method tell whether a specific feature of the parser is enabled.

    See also: TParserFeature

    Returns: True if the feature is enabled.

    NewL ( const TDesC8 &, MContentHandler & )

    IMPORT_C CParser *NewL(const TDesC8 &aParserMimeType,
    MContentHandler &aCallback
    )[static]

    This method creates a parser that is ready to parse documents of the specified mime type.

    If there are multiple parser plugins in the system which can parse the mime type, the XML framework will choose a parser.

    The criteria used to choose a parser, from many matching parsers, is as follows:

    • A Symbian-supplied parser (with variant field set to "Symbian") will be selected by default. If there are multiple Symbian-supplied parsers, the one with the lowest Uid will be selected. Otherwise, the non-Symbian parser with the lowest Uid will be selected.

    leave
    KErrNoMemory If there is not enough memory to create parser or one of system wide error codes.
    leave
    KErrXmlParserPluginNotFound If Xml framework is unable to find a parser based on data provided in aParserMimeType.
    leave
    ... One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h

    See also: CParser::NewL(const CMatchData& aCriteria, MContentHandler& aCallback)

    ParameterDescription
    aParserMimeTypeThe mime type of the documents to parse (e.g. "txt/xml").
    aCallbackThe handler for parser generated events.

    Returns: A constructed parser

    NewL ( const CMatchData &, MContentHandler & )

    IMPORT_C CParser *NewL(const CMatchData &aCriteria,
    MContentHandler &aCallback
    )[static]

    This method creates the particular parser specified in CMatchData parameter.

    The parser plugin resolution process is based on mime type and variant field. Both are provided in CMatchData parameter. Mime Type is a mandatory string for the resolution process and it is matched against the data field of plugin resource files. Variant string is optional. If it exists, it is matched against the first entry of the opaque data field of plugin resource files.

    If the query is narrowed down to many parsers, the XML framework might either leave with an error (KErrXmlMoreThanOneParserMatched), or choose a parser. The behaviour is specified by LeaveOnMany flag. The default value of the flag is FALSE ('choose a parser' behaviour).

    The criteria used to choose a parser, from many matching parsers, is as follows:

    • If the optional Variant field is specified, the XML framework will choose the parser with the lowest Uid from the list.

    • If the optional Variant field is not specified, a Symbian-supplied parser (with variant field set to "Symbian") will be selected by default. If there are multiple Symbian-supplied parsers, the one with the lowest Uid will be selected. Otherwise, the non-Symbian parser with the lowest Uid will be selected.

    Case sensitivity of the string matching process is applied according to the relevant flag in CMatchData. The default value is TRUE (Case Sensitivity enabled).

    Only ROM-based parsers are returned if the relevant flag is set in CMatchData. The default value is FALSE (all parsers are considered).

    leave
    KErrNoMemory If there is not enough memory to create parser or one of system wide error codes.
    leave
    KErrXmlParserPluginNotFound If Xml framework is unable to find a parser based on data provided in CMatchData.
    leave
    KErrXmlMoreThanOneParserMatched If Xml framework narrowed down the query to many parsers and a user requested to leave in such case (LeaveOnMany flag set).
    leave
    ... One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h

    See also: CMatchData

    ParameterDescription
    aCriteriaThe specific information about required parser (mime type, variant data).
    aCallbackThe xml/wbxml event handler.

    Returns: A constructed parser

    NewLC ( const TDesC8 &, MContentHandler & )

    IMPORT_C CParser *NewLC(const TDesC8 &aParserMimeType,
    MContentHandler &aCallback
    )[static]

    This method is similar to NewL, but leaves the created parser on the cleanup stack.

    leave
    KErrNoMemory If there is not enough memory to create parser or one of system wide error codes.
    leave
    KErrXmlParserPluginNotFound If Xml framework is unable to find a parser based on data provided in aParserMimeType.
    leave
    ... One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h

    See also: CParser::NewL(const TDesC8& aParserMimeType, MContentHandler& aCallback) CParser::NewLC(const CMatchData& aCriteria, MContentHandler& aCallback)

    ParameterDescription
    aParserMimeTypeThe mime type of the documents to parse (e.g. "txt/xml").
    aCallbackThe handler for parser generated events.

    Returns: A constructed parser

    NewLC ( const CMatchData &, MContentHandler & )

    IMPORT_C CParser *NewLC(const CMatchData &aCriteria,
    MContentHandler &aCallback
    )[static]

    This method creates the particular parser specified in CMatchData parameter. It performs the same way as NewL with the exception that it leaves the object on the cleanup stack.

    leave
    KErrNoMemory If there is not enough memory to create parser or one of system wide error codes.
    leave
    KErrXmlParserPluginNotFound If Xml framework is unable to find a parser based on data provided in CMatchData.
    leave
    KErrXmlMoreThanOneParserMatched If Xml framework narrowed down the query to many parsers and a user requested to leave in such case (LeaveOnMany flag set).
    leave
    ... One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h

    See also: CParser::NewL(const CMatchData& aCriteria, MContentHandler& aCallback) CMatchData

    ParameterDescription
    aCriteriaThe specific information about required parser (mime type, version, variant data).
    aCallbackThe xml/wbxml event handler.

    Returns: A constructed parser

    ParseBeginL ( )

    IMPORT_C voidParseBeginL()

    This method tells the parser that we're going to start parsing a document using the default mime type specified on construction.

    The processor chain and features will be cleared if the parser currently set is not the default, all old features are removed as these generally have no meaning between parsers.

    leave
    ... One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h

    ParseBeginL ( const TDesC8 & )

    IMPORT_C voidParseBeginL(const TDesC8 &aDocumentMimeType)

    This method tells the parser that we're going to start parsing a document using the parser associated with this mime type.

    ParameterDescription
    aDocumentMimeTypethe mime type of the document

    ParseBeginL ( const CMatchData & )

    IMPORT_C voidParseBeginL(const CMatchData &aCriteria)

    This method tells the parser that we're going to start parsing a document using the parser associated with given CMatchData criteria.

    leave
    KErrNoMemory If there is not enough memory to create parser.
    leave
    KErrArgument If the data specified in CMatchData are not sufficient.
    leave
    KErrXmlParserPluginNotFound If Xml framework is unable to find a parser based on data provided in CMatchData.
    leave
    KErrXmlMoreThanOneParserMatched If Xml framework narrowed down the query to many parsers and a user requested to leave in such case (LeaveOnMany flag set).
    leave
    ... One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h

    See also: CMatchData

    ParameterDescription
    aCriteriaThe specific information about required parser (mime type, version, variant data).

    ParseEndL ( )

    IMPORT_C voidParseEndL()
    This method tells the parser that we've finished parsing the current document and should be called after calling CParser::ParseL for the final time, as this will initiate error callbacks via MContentHandler, and clean up memory where appropriate, should an error have occured during the parsing process. Such an error could occur when trying to parse a truncated document.
    leave
    ... One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h

    ParseL ( const TDesC8 & )

    IMPORT_C voidParseL(const TDesC8 &aFragment)

    This method tells the parser to parse a fragment of a document. Could be the whole document. ParseEndL should be called once the whole document has been parsed.

    The parser currently set will be used.

    leave
    ... One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h
    ParameterDescription
    aFragmentthe fragment to parse

    SetProcessorChainL ( const RContentProcessorUids & )

    IMPORT_C voidSetProcessorChainL(const RContentProcessorUids &aPlugins)

    This method changes the client and plugin chain.

    leave
    ... One of the system wide error codes or one of the Xml specific ones defined in XmlFrameworkErrors.h
    ParameterDescription
    aPluginsa list of plugin implementation uids that make up the callback chain.

    StringDictionaryCollection ( )

    IMPORT_C RStringDictionaryCollection &StringDictionaryCollection()

    This method obtains a handle to the current StringDictionaryCollection.

    Returns: handle to the current StringDictionaryCollection.

    StringPool ( )

    IMPORT_C RStringPool &StringPool()

    This method obtains a handle to the current string pool.

    Returns: handle to the current string pool.