Index: /trunk/doc/manual/en_US/SDKRef.xml
===================================================================
--- /trunk/doc/manual/en_US/SDKRef.xml	(revision 44947)
+++ /trunk/doc/manual/en_US/SDKRef.xml	(revision 44948)
@@ -1543,5 +1543,5 @@
         </screen>
 
-        <para>Code above demonstartes cross-platform access to array properties
+        <para>Code above demonstrates cross-platform access to array properties
         (certain limitations prevent one from using
         <computeroutput>vbox.machines</computeroutput> to access a list of
@@ -3530,9 +3530,19 @@
       <itemizedlist>
         <listitem>
+          <para>For <xref linkend="IMachine__launchVMProcess"
+          xreflabel="IMachine::launchVMProcess()"/> the meaning of the
+          <computeroutput>type</computeroutput> parameter has changed slightly.
+          Empty string now means that the per-VM or global default frontend
+          is launched. Most callers of this method should use the empty string
+          now, unless they really want to override the default and launch a
+          particular frontend.</para>
+        </listitem>
+
+        <listitem>
           <para>Medium management APIs were changed as follows:<itemizedlist>
 
             <listitem>
               <para>The type of attribute
-              <computeroutput>IMedium::variant</computeroutput>
+              <xref linkend="IMedium__variant" xreflabel="IMedium::variant()"/>
               changed from <computeroutput>unsigned long</computeroutput>
               to <computeroutput>safe-array MediumVariant</computeroutput>.
@@ -3573,5 +3583,6 @@
         <listitem>
           <para>The type of attribute
-          <computeroutput>IMediumFormat::capabilities</computeroutput>
+          <xref linkend="IMediumFormat__capabilities"
+          xreflabel="IMediumFormat::capabilities()"/>
           changed from <computeroutput>unsigned long</computeroutput>
           to <computeroutput>safe-array MediumFormatCapabilities</computeroutput>.
Index: /trunk/doc/manual/en_US/user_VBoxManage.xml
===================================================================
--- /trunk/doc/manual/en_US/user_VBoxManage.xml	(revision 44947)
+++ /trunk/doc/manual/en_US/user_VBoxManage.xml	(revision 44948)
@@ -713,4 +713,11 @@
 			the values that guest sees i.e. the values avalable under guest Device Manager.</para>
           </listitem>
+
+          <listitem>
+            <para><computeroutput>--defaultfrontend
+            default|&lt;name&gt;</computeroutput>: This allows you to specify
+            the default frontend which will be used when starting this VM; see
+            <xref linkend="vboxmanage-startvm" /> for details.</para>
+          </listitem>
         </itemizedlist></para>
     </sect2>
@@ -923,6 +930,5 @@
 
     <sect2 id="vboxmanage-modifyvm-other">
-      <title>Serial port, audio, clipboard, remote desktop and USB
-      settings</title>
+      <title>Serial port, audio, clipboard and USB settings</title>
 
       <para>The following other hardware settings are available through
@@ -1345,22 +1351,14 @@
     "Powered off" or "Saved" states.</para>
 
-    <note>
-      <para>This is provided for backwards compatibility only. We recommend to
-      start virtual machines directly by running the respective front-end, as
-      you might otherwise miss important error and state information that
-      VirtualBox may display on the console. This is especially important for
-      front-ends other than <computeroutput>VirtualBox</computeroutput>, our
-      graphical user interface, because those cannot display error messages in
-      a popup window. See <xref linkend="vboxheadless" /> for more
-      information.</para>
-    </note>
-
     <para>The optional <computeroutput>--type</computeroutput> specifier
-    determines whether the machine will be started in a window (GUI mode,
-    which is the default) or whether the output should go through
-    <computeroutput>VBoxHeadless</computeroutput>, with VRDE enabled or not;
-    see <xref linkend="vboxheadless" /> for more information. The list of
-    types is subject to change, and it's not guaranteed that all types are
-    accepted by any product variant.</para>
+    determines whether the machine will be started in a window or whether the
+    output should go through <computeroutput>VBoxHeadless</computeroutput>,
+    with VRDE enabled or not; see <xref linkend="vboxheadless" /> for more
+    information. The list of types is subject to change, and it's not
+    guaranteed that all types are accepted by any product variant.</para>
+
+    <para>The global or per-VM default value for the VM frontend type will be
+    taken if the type is not explicitly specified. If none of these are set,
+    the GUI variant will be started.</para>
 
     <para>The following values are allowed:</para>
@@ -1382,5 +1380,20 @@
         </glossdef>
       </glossentry>
+
+      <glossentry>
+        <glossterm>sdl</glossterm>
+
+        <glossdef>
+          <para>Starts a VM with a minimal GUI and limited features.</para>
+        </glossdef>
+      </glossentry>
     </glosslist>
+
+    <note>
+      <para>If you experience problems with starting virtual machines with
+      particular frontends and there is no conclusive error information,
+      consider starting virtual machines directly by running the respective
+      front-end, as this can give additional error information.</para>
+    </note>
   </sect1>
 
@@ -2468,5 +2481,5 @@
 
         <glossentry>
-          <glossterm>vrdelibrary</glossterm>
+          <glossterm>vrdeextpack</glossterm>
 
           <glossdef>
@@ -2477,9 +2490,26 @@
 
         <glossentry>
-          <glossterm>hwvirtexenabled</glossterm>
-
-          <glossdef>
-            <para>This selects whether or not hardware virtualization support
-            is enabled by default.</para>
+          <glossterm>loghistorycount</glossterm>
+
+          <glossdef>
+            <para>This selects how many rotated (old) VM logs are kept.</para>
+          </glossdef>
+        </glossentry>
+
+        <glossentry>
+          <glossterm>autostartdbpath</glossterm>
+
+          <glossdef>
+            <para>This selects the path to the autostart database. See
+            <xref linkend="autostart" />.</para>
+          </glossdef>
+        </glossentry>
+
+        <glossentry>
+          <glossterm>defaultfrontend</glossterm>
+
+          <glossdef>
+            <para>This selects the global default VM frontend setting. See
+            <xref linkend="vboxmanage-startvm" />.</para>
           </glossdef>
         </glossentry>
Index: /trunk/include/VBox/settings.h
===================================================================
--- /trunk/include/VBox/settings.h	(revision 44947)
+++ /trunk/include/VBox/settings.h	(revision 44948)
@@ -18,5 +18,5 @@
 
 /*
- * Copyright (C) 2007-2012 Oracle Corporation
+ * Copyright (C) 2007-2013 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -234,4 +234,5 @@
     com::Utf8Str            strAutostartDatabasePath;
     com::Utf8Str            strDefaultAdditionsISO;
+    com::Utf8Str            strDefaultFrontend;
     uint32_t                ulLogHistoryCount;
 };
@@ -815,4 +816,6 @@
     IOSettings          ioSettings;             // requires settings version 1.10 (VirtualBox 3.2)
     HostPCIDeviceAttachmentList pciAttachments; // requires settings version 1.12 (VirtualBox 4.1)
+
+    com::Utf8Str        strDefaultFrontend;     // requires settings version 1.14 (VirtualBox 4.3)
 };
 
Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp	(revision 44947)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageHelp.cpp	(revision 44948)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2006-2012 Oracle Corporation
+ * Copyright (C) 2006-2013 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -368,4 +368,5 @@
                      "                                             acpishutdown]\n"
 #endif
+                     "                            [--defaultfrontend default|<name]\n"
                      "\n");
     }
@@ -624,4 +625,5 @@
                      "                            autostartdbpath null|<folder> |\n"
                      "                            loghistorycount <value>\n"
+                     "                            defaultfrontend default|<name>\n"
                      "\n", SEP);
 
Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp	(revision 44947)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageInfo.cpp	(revision 44948)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2006-2012 Oracle Corporation
+ * Copyright (C) 2006-2013 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -713,4 +713,5 @@
     SHOW_BOOLEAN_PROP(    machine,  AutostartEnabled,           "autostart-enabled",        "Autostart Enabled");
     SHOW_ULONG_PROP(      machine,  AutostartDelay,             "autostart-delay",          "Autostart Delay", "");
+    SHOW_STRING_PROP(     machine,  DefaultFrontend,            "defaultfrontend",          "Default Frontend");
 
 /** @todo Convert the remainder of the function to SHOW_XXX macros and add error
@@ -1566,5 +1567,22 @@
             RTPrintf("draganddrop=\"%s\"\n", psz);
         else
-            RTPrintf("Drag'n'drop Mode:  %s\n", psz);
+            RTPrintf("Drag'n'drop Mode: %s\n", psz);
+    }
+
+    {
+        SessionState_T sessState;
+        rc = machine->COMGETTER(SessionState)(&sessState);
+        if (SUCCEEDED(rc) && sessState != SessionState_Unlocked)
+        {
+            Bstr sessType;
+            rc = machine->COMGETTER(SessionType)(sessType.asOutParam());
+            if (SUCCEEDED(rc) && !sessType.isEmpty())
+            {
+                if (details == VMINFO_MACHINEREADABLE)
+                    RTPrintf("SessionType=\"%ls\"\n", sessType.raw());
+                else
+                    RTPrintf("Session type:    %ls\n", sessType.raw());
+            }
+        }
     }
 
Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp	(revision 44947)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageMisc.cpp	(revision 44948)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2006-2012 Oracle Corporation
+ * Copyright (C) 2006-2013 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -486,5 +486,5 @@
     HRESULT rc = S_OK;
     std::list<const char *> VMs;
-    Bstr sessionType = "gui";
+    Bstr sessionType;
 
     static const RTGETOPTDEF s_aStartVMOptions[] =
@@ -871,4 +871,11 @@
             CHECK_ERROR(systemProperties, COMSETTER(AutostartDatabasePath)(Bstr(a->argv[1]).raw()));
     }
+    else if (!strcmp(a->argv[0], "defaultfrontend"))
+    {
+        Bstr bstrDefaultFrontend(a->argv[1]);
+        if (!strcmp(a->argv[1], "default"))
+            bstrDefaultFrontend.setNull();
+        CHECK_ERROR(systemProperties, COMSETTER(DefaultFrontend)(bstrDefaultFrontend.raw()));
+    }
     else
         return errorSyntax(USAGE_SETPROPERTY, "Invalid parameter '%s'", a->argv[0]);
Index: /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp	(revision 44947)
+++ /trunk/src/VBox/Frontends/VBoxManage/VBoxManageModifyVM.cpp	(revision 44948)
@@ -197,5 +197,6 @@
     MODIFYVM_VCP_HEIGHT,
 #endif
-    MODIFYVM_CHIPSET
+    MODIFYVM_CHIPSET,
+    MODIFYVM_DEFAULTFRONTEND
 };
 
@@ -352,4 +353,5 @@
     { "--usbcardreader",            MODIFYVM_USBCARDREADER,             RTGETOPT_REQ_BOOL_ONOFF },
 #endif
+    { "--defaultfrontend",          MODIFYVM_DEFAULTFRONTEND,           RTGETOPT_REQ_STRING },
 };
 
@@ -1546,5 +1548,5 @@
 
                 CHECK_ERROR(nic, COMGETTER(NATEngine)(engine.asOutParam()));
-                if (RTStrCmp(ValueUnion.psz,"default") == 0)
+                if (RTStrCmp(ValueUnion.psz, "default") == 0)
                 {
                     aliasMode = 0;
@@ -2514,4 +2516,13 @@
 #endif /* VBOX_WITH_USB_CARDREADER */
 
+            case MODIFYVM_DEFAULTFRONTEND:
+            {
+                Bstr bstr(ValueUnion.psz);
+                if (bstr == "default")
+                    bstr = Bstr::Empty;
+                CHECK_ERROR(machine, COMSETTER(DefaultFrontend)(bstr.raw()));
+                break;
+            }
+
             default:
             {
Index: /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp
===================================================================
--- /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 44947)
+++ /trunk/src/VBox/Frontends/VirtualBox/src/globals/VBoxGlobal.cpp	(revision 44948)
@@ -4963,5 +4963,5 @@
         env.append(QString("XAUTHORITY=%1\n").arg(xauth));
 #endif
-    const QString strType = fHeadless ? "headless" : "GUI/Qt";
+    const QString strType = fHeadless ? "headless" : "";
 
     CProgress progress = machine.LaunchVMProcess(session, strType, env);
Index: /trunk/src/VBox/Main/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Main/Makefile.kmk	(revision 44947)
+++ /trunk/src/VBox/Main/Makefile.kmk	(revision 44948)
@@ -433,35 +433,21 @@
 
 #
-# Embed XML Schema files to VBoxSVC
-#
-VBOX_XML_SCHEMA_COMMON        = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-common.xsd
-VBOX_XML_SCHEMA.darwin        = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-macosx.xsd
-VBOX_XML_SCHEMA.linux         = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-linux.xsd
-VBOX_XML_SCHEMA.freebsd       = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-freebsd.xsd
-VBOX_XML_SCHEMA.win           = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-windows.xsd
-VBOX_XML_SCHEMA.os2           = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-os2.xsd
-VBOX_XML_SCHEMA.solaris       = $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings-solaris.xsd
-
-VBOX_XML_CONVERTER_TEMPLATE   = $(VBOX_PATH_MAIN_SRC)/xml/SettingsConverter.xsl
-
-$$(VBoxSVC_0_OUTDIR)/xml_VirtualBox_settings_xsd.h: $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_BIN2C)
-	$(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
-	$(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_xsd $< $@
-
-$$(VBoxSVC_0_OUTDIR)/xml_VirtualBox_settings_common_xsd.h: $(VBOX_XML_SCHEMA_COMMON) $(VBOX_BIN2C)
-	$(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
-	$(QUIET)$(VBOX_BIN2C) _xml_VirtualBox_settings_common_xsd $< $@
-
-$$(VBoxSVC_0_OUTDIR)/xml_SettingsConverter_xsl.h: $(VBOX_XML_CONVERTER_TEMPLATE) $(VBOX_BIN2C)
-	$(call MSG_TOOL,bin2c,VBoxSVC,$<,$@)
-	$(QUIET)$(VBOX_BIN2C) _xml_SettingsConverter_xsl $< $@
-
-$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON) | $$(dir $$@)
+# Embed some constraints from XML Schema file into VBoxSVC
+#
+VBOX_XML_SCHEMA	= $(VBOX_PATH_MAIN_SRC)/xml/VirtualBox-settings.xsd
+
+$(VBOX_XML_SCHEMADEFS_H): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA) | $$(dir $$@)
 	$(call MSG_GENERATE,SchemaDefs,$@,$<)
-	$(QUIET)$(VBOX_XSLTPROC)  --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
-
-$(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET)) $(VBOX_XML_SCHEMA_COMMON)  | $$(dir $$@)
+	$(QUIET)$(VBOX_XSLTPROC)  --stringparam mode declare -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA)
+
+$(VBOX_XML_SCHEMADEFS_CPP): $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA) | $$(dir $$@)
 	$(call MSG_GENERATE,SchemaDefs,$@,$<)
-	$(QUIET)$(VBOX_XSLTPROC)  --stringparam mode define  -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA.$(KBUILD_TARGET))
+	$(QUIET)$(VBOX_XSLTPROC)  --stringparam mode define  -o $@ $(VBOX_XML_SCHEMADEFS_XSL) $(VBOX_XML_SCHEMA)
+
+testvalidsettings: $(VBOX_XML_SCHEMA)
+	xmllint --schema $< --noout $(HOME)/.VirtualBox/VirtualBox.xml
+	xmllint --schema $< --noout $(HOME)/.VirtualBox/Machines/*/*.xml
+	xmllint --schema $< --noout $(HOME)/.VirtualBox/Machines/*/*.vbox
+	xmllint --schema $< --noout $(HOME)/VirtualBox\ VMs/*/*.vbox
 
 OTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
Index: /trunk/src/VBox/Main/idl/VirtualBox.xidl
===================================================================
--- /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 44947)
+++ /trunk/src/VBox/Main/idl/VirtualBox.xidl	(revision 44948)
@@ -394,5 +394,5 @@
   <enum
     name="SettingsVersion"
-    uuid="52bd6f5f-1adb-4493-975d-581a9c4b803f"
+    uuid="d5b15ca7-3de7-46b2-a63a-ddcce42bfa3f"
     >
     <desc>
@@ -500,4 +500,10 @@
           Machine changes: tracing config, groups, autostart;
           NetworkAdapter changes: unit for bandwidth group limits.
+      -->
+    </const>
+    <const name="v1_14"     value="16">
+      <desc>Settings version "1.14", written by VirtualBox 4.3.x.</desc>
+      <!--
+          Machine changes: default frontend.
       -->
     </const>
@@ -3793,5 +3799,5 @@
   <interface
     name="IMachine" extends="$unknown"
-    uuid="22781af3-1c96-4126-9edf-67a020e0e858"
+    uuid="381e3f31-2b27-45b7-818a-30609ade86b3"
     wsmap="managed"
     >
@@ -4504,4 +4510,20 @@
     </attribute>
 
+    <attribute name="defaultFrontend" type="wstring">
+      <desc>
+        Selects which VM frontend should be used by default when launching
+        this VM through the <link to="IMachine::launchVMProcess" /> method.
+        Empty or @c null strings do not define a particular default, it is up
+        to <link to="IMachine::launchVMProcess" /> to select one. See the
+        description of <link to="IMachine::launchVMProcess" />  for the valid
+        frontend types.
+
+        This per-VM setting overrides the default defined by
+        <link to="ISystemProperties::defaultFrontend" /> attribute, and is
+        overridden by a frontend type passed to
+        <link to="IMachine::launchVMProcess" />.
+      </desc>
+    </attribute>
+
     <method name="lockMachine">
       <desc>
@@ -4700,4 +4722,10 @@
               used in any way), and the @a progress return value will be always
               @c null. The operation completes immediately.</li>
+            <li><tt>""</tt>: use the per-VM default frontend if set, otherwise
+              the global default defined in the system properties. If neither
+              are set, the API will launch a <tt>"gui"</tt> session, which may
+              fail if there is no windowing environment available. See
+              <link to="IMachine::defaultFrontend"/> and
+              <link to="ISystemProperties::defaultFrontend"/>.</li>
           </ul>
         </desc>
@@ -8231,5 +8259,5 @@
     name="ISystemProperties"
     extends="$unknown"
-    uuid="1d7aca29-97f0-4287-9874-a60ec4f80ea6"
+    uuid="413ea94c-efd9-491e-81fc-5df0c4d864bb"
     wsmap="managed"
     >
@@ -8492,4 +8520,19 @@
         The path to the default Guest Additions ISO image. Can be empty if
         the location is not known in this installation.
+      </desc>
+    </attribute>
+
+    <attribute name="defaultFrontend" type="wstring">
+      <desc>
+        Selects which VM frontend should be used by default when launching
+        a VM through the <link to="IMachine::launchVMProcess" /> method.
+        Empty or @c null strings do not define a particular default, it is up
+        to <link to="IMachine::launchVMProcess" /> to select one. See the
+        description of <link to="IMachine::launchVMProcess" /> for the valid
+        frontend types.
+
+        This global setting is overridden by the per-VM attribute
+        <link to="IMachine::defaultFrontend" /> or a frontend type
+        passed to <link to="IMachine::launchVMProcess" />.
       </desc>
     </attribute>
Index: /trunk/src/VBox/Main/include/MachineImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/MachineImpl.h	(revision 44947)
+++ /trunk/src/VBox/Main/include/MachineImpl.h	(revision 44948)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2006-2012 Oracle Corporation
+ * Copyright (C) 2006-2013 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -250,66 +250,68 @@
         ~HWData();
 
-        Bstr                 mHWVersion;
-        Guid                 mHardwareUUID;   /**< If Null, use mData.mUuid. */
-        ULONG                mMemorySize;
-        ULONG                mMemoryBalloonSize;
-        BOOL                 mPageFusionEnabled;
-        ULONG                mVRAMSize;
-        ULONG                mVideoCaptureWidth;
-        ULONG                mVideoCaptureHeight;
-        Bstr                 mVideoCaptureFile;
-        BOOL                 mVideoCaptureEnabled;
-        ULONG                mMonitorCount;
-        BOOL                 mHWVirtExEnabled;
-        BOOL                 mHWVirtExExclusive;
-        BOOL                 mHWVirtExNestedPagingEnabled;
-        BOOL                 mHWVirtExLargePagesEnabled;
-        BOOL                 mHWVirtExVPIDEnabled;
-        BOOL                 mHWVirtExForceEnabled;
-        BOOL                 mAccelerate2DVideoEnabled;
-        BOOL                 mPAEEnabled;
-        BOOL                 mSyntheticCpu;
-        ULONG                mCPUCount;
-        BOOL                 mCPUHotPlugEnabled;
-        ULONG                mCpuExecutionCap;
-        BOOL                 mAccelerate3DEnabled;
-        BOOL                 mHPETEnabled;
-
-        BOOL                 mCPUAttached[SchemaDefs::MaxCPUCount];
-
-        settings::CpuIdLeaf  mCpuIdStdLeafs[11];
-        settings::CpuIdLeaf  mCpuIdExtLeafs[11];
-
-        DeviceType_T         mBootOrder[SchemaDefs::MaxBootPosition];
+        Bstr                mHWVersion;
+        Guid                mHardwareUUID;  /**< If Null, use mData.mUuid. */
+        ULONG               mMemorySize;
+        ULONG               mMemoryBalloonSize;
+        BOOL                mPageFusionEnabled;
+        ULONG               mVRAMSize;
+        ULONG               mVideoCaptureWidth;
+        ULONG               mVideoCaptureHeight;
+        Bstr                mVideoCaptureFile;
+        BOOL                mVideoCaptureEnabled;
+        ULONG               mMonitorCount;
+        BOOL                mHWVirtExEnabled;
+        BOOL                mHWVirtExExclusive;
+        BOOL                mHWVirtExNestedPagingEnabled;
+        BOOL                mHWVirtExLargePagesEnabled;
+        BOOL                mHWVirtExVPIDEnabled;
+        BOOL                mHWVirtExForceEnabled;
+        BOOL                mAccelerate2DVideoEnabled;
+        BOOL                mPAEEnabled;
+        BOOL                mSyntheticCpu;
+        ULONG               mCPUCount;
+        BOOL                mCPUHotPlugEnabled;
+        ULONG               mCpuExecutionCap;
+        BOOL                mAccelerate3DEnabled;
+        BOOL                mHPETEnabled;
+
+        BOOL                mCPUAttached[SchemaDefs::MaxCPUCount];
+
+        settings::CpuIdLeaf mCpuIdStdLeafs[11];
+        settings::CpuIdLeaf mCpuIdExtLeafs[11];
+
+        DeviceType_T        mBootOrder[SchemaDefs::MaxBootPosition];
 
         typedef std::list<ComObjPtr<SharedFolder> > SharedFolderList;
