Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManage.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManage.cpp	(revision 7465)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManage.cpp	(revision 7466)
@@ -1399,5 +1399,5 @@
                         pszDrv = "Null";
                     break;
-                case AudioDriverType_WINMM:
+                case AudioDriverType_WinMM:
                     if (details == VMINFO_MACHINEREADABLE)
                         pszDrv = "winmm";
@@ -1405,5 +1405,5 @@
                         pszDrv = "WINMM";
                     break;
-                case AudioDriverType_DSOUND:
+                case AudioDriverType_DirectSound:
                     if (details == VMINFO_MACHINEREADABLE)
                         pszDrv = "dsound";
@@ -1429,5 +1429,5 @@
                         pszDrv = "PulseAudio";
                     break;
-                case AudioDriverType_Core:
+                case AudioDriverType_CoreAudio:
                     if (details == VMINFO_MACHINEREADABLE)
                         pszDrv = "coreaudio";
@@ -4892,5 +4892,5 @@
                 else if (strcmp(audio, "winmm") == 0)
                 {
-                    CHECK_ERROR(audioAdapter, COMSETTER(AudioDriver)(AudioDriverType_WINMM));
+                    CHECK_ERROR(audioAdapter, COMSETTER(AudioDriver)(AudioDriverType_WinMM));
                     CHECK_ERROR(audioAdapter, COMSETTER(Enabled)(true));
                 }
@@ -4898,5 +4898,5 @@
                 else if (strcmp(audio, "dsound") == 0)
                 {
-                    CHECK_ERROR(audioAdapter, COMSETTER(AudioDriver)(AudioDriverType_DSOUND));
+                    CHECK_ERROR(audioAdapter, COMSETTER(AudioDriver)(AudioDriverType_DirectSound));
                     CHECK_ERROR(audioAdapter, COMSETTER(Enabled)(true));
                 }
@@ -4926,5 +4926,5 @@
                 else if (strcmp(audio, "coreaudio") == 0)
                 {
-                    CHECK_ERROR(audioAdapter, COMSETTER(AudioDriver)(AudioDriverType_Core));
+                    CHECK_ERROR(audioAdapter, COMSETTER(AudioDriver)(AudioDriverType_CoreAudio));
                     CHECK_ERROR(audioAdapter, COMSETTER(Enabled)(true));
                 }
Index: /trunk/src/VBox/Frontends/VirtualBox/src/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/VBoxGlobal.cpp	(revision 7465)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/VBoxGlobal.cpp	(revision 7466)
@@ -2351,5 +2351,5 @@
     audioDriverTypes [KAudioDriverType_Null] =
         tr ("Null Audio Driver", "AudioDriverType");
-    audioDriverTypes [KAudioDriverType_WINMM] =
+    audioDriverTypes [KAudioDriverType_WinMM] =
         tr ("Windows Multimedia", "AudioDriverType");
     audioDriverTypes [KAudioDriverType_OSS] =
@@ -2357,7 +2357,7 @@
     audioDriverTypes [KAudioDriverType_ALSA] =
         tr ("ALSA Audio Driver", "AudioDriverType");
-    audioDriverTypes [KAudioDriverType_DSOUND] =
+    audioDriverTypes [KAudioDriverType_DirectSound] =
         tr ("Windows DirectSound", "AudioDriverType");
-    audioDriverTypes [KAudioDriverType_Core] =
+    audioDriverTypes [KAudioDriverType_CoreAudio] =
         tr ("CoreAudio", "AudioDriverType");
     audioDriverTypes [KAudioDriverType_Pulse] =
Index: /trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui.h	(revision 7465)
+++ /trunk/src/VBox/Frontends/VirtualBox/ui/VBoxVMSettingsDlg.ui.h	(revision 7466)
@@ -859,7 +859,7 @@
     cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_Null));
 #if defined Q_WS_WIN32
-    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_DSOUND));
+    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_DirectSound));
 # ifdef VBOX_WITH_WINMM
-    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_WINMM));
+    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_WinMM));
 # endif
 #elif defined Q_OS_LINUX
@@ -872,5 +872,5 @@
 # endif
 #elif defined Q_OS_MACX
-    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_Core));
+    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_CoreAudio));
 #endif
 
Index: /trunk/src/VBox/Frontends/VirtualBox4/src/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox4/src/VBoxGlobal.cpp	(revision 7465)
+++ /trunk/src/VBox/Frontends/VirtualBox4/src/VBoxGlobal.cpp	(revision 7466)
@@ -2361,5 +2361,5 @@
     audioDriverTypes [KAudioDriverType_Null] =
         tr ("Null Audio Driver", "AudioDriverType");
-    audioDriverTypes [KAudioDriverType_WINMM] =
+    audioDriverTypes [KAudioDriverType_WinMM] =
         tr ("Windows Multimedia", "AudioDriverType");
     audioDriverTypes [KAudioDriverType_OSS] =
@@ -2367,7 +2367,7 @@
     audioDriverTypes [KAudioDriverType_ALSA] =
         tr ("ALSA Audio Driver", "AudioDriverType");
-    audioDriverTypes [KAudioDriverType_DSOUND] =
+    audioDriverTypes [KAudioDriverType_DirectSound] =
         tr ("Windows DirectSound", "AudioDriverType");
-    audioDriverTypes [KAudioDriverType_Core] =
+    audioDriverTypes [KAudioDriverType_CoreAudio] =
         tr ("CoreAudio", "AudioDriverType");
     audioDriverTypes [KAudioDriverType_Pulse] =
Index: /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsDlg.ui.h
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsDlg.ui.h	(revision 7465)
+++ /trunk/src/VBox/Frontends/VirtualBox4/ui/VBoxVMSettingsDlg.ui.h	(revision 7466)
@@ -875,7 +875,7 @@
     cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_Null));
 #if defined Q_WS_WIN32
-    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_DSOUND));
+    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_DirectSound));
 # ifdef VBOX_WITH_WINMM
-    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_WINMM));
+    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_WinMM));
 # endif
 #elif defined Q_OS_LINUX
@@ -888,5 +888,5 @@
 # endif
 #elif defined Q_OS_MACX
-    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_Core));
+    cbAudioDriver->insertItem (vboxGlobal().toString (KAudioDriverType_CoreAudio));
 #endif
 
Index: /trunk/src/VBox/Main/AudioAdapterImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/AudioAdapterImpl.cpp	(revision 7465)
+++ /trunk/src/VBox/Main/AudioAdapterImpl.cpp	(revision 7466)
@@ -228,7 +228,7 @@
 #ifdef RT_OS_WINDOWS
 # ifdef VBOX_WITH_WINMM
