|
||
class CMDXMLParser : public CActive;
Creates a DOM structure from a given XML file.
The parsing operation is asynchronous and is initiated by a call to CMDXMLParser::ParseFile(RFs,const TDesC &)
. On completion, the created DOM document can be retrieved through CMDXMLParser::DetachXMLDoc()
.
Note the following ownership rules for the DOM document:
1. calling CMDXMLParser::DetachXMLDoc()
transfers ownership of the document to the client
2. if the parser is asked to parse a new file while it still owns an existing DOM document, it will delete the old document.
CBase
-
Base class for all classes to be instantiated on the heap.
CActive
-
The core class of the active object abstraction.
CMDXMLParser
- Creates a DOM structure from a given XML file.
Defined in CMDXMLParser
:
CreateDocumentL()
DetachXMLDoc()
Gets the created DOM.DoCancel()
Implements cancellation of an outstanding request.EAscii
ASCII. EUnicode
Unicode. Error()const
Gets the last error found by the parser.ErrorSeverity()const
Get the severity of the most severe error found. HandleTextL(TDes &)
NewL(MMDXMLParserObserver *)
Allocates and constructs a new XML parser, specifying a DTD.NewL(MMDXMLParserObserver *,MXMLDtd *)
Allocates and constructs a new XML parser, specifying a DTD.NewLC(MMDXMLParserObserver *)
Allocates and constructs a new XML parser, leaving the object on the cleanup sta...NewLC(MMDXMLParserObserver *,MXMLDtd *)
Allocates and constructs a new XML parser, leaving the object on the cleanup sta...ParseFile(RFile &)
Parses a specified XML file into a DOM object tree.ParseFile(RFs,const TDesC &)
Parses a specified XML file into a DOM object tree.ParseSource(MMDXMLParserDataProvider *)
Parses a specified XML Data Source into a DOM object tree. Use CMDXMLParser::Par...ParseSourceL(MMDXMLParserDataProvider *)
Parses a specified XML Data Source into a DOM object tree. ParseStartTagL()
RunError(TInt)
RunL()
Handles an active object's request completion event.SetEntityConverter(CMDXMLEntityConverter *)
Sets the entity converter to be used for parsing. and take ownership of the pass...SetSourceCharacterWidth(TMDXMLParserInputCharWidth)
Sets the input stream character width.SetStoreInvalid(TBool)
Controls whether invalid elements and attributes are added to the DOM. SetWhiteSpaceHandlingMode(TBool)
Controls whether whitespaces are handled by XML parser or by client. TMDXMLParserInputCharWidth
Defines input stream character widths. ~CMDXMLParser()
Destructor. Inherited from CActive
:
CActive(TInt)
Constructs the active object with the specified priority.Cancel()
Cancels the wait for completion of an outstanding request.Deque()
Removes the active object from the active scheduler's list of active objects.EPriorityHigh
A priority higher than EPriorityUserInput.EPriorityIdle
A low priority, useful for active objects representing background processing.EPriorityLow
A priority higher than EPriorityIdle but lower than EPriorityStandard.EPriorityStandard
Most active objects will have this priority.EPriorityUserInput
A priority higher than EPriorityStandard; useful for active objects handling use...Extension_(TUint,TAny *&,TAny *)
Extension function IsActive()const
Determines whether the active object has a request outstanding.IsAdded()const
Determines whether the active object has been added to the active scheduler's li...Priority()const
Gets the priority of the active object.SetActive()
Indicates that the active object has issued a request and that it is now outstan...SetPriority(TInt)
Sets the priority of the active object.TPriority
Defines standard priorities for active objects. iStatus
The request status associated with an asynchronous request.Inherited from CBase
:
Delete(CBase *)
Deletes the specified object.operator new(TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TAny *)
Initialises the object to binary zeroes.operator new(TUint,TLeave)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TLeave,TUint)
Allocates the object from the heap and then initialises its contents to binary z...operator new(TUint,TUint)
Allocates the object from the heap and then initialises its contents to binary z...IMPORT_C static CMDXMLParser* NewL(MMDXMLParserObserver *aParserObserver);
Allocates and constructs a new XML parser, specifying a DTD.
|
|
|
IMPORT_C static CMDXMLParser* NewL(MMDXMLParserObserver *aParserObserver, MXMLDtd *aDtdRepresentation);
Allocates and constructs a new XML parser, specifying a DTD.
|
|
|
IMPORT_C static CMDXMLParser* NewLC(MMDXMLParserObserver *aParserObserver);
Allocates and constructs a new XML parser, leaving the object on the cleanup stack.
|
|
|
IMPORT_C static CMDXMLParser* NewLC(MMDXMLParserObserver *aParserObserver, MXMLDtd *aDtdRepresentation);
Allocates and constructs a new XML parser, leaving the object on the cleanup stack.
|
|
|
IMPORT_C TInt Error() const;
Gets the last error found by the parser.
|
IMPORT_C TXMLErrorCodeSeverity ErrorSeverity() const;
Get the severity of the most severe error found.
|
IMPORT_C CMDXMLDocument* DetachXMLDoc();
Gets the created DOM.
This should be called after the conclusion of the parser process.
Note that the function sets the internal variable pointing to the document to NULL, so this function can only be called once per file parse. The caller takes ownership of the document, and must delete it when its use is complete.
|
IMPORT_C TInt ParseFile(RFs aRFs, const TDesC &aFileToParse);
Parses a specified XML file into a DOM object tree.
|
|
IMPORT_C TInt ParseFile(RFile &aFileHandleToParse);
Parses a specified XML file into a DOM object tree.
Parses a specified XML file into a DOM object tree using an open file handle. The parser takes ownership of the open file handle and will close handle when completed.
|
|
inline void ParseSource(MMDXMLParserDataProvider *aSource);
Parses a specified XML Data Source into a DOM object tree. Use CMDXMLParser::ParseSourceL(MMDXMLParserDataProvider *)
function in preference to CMDXMLParser::ParseSource(MMDXMLParserDataProvider *)
|
IMPORT_C void ParseSourceL(MMDXMLParserDataProvider *aSource);
Parses a specified XML Data Source into a DOM object tree.
|
IMPORT_C void SetSourceCharacterWidth(TMDXMLParserInputCharWidth aWidth);
Sets the input stream character width.
|
IMPORT_C void SetEntityConverter(CMDXMLEntityConverter *aEntityConverter);
Sets the entity converter to be used for parsing. and take ownership of the passed entity converter
|
IMPORT_C void SetStoreInvalid(TBool aStoreInvalid);
Controls whether invalid elements and attributes are added to the DOM.
|
IMPORT_C void SetWhiteSpaceHandlingMode(TBool aPreserve);
Controls whether whitespaces are handled by XML parser or by client.
|
private: IMPORT_C virtual void DoCancel();
Implements cancellation of an outstanding request.
This function is called as part of the active object's CActive::Cancel()
.
It must call the appropriate cancel function offered by the active object's asynchronous service provider. The asynchronous service provider's cancel is expected to act immediately.
CMDXMLParser::DoCancel()
must not wait for event completion; this is handled by CActive::Cancel()
.
CActive::Cancel()
Cancels the wait for completion of an outstanding request.private: virtual void RunL();
Handles an active object's request completion event.
A derived class must provide an implementation to handle the completed request. If appropriate, it may issue another request.
The function is called by the active scheduler when a request completion event occurs, i.e. after the active scheduler's WaitForAnyRequest() function completes.
Before calling this active object's CMDXMLParser::RunL()
function, the active scheduler has:
1. decided that this is the highest priority active object with a completed request
2. marked this active object's request as complete (i.e. the request is no longer outstanding)
CMDXMLParser::RunL()
runs under a trap harness in the active scheduler. If it leaves, then the active scheduler calls CMDXMLParser::RunError(TInt)
to handle the leave.
Note that once the active scheduler's Start() function has been called, all user code is run under one of the program's active
object's CMDXMLParser::RunL()
or CMDXMLParser::RunError(TInt)
functions.
CActiveScheduler::Start()
Starts a new wait loop under the control of the current active scheduler.CActiveScheduler::Error(TInt)const
Handles the result of a leave occurring in an active object’s RunL() function.CActiveScheduler::WaitForAnyRequest()
Wait for an asynchronous request to complete.