Index: /trunk/src/VBox/Main/Makefile.kmk
===================================================================
--- /trunk/src/VBox/Main/Makefile.kmk	(revision 104782)
+++ /trunk/src/VBox/Main/Makefile.kmk	(revision 104783)
@@ -897,8 +897,16 @@
 
  testvalidsettings: $(VBOX_XML_SCHEMA)
+ if ("$(KBUILD_TARGET)" == "solaris")
+	xmllint --schema $< --noout $(HOME)/.config/VirtualBox/VirtualBox.xml
+	xmllint --schema $< --noout $(HOME)/VirtualBox\ VMs/*/*.vbox
+ else if ("$(KBUILD_TARGET)" == "darwin")
+	xmllint --schema $< --noout $(HOME)/Library/VirtualBox/VirtualBox.xml
+	xmllint --schema $< --noout $(HOME)/VirtualBox\ VMs/*/*.vbox
+ else
 	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
+ endif
 
  OTHER_CLEAN += $(VBOX_XML_SCHEMADEFS_H) $(VBOX_XML_SCHEMADEFS_CPP)
Index: /trunk/src/VBox/Main/xml/VirtualBox-settings.xsd
===================================================================
--- /trunk/src/VBox/Main/xml/VirtualBox-settings.xsd	(revision 104782)
+++ /trunk/src/VBox/Main/xml/VirtualBox-settings.xsd	(revision 104783)
@@ -194,5 +194,5 @@
     <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:pattern value=".+-.+-.+T.+:.+:[0-9]{2}.*Z"/>
   </xsd:restriction>
 </xsd:simpleType>
@@ -415,8 +415,10 @@
   <xsd:sequence>
     <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
+    <xsd:element name="Property" type="TProperty" 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="type" type="TMediumType"/>
+  <xsd:attribute name="format" type="xsd:string"/>
 </xsd:complexType>
 
@@ -469,4 +471,21 @@
   <xsd:attribute name="exclusiveHwVirt" type="xsd:boolean"/> <!-- deprecated since v1.20 -->
   <xsd:attribute name="proxyMode" type="xsd:string"/>
+  <xsd:attribute name="proxyUrl" type="xsd:string"/>
+</xsd:complexType>
+
+<xsd:complexType name="THostUpdates">
+  <xsd:attribute name="enabled" type="xsd:boolean"/>
+  <xsd:attribute name="channel" type="xsd:unsignedInt" default="1"/>
+  <xsd:attribute name="checkFreqSec" type="xsd:unsignedInt" default="86400"/>
+  <xsd:attribute name="repoUrl" type="xsd:string"/>
+  <xsd:attribute name="lastCheckDate" type="TPresentDateTimeUTC"/>
+  <xsd:attribute name="checkCount" type="xsd:unsignedInt"/>
+</xsd:complexType>
+
+<xsd:complexType name="TUpdates">
+  <xsd:sequence>
+    <xsd:element name="Host" type="THostUpdates"/>
+  </xsd:sequence>
+  <xsd:attribute name="enabled" type="xsd:boolean"/>
 </xsd:complexType>
 
@@ -551,4 +570,5 @@
       </xsd:complexType>
     </xsd:element>
+    <xsd:element name="Updates" type="TUpdates"/>
     <xsd:element name="SystemProperties" type="TSystemProperties"/>
     <xsd:element name="ExtraData" type="TExtraData" minOccurs="0"/>
@@ -694,5 +714,5 @@
 
 <xsd:complexType name="TCPU">
-  <xsd:sequence>
+  <xsd:all>
     <xsd:element name="HardwareVirtEx" type="THWVirtExType" minOccurs="0"/> <!-- deprecated since v1.20. -->
     <xsd:element name="HardwareVirtExNestedPaging" type="THWVirtExNestedPagingType" minOccurs="0"/> <!-- deprecated since v1.20. -->
@@ -700,7 +720,18 @@
     <xsd:element name="HardwareVirtExUX" type="THWVirtExUXType" minOccurs="0"/> <!-- deprecated since v1.20. -->
     <xsd:element name="PAE" type="TPAEType" minOccurs="0"/> <!-- deprecated since v1.20. -->
+    <xsd:element name="IBPBOn" type="TIBPBOn" minOccurs="0"/>
+    <xsd:element name="SpecCtrl" type="TSpecCtrl" minOccurs="0"/>
+    <xsd:element name="SpecCtrlByHost" type="TSpecCtrlByHost" minOccurs="0"/>
+    <xsd:element name="L1DFlushOn" type="TL1DFlushOn" minOccurs="0"/>
+    <xsd:element name="MDSClearOn" type="TMDSClearOn" minOccurs="0"/>
+    <xsd:element name="NestedHWVirt" type="TNestedHWVirt" minOccurs="0"/>
+    <xsd:element name="HardwareVirtExVirtVmsaveVmload" type="THardwareVirtExVirtVmsaveVmload" minOccurs="0"/>
     <xsd:element name="LongMode" type="TLongModeType" minOccurs="0"/> <!-- deprecated since v1.20. -->