-            case AudioDriverType_WINMM:
-# endif
-            case AudioDriverType_DSOUND:
+            case AudioDriverType_WinMM:
+# endif
+            case AudioDriverType_DirectSound:
 #endif /* RT_OS_WINDOWS */
 #ifdef RT_OS_LINUX
@@ -242,5 +242,5 @@
 #endif /* RT_OS_LINUX */
 #ifdef RT_OS_DARWIN
-            case AudioDriverType_Core:
+            case AudioDriverType_CoreAudio:
 #endif
 #ifdef RT_OS_OS2
@@ -370,21 +370,21 @@
     const char *driver = audioAdapterNode.stringValue ("driver");
     mData->mAudioDriver = AudioDriverType_Null;
-    if      (strcmp (driver, "null") == 0)
+    if      (strcmp (driver, "Null") == 0)
         ; /* Null has been set above */
 #ifdef RT_OS_WINDOWS
-    else if (strcmp (driver, "winmm") == 0)
+    else if (strcmp (driver, "WinMM") == 0)
 #ifdef VBOX_WITH_WINMM
-        mData->mAudioDriver = AudioDriverType_WINMM;
+        mData->mAudioDriver = AudioDriverType_WinMM;
 #else
         /* fall back to dsound */
-        mData->mAudioDriver = AudioDriverType_DSOUND;
-#endif
-    else if (strcmp (driver, "dsound") == 0)
-        mData->mAudioDriver = AudioDriverType_DSOUND;
+        mData->mAudioDriver = AudioDriverType_DirectSound;
+#endif
+    else if (strcmp (driver, "DirectSound") == 0)
+        mData->mAudioDriver = AudioDriverType_DirectSound;
 #endif // RT_OS_WINDOWS
 #ifdef RT_OS_LINUX
-    else if (strcmp (driver, "oss") == 0)
+    else if (strcmp (driver, "OSS") == 0)
         mData->mAudioDriver = AudioDriverType_OSS;
-    else if (strcmp (driver, "alsa") == 0)
+    else if (strcmp (driver, "ALSA") == 0)
 # ifdef VBOX_WITH_ALSA
         mData->mAudioDriver = AudioDriverType_ALSA;
@@ -393,5 +393,5 @@
         mData->mAudioDriver = AudioDriverType_OSS;
 # endif
-    else if (strcmp (driver, "pulse") == 0)
+    else if (strcmp (driver, "Pulse") == 0)
 # ifdef VBOX_WITH_PULSE
         mData->mAudioDriver = AudioDriverType_Pulse;
@@ -402,9 +402,9 @@
 #endif // RT_OS_LINUX
 #ifdef RT_OS_DARWIN
-    else if (strcmp (driver, "coreaudio") == 0)
-        mData->mAudioDriver = AudioDriverType_Core;
+    else if (strcmp (driver, "CoreAudio") == 0)
+        mData->mAudioDriver = AudioDriverType_CoreAudio;
 #endif
 #ifdef RT_OS_OS2
-    else if (strcmp (driver, "mmpm") == 0)
+    else if (strcmp (driver, "MMPM") == 0)
         mData->mAudioDriver = AudioDriverType_MMPM;
 #endif
@@ -456,18 +456,18 @@
         case AudioDriverType_Null:
         {
-            driverStr = "null";
+            driverStr = "Null";
             break;
         }
 #ifdef RT_OS_WINDOWS
-            case AudioDriverType_WINMM:
+            case AudioDriverType_WinMM:
 # ifdef VBOX_WITH_WINMM
             {
-                driverStr = "winmm";
-                break;
-            }
-# endif
-            case AudioDriverType_DSOUND:
-            {
-                driverStr = "dsound";
+                driverStr = "WinMM";
+                break;
+            }
+# endif
+            case AudioDriverType_DirectSound:
+            {
+                driverStr = "DirectSound";
                 break;
             }
@@ -477,5 +477,5 @@
 # ifdef VBOX_WITH_ALSA
             {
-                driverStr = "alsa";
+                driverStr = "ALSA";
                 break;
             }
@@ -484,5 +484,5 @@
 # ifdef VBOX_WITH_PULSE
             {
-                driverStr = "pulse";
+                driverStr = "Pulse";
                 break;
             }
@@ -490,12 +490,12 @@
             case AudioDriverType_OSS:
             {
-                driverStr = "oss";
+                driverStr = "OSS";
                 break;
             }
 #endif /* RT_OS_LINUX */
 #ifdef RT_OS_DARWIN