-        SharedFolderList     mSharedFolders;
-
-        ClipboardMode_T      mClipboardMode;
-        DragAndDropMode_T    mDragAndDropMode;
+        SharedFolderList    mSharedFolders;
+
+        ClipboardMode_T     mClipboardMode;
+        DragAndDropMode_T   mDragAndDropMode;
 
         typedef std::map<Utf8Str, GuestProperty> GuestPropertyMap;
-        GuestPropertyMap     mGuestProperties;
-        Utf8Str              mGuestPropertyNotificationPatterns;
-
-        FirmwareType_T       mFirmwareType;
-        KeyboardHIDType_T    mKeyboardHIDType;
-        PointingHIDType_T    mPointingHIDType;
-        ChipsetType_T        mChipsetType;
-        BOOL                 mEmulatedUSBWebcamEnabled;
-        BOOL                 mEmulatedUSBCardReaderEnabled;
-
-        BOOL                 mIOCacheEnabled;
-        ULONG                mIOCacheSize;
+        GuestPropertyMap    mGuestProperties;
+        Utf8Str             mGuestPropertyNotificationPatterns;
+
+        FirmwareType_T      mFirmwareType;
+        KeyboardHIDType_T   mKeyboardHIDType;
+        PointingHIDType_T   mPointingHIDType;
+        ChipsetType_T       mChipsetType;
+        BOOL                mEmulatedUSBWebcamEnabled;
+        BOOL                mEmulatedUSBCardReaderEnabled;
+
+        BOOL                mIOCacheEnabled;
+        ULONG               mIOCacheSize;
 
         typedef std::list<ComObjPtr<PCIDeviceAttachment> > PCIDeviceAssignmentList;
         PCIDeviceAssignmentList mPCIDeviceAssignments;
 