+    <xsd:element name="TripleFaultReset" type="TTripleFaultReset" minOccurs="0"/>
+    <xsd:element name="X2APIC" type="TX2APIC" minOccurs="0"/>
+    <xsd:element name="APIC" type="TAPIC" minOccurs="0"/>
     <xsd:element name="HardwareVirtExLargePages" type="THardwareVirtExLargePages" minOccurs="0"/> <!-- deprecated since v1.20. -->
     <xsd:element name="HardwareVirtForce" type="THardwareVirtForce" minOccurs="0"/> <!-- deprecated since v1.20. -->
+    <xsd:element name="HardwareVirtExUseNativeApi" type="THardwareVirtExUseNativeApi" minOccurs="0"/>
     <xsd:element name="SyntheticCpu" type="TSyntheticCpuType" minOccurs="0"/>
     <xsd:element name="CpuIdTree" type="TCpuIdTreeX86" minOccurs="0"> <!-- deprecated since v1.20. -->
@@ -710,5 +741,5 @@
       </xsd:unique>
     </xsd:element>
-  </xsd:sequence>
+  </xsd:all>
   <xsd:attribute name="count" type="TCPUCount" default="1"/>
   <xsd:attribute name="hotplug" type="xsd:boolean" default="false"/>
@@ -855,4 +886,9 @@
       </xsd:complexType>
     </xsd:element>
+    <xsd:element name="AutoSerialNumGen" minOccurs="0">
+      <xsd:complexType>
+        <xsd:attribute name="enabled" type="xsd:boolean" default="true"/>
+      </xsd:complexType>
+    </xsd:element>
     <xsd:element name="IDEController" minOccurs="0"> <!-- deprecated -->
       <xsd:complexType>
@@ -869,5 +905,5 @@
     </xsd:element>
   </xsd:all>
-  <xsd:attribute name="type" type="TFirmwareType" use="required"/> <!-- new since v1.20. -->
+  <xsd:attribute name="type" type="TFirmwareType" use="optional"/> <!-- new since v1.20. -->
 </xsd:complexType>
 
@@ -1004,4 +1040,5 @@
   <xsd:attribute name="enabledIn" type="xsd:boolean" default="false"/>
   <xsd:attribute name="enabledOut" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="useDefault" type="xsd:boolean" default="true"/>
   <xsd:attribute name="controller" default="AC97">
     <xsd:simpleType>
@@ -1013,4 +1050,5 @@
     </xsd:simpleType>
   </xsd:attribute>
+  <xsd:attribute name="codec" default="AD1980"/>
   <xsd:attribute name="driver" use="required">
     <xsd:simpleType>
@@ -1072,4 +1110,5 @@
   <xsd:attribute name="tcprcv" type="xsd:unsignedInt"/>
   <xsd:attribute name="tcpsnd" type="xsd:unsignedInt"/>
+  <xsd:attribute name="localhost-reachable" type="xsd:boolean" default="true"/>
 </xsd:complexType>
 
@@ -1174,5 +1213,6 @@
   <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="IOBase" type="TUInt16" use="optional"/>
+  <xsd:attribute name="IOAddress" type="TUInt16" use="optional"/>
   <xsd:attribute name="hostMode" type="TPortMode" use="required"/>
   <xsd:attribute name="path" type="TLocalFile"/>
@@ -1264,4 +1304,5 @@
   <xsd:attribute name="writable" type="xsd:boolean" default="true"/>
   <xsd:attribute name="autoMount" type="xsd:boolean" default="false"/>
+  <xsd:attribute name="autoMountPoint" type="xsd:string"/>
 </xsd:complexType>
 
@@ -1274,4 +1315,5 @@
 <xsd:complexType name="TClipboard">
   <xsd:attribute name="mode" type="TClipboardMode" default="Disabled"/>
+  <xsd:attribute name="fileTransfersEnabled" type="xsd:boolean" default="false"/>
 </xsd:complexType>
 
@@ -1389,4 +1431,6 @@
         <xsd:enumeration value="PS2Mouse"/>
         <xsd:enumeration value="ComboMouse"/>
+        <xsd:enumeration value="USBMultiTouch"/>
+        <xsd:enumeration value="USBMTScreenPlusPad"/>
       </xsd:restriction>
     </xsd:simpleType>
@@ -1413,4 +1457,5 @@
         <xsd:enumeration value="PIIX3"/>
         <xsd:enumeration value="ICH9"/>
+        <xsd:enumeration value="ARMv8Virtual"/> <!-- new since v1.20. -->
       </xsd:restriction>
     </xsd:simpleType>
@@ -1467,4 +1512,7 @@
 
 <xsd:complexType name="TPlatformX86"> <!-- new since v1.20. -->
+  <xsd:sequence>
+    <xsd:element name="CPU" type="TCPUX86" minOccurs="0"/>
+  </xsd:sequence>
 </xsd:complexType>
 
@@ -1561,4 +1609,5 @@
   </xsd:all>
   <xsd:attribute name="version" type="xsd:string" default="2"/>
+  <xsd:attribute name="uuid" type="TNonNullUUID" use="optional"/>
 </xsd:complexType>
 
@@ -1606,4 +1655,5 @@
     <xsd:element name="Description" type="xsd:string" minOccurs="0"/>
     <xsd:element name="Hardware" type="THardware"/>
+    <xsd:element name="Platform" type="TPlatform" minOccurs="0"/> <!-- new since v1.20. -->
     <xsd:element name="StorageControllers" type="TStorageControllers" minOccurs="0"/>
     <xsd:element name="Snapshots" minOccurs="0">