-            case AudioDriverType_Core:
-            {
-                driverStr = "coreaudio";
+            case AudioDriverType_CoreAudio:
+            {
+                driverStr = "CoreAudio";
                 break;
             }
@@ -504,5 +504,5 @@
             case AudioDriverType_MMPM:
             {
-                driverStr = "mmpm";
+                driverStr = "MMPM";
                 break;
             }
Index: /trunk/src/VBox/Main/BIOSSettingsImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/BIOSSettingsImpl.cpp	(revision 7465)
+++ /trunk/src/VBox/Main/BIOSSettingsImpl.cpp	(revision 7466)
@@ -556,9 +556,9 @@
             const char *modeStr = bootMenuNode.stringValue ("mode");
 
-            if (strcmp (modeStr, "disabled") == 0)
+            if (strcmp (modeStr, "Disabled") == 0)
                 mData->mBootMenuMode = BIOSBootMenuMode_Disabled;
-            else if (strcmp (modeStr, "menuonly") == 0)
+            else if (strcmp (modeStr, "MenuOnly") == 0)
                 mData->mBootMenuMode = BIOSBootMenuMode_MenuOnly;
-            else if (strcmp (modeStr, "messageandmenu") == 0)
+            else if (strcmp (modeStr, "MessageAndMenu") == 0)
                 mData->mBootMenuMode = BIOSBootMenuMode_MessageAndMenu;
             else
@@ -652,11 +652,11 @@
         {
             case BIOSBootMenuMode_Disabled:
-                modeStr = "disabled";
+                modeStr = "Disabled";
                 break;
             case BIOSBootMenuMode_MenuOnly:
-                modeStr = "menuonly";
+                modeStr = "MenuOnly";
                 break;
             case BIOSBootMenuMode_MessageAndMenu:
-                modeStr = "messageandmenu";
+                modeStr = "MessageAndMenu";
                 break;
             default:
Index: /trunk/src/VBox/Main/ConsoleImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/ConsoleImpl.cpp	(revision 7465)
+++ /trunk/src/VBox/Main/ConsoleImpl.cpp	(revision 7466)
@@ -493,9 +493,9 @@
                 pszUser, pszDomain,
                 authType == VRDPAuthType_Null?
-                    "null":
+                    "Null":
                     (authType == VRDPAuthType_External?
-                        "external":
+                        "External":
                         (authType == VRDPAuthType_Guest?
-                            "guest":
+                            "Guest":
                             "INVALID"
                         )
Index: /trunk/src/VBox/Main/ConsoleImpl2.cpp
===================================================================
--- /trunk/src/VBox/Main/ConsoleImpl2.cpp	(revision 7465)
+++ /trunk/src/VBox/Main/ConsoleImpl2.cpp	(revision 7466)
@@ -1392,5 +1392,5 @@
 #ifdef RT_OS_WINDOWS
 #ifdef VBOX_WITH_WINMM
-            case AudioDriverType_WINMM:
+            case AudioDriverType_WinMM:
             {
                 rc = CFGMR3InsertString(pCfg, "AudioDriver", "winmm");                  RC_CHECK();
@@ -1398,5 +1398,5 @@
             }
 #endif
-            case AudioDriverType_DSOUND:
+            case AudioDriverType_DirectSound:
             {
                 rc = CFGMR3InsertString(pCfg, "AudioDriver", "dsound");                 RC_CHECK();
@@ -1426,5 +1426,5 @@
 #endif /* RT_OS_LINUX */
 #ifdef RT_OS_DARWIN
-            case AudioDriverType_Core:
+            case AudioDriverType_CoreAudio:
             {
                 rc = CFGMR3InsertString(pCfg, "AudioDriver", "coreaudio");              RC_CHECK();
Index: /trunk/src/VBox/Main/HostImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/HostImpl.cpp	(revision 7465)
+++ /trunk/src/VBox/Main/HostImpl.cpp	(revision 7466)
@@ -1149,10 +1149,10 @@
         bool active = (*it).value <bool> ("active");
 
-        Bstr vendorId = (*it).stringValue ("vendorid");
-        Bstr productId = (*it).stringValue ("productid");
+        Bstr vendorId = (*it).stringValue ("vendorId");
+        Bstr productId = (*it).stringValue ("productId");
         Bstr revision = (*it).stringValue ("revision");
         Bstr manufacturer = (*it).stringValue ("manufacturer");
         Bstr product = (*it).stringValue ("product");
-        Bstr serialNumber = (*it).stringValue ("serialnumber");
+        Bstr serialNumber = (*it).stringValue ("serialNumber");
         Bstr port = (*it).stringValue ("port");
 
@@ -1227,7 +1227,7 @@
         /* all are optional */
         if (data.mVendorId.string())
-            filter.setValue <Bstr> ("vendorid", data.mVendorId.string());
+            filter.setValue <Bstr> ("vendorId", data.mVendorId.string());
         if (data.mProductId.string())
-            filter.setValue <Bstr> ("productid", data.mProductId.string());
+            filter.setValue <Bstr> ("productId", data.mProductId.string());
         if (data.mRevision.string())
             filter.setValue <Bstr> ("revision", data.mRevision.string());
@@ -1237,5 +1237,5 @@
             filter.setValue <Bstr> ("product", data.mProduct.string());
         if (data.mSerialNumber.string())
-            filter.setValue <Bstr> ("serialnumber", data.mSerialNumber.string());
+            filter.setValue <Bstr> ("serialNumber", data.mSerialNumber.string());
         if (data.mPort.string())
             filter.setValue <Bstr> ("port", data.mPort.string());
@@ -1256,9 +1256,9 @@
         (*it)->COMGETTER (VendorId) (str.asOutParam());
         if (!str.isNull())
-            filter.setValue <Bstr> ("vendorid", str);
+            filter.setValue <Bstr> ("vendorId", str);
 
         (*it)->COMGETTER (ProductId) (str.asOutParam());
         if (!str.isNull())
-            filter.setValue <Bstr> ("productid", str);
+            filter.setValue <Bstr> ("productId", str);
 
         (*it)->COMGETTER (Revision) (str.asOutParam());
@@ -1276,5 +1276,5 @@
         (*it)->COMGETTER (SerialNumber) (str.asOutParam());
         if (!str.isNull())
-            filter.setValue <Bstr> ("serialnumber", str);
+            filter.setValue <Bstr> ("serialNumber", str);
 
         (*it)->COMGETTER (Port) (str.asOutParam());
Index: /trunk/src/VBox/Main/MachineImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/MachineImpl.cpp	(revision 7465)
+++ /trunk/src/VBox/Main/MachineImpl.cpp	(revision 7466)
@@ -4031,8 +4031,6 @@
         mData->mCurrentStateModified = machineNode.value <bool> ("currentStateModified");
 
-        /* lastStateChange (optional, for compatiblity) */
-        {
-            /// @todo (dmik) until lastStateChange is the required attribute,
-            //  we simply set it to the current time if missing in the config
+        /* lastStateChange (optional, defaults to now) */
+        {
             RTTIMESPEC now;
             RTTimeNow (&now);
@@ -4342,23 +4340,21 @@
     }
 
-    /* Serial node (optional) */
-    {
-        Key serialNode = aNode.findKey ("Uart");
-        if (!serialNode.isNull())
-        {
-            rc = S_OK;
-
-            Key::List ports = serialNode.keys ("Port");
-            for (Key::List::const_iterator it = ports.begin();
-                 it != ports.end(); ++ it)
-            {
-                /* slot number (required) */
-                /* slot unicity is guaranteed by XML Schema */
-                uint32_t slot = (*it).value <uint32_t> ("slot");
-                AssertBreakVoid (slot < ELEMENTS (mSerialPorts));
-
-                rc = mSerialPorts [slot]->loadSettings (*it);
-                CheckComRCReturnRC (rc);
-            }
+    /* Serial node (required) */
+    {
+        Key serialNode = aNode.key ("UART");
+
+        rc = S_OK;
+
+        Key::List ports = serialNode.keys ("Port");
+        for (Key::List::const_iterator it = ports.begin();
+             it != ports.end(); ++ it)
+        {
+            /* slot number (required) */
+            /* slot unicity is guaranteed by XML Schema */
+            uint32_t slot = (*it).value <uint32_t> ("slot");
+            AssertBreakVoid (slot < ELEMENTS (mSerialPorts));
+
+            rc = mSerialPorts [slot]->loadSettings (*it);
+            CheckComRCReturnRC (rc);
         }
     }
@@ -4366,21 +4362,19 @@
     /* Parallel node (optional) */
     {
-        Key parallelNode = aNode.findKey ("Lpt");
-        if (!parallelNode.isNull())
-        {
-            rc = S_OK;
-
-            Key::List ports = parallelNode.keys ("Port");
-            for (Key::List::const_iterator it = ports.begin();
-                 it != ports.end(); ++ it)
-            {
-                /* slot number (required) */
-                /* slot unicity is guaranteed by XML Schema */
-                uint32_t slot = (*it).value <uint32_t> ("slot");
-                AssertBreakVoid (slot < ELEMENTS (mSerialPorts));
-
-                rc = mParallelPorts [slot]->loadSettings (*it);
-                CheckComRCReturnRC (rc);
-            }
+        Key parallelNode = aNode.key ("LPT");
+
+        rc = S_OK;
+
+        Key::List ports = parallelNode.keys ("Port");
+        for (Key::List::const_iterator it = ports.begin();
+             it != ports.end(); ++ it)
+        {
+            /* slot number (required) */
+            /* slot unicity is guaranteed by XML Schema */
+            uint32_t slot = (*it).value <uint32_t> ("slot");
+            AssertBreakVoid (slot < ELEMENTS (mSerialPorts));
+
+            rc = mParallelPorts [slot]->loadSettings (*it);
+            CheckComRCReturnRC (rc);
         }
     }
@@ -4390,66 +4384,53 @@
     CheckComRCReturnRC (rc);
 
-    /* Shared folders (optional) */
-    /// @todo (dmik) make required on next format change!
-    {
-        Key sharedFoldersNode = aNode.findKey ("SharedFolders");
-        if (!sharedFoldersNode.isNull())
-        {
-            rc = S_OK;
-
-            Key::List folders = sharedFoldersNode.keys ("SharedFolder");
-            for (Key::List::const_iterator it = folders.begin();
-                 it != folders.end(); ++ it)
-            {
-                /* folder logical name (required) */
-                Bstr name = (*it).stringValue ("name");
-                /* folder host path (required) */
-                Bstr hostPath = (*it).stringValue ("hostPath");
-
-                bool writable = (*it).value <bool> ("writable");
-
-                rc = CreateSharedFolder (name, hostPath, writable);
-                CheckComRCReturnRC (rc);
-            }
-        }
-    }
-
-    /* Clipboard node (currently not required) */
-    /// @todo (dmik) make required on next format change!
-    {
-        /* default value in case if the node is not there */
-        mHWData->mClipboardMode = ClipboardMode_Disabled;
-
-        Key clipNode = aNode.findKey ("Clipboard");
-        if (!clipNode.isNull())
-        {
-            const char *mode = clipNode.stringValue ("mode");
-            if      (strcmp (mode, "Disabled") == 0)
-                mHWData->mClipboardMode = ClipboardMode_Disabled;
-            else if (strcmp (mode, "HostToGuest") == 0)
-                mHWData->mClipboardMode = ClipboardMode_HostToGuest;
-            else if (strcmp (mode, "GuestToHost") == 0)
-                mHWData->mClipboardMode = ClipboardMode_GuestToHost;
-            else if (strcmp (mode, "Bidirectional") == 0)
-                mHWData->mClipboardMode = ClipboardMode_Bidirectional;
-            else
-                AssertMsgFailed (("Invalid clipboard mode '%s'\n", mode));
-        }
-    }
-
-    /* Guest node (optional) */
-    /// @todo (dmik) make required on next format change and change attribute
-    /// naming!
-    {
-        Key guestNode = aNode.findKey ("Guest");
-        if (!guestNode.isNull())
-        {
-            /* optional, defaults to 0) */
-            mHWData->mMemoryBalloonSize =
-                guestNode.value <ULONG> ("MemoryBalloonSize");
-            /* optional, defaults to 0) */
-            mHWData->mStatisticsUpdateInterval =
-                guestNode.value <ULONG> ("StatisticsUpdateInterval");
-        }
+    /* Shared folders (required) */
+    {
+        Key sharedFoldersNode = aNode.key ("SharedFolders");
+
+        rc = S_OK;
+
+        Key::List folders = sharedFoldersNode.keys ("SharedFolder");
+        for (Key::List::const_iterator it = folders.begin();
+             it != folders.end(); ++ it)
+        {
+            /* folder logical name (required) */
+            Bstr name = (*it).stringValue ("name");
+            /* folder host path (required) */
+            Bstr hostPath = (*it).stringValue ("hostPath");
+
+            bool writable = (*it).value <bool> ("writable");
+
+            rc = CreateSharedFolder (name, hostPath, writable);
+            CheckComRCReturnRC (rc);
+        }
+    }
+
+    /* Clipboard node (required) */
+    {
+        Key clipNode = aNode.key ("Clipboard");
+
+        const char *mode = clipNode.stringValue ("mode");
+        if      (strcmp (mode, "Disabled") == 0)
+            mHWData->mClipboardMode = ClipboardMode_Disabled;
+        else if (strcmp (mode, "HostToGuest") == 0)
+            mHWData->mClipboardMode = ClipboardMode_HostToGuest;
+        else if (strcmp (mode, "GuestToHost") == 0)
+            mHWData->mClipboardMode = ClipboardMode_GuestToHost;
+        else if (strcmp (mode, "Bidirectional") == 0)
+            mHWData->mClipboardMode = ClipboardMode_Bidirectional;
+        else
+            AssertMsgFailed (("Invalid clipboard mode '%s'\n", mode));
+    }
+
+    /* Guest node (required) */
+    {
+        Key guestNode = aNode.key ("Guest");
+
+        /* optional, defaults to 0 */
+        mHWData->mMemoryBalloonSize =
+            guestNode.value <ULONG> ("memoryBalloonSize");
+        /* optional, defaults to 0 */
+        mHWData->mStatisticsUpdateInterval =
+            guestNode.value <ULONG> ("statisticsUpdateInterval");
     }
 
@@ -5584,6 +5565,6 @@
 
 /**
- *  Creates Saves the VM hardware configuration.
- *  It is assumed that the given node is empty.
+ *  Saves the VM hardware configuration. It is assumed that the
+ *  given node is empty.
  *
  *  @param aNode    <Hardware> node to save the VM hardware confguration to.
@@ -5703,5 +5684,6 @@
     /* Serial ports */
     {
-        Key serialNode = aNode.createKey ("Uart");
+        Key serialNode = aNode.createKey ("UART");
+
         for (ULONG slot = 0; slot < ELEMENTS (mSerialPorts); ++ slot)
         {
@@ -5717,5 +5699,6 @@
     /* Parallel ports */
     {
-        Key parallelNode = aNode.createKey ("Lpt");
+        Key parallelNode = aNode.createKey ("LPT");
+
         for (ULONG slot = 0; slot < ELEMENTS (mParallelPorts); ++ slot)
         {
@@ -5781,14 +5764,9 @@
     /* Guest */
     {
-        Key guestNode = aNode.findKey ("Guest");
-        /* first, delete the entire node if exists */
-        if (!guestNode.isNull())
-            guestNode.zap();
-        /* then recreate it */
-        guestNode = aNode.createKey ("Guest");
-
-        guestNode.setValue <ULONG> ("MemoryBalloonSize",
+        Key guestNode = aNode.createKey ("Guest");
+
+        guestNode.setValue <ULONG> ("memoryBalloonSize",
                                     mHWData->mMemoryBalloonSize);
-        guestNode.setValue <ULONG> ("StatisticsUpdateInterval",
+        guestNode.setValue <ULONG> ("statisticsUpdateInterval",
                                     mHWData->mStatisticsUpdateInterval);
     }
Index: /trunk/src/VBox/Main/USBControllerImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/USBControllerImpl.cpp	(revision 7465)
+++ /trunk/src/VBox/Main/USBControllerImpl.cpp	(revision 7466)
@@ -531,10 +531,10 @@
 
         /* optional */
-        Bstr vendorId = (*it).stringValue ("vendorid");
-        Bstr productId = (*it).stringValue ("productid");
+        Bstr vendorId = (*it).stringValue ("vendorId");
+        Bstr productId = (*it).stringValue ("productId");
         Bstr revision = (*it).stringValue ("revision");
         Bstr manufacturer = (*it).stringValue ("manufacturer");
         Bstr product = (*it).stringValue ("product");
-        Bstr serialNumber = (*it).stringValue ("serialnumber");
+        Bstr serialNumber = (*it).stringValue ("serialNumber");
         Bstr port = (*it).stringValue ("port");
         Bstr remote = (*it).stringValue ("remote");
@@ -603,7 +603,7 @@
 
         if (data.mVendorId.string())
-            filter.setValue <Bstr> ("vendorid", data.mVendorId.string());
+            filter.setValue <Bstr> ("vendorId", data.mVendorId.string());
         if (data.mProductId.string())
-            filter.setValue <Bstr> ("productid", data.mProductId.string());
+            filter.setValue <Bstr> ("productId", data.mProductId.string());
         if (data.mRevision.string())
             filter.setValue <Bstr> ("revision", data.mRevision.string());
@@ -613,5 +613,5 @@
             filter.setValue <Bstr> ("product", data.mProduct.string());
         if (data.mSerialNumber.string())
-            filter.setValue <Bstr> ("serialnumber", data.mSerialNumber.string());
+            filter.setValue <Bstr> ("serialNumber", data.mSerialNumber.string());
         if (data.mPort.string())
             filter.setValue <Bstr> ("port", data.mPort.string());
@@ -624,9 +624,9 @@
         (*it)->COMGETTER (VendorId) (str.asOutParam());
         if (!str.isNull())
-            filter.setValue <Bstr> ("vendorid", str);
+            filter.setValue <Bstr> ("vendorId", str);
 
         (*it)->COMGETTER (ProductId) (str.asOutParam());
         if (!str.isNull())
-            filter.setValue <Bstr> ("productid", str);
+            filter.setValue <Bstr> ("productId", str);
 
         (*it)->COMGETTER (Revision) (str.asOutParam());
@@ -644,5 +644,5 @@
         (*it)->COMGETTER (SerialNumber) (str.asOutParam());
         if (!str.isNull())
-            filter.setValue <Bstr> ("serialnumber", str);
+            filter.setValue <Bstr> ("serialNumber", str);
 
         (*it)->COMGETTER (Port) (str.asOutParam());
Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 7465)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 7466)
@@ -9245,11 +9245,12 @@
       <desc><tt>null</tt> value. Also means "dummy audio driver".</desc>
     </const>
-    <const name="WINMM"         value="1"/>
+    <const name="WinMM"         value="1"/>
     <const name="OSS"           value="2"/>
     <const name="ALSA"          value="3"/>
-    <const name="DSOUND"        value="4"/>
-    <const name="Core"          value="5"/>
+    <const name="DirectSound"   value="4"/>
+    <const name="CoreAudio"     value="5"/>
     <const name="MMPM"          value="6"/>
     <const name="Pulse"         value="7"/>
+    <const name="ESD"           value="8"/>
   </enum>
 
Index: /trunk/src/VBox/Main/include/VirtualBoxXMLUtil.h
===================================================================
--- /trunk/src/VBox/Main/include/VirtualBoxXMLUtil.h	(revision 7465)
+++ /trunk/src/VBox/Main/include/VirtualBoxXMLUtil.h	(revision 7466)
@@ -25,5 +25,5 @@
 
 /** VirtualBox XML settings version number substring ("x.y")  */
-#define VBOX_XML_VERSION        "1.3.pre"
+#define VBOX_XML_VERSION        "1.3"
 
 /** VirtualBox XML settings version platform substring */
Index: /trunk/src/VBox/Main/xml/SchemaDefs.xsl
===================================================================
--- /trunk/src/VBox/Main/xml/SchemaDefs.xsl	(revision 7465)
+++ /trunk/src/VBox/Main/xml/SchemaDefs.xsl	(revision 7466)
@@ -138,5 +138,5 @@
     <xsl:with-param name="member" select="'        SerialPortCount'"/>
     <xsl:with-param name="select" select="
-      xsd:complexType[@name='TUartPort']/xsd:attribute[@name='slot']//xsd:maxExclusive/@value
+      xsd:complexType[@name='TUARTPort']/xsd:attribute[@name='slot']//xsd:maxExclusive/@value
     "/>
   </xsl:call-template>
@@ -144,5 +144,5 @@
     <xsl:with-param name="member" select="'        ParallelPortCount'"/>
     <xsl:with-param name="select" select="
-      xsd:complexType[@name='TLptPort']/xsd:attribute[@name='slot']//xsd:maxExclusive/@value
+      xsd:complexType[@name='TLPTPort']/xsd:attribute[@name='slot']//xsd:maxExclusive/@value
     "/>
   </xsl:call-template>
Index: /trunk/src/VBox/Main/xml/SettingsConverter.xsl
===================================================================
--- /trunk/src/VBox/Main/xml/SettingsConverter.xsl	(revision 7465)
+++ /trunk/src/VBox/Main/xml/SettingsConverter.xsl	(revision 7466)
@@ -97,4 +97,12 @@
     <xsl:attribute name="version"><xsl:value-of select="concat('1.3.pre','-',$curVerPlat)"/></xsl:attribute>
     <xsl:apply-templates select="node()" mode="v1.3.pre"/>
+  </xsl:copy>
+</xsl:template>
+
+<!-- 1.3.pre => 1.3 -->
+<xsl:template match="/vb:VirtualBox[substring-before(@version,'-')='1.3.pre']">
+  <xsl:copy>
+    <xsl:attribute name="version"><xsl:value-of select="concat('1.3','-',$curVerPlat)"/></xsl:attribute>
+    <xsl:apply-templates select="node()" mode="v1.3"/>
   </xsl:copy>
 </xsl:template>
@@ -200,5 +208,5 @@
 
 <xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.2']/
-                    vb:Machine//vb:USBController"
+                     vb:Machine//vb:USBController"
               mode="v1.3.pre">
   <xsl:copy>
@@ -247,3 +255,183 @@
 </xsl:template>
 
+<!--
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+ *  1.3.pre => 1.3
+ * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
+-->
+
+<!--
+ *  all non-root elements that are not explicitly matched are copied as is
+-->
+<xsl:template match="@*|node()[../..]" mode="v1.3">
+  <xsl:copy>
+    <xsl:apply-templates select="@*|node()[../..]" mode="v1.3"/>
+  </xsl:copy>
+</xsl:template>
+
+<!--
+ *  Global settings 
+-->
+
+<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3.pre']/
+                     vb:Global//vb:SystemProperties"
+              mode="v1.3">
+  <xsl:copy>
+    <xsl:apply-templates select="@*[not(name()='defaultSavedStateFolder')]|node()" mode="v1.3"/>
+  </xsl:copy>
+</xsl:template>
+
+<!--
+ *  Machine settings
+-->
+
+<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3.pre']/
+                     vb:Machine//vb:AudioAdapter"
+              mode="v1.3">
+  <xsl:copy>
+    <xsl:apply-templates select="@*[not(name()='driver')]|node()" mode="v1.3"/>
+    <xsl:attribute name="driver">
+      <xsl:choose>
+        <xsl:when test="@driver='null'">Null</xsl:when>
+        <xsl:when test="@driver='oss'">OSS</xsl:when>
+        <xsl:when test="@driver='alsa'">ALSA</xsl:when>
+        <xsl:when test="@driver='pulse'">Pulse</xsl:when>
+        <xsl:when test="@driver='codeaudio'">CoreAudio</xsl:when>
+        <xsl:when test="@driver='winmm'">WinMM</xsl:when>
+        <xsl:when test="@driver='dsound'">DirectSound</xsl:when>
+        <xsl:when test="@driver='esd'">ESD</xsl:when>
+        <xsl:when test="@driver='mmpm'">MMPM</xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes">
+Value '<xsl:value-of select="@driver"/>' of 'AudioAdapter::driver' attribute is invalid.
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+  </xsl:copy>
+  <xsl:if test="not(../vb:SharedFolders)">
+    <SharedFolders/>
+  </xsl:if>
+  <xsl:if test="not(../vb:Clipboard)">
+    <Clipboard mode="Disabled"/>
+  </xsl:if>
+  <xsl:if test="not(../vb:Guest)">
+    <Guest/>
+  </xsl:if>
+</xsl:template>
+
+<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3.pre']/
+                     vb:Machine//vb:RemoteDisplay"
+              mode="v1.3">
+  <xsl:copy>
+    <xsl:apply-templates select="@*[not(name()='authType')]|node()" mode="v1.3"/>
+    <xsl:attribute name="authType">
+      <xsl:choose>
+        <xsl:when test="@authType='null'">Null</xsl:when>
+        <xsl:when test="@authType='guest'">Guest</xsl:when>
+        <xsl:when test="@authType='external'">External</xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes">
+Value '<xsl:value-of select="@authType"/>' of 'RemoteDisplay::authType' attribute is invalid.
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3.pre']/
+                     vb:Machine//vb:BIOS/vb:BootMenu"
+              mode="v1.3">
+  <xsl:copy>
+    <xsl:apply-templates select="@*[not(name()='mode')]|node()" mode="v1.3"/>
+    <xsl:attribute name="mode">
+      <xsl:choose>
+        <xsl:when test="@mode='disabled'">Disabled</xsl:when>
+        <xsl:when test="@mode='menuonly'">MenuOnly</xsl:when>
+        <xsl:when test="@mode='messageandmenu'">MessageAndMenu</xsl:when>
+        <xsl:otherwise>
+          <xsl:message terminate="yes">
+Value '<xsl:value-of select="@mode"/>' of 'BootMenu::mode' attribute is invalid.
+          </xsl:message>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:attribute>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3.pre']/
+                     vb:Machine//vb:USBController/vb:DeviceFilter |
+                     vb:VirtualBox[substring-before(@version,'-')='1.3.pre']/
+                     vb:Global/vb:USBDeviceFilters/vb:DeviceFilter"
+              mode="v1.3">
+  <xsl:copy>
+    <xsl:apply-templates select="node()" mode="v1.3"/>
+    <xsl:for-each select="@*">
+      <xsl:choose>
+        <xsl:when test="name()='vendorid'">
+          <xsl:attribute name="vendorId"><xsl:value-of select="."/></xsl:attribute>
+        </xsl:when>
+        <xsl:when test="name()='productid'">
+          <xsl:attribute name="productId"><xsl:value-of select="."/></xsl:attribute>
+        </xsl:when>
+        <xsl:when test="name()='serialnumber'">
+          <xsl:attribute name="serialNumber"><xsl:value-of select="."/></xsl:attribute>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="." mode="v1.3"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3.pre']/
+                     vb:Machine//vb:Guest"
+              mode="v1.3">
+  <xsl:copy>
+    <xsl:apply-templates select="node()" mode="v1.3"/>
+    <xsl:for-each select="@*">
+      <xsl:choose>
+        <xsl:when test="name()='MemoryBalloonSize'">
+          <xsl:attribute name="memoryBalloonSize"><xsl:value-of select="."/></xsl:attribute>
+        </xsl:when>
+        <xsl:when test="name()='StatisticsUpdateInterval'">
+          <xsl:attribute name="statisticsUpdateInterval"><xsl:value-of select="."/></xsl:attribute>
+        </xsl:when>
+        <xsl:otherwise>
+          <xsl:apply-templates select="node()" mode="v1.3"/>
+        </xsl:otherwise>
+      </xsl:choose>
+    </xsl:for-each>
+  </xsl:copy>
+</xsl:template>
+
+<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3.pre']/
+                     vb:Machine//vb:Uart"
+              mode="v1.3">
+  <UART>
+    <xsl:apply-templates select="@*|node()" mode="v1.3"/>
+  </UART>
+</xsl:template>
+
+<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3.pre']/
+                     vb:Machine//vb:Lpt"
+              mode="v1.3">
+  <LPT>
+    <xsl:apply-templates select="@*|node()" mode="v1.3"/>
+  </LPT>
+</xsl:template>
+
+<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3.pre']/
+                     vb:Machine"
+              mode="v1.3">
+  <xsl:copy>
+    <xsl:apply-templates select="@*|node()" mode="v1.3"/>
+    <xsl:if test="not(@lastStateChange)">
+      <xsl:attribute name="lastStateChange"></xsl:attribute>
+    </xsl:if>
+  </xsl:copy>
+</xsl:template>
+
 </xsl:stylesheet>
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd	(revision 7465)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd	(revision 7466)
@@ -157,11 +157,9 @@
 </xsd:simpleType>
 
-<!--- @todo (dmik) capitalize enum values on next format change! -->
-<!--- @todo (dmik) change "null" to None" -->
 <xsd:simpleType name="TVRDPAuthType">
   <xsd:restriction base="xsd:string">
-    <xsd:enumeration value="null"/>
-    <xsd:enumeration value="guest"/>
-    <xsd:enumeration value="external"/>
+    <xsd:enumeration value="Null"/>
+    <xsd:enumeration value="Guest"/>
+    <xsd:enumeration value="External"/>
   </xsd:restriction>
 </xsd:simpleType>
@@ -183,10 +181,9 @@
 </xsd:simpleType>
 
-<!--- @todo (dmik) capitalize enum values on next format change! -->
 <xsd:simpleType name="TBIOSBootMenuModeType">
     <xsd:restriction base="xsd:string">
-      <xsd:enumeration value="disabled"/>
-      <xsd:enumeration value="menuonly"/>
-      <xsd:enumeration value="messageandmenu"/>
+      <xsd:enumeration value="Disabled"/>
+      <xsd:enumeration value="MenuOnly"/>
+      <xsd:enumeration value="MessageAndMenu"/>
     </xsd:restriction>
 </xsd:simpleType>
@@ -297,13 +294,12 @@
 
 <xsd:complexType name="TUSBDeviceFilter">
-  <!--- @todo (dmik) make all attr names likeThis on next format change! -->
   <xsd:attribute name="name" type="TNonEmptyString" use="required"/>
   <xsd:attribute name="active" type="xsd:boolean" use="required"/>
-  <xsd:attribute name="vendorid" type="xsd:token"/>
-  <xsd:attribute name="productid" type="xsd:token"/>
+  <xsd:attribute name="vendorId" type="xsd:token"/>
+  <xsd:attribute name="productId" type="xsd:token"/>
   <xsd:attribute name="revision" type="xsd:token"/>
   <xsd:attribute name="manufacturer" type="xsd:token"/>
   <xsd:attribute name="product" type="xsd:token"/>
-  <xsd:attribute name="serialnumber" type="xsd:token"/>
+  <xsd:attribute name="serialNumber" type="xsd:token"/>
   <xsd:attribute name="port" type="xsd:token"/>
   <xsd:attribute name="remote" type="xsd:token"/>
@@ -322,6 +318,4 @@
   <xsd:attribute name="defaultVDIFolder" type="TLocalFile"/>
   <xsd:attribute name="defaultMachineFolder" type="TLocalFile"/>
-  <!--- @todo (dmik) remove defaultSavedStateFolder on next format change! -->
-  <xsd:attribute name="defaultSavedStateFolder" type="TLocalFile"/>
   <xsd:attribute name="remoteDisplayAuthLibrary" type="TLocalFile"/>
   <xsd:attribute name="webServiceAuthLibrary" type="TLocalFile"/>
@@ -445,5 +439,5 @@
   <xsd:attribute name="port" type="xsd:unsignedInt" default="0"/>
   <xsd:attribute name="netAddress" type="xsd:token" default=""/>
-  <xsd:attribute name="authType" type="TVRDPAuthType" default="null"/>
+  <xsd:attribute name="authType" type="TVRDPAuthType" default="Null"/>
   <xsd:attribute name="authTimeout" type="xsd:unsignedInt" default="5000"/>
   <xsd:attribute name="allowMultiConnection" type="xsd:boolean" default="false"/>
@@ -472,5 +466,5 @@
     <xsd:element name="BootMenu" minOccurs="0">
       <xsd:complexType>
-        <xsd:attribute name="mode" type="TBIOSBootMenuModeType" default="messageandmenu"/>
+        <xsd:attribute name="mode" type="TBIOSBootMenuModeType" default="MessageAndMenu"/>
       </xsd:complexType>
     </xsd:element>
@@ -575,5 +569,5 @@
 </xsd:complexType>
 
-<xsd:complexType name="TUartPort">
+<xsd:complexType name="TUARTPort">
   <xsd:attribute name="slot" use="required">
     <xsd:simpleType>
@@ -592,10 +586,10 @@
 </xsd:complexType>
 
-<xsd:complexType name="TUart">
+<xsd:complexType name="TUART">
   <xsd:sequence>
     <xsd:element name="Port" minOccurs="0" maxOccurs="unbounded">
       <xsd:complexType>
         <xsd:complexContent>
-          <xsd:extension base="TUartPort">
+          <xsd:extension base="TUARTPort">
           </xsd:extension>
         </xsd:complexContent>
@@ -605,5 +599,5 @@
 </xsd:complexType>
 
-<xsd:complexType name="TLptPort">
+<xsd:complexType name="TLPTPort">
   <xsd:attribute name="slot" use="required">
     <xsd:simpleType>
@@ -620,10 +614,10 @@
 </xsd:complexType>
 
-<xsd:complexType name="TLpt">
+<xsd:complexType name="TLPT">
   <xsd:sequence>
     <xsd:element name="Port" minOccurs="0" maxOccurs="unbounded">
       <xsd:complexType>
         <xsd:complexContent>
-          <xsd:extension base="TLptPort">
+          <xsd:extension base="TLPTPort">
           </xsd:extension>
         </xsd:complexContent>
@@ -650,6 +644,6 @@
 
 <xsd:complexType name="TGuest">
-  <xsd:attribute name="MemoryBalloonSize"        type="xsd:unsignedInt" default="0"/>
-  <xsd:attribute name="StatisticsUpdateInterval" type="xsd:unsignedInt" default="0"/>
+  <xsd:attribute name="memoryBalloonSize"        type="xsd:unsignedInt" default="0"/>
+  <xsd:attribute name="statisticsUpdateInterval" type="xsd:unsignedInt" default="0"/>
 </xsd:complexType>
 
@@ -685,12 +679,12 @@
       </xsd:unique>
     </xsd:element>
-    <xsd:element name="Uart" type="TUart" minOccurs="0">
-      <xsd:unique name="THardware-Uart-Port">
+    <xsd:element name="UART" type="TUART">
+      <xsd:unique name="THardware-UART-Port">
         <xsd:selector xpath="vb:Port"/>
         <xsd:field xpath="@slot"/>
       </xsd:unique>
     </xsd:element>
-    <xsd:element name="Lpt" type="TLpt" minOccurs="0">
-      <xsd:unique name="THardware-Lpt-Port">
+    <xsd:element name="LPT" type="TLPT">
+      <xsd:unique name="THardware-LPT-Port">
         <xsd:selector xpath="vb:Port"/>
         <xsd:field xpath="@slot"/>
@@ -698,6 +692,5 @@
     </xsd:element>
     <xsd:element name="AudioAdapter" type="TAudioAdapter"/>
-    <!--- @todo (dmik) remove minOccurs="0" from SharedFolders on next format change! -->
-    <xsd:element name="SharedFolders" type="TSharedFolders" minOccurs="0">
+    <xsd:element name="SharedFolders" type="TSharedFolders">
       <xsd:unique name="THardware-SharedFolders-SharedFolder">
         <xsd:selector xpath="vb:SharedFolder"/>
@@ -705,8 +698,6 @@
       </xsd:unique>
     </xsd:element>
-    <!--- @todo (dmik) remove minOccurs="0" on next format change! -->
-    <xsd:element name="Clipboard" type="TClipboard" minOccurs="0"/>
-    <!--- @todo (dmik) remove minOccurs="0" on next format change! -->
-    <xsd:element name="Guest" type="TGuest" minOccurs="0"/>
+    <xsd:element name="Clipboard" type="TClipboard"/>
+    <xsd:element name="Guest" type="TGuest"/>
   </xsd:all>
 </xsd:complexType>
@@ -727,5 +718,4 @@
   <xsd:attribute name="currentSnapshot" type="TNonNullUUID"/>
   <xsd:attribute name="snapshotFolder" type="TLocalFile"/>
-  <!--- @todo (dmik) make lastStateChange required on next format change! -->
   <xsd:attribute name="lastStateChange" type="TPresentDateTimeUTC"/>
   <xsd:attribute name="aborted" type="xsd:boolean" default="false"/>
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings-freebsd.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-freebsd.xsd	(revision 7465)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings-freebsd.xsd	(revision 7466)
@@ -96,10 +96,9 @@
     <xsd:extension base="TAudioAdapterBase">
       <xsd:attribute name="driver" use="required">
-        <!--- @todo (dmik) capitalize enum values on next format change! -->
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="null"/>
-            <xsd:enumeration value="oss"/>
-            <xsd:enumeration value="alsa"/>
+            <xsd:enumeration value="Null"/>
+            <xsd:enumeration value="OSS"/>
+            <xsd:enumeration value="ALSA"/>
           </xsd:restriction>
         </xsd:simpleType>
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings-linux.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-linux.xsd	(revision 7465)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings-linux.xsd	(revision 7466)
@@ -96,11 +96,10 @@
     <xsd:extension base="TAudioAdapterBase">
       <xsd:attribute name="driver" use="required">
-        <!--- @todo (dmik) capitalize enum values on next format change! -->
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="null"/>
-            <xsd:enumeration value="oss"/>
-            <xsd:enumeration value="alsa"/>
-            <xsd:enumeration value="pulse"/>
+            <xsd:enumeration value="Null"/>
+            <xsd:enumeration value="OSS"/>
+            <xsd:enumeration value="ALSA"/>
+            <xsd:enumeration value="Pulse"/>
           </xsd:restriction>
         </xsd:simpleType>
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings-macosx.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-macosx.xsd	(revision 7465)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings-macosx.xsd	(revision 7466)
@@ -96,9 +96,8 @@
     <xsd:extension base="TAudioAdapterBase">
       <xsd:attribute name="driver" use="required">
-        <!--- @todo (dmik) capitalize enum values on next format change! -->
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="null"/>
-            <xsd:enumeration value="coreaudio"/>
+            <xsd:enumeration value="Null"/>
+            <xsd:enumeration value="CoreAudio"/>
           </xsd:restriction>
         </xsd:simpleType>
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings-os2.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-os2.xsd	(revision 7465)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings-os2.xsd	(revision 7466)
@@ -96,9 +96,8 @@
     <xsd:extension base="TAudioAdapterBase">
       <xsd:attribute name="driver" use="required">
-        <!--- @todo (dmik) capitalize enum values on next format change! -->
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="null"/>
-            <xsd:enumeration value="mmpm"/>
+            <xsd:enumeration value="Null"/>
+            <xsd:enumeration value="MMPM"/>
           </xsd:restriction>
         </xsd:simpleType>
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings-solaris.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-solaris.xsd	(revision 7465)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings-solaris.xsd	(revision 7466)
@@ -96,9 +96,8 @@
     <xsd:extension base="TAudioAdapterBase">
       <xsd:attribute name="driver" use="required">
-        <!--- @todo (dmik) capitalize enum values on next format change! -->
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="null"/>
-            <xsd:enumeration value="esd"/>
+            <xsd:enumeration value="Null"/>
+            <xsd:enumeration value="ESD"/>
           </xsd:restriction>
         </xsd:simpleType>
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings-windows.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-windows.xsd	(revision 7465)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings-windows.xsd	(revision 7466)
@@ -94,10 +94,9 @@
     <xsd:extension base="TAudioAdapterBase">
       <xsd:attribute name="driver" use="required">
-        <!--- @todo (dmik) capitalize enum values on next format change! -->
         <xsd:simpleType>
           <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="null"/>
-            <xsd:enumeration value="winmm"/>
-            <xsd:enumeration value="dsound"/>
+            <xsd:enumeration value="Null"/>
+            <xsd:enumeration value="WinMM"/>
+            <xsd:enumeration value="DirectSound"/>
           </xsd:restriction>
         </xsd:simpleType>
