epoc32/include/xmlengdomparser.h
branchSymbian2
changeset 2 2fe1408b6811
parent 0 061f57f2323e
--- a/epoc32/include/xmlengdomparser.h	Tue Nov 24 13:55:44 2009 +0000
+++ b/epoc32/include/xmlengdomparser.h	Tue Mar 16 16:12:26 2010 +0000
@@ -1,1 +1,184 @@
-xmlengdomparser.h
+/*
+* Copyright (c) 2004-2006 Nokia Corporation and/or its subsidiary(-ies). 
+* All rights reserved.
+* This component and the accompanying materials are made available
+* 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
+* which accompanies this distribution, and is available
+* at the URL "http://www.symbianfoundation.org/legal/licencesv10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:       DOM parser functions
+*
+*/
+
+
+
+
+
+
+
+#ifndef XMLENGINE_DOMPARSER_H_INCLUDED
+#define XMLENGINE_DOMPARSER_H_INCLUDED
+
+#include <f32file.h>
+
+class RXmlEngDOMImplementation;
+class RXmlEngDocument;
+
+/** 
+ * DOM parser class implements methods for parsing XML data.
+ *
+ * Parse XML data in one chunk. Data can be parsed from file 
+ * or memory buffer.
+ *
+ * Sample code for parsing from buffer:
+ * @code
+ *      RXmlEngDOMImplementation domImpl;
+ *      domImpl.OpenL();              ///< opening DOM implementation object 
+ *      RXmlEngDOMParser parser;
+ *      parser.Open( domImpl );   ///< opening parser object
+ *      RXmlEngDocument iDoc;
+ *      iDoc =parser.ParseL( *aInput );   ///< parsing aInput - buffer  
+ *      iDoc.Close();               ///< closing all opened objects
+ *      parser.Close();
+ *      domImpl.Close();
+ * @endcode 
+ * 
+ * Sample code for parsing from file:
+ * @code
+ *      RXmlEngDOMImplementation domImpl;
+ *      domImpl.OpenL();              ///< opening DOM implementation object 
+ *      RXmlEngDOMParser parser;
+ *      parser.Open( domImpl );   ///< opening parser object
+ *      RXmlEngDocument iDoc;
+ *      iDoc =parser.ParseFileL( aFileName );   ///< parsing from file  
+ *      iDoc.Close();               ///< closing all openend objects
+ *      parser.Close();
+ *      domImpl.Close();
+ * @endcode 
+ * 
+ * @lib XmlEngineDOM.lib
+ * @since S60 v3.1
+ */
+class RXmlEngDOMParser
+{
+public:
+    /**
+     * Default constructor
+     */
+    IMPORT_C RXmlEngDOMParser();
+	
+    /** 
+     * Opens the parser.
+     *
+	 * @since S60 v3.2
+	 * @param aDOMImpl DOM implementation object
+     * @return KErrNone if succeed.
+     */
+    IMPORT_C TInt Open(RXmlEngDOMImplementation& aDOMImpl);
+    
+    /** 
+     * Closes the parser.
+     *
+	 * @since S60 v3.2
+	 */
+    IMPORT_C void Close();
+
+    /** 
+     * Parses chunk of XML data from memory buffer and builds DOM RXmlEngDocument.
+     *
+     * @since S60 v3.2
+     * @param aBuffer XML data buffer
+     * 
+     * @leave KXmlEngErrParsing or one of general codes (e.g. KErrNoMemory)
+     */
+    IMPORT_C void ParseChunkL(const TDesC8& aBuffer);
+    /** 
+     * Creates document from parsed chunks of data.
+     * Should be called after parsing of allchunks.
+     * Ownership over returned RXmlEngDocument object is transferred to the caller of the method.
+     *
+     * @since S60 v3.2
+     * @return RXmlEngDocument created document.
+     * 
+     * @leave KXmlEngErrParsing or one of general codes (e.g. KErrNoMemory)
+     */
+    IMPORT_C RXmlEngDocument FinishL();
+    
+    /** 
+     * Parses XML file and builds DOM RXmlEngDocument
+     *
+     * @since S60 v3.2
+	 * @param aRFs File server session
+     * @param aFileName File name
+     * @param aChunkSize Size of chunk (if 0 chunks won't be used)
+     * @return Document handle
+     * 
+     * @leave KXmlEngErrParsing or one of general codes (e.g. KErrNoMemory)
+	 */
+    IMPORT_C RXmlEngDocument ParseFileL(RFs &aRFs, const TDesC& aFileName, TUint aChunkSize = 0);
+
+    /** 
+     * Parses XML file and builds DOM RXmlEngDocument
+     *
+     * @since S60 v3.2
+	 * @param aFileName File name
+     * @param aChunkSize Size of chunk (if 0 chunks won't be used)
+     * @return Document handle
+     * 
+     * @leave KXmlEngErrParsing or one of general codes (e.g. KErrNoMemory)
+     */
+    IMPORT_C RXmlEngDocument ParseFileL(const TDesC& aFileName, TUint aChunkSize = 0);
+
+    /** 
+     * Parses XML data from memory buffer and builds DOM RXmlEngDocument without chunks
+     *
+	 * @since S60 v3.1
+	 * @param aBuffer XML data buffer
+     * @return Document handle
+     * 
+     * @leave KXmlEngErrParsing code (besides system I/O error codes)
+     */
+    IMPORT_C RXmlEngDocument ParseL(const TDesC8& aBuffer);  
+
+    /** 
+     * Return last parsing error code. 
+     *
+     * @since S60 v3.2
+	 * @return positive number
+     *
+     * @note Error codes are positive numbers. User can find them
+     *         in XmlEngDErrors.h
+     */
+    IMPORT_C TInt GetLastParsingError();
+private:
+    /** 
+     * Parses XML file and builds DOM RXmlEngDocument without usage of chunks
+     *
+     * @param aRFs File server session
+     * @param aFileName File name
+     * @return Document handle
+     * 
+     * @leave KXmlEngErrParsing code (besides system I/O error codes)
+	 */
+    RXmlEngDocument ParseFileWithoutChunksL(RFs& aRFs, const TDesC& aFileName);
+
+    /** 
+     * Cleanup internal data.
+     *
+     * @since S60 v3.2
+     */
+    void Cleanup();
+private:
+    void* iInternal;
+    TInt iError;
+    RXmlEngDOMImplementation* iImpl;
+};
+
+
+
+#endif /* XMLENGINE_DOMPARSER_H_INCLUDED */