--- 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 */