-        settings::Debugging  mDebugging;
-        settings::Autostart  mAutostart;
+        settings::Debugging mDebugging;
+        settings::Autostart mAutostart;
+
+        Utf8Str             mDefaultFrontend;
     };
 
     /**
-   *  Hard disk and other media data.
+     *  Hard disk and other media data.
      *
      *  The usage policy is the same as for HWData, but a separate structure
@@ -505,4 +507,6 @@
     STDMETHOD(COMGETTER(AutostopType))(AutostopType_T *penmAutostopType);
     STDMETHOD(COMSETTER(AutostopType))(AutostopType_T enmAutostopType);
+    STDMETHOD(COMGETTER(DefaultFrontend))(BSTR *aDefaultFrontend);
+    STDMETHOD(COMSETTER(DefaultFrontend))(IN_BSTR aDefaultFrontend);
 
     // IMachine methods
Index: /trunk/src/VBox/Main/include/SystemPropertiesImpl.h
===================================================================
--- /trunk/src/VBox/Main/include/SystemPropertiesImpl.h	(revision 44947)
+++ /trunk/src/VBox/Main/include/SystemPropertiesImpl.h	(revision 44948)
@@ -7,5 +7,5 @@
 
 /*
- * Copyright (C) 2006-2012 Oracle Corporation
+ * Copyright (C) 2006-2013 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -96,4 +96,6 @@
     STDMETHOD(COMGETTER(DefaultAdditionsISO))(BSTR *aDefaultAdditionsISO);
     STDMETHOD(COMSETTER(DefaultAdditionsISO))(IN_BSTR aDefaultAdditionsISO);
+    STDMETHOD(COMGETTER(DefaultFrontend))(BSTR *aDefaultFrontend);
+    STDMETHOD(COMSETTER(DefaultFrontend))(IN_BSTR aDefaultFrontend);
 
     STDMETHOD(GetMaxNetworkAdapters)(ChipsetType_T aChipset, ULONG *aMaxInstances);
@@ -130,4 +132,5 @@
     HRESULT setAutostartDatabasePath(const Utf8Str &aPath);
     HRESULT setDefaultAdditionsISO(const Utf8Str &aPath);
+    HRESULT setDefaultFrontend(const Utf8Str &aPath);
 
     VirtualBox * const  mParent;
Index: /trunk/src/VBox/Main/src-server/MachineImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/MachineImpl.cpp	(revision 44947)
+++ /trunk/src/VBox/Main/src-server/MachineImpl.cpp	(revision 44948)
@@ -1004,5 +1004,5 @@
 
     if (test.isValid())
-        return setError(E_INVALIDARG,  tr("A machine cannot have a UUID as its name"));
+        return setError(E_INVALIDARG, tr("A machine cannot have a UUID as its name"));
 
     AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
@@ -3567,10 +3567,10 @@
  */
 STDMETHODIMP Machine::LaunchVMProcess(ISession *aSession,
-                                      IN_BSTR aType,
+                                      IN_BSTR aFrontend,
                                       IN_BSTR aEnvironment,
                                       IProgress **aProgress)
 {
-    CheckComArgStrNotEmptyOrNull(aType);
-    Utf8Str strType(aType);
+    CheckComArgStr(aFrontend);
+    Utf8Str strFrontend(aFrontend);
     Utf8Str strEnvironment(aEnvironment);
     /* "emergencystop" doesn't need the session, so skip the checks/interface
@@ -3578,5 +3578,5 @@
      * special API method would be even more effort, and would require explicit
      * support by every API client. It's better to hide the feature a bit. */
-    if (strType != "emergencystop")
+    if (strFrontend != "emergencystop")
         CheckComArgNotNull(aSession);
     CheckComArgOutPointerValid(aProgress);
@@ -3585,8 +3585,29 @@
     if (FAILED(autoCaller.rc())) return autoCaller.rc();
 
-    ComPtr<IInternalSessionControl> control;
     HRESULT rc = S_OK;
-
-    if (strType != "emergencystop")
+    if (strFrontend.isEmpty())
+    {
+        Bstr bstrFrontend;
+        rc = COMGETTER(DefaultFrontend)(bstrFrontend.asOutParam());
+        if (FAILED(rc))
+            return rc;
+        strFrontend = bstrFrontend;
+        if (strFrontend.isEmpty())
+        {
+            ComPtr<ISystemProperties> systemProperties;
+            rc = mParent->COMGETTER(SystemProperties)(systemProperties.asOutParam());
+            if (FAILED(rc))
+                return rc;
+            rc = systemProperties->COMGETTER(DefaultFrontend)(bstrFrontend.asOutParam());
+            if (FAILED(rc))
+                return rc;
+            strFrontend = bstrFrontend;
+        }
+        /* paranoia - emergencystop is not a valid default */
+        if (strFrontend == "emergencystop")
+            strFrontend = Utf8Str::Empty;
+    }
+
+    if (strFrontend != "emergencystop")
     {
         /* check the session state */
@@ -3601,19 +3622,16 @@
 
         /* get the IInternalSessionControl interface */
-        control = aSession;
+        ComPtr<IInternalSessionControl> control(aSession);
         ComAssertMsgRet(!control.isNull(),
                         ("No IInternalSessionControl interface"),
                         E_INVALIDARG);
-    }
-
-    /* get the teleporter enable state for the progress object init. */
-    BOOL fTeleporterEnabled;
-    rc = COMGETTER(TeleporterEnabled)(&fTeleporterEnabled);
-    if (FAILED(rc))
-        return rc;
-
-    /* create a progress object */
-    if (strType != "emergencystop")
-    {
+
+        /* get the teleporter enable state for the progress object init. */
+        BOOL fTeleporterEnabled;
+        rc = COMGETTER(TeleporterEnabled)(&fTeleporterEnabled);
+        if (FAILED(rc))
+            return rc;
+
+        /* create a progress object */
         ComObjPtr<ProgressProxy> progress;
         progress.createObject();
@@ -3623,5 +3641,5 @@
                             TRUE /* aCancelable */,
                             fTeleporterEnabled ? 20 : 10 /* uTotalOperationsWeight */,
-                            BstrFmt(tr("Creating process for virtual machine \"%s\" (%s)"), mUserData->s.strName.c_str(), strType.c_str()).raw(),
+                            BstrFmt(tr("Creating process for virtual machine \"%s\" (%s)"), mUserData->s.strName.c_str(), strFrontend.c_str()).raw(),
                             2 /* uFirstOperationWeight */,
                             fTeleporterEnabled ? 3 : 1 /* cOtherProgressObjectOperations */);
@@ -3629,5 +3647,5 @@
         if (SUCCEEDED(rc))
         {
-            rc = launchVMProcess(control, strType, strEnvironment, progress);
+            rc = launchVMProcess(control, strFrontend, strEnvironment, progress);
             if (SUCCEEDED(rc))
             {
@@ -6968,4 +6986,39 @@
 }
 
+STDMETHODIMP Machine::COMGETTER(DefaultFrontend)(BSTR *aDefaultFrontend)
+{
+    CheckComArgOutPointerValid(aDefaultFrontend);
+    AutoCaller autoCaller(this);
+    HRESULT hrc = autoCaller.rc();
+    if (SUCCEEDED(hrc))
+    {
+        AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+        mHWData->mDefaultFrontend.cloneTo(aDefaultFrontend);
+    }
+    return hrc;
+}
+
+STDMETHODIMP Machine::COMSETTER(DefaultFrontend)(IN_BSTR aDefaultFrontend)
+{
+    CheckComArgStr(aDefaultFrontend);
+    AutoCaller autoCaller(this);
+    HRESULT hrc = autoCaller.rc();
+    if (SUCCEEDED(hrc))
+    {
+        AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+        hrc = checkStateDependency(MutableOrSavedStateDep);
+        if (SUCCEEDED(hrc))
+        {
+            hrc = mHWData.backupEx();
+            if (SUCCEEDED(hrc))
+            {
+                setModified(IsModified_MachineData);
+                mHWData->mDefaultFrontend = aDefaultFrontend;
+            }
+        }
+    }
+    return hrc;
+}
+
 
 STDMETHODIMP Machine::CloneTo(IMachine *pTarget, CloneMode_T mode, ComSafeArrayIn(CloneOptions_T, options), IProgress **pProgress)
@@ -7218,5 +7271,5 @@
  */
 HRESULT Machine::launchVMProcess(IInternalSessionControl *aControl,
-                                 const Utf8Str &strType,
+                                 const Utf8Str &strFrontend,
                                  const Utf8Str &strEnvironment,
                                  ProgressProxy *aProgress)
@@ -7314,5 +7367,5 @@
     /* Qt is default */
 #ifdef VBOX_WITH_QTGUI
-    if (strType == "gui" || strType == "GUI/Qt")
+    if (strFrontend == "gui" || strFrontend == "GUI/Qt" || strFrontend == "")
     {
 # ifdef RT_OS_DARWIN /* Avoid Launch Services confusing this with the selector by using a helper app. */
@@ -7336,5 +7389,5 @@
 
 #ifdef VBOX_WITH_VBOXSDL
-    if (strType == "sdl" || strType == "GUI/SDL")
+    if (strFrontend == "sdl" || strFrontend == "GUI/SDL")
     {
         const char VBoxSDL_exe[] = "VBoxSDL" HOSTSUFF_EXE;
@@ -7354,7 +7407,7 @@
 
 #ifdef VBOX_WITH_HEADLESS
-    if (   strType == "headless"
-        || strType == "capture"
-        || strType == "vrdp" /* Deprecated. Same as headless. */
+    if (   strFrontend == "headless"
+        || strFrontend == "capture"
+        || strFrontend == "vrdp" /* Deprecated. Same as headless. */
        )
     {
@@ -7377,5 +7430,5 @@
                                        0, /* For "--capture". */
                                        0 };
-        if (strType == "capture")
+        if (strFrontend == "capture")
         {
             unsigned pos = RT_ELEMENTS(args) - 2;
@@ -7398,6 +7451,6 @@
         RTEnvDestroy(env);
         return setError(E_INVALIDARG,
-                        tr("Invalid session type: '%s'"),
-                        strType.c_str());
+                        tr("Invalid frontend name: '%s'"),
+                        strFrontend.c_str());
     }
 
@@ -7440,5 +7493,5 @@
     mData->mSession.mPID = pid;
     mData->mSession.mState = SessionState_Spawning;
-    mData->mSession.mType = strType;
+    mData->mSession.mType = strFrontend;
 
     LogFlowThisFuncLeave();
@@ -8718,4 +8771,7 @@
 
         mHWData->mAutostart = *pAutostart;
+
+        /* default frontend */
+        mHWData->mDefaultFrontend = data.strDefaultFrontend;
     }
     catch(std::bad_alloc &)
@@ -9922,4 +9978,6 @@
         *pDbg = mHWData->mDebugging;
         *pAutostart = mHWData->mAutostart;
+
+        data.strDefaultFrontend = mHWData->mDefaultFrontend;
     }
     catch(std::bad_alloc &)
Index: /trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp
===================================================================
--- /trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp	(revision 44947)
+++ /trunk/src/VBox/Main/src-server/SystemPropertiesImpl.cpp	(revision 44948)
@@ -5,5 +5,5 @@
 
 /*
- * Copyright (C) 2006-2012 Oracle Corporation
+ * Copyright (C) 2006-2013 Oracle Corporation
  *
  * This file is part of VirtualBox Open Source Edition (OSE), as
@@ -992,4 +992,38 @@
 }
 
+STDMETHODIMP SystemProperties::COMGETTER(DefaultFrontend)(BSTR *aDefaultFrontend)
+{
+    CheckComArgOutPointerValid(aDefaultFrontend);
+
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoReadLock alock(this COMMA_LOCKVAL_SRC_POS);
+    m->strDefaultFrontend.cloneTo(aDefaultFrontend);
+
+    return S_OK;
+}
+
+STDMETHODIMP SystemProperties::COMSETTER(DefaultFrontend)(IN_BSTR aDefaultFrontend)
+{
+    AutoCaller autoCaller(this);
+    if (FAILED(autoCaller.rc())) return autoCaller.rc();
+
+    AutoWriteLock alock(this COMMA_LOCKVAL_SRC_POS);
+    if (m->strDefaultFrontend == Utf8Str(aDefaultFrontend))
+        return S_OK;
+    HRESULT rc = setDefaultFrontend(aDefaultFrontend);
+    alock.release();
+
+    if (SUCCEEDED(rc))
+    {
+        // VirtualBox::saveSettings() needs vbox write lock
+        AutoWriteLock vboxLock(mParent COMMA_LOCKVAL_SRC_POS);
+        rc = mParent->saveSettings();
+    }
+
+    return rc;
+}
+
 // public methods only for internal purposes
 /////////////////////////////////////////////////////////////////////////////
@@ -1030,4 +1064,7 @@
         (void)setDefaultAdditionsISO(data.strDefaultAdditionsISO);
     }
+
+    rc = setDefaultFrontend(data.strDefaultFrontend);
+    if (FAILED(rc)) return rc;
 
     return S_OK;
@@ -1283,2 +1320,9 @@
     return S_OK;
 }
+
+HRESULT SystemProperties::setDefaultFrontend(const Utf8Str &aDefaultFrontend)
+{
+    m->strDefaultFrontend = aDefaultFrontend;
+
+    return S_OK;
+}
Index: /trunk/src/VBox/Main/xml/SchemaDefs.xsl
===================================================================
--- /trunk/src/VBox/Main/xml/SchemaDefs.xsl	(revision 44947)
+++ /trunk/src/VBox/Main/xml/SchemaDefs.xsl	(revision 44948)
@@ -169,5 +169,5 @@
     <xsl:with-param name="member" select="'        MaxGuestMonitors'"/>
     <xsl:with-param name="select" select="
-      xsd:complexType[@name='TDisplay']/xsd:attribute[@name='monitorCount']//xsd:maxInclusive/@value
+      xsd:simpleType[@name='TMonitorCount']//xsd:maxInclusive/@value
     "/>
   </xsl:call-template>
Index: /trunk/src/VBox/Main/xml/Settings.cpp
===================================================================
--- /trunk/src/VBox/Main/xml/Settings.cpp	(revision 44947)
+++ /trunk/src/VBox/Main/xml/Settings.cpp	(revision 44948)
@@ -845,9 +845,13 @@
             break;
 
+        case SettingsVersion_v1_14:
+            pcszVersion = "1.14";
+            break;
+
         case SettingsVersion_Future:
             // can be set if this code runs on XML files that were created by a future version of VBox;
             // in that case, downgrade to current version when writing since we can't write future versions...
-            pcszVersion = "1.13";
-            m->sv = SettingsVersion_v1_13;
+            pcszVersion = "1.14";
+            m->sv = SettingsVersion_v1_14;
             break;
 
@@ -1297,4 +1301,5 @@
                         pelmGlobalChild->getAttributeValue("LogHistoryCount", systemProperties.ulLogHistoryCount);
                         pelmGlobalChild->getAttributeValue("autostartDatabasePath", systemProperties.strAutostartDatabasePath);
+                        pelmGlobalChild->getAttributeValue("defaultFrontend", systemProperties.strDefaultFrontend);
                     }
                     else if (pelmGlobalChild->nameEquals("ExtraData"))
@@ -1409,4 +1414,6 @@
     if (systemProperties.strAutostartDatabasePath.length())
         pelmSysProps->setAttribute("autostartDatabasePath", systemProperties.strAutostartDatabasePath);
+    if (systemProperties.strDefaultFrontend.length())
+        pelmSysProps->setAttribute("defaultFrontend", systemProperties.strDefaultFrontend);
 
     buildUSBDeviceFilters(*pelmGlobal->createChild("USBDeviceFilters"),
@@ -1704,4 +1711,5 @@
                   && (ioSettings                == h.ioSettings)
                   && (pciAttachments            == h.pciAttachments)
+                  && (strDefaultFrontend        == h.strDefaultFrontend)
                 )
             );
@@ -2885,4 +2893,13 @@
             {
                 pelmWebcam->getAttributeValue("enabled", hw.fEmulatedUSBWebcam);
+            }
+        }
+        else if (pelmHwChild->nameEquals("Frontend"))
+        {
+            const xml::ElementNode *pelmDefault;
+
+            if ((pelmDefault = pelmHwChild->findChildElement("Default")))
+            {
+                pelmDefault->getAttributeValue("type", hw.strDefaultFrontend);
             }
         }
@@ -4206,4 +4223,12 @@
     }
 
+    if (   m->sv >= SettingsVersion_v1_14
+        && !hw.strDefaultFrontend.isEmpty())
+    {
+        xml::ElementNode *pelmFrontend = pelmHardware->createChild("Frontend");
+        xml::ElementNode *pelmDefault = pelmFrontend->createChild("Default");
+        pelmDefault->setAttribute("type", hw.strDefaultFrontend);
+    }
+
     xml::ElementNode *pelmGuest = pelmHardware->createChild("Guest");
     pelmGuest->setAttribute("memoryBalloonSize", hw.ulMemoryBalloonSize);
@@ -4865,4 +4890,11 @@
 void MachineConfigFile::bumpSettingsVersionIfNeeded()
 {
+    if (m->sv < SettingsVersion_v1_14)
+    {
+        // VirtualBox 4.3 adds default frontend setting.
+        if (!hardwareMachine.strDefaultFrontend.isEmpty())
+            m->sv = SettingsVersion_v1_14;
+    }
+
     if (m->sv < SettingsVersion_v1_13)
     {
Index: unk/src/VBox/Main/xml/SettingsConverter.xsl
===================================================================
--- /trunk/src/VBox/Main/xml/SettingsConverter.xsl	(revision 44947)
+++ 	(revision )
@@ -1,1043 +1,0 @@
-<?xml version="1.0"?>
-
-<!--
- *  :tabSize=2:indentSize=2:noTabs=true:
- *  :folding=explicit:collapseFolds=1:
- *
- *  Template to convert old VirtualBox settings files to the most recent format.
-
-    Copyright (C) 2006-2012 Oracle Corporation
-
-    This file is part of VirtualBox Open Source Edition (OSE), as
-    available from http://www.virtualbox.org. This file is free software;
-    you can redistribute it and/or modify it under the terms of the GNU
-    General Public License (GPL) as published by the Free Software
-    Foundation, in version 2 as it comes in the "COPYING" file of the
-    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
--->
-
-<xsl:stylesheet version="1.0"
-  xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns:vb="http://www.innotek.de/VirtualBox-settings"
-  xmlns="http://www.innotek.de/VirtualBox-settings"
-  exclude-result-prefixes="#default vb xsl xsd"
->
-
-<xsl:output method="xml" indent="yes"/>
-
-<xsl:variable name="curVer" select="substring-before(/vb:VirtualBox/@version, '-')"/>
-<xsl:variable name="curVerPlat" select="substring-after(/vb:VirtualBox/@version, '-')"/>
-<xsl:variable name="curVerFull" select="/vb:VirtualBox/@version"/>
-
-<xsl:template match="/">
-  <xsl:comment> Automatically converted from version '<xsl:value-of select="$curVerFull"/>' </xsl:comment>
-  <xsl:copy>
-    <xsl:apply-templates select="@*|node()"/>
-  </xsl:copy>
-</xsl:template>
-
-<!--
- *  comments outside the root node are gathered to a single line, fix this
--->
-<xsl:template match="/comment()">
-  <xsl:copy-of select="."/>
-</xsl:template>
-
-<!--
- *  Forbid non-VirtualBox root nodes
--->
-<xsl:template match="/*">
-  <xsl:message terminate="yes">
-Cannot convert an unknown XML file with the root node '<xsl:value-of select="name()"/>'!
-  </xsl:message>
-</xsl:template>
-
-<!--
- *  Forbid all unsupported VirtualBox settings versions
--->
-<xsl:template match="/vb:VirtualBox">
-  <xsl:message terminate="yes">
-Cannot convert settings from version '<xsl:value-of select="@version"/>'.
-The source version is not supported.
-  </xsl:message>
-</xsl:template>
-
-<!--
- * Accept supported settings versions (source setting files we can convert)
- *
- * Note that in order to simplify conversion from versions prior to the previous
- * one, we support multi-step conversion like this: step 1: 1.0 => 1.1,
- * step 2: 1.1 => 1.2, where 1.2 is the most recent version. If you want to use
- * such multi-step mode, you need to ensure that only 1.0 => 1.1 is possible, by
- * using the 'mode=1.1' attribute on both 'apply-templates' within the starting
- * '/vb:VirtualBox[1.0]' template and within all templates that this
- * 'apply-templates' should apply.
- *
- * If no 'mode' attribute is used as described above, then a direct conversion
- * (1.0 => 1.2 in the above example) will happen when version 1.0 of the settings
- * files is detected. Note that the direct conversion from pre-previous versions
- * will require to patch their conversion templates so that they include all
- * modifications from all newer versions, which is error-prone. It's better to
- * use the milt-step mode.
--->
-
-<!-- 1.1 => 1.2 -->
-<xsl:template match="/vb:VirtualBox[substring-before(@version,'-')='1.1']">
-  <xsl:copy>
-    <xsl:attribute name="version"><xsl:value-of select="concat('1.2','-',$curVerPlat)"/></xsl:attribute>
-    <xsl:apply-templates select="node()" mode="v1.2"/>
-  </xsl:copy>
-</xsl:template>
-
-<!-- 1.2 => 1.3.pre -->
-<xsl:template match="/vb:VirtualBox[substring-before(@version,'-')='1.2']">
-  <xsl:copy>
-    <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>
-
-<!-- 1.3 => 1.4 -->
-<xsl:template match="/vb:VirtualBox[substring-before(@version,'-')='1.3']">
-  <xsl:copy>
-    <xsl:attribute name="version"><xsl:value-of select="concat('1.4','-',$curVerPlat)"/></xsl:attribute>
-    <xsl:apply-templates select="node()" mode="v1.4"/>
-  </xsl:copy>
-</xsl:template>
-
-<!-- 1.4 => 1.5 -->
-<xsl:template match="/vb:VirtualBox[substring-before(@version,'-')='1.4']">
-  <xsl:copy>
-    <xsl:attribute name="version"><xsl:value-of select="concat('1.5','-',$curVerPlat)"/></xsl:attribute>
-    <xsl:apply-templates select="node()" mode="v1.5"/>
-  </xsl:copy>
-</xsl:template>
-
-<!-- 1.5 => 1.6 -->
-<xsl:template match="/vb:VirtualBox[substring-before(@version,'-')='1.5']">
-  <xsl:copy>
-    <xsl:attribute name="version"><xsl:value-of select="concat('1.6','-',$curVerPlat)"/></xsl:attribute>
-    <xsl:apply-templates select="node()" mode="v1.6"/>
-  </xsl:copy>
-</xsl:template>
-
-<!-- 1.6 => 1.7 -->
-<xsl:template match="/vb:VirtualBox[substring-before(@version,'-')='1.6']">
-  <xsl:copy>
-    <xsl:attribute name="version"><xsl:value-of select="concat('1.7','-',$curVerPlat)"/></xsl:attribute>
-    <xsl:apply-templates select="node()" mode="v1.7"/>
-  </xsl:copy>
-</xsl:template>
-
-<!-- 1.7 => 1.8 -->
-<xsl:template match="/vb:VirtualBox[substring-before(@version,'-')='1.7']">
-  <xsl:copy>
-    <xsl:attribute name="version"><xsl:value-of select="concat('1.8','-',$curVerPlat)"/></xsl:attribute>
-    <xsl:apply-templates select="node()" mode="v1.8"/>
-  </xsl:copy>
-</xsl:template>
-
-<!--
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *  1.1 => 1.2
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--->
-
-<!--
- *  all non-root elements that are not explicitly matched are copied as is
--->
-<xsl:template match="@*|node()[../..]" mode="v1.2">
-  <xsl:copy>
-    <xsl:apply-templates select="@*|node()[../..]" mode="v1.2"/>
-  </xsl:copy>
-</xsl:template>
-
-<!--
- *  Global settings
--->
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.1']/
-                     vb:Global/vb:DiskImageRegistry/vb:HardDiskImages//
-                     vb:Image"
-              mode="v1.2">
-  <DiffHardDisk>
-    <xsl:attribute name="uuid"><xsl:value-of select="@uuid"/></xsl:attribute>
-    <VirtualDiskImage>
-      <xsl:attribute name="filePath"><xsl:value-of select="@src"/></xsl:attribute>
-    </VirtualDiskImage>
-    <xsl:apply-templates select="vb:Image"/>
-  </DiffHardDisk>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.1']/
-                     vb:Global/vb:DiskImageRegistry"
-              mode="v1.2">
-<DiskRegistry>
-  <HardDisks>
-    <xsl:for-each select="vb:HardDiskImages/vb:Image">
-      <HardDisk>
-        <xsl:attribute name="uuid"><xsl:value-of select="@uuid"/></xsl:attribute>
-        <xsl:attribute name="type">
-          <xsl:choose>
-            <xsl:when test="@independent='immutable'">immutable</xsl:when>
-            <xsl:when test="@independent='mutable'">immutable</xsl:when>
-            <xsl:otherwise>normal</xsl:otherwise>
-          </xsl:choose>
-        </xsl:attribute>
-        <VirtualDiskImage>
-          <xsl:attribute name="filePath"><xsl:value-of select="@src"/></xsl:attribute>
-        </VirtualDiskImage>
-        <xsl:apply-templates select="vb:Image"/>
-      </HardDisk>
-    </xsl:for-each>
-  </HardDisks>
-  <xsl:copy-of select="vb:DVDImages"/>
-  <xsl:copy-of select="vb:FloppyImages"/>
-</DiskRegistry>
-</xsl:template>
-
-<!--
- *  Machine settings
--->
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.1']/
-                     vb:Machine//vb:HardDisks"
-              mode="v1.2">
-  <HardDiskAttachments>
-    <xsl:for-each select="vb:HardDisk">
-      <HardDiskAttachment>
-        <xsl:attribute name="hardDisk"><xsl:value-of select="vb:Image/@uuid"/></xsl:attribute>
-        <xsl:apply-templates select="@*"/>
-      </HardDiskAttachment>
-    </xsl:for-each>
-  </HardDiskAttachments>
-</xsl:template>
-
-<!--
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *  1.2 => 1.3.pre
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--->
-
-<!--
- *  all non-root elements that are not explicitly matched are copied as is
--->
-<xsl:template match="@*|node()[../..]" mode="v1.3.pre">
-  <xsl:copy>
-    <xsl:apply-templates select="@*|node()[../..]" mode="v1.3.pre"/>
-  </xsl:copy>
-</xsl:template>
-
-<!--
- *  Global settings
--->
-
-<!--
- *  Machine settings
--->
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.2']/
-                     vb:Machine//vb:USBController"
-              mode="v1.3.pre">
-  <xsl:copy>
-    <xsl:apply-templates select="@*|node()" mode="v1.3.pre"/>
-  </xsl:copy>
-  <SATAController enabled="false"/>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.2']/
-                     vb:Machine//vb:HardDiskAttachments/vb:HardDiskAttachment"
-              mode="v1.3.pre">
-  <HardDiskAttachment>
-    <xsl:attribute name="hardDisk"><xsl:value-of select="@hardDisk"/></xsl:attribute>
-    <xsl:attribute name="bus">
-      <xsl:choose>
-        <xsl:when test="@bus='ide0'">
-          <xsl:text>IDE</xsl:text>
-        </xsl:when>
-        <xsl:when test="@bus='ide1'">
-          <xsl:text>IDE</xsl:text>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:message terminate="yes">
-Value '<xsl:value-of select="@bus"/>' of 'HardDiskAttachment::bus' attribute is invalid.
-          </xsl:message>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:attribute>
-    <xsl:attribute name="channel">0</xsl:attribute>
-    <xsl:attribute name="device">
-      <xsl:choose>
-        <xsl:when test="@device='master'">
-          <xsl:text>0</xsl:text>
-        </xsl:when>
-        <xsl:when test="@device='slave'">
-          <xsl:text>1</xsl:text>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:message terminate="yes">
-Value '<xsl:value-of select="@device"/>' of 'HardDiskAttachment::device' attribute is invalid.
-          </xsl:message>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:attribute>
-  </HardDiskAttachment>
-</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:if test="not(../vb:Uart)">
-    <UART/>
-  </xsl:if>
-  <xsl:if test="not(../vb:Lpt)">
-    <LPT/>
-  </xsl:if>
-  <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='coreaudio'">CoreAudio</xsl:when>
-        <xsl:when test="@driver='winmm'">WinMM</xsl:when>
-        <xsl:when test="@driver='dsound'">DirectSound</xsl:when>
-        <xsl:when test="@driver='solaudio'">SolAudio</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>
-
-<!--
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *  1.3 => 1.4
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--->
-
-<!--
- *  all non-root elements that are not explicitly matched are copied as is
--->
-<xsl:template match="@*|node()[../..]" mode="v1.4">
-  <xsl:copy>
-    <xsl:apply-templates select="@*|node()[../..]" mode="v1.4"/>
-  </xsl:copy>
-</xsl:template>
-
-<!--
- *  Global settings
--->
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3']/
-                     vb:Global/vb:DiskRegistry/vb:HardDisks/vb:HardDisk |
-                     vb:VirtualBox[substring-before(@version,'-')='1.3']/
-                     vb:Global/vb:DiskRegistry/vb:HardDisks//vb:DiffHardDisk"
-              mode="v1.4-HardDisk-format-location">
-  <xsl:attribute name="format">
-    <xsl:choose>
-      <xsl:when test="*[self::vb:VirtualDiskImage][1]">VDI</xsl:when>
-      <xsl:when test="*[self::vb:VMDKImage][1]">VMDK</xsl:when>
-      <xsl:when test="*[self::vb:VHDImage][1]">VHD</xsl:when>
-      <xsl:when test="*[self::vb:ISCSIHardDisk][1]">iSCSI</xsl:when>
-      <xsl:when test="*[self::vb:CustomHardDisk][1]">
-        <xsl:value-of select="@format"/>
-      </xsl:when>
-      <xsl:otherwise>
-        <xsl:message terminate="yes">
-Sub-element '<xsl:value-of select="name(*[1])"/>' of 'HardDisk' element is invalid.
-        </xsl:message>
-      </xsl:otherwise>
-    </xsl:choose>
-  </xsl:attribute>
-  <xsl:attribute name="location">
-    <xsl:choose>
-      <xsl:when test="*[self::vb:VirtualDiskImage][1]">
-        <xsl:value-of select="vb:VirtualDiskImage/@filePath"/>
-      </xsl:when>
-      <xsl:when test="*[self::vb:VMDKImage][1]">
-        <xsl:value-of select="vb:VMDKImage/@filePath"/>
-      </xsl:when>
-      <xsl:when test="*[self::vb:VHDImage][1]">
-        <xsl:value-of select="vb:VHDImage/@filePath"/>
-      </xsl:when>
-      <xsl:when test="*[self::vb:CustomHardDisk][1]">
-        <xsl:value-of select="vb:CustomHardDisk/@location"/>
-      </xsl:when>
-      <xsl:when test="*[self::vb:ISCSIHardDisk][1]">
-        <xsl:text>iscsi://</xsl:text>
-        <xsl:if test="vb:ISCSIHardDisk/@userName">
-          <xsl:value-of select="vb:ISCSIHardDisk/@userName"/>
-          <!-- note that for privacy reasons we don't show the password in the
-               location string -->
-          <xsl:text>@</xsl:text>
-        </xsl:if>
-        <xsl:if test="vb:ISCSIHardDisk/@server">
-          <xsl:value-of select="vb:ISCSIHardDisk/@server"/>
-          <xsl:if test="vb:ISCSIHardDisk/@port">
-            <xsl:value-of select="concat(':',vb:ISCSIHardDisk/@port)"/>
-          </xsl:if>
-        </xsl:if>
-        <xsl:if test="vb:ISCSIHardDisk/@target">
-          <xsl:value-of select="concat('/',vb:ISCSIHardDisk/@target)"/>
-        </xsl:if>
-        <xsl:if test="vb:ISCSIHardDisk/@lun">
-          <xsl:value-of select="concat('/enc',vb:ISCSIHardDisk/@lun)"/>
-        </xsl:if>
-        <xsl:if test="not(vb:ISCSIHardDisk/@server) or not(vb:ISCSIHardDisk/@target)">
-          <xsl:message terminate="yes">
-Required attribute 'server' or 'target' is missing from ISCSIHardDisk element!
-          </xsl:message>
-        </xsl:if>
-      </xsl:when>
-    </xsl:choose>
-  </xsl:attribute>
-  <xsl:if test="*[self::vb:ISCSIHardDisk][1]">
-    <xsl:choose>
-      <xsl:when test="vb:ISCSIHardDisk/@server and vb:ISCSIHardDisk/@port">
-        <xsl:element name="Property">
-          <xsl:attribute name="name">TargetAddress</xsl:attribute>
-          <xsl:attribute name="value">
-            <xsl:value-of select="concat(vb:ISCSIHardDisk/@server,
-                                         ':',vb:ISCSIHardDisk/@port)"/>
-          </xsl:attribute>
-        </xsl:element>
-      </xsl:when>
-      <xsl:when test="vb:ISCSIHardDisk/@server">
-        <xsl:element name="Property">
-          <xsl:attribute name="name">TargetAddress</xsl:attribute>
-          <xsl:attribute name="value">
-            <xsl:value-of select="vb:ISCSIHardDisk/@server"/>
-          </xsl:attribute>
-        </xsl:element>
-      </xsl:when>
-    </xsl:choose>
-    <xsl:if test="vb:ISCSIHardDisk/@target">
-      <xsl:element name="Property">
-        <xsl:attribute name="name">TargetName</xsl:attribute>
-        <xsl:attribute name="value">
-          <xsl:value-of select="vb:ISCSIHardDisk/@target"/>
-        </xsl:attribute>
-      </xsl:element>
-    </xsl:if>
-    <xsl:if test="vb:ISCSIHardDisk/@userName">
-      <xsl:element name="Property">
-        <xsl:attribute name="name">InitiatorUsername</xsl:attribute>
-        <xsl:attribute name="value">
-          <xsl:value-of select="vb:ISCSIHardDisk/@userName"/>
-        </xsl:attribute>
-      </xsl:element>
-    </xsl:if>
-    <xsl:if test="vb:ISCSIHardDisk/@password">
-      <xsl:element name="Property">
-        <xsl:attribute name="name">InitiatorSecret</xsl:attribute>
-        <xsl:attribute name="value">
-          <xsl:value-of select="vb:ISCSIHardDisk/@password"/>
-        </xsl:attribute>
-      </xsl:element>
-    </xsl:if>
-    <xsl:if test="vb:ISCSIHardDisk/@lun">
-      <xsl:element name="Property">
-        <xsl:attribute name="name">LUN</xsl:attribute>
-        <xsl:attribute name="value">
-          <xsl:value-of select="concat('enc',vb:ISCSIHardDisk/@lun)"/>
-        </xsl:attribute>
-      </xsl:element>
-    </xsl:if>
-  </xsl:if>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3']/
-                     vb:Global/vb:DiskRegistry/vb:HardDisks/vb:HardDisk"
-              mode="v1.4">
-  <HardDisk>
-    <xsl:attribute name="uuid"><xsl:value-of select="@uuid"/></xsl:attribute>
-    <xsl:attribute name="type">
-      <xsl:choose>
-        <xsl:when test="@type='normal'">Normal</xsl:when>
-        <xsl:when test="@type='immutable'">Immutable</xsl:when>
-        <xsl:when test="@type='writethrough'">Writethrough</xsl:when>
-        <xsl:otherwise>
-          <xsl:message terminate="yes">
-Value '<xsl:value-of select="@type"/>' of 'HardDisk::type' attribute is invalid.
-          </xsl:message>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:attribute>
-    <xsl:apply-templates select="." mode="v1.4-HardDisk-format-location"/>
-    <xsl:apply-templates select="vb:DiffHardDisk" mode="v1.4"/>
-  </HardDisk>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3']/
-                     vb:Global/vb:DiskRegistry/vb:HardDisks/vb:HardDisk//
-                     vb:DiffHardDisk"
-              mode="v1.4">
-  <HardDisk>
-    <xsl:attribute name="uuid"><xsl:value-of select="@uuid"/></xsl:attribute>
-    <xsl:apply-templates select="." mode="v1.4-HardDisk-format-location"/>
-    <xsl:apply-templates select="vb:DiffHardDisk" mode="v1.4"/>
-  </HardDisk>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3']/
-                     vb:Global/vb:DiskRegistry/vb:DVDImages/vb:Image |
-                     vb:VirtualBox[substring-before(@version,'-')='1.3']/
-                     vb:Global/vb:DiskRegistry/vb:FloppyImages/vb:Image"
-              mode="v1.4">
-  <Image>
-    <xsl:attribute name="uuid"><xsl:value-of select="@uuid"/></xsl:attribute>
-    <xsl:attribute name="location"><xsl:value-of select="@src"/></xsl:attribute>
-  </Image>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3']/
-                     vb:Global/vb:DiskRegistry"
-              mode="v1.4">
-  <MediaRegistry>
-    <HardDisks>
-      <xsl:apply-templates select="vb:HardDisks/vb:HardDisk" mode="v1.4"/>
-    </HardDisks>
-    <DVDImages>
-      <xsl:apply-templates select="vb:DVDImages/vb:Image" mode="v1.4"/>
-    </DVDImages>
-    <FloppyImages>
-      <xsl:apply-templates select="vb:FloppyImages/vb:Image" mode="v1.4"/>
-    </FloppyImages>
-  </MediaRegistry>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3']/
-                     vb:Global/vb:SystemProperties"
-              mode="v1.4">
-  <SystemProperties>
-    <xsl:apply-templates select="@*[not(name()='defaultVDIFolder')]|node()" mode="v1.4"/>
-    <!-- use the @defaultVDIFolder value for @defaultHardDiskFolder only when it
-         differs from the default (VDI) and otherwise simply delete it to let
-         VBoxSVC set the correct new default value -->
-    <xsl:if test="@defaultVDIFolder and not(translate(@defaultVDIFolder,'vdi','VDI')='VDI')">
-      <xsl:attribute name="defaultHardDiskFolder">
-        <xsl:value-of select="@defaultVDIFolder"/>
-      </xsl:attribute>
-    </xsl:if>
-  </SystemProperties>
-</xsl:template>
-
-<!--
- *  Machine settings
--->
-
-  <xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.3']/
-                     vb:Machine/vb:Hardware"
-              mode="v1.4">
-  <!-- add version attribute to Hardware if parent Machine has a stateFile attribute -->
-  <xsl:copy>
-    <xsl:if test="../@stateFile">
-      <xsl:attribute name="version">1</xsl:attribute>
-    </xsl:if>
-    <xsl:apply-templates select="node()" mode="v1.4"/>
-  </xsl:copy>
-</xsl:template>
-
-
-<!--
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *  1.4 => 1.5
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--->
-
-<!--
- *  all non-root elements that are not explicitly matched are copied as is
--->
-<xsl:template match="@*|node()[../..]" mode="v1.5">
-  <xsl:copy>
-    <xsl:apply-templates select="@*|node()[../..]" mode="v1.5"/>
-  </xsl:copy>
-</xsl:template>
-
-<!--
- *  Global settings
--->
-
-<!--
- *  Machine settings
--->
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.4']/
-                     vb:Machine"
-              mode="v1.5">
-  <xsl:copy>
-    <xsl:attribute name="OSType">
-      <xsl:choose>
-        <xsl:when test="@OSType='unknown'">Other</xsl:when>
-        <xsl:when test="@OSType='dos'">DOS</xsl:when>
-        <xsl:when test="@OSType='win31'">Windows31</xsl:when>
-        <xsl:when test="@OSType='win95'">Windows95</xsl:when>
-        <xsl:when test="@OSType='win98'">Windows98</xsl:when>
-        <xsl:when test="@OSType='winme'">WindowsMe</xsl:when>
-        <xsl:when test="@OSType='winnt4'">WindowsNT4</xsl:when>
-        <xsl:when test="@OSType='win2k'">Windows2000</xsl:when>
-        <xsl:when test="@OSType='winxp'">WindowsXP</xsl:when>
-        <xsl:when test="@OSType='win2k3'">Windows2003</xsl:when>
-        <xsl:when test="@OSType='winvista'">WindowsVista</xsl:when>
-        <xsl:when test="@OSType='win2k8'">Windows2008</xsl:when>
-        <xsl:when test="@OSType='os2warp3'">OS2Warp3</xsl:when>
-        <xsl:when test="@OSType='os2warp4'">OS2Warp4</xsl:when>
-        <xsl:when test="@OSType='os2warp45'">OS2Warp45</xsl:when>
-        <xsl:when test="@OSType='ecs'">OS2eCS</xsl:when>
-        <xsl:when test="@OSType='linux22'">Linux22</xsl:when>
-        <xsl:when test="@OSType='linux24'">Linux24</xsl:when>
-        <xsl:when test="@OSType='linux26'">Linux26</xsl:when>
-        <xsl:when test="@OSType='archlinux'">ArchLinux</xsl:when>
-        <xsl:when test="@OSType='debian'">Debian</xsl:when>
-        <xsl:when test="@OSType='opensuse'">OpenSUSE</xsl:when>
-        <xsl:when test="@OSType='fedoracore'">Fedora</xsl:when>
-        <xsl:when test="@OSType='gentoo'">Gentoo</xsl:when>
-        <xsl:when test="@OSType='mandriva'">Mandriva</xsl:when>
-        <xsl:when test="@OSType='redhat'">RedHat</xsl:when>
-        <xsl:when test="@OSType='ubuntu'">Ubuntu</xsl:when>
-        <xsl:when test="@OSType='xandros'">Xandros</xsl:when>
-        <xsl:when test="@OSType='freebsd'">FreeBSD</xsl:when>
-        <xsl:when test="@OSType='openbsd'">OpenBSD</xsl:when>
-        <xsl:when test="@OSType='netbsd'">NetBSD</xsl:when>
-        <xsl:when test="@OSType='netware'">Netware</xsl:when>
-        <xsl:when test="@OSType='solaris'">Solaris</xsl:when>
-        <xsl:when test="@OSType='opensolaris'">OpenSolaris</xsl:when>
-        <xsl:when test="@OSType='l4'">L4</xsl:when>
-      </xsl:choose>
-    </xsl:attribute>
-    <xsl:apply-templates select="@*[name()!='OSType']" mode="v1.5"/>
-    <xsl:apply-templates select="node()" mode="v1.5"/>
-  </xsl:copy>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.4']/
-                     vb:Machine//vb:Hardware/vb:Display"
-              mode="v1.5">
-  <xsl:copy>
-    <xsl:apply-templates select="node()" mode="v1.5"/>
-    <xsl:for-each select="@*">
-      <xsl:choose>
-        <xsl:when test="name()='MonitorCount'">
-          <xsl:attribute name="monitorCount"><xsl:value-of select="."/></xsl:attribute>
-        </xsl:when>
-        <xsl:when test="name()='Accelerate3D'">
-          <xsl:attribute name="accelerate3D"><xsl:value-of select="."/></xsl:attribute>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:apply-templates select="." mode="v1.5"/>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:for-each>
-  </xsl:copy>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.4']/
-                     vb:Machine//vb:Hardware/vb:CPU"
-              mode="v1.5">
-  <xsl:copy>
-    <xsl:if test="vb:CPUCount/@count">
-      <xsl:attribute name="count"><xsl:value-of select="vb:CPUCount/@count"/></xsl:attribute>
-    </xsl:if>
-    <xsl:apply-templates select="@*" mode="v1.5"/>
-    <xsl:apply-templates select="node()[not(self::vb:CPUCount)]" mode="v1.5"/>
-  </xsl:copy>
-</xsl:template>
-
-
-<!--
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *  1.5 => 1.6
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--->
-
-
-<!--
- *  all non-root elements that are not explicitly matched are copied as is
--->
-<xsl:template match="@*|node()[../..]" mode="v1.6">
-  <xsl:copy>
-    <xsl:apply-templates select="@*|node()[../..]" mode="v1.6"/>
-  </xsl:copy>
-</xsl:template>
-
-<!--
- *  Global settings
--->
-
-<!--
- *  Machine settings
--->
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.5' and
-                                   not(substring-after(@version,'-')='windows')]/
-                     vb:Machine//vb:Hardware/vb:Network/vb:Adapter/
-                     vb:HostInterface[@TAPSetup or @TAPTerminate]"
-              mode="v1.6">
-  <!-- just remove the node -->
-</xsl:template>
-
-
-<!--
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *  1.6 => 1.7
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--->
-<!--
- *  all non-root elements that are not explicitly matched are copied as is
--->
-<xsl:template match="@*|node()[../..]" mode="v1.7">
-  <xsl:copy>
-    <xsl:apply-templates select="@*|node()[../..]" mode="v1.7"/>
-  </xsl:copy>
-</xsl:template>
-
-<!--
- *  Global settings
--->
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Global"
-              mode="v1.7" >
-    <xsl:copy>
-        <xsl:apply-templates mode="v1.7" />
-        <NetserviceRegistry>
-           <DHCPServers>
-              <xsl:choose>
-                <xsl:when test="substring-after(../@version,'-')='windows'">
-                   <DHCPServer networkName="HostInterfaceNetworking-VirtualBox Host-Only Ethernet Adapter" 
-                        IPAddress="192.168.56.100" networkMask="255.255.255.0"
-                        lowerIP="192.168.56.101" upperIP="192.168.56.254"
-                        enabled="1"/>
-                </xsl:when>
-                <xsl:otherwise>
-                   <DHCPServer networkName="HostInterfaceNetworking-vboxnet0" 
-                        IPAddress="192.168.56.2" networkMask="255.255.255.0"
-                        lowerIP="192.168.56.3" upperIP="192.168.56.255"
-                        enabled="1"/>
-                </xsl:otherwise>
-              </xsl:choose>
-           </DHCPServers>
-        </NetserviceRegistry>              
-    </xsl:copy>
-</xsl:template>
-
-<!--
- *  Machine settings
--->
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:Snapshots"
-              mode="v1.7">
-  <xsl:for-each select="vb:Snapshot">
-    <xsl:apply-templates select="." mode="v1.7"/>
-  </xsl:for-each>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:HardDiskAttachments |
-                     vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:Snapshot/vb:HardDiskAttachments |
-                     vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:Snapshot/vb:Snapshots//vb:Snapshot/vb:HardDiskAttachments"
-              mode="v1.7">
-  <StorageControllers>
-    <StorageController name="IDE Controller">
-      <xsl:choose>
-        <xsl:when test="not(../vb:Hardware/vb:BIOS/vb:IDEController)">
-          <xsl:attribute name="type">PIIX3</xsl:attribute>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:attribute name="type"><xsl:value-of select="../vb:Hardware/vb:BIOS/vb:IDEController/@type"/></xsl:attribute>
-        </xsl:otherwise>
-      </xsl:choose>
-      <xsl:attribute name="PortCount">2</xsl:attribute>
-      <xsl:for-each select="./vb:HardDiskAttachment[@bus = 'IDE']">
-         <xsl:apply-templates select="." mode="v1.7-attached-device"/>
-      </xsl:for-each>
-    </StorageController>
-    <xsl:if test="../vb:Hardware/vb:SATAController/@enabled='true'">
-      <StorageController name="SATA">
-        <xsl:attribute name="type">AHCI</xsl:attribute>
-        <xsl:attribute name="PortCount">
-          <xsl:value-of select="../vb:Hardware/vb:SATAController/@PortCount"/>
-        </xsl:attribute>
-        <xsl:attribute name="IDE0MasterEmulationPort">
-          <xsl:value-of select="../vb:Hardware/vb:SATAController/@IDE0MasterEmulationPort"/>
-        </xsl:attribute>
-        <xsl:attribute name="IDE0SlaveEmulationPort">
-          <xsl:value-of select="../vb:Hardware/vb:SATAController/@IDE0SlaveEmulationPort"/>
-        </xsl:attribute>
-        <xsl:attribute name="IDE1MasterEmulationPort">
-          <xsl:value-of select="../vb:Hardware/vb:SATAController/@IDE1MasterEmulationPort"/>
-        </xsl:attribute>
-        <xsl:attribute name="IDE1SlaveEmulationPort">
-          <xsl:value-of select="../vb:Hardware/vb:SATAController/@IDE1SlaveEmulationPort"/>
-        </xsl:attribute>
-        <xsl:for-each select="./vb:HardDiskAttachment[@bus = 'SATA']">
-           <xsl:apply-templates select="." mode="v1.7-attached-device"/>
-        </xsl:for-each>
-      </StorageController>
-    </xsl:if>
-  </StorageControllers>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:HardDiskAttachments/vb:HardDiskAttachment |
-                     vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:Snapshot/vb:HardDiskAttachments/vb:HardDiskAttachment |
-                     vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:Snapshot/vb:Snapshots//vb:Snapshot/vb:HardDiskAttachments/
-                     vb:HardDiskAttachment"
-              mode="v1.7-attached-device">
-  <AttachedDevice>
-    <xsl:attribute name="type">HardDisk</xsl:attribute>
-    <xsl:attribute name="port"><xsl:value-of select="@channel"/></xsl:attribute>
-    <xsl:attribute name="device"><xsl:value-of select="@device"/></xsl:attribute>
-    <xsl:element name="Image">
-      <xsl:attribute name="uuid"><xsl:value-of select="@hardDisk"/></xsl:attribute>
-    </xsl:element>
-  </AttachedDevice>
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine//vb:Hardware/vb:BIOS/vb:IDEController |
-                     vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine//vb:Snapshot/vb:Hardware/vb:BIOS/vb:IDEController |
-                     vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:Snapshot/vb:Snapshots//vb:Snapshot/vb:Hardware/vb:BIOS/vb:IDEController"
-              mode="v1.7">
-  <!-- just remove the node -->
-</xsl:template>
-
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:Hardware/vb:SATAController |
-                     vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:Snapshot/vb:Hardware/vb:SATAController |
-                     vb:VirtualBox[substring-before(@version,'-')='1.6']/
-                     vb:Machine/vb:Snapshot/vb:Snapshots//vb:Snapshot/vb:Hardware/vb:SATAController"
-              mode="v1.7">
-  <!-- just remove the node -->
-</xsl:template>
-
-<!--
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
- *  1.7 => 1.8
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--->
-<!--
- *  all non-root elements that are not explicitly matched are copied as is
--->
-<xsl:template match="@*|node()[../..]" mode="v1.8">
-  <xsl:copy>
-    <xsl:apply-templates select="@*|node()[../..]" mode="v1.8"/>
-  </xsl:copy>
-</xsl:template>
-
-<!--
- *  Global settings
--->
-
-<!--
- *  Machine settings
--->
-
-<!--xsl:template match="vb:VirtualBox[substring-before(@version,'-')='1.7']/
-                     vb:Machine//vb:Hardware/vb:Display"
-              mode="v1.8">
-  <xsl:copy>
-    <xsl:apply-templates select="node()" mode="v1.8"/>
-    <xsl:for-each select="@*">
-      <xsl:choose>
-        <xsl:when test="name()='Accelerate2DVideo'">
-          <xsl:attribute name="accelerate2DVideo"><xsl:value-of select="."/></xsl:attribute>
-        </xsl:when>
-        <xsl:otherwise>
-          <xsl:apply-templates select="." mode="v1.8"/>
-        </xsl:otherwise>
-      </xsl:choose>
-    </xsl:for-each>
-  </xsl:copy>
-</xsl:template-->
-
-<!--
- * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
--->
-
-
-<!-- @todo add lastStateChange with the current timestamp if missing.
-  *  current-dateTime() is available only in XPath 2.0 so we will need to pass
-  *  the current time as a parameter to the XSLT processor. -->
-<!--
-<xsl:template match="vb:VirtualBox[substring-before(@version,'-')='Xo.Yo']/
-                     vb:Machine"
-              mode="X.Y">
-  <xsl:copy>
-    <xsl:if test="not(@lastStateChange)">
-      <xsl:attribute name="lastStateChange">
-        <xsl:value-of select="current-dateTime()"/>
-      </xsl:attribute>
-    </xsl:if>
-    <xsl:apply-templates select="@*|node()" mode="vX.Y"/>
-  </xsl:copy>
-</xsl:template>
--->
-
-</xsl:stylesheet>
Index: unk/src/VBox/Main/xml/VirtualBox-settings-common.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-common.xsd	(revision 44947)
+++ 	(revision )
@@ -1,964 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- *  :tabSize=2:indentSize=2:noTabs=true:
- *  :folding=explicit:collapseFolds=1:
- *
- *  Oracle VM VirtualBox Settings Schema
- *  Common definitions
-
-    Copyright (C) 2004-2012 Oracle Corporation
-
-    This file is part of VirtualBox Open Source Edition (OSE), as
-    available from http://www.virtualbox.org. This file is free software;
-    you can redistribute it and/or modify it under the terms of the GNU
-    General Public License (GPL) as published by the Free Software
-    Foundation, in version 2 as it comes in the "COPYING" file of the
-    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
--->
-
-<xsd:schema
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://www.innotek.de/VirtualBox-settings"
-  xmlns:vb="http://www.innotek.de/VirtualBox-settings"
-  targetNamespace="http://www.innotek.de/VirtualBox-settings"
-  elementFormDefault="qualified"
->
-
-<xsd:annotation>
-  <xsd:documentation xml:lang="en">
-    Oracle VM VirtualBox Settings Schema (common definitions).
-    Copyright (c) 2004-2012 Oracle Corporation
-  </xsd:documentation>
-</xsd:annotation>
-
-<!--
-// Simple types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<xsd:simpleType name="TUUID">
-  <xsd:restriction base="xsd:token">
-    <xsd:pattern value="\{[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\}"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TNonNullUUID">
-  <xsd:restriction base="TUUID">
-    <xsd:pattern value=".*[1-9A-Fa-f]+.*"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TUInt8">
-  <xsd:union>
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:unsignedByte">
-      </xsd:restriction>
-    </xsd:simpleType>
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:string">
-        <xsd:pattern value="0[xX][A-Fa-f0-9]{1,2}"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:union>
-</xsd:simpleType>
-
-<xsd:simpleType name="TUInt16">
-  <xsd:union>
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:unsignedShort">
-      </xsd:restriction>
-    </xsd:simpleType>
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:string">
-        <xsd:pattern value="0[xX][A-Fa-f0-9]{1,4}"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:union>
-</xsd:simpleType>
-
-<xsd:simpleType name="TUInt32Hex">
-  <xsd:restriction base="xsd:string">
-    <xsd:pattern value="0x[A-Fa-f0-9]{1,8}"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TUInt64Hex">
-  <xsd:restriction base="xsd:string">
-    <xsd:pattern value="0x[A-Fa-f0-9]{1,16}"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TLocalFile">
-  <xsd:restriction base="xsd:string">
-    <xsd:pattern value=".+"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TDiskType">
-  <xsd:restriction base="xsd:token">
-    <xsd:enumeration value="HD"/>
-    <xsd:enumeration value="DVD"/>
-    <xsd:enumeration value="FD"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TDeviceType">
-  <xsd:restriction base="xsd:token">
-    <xsd:enumeration value="None"/>
-    <xsd:enumeration value="Floppy"/>
-    <xsd:enumeration value="DVD"/>
-    <xsd:enumeration value="HardDisk"/>
-    <xsd:enumeration value="Network"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TUSBDeviceFilterAction">
-  <xsd:restriction base="xsd:token">
-    <xsd:enumeration value="Ignore"/>
-    <xsd:enumeration value="Hold"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TNonEmptyString">
-  <xsd:restriction base="xsd:string">
-    <xsd:pattern value=".+"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TPresentDateTimeUTC">
-  <xsd:restriction base="xsd:dateTime">
-    <xsd:minInclusive value="1900-01-01T00:00:00Z"/>
-    <xsd:maxInclusive value="199999999-12-31T23:59:59Z"/>
-    <xsd:pattern value=".+-.+-.+T.+:.+:[0-9]{2}Z"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-
-<xsd:simpleType name="TAuthType">
-  <xsd:restriction base="xsd:string">
-    <xsd:enumeration value="Null"/>
-    <xsd:enumeration value="Guest"/>
-    <xsd:enumeration value="External"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TNetworkAdapterType">
-  <xsd:restriction base="xsd:string">
-    <xsd:enumeration value="Am79C970A"/>
-    <xsd:enumeration value="Am79C973"/>
-    <xsd:enumeration value="82540EM"/>
-    <xsd:enumeration value="82543GC"/>
-    <xsd:enumeration value="82545EM"/>
-    <xsd:enumeration value="virtio"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TTriStateBoolType">
-  <xsd:restriction base="xsd:string">
-    <xsd:enumeration value="false"/>
-    <xsd:enumeration value="true"/>
-    <xsd:enumeration value="default"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TBIOSBootMenuModeType">
-  <xsd:restriction base="xsd:string">
-    <xsd:enumeration value="Disabled"/>
-    <xsd:enumeration value="MenuOnly"/>
-    <xsd:enumeration value="MessageAndMenu"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TClipboardMode">
-  <xsd:restriction base="xsd:string">
-    <xsd:enumeration value="Disabled"/>
-    <xsd:enumeration value="HostToGuest"/>
-    <xsd:enumeration value="GuestToHost"/>
-    <xsd:enumeration value="Bidirectional"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TDragAndDropMode">
-  <xsd:restriction base="xsd:string">
-    <xsd:enumeration value="Disabled"/>
-    <xsd:enumeration value="HostToGuest"/>
-    <xsd:enumeration value="GuestToHost"/>
-    <xsd:enumeration value="Bidirectional"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:simpleType name="TPortMode">
-  <xsd:restriction base="xsd:string">
-    <xsd:enumeration value="Disconnected"/>
-    <xsd:enumeration value="RawFile"/>
-    <xsd:enumeration value="HostPipe"/>
-    <xsd:enumeration value="HostDevice"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<!--
-// Complex types
-/////////////////////////////////////////////////////////////////////////
--->
-<xsd:complexType name="TDHCPServer">
-  <xsd:attribute name="networkName" type="xsd:string"  use="required"/>
-  <xsd:attribute name="lowerIP"     type="xsd:string"  use="required"/>
-  <xsd:attribute name="upperIP"     type="xsd:string"  use="required"/>
-  <xsd:attribute name="IPAddress"   type="xsd:string"  use="required"/>
-  <xsd:attribute name="networkMask" type="xsd:string"  use="required"/>
-  <xsd:attribute name="enabled"     type="xsd:boolean" use="required"/>
-</xsd:complexType>
-
-<xsd:complexType name="THardDiskBase">
-  <xsd:sequence>
-    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
-    <xsd:element name="Property" minOccurs="0" maxOccurs="unbounded">
-      <xsd:complexType>
-        <xsd:attribute name="name" type="xsd:token" use="required"/>
-        <xsd:attribute name="value" type="xsd:string" use="required"/>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="HardDisk" type="TDiffHardDisk" minOccurs="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
-  <xsd:attribute name="location" type="TLocalFile" use="required"/>
-  <xsd:attribute name="format" type="TNonEmptyString" use="required"/>
-</xsd:complexType>
-
-<xsd:complexType name="TDiffHardDisk">
-  <xsd:complexContent>
-    <xsd:extension base="THardDiskBase">
-      <xsd:attribute name="autoReset" type="xsd:boolean" default="false"/>
-    </xsd:extension>
-  </xsd:complexContent>
-</xsd:complexType>
-
-<xsd:complexType name="THardDisk">
-  <xsd:complexContent>
-    <xsd:extension base="THardDiskBase">
-      <xsd:attribute name="type" use="required">
-        <xsd:simpleType>
-          <xsd:restriction base="xsd:string">
-            <xsd:enumeration value="Normal"/>
-            <xsd:enumeration value="Immutable"/>
-            <xsd:enumeration value="Writethrough"/>
-            <xsd:enumeration value="Shareable"/>
-            <xsd:enumeration value="Readonly"/>
-            <xsd:enumeration value="MultiAttach"/>
-          </xsd:restriction>
-        </xsd:simpleType>
-      </xsd:attribute>
-    </xsd:extension>
-  </xsd:complexContent>
-</xsd:complexType>
-
-<xsd:complexType name="TImage2">
-  <xsd:sequence>
-    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
-  </xsd:sequence>
-  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
-  <xsd:attribute name="location" type="TLocalFile" use="required"/>
-</xsd:complexType>
-
-<xsd:complexType name="TImageRef">
-  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
-</xsd:complexType>
-
-<xsd:complexType name="THostDrive">
-  <xsd:attribute name="src" type="TLocalFile" use="required"/>
-</xsd:complexType>
-
-<xsd:complexType name="TUSBDeviceFilter">
-  <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="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="port" type="xsd:token"/>
-  <xsd:attribute name="remote" type="xsd:token"/>
-  <xsd:attribute name="maskedInterfaces" type="xsd:unsignedInt" default="0"/>
-</xsd:complexType>
-
-<xsd:complexType name="THostUSBDeviceFilter">
-  <xsd:complexContent>
-    <xsd:extension base="TUSBDeviceFilter">
-      <xsd:attribute name="action" type="TUSBDeviceFilterAction" use="required"/>
-    </xsd:extension>
-  </xsd:complexContent>
-</xsd:complexType>
-
-<xsd:complexType name="TSystemProperties">
-  <xsd:attribute name="defaultMachineFolder" type="TLocalFile"/>
-  <xsd:attribute name="defaultHardDiskFolder" type="TLocalFile"/>
-  <xsd:attribute name="defaultHardDiskFormat" type="TNonEmptyString"/>
-  <xsd:attribute name="VRDEAuthLibrary" type="TLocalFile"/>
-  <xsd:attribute name="webServiceAuthLibrary" type="TLocalFile"/>
-  <xsd:attribute name="defaultVRDELibrary" type="TLocalFile"/>
-  <xsd:attribute name="HWVirtExEnabled" type="xsd:boolean"/>
-  <xsd:attribute name="LogHistoryCount" type="xsd:unsignedInt" default="3"/>
-</xsd:complexType>
-
-<xsd:complexType name="TExtraData">
-  <xsd:sequence>
-    <xsd:element name="ExtraDataItem" minOccurs="0" maxOccurs="unbounded">
-      <xsd:complexType>
-        <xsd:attribute name="name" type="xsd:token" use="required"/>
-        <xsd:attribute name="value" type="xsd:string" use="required"/>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="TGlobal">
-  <xsd:all>
-    <xsd:element name="MachineRegistry">
-      <xsd:complexType>
-        <xsd:sequence>
-          <xsd:element name="MachineEntry" minOccurs="0" maxOccurs="unbounded">
-            <xsd:complexType>
-              <xsd:attribute name="src" type="TLocalFile" use="required"/>
-              <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:sequence>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="MediaRegistry">
-      <xsd:complexType>
-        <xsd:all>
-          <xsd:element name="HardDisks" minOccurs="0">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="HardDisk" type="THardDisk" minOccurs="0" maxOccurs="unbounded"/>
-              </xsd:sequence>
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="DVDImages" minOccurs="0">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
-              </xsd:sequence>
-            </xsd:complexType>
-          </xsd:element>
-          <xsd:element name="FloppyImages" minOccurs="0">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
-              </xsd:sequence>
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:all>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="NetserviceRegistry" minOccurs="0" maxOccurs="1">
-      <xsd:complexType>
-        <xsd:all>
-          <xsd:element name="DHCPServers" minOccurs="0">
-            <xsd:complexType>
-              <xsd:sequence>
-                <xsd:element name="DHCPServer" type="TDHCPServer" minOccurs="0" maxOccurs="unbounded"/>
-              </xsd:sequence>
-            </xsd:complexType>
-          </xsd:element>
-        </xsd:all>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="USBDeviceFilters">
-      <xsd:complexType>
-        <xsd:sequence>
-          <xsd:element name="DeviceFilter" type="THostUSBDeviceFilter"
-                       minOccurs="0" maxOccurs="unbounded"/>
-        </xsd:sequence>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="SystemProperties" type="TSystemProperties"/>
-    <xsd:element name="ExtraData" type="TExtraData" minOccurs="0"/>
-  </xsd:all>
-</xsd:complexType>
-
-<xsd:complexType name="THWVirtExType">
-  <xsd:attribute name="enabled" type="TTriStateBoolType"/>
-  <xsd:attribute name="exclusive" type="xsd:boolean"/>
-</xsd:complexType>
-
-<xsd:complexType name="THWVirtExNestedPagingType">
-  <xsd:attribute name="enabled" type="xsd:boolean"/>
-</xsd:complexType>
-
-<xsd:complexType name="THWVirtExVPIDType">
-  <xsd:attribute name="enabled" type="xsd:boolean"/>
-</xsd:complexType>
-
-<xsd:complexType name="TSyntheticCpuType">
-  <xsd:attribute name="enabled" type="xsd:boolean"/>
-</xsd:complexType>
-
-<xsd:complexType name="TPAEType">
-  <xsd:attribute name="enabled" type="xsd:boolean"/>
-</xsd:complexType>
-
-<xsd:simpleType name="TCPUCount">
-  <xsd:restriction base="xsd:unsignedInt">
-    <xsd:minInclusive value="1"/>
-    <xsd:maxInclusive value="32"/>
-  </xsd:restriction>
-</xsd:simpleType>
-
-<xsd:complexType name="TCpuIdLeaf">
-  <xsd:attribute name="id"        type="TUInt32Hex"       use="required"/>
-  <xsd:attribute name="eax"       type="TUInt32Hex"       use="required"/>
-  <xsd:attribute name="ebx"       type="TUInt32Hex"       use="required"/>
-  <xsd:attribute name="ecx"       type="TUInt32Hex"       use="required"/>
-  <xsd:attribute name="edx"       type="TUInt32Hex"       use="required"/>
-</xsd:complexType>
-
-<xsd:complexType name="TCpuIdTree">
-  <xsd:sequence>
-    <xsd:element name="CpuIdLeaf" type="TCpuIdLeaf"
-                 minOccurs="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="TCPU">
-  <xsd:sequence>
-    <xsd:element name="HardwareVirtEx" type="THWVirtExType" minOccurs="0"/>
-    <xsd:element name="HardwareVirtExNestedPaging" type="THWVirtExNestedPagingType" minOccurs="0"/>
-    <xsd:element name="HardwareVirtExVPID" type="THWVirtExVPIDType" minOccurs="0"/>
-    <xsd:element name="PAE" type="TPAEType" minOccurs="0"/>
-    <xsd:element name="SyntheticCpu" type="TSyntheticCpuType" minOccurs="0"/>
-    <xsd:element name="CpuIdTree" type="TCpuIdTree" minOccurs="0">
-      <xsd:unique name="TCPU-CpuIdTree-CpuIdLeaf">
-        <xsd:selector xpath="vb:CpuIdLeaf"/>
-        <xsd:field xpath="@id"/>
-      </xsd:unique>
-    </xsd:element>
-  </xsd:sequence>
-  <xsd:attribute name="count" type="TCPUCount" default="1"/>
-</xsd:complexType>
-
-<xsd:complexType name="TBoot">
-  <xsd:sequence>
-    <xsd:element name="Order" minOccurs="0" maxOccurs="unbounded">
-      <xsd:complexType>
-        <xsd:attribute name="position" use="required">
-          <xsd:simpleType>
-            <xsd:restriction base="xsd:unsignedInt">
-              <xsd:minInclusive value="1"/>
-              <xsd:maxInclusive value="4"/>
-            </xsd:restriction>
-          </xsd:simpleType>
-        </xsd:attribute>
-        <xsd:attribute name="device" type="TDeviceType" use="required"/>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="TDisplay">
-  <xsd:element name="VideoRecording">
-    <xsd:complexType>
-      <xsd:attribute name="enabled" type="xsd:boolean"/>
-      <xsd:attribute name="file" type="xsd:string"/>
-      <xsd:attribute name="horzRes" use="required">
-        <xsd:simpleType>
-          <xsd:restriction base="xsd:unsignedInt">
-            <xsd:minInclusive value="4"/>
-            <xsd:maxInclusive value="2097152"/>
-           </xsd:restriction>
-         </xsd:simpleType>
-      </xsd:attribute>
-      <xsd:attribute name="vertRes" type="xsd:unsignedInt"/>
-    </xsd:complexType>
-  </xsd:element>
-  <xsd:attribute name="VRAMSize" use="required">
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:unsignedInt">
-        <xsd:minInclusive value="1"/>
-        <xsd:maxInclusive value="256"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:attribute>
-  <!-- This should be in sync with VBOX_VIDEO_MAX_SCREENS in VBoxVideoVBE.h -->
-  <xsd:attribute name="monitorCount" default="1">
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:unsignedInt">
-        <xsd:maxInclusive value="64"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:attribute>
-  <xsd:attribute name="accelerate3D" type="xsd:boolean" default="false"/>
-  <xsd:attribute name="accelerate2DVideo" type="xsd:boolean" default="false"/>
-</xsd:complexType>
-
-<xsd:complexType name="TRemoteDisplay">
-  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
-  <xsd:attribute name="authType" type="TAuthType" default="Null"/>
-  <xsd:attribute name="authTimeout" type="xsd:unsignedInt" default="5000"/>
-  <xsd:attribute name="allowMultiConnection" type="xsd:boolean" default="false"/>
-  <xsd:attribute name="reuseSingleConnection" type="xsd:boolean" default="false"/>
-</xsd:complexType>
-
-<xsd:complexType name="TBIOS">
-  <xsd:all>
-    <xsd:element name="ACPI">
-      <xsd:complexType>
-        <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="IOAPIC" minOccurs="0">
-      <xsd:complexType>
-          <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="Logo" minOccurs="0">
-      <xsd:complexType>
-        <xsd:attribute name="fadeIn" type="xsd:boolean" default="true"/>
-        <xsd:attribute name="fadeOut" type="xsd:boolean" default="true"/>
-        <xsd:attribute name="displayTime" type="xsd:unsignedInt" default="0"/>
-        <xsd:attribute name="imagePath" type="TLocalFile"/>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="BootMenu" minOccurs="0">
-      <xsd:complexType>
-        <xsd:attribute name="mode" type="TBIOSBootMenuModeType" default="MessageAndMenu"/>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="TimeOffset" minOccurs="0">
-      <xsd:complexType>
-          <xsd:attribute name="value" type="xsd:integer" default="0"/>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="PXEDebug" minOccurs="0">
-      <xsd:complexType>
-          <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:all>
-</xsd:complexType>
-
-<xsd:complexType name="TStorageControllerDevice">
-  <xsd:choice minOccurs="0">
-    <xsd:element name="Image" type="TImageRef"/>
-    <xsd:element name="HostDrive" type="THostDrive"/>
-  </xsd:choice>
-  <xsd:attribute name="type" use="required">
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:token">
-        <xsd:enumeration value="HardDisk"/>
-        <xsd:enumeration value="CD/DVD"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:attribute>
-  <xsd:attribute name="port" type="xsd:unsignedInt" use="required"/>
-  <xsd:attribute name="device" type="xsd:unsignedInt" default="0"/>
-</xsd:complexType>
-
-<xsd:complexType name="TStorageController">
-  <xsd:sequence>
-    <xsd:element name="AttachedDevice" type="TStorageControllerDevice"
-                 minOccurs="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-  <xsd:attribute name="name" type="xsd:string" use="required"/>
-  <xsd:attribute name="type" use="required">
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:token">
-      <xsd:enumeration value="AHCI"/>
-      <xsd:enumeration value="LsiLogic"/>
-      <xsd:enumeration value="BusLogic"/>
-      <xsd:enumeration value="PIIX3"/>
-      <xsd:enumeration value="PIIX4"/>
-      <xsd:enumeration value="ICH6"/>
-      <xsd:enumeration value="LsiLogicSas"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:attribute>
-  <xsd:attribute name="PortCount"   type="xsd:unsignedInt" use="required"/>
-  <xsd:attribute name="bootable"    type="xsd:boolean"     use="optional"/>
-  <xsd:attribute name="PCIBus"      type="xsd:unsignedInt" use="optional"/>
-  <xsd:attribute name="PCIDevice"   type="xsd:unsignedInt" use="optional"/>
-  <xsd:attribute name="PCIFunction" type="xsd:unsignedInt" use="optional"/>
-  <xsd:attribute name="IDE0MasterEmulationPort" type="xsd:unsignedInt" use="optional"/>
-  <xsd:attribute name="IDE0SlaveEmulationPort"  type="xsd:unsignedInt" use="optional"/>
-  <xsd:attribute name="IDE1MasterEmulationPort" type="xsd:unsignedInt" use="optional"/>
-  <xsd:attribute name="IDE1SlaveEmulationPort"  type="xsd:unsignedInt" use="optional"/>
-</xsd:complexType>
-
-<xsd:complexType name="TStorageControllers">
-  <xsd:sequence>
-    <xsd:element name="StorageController" type="TStorageController"
-                 minOccurs="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="TDVDDrive">
-  <xsd:choice minOccurs="0">
-    <xsd:element name="Image" type="TImageRef"/>
-    <xsd:element name="HostDrive" type="THostDrive"/>
-  </xsd:choice>
-  <xsd:attribute name="passthrough" type="xsd:boolean" default="false"/>
-</xsd:complexType>
-
-<xsd:complexType name="TFloppyDrive">
-  <xsd:choice minOccurs="0">
-    <xsd:element name="Image" type="TImageRef"/>
-    <xsd:element name="HostDrive" type="THostDrive"/>
-  </xsd:choice>
-  <xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
-</xsd:complexType>
-
-<xsd:complexType name="TUSBController">
-  <xsd:sequence>
-    <xsd:element name="DeviceFilter" type="TUSBDeviceFilter"
-                 minOccurs="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
-  <xsd:attribute name="enabledEhci" type="xsd:boolean" default="false"/>
-</xsd:complexType>
-
-<xsd:complexType name="TAudioAdapterBase">
-  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
-  <xsd:attribute name="controller" default="AC97">
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:token">
-        <xsd:enumeration value="AC97"/>
-        <xsd:enumeration value="SB16"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:attribute>
-</xsd:complexType>
-
-<xsd:complexType name="TNetworkAdapter">
-  <xsd:choice minOccurs="0">
-    <xsd:element name="NAT">
-      <xsd:complexType>
-        <xsd:attribute name="network" type="xsd:string"/>
-      </xsd:complexType>
-      <xsd:complexType>
-        <xsd:attribute name="hostip" type="xsd:string"/>
-      </xsd:complexType>
-      <xsd:complexType>
-        <xsd:attribute name="mtu" type="xsd:unsignedInt"/>
-      </xsd:complexType>
-      <xsd:complexType>
-        <xsd:attribute name="sockrcv" type="xsd:unsignedInt"/>
-      </xsd:complexType>
-      <xsd:complexType>
-        <xsd:attribute name="socksnd" type="xsd:unsignedInt"/>
-      </xsd:complexType>
-      <xsd:complexType>
-        <xsd:attribute name="tcprcv" type="xsd:unsignedInt"/>
-      </xsd:complexType>
-      <xsd:complexType>
-        <xsd:attribute name="tcpsnd" type="xsd:unsignedInt"/>
-      </xsd:complexType>
-      <xsd:element name="DNS">
-        <xsd:complexType>
-          <xsd:attribute name="pass-domain" type="xsd:boolean"/>
-        </xsd:complexType>
-        <xsd:complexType>
-          <xsd:attribute name="use-proxy" type="xsd:boolean"/>
-        </xsd:complexType>
-        <xsd:complexType>
-          <xsd:attribute name="use-host-resolver" type="xsd:boolean"/>
-        </xsd:complexType>
-      </xsd:element>
-      <xsd:element name="TFTP">
-        <xsd:complexType>
-          <xsd:attribute name="prefix" type="xsd:string"/>
-        </xsd:complexType>
-        <xsd:complexType>
-          <xsd:attribute name="boot-file" type="xsd:string"/>
-        </xsd:complexType>
-        <xsd:complexType>
-          <xsd:attribute name="next-server" type="xsd:string"/>
-        </xsd:complexType>
-      </xsd:element>
-      <xsd:element name="Forwarding">
-        <xsd:complexType>
-          <xsd:attribute name="name" type="xsd:string"/>
-        </xsd:complexType>
-        <xsd:complexType>
-          <xsd:attribute name="proto" type="xsd:unsignedInt"/>
-        </xsd:complexType>
-        <xsd:complexType>
-          <xsd:attribute name="hostip" type="xsd:string"/>
-        </xsd:complexType>
-        <xsd:complexType>
-          <xsd:attribute name="hostport" type="xsd:unsignedInt"/>
-        </xsd:complexType>
-        <xsd:complexType>
-          <xsd:attribute name="guestip" type="xsd:string"/>
-        </xsd:complexType>
-        <xsd:complexType>
-          <xsd:attribute name="guestport" type="xsd:unsignedInt"/>
-        </xsd:complexType>
-      </xsd:element>
-    </xsd:element>
-    <xsd:element name="HostInterface">
-      <xsd:complexType>
-        <xsd:attribute name="name" type="xsd:string" use="required"/>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="BridgedInterface">
-      <xsd:complexType>
-        <xsd:attribute name="name" type="xsd:string" use="required"/>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="InternalNetwork">
-      <xsd:complexType>
-        <xsd:attribute name="name" type="xsd:string" use="required"/>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="HostOnlyInterface">
-      <xsd:complexType>
-        <xsd:attribute name="name" type="xsd:string" use="required"/>
-      </xsd:complexType>
-    </xsd:element>
-    <xsd:element name="Generic">
-      <xsd:complexType>
-        <xsd:attribute name="driver" type="xsd:string" use="required"/>
-      </xsd:complexType>
-      <xsd:element name="Property" minOccurs="0" maxOccurs="unbounded">
-        <xsd:complexType>
-          <xsd:attribute name="name" type="xsd:token" use="required"/>
-          <xsd:attribute name="value" type="xsd:string" use="required"/>
-        </xsd:complexType>
-      </xsd:element>
-    </xsd:element>
-    <!-- The DisabledModes tag is not part of this XSD file right now. -->
-  </xsd:choice>
-  <xsd:attribute name="type" type="TNetworkAdapterType" default="Am79C970A"/>
-  <xsd:attribute name="slot" type="xsd:unsignedInt" use="required"/>
-  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
-  <xsd:attribute name="MACAddress">
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:hexBinary">
-        <xsd:pattern value="[0-9A-Fa-f][02468ACEace][0-9A-Fa-f]{10}"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:attribute>
-  <xsd:attribute name="cable" type="xsd:boolean" use="required"/>
-  <xsd:attribute name="speed" type="xsd:unsignedInt" default="1000000"/>
-  <xsd:attribute name="trace" type="xsd:boolean" default="false"/>
-  <xsd:attribute name="tracefile" type="xsd:string"/>
-  <xsd:attribute name="bandwidthGroup" type="xsd:string"/>
-</xsd:complexType>
-
-<xsd:complexType name="TNetwork">
-  <xsd:sequence>
-    <xsd:element name="Adapter" type="TNetworkAdapter"
-                 minOccurs="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="TUARTPort">
-  <xsd:attribute name="slot" use="required">
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:unsignedInt">
-        <xsd:minInclusive value="0"/>
-        <xsd:maxExclusive value="2"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:attribute>
-  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
-  <xsd:attribute name="IRQ" type="TUInt8" use="required"/>
-  <xsd:attribute name="IOBase" type="TUInt16" use="required"/>
-  <xsd:attribute name="hostMode" type="TPortMode" use="required"/>
-  <xsd:attribute name="path" type="TLocalFile"/>
-  <xsd:attribute name="server" type="xsd:boolean" default="false"/>
-</xsd:complexType>
-
-<xsd:complexType name="TUART">
-  <xsd:sequence>
-    <xsd:element name="Port" type="TUARTPort"
-                 minOccurs="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="TLPTPort">
-  <xsd:attribute name="slot" use="required">
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:unsignedInt">
-        <xsd:minInclusive value="0"/>
-        <xsd:maxExclusive value="2"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:attribute>
-  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
-  <xsd:attribute name="IRQ" type="TUInt8" use="required"/>
-  <xsd:attribute name="IOBase" type="TUInt16" use="required"/>
-  <xsd:attribute name="path" type="TLocalFile"/>
-</xsd:complexType>
-
-<xsd:complexType name="TLPT">
-  <xsd:sequence>
-    <xsd:element name="Port" type="TLPTPort"
-                 minOccurs="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="TSharedFolder">
-  <xsd:attribute name="name" type="TNonEmptyString" use="required"/>
-  <xsd:attribute name="hostPath" type="TLocalFile" use="required"/>
-  <xsd:attribute name="writable" type="xsd:boolean" default="true"/>
-</xsd:complexType>
-
-<xsd:complexType name="TSharedFolders">
-  <xsd:sequence>
-    <xsd:element name="SharedFolder" type="TSharedFolder" minOccurs="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-</xsd:complexType>
-
-<xsd:complexType name="TClipboard">
-  <xsd:attribute name="mode" type="TClipboardMode" use="required"/>
-</xsd:complexType>
-
-<xsd:complexType name="TDragAndDrop">
-  <xsd:attribute name="mode" type="TDragAndDropMode" use="required"/>
-</xsd:complexType>
-
-<xsd:complexType name="TGuest">
-  <xsd:attribute name="memoryBalloonSize"        type="xsd:unsignedInt" default="0"/>
-  <xsd:attribute name="statisticsUpdateInterval" type="xsd:unsignedInt" default="0"/>
-</xsd:complexType>
-
-<xsd:complexType name="TGuestProperty">
-  <xsd:attribute name="name"      type="xsd:string"       use="required"/>
-  <xsd:attribute name="value"     type="xsd:string"       use="required"/>
-  <xsd:attribute name="timestamp" type="xsd:unsignedLong" default="0"/>
-  <xsd:attribute name="flags"     type="xsd:string"       default=""/>
-</xsd:complexType>
-
-<xsd:complexType name="TGuestProperties">
-  <xsd:sequence>
-    <xsd:element name="GuestProperty" type="TGuestProperty" minOccurs="0" maxOccurs="unbounded"/>
-  </xsd:sequence>
-  <xsd:attribute name="notificationPatterns" type="xsd:string" default=""/>
-</xsd:complexType>
-
-<xsd:complexType name="TMemory">
-  <xsd:attribute name="RAMSize" use="required">
-    <xsd:simpleType>
-      <xsd:restriction base="xsd:unsignedInt">
-        <xsd:minInclusive value="4"/>
-        <xsd:maxInclusive value="2097152"/>
-      </xsd:restriction>
-    </xsd:simpleType>
-  </xsd:attribute>
-</xsd:complexType>
-
-<xsd:complexType name="THardware">
-  <xsd:all>
-    <xsd:element name="CPU" type="TCPU" minOccurs="0"/>
-    <xsd:element name="Memory" type="TMemory"/>
-    <xsd:element name="Boot" type="TBoot">
-      <xsd:unique name="THardware-Boot-Order">
-        <xsd:selector xpath="vb:Order"/>
-        <xsd:field xpath="@position"/>
-      </xsd:unique>
-    </xsd:element>
-    <xsd:element name="Display" type="TDisplay"/>
-    <xsd:element name="RemoteDisplay" type="TRemoteDisplay" minOccurs="0"/>
-    <xsd:element name="BIOS" type="TBIOS"/>
-    <xsd:element name="DVDDrive" type="TDVDDrive"/>
-    <xsd:element name="FloppyDrive" type="TFloppyDrive"/>
-    <xsd:element name="USBController" type="TUSBController"/>
-    <xsd:element name="Network" type="TNetwork">
-      <xsd:unique name="THardware-Network-Adapter">
-        <xsd:selector xpath="vb:Adapter"/>
-        <xsd:field xpath="@slot"/>
-      </xsd:unique>
-    </xsd:element>
-    <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">
-      <xsd:unique name="THardware-LPT-Port">
-        <xsd:selector xpath="vb:Port"/>
-        <xsd:field xpath="@slot"/>
-      </xsd:unique>
-    </xsd:element>
-    <xsd:element name="AudioAdapter" type="TAudioAdapter"/>
-    <xsd:element name="SharedFolders" type="TSharedFolders">
-      <xsd:unique name="THardware-SharedFolders-SharedFolder">
-        <xsd:selector xpath="vb:SharedFolder"/>
-        <xsd:field xpath="@name"/>
-      </xsd:unique>
-    </xsd:element>
-    <xsd:element name="Clipboard" type="TClipboard"/>
-    <xsd:element name="DragAndDrop" type="TDragAndDrop"/>
-    <xsd:element name="Guest" type="TGuest"/>
-    <xsd:element name="GuestProperties" type="TGuestProperties" minOccurs="0">
-      <xsd:unique name="THardware-GuestProperties-GuestProperty">
-        <xsd:selector xpath="vb:GuestProperty"/>
-        <xsd:field xpath="@name"/>
-      </xsd:unique>
-    </xsd:element>
-  </xsd:all>
-  <xsd:attribute name="version" type="xsd:string" default="2"/>
-</xsd:complexType>
-
-<xsd:complexType name="TMachine">
-  <xsd:all>
-    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
-    <xsd:element name="Hardware" type="THardware"/>
-    <xsd:element name="StorageControllers" type="TStorageControllers"/>
-    <xsd:element name="ExtraData" type="TExtraData" minOccurs="0"/>
-    <xsd:element name="Snapshot" type="TSnapshot" minOccurs="0"/>
-  </xsd:all>
-  <xsd:attribute name="name" type="TNonEmptyString" use="required"/>
-  <xsd:attribute name="nameSync" type="xsd:boolean" default="true"/>
-  <xsd:attribute name="OSType" type="TNonEmptyString" use="required"/>
-  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
-  <xsd:attribute name="stateFile" type="TLocalFile"/>
-  <xsd:attribute name="currentSnapshot" type="TNonNullUUID"/>
-  <xsd:attribute name="snapshotFolder" type="TLocalFile"/>
-  <xsd:attribute name="lastStateChange" type="TPresentDateTimeUTC"/>
-  <xsd:attribute name="aborted" type="xsd:boolean" default="false"/>
-  <xsd:attribute name="currentStateModified" type="xsd:boolean" default="true"/>
-</xsd:complexType>
-
-<xsd:complexType name="TSnapshot">
-  <xsd:all>
-    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
-    <xsd:element name="Hardware" type="THardware"/>
-    <xsd:element name="StorageControllers" type="TStorageControllers"/>
-    <xsd:element name="Snapshots" minOccurs="0">
-      <xsd:complexType>
-        <xsd:sequence>
-          <xsd:element name="Snapshot" type="TSnapshot" minOccurs="0" maxOccurs="unbounded"/>
-        </xsd:sequence>
-      </xsd:complexType>
-    </xsd:element>
-  </xsd:all>
-  <xsd:attribute name="name" type="xsd:token" use="required"/>
-  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
-  <xsd:attribute name="timeStamp" type="TPresentDateTimeUTC" use="required"/>
-  <xsd:attribute name="stateFile" type="TLocalFile"/>
-</xsd:complexType>
-
-<xsd:complexType name="TVirtualBox" abstract="true">
-  <xsd:choice>
-    <xsd:element name="Global" type="TGlobal"/>
-    <xsd:element name="Machine" type="TMachine">
-      <!-- @currentSnapshot must refer to an existing Snapshot/@uuid -->
-      <xsd:key name="snapshot">
-        <xsd:selector xpath=".//vb:Snapshot"/>
-        <xsd:field xpath="@uuid"/>
-      </xsd:key>
-      <xsd:keyref name="currentSnapshot" refer="vb:snapshot">
-        <xsd:selector xpath="."/>
-        <xsd:field xpath="@currentSnapshot"/>
-      </xsd:keyref>
-    </xsd:element>
-  </xsd:choice>
-</xsd:complexType>
-
-</xsd:schema>
Index: unk/src/VBox/Main/xml/VirtualBox-settings-freebsd.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-freebsd.xsd	(revision 44947)
+++ 	(revision )
@@ -1,69 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- *  :tabSize=2:indentSize=2:noTabs=true:
- *  :folding=explicit:collapseFolds=1:
- *
- *  Oracle VM VirtualBox Settings Schema Version 1.0-freebsd
-
-    Copyright (C) 2004-2012 Oracle Corporation
-
-    This file is part of VirtualBox Open Source Edition (OSE), as
-    available from http://www.virtualbox.org. This file is free software;
-    you can redistribute it and/or modify it under the terms of the GNU
-    General Public License (GPL) as published by the Free Software
-    Foundation, in version 2 as it comes in the "COPYING" file of the
-    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
--->
-
-<xsd:schema
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://www.innotek.de/VirtualBox-settings"
-  xmlns:vb="http://www.innotek.de/VirtualBox-settings"
-  targetNamespace="http://www.innotek.de/VirtualBox-settings"
-  elementFormDefault="qualified"
->
-
-<xsd:annotation>
-  <xsd:documentation xml:lang="en">
-    Oracle VM VirtualBox Settings Schema (freebsd).
-    Copyright (c) 2004-2010 Oracle Corporation
-  </xsd:documentation>
-</xsd:annotation>
-
-<xsd:include schemaLocation="VirtualBox-settings-common.xsd"/>
-
-<!--
-  this includes a computed VirtualBox element definition that contains
-  a proper 'version' attribute constraint (e.g. recent version number
-  and platform suffix)
--->
-<xsd:include schemaLocation="VirtualBox-settings-root.xsd"/>
-
-<!--
-// Simple types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<!--
-// Complex types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<xsd:complexType name="TAudioAdapter">
-  <xsd:complexContent>
-    <xsd:extension base="TAudioAdapterBase">
-      <xsd:attribute name="driver" use="required">
-        <xsd:simpleType>
-          <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="Null"/>
-            <xsd:enumeration value="OSS"/>
-            <xsd:enumeration value="ALSA"/>
-          </xsd:restriction>
-        </xsd:simpleType>
-      </xsd:attribute>
-    </xsd:extension>
-  </xsd:complexContent>
-</xsd:complexType>
-
-</xsd:schema>
Index: unk/src/VBox/Main/xml/VirtualBox-settings-linux.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-linux.xsd	(revision 44947)
+++ 	(revision )
@@ -1,70 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- *  :tabSize=2:indentSize=2:noTabs=true:
- *  :folding=explicit:collapseFolds=1:
- *
- *  Oracle VM VirtualBox Settings Schema Version 1.0-linux
-
-    Copyright (C) 2004-2012 Oracle Corporation
-
-    This file is part of VirtualBox Open Source Edition (OSE), as
-    available from http://www.virtualbox.org. This file is free software;
-    you can redistribute it and/or modify it under the terms of the GNU
-    General Public License (GPL) as published by the Free Software
-    Foundation, in version 2 as it comes in the "COPYING" file of the
-    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
--->
-
-<xsd:schema
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://www.innotek.de/VirtualBox-settings"
-  xmlns:vb="http://www.innotek.de/VirtualBox-settings"
-  targetNamespace="http://www.innotek.de/VirtualBox-settings"
-  elementFormDefault="qualified"
->
-
-<xsd:annotation>
-  <xsd:documentation xml:lang="en">
-    Oracle VM VirtualBox Settings Schema (linux).
-    Copyright (c) 2004-2010 Oracle Corporation
-  </xsd:documentation>
-</xsd:annotation>
-
-<xsd:include schemaLocation="VirtualBox-settings-common.xsd"/>
-
-<!--
-  this includes a computed VirtualBox element definition that contains
-  a proper 'version' attribute constraint (e.g. recent version number
-  and platform suffix)
--->
-<xsd:include schemaLocation="VirtualBox-settings-root.xsd"/>
-
-<!--
-// Simple types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<!--
-// Complex types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<xsd:complexType name="TAudioAdapter">
-  <xsd:complexContent>
-    <xsd:extension base="TAudioAdapterBase">
-      <xsd:attribute name="driver" use="required">
-        <xsd:simpleType>
-          <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="Null"/>
-            <xsd:enumeration value="OSS"/>
-            <xsd:enumeration value="ALSA"/>
-            <xsd:enumeration value="Pulse"/>
-          </xsd:restriction>
-        </xsd:simpleType>
-      </xsd:attribute>
-    </xsd:extension>
-  </xsd:complexContent>
-</xsd:complexType>
-
-</xsd:schema>
Index: unk/src/VBox/Main/xml/VirtualBox-settings-macosx.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-macosx.xsd	(revision 44947)
+++ 	(revision )
@@ -1,68 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- *  :tabSize=2:indentSize=2:noTabs=true:
- *  :folding=explicit:collapseFolds=1:
- *
- *  Oracle VM VirtualBox Settings Schema Version 1.0-macosx
-
-    Copyright (C) 2004-2012 Oracle Corporation
-
-    This file is part of VirtualBox Open Source Edition (OSE), as
-    available from http://www.virtualbox.org. This file is free software;
-    you can redistribute it and/or modify it under the terms of the GNU
-    General Public License (GPL) as published by the Free Software
-    Foundation, in version 2 as it comes in the "COPYING" file of the
-    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
--->
-
-<xsd:schema
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://www.innotek.de/VirtualBox-settings"
-  xmlns:vb="http://www.innotek.de/VirtualBox-settings"
-  targetNamespace="http://www.innotek.de/VirtualBox-settings"
-  elementFormDefault="qualified"
->
-
-<xsd:annotation>
-  <xsd:documentation xml:lang="en">
-    Oracle VM VirtualBox Settings Schema (macosx).
-    Copyright (c) 2004-2010 Oracle Corporation
-  </xsd:documentation>
-</xsd:annotation>
-
-<xsd:include schemaLocation="VirtualBox-settings-common.xsd"/>
-
-<!--
-  this includes a computed VirtualBox element definition that contains
-  a proper 'version' attribute constraint (e.g. recent version number
-  and platform suffix)
--->
-<xsd:include schemaLocation="VirtualBox-settings-root.xsd"/>
-
-<!--
-// Simple types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<!--
-// Complex types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<xsd:complexType name="TAudioAdapter">
-  <xsd:complexContent>
-    <xsd:extension base="TAudioAdapterBase">
-      <xsd:attribute name="driver" use="required">
-        <xsd:simpleType>
-          <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="Null"/>
-            <xsd:enumeration value="CoreAudio"/>
-          </xsd:restriction>
-        </xsd:simpleType>
-      </xsd:attribute>
-    </xsd:extension>
-  </xsd:complexContent>
-</xsd:complexType>
-
-</xsd:schema>
Index: unk/src/VBox/Main/xml/VirtualBox-settings-os2.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-os2.xsd	(revision 44947)
+++ 	(revision )
@@ -1,69 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<!--
- *  :tabSize=2:indentSize=2:noTabs=true:
- *  :folding=explicit:collapseFolds=1:
- *
- *  Oracle VM VirtualBox Settings Schema Version 1.0-os2
- *
-    Copyright (C) 2004-2012 Oracle Corporation
-
-    This file is part of VirtualBox Open Source Edition (OSE), as
-    available from http://www.virtualbox.org. This file is free software;
-    you can redistribute it and/or modify it under the terms of the GNU
-    General Public License (GPL) as published by the Free Software
-    Foundation, in version 2 as it comes in the "COPYING" file of the
-    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
--->
-
-<xsd:schema
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://www.innotek.de/VirtualBox-settings"
-  xmlns:vb="http://www.innotek.de/VirtualBox-settings"
-  targetNamespace="http://www.innotek.de/VirtualBox-settings"
-  elementFormDefault="qualified"
->
-
-<xsd:annotation>
-  <xsd:documentation xml:lang="en">
-    Oracle VM VirtualBox Settings Schema (os2).
-    Copyright (c) 2004-2010 Oracle Corporation
-  </xsd:documentation>
-</xsd:annotation>
-
-<xsd:include schemaLocation="VirtualBox-settings-common.xsd"/>
-
-<!--
-  this includes a computed VirtualBox element definition that contains
-  a proper 'version' attribute constraint (e.g. recent version number
-  and platform suffix)
--->
-<xsd:include schemaLocation="VirtualBox-settings-root.xsd"/>
-
-<!--
-// Simple types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<!--
-// Complex types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<xsd:complexType name="TAudioAdapter">
-  <xsd:complexContent>
-    <xsd:extension base="TAudioAdapterBase">
-      <xsd:attribute name="driver" use="required">
-        <xsd:simpleType>
-          <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="Null"/>
-            <xsd:enumeration value="MMPM"/>
-          </xsd:restriction>
-        </xsd:simpleType>
-      </xsd:attribute>
-    </xsd:extension>
-  </xsd:complexContent>
-</xsd:complexType>
-
-</xsd:schema>
Index: unk/src/VBox/Main/xml/VirtualBox-settings-solaris.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-solaris.xsd	(revision 44947)
+++ 	(revision )
@@ -1,69 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- *  :tabSize=2:indentSize=2:noTabs=true:
- *  :folding=explicit:collapseFolds=1:
- *
- *  Oracle VM VirtualBox Settings Schema Version 1.0-solaris
-
-    Copyright (C) 2004-2012 Oracle Corporation
-
-    This file is part of VirtualBox Open Source Edition (OSE), as
-    available from http://www.virtualbox.org. This file is free software;
-    you can redistribute it and/or modify it under the terms of the GNU
-    General Public License (GPL) as published by the Free Software
-    Foundation, in version 2 as it comes in the "COPYING" file of the
-    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
--->
-
-<xsd:schema
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://www.innotek.de/VirtualBox-settings"
-  xmlns:vb="http://www.innotek.de/VirtualBox-settings"
-  targetNamespace="http://www.innotek.de/VirtualBox-settings"
-  elementFormDefault="qualified"
->
-
-<xsd:annotation>
-  <xsd:documentation xml:lang="en">
-    Oracle VM VirtualBox Settings Schema (solaris).
-    Copyright (c) 2004-2010 Oracle Corporation
-  </xsd:documentation>
-</xsd:annotation>
-
-<xsd:include schemaLocation="VirtualBox-settings-common.xsd"/>
-
-<!--
-  this includes a computed VirtualBox element definition that contains
-  a proper 'version' attribute constraint (e.g. recent version number
-  and platform suffix)
--->
-<xsd:include schemaLocation="VirtualBox-settings-root.xsd"/>
-
-<!--
-// Simple types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<!--
-// Complex types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<xsd:complexType name="TAudioAdapter">
-  <xsd:complexContent>
-    <xsd:extension base="TAudioAdapterBase">
-      <xsd:attribute name="driver" use="required">
-        <xsd:simpleType>
-          <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="Null"/>
-            <xsd:enumeration value="SolAudio"/>
-            <xsd:enumeration value="OSS"/>
-          </xsd:restriction>
-        </xsd:simpleType>
-      </xsd:attribute>
-    </xsd:extension>
-  </xsd:complexContent>
-</xsd:complexType>
-
-</xsd:schema>
Index: unk/src/VBox/Main/xml/VirtualBox-settings-windows.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings-windows.xsd	(revision 44947)
+++ 	(revision )
@@ -1,69 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
- *  :tabSize=2:indentSize=2:noTabs=true:
- *  :folding=explicit:collapseFolds=1:
- *
- *  Oracle VM VirtualBox Settings Schema Version 1.0-windows
-
-    Copyright (C) 2004-2012 Oracle Corporation
-
-    This file is part of VirtualBox Open Source Edition (OSE), as
-    available from http://www.virtualbox.org. This file is free software;
-    you can redistribute it and/or modify it under the terms of the GNU
-    General Public License (GPL) as published by the Free Software
-    Foundation, in version 2 as it comes in the "COPYING" file of the
-    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
-    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
--->
-
-<xsd:schema
-  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
-  xmlns="http://www.innotek.de/VirtualBox-settings"
-  xmlns:vb="http://www.innotek.de/VirtualBox-settings"
-  targetNamespace="http://www.innotek.de/VirtualBox-settings"
-  elementFormDefault="qualified"
->
-
-<xsd:annotation>
-  <xsd:documentation xml:lang="en">
-    Oracle VM VirtualBox Settings Schema (windows).
-    Copyright (c) 2004-2010 Oracle Corporation
-  </xsd:documentation>
-</xsd:annotation>
-
-<xsd:include schemaLocation="VirtualBox-settings-common.xsd"/>
-
-<!--
-  this includes a computed VirtualBox element definition that contains
-  a proper 'version' attribute constraint (e.g. recent version number
-  and platform suffix)
--->
-<xsd:include schemaLocation="VirtualBox-settings-root.xsd"/>
-
-<!--
-// Simple types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<!--
-// Complex types
-/////////////////////////////////////////////////////////////////////////
--->
-
-<xsd:complexType name="TAudioAdapter">
-  <xsd:complexContent>
-    <xsd:extension base="TAudioAdapterBase">
-      <xsd:attribute name="driver" use="required">
-        <xsd:simpleType>
-          <xsd:restriction base="xsd:token">
-            <xsd:enumeration value="Null"/>
-            <xsd:enumeration value="WinMM"/>
-            <xsd:enumeration value="DirectSound"/>
-          </xsd:restriction>
-        </xsd:simpleType>
-      </xsd:attribute>
-    </xsd:extension>
-  </xsd:complexContent>
-</xsd:complexType>
-
-</xsd:schema>
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings.xsd	(revision 44948)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings.xsd	(revision 44948)
@@ -0,0 +1,1308 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ *  :tabSize=2:indentSize=2:noTabs=true:
+ *  :folding=explicit:collapseFolds=1:
+ *
+ *  Oracle VM VirtualBox Settings Schema
+ *  Common definitions
+
+    Copyright (C) 2004-2013 Oracle Corporation
+
+    This file is part of VirtualBox Open Source Edition (OSE), as
+    available from http://www.virtualbox.org. This file is free software;
+    you can redistribute it and/or modify it under the terms of the GNU
+    General Public License (GPL) as published by the Free Software
+    Foundation, in version 2 as it comes in the "COPYING" file of the
+    VirtualBox OSE distribution. VirtualBox OSE is distributed in the
+    hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
+-->
+
+<xsd:schema
+  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+  xmlns="http://www.innotek.de/VirtualBox-settings"
+  xmlns:vb="http://www.innotek.de/VirtualBox-settings"
+  targetNamespace="http://www.innotek.de/VirtualBox-settings"
+  elementFormDefault="qualified"
+>
+
+<xsd:annotation>
+  <xsd:documentation xml:lang="en">
+    Oracle VM VirtualBox Settings Schema (common definitions).
+    Copyright (c) 2004-2013 Oracle Corporation
+  </xsd:documentation>
+</xsd:annotation>
+
+<!--
+// Simple types
+/////////////////////////////////////////////////////////////////////////
+-->
+
+<xsd:simpleType name="TUUID">
+  <xsd:restriction base="xsd:token">
+    <xsd:pattern value="\{[0-9A-Fa-f]{8}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{4}-[0-9A-Fa-f]{12}\}"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TNonNullUUID">
+  <xsd:restriction base="TUUID">
+    <xsd:pattern value=".*[1-9A-Fa-f]+.*"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TUInt8">
+  <xsd:union>
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:unsignedByte">
+      </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:string">
+        <xsd:pattern value="0[xX][A-Fa-f0-9]{1,2}"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:union>
+</xsd:simpleType>
+
+<xsd:simpleType name="TUInt16">
+  <xsd:union>
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:unsignedShort">
+      </xsd:restriction>
+    </xsd:simpleType>
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:string">
+        <xsd:pattern value="0[xX][A-Fa-f0-9]{1,4}"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:union>
+</xsd:simpleType>
+
+<xsd:simpleType name="TUInt16Hex">
+  <xsd:restriction base="xsd:string">
+    <xsd:pattern value="0x[A-Fa-f0-9]{1,4}"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TUInt16HexNoBase">
+  <xsd:restriction base="xsd:string">
+    <xsd:pattern value="[A-Fa-f0-9]{1,4}"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TUInt32Hex">
+  <xsd:restriction base="xsd:string">
+    <xsd:pattern value="0x[A-Fa-f0-9]{1,8}"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TUInt64Hex">
+  <xsd:restriction base="xsd:string">
+    <xsd:pattern value="0x[A-Fa-f0-9]{1,16}"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TLocalFile">
+  <xsd:restriction base="xsd:string">
+    <xsd:pattern value=".+"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TDeviceType">
+  <xsd:restriction base="xsd:token">
+    <xsd:enumeration value="None"/>
+    <xsd:enumeration value="Floppy"/>
+    <xsd:enumeration value="DVD"/>
+    <xsd:enumeration value="HardDisk"/>
+    <xsd:enumeration value="Network"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TMediumDeviceType">
+  <xsd:restriction base="TDeviceType">
+    <xsd:enumeration value="Floppy"/>
+    <xsd:enumeration value="DVD"/>
+    <xsd:enumeration value="HardDisk"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TMediumType">
+  <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="Normal"/>
+    <xsd:enumeration value="Immutable"/>
+    <xsd:enumeration value="Writethrough"/>
+    <xsd:enumeration value="Shareable"/>
+    <xsd:enumeration value="Readonly"/>
+    <xsd:enumeration value="MultiAttach"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TMonitorCount">
+  <xsd:restriction base="xsd:unsignedInt">
+    <xsd:minInclusive value="1"/>
+    <!-- This should be in sync with VBOX_VIDEO_MAX_SCREENS in VBoxVideoVBE.h -->
+    <xsd:maxInclusive value="64"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TUSBDeviceFilterAction">
+  <xsd:restriction base="xsd:token">
+    <xsd:enumeration value="Ignore"/>
+    <xsd:enumeration value="Hold"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TNonEmptyString">
+  <xsd:restriction base="xsd:string">
+    <xsd:pattern value=".+"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TPresentDateTimeUTC">
+  <xsd:restriction base="xsd:dateTime">
+    <xsd:minInclusive value="1900-01-01T00:00:00Z"/>
+    <xsd:maxInclusive value="199999999-12-31T23:59:59Z"/>
+    <xsd:pattern value=".+-.+-.+T.+:.+:[0-9]{2}Z"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+
+<xsd:simpleType name="TAuthType">
+  <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="null"/> <!-- deprecated -->
+    <xsd:enumeration value="Null"/>
+    <xsd:enumeration value="Guest"/>
+    <xsd:enumeration value="External"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TNetworkAdapterType">
+  <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="Am79C970A"/>
+    <xsd:enumeration value="Am79C973"/>
+    <xsd:enumeration value="82540EM"/>
+    <xsd:enumeration value="82543GC"/>
+    <xsd:enumeration value="82545EM"/>
+    <xsd:enumeration value="virtio"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TTriStateBoolType">
+  <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="false"/>
+    <xsd:enumeration value="true"/>
+    <xsd:enumeration value="default"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TBIOSBootMenuModeType">
+  <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="Disabled"/>
+    <xsd:enumeration value="MenuOnly"/>
+    <xsd:enumeration value="MessageAndMenu"/>
+    <xsd:enumeration value="messageandmenu"/> <!-- deprecated -->
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TLocalOrUTC">
+  <xsd:restriction base="xsd:token">
+    <xsd:enumeration value="local"/>
+    <xsd:enumeration value="UTC"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TClipboardMode">
+  <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="Disabled"/>
+    <xsd:enumeration value="HostToGuest"/>
+    <xsd:enumeration value="GuestToHost"/>
+    <xsd:enumeration value="Bidirectional"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TDragAndDropMode">
+  <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="Disabled"/>
+    <xsd:enumeration value="HostToGuest"/>
+    <xsd:enumeration value="GuestToHost"/>
+    <xsd:enumeration value="Bidirectional"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TBandwidthGroupType">
+  <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="Disk"/>
+    <xsd:enumeration value="Network"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TPortMode">
+  <xsd:restriction base="xsd:string">
+    <xsd:enumeration value="Disconnected"/>
+    <xsd:enumeration value="RawFile"/>
+    <xsd:enumeration value="HostPipe"/>
+    <xsd:enumeration value="HostDevice"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<!--
+// Complex types
+/////////////////////////////////////////////////////////////////////////
+-->
+<xsd:complexType name="TDHCPServer">
+  <xsd:attribute name="networkName" type="xsd:string"  use="required"/>
+  <xsd:attribute name="lowerIP"     type="xsd:string"  use="required"/>
+  <xsd:attribute name="upperIP"     type="xsd:string"  use="required"/>
+  <xsd:attribute name="IPAddress"   type="xsd:string"  use="required"/>
+  <xsd:attribute name="networkMask" type="xsd:string"  use="required"/>
+  <xsd:attribute name="enabled"     type="xsd:boolean" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TProperty">
+  <xsd:attribute name="name" type="xsd:token" use="required"/>
+  <xsd:attribute name="value" type="xsd:string" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="THardDiskBase">
+  <xsd:sequence>
+    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
+    <xsd:element name="Property" type="TProperty" minOccurs="0" maxOccurs="unbounded"/>
+    <xsd:element name="HardDisk" type="TDiffHardDisk" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
+  <xsd:attribute name="location" type="TLocalFile" use="required"/>
+  <xsd:attribute name="format" type="TNonEmptyString" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TDiffHardDisk">
+  <xsd:complexContent>
+    <xsd:extension base="THardDiskBase">
+      <xsd:attribute name="autoReset" type="xsd:boolean" default="false"/>
+    </xsd:extension>
+  </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="THardDisk">
+  <xsd:complexContent>
+    <xsd:extension base="THardDiskBase">
+      <xsd:attribute name="type" type="TMediumType" use="required"/>
+    </xsd:extension>
+  </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="TImage2">
+  <xsd:sequence>
+    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
+  </xsd:sequence>
+  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
+  <xsd:attribute name="location" type="TLocalFile" use="required"/>
+  <xsd:attribute name="type" type="TMediumType"/>
+</xsd:complexType>
+
+<xsd:complexType name="TImageRef">
+  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="THostDrive">
+  <xsd:attribute name="src" type="TLocalFile" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TUSBDeviceFilter">
+  <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="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="port" type="xsd:token"/>
+  <xsd:attribute name="remote" type="xsd:token"/>
+  <xsd:attribute name="maskedInterfaces" type="xsd:unsignedInt" default="0"/>
+</xsd:complexType>
+
+<xsd:complexType name="THostUSBDeviceFilter">
+  <xsd:complexContent>
+    <xsd:extension base="TUSBDeviceFilter">
+      <xsd:attribute name="action" type="TUSBDeviceFilterAction" use="required"/>
+    </xsd:extension>
+  </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="TSystemProperties">
+  <xsd:attribute name="defaultMachineFolder" type="TLocalFile"/>
+  <xsd:attribute name="defaultHardDiskFolder" type="TLocalFile"/>
+  <xsd:attribute name="defaultHardDiskFormat" type="TNonEmptyString"/>
+  <xsd:attribute name="VRDEAuthLibrary" type="TLocalFile"/>
+  <xsd:attribute name="webServiceAuthLibrary" type="TLocalFile"/>
+  <xsd:attribute name="defaultVRDELibrary" type="TLocalFile"/>
+  <xsd:attribute name="HWVirtExEnabled" type="xsd:boolean"/>
+  <xsd:attribute name="LogHistoryCount" type="xsd:unsignedInt" default="3"/>
+  <xsd:attribute name="defaultVRDEExtPack" type="xsd:string"/>
+</xsd:complexType>
+
+<xsd:complexType name="TExtraData">
+  <xsd:sequence>
+    <xsd:element name="ExtraDataItem" minOccurs="0" maxOccurs="unbounded">
+      <xsd:complexType>
+        <xsd:attribute name="name" type="xsd:token" use="required"/>
+        <xsd:attribute name="value" type="xsd:string" use="required"/>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TMediaRegistry">
+  <xsd:all>
+    <xsd:element name="HardDisks" minOccurs="0">
+      <xsd:complexType>
+        <xsd:sequence>
+          <xsd:element name="HardDisk" type="THardDisk" minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="DVDImages" minOccurs="0">
+      <xsd:complexType>
+        <xsd:sequence>
+          <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="FloppyImages" minOccurs="0">
+      <xsd:complexType>
+        <xsd:sequence>
+          <xsd:element name="Image" type="TImage2" minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:all>
+</xsd:complexType>
+
+<xsd:complexType name="TGlobal">
+  <xsd:all>
+    <xsd:element name="MachineRegistry">
+      <xsd:complexType>
+        <xsd:sequence>
+          <xsd:element name="MachineEntry" minOccurs="0" maxOccurs="unbounded">
+            <xsd:complexType>
+              <xsd:attribute name="src" type="TLocalFile" use="required"/>
+              <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:sequence>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="MediaRegistry" type="TMediaRegistry"/>
+    <xsd:element name="NetserviceRegistry" minOccurs="0" maxOccurs="1">
+      <xsd:complexType>
+        <xsd:all>
+          <xsd:element name="DHCPServers" minOccurs="0">
+            <xsd:complexType>
+              <xsd:sequence>
+                <xsd:element name="DHCPServer" type="TDHCPServer" minOccurs="0" maxOccurs="unbounded"/>
+              </xsd:sequence>
+            </xsd:complexType>
+          </xsd:element>
+        </xsd:all>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="USBDeviceFilters">
+      <xsd:complexType>
+        <xsd:sequence>
+          <xsd:element name="DeviceFilter" type="THostUSBDeviceFilter"
+                       minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="SystemProperties" type="TSystemProperties"/>
+    <xsd:element name="ExtraData" type="TExtraData" minOccurs="0"/>
+  </xsd:all>
+</xsd:complexType>
+
+<xsd:complexType name="THWVirtExType">
+  <xsd:attribute name="enabled" type="TTriStateBoolType"/>
+  <xsd:attribute name="exclusive" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="THWVirtExNestedPagingType">
+  <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="THWVirtExVPIDType">
+  <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TSyntheticCpuType">
+  <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TPAEType">
+  <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="THardwareVirtExLargePages">
+  <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="THardwareVirtForce">
+  <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:simpleType name="TCPUCount">
+  <xsd:restriction base="xsd:unsignedInt">
+    <xsd:minInclusive value="1"/>
+    <xsd:maxInclusive value="32"/>
+  </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:complexType name="TCpuIdLeaf">
+  <xsd:attribute name="id"        type="TUInt32Hex"       use="required"/>
+  <xsd:attribute name="eax"       type="TUInt32Hex"       use="required"/>
+  <xsd:attribute name="ebx"       type="TUInt32Hex"       use="required"/>
+  <xsd:attribute name="ecx"       type="TUInt32Hex"       use="required"/>
+  <xsd:attribute name="edx"       type="TUInt32Hex"       use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TCpuIdTree">
+  <xsd:sequence>
+    <xsd:element name="CpuIdLeaf" type="TCpuIdLeaf"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TCPU">
+  <xsd:sequence>
+    <xsd:element name="HardwareVirtEx" type="THWVirtExType" minOccurs="0"/>
+    <xsd:element name="HardwareVirtExNestedPaging" type="THWVirtExNestedPagingType" minOccurs="0"/>
+    <xsd:element name="HardwareVirtExVPID" type="THWVirtExVPIDType" minOccurs="0"/>
+    <xsd:element name="PAE" type="TPAEType" minOccurs="0"/>
+    <xsd:element name="HardwareVirtExLargePages" type="THardwareVirtExLargePages" minOccurs="0"/>
+    <xsd:element name="HardwareVirtForce" type="THardwareVirtForce" minOccurs="0"/>
+    <xsd:element name="SyntheticCpu" type="TSyntheticCpuType" minOccurs="0"/>
+    <xsd:element name="CpuIdTree" type="TCpuIdTree" minOccurs="0">
+      <xsd:unique name="TCPU-CpuIdTree-CpuIdLeaf">
+        <xsd:selector xpath="vb:CpuIdLeaf"/>
+        <xsd:field xpath="@id"/>
+      </xsd:unique>
+    </xsd:element>
+  </xsd:sequence>
+  <xsd:attribute name="count" type="TCPUCount" default="1"/>
+  <xsd:attribute name="hotplug" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TBoot">
+  <xsd:sequence>
+    <xsd:element name="Order" minOccurs="0" maxOccurs="unbounded">
+      <xsd:complexType>
+        <xsd:attribute name="position" use="required">
+          <xsd:simpleType>
+            <xsd:restriction base="xsd:unsignedInt">
+              <xsd:minInclusive value="1"/>
+              <xsd:maxInclusive value="4"/>
+            </xsd:restriction>
+          </xsd:simpleType>
+        </xsd:attribute>
+        <xsd:attribute name="device" type="TDeviceType" use="required"/>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TDisplay">
+  <xsd:attribute name="VRAMSize" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:unsignedInt">
+        <xsd:minInclusive value="1"/>
+        <xsd:maxInclusive value="256"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="monitorCount" type="TMonitorCount" default="1"/>
+  <xsd:attribute name="MonitorCount" type="TMonitorCount"/> <!-- deprecated -->
+  <xsd:attribute name="accelerate3D" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="accelerate2DVideo" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TVideoRecording">
+  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="file" type="xsd:string"/>
+  <xsd:attribute name="horzRes">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:unsignedInt">
+        <xsd:minInclusive value="4"/>
+        <xsd:maxInclusive value="2097152"/>
+       </xsd:restriction>
+     </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="vertRes" type="xsd:unsignedInt"/>
+</xsd:complexType>
+
+<xsd:complexType name="TVRDEProperties">
+  <xsd:sequence>
+    <xsd:element name="Property" type="TProperty" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TVideoChannel">
+  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="quality" type="xsd:unsignedByte" default="75"/>
+</xsd:complexType>
+
+<xsd:complexType name="TRemoteDisplay">
+  <xsd:sequence>
+    <xsd:element name="VideoChannel" type="TVideoChannel" minOccurs="0"/> <!-- deprecated -->
+    <xsd:choice minOccurs="0">
+      <xsd:element name="VRDEProperties" type="TVRDEProperties"/>
+    </xsd:choice>
+  </xsd:sequence>
+  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
+  <xsd:attribute name="port" type="xsd:string" default="3389"/> <!-- deprecated -->
+  <xsd:attribute name="authType" type="TAuthType" default="Null"/>
+  <xsd:attribute name="authTimeout" type="xsd:unsignedInt" default="5000"/>
+  <xsd:attribute name="allowMultiConnection" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="reuseSingleConnection" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TBIOS">
+  <xsd:all>
+    <xsd:element name="ACPI">
+      <xsd:complexType>
+        <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="IOAPIC" minOccurs="0">
+      <xsd:complexType>
+          <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="Logo" minOccurs="0">
+      <xsd:complexType>
+        <xsd:attribute name="fadeIn" type="xsd:boolean" default="true"/>
+        <xsd:attribute name="fadeOut" type="xsd:boolean" default="true"/>
+        <xsd:attribute name="displayTime" type="xsd:unsignedInt" default="0"/>
+        <xsd:attribute name="imagePath" type="TLocalFile"/>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="BootMenu" minOccurs="0">
+      <xsd:complexType>
+        <xsd:attribute name="mode" type="TBIOSBootMenuModeType" default="MessageAndMenu"/>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="TimeOffset" minOccurs="0">
+      <xsd:complexType>
+        <xsd:attribute name="value" type="xsd:integer" default="0"/>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="PXEDebug" minOccurs="0">
+      <xsd:complexType>
+        <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="IDEController" minOccurs="0"> <!-- deprecated -->
+      <xsd:complexType>
+        <xsd:attribute name="type">
+          <xsd:simpleType>
+            <xsd:restriction base="xsd:token">
+            <xsd:enumeration value="PIIX3"/>
+            <xsd:enumeration value="PIIX4"/>
+            <xsd:enumeration value="ICH6"/>
+            </xsd:restriction>
+          </xsd:simpleType>
+        </xsd:attribute>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:all>
+</xsd:complexType>
+
+<xsd:complexType name="TStorageControllerDevice">
+  <xsd:choice minOccurs="0">
+    <xsd:element name="Image" type="TImageRef"/>
+    <xsd:element name="HostDrive" type="THostDrive"/>
+  </xsd:choice>
+  <xsd:attribute name="type" type="TMediumDeviceType"/>
+  <xsd:attribute name="port" type="xsd:unsignedInt" default="0"/>
+  <xsd:attribute name="device" type="xsd:unsignedInt" default="0"/>
+  <xsd:attribute name="passthrough" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="tempeject" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="nonrotational" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="discard" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TStorageController">
+  <xsd:sequence>
+    <xsd:element name="AttachedDevice" type="TStorageControllerDevice"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+  <xsd:attribute name="name" type="xsd:string" use="required"/>
+  <xsd:attribute name="type" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:token">
+      <xsd:enumeration value="AHCI"/>
+      <xsd:enumeration value="LsiLogic"/>
+      <xsd:enumeration value="BusLogic"/>
+      <xsd:enumeration value="PIIX3"/>
+      <xsd:enumeration value="PIIX4"/>
+      <xsd:enumeration value="ICH6"/>
+      <xsd:enumeration value="LsiLogicSas"/>
+      <xsd:enumeration value="I82078"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="PortCount"   type="xsd:unsignedInt" use="required"/>
+  <xsd:attribute name="useHostIOCache" type="xsd:boolean"  use="optional" default="true"/>
+  <xsd:attribute name="Bootable"    type="xsd:boolean"     use="optional"/>
+  <xsd:attribute name="PCIBus"      type="xsd:unsignedInt" use="optional"/>
+  <xsd:attribute name="PCIDevice"   type="xsd:unsignedInt" use="optional"/>
+  <xsd:attribute name="PCIFunction" type="xsd:unsignedInt" use="optional"/>
+  <xsd:attribute name="IDE0MasterEmulationPort" type="xsd:unsignedInt" use="optional"/>
+  <xsd:attribute name="IDE0SlaveEmulationPort"  type="xsd:unsignedInt" use="optional"/>
+  <xsd:attribute name="IDE1MasterEmulationPort" type="xsd:unsignedInt" use="optional"/>
+  <xsd:attribute name="IDE1SlaveEmulationPort"  type="xsd:unsignedInt" use="optional"/>
+</xsd:complexType>
+
+<xsd:complexType name="TSATAController"> <!-- deprecated -->
+  <xsd:sequence>
+    <xsd:element name="AttachedDevice" type="TStorageControllerDevice"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+  <xsd:attribute name="enabled"     type="xsd:boolean"     default="false"/>
+  <xsd:attribute name="PortCount"   type="xsd:unsignedInt" use="required"/>
+  <xsd:attribute name="IDE0MasterEmulationPort" type="xsd:unsignedInt" use="optional"/>
+  <xsd:attribute name="IDE0SlaveEmulationPort"  type="xsd:unsignedInt" use="optional"/>
+  <xsd:attribute name="IDE1MasterEmulationPort" type="xsd:unsignedInt" use="optional"/>
+  <xsd:attribute name="IDE1SlaveEmulationPort"  type="xsd:unsignedInt" use="optional"/>
+</xsd:complexType>
+
+<xsd:complexType name="TStorageControllers">
+  <xsd:sequence>
+    <xsd:element name="StorageController" type="TStorageController"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="THardDiskAttachment">
+  <xsd:attribute name="hardDisk" type="TNonNullUUID"/>
+  <xsd:attribute name="bus" default="IDE">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="IDE"/>
+        <xsd:enumeration value="SATA"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="channel" type="xsd:unsignedInt" default="0"/>
+  <xsd:attribute name="device" type="xsd:unsignedInt" default="0"/>
+</xsd:complexType>
+
+<xsd:complexType name="THardDiskAttachments"> <!-- deprecated -->
+  <xsd:sequence>
+    <xsd:element name="HardDiskAttachment" type="THardDiskAttachment"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TDVDDrive">
+  <xsd:choice minOccurs="0">
+    <xsd:element name="Image" type="TImageRef"/>
+    <xsd:element name="HostDrive" type="THostDrive"/>
+  </xsd:choice>
+  <xsd:attribute name="passthrough" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TFloppyDrive">
+  <xsd:choice minOccurs="0">
+    <xsd:element name="Image" type="TImageRef"/>
+    <xsd:element name="HostDrive" type="THostDrive"/>
+  </xsd:choice>
+  <xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
+</xsd:complexType>
+
+<xsd:complexType name="TUSBController">
+  <xsd:sequence>
+    <xsd:element name="DeviceFilter" type="TUSBDeviceFilter"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
+  <xsd:attribute name="enabledEhci" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TAudioAdapter">
+  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
+  <xsd:attribute name="controller" default="AC97">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="AC97"/>
+        <xsd:enumeration value="SB16"/>
+        <xsd:enumeration value="HDA"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="driver" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="null"/> <!-- deprecated -->
+        <xsd:enumeration value="Null"/> <!-- all platforms -->
+        <xsd:enumeration value="OSS"/> <!-- Linux, Solaris, FreeBSD -->
+        <xsd:enumeration value="ALSA"/> <!-- Linux, FreeBSD -->
+        <xsd:enumeration value="Pulse"/> <!-- Linux -->
+        <xsd:enumeration value="CoreAudio"/> <!-- Mac OS X -->
+        <xsd:enumeration value="MMPM"/> <!-- OS/2 -->
+        <xsd:enumeration value="SolAudio"/> <!-- Solaris -->
+        <xsd:enumeration value="WinMM"/> <!-- Windows -->
+        <xsd:enumeration value="DirectSound"/> <!-- Windows -->
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+</xsd:complexType>
+
+<xsd:complexType name="TNetNAT">
+  <xsd:choice minOccurs="0" maxOccurs="unbounded">
+    <xsd:element name="DNS" minOccurs="0">
+      <xsd:complexType>
+        <xsd:attribute name="pass-domain" type="xsd:boolean" default="true"/>
+        <xsd:attribute name="use-proxy" type="xsd:boolean" default="false"/>
+        <xsd:attribute name="use-host-resolver" type="xsd:boolean" default="false"/>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="Alias" minOccurs="0">
+      <xsd:complexType>
+        <xsd:attribute name="logging" type="xsd:boolean" default="false"/>
+        <xsd:attribute name="proxy-only" type="xsd:boolean" default="false"/>
+        <xsd:attribute name="use-same-ports" type="xsd:boolean" default="false"/>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="TFTP" minOccurs="0">
+      <xsd:complexType>
+        <xsd:attribute name="prefix" type="xsd:string"/>
+        <xsd:attribute name="boot-file" type="xsd:string"/>
+        <xsd:attribute name="next-server" type="xsd:string"/>
+      </xsd:complexType>
+    </xsd:element>
+    <xsd:element name="Forwarding" minOccurs="0" maxOccurs="unbounded">
+      <xsd:complexType>
+        <xsd:attribute name="name" type="xsd:string"/>
+        <xsd:attribute name="proto" type="xsd:unsignedInt"/>
+        <xsd:attribute name="hostip" type="xsd:string"/>
+        <xsd:attribute name="hostport" type="xsd:unsignedInt"/>
+        <xsd:attribute name="guestip" type="xsd:string"/>
+        <xsd:attribute name="guestport" type="xsd:unsignedInt"/>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:choice>
+  <xsd:attribute name="network" type="xsd:string"/>
+  <xsd:attribute name="hostip" type="xsd:string"/>
+  <xsd:attribute name="mtu" type="xsd:unsignedInt"/>
+  <xsd:attribute name="sockrcv" type="xsd:unsignedInt"/>
+  <xsd:attribute name="socksnd" type="xsd:unsignedInt"/>
+  <xsd:attribute name="tcprcv" type="xsd:unsignedInt"/>
+  <xsd:attribute name="tcpsnd" type="xsd:unsignedInt"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNetBridged">
+  <xsd:attribute name="name" type="xsd:string" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNetInternal">
+  <xsd:attribute name="name" type="xsd:string" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNetHostOnly">
+  <xsd:attribute name="name" type="xsd:string" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNetGeneric">
+  <xsd:sequence>
+    <xsd:element name="Property" type="TProperty" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+  <xsd:attribute name="driver" type="xsd:string" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNetworkConfig">
+  <xsd:choice maxOccurs="2">
+    <xsd:choice minOccurs="0">
+      <xsd:element name="NAT" type="TNetNAT"/>
+      <xsd:element name="HostInterface" type="TNetBridged"/>
+      <xsd:element name="BridgedInterface" type="TNetBridged"/>
+      <xsd:element name="InternalNetwork" type="TNetInternal"/>
+      <xsd:element name="HostOnlyInterface" type="TNetHostOnly"/>
+      <xsd:element name="GenericInterface" type="TNetGeneric"/>
+    </xsd:choice>
+    <xsd:element name="DisabledModes">
+      <xsd:complexType>
+        <xsd:all>
+          <xsd:element name="NAT" type="TNetNAT" minOccurs="0"/>
+          <xsd:element name="HostInterface" type="TNetBridged" minOccurs="0"/>
+          <xsd:element name="BridgedInterface" type="TNetBridged" minOccurs="0"/>
+          <xsd:element name="InternalNetwork" type="TNetInternal" minOccurs="0"/>
+          <xsd:element name="HostOnlyInterface" type="TNetHostOnly" minOccurs="0"/>
+          <xsd:element name="GenericInterface" type="TNetGeneric" minOccurs="0"/>
+        </xsd:all>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:choice>
+</xsd:complexType>
+
+<xsd:complexType name="TNetworkAdapter">
+  <xsd:complexContent>
+    <xsd:extension base="TNetworkConfig">
+      <xsd:attribute name="type" type="TNetworkAdapterType" default="Am79C970A"/>
+      <xsd:attribute name="slot" type="xsd:unsignedInt" use="required"/>
+      <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
+      <xsd:attribute name="MACAddress">
+        <xsd:simpleType>
+          <xsd:restriction base="xsd:hexBinary">
+            <xsd:pattern value="[0-9A-Fa-f][02468ACEace][0-9A-Fa-f]{10}"/>
+          </xsd:restriction>
+        </xsd:simpleType>
+      </xsd:attribute>
+      <xsd:attribute name="cable" type="xsd:boolean" use="required"/>
+      <xsd:attribute name="speed" type="xsd:unsignedInt" default="1000000"/>
+      <xsd:attribute name="bootPriority" type="xsd:unsignedInt"/>
+      <xsd:attribute name="trace" type="xsd:boolean" default="false"/>
+      <xsd:attribute name="tracefile" type="xsd:string"/>
+      <xsd:attribute name="bandwidthGroup" type="xsd:string"/>
+    </xsd:extension>
+  </xsd:complexContent>
+</xsd:complexType>
+
+<xsd:complexType name="TNetwork">
+  <xsd:sequence>
+    <xsd:element name="Adapter" type="TNetworkAdapter"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TUARTPort">
+  <xsd:attribute name="slot" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:unsignedInt">
+        <xsd:minInclusive value="0"/>
+        <xsd:maxExclusive value="2"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
+  <xsd:attribute name="IRQ" type="TUInt8" use="required"/>
+  <xsd:attribute name="IOBase" type="TUInt16" use="required"/>
+  <xsd:attribute name="hostMode" type="TPortMode" use="required"/>
+  <xsd:attribute name="path" type="TLocalFile"/>
+  <xsd:attribute name="server" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TUART">
+  <xsd:sequence>
+    <xsd:element name="Port" type="TUARTPort"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TUartPort"> <!-- deprecated -->
+  <xsd:attribute name="slot" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:unsignedInt">
+        <xsd:minInclusive value="0"/>
+        <xsd:maxExclusive value="2"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
+  <xsd:attribute name="IRQ" type="TUInt8" use="required"/>
+  <xsd:attribute name="IOBase" type="TUInt16HexNoBase" use="required"/>
+  <xsd:attribute name="hostMode" type="TPortMode" use="required"/>
+  <xsd:attribute name="path" type="TLocalFile"/>
+  <xsd:attribute name="server" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TUart"> <!-- deprecated -->
+  <xsd:sequence>
+    <xsd:element name="Port" type="TUartPort"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TLPTPort">
+  <xsd:attribute name="slot" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:unsignedInt">
+        <xsd:minInclusive value="0"/>
+        <xsd:maxExclusive value="2"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
+  <xsd:attribute name="IRQ" type="TUInt8" use="required"/>
+  <xsd:attribute name="IOBase" type="TUInt16" use="required"/>
+  <xsd:attribute name="path" type="TLocalFile"/>
+</xsd:complexType>
+
+<xsd:complexType name="TLPT">
+  <xsd:sequence>
+    <xsd:element name="Port" type="TLPTPort"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TLptPort"> <!-- deprecated -->
+  <xsd:attribute name="slot" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:unsignedInt">
+        <xsd:minInclusive value="0"/>
+        <xsd:maxExclusive value="2"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
+  <xsd:attribute name="IRQ" type="TUInt8" use="required"/>
+  <xsd:attribute name="IOBase" type="TUInt16HexNoBase" use="required"/>
+  <xsd:attribute name="path" type="TLocalFile"/>
+</xsd:complexType>
+
+<xsd:complexType name="TLpt">
+  <xsd:sequence>
+    <xsd:element name="Port" type="TLptPort"
+                 minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TRTC">
+  <xsd:attribute name="localOrUTC" type="TLocalOrUTC" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TSharedFolder">
+  <xsd:attribute name="name" type="TNonEmptyString" use="required"/>
+  <xsd:attribute name="hostPath" type="TLocalFile" use="required"/>
+  <xsd:attribute name="writable" type="xsd:boolean" default="true"/>
+  <xsd:attribute name="autoMount" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TSharedFolders">
+  <xsd:sequence>
+    <xsd:element name="SharedFolder" type="TSharedFolder" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TClipboard">
+  <xsd:attribute name="mode" type="TClipboardMode" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TDragAndDrop">
+  <xsd:attribute name="mode" type="TDragAndDropMode" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TIoCache">
+  <xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
+  <xsd:attribute name="size" type="xsd:unsignedLong"/>
+</xsd:complexType>
+
+<xsd:complexType name="TBandwidthGroup">
+  <xsd:attribute name="name" type="xsd:token" use="required"/>
+  <xsd:attribute name="type" type="TBandwidthGroupType" use="required"/>
+  <xsd:attribute name="maxBytesPerSec" type="xsd:unsignedLong"/>
+  <xsd:attribute name="maxMbPerSec" type="xsd:unsignedLong"/>
+</xsd:complexType>
+
+<xsd:complexType name="TBandwidthGroups">
+  <xsd:sequence>
+    <xsd:element name="BandwidthGroup" type="TBandwidthGroup" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TIO">
+  <xsd:sequence>
+    <xsd:element name="IoCache" type="TIoCache" minOccurs="0"/>
+    <xsd:element name="BandwidthGroups" type="TBandwidthGroups" minOccurs="0"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="THostPciDevice">
+  <xsd:attribute name="host" type="xsd:unsignedInt" use="required"/>
+  <xsd:attribute name="guest" type="xsd:unsignedInt" use="required"/>
+  <xsd:attribute name="name" type="xsd:token"/>
+</xsd:complexType>
+
+<xsd:complexType name="THostPciDevices">
+  <xsd:sequence>
+    <xsd:element name="Device" type="THostPciDevice" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="THostPci">
+  <xsd:sequence>
+    <xsd:element name="Devices" type="THostPciDevices" minOccurs="0"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TCardReader">
+  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TWebcam">
+  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TEmulatedUSB">
+  <xsd:sequence>
+    <xsd:element name="CardReader" type="TCardReader" minOccurs="0"/>
+    <xsd:element name="Webcam" type="TWebcam" minOccurs="0"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TGuest">
+  <xsd:attribute name="memoryBalloonSize"        type="xsd:unsignedInt" default="0"/>
+  <xsd:attribute name="MemoryBalloonSize"        type="xsd:unsignedInt" default="0"/> <!-- deprecated -->
+  <xsd:attribute name="statisticsUpdateInterval" type="xsd:unsignedInt" default="0"/>
+  <xsd:attribute name="StatisticsUpdateInterval" type="xsd:unsignedInt" default="0"/> <!-- deprecated -->
+</xsd:complexType>
+
+<xsd:complexType name="TGuestProperty">
+  <xsd:attribute name="name"      type="xsd:string"       use="required"/>
+  <xsd:attribute name="value"     type="xsd:string"       use="required"/>
+  <xsd:attribute name="timestamp" type="xsd:unsignedLong" default="0"/>
+  <xsd:attribute name="flags"     type="xsd:string"       default=""/>
+</xsd:complexType>
+
+<xsd:complexType name="TGuestProperties">
+  <xsd:sequence>
+    <xsd:element name="GuestProperty" type="TGuestProperty" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+  <xsd:attribute name="notificationPatterns" type="xsd:string" default=""/>
+</xsd:complexType>
+
+<xsd:complexType name="TMemory">
+  <xsd:attribute name="RAMSize" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:unsignedInt">
+        <xsd:minInclusive value="4"/>
+        <xsd:maxInclusive value="2097152"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="PageFusion" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TFirmware">
+  <xsd:attribute name="type" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="BIOS"/>
+        <xsd:enumeration value="EFI"/>
+        <xsd:enumeration value="EFI32"/>
+        <xsd:enumeration value="EFI64"/>
+        <xsd:enumeration value="EFIDUAL"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+</xsd:complexType>
+
+<xsd:complexType name="THID">
+  <xsd:attribute name="Pointing" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="USBMouse"/>
+        <xsd:enumeration value="USBTablet"/>
+        <xsd:enumeration value="PS2Mouse"/>
+        <xsd:enumeration value="ComboMouse"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="Keyboard" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="USBKeyboard"/>
+        <xsd:enumeration value="PS2Keyboard"/>
+        <xsd:enumeration value="ComboKeyboard"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+</xsd:complexType>
+
+<xsd:complexType name="THPET">
+  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+</xsd:complexType>
+
+<xsd:complexType name="TChipset">
+  <xsd:attribute name="type" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="PIIX3"/>
+        <xsd:enumeration value="ICH9"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+</xsd:complexType>
+
+<xsd:complexType name="TTeleporter">
+  <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="port" type="xsd:unsignedShort"/>
+  <xsd:attribute name="address" type="xsd:string"/>
+  <xsd:attribute name="password" type="xsd:string"/>
+</xsd:complexType>
+
+<xsd:complexType name="TFaultTolerance">
+  <xsd:attribute name="state" use="required">
+    <xsd:simpleType>
+      <xsd:restriction base="xsd:token">
+        <xsd:enumeration value="inactive"/>
+        <xsd:enumeration value="master"/>
+        <xsd:enumeration value="standby"/>
+      </xsd:restriction>
+    </xsd:simpleType>
+  </xsd:attribute>
+  <xsd:attribute name="port" type="xsd:unsignedShort"/>
+  <xsd:attribute name="address" type="xsd:string"/>
+  <xsd:attribute name="interval" type="xsd:unsignedInt"/>
+  <xsd:attribute name="password" type="xsd:string"/>
+</xsd:complexType>
+
+<xsd:complexType name="THardware">
+  <xsd:all>
+    <xsd:element name="CPU" type="TCPU" minOccurs="0"/>
+    <xsd:element name="Memory" type="TMemory"/>
+    <xsd:element name="Firmware" type="TFirmware" minOccurs="0"/>
+    <xsd:element name="HID" type="THID" minOccurs="0"/>
+    <xsd:element name="HPET" type="THPET" minOccurs="0"/>
+    <xsd:element name="Chipset" type="TChipset" minOccurs="0"/>
+    <xsd:element name="Boot" type="TBoot">
+      <xsd:unique name="THardware-Boot-Order">
+        <xsd:selector xpath="vb:Order"/>
+        <xsd:field xpath="@position"/>
+      </xsd:unique>
+    </xsd:element>
+    <xsd:element name="Display" type="TDisplay"/>
+    <xsd:element name="VideoRecording" type="TVideoRecording" minOccurs="0"/>
+    <xsd:element name="RemoteDisplay" type="TRemoteDisplay" minOccurs="0"/>
+    <xsd:element name="BIOS" type="TBIOS"/>
+    <xsd:element name="DVDDrive" type="TDVDDrive" minOccurs="0"/>
+    <xsd:element name="FloppyDrive" type="TFloppyDrive" minOccurs="0"/>
+    <xsd:element name="USBController" type="TUSBController"/>
+    <xsd:element name="SATAController" type="TSATAController" minOccurs="0"/> <!-- deprecated -->
+    <xsd:element name="Network" type="TNetwork">
+      <xsd:unique name="THardware-Network-Adapter">
+        <xsd:selector xpath="vb:Adapter"/>
+        <xsd:field xpath="@slot"/>
+      </xsd:unique>
+    </xsd:element>
+    <xsd:element name="UART" type="TUART" minOccurs="0">
+      <xsd:unique name="THardware-UART-Port">
+        <xsd:selector xpath="vb:Port"/>
+        <xsd:field xpath="@slot"/>
+      </xsd:unique>
+    </xsd:element>
+    <xsd:element name="Uart" type="TUart" minOccurs="0"> <!-- deprecated -->
+      <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:selector xpath="vb:Port"/>
+        <xsd:field xpath="@slot"/>
+      </xsd:unique>
+    </xsd:element>
+    <xsd:element name="Lpt" type="TLpt" minOccurs="0"> <!-- deprecated -->
+      <xsd:unique name="THardware-Lpt-Port">
+        <xsd:selector xpath="vb:Port"/>
+        <xsd:field xpath="@slot"/>
+      </xsd:unique>
+    </xsd:element>
+    <xsd:element name="AudioAdapter" type="TAudioAdapter"/>
+    <xsd:element name="RTC" type="TRTC" minOccurs="0"/>
+    <xsd:element name="SharedFolders" type="TSharedFolders">
+      <xsd:unique name="THardware-SharedFolders-SharedFolder">
+        <xsd:selector xpath="vb:SharedFolder"/>
+        <xsd:field xpath="@name"/>
+      </xsd:unique>
+    </xsd:element>
+    <xsd:element name="Clipboard" type="TClipboard"/>
+    <xsd:element name="DragAndDrop" type="TDragAndDrop" minOccurs="0"/>
+    <xsd:element name="IO" type="TIO" minOccurs="0"/>
+    <xsd:element name="HostPci" type="THostPci" minOccurs="0"/>
+    <xsd:element name="EmulatedUSB" type="TEmulatedUSB" minOccurs="0"/>
+    <xsd:element name="Guest" type="TGuest"/>
+    <xsd:element name="GuestProperties" type="TGuestProperties" minOccurs="0">
+      <xsd:unique name="THardware-GuestProperties-GuestProperty">
+        <xsd:selector xpath="vb:GuestProperty"/>
+        <xsd:field xpath="@name"/>
+      </xsd:unique>
+    </xsd:element>
+  </xsd:all>
+  <xsd:attribute name="version" type="xsd:string" default="2"/>
+</xsd:complexType>
+
+<xsd:complexType name="TGroup">
+  <xsd:attribute name="name" type="xsd:string" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TGroups">
+  <xsd:sequence>
+    <xsd:element name="Group" type="TGroup" minOccurs="0" maxOccurs="unbounded"/>
+  </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TMachine">
+  <xsd:all>
+    <xsd:element name="MediaRegistry" type="TMediaRegistry" minOccurs="0"/>
+    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
+    <xsd:element name="Teleporter" type="TTeleporter" minOccurs="0"/>
+    <xsd:element name="FaultTolerance" type="TFaultTolerance" minOccurs="0"/>
+    <xsd:element name="Hardware" type="THardware"/>
+    <xsd:element name="StorageControllers" type="TStorageControllers" minOccurs="0"/>
+    <xsd:element name="HardDiskAttachments" type="THardDiskAttachments" minOccurs="0"/> <!-- deprecated -->
+    <xsd:element name="Groups" type="TGroups" minOccurs="0"/>
+    <xsd:element name="ExtraData" type="TExtraData" minOccurs="0"/>
+    <xsd:element name="Snapshot" type="TSnapshot" minOccurs="0"/>
+  </xsd:all>
+  <xsd:attribute name="name" type="TNonEmptyString" use="required"/>
+  <xsd:attribute name="nameSync" type="xsd:boolean" default="true"/>
+  <xsd:attribute name="directoryIncludesUUID" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="OSType" type="TNonEmptyString" use="required"/>
+  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
+  <xsd:attribute name="stateFile" type="TLocalFile"/>
+  <xsd:attribute name="currentSnapshot" type="TNonNullUUID"/>
+  <xsd:attribute name="snapshotFolder" type="TLocalFile"/>
+  <xsd:attribute name="lastStateChange" type="TPresentDateTimeUTC"/>
+  <xsd:attribute name="aborted" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="currentStateModified" type="xsd:boolean" default="true"/>
+</xsd:complexType>
+
+<xsd:complexType name="TSnapshot">
+  <xsd:all>
+    <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
+    <xsd:element name="Hardware" type="THardware"/>
+    <xsd:element name="StorageControllers" type="TStorageControllers"/>
+    <xsd:element name="Snapshots" minOccurs="0">
+      <xsd:complexType>
+        <xsd:sequence>
+          <xsd:element name="Snapshot" type="TSnapshot" minOccurs="0" maxOccurs="unbounded"/>
+        </xsd:sequence>
+      </xsd:complexType>
+    </xsd:element>
+  </xsd:all>
+  <xsd:attribute name="name" type="xsd:token" use="required"/>
+  <xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
+  <xsd:attribute name="timeStamp" type="TPresentDateTimeUTC" use="required"/>
+  <xsd:attribute name="stateFile" type="TLocalFile"/>
+</xsd:complexType>
+
+<xsd:complexType name="TVirtualBox">
+  <xsd:choice>
+    <xsd:element name="Global" type="TGlobal"/>
+    <xsd:element name="Machine" type="TMachine">
+      <!-- @currentSnapshot must refer to an existing Snapshot/@uuid -->
+      <xsd:key name="snapshot">
+        <xsd:selector xpath=".//vb:Snapshot"/>
+        <xsd:field xpath="@uuid"/>
+      </xsd:key>
+      <xsd:keyref name="currentSnapshot" refer="vb:snapshot">
+        <xsd:selector xpath="."/>
+        <xsd:field xpath="@currentSnapshot"/>
+      </xsd:keyref>
+    </xsd:element>
+  </xsd:choice>
+  <xsd:attribute name="version" type="xsd:string"/>
+</xsd:complexType>
+
+<!-- Root element for all VirtualBox config files -->
+<xsd:element name="VirtualBox" type="TVirtualBox"/>
+
+</xsd:schema>
