connectivitymodules/SeCon/wbxml/conmlhandler/src/sconconmldtd.cpp
branchRCL_3
changeset 20 4a793f564d72
parent 0 d0791faffa3f
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/connectivitymodules/SeCon/wbxml/conmlhandler/src/sconconmldtd.cpp	Wed Sep 01 12:20:56 2010 +0100
@@ -0,0 +1,1783 @@
+/*
+* Copyright (c) 2005-2008 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description:  ConML parser/generator
+*
+*/
+
+
+#include "sconconmldtd.h"
+#include "sconconmltags.h"
+#include "sconconmlhandler.h"
+#include "sconconmlhandlererror.h"
+#include "debug.h"
+
+// -----------------------------------------------------------------------------
+// Macros
+// -----------------------------------------------------------------------------
+#define CHECK_NO_DUPLICATE(a) if( a ) { User::Leave( KWBXMLParserErrorinvalidDocument ); }
+
+// -----------------------------------------------------------------------------
+// pcdata_s
+// -----------------------------------------------------------------------------
+pcdata_s::pcdata_s( const pcdataType_t aType, const pcdataExtension_t aExt )
+	: contentType(aType), extension(aExt)
+    {
+    }
+
+pcdata_s::pcdata_s() : contentType(SML_PCDATA_OPAQUE), 
+                       extension(SML_EXT_UNDEFINED)
+    {
+    }
+
+pcdata_s::~pcdata_s()
+    {
+    FreeContent();
+    }
+
+void pcdata_s::FreeContent()
+    {
+    User::Free(content);
+    content = 0;
+    }
+
+void pcdata_s::SetDataL( const TDesC8& aData )
+    {
+    FreeContent();
+    length = aData.Length();
+    content = User::AllocL(length);
+    Mem::Copy(content, aData.Ptr(), length);
+    }
+
+TPtrC8 pcdata_s::Data() const
+    {
+    return TPtrC8((TUint8*)content, length);
+    }
+
+void pcdata_s::TruncateL( TInt aConsumed )
+    {
+    HBufC8* buffer = TPtrC8((TUint8*)content + aConsumed, 
+                             length - aConsumed).AllocLC();
+    SetDataL(*buffer);
+    CleanupStack::PopAndDestroy(); // buffer
+    }
+
+pcdata_list_s::pcdata_list_s()
+    {
+    }
+
+pcdata_list_s::~pcdata_list_s()
+    {
+    delete data;
+    delete next;
+    }
+
+// -----------------------------------------------------------------------------
+// AddDriveL
+// -----------------------------------------------------------------------------
+CXMLElement* AddDriveL(  ConML_DriveListPtr_t* aList )
+    {
+    ConML_DriveListPtr_t itemL = new ( ELeave ) ConML_DriveList_t();
+    CleanupStack::PushL( itemL );
+    itemL->data = new ( ELeave ) ConML_Drive_t();
+    GenericListAddL(aList, itemL);
+    CleanupStack::Pop(); // itemL
+    return itemL->data;
+    }
+
+// -----------------------------------------------------------------------------
+// AddSIDL
+// -----------------------------------------------------------------------------
+CXMLElement* AddSIDL( ConML_SIDListPtr_t * aList )
+    {
+    ConML_SIDListPtr_t itemL = new ( ELeave ) ConML_SIDList_t();
+    CleanupStack::PushL( itemL );
+    itemL->data = new ( ELeave ) ConML_SID_t();
+    GenericListAddL(aList, itemL);
+    CleanupStack::Pop(); // itemL
+    return itemL->data;
+    }
+		
+// -----------------------------------------------------------------------------
+// AddFileL
+// -----------------------------------------------------------------------------
+CXMLElement* AddFileL( ConML_FileListPtr_t * aList )
+    {
+    ConML_FileListPtr_t itemL = new ( ELeave ) ConML_FileList_t();
+    CleanupStack::PushL( itemL );
+    itemL->data = new ( ELeave ) ConML_File_t();
+    GenericListAddL(aList, itemL);
+    CleanupStack::Pop(); // itemL
+    return itemL->data;
+    }
+
+// -----------------------------------------------------------------------------
+// AddApplicationL
+// -----------------------------------------------------------------------------
+CXMLElement* AddApplicationL( ConML_ApplicationListPtr_t * aList )
+    {   
+    ConML_ApplicationListPtr_t itemL = new ( ELeave ) ConML_ApplicationList_t();
+    CleanupStack::PushL( itemL );
+    itemL->data = new ( ELeave ) ConML_Application_t();
+    GenericListAddL(aList, itemL);
+    CleanupStack::Pop(); // itemL
+    return itemL->data;
+    }
+
+// -----------------------------------------------------------------------------
+// AddTaskL
+// -----------------------------------------------------------------------------
+CXMLElement* AddTaskL( ConML_TaskListPtr_t * aList )
+    {
+    ConML_TaskListPtr_t itemL = new ( ELeave ) ConML_TaskList_t();
+    CleanupStack::PushL( itemL );
+    itemL->data = new ( ELeave ) ConML_Task_t();
+    GenericListAddL(aList, itemL);
+    CleanupStack::Pop(); // itemL
+    return itemL->data;
+    }
+	
+// -----------------------------------------------------------------------------
+// AddParamL
+// -----------------------------------------------------------------------------
+CXMLElement* AddParamL( ConML_ParamListPtr_t * aList )
+    {
+    ConML_ParamListPtr_t itemL = new ( ELeave ) ConML_ParamList_t();
+    CleanupStack::PushL( itemL );
+    itemL->data = new ( ELeave ) ConML_Param_t();
+    GenericListAddL(aList, itemL);
+    CleanupStack::Pop(); // itemL
+    return itemL->data;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_Drive_s
+// -----------------------------------------------------------------------------
+ConML_Drive_s::ConML_Drive_s()
+    {
+    }
+
+ConML_Drive_s::~ConML_Drive_s()
+    {
+    delete name;
+    }
+
+CXMLElement* ConML_Drive_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
+    {
+    switch ( aTag )
+        {
+        case EConMLName:
+            CHECK_NO_DUPLICATE ( name );
+            name = new ( ELeave ) pcdata_t();
+            return name;
+				
+        default:
+            LOGGER_WRITE_1( "ConML_Drive_s::BeginElement() : Unknown element  %02x", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_DriveList_s
+// -----------------------------------------------------------------------------
+ConML_DriveList_s::ConML_DriveList_s()	
+    {
+    }
+
+ConML_DriveList_s::~ConML_DriveList_s()	
+    {
+    delete data;
+    delete next;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_Drives_s
+// -----------------------------------------------------------------------------
+ConML_Drives_s::ConML_Drives_s()
+    {
+    }
+	
+ConML_Drives_s::~ConML_Drives_s()
+    {
+    delete drive;
+    }
+	
+CXMLElement* ConML_Drives_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
+    {
+    switch ( aTag )
+        {
+        case EConMLDrive:
+            return AddDriveL ( &drive );
+	
+        default:
+            LOGGER_WRITE_1( "ConML_Drives_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_BUROptions_s
+// -----------------------------------------------------------------------------
+ConML_BUROptions_s::ConML_BUROptions_s()
+    {
+    }
+
+ConML_BUROptions_s::~ConML_BUROptions_s()
+    {
+    delete requiresReboot;
+    delete hasFiles;
+    delete supportsInc;
+    delete delayToPrepareData;
+    }
+
+CXMLElement* ConML_BUROptions_s::BeginElementL ( 
+        TUint8 aTag, const TXMLElementParams& /*aParams*/ )
+    {
+    switch ( aTag )
+        {
+        case EConMLRequiresReboot:
+            CHECK_NO_DUPLICATE ( requiresReboot );
+            requiresReboot = new ( ELeave ) pcdata_t();
+            return requiresReboot;
+		
+        case EConMLHasFiles:
+            CHECK_NO_DUPLICATE ( hasFiles );
+            hasFiles = new ( ELeave ) pcdata_t();
+            return hasFiles;
+			
+        case EConMLSupportsInc:
+            CHECK_NO_DUPLICATE ( supportsInc );
+            supportsInc = new ( ELeave ) pcdata_t();
+            return supportsInc;
+		
+        case EConMLDelayToPrepareData:
+            CHECK_NO_DUPLICATE ( delayToPrepareData );
+            delayToPrepareData = new ( ELeave ) pcdata_t();
+            return delayToPrepareData;
+				
+        default:
+            LOGGER_WRITE_1( "ConML_BUROptions_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_PackageInfo_s
+// -----------------------------------------------------------------------------
+ConML_PackageInfo_s::ConML_PackageInfo_s()
+    {
+    }
+
+ConML_PackageInfo_s::~ConML_PackageInfo_s()
+    {
+    delete name;
+    }
+
+CXMLElement* ConML_PackageInfo_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLName:
+            CHECK_NO_DUPLICATE ( name )
+            name = new ( ELeave ) pcdata_t();
+            return name;
+								
+        default:
+            LOGGER_WRITE_1( "ConML_PackageInfo_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+
+// -----------------------------------------------------------------------------
+// ConML_SID_s
+// -----------------------------------------------------------------------------
+ConML_SID_s::ConML_SID_s()
+    {
+    }
+
+ConML_SID_s::~ConML_SID_s()
+    {
+    delete type;
+    delete uid;
+    delete drives;
+    delete packageInfo;
+    delete burOptions;
+    delete size;
+    delete transferDataType;
+    delete data;
+    delete moreData;
+    delete dataOwnerStatus;
+    }
+
+CXMLElement* ConML_SID_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLType:
+            CHECK_NO_DUPLICATE ( type );
+            type = new ( ELeave ) pcdata_t();
+            return type;
+		
+        case EConMLUID:
+            CHECK_NO_DUPLICATE ( uid )
+            uid = new ( ELeave ) pcdata_t();
+            return uid;
+		
+        case EConMLDrives:
+            drives = new ( ELeave ) ConML_Drives_t();
+            return drives;
+		
+        case EConMLPackageInfo:
+            CHECK_NO_DUPLICATE ( packageInfo );
+            packageInfo = new ( ELeave ) ConML_PackageInfo_t();
+            return packageInfo;
+		
+        case EConMLBUROptions:
+            CHECK_NO_DUPLICATE ( burOptions )
+            burOptions = new ( ELeave )	ConML_BUROptions_t();
+            return burOptions;
+			
+        case EConMLSize:
+            CHECK_NO_DUPLICATE ( size );
+            size = new ( ELeave ) pcdata_t();
+            return size;
+		
+        case EConMLTransferDataType:
+            CHECK_NO_DUPLICATE ( transferDataType );
+            transferDataType = new ( ELeave ) pcdata_t();
+            return transferDataType;
+		
+        case EConMLData:
+            CHECK_NO_DUPLICATE ( data );
+            data = new ( ELeave ) pcdata_t();
+            return data;
+		
+        case EConMLMoreData:
+            CHECK_NO_DUPLICATE ( moreData );
+            moreData = new ( ELeave ) pcdata_t();
+            return moreData;
+		
+        case EConMLDataOwnerStatus:
+            CHECK_NO_DUPLICATE ( dataOwnerStatus );
+            dataOwnerStatus = new ( ELeave ) pcdata_t();
+            return dataOwnerStatus;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_SID_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_SIDList_s
+// -----------------------------------------------------------------------------
+ConML_SIDList_s::ConML_SIDList_s()
+    {
+    }
+	
+ConML_SIDList_s::~ConML_SIDList_s()
+    {
+    delete data;
+    delete next;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_DataOwners_s
+// -----------------------------------------------------------------------------
+ConML_DataOwners_s::ConML_DataOwners_s()
+    {
+    }
+
+ConML_DataOwners_s::~ConML_DataOwners_s()
+    {
+    delete sid;
+    }
+
+CXMLElement* ConML_DataOwners_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLSID:
+            return AddSIDL( &sid );
+				
+        default:
+            LOGGER_WRITE_1( "ConML_DataOwners_s::BeginElement()\
+             : Unknown element  %02x ", aTag);
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_Application_s
+// -----------------------------------------------------------------------------
+ConML_Application_s::ConML_Application_s()
+    {
+    }
+	
+ConML_Application_s::~ConML_Application_s()
+    {
+    delete name;
+    delete uid;
+    }
+
+CXMLElement* ConML_Application_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+    	{
+    	case EConMLName:
+            CHECK_NO_DUPLICATE ( name );
+            name = new ( ELeave ) pcdata_t();
+            return name;
+		
+        case EConMLUID:
+            CHECK_NO_DUPLICATE ( uid );
+            uid = new ( ELeave ) pcdata_t();
+            return uid;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_Application_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_ApplicationList_s
+// -----------------------------------------------------------------------------
+ConML_ApplicationList_s::ConML_ApplicationList_s()
+    {
+    }
+
+ConML_ApplicationList_s::~ConML_ApplicationList_s()
+    {
+    delete data;
+    delete next;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_Applications_s
+// -----------------------------------------------------------------------------
+ConML_Applications_s::ConML_Applications_s()	
+    {
+    }
+
+ConML_Applications_s::~ConML_Applications_s()	
+    {
+    delete application;
+    }
+	
+CXMLElement* ConML_Applications_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLApplication:
+            return AddApplicationL( &application );
+				
+        default:
+            LOGGER_WRITE_1( "ConML_DataOwners_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_SupportedMethod_s
+// -----------------------------------------------------------------------------
+ConML_SupportedMethods_s::ConML_SupportedMethods_s()
+    {
+    }
+
+ConML_SupportedMethods_s::~ConML_SupportedMethods_s()
+    {
+    delete install;
+    delete unInstall;
+    delete setInstParams;
+    delete listInstalledApps;
+    delete listDataOwners;
+    delete setBurMode;
+    delete getDataSize;
+    delete requestData;
+    delete supplyData;
+    delete reboot;
+    }
+
+CXMLElement* ConML_SupportedMethods_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
+    {
+    switch ( aTag )
+        {
+        case EConMLInstall:
+            CHECK_NO_DUPLICATE ( install );
+            install = new ( ELeave ) pcdata_t();
+            return install;
+		
+        case EConMLUnInstall:
+            CHECK_NO_DUPLICATE ( unInstall );
+            unInstall = new ( ELeave ) pcdata_t();
+            return unInstall;
+	
+        case EConMLListInstalledApps:
+            CHECK_NO_DUPLICATE ( listInstalledApps );
+            listInstalledApps = new ( ELeave ) pcdata_t();
+            return listInstalledApps;
+		
+        case EConMLListDataOwners:
+            CHECK_NO_DUPLICATE ( listDataOwners );
+            listDataOwners = new ( ELeave ) pcdata_t();
+            return listDataOwners;
+		
+        case EConMLSetBURMode:
+            CHECK_NO_DUPLICATE ( setBurMode );
+            setBurMode = new ( ELeave ) pcdata_t();
+            return setBurMode;
+		
+        case EConMLGetDataSize:
+            CHECK_NO_DUPLICATE ( getDataSize );
+            getDataSize = new ( ELeave ) pcdata_t();
+            return getDataSize;
+		
+        case EConMLRequestData:
+            CHECK_NO_DUPLICATE ( requestData );
+            requestData = new ( ELeave ) pcdata_t();
+            return requestData;
+		
+        case EConMLSupplyData:
+            CHECK_NO_DUPLICATE (supplyData );
+            supplyData = new ( ELeave ) pcdata_t();
+            return supplyData;
+		
+        case EConMLReboot:
+            CHECK_NO_DUPLICATE ( reboot );
+            reboot = new ( ELeave ) pcdata_t();
+            return reboot;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_SupportedMethods_s::\
+            BeginElement() : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_DeviceInfo_s
+// -----------------------------------------------------------------------------
+ConML_DeviceInfo_s::ConML_DeviceInfo_s()
+    {
+    }
+
+ConML_DeviceInfo_s::~ConML_DeviceInfo_s()
+    {
+    delete version;
+    delete supportedMethods;
+    delete maxObjectSize;
+    }
+
+CXMLElement* ConML_DeviceInfo_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLVersion:
+            CHECK_NO_DUPLICATE (version);
+            version = new ( ELeave ) pcdata_t();
+            return version;
+		
+        case EConMLSupportedMethods:
+            CHECK_NO_DUPLICATE ( supportedMethods);
+            supportedMethods = new ( ELeave ) ConML_SupportedMethods_t();
+            return supportedMethods;
+		
+        case EConMLMaxObjectSize:
+            CHECK_NO_DUPLICATE ( maxObjectSize );
+            maxObjectSize = new ( ELeave ) pcdata_t();
+            return maxObjectSize;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_DeviceInfo_s::BeginElement()\
+             : Unknown element %d", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_DeviceInfo_s
+// -----------------------------------------------------------------------------
+ConML_File_s::ConML_File_s()	
+    {
+    }
+
+ConML_File_s::~ConML_File_s()	
+    {
+    delete name;
+    delete modified;
+    delete size;
+    delete userPerm;
+    }
+
+CXMLElement* ConML_File_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLName:
+            CHECK_NO_DUPLICATE ( name );
+            name = new ( ELeave ) pcdata_t();
+            return name;
+		
+        case EConMLModified:
+            CHECK_NO_DUPLICATE ( modified );
+            modified = new ( ELeave ) pcdata_t();
+            return modified;
+		
+        case EConMLSize:
+            CHECK_NO_DUPLICATE ( size );
+            size = new ( ELeave ) pcdata_t();
+            return size;
+		
+        case EConMLUserPerm:
+            CHECK_NO_DUPLICATE ( userPerm );
+            userPerm = new ( ELeave ) pcdata_t();
+            return userPerm;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_File_s::BeginElement()\
+             : Unknown element %d", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_FileList_s
+// -----------------------------------------------------------------------------
+ConML_FileList_s::ConML_FileList_s()
+    {
+    }
+	
+ConML_FileList_s::~ConML_FileList_s()
+    {
+    delete data;
+    delete next;
+    }	
+
+// -----------------------------------------------------------------------------
+// ConML_Files_s
+// -----------------------------------------------------------------------------
+ConML_Files_s::ConML_Files_s()
+    {
+    }
+
+ConML_Files_s::~ConML_Files_s()
+    {
+    delete file;
+    }
+
+CXMLElement* ConML_Files_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLFile:
+            return AddFileL( &file );
+		
+        default:
+            LOGGER_WRITE_1( "ConML_File_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_Progress_s
+// -----------------------------------------------------------------------------
+ConML_Progress_s::ConML_Progress_s()
+    {
+    }
+	
+// -----------------------------------------------------------------------------
+// ~ConML_Progress_s
+// -----------------------------------------------------------------------------
+ConML_Progress_s::~ConML_Progress_s()
+    {
+    delete value;
+    }
+	
+CXMLElement* ConML_Progress_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLValue:
+            CHECK_NO_DUPLICATE ( value );
+            value = new ( ELeave ) pcdata_t();
+            return value;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_Progress_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_Results_s
+// -----------------------------------------------------------------------------
+ConML_Results_s::ConML_Results_s()
+    {
+    }
+
+ConML_Results_s::~ConML_Results_s()
+    {
+    delete complete;
+    delete progress;
+    delete applications;
+    delete dataOwners;
+    delete filename;
+    delete moreData;
+    delete data;
+    delete deviceInfo;
+    delete files;
+    }
+
+CXMLElement* ConML_Results_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+    {
+        case EConMLComplete:
+            CHECK_NO_DUPLICATE ( complete );
+            complete = new ( ELeave ) pcdata_t();
+            return complete;
+		
+        case EConMLProgress:
+            CHECK_NO_DUPLICATE ( progress );
+            progress = new ( ELeave ) ConML_Progress_t();
+            return progress;
+		
+        case EConMLApplications:
+            CHECK_NO_DUPLICATE ( applications );
+            applications = new ( ELeave ) ConML_Applications_t();
+            return applications;
+		
+        case EConMLDataOwners:
+            CHECK_NO_DUPLICATE ( dataOwners );
+            dataOwners = new ( ELeave ) ConML_DataOwners_t();
+            return dataOwners;
+		
+        case EConMLMoreData:
+            CHECK_NO_DUPLICATE ( moreData );
+            moreData = new ( ELeave ) pcdata_t();
+            return moreData;
+		
+        case EConMLData:
+            CHECK_NO_DUPLICATE ( data );
+            data = new ( ELeave ) pcdata_t();
+            return data;
+		
+        case EConMLDeviceInfo:
+            CHECK_NO_DUPLICATE ( deviceInfo )
+            deviceInfo = new ( ELeave ) ConML_DeviceInfo_t();
+            return deviceInfo;
+		
+        case EConMLFiles:
+            CHECK_NO_DUPLICATE ( files )
+            files = new ( ELeave ) ConML_Files_t();
+            return files;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_Results_s::BeginElement()\
+             : Unknown element  %02x ", aTag);
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_Param_s
+// -----------------------------------------------------------------------------
+ConML_Param_s::ConML_Param_s()
+    {
+    }
+	
+ConML_Param_s::~ConML_Param_s()
+    {
+    delete name;
+    delete value;
+    }
+	
+CXMLElement* ConML_Param_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLName:
+            CHECK_NO_DUPLICATE ( name );
+            name = new ( ELeave ) pcdata_t();
+            return name;
+		
+        case EConMLValue:
+            CHECK_NO_DUPLICATE ( value );
+            value = new ( ELeave ) pcdata_t();
+            return value;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_Param_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_ParamList_s
+// -----------------------------------------------------------------------------
+ConML_ParamList_s::ConML_ParamList_s()
+    {
+    }
+
+ConML_ParamList_s::~ConML_ParamList_s()
+    {
+    delete data;
+    delete next;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_InstParams_s
+// -----------------------------------------------------------------------------
+ConML_InstParams_s::ConML_InstParams_s()
+    {
+    }
+
+ConML_InstParams_s::~ConML_InstParams_s()
+    {
+    delete param;
+    }
+	
+CXMLElement* ConML_InstParams_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLParam:
+            return AddParamL( &param );
+			
+        default:
+            LOGGER_WRITE_1( "ConML_InstParams_s::BeginElement()\
+             : Unknown element  %02x ", aTag);
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_UnInstall_s
+// -----------------------------------------------------------------------------
+ConML_UnInstall_s::ConML_UnInstall_s()
+    {
+    }
+
+ConML_UnInstall_s::~ConML_UnInstall_s()
+    {
+    delete applications;
+    delete instParams;
+    delete results;
+    }
+
+CXMLElement* ConML_UnInstall_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLApplications:
+            CHECK_NO_DUPLICATE ( applications );
+            applications = new ( ELeave ) ConML_Applications_t();
+            return applications;
+		
+        case EConMLInstParams:
+            CHECK_NO_DUPLICATE ( instParams );
+            instParams = new ( ELeave ) ConML_InstParams_t();
+            return instParams;
+				
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_UnInstall_s::BeginElement()\
+             : Unknown element  %02x ", aTag);
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+
+// -----------------------------------------------------------------------------
+// ConML_ListDataOwners_s
+// -----------------------------------------------------------------------------
+ConML_ListDataOwners_s::ConML_ListDataOwners_s()
+    {
+    }
+
+ConML_ListDataOwners_s::~ConML_ListDataOwners_s()
+    {
+    delete results;
+    }
+
+CXMLElement* ConML_ListDataOwners_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_ListDataOwners_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_Install_s
+// -----------------------------------------------------------------------------
+ConML_Install_s::ConML_Install_s()
+    {
+    }
+
+ConML_Install_s::~ConML_Install_s()
+    {
+    delete name;
+    delete instParams;
+    delete results;
+    }
+
+CXMLElement* ConML_Install_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLName:
+            CHECK_NO_DUPLICATE ( name );
+            name = new ( ELeave ) pcdata_t();
+            return name;
+			
+        case EConMLInstParams:
+            CHECK_NO_DUPLICATE ( instParams );
+            instParams = new ( ELeave ) ConML_InstParams_t();
+            return instParams;
+		
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_Install_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_ListInstalledApps
+// -----------------------------------------------------------------------------
+ConML_ListInstalledApps_s::ConML_ListInstalledApps_s()
+    {
+    }
+
+ConML_ListInstalledApps_s::~ConML_ListInstalledApps_s()
+    {
+    delete drives;
+    delete all;
+    delete results;
+    }
+
+CXMLElement* ConML_ListInstalledApps_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLDrives:
+            CHECK_NO_DUPLICATE ( drives );
+            drives = new ( ELeave ) ConML_Drives_t();
+            return drives;
+		
+        case EConMLAll:
+            CHECK_NO_DUPLICATE ( all );
+            all = new ( ELeave ) pcdata_t();
+            return all;
+		
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_ListInstalledApps_s::\
+            BeginElement() : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_SetBURMode_s
+// -----------------------------------------------------------------------------
+ConML_SetBURMode_s::ConML_SetBURMode_s()
+    {
+    }
+
+ConML_SetBURMode_s::~ConML_SetBURMode_s()
+    {
+    delete drives;
+    delete partialType;
+    delete incType;
+    delete results;
+    }
+
+CXMLElement* ConML_SetBURMode_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLDrives:
+            drives = new ( ELeave ) ConML_Drives_t();
+            return drives;
+		
+        case EConMLPartialType:
+            CHECK_NO_DUPLICATE ( partialType );
+            partialType = new ( ELeave ) pcdata_t();
+            return partialType;
+		
+        case EConMLIncType:
+            CHECK_NO_DUPLICATE ( incType );
+            incType = new ( ELeave ) pcdata_t();
+            return incType;
+		
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_SetBURMode_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+            }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_GetDataSize_s
+// -----------------------------------------------------------------------------
+ConML_GetDataSize_s::ConML_GetDataSize_s()
+    {
+    }
+
+ConML_GetDataSize_s::~ConML_GetDataSize_s()
+    {
+    delete dataOwners;
+    delete results;
+    }
+
+CXMLElement* ConML_GetDataSize_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLDataOwners:
+            CHECK_NO_DUPLICATE ( dataOwners );
+            dataOwners = new ( ELeave ) ConML_DataOwners_t();
+            return dataOwners;
+		
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+	
+        default:
+            LOGGER_WRITE_1( "ConML_GetDataSize_s::BeginElement()\
+             : Unknown element  %02x ", aTag);
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }	
+	
+// -----------------------------------------------------------------------------
+// ConML_RequestData_s
+// -----------------------------------------------------------------------------
+ConML_RequestData_s::ConML_RequestData_s()
+    {
+    }
+
+ConML_RequestData_s::~ConML_RequestData_s()
+    {
+    delete sid;
+    delete results;
+    }
+
+CXMLElement* ConML_RequestData_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLSID:
+            return AddSIDL( &sid );
+		
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_RequestData_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_UpdateDeviceInfo_s
+// -----------------------------------------------------------------------------
+ConML_UpdateDeviceInfo_s::ConML_UpdateDeviceInfo_s()
+    {
+    }
+
+ConML_UpdateDeviceInfo_s::~ConML_UpdateDeviceInfo_s()
+    {
+    delete deviceInfo;
+    delete results;
+    }
+
+CXMLElement* ConML_UpdateDeviceInfo_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLDeviceInfo:
+            CHECK_NO_DUPLICATE ( deviceInfo )
+            deviceInfo = new ( ELeave ) ConML_DeviceInfo_t();
+            return deviceInfo;
+		
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results )
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_UpdateDeviceInfo_s::\
+            BeginElement() : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_ListPublicFiles_s
+// -----------------------------------------------------------------------------
+ConML_ListPublicFiles_s::ConML_ListPublicFiles_s()
+    {
+    }
+
+ConML_ListPublicFiles_s::~ConML_ListPublicFiles_s()
+    {
+    delete results;
+    delete sid;
+    }
+
+CXMLElement* ConML_ListPublicFiles_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        case EConMLSID:
+            return AddSIDL ( &sid );
+	
+        default:
+            LOGGER_WRITE_1( "ConML_ListPublicFiles_s::\
+            BeginElement() : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_Task_s
+// -----------------------------------------------------------------------------
+ConML_GetDataOwnerStatus_s::ConML_GetDataOwnerStatus_s()
+    {
+    }
+
+ConML_GetDataOwnerStatus_s::~ConML_GetDataOwnerStatus_s()
+    {
+    delete dataOwners;
+    delete results;
+    }
+    
+CXMLElement* ConML_GetDataOwnerStatus_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
+    {   
+    switch ( aTag )
+        {
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        case EConMLDataOwners:
+            CHECK_NO_DUPLICATE ( dataOwners );
+            dataOwners = new ( ELeave ) ConML_DataOwners_t();
+            return dataOwners;
+
+        default:
+            LOGGER_WRITE_1( "ConML_GetDataOwnerStatus_s::\
+            BeginElement() : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_GetMetadata_s
+// -----------------------------------------------------------------------------
+ConML_GetMetadata_s::ConML_GetMetadata_s()
+    {
+    }
+
+ConML_GetMetadata_s::~ConML_GetMetadata_s()
+    {
+    delete filename;
+    delete results;
+    }
+    
+CXMLElement* ConML_GetMetadata_s::BeginElementL(
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
+    {   
+    switch ( aTag )
+        {
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        case EConMLFilename:
+            CHECK_NO_DUPLICATE ( filename );
+            filename = new ( ELeave ) pcdata_t();
+            return filename;
+
+        default:
+            LOGGER_WRITE_1( "ConML_GetMetadata_s::\
+            BeginElement() : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+	
+// -----------------------------------------------------------------------------
+// ConML_Reboot_s
+// -----------------------------------------------------------------------------
+ConML_Reboot_s::ConML_Reboot_s()
+    {
+    }
+
+ConML_Reboot_s::~ConML_Reboot_s()
+    {
+    delete results;
+    }
+
+CXMLElement* ConML_Reboot_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
+    {
+    switch ( aTag )
+        {
+        case EConMLResults:
+            CHECK_NO_DUPLICATE ( results );
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_Reboot_s::BeginElementL()\
+             : Unknown element %d ", aTag );
+            User::Leave ( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_Task_s
+// -----------------------------------------------------------------------------
+ConML_Task_s::ConML_Task_s()
+    {
+    }
+
+ConML_Task_s::~ConML_Task_s()
+    {
+    delete id;
+    delete install;
+    delete unInstall;
+    delete listInstalledApps;
+    delete listDataOwners;
+    delete setBurMode;
+    delete getDataSize;
+    delete requestData;
+    delete updateDeviceInfo;
+    delete listPublicFiles;
+    delete getDataOwnerStatus;
+    delete supplyData;
+    delete reboot;
+    delete getMetadata;
+    }
+
+CXMLElement* ConML_Task_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLID:
+            CHECK_NO_DUPLICATE ( id )
+            id = new ( ELeave ) pcdata_t();
+            return id;
+		
+        case EConMLInstall:
+            CHECK_NO_DUPLICATE ( install );
+            install = new ( ELeave ) ConML_Install_t();
+            return install;
+		
+        case EConMLUnInstall:
+            CHECK_NO_DUPLICATE ( unInstall );
+            unInstall = new ( ELeave ) ConML_UnInstall_t();
+            return unInstall;
+		
+        case EConMLListInstalledApps:
+            CHECK_NO_DUPLICATE ( listInstalledApps );
+            listInstalledApps = new ( ELeave ) ConML_ListInstalledApps_t();
+            return listInstalledApps;
+		
+        case EConMLListDataOwners:
+            CHECK_NO_DUPLICATE ( listDataOwners );
+            listDataOwners = new ( ELeave ) ConML_ListDataOwners_t();
+            return listDataOwners;
+		
+        case EConMLSetBURMode:
+            CHECK_NO_DUPLICATE ( setBurMode );
+            setBurMode = new ( ELeave ) ConML_SetBURMode_t();
+            return setBurMode;
+		
+        case EConMLGetDataSize:
+            CHECK_NO_DUPLICATE ( getDataSize );
+            getDataSize = new ( ELeave ) ConML_GetDataSize_t();
+            return getDataSize;
+		
+        case EConMLRequestData:
+            CHECK_NO_DUPLICATE ( requestData )
+            requestData = new ( ELeave ) ConML_RequestData_t();
+            return requestData;
+		
+        case EConMLUpdateDeviceInfo:
+            CHECK_NO_DUPLICATE ( updateDeviceInfo );
+            updateDeviceInfo = new ( ELeave ) ConML_UpdateDeviceInfo_t();
+            return updateDeviceInfo;
+		
+        case EConMLListPublicFiles:
+            CHECK_NO_DUPLICATE ( listPublicFiles );
+            listPublicFiles = new ( ELeave ) ConML_ListPublicFiles_t();
+            return listPublicFiles;
+		
+        case EConMLGetDataOwnerStatus:
+            CHECK_NO_DUPLICATE ( getDataOwnerStatus );
+            getDataOwnerStatus = new ( ELeave ) ConML_GetDataOwnerStatus_t();
+            return getDataOwnerStatus;
+		
+        case EConMLSupplyData:
+            CHECK_NO_DUPLICATE ( supplyData );
+            supplyData = new ( ELeave ) ConML_SupplyData_t();
+            return supplyData;
+		
+        case EConMLReboot:
+            CHECK_NO_DUPLICATE ( reboot );
+            reboot = new ( ELeave ) ConML_Reboot_t();
+            return reboot;
+        case EConMLGetMetadata:
+            CHECK_NO_DUPLICATE ( getMetadata );
+            getMetadata = new ( ELeave ) ConML_GetMetadata_t();
+            return getMetadata;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_Task_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_TaskList_s
+// -----------------------------------------------------------------------------
+ConML_TaskList_s::ConML_TaskList_s()
+    {
+    }
+	
+ConML_TaskList_s::~ConML_TaskList_s()
+    {
+    delete data;
+    delete next;
+    }	
+
+// -----------------------------------------------------------------------------
+// ConML_Status_s
+// -----------------------------------------------------------------------------
+ConML_Status_s::ConML_Status_s()
+    {
+    }
+	
+ConML_Status_s::~ConML_Status_s()
+    {
+    delete task;
+    }
+
+CXMLElement* ConML_Status_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLTask:
+            return AddTaskL( &task );
+				
+        default:
+            LOGGER_WRITE_1( "ConML_Status_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_Cancel_s
+// -----------------------------------------------------------------------------
+ConML_Cancel_s::ConML_Cancel_s()
+    {
+    }
+
+ConML_Cancel_s::~ConML_Cancel_s()
+    {
+    delete id;
+    delete all;
+    }
+
+CXMLElement* ConML_Cancel_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLID:
+            CHECK_NO_DUPLICATE ( id );
+            id = new ( ELeave ) pcdata_t();
+            return id;
+		
+        case EConMLAll:
+            CHECK_NO_DUPLICATE ( all );
+            all = new ( ELeave ) pcdata_t();
+            return all;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_Cancel_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_GetStatus_s
+// -----------------------------------------------------------------------------
+ConML_GetStatus_s::ConML_GetStatus_s()
+    {
+    }
+
+ConML_GetStatus_s::~ConML_GetStatus_s()
+    {
+    delete id;
+    delete all;
+    }
+
+CXMLElement* ConML_GetStatus_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLID:
+        CHECK_NO_DUPLICATE ( id );
+        id = new ( ELeave ) pcdata_t();
+        return id;
+		
+        case EConMLAll:
+            CHECK_NO_DUPLICATE ( all );
+            all = new ( ELeave ) pcdata_t();
+            return all;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_GetStatus_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_SupplyData_s
+// -----------------------------------------------------------------------------
+ConML_SupplyData_s::ConML_SupplyData_s()
+    {
+    }
+
+ConML_SupplyData_s::~ConML_SupplyData_s()
+    {
+    delete sid;
+    delete results;
+    }
+
+CXMLElement* ConML_SupplyData_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    switch ( aTag )
+        {
+        case EConMLSID:
+            return AddSIDL ( &sid );
+		
+        case EConMLResults:
+            results = new ( ELeave ) ConML_Results_t();
+            return results;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_SupplyData_s::BeginElement() :\
+             Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+// -----------------------------------------------------------------------------
+// ConML_Execute_
+// -----------------------------------------------------------------------------
+ConML_Execute_s::ConML_Execute_s()
+    {
+    }
+
+ConML_Execute_s::~ConML_Execute_s()
+    {
+    delete id;
+    delete install;
+    delete unInstall;
+    delete listInstalledApps;
+    delete listDataOwners;
+    delete setBurMode;
+    delete getDataSize;
+    delete requestData;
+    delete updateDeviceInfo;
+    delete listPublicFiles;
+    delete supplyData;
+    delete reboot;
+    delete getDataOwnerStatus;
+    delete getMetadata;
+    }
+
+CXMLElement* ConML_Execute_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )	
+    {
+    
+    switch ( aTag )
+        {
+        case EConMLID:
+            CHECK_NO_DUPLICATE ( id );
+            id = new ( ELeave ) pcdata_t();
+            return id;
+		
+        case EConMLInstall:
+            CHECK_NO_DUPLICATE ( install );
+            install = new ( ELeave ) ConML_Install_t();
+            return install;
+
+        case EConMLUpdateDeviceInfo:
+            CHECK_NO_DUPLICATE (updateDeviceInfo);
+            updateDeviceInfo = new ( ELeave ) ConML_UpdateDeviceInfo_t();
+            return updateDeviceInfo;
+		
+        case EConMLUnInstall:
+            CHECK_NO_DUPLICATE ( unInstall );
+            unInstall = new ( ELeave ) ConML_UnInstall_t();
+            return unInstall;
+			
+        case EConMLListInstalledApps:
+            CHECK_NO_DUPLICATE ( listInstalledApps );
+            listInstalledApps = new ( ELeave ) ConML_ListInstalledApps_t();
+            return listInstalledApps;
+		
+        case EConMLListDataOwners:
+            CHECK_NO_DUPLICATE ( listDataOwners );
+            listDataOwners = new ( ELeave ) ConML_ListDataOwners_t();
+            return listDataOwners;
+		
+        case EConMLSetBURMode:
+            CHECK_NO_DUPLICATE ( setBurMode );
+            setBurMode = new ( ELeave ) ConML_SetBURMode_t();
+            return setBurMode;
+		
+        case EConMLGetDataSize:
+            CHECK_NO_DUPLICATE ( getDataSize );
+            getDataSize = new ( ELeave ) ConML_GetDataSize_t();
+            return getDataSize;
+		
+        case EConMLRequestData:
+            CHECK_NO_DUPLICATE ( requestData );
+            requestData = new ( ELeave ) ConML_RequestData_t();
+            return requestData;
+		
+        case EConMLListPublicFiles:
+            CHECK_NO_DUPLICATE ( listPublicFiles );
+            listPublicFiles = new ( ELeave ) ConML_ListPublicFiles_t();
+            return listPublicFiles;
+		
+        case EConMLSupplyData:
+            CHECK_NO_DUPLICATE ( supplyData );
+            supplyData = new ( ELeave ) ConML_SupplyData_t();
+            return supplyData;
+		
+        case EConMLReboot:
+            CHECK_NO_DUPLICATE ( reboot );
+            reboot = new ( ELeave ) pcdata_t();
+            return reboot;
+		
+        case EConMLGetDataOwnerStatus:
+            CHECK_NO_DUPLICATE ( getDataOwnerStatus );
+            getDataOwnerStatus = new ( ELeave ) ConML_GetDataOwnerStatus_t();
+            return getDataOwnerStatus;
+        
+        case EConMLGetMetadata:
+            CHECK_NO_DUPLICATE ( getMetadata );
+            getMetadata = new ( ELeave ) ConML_GetMetadata_t();
+            return getMetadata;
+		
+        default:
+            LOGGER_WRITE_1( "ConML_Execute_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+	
+// -----------------------------------------------------------------------------
+// ConML_ConML_s
+// -----------------------------------------------------------------------------
+ConML_ConML_s::ConML_ConML_s()
+    {
+    }
+
+ConML_ConML_s::~ConML_ConML_s()
+    {
+    delete execute;
+    delete getStatus;
+    delete cancel;
+    delete status;
+    }
+
+CXMLElement* ConML_ConML_s::BeginElementL( 
+    TUint8 aTag, const TXMLElementParams& /*aParams*/ )
+    {
+    switch( aTag )
+        {
+        case EConMLExecute:
+            CHECK_NO_DUPLICATE( execute );
+            execute = new (ELeave) ConML_Execute_t();
+            return execute;
+		
+        case EConMLGetStatus:
+            CHECK_NO_DUPLICATE ( getStatus );
+            getStatus = new ( ELeave) ConML_GetStatus_t();
+            return getStatus;
+		
+        case EConMLCancel:
+            CHECK_NO_DUPLICATE ( cancel );
+            cancel = new ( ELeave ) ConML_Cancel_t();
+            return cancel;
+		
+        case EConMLStatus:
+            CHECK_NO_DUPLICATE ( status )
+            status = new ( ELeave ) ConML_Status_t();
+            return status;
+			
+        default:
+            LOGGER_WRITE_1( "ConML_ConML_s::BeginElement()\
+             : Unknown element  %02x ", aTag );
+            User::Leave( KWBXMLParserErrorInvalidTag );
+        }
+    return KErrNone;
+    }
+
+CXMLElement::TAction ConML_ConML_s::EndElementL( TAny* aCallbacks, TUint8 aTag )
+    {
+    switch( aTag)
+        {
+        case EConML:
+            ((MWBXMLConMLCallback*) aCallbacks)->ConMLL(this);
+            return EPopAndDestroy;
+				
+        default:
+            return EPop;
+        }
+    }
+
+TBool ConML_ConML_s::NeedsCleanup() const
+    {
+    return ETrue;
+    }
+	
+
+	
+