summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2025-08-14 12:30:01 +0200
committerSimon Rettberg2025-08-14 12:30:01 +0200
commitb93d4f1e174d6b6004565e85792d221816d6bbf6 (patch)
tree1172f07bc45210d0f006a4d737a78fa2dac8c44d
parentField belongs to version, not base image.... (diff)
downloadmaster-sync-shared-b93d4f1.tar.gz
master-sync-shared-b93d4f1.tar.xz
master-sync-shared-b93d4f1.zip
Update vbox and libvirt schema filesHEADmaster
-rw-r--r--src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java3
-rw-r--r--src/main/resources/libvirt/rng/domainbackup.rng6
-rw-r--r--src/main/resources/libvirt/rng/domaincaps.rng24
-rw-r--r--src/main/resources/libvirt/rng/domaincommon.rng641
-rw-r--r--src/main/resources/libvirt/rng/nodedev.rng59
-rw-r--r--src/main/resources/libvirt/rng/sysinfo.rng34
-rw-r--r--src/main/resources/libvirt/rng/sysinfocommon.rng204
-rw-r--r--src/main/resources/virtualbox/xsd/VirtualBox-settings_v1-21.xsd1722
8 files changed, 2402 insertions, 291 deletions
diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java
index b5b3180..d31c2be 100644
--- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java
+++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualboxFileFormat.java
@@ -69,6 +69,9 @@ public class VirtualizationConfigurationVirtualboxFileFormat
put( Version.valueOf( "1.16" ), "VirtualBox-settings_v1-16.xsd" );
put( Version.valueOf( "1.17" ), "VirtualBox-settings_v1-17.xsd" );
put( Version.valueOf( "1.18" ), "VirtualBox-settings_v1-18.xsd" );
+ put( Version.valueOf( "1.19" ), "VirtualBox-settings_v1-21.xsd" ); // Use 1.21 until we find those
+ put( Version.valueOf( "1.20" ), "VirtualBox-settings_v1-21.xsd" );
+ put( Version.valueOf( "1.21" ), "VirtualBox-settings_v1-21.xsd" );
}
};
diff --git a/src/main/resources/libvirt/rng/domainbackup.rng b/src/main/resources/libvirt/rng/domainbackup.rng
index 80ba155..91cf2a7 100644
--- a/src/main/resources/libvirt/rng/domainbackup.rng
+++ b/src/main/resources/libvirt/rng/domainbackup.rng
@@ -90,6 +90,12 @@
<ref name="absFilePath"/>
</attribute>
</group>
+ <group>
+ <attribute name="transport">
+ <value>fd</value>
+ </attribute>
+ <attribute name="fdgroup"/>
+ </group>
</choice>
</element>
<ref name="backupDisksPull"/>
diff --git a/src/main/resources/libvirt/rng/domaincaps.rng b/src/main/resources/libvirt/rng/domaincaps.rng
index 3559d2a..7edae54 100644
--- a/src/main/resources/libvirt/rng/domaincaps.rng
+++ b/src/main/resources/libvirt/rng/domaincaps.rng
@@ -237,6 +237,9 @@
<optional>
<ref name="panic"/>
</optional>
+ <optional>
+ <ref name="console"/>
+ </optional>
</element>
</define>
@@ -317,6 +320,13 @@
</element>
</define>
+ <define name="console">
+ <element name="console">
+ <ref name="supported"/>
+ <ref name="enum"/>
+ </element>
+ </define>
+
<define name="interface">
<element name="interface">
<ref name="supported"/>
@@ -358,6 +368,9 @@
<ref name="ps2"/>
</optional>
<optional>
+ <ref name="tdx"/>
+ </optional>
+ <optional>
<ref name="sev"/>
</optional>
<optional>
@@ -421,6 +434,12 @@
</element>
</define>
+ <define name="tdx">
+ <element name="tdx">
+ <ref name="supported"/>
+ </element>
+ </define>
+
<define name="sev">
<element name="sev">
<ref name="supported"/>
@@ -438,6 +457,11 @@
<data type="unsignedInt"/>
</element>
</optional>
+ <optional>
+ <element name="cpu0Id">
+ <data type="string"/>
+ </element>
+ </optional>
</element>
</define>
diff --git a/src/main/resources/libvirt/rng/domaincommon.rng b/src/main/resources/libvirt/rng/domaincommon.rng
index 7121519..9782dca 100644
--- a/src/main/resources/libvirt/rng/domaincommon.rng
+++ b/src/main/resources/libvirt/rng/domaincommon.rng
@@ -7,6 +7,7 @@
<include href="cputypes.rng"/>
<include href="nwfilter_params.rng"/>
<include href="privatedata.rng"/>
+ <include href="sysinfocommon.rng"/>
<define name="createMode">
<data type="unsignedInt">
@@ -32,8 +33,33 @@
<define name="domaincontents">
<ref name="hvs"/>
+ <optional>
+ <attribute name="id">
+ <ref name="unsignedInt"/>
+ </attribute>
+ </optional>
<interleave>
- <ref name="ids"/>
+ <element name="name">
+ <ref name="objectNameWithSlash"/>
+ </element>
+ <optional>
+ <element name="uuid">
+ <ref name="UUID"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="hwuuid">
+ <ref name="UUID"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="genid">
+ <choice>
+ <ref name="UUID"/>
+ <empty/>
+ </choice>
+ </element>
+ </optional>
<optional>
<ref name="title"/>
</optional>
@@ -51,6 +77,7 @@
</zeroOrMore>
<ref name="os"/>
<ref name="clock"/>
+ <ref name="throttlegroups"/>
<ref name="resources"/>
<ref name="features"/>
<ref name="events"/>
@@ -528,6 +555,9 @@
<value>s390-pv</value>
</attribute>
</group>
+ <group>
+ <ref name="launchSecurityTDX"/>
+ </group>
</choice>
</element>
</define>
@@ -623,6 +653,44 @@
</optional>
</interleave>
</define>
+
+ <define name="launchSecurityTDX">
+ <attribute name="type">
+ <value>tdx</value>
+ </attribute>
+ <interleave>
+ <optional>
+ <element name="policy">
+ <ref name="hexuint"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="mrConfigId">
+ <data type="string"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="mrOwner">
+ <data type="string"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="mrOwnerConfig">
+ <data type="string"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="quoteGenerationService">
+ <optional>
+ <attribute name="path">
+ <ref name="absFilePath"/>
+ </attribute>
+ </optional>
+ </element>
+ </optional>
+ </interleave>
+ </define>
+
<!--
Enable or disable perf events for the domain. For each
of the events the following rules apply:
@@ -679,37 +747,6 @@
</element>
</define>
- <!--
- The Identifiers can be:
- - an optional id attribute with a number on the domain element
- - a mandatory name
- - an optional uuid
- -->
- <define name="ids">
- <optional>
- <attribute name="id">
- <ref name="unsignedInt"/>
- </attribute>
- </optional>
- <interleave>
- <element name="name">
- <ref name="objectNameWithSlash"/>
- </element>
- <optional>
- <element name="uuid">
- <ref name="UUID"/>
- </element>
- </optional>
- <optional>
- <element name="genid">
- <choice>
- <ref name="UUID"/>
- <empty/>
- </choice>
- </element>
- </optional>
- </interleave>
- </define>
<define name="idmap">
<element name="idmap">
<interleave>
@@ -1564,6 +1601,11 @@
</element>
</optional>
<optional>
+ <element name="shim">
+ <text/>
+ </element>
+ </optional>
+ <optional>
<element name="dtb">
<ref name="absFilePath"/>
</element>
@@ -1635,7 +1677,10 @@
<ref name="encryption"/>
</optional>
<optional>
- <ref name="diskIoTune"/>
+ <choice>
+ <ref name="throttlefilters"/>
+ <ref name="diskIoTune"/>
+ </choice>
</optional>
<optional>
<ref name="alias"/>
@@ -1669,7 +1714,7 @@
<element name="product">
<data type="string">
<!-- All printable characters -->
- <param name="pattern">[&#x20;-&#x7E;]{0,16}</param>
+ <param name="pattern">[&#x20;-&#x7E;]{0,40}</param>
</data>
</element>
</optional>
@@ -1768,6 +1813,8 @@
<value>virtio</value>
<value>virtio-transitional</value>
<value>virtio-non-transitional</value>
+ <value>usb-storage</value>
+ <value>usb-bot</value>
</choice>
</attribute>
</optional>
@@ -2519,9 +2566,14 @@
</define>
<define name="diskTargetDev">
- <data type="string">
- <param name="pattern">(ioemu:)?(fd|hd|sd|vd|xvd|ubd)[a-zA-Z0-9_]+</param>
- </data>
+ <choice>
+ <data type="string">
+ <param name="pattern">(ioemu:)?(fd|hd|sd|vd|xvd|ubd)[a-zA-Z0-9_]+</param>
+ </data>
+ <data type="string">
+ <param name="pattern">nvme[0-9]+n[0-9]+(p[0-9]+)?</param>
+ </data>
+ </choice>
</define>
<define name="diskTarget">
@@ -2541,6 +2593,7 @@
<value>uml</value> <!-- NOT USED ANYMORE -->
<value>sata</value>
<value>sd</value>
+ <value>nvme</value>
</choice>
</attribute>
</optional>
@@ -2606,7 +2659,7 @@
</element>
</define>
- <define name="diskDriverIothreads">
+ <define name="iothreadMapping">
<element name="iothreads">
<oneOrMore>
<element name="iothread">
@@ -2687,7 +2740,7 @@
</element>
</optional>
<optional>
- <ref name="diskDriverIothreads"/>
+ <ref name="iothreadMapping"/>
</optional>
</interleave>
</element>
@@ -3046,6 +3099,16 @@
</attribute>
</optional>
</group>
+ <group>
+ <attribute name="type">
+ <value>nvme</value>
+ </attribute>
+ <optional>
+ <element name="serial">
+ <ref name="diskSerial"/>
+ </element>
+ </optional>
+ </group>
</choice>
<optional>
<element name="driver">
@@ -3070,6 +3133,9 @@
<optional>
<ref name="driverIOThread"/>
</optional>
+ <optional>
+ <ref name="iothreadMapping"/>
+ </optional>
<ref name="virtioOptions"/>
</element>
</optional>
@@ -3485,7 +3551,37 @@
<value>vhostuser</value>
</attribute>
<interleave>
- <ref name="unixSocketSource"/>
+ <optional>
+ <element name="source">
+ <optional>
+ <attribute name="type">
+ <value>unix</value>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="path">
+ <ref name="absFilePath"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="mode">
+ <choice>
+ <value>server</value>
+ <value>client</value>
+ </choice>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="dev">
+ <ref name="deviceName"/>
+ </attribute>
+ </optional>
+ <optional>
+ <ref name="reconnect"/>
+ </optional>
+ <empty/>
+ </element>
+ </optional>
<ref name="interface-options"/>
</interleave>
</group>
@@ -3813,6 +3909,11 @@
<ref name="virYesNo"/>
</attribute>
</optional>
+ <optional>
+ <attribute name="currentAddress">
+ <ref name="uniMacAddr"/>
+ </attribute>
+ </optional>
<empty/>
</element>
</optional>
@@ -4516,6 +4617,16 @@
<ref name="addrIPorName"/>
</attribute>
</optional>
+ <optional>
+ <attribute name="username">
+ <text/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="passwd">
+ <text/>
+ </attribute>
+ </optional>
<ref name="listenElements"/>
</group>
<group>
@@ -4527,11 +4638,6 @@
<text/>
</attribute>
</optional>
- <optional>
- <attribute name="fullscreen">
- <ref name="virYesNo"/>
- </attribute>
- </optional>
</group>
<group>
<attribute name="type">
@@ -6144,6 +6250,7 @@
<value>intel</value>
<value>smmuv3</value>
<value>virtio</value>
+ <value>amd</value>
</choice>
</attribute>
<interleave>
@@ -6179,6 +6286,16 @@
<ref name="virOnOff"/>
</attribute>
</optional>
+ <optional>
+ <attribute name="xtsup">
+ <ref name="virOnOff"/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="passthrough">
+ <ref name="virOnOff"/>
+ </attribute>
+ </optional>
</element>
</optional>
<optional>
@@ -6833,6 +6950,37 @@
</interleave>
</element>
</define>
+ <define name="throttlegroup">
+ <element name="throttlegroup">
+ <ref name="iotune"/>
+ </element>
+ </define>
+ <!--
+ A set of optional throttlegroups
+ -->
+ <define name="throttlegroups">
+ <optional>
+ <element name="throttlegroups">
+ <zeroOrMore>
+ <ref name="throttlegroup"/>
+ </zeroOrMore>
+ </element>
+ </optional>
+ </define>
+ <!--
+ A set of throttlefilters to reference throttlegroups
+ -->
+ <define name="throttlefilters">
+ <element name="throttlefilters">
+ <zeroOrMore>
+ <element name="throttlefilter">
+ <attribute name="group">
+ <data type="string"/>
+ </attribute>
+ </element>
+ </zeroOrMore>
+ </element>
+ </define>
<!--
A set of optional features: PAE, APIC, ACPI, GIC, TCG,
HyperV Enlightenment, KVM features, paravirtual spinlocks and HAP support
@@ -6996,6 +7144,9 @@
<ref name="featurestate"/>
</element>
</optional>
+ <optional>
+ <ref name="aia"/>
+ </optional>
</interleave>
</element>
</optional>
@@ -7021,63 +7172,11 @@
<value>smbios</value>
</attribute>
<interleave>
- <optional>
- <element name="bios">
- <oneOrMore>
- <element name="entry">
- <attribute name="name">
- <ref name="sysinfo-bios-name"/>
- </attribute>
- <ref name="sysinfo-value"/>
- </element>
- </oneOrMore>
- </element>
- </optional>
- <optional>
- <element name="system">
- <oneOrMore>
- <element name="entry">
- <attribute name="name">
- <ref name="sysinfo-system-name"/>
- </attribute>
- <ref name="sysinfo-value"/>
- </element>
- </oneOrMore>
- </element>
- </optional>
- <zeroOrMore>
- <element name="baseBoard">
- <oneOrMore>
- <element name="entry">
- <attribute name="name">
- <ref name="sysinfo-baseBoard-name"/>
- </attribute>
- <ref name="sysinfo-value"/>
- </element>
- </oneOrMore>
- </element>
- </zeroOrMore>
- <optional>
- <element name="chassis">
- <oneOrMore>
- <element name="entry">
- <attribute name="name">
- <ref name="sysinfo-chassis-name"/>
- </attribute>
- <ref name="sysinfo-value"/>
- </element>
- </oneOrMore>
- </element>
- </optional>
- <optional>
- <element name="oemStrings">
- <oneOrMore>
- <element name="entry">
- <ref name="sysinfo-value"/>
- </element>
- </oneOrMore>
- </element>
- </optional>
+ <ref name="sysinfo-smbios-group-bios"/>
+ <ref name="sysinfo-smbios-group-system"/>
+ <ref name="sysinfo-smbios-group-baseboard"/>
+ <ref name="sysinfo-smbios-group-chassis"/>
+ <ref name="sysinfo-smbios-group-oemstrings"/>
</interleave>
</group>
<group>
@@ -7085,80 +7184,24 @@
<value>fwcfg</value>
</attribute>
<zeroOrMore>
- <element name="entry">
- <attribute name="name">
- <data type="string"/>
- </attribute>
- <choice>
- <group>
- <attribute name="file">
- <data type="string"/>
- </attribute>
- <empty/>
- </group>
- <group>
- <ref name="sysinfo-value"/>
- </group>
- </choice>
- </element>
+ <ref name="sysinfo-fwcfg-entry"/>
</zeroOrMore>
</group>
</choice>
</element>
</define>
- <define name="sysinfo-bios-name">
- <choice>
- <value>vendor</value>
- <value>version</value>
- <value>date</value>
- <value>release</value>
- </choice>
- </define>
-
- <define name="sysinfo-system-name">
- <choice>
- <value>manufacturer</value>
- <value>product</value>
- <value>version</value>
- <value>serial</value>
- <value>uuid</value>
- <value>sku</value>
- <value>family</value>
- </choice>
- </define>
-
- <define name="sysinfo-baseBoard-name">
- <choice>
- <value>manufacturer</value>
- <value>product</value>
- <value>version</value>
- <value>serial</value>
- <value>asset</value>
- <value>location</value>
- </choice>
- </define>
-
- <define name="sysinfo-chassis-name">
- <choice>
- <value>manufacturer</value>
- <value>version</value>
- <value>serial</value>
- <value>asset</value>
- <value>sku</value>
- </choice>
- </define>
-
- <define name="sysinfo-value">
- <data type="string"/>
- </define>
-
<define name="acpiTable">
<element name="acpi">
<zeroOrMore>
<element name="table">
<attribute name="type">
- <value>slic</value>
+ <choice>
+ <value>raw</value>
+ <value>rawset</value>
+ <value>slic</value>
+ <value>msdm</value>
+ </choice>
</attribute>
<ref name="absFilePath"/>
</element>
@@ -7294,6 +7337,18 @@
</element>
</define>
+ <define name="aia">
+ <element name="aia">
+ <attribute name="value">
+ <choice>
+ <value>none</value>
+ <value>aplic</value>
+ <value>aplic-imsic</value>
+ </choice>
+ </attribute>
+ </element>
+ </define>
+
<define name="address">
<element name="address">
<choice>
@@ -7800,134 +7855,138 @@
</element>
</define>
+ <define name="iotune">
+ <interleave>
+ <choice>
+ <element name="total_bytes_sec">
+ <data type="unsignedLong"/>
+ </element>
+ <group>
+ <interleave>
+ <optional>
+ <element name="read_bytes_sec">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="write_bytes_sec">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ </interleave>
+ </group>
+ </choice>
+ <choice>
+ <element name="total_iops_sec">
+ <data type="unsignedLong"/>
+ </element>
+ <group>
+ <interleave>
+ <optional>
+ <element name="read_iops_sec">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="write_iops_sec">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ </interleave>
+ </group>
+ </choice>
+ <choice>
+ <element name="total_bytes_sec_max">
+ <data type="unsignedLong"/>
+ </element>
+ <group>
+ <interleave>
+ <optional>
+ <element name="read_bytes_sec_max">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="write_bytes_sec_max">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ </interleave>
+ </group>
+ </choice>
+ <choice>
+ <element name="total_iops_sec_max">
+ <data type="unsignedLong"/>
+ </element>
+ <group>
+ <interleave>
+ <optional>
+ <element name="read_iops_sec_max">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="write_iops_sec_max">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ </interleave>
+ </group>
+ </choice>
+ <optional>
+ <element name="size_iops_sec">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="group_name">
+ <text/>
+ </element>
+ </optional>
+ <choice>
+ <element name="total_bytes_sec_max_length">
+ <data type="unsignedLong"/>
+ </element>
+ <group>
+ <interleave>
+ <optional>
+ <element name="read_bytes_sec_max_length">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="write_bytes_sec_max_length">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ </interleave>
+ </group>
+ </choice>
+ <choice>
+ <element name="total_iops_sec_max_length">
+ <data type="unsignedLong"/>
+ </element>
+ <group>
+ <interleave>
+ <optional>
+ <element name="read_iops_sec_max_length">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ <optional>
+ <element name="write_iops_sec_max_length">
+ <data type="unsignedLong"/>
+ </element>
+ </optional>
+ </interleave>
+ </group>
+ </choice>
+ </interleave>
+ </define>
+
<define name="diskIoTune">
<element name="iotune">
- <interleave>
- <choice>
- <element name="total_bytes_sec">
- <data type="unsignedLong"/>
- </element>
- <group>
- <interleave>
- <optional>
- <element name="read_bytes_sec">
- <data type="unsignedLong"/>
- </element>
- </optional>
- <optional>
- <element name="write_bytes_sec">
- <data type="unsignedLong"/>
- </element>
- </optional>
- </interleave>
- </group>
- </choice>
- <choice>
- <element name="total_iops_sec">
- <data type="unsignedLong"/>
- </element>
- <group>
- <interleave>
- <optional>
- <element name="read_iops_sec">
- <data type="unsignedLong"/>
- </element>
- </optional>
- <optional>
- <element name="write_iops_sec">
- <data type="unsignedLong"/>
- </element>
- </optional>
- </interleave>
- </group>
- </choice>
- <choice>
- <element name="total_bytes_sec_max">
- <data type="unsignedLong"/>
- </element>
- <group>
- <interleave>
- <optional>
- <element name="read_bytes_sec_max">
- <data type="unsignedLong"/>
- </element>
- </optional>
- <optional>
- <element name="write_bytes_sec_max">
- <data type="unsignedLong"/>
- </element>
- </optional>
- </interleave>
- </group>
- </choice>
- <choice>
- <element name="total_iops_sec_max">
- <data type="unsignedLong"/>
- </element>
- <group>
- <interleave>
- <optional>
- <element name="read_iops_sec_max">
- <data type="unsignedLong"/>
- </element>
- </optional>
- <optional>
- <element name="write_iops_sec_max">
- <data type="unsignedLong"/>
- </element>
- </optional>
- </interleave>
- </group>
- </choice>
- <optional>
- <element name="size_iops_sec">
- <data type="unsignedLong"/>
- </element>
- </optional>
- <optional>
- <element name="group_name">
- <text/>
- </element>
- </optional>
- <choice>
- <element name="total_bytes_sec_max_length">
- <data type="unsignedLong"/>
- </element>
- <group>
- <interleave>
- <optional>
- <element name="read_bytes_sec_max_length">
- <data type="unsignedLong"/>
- </element>
- </optional>
- <optional>
- <element name="write_bytes_sec_max_length">
- <data type="unsignedLong"/>
- </element>
- </optional>
- </interleave>
- </group>
- </choice>
- <choice>
- <element name="total_iops_sec_max_length">
- <data type="unsignedLong"/>
- </element>
- <group>
- <interleave>
- <optional>
- <element name="read_iops_sec_max_length">
- <data type="unsignedLong"/>
- </element>
- </optional>
- <optional>
- <element name="write_iops_sec_max_length">
- <data type="unsignedLong"/>
- </element>
- </optional>
- </interleave>
- </group>
- </choice>
- </interleave>
+ <ref name="iotune"/>
</element>
</define>
diff --git a/src/main/resources/libvirt/rng/nodedev.rng b/src/main/resources/libvirt/rng/nodedev.rng
index 42a0cdc..31ce517 100644
--- a/src/main/resources/libvirt/rng/nodedev.rng
+++ b/src/main/resources/libvirt/rng/nodedev.rng
@@ -83,6 +83,7 @@
<ref name="capdrm"/>
<ref name="capmdev"/>
<ref name="capccwdev"/>
+ <ref name="capccwgroupdev"/>
<ref name="capcssdev"/>
<ref name="capvdpa"/>
<ref name="capapcard"/>
@@ -669,6 +670,63 @@
</interleave>
</define>
+ <define name="capccwgrouptypeqeth">
+ <attribute name="type">
+ <choice>
+ <value>qeth_generic</value>
+ <value>qeth_layer2</value>
+ <value>qeth_layer3</value>
+ </choice>
+ </attribute>
+ <interleave>
+ <element name="card_type"><text/></element>
+ <element name="chpid"><text/></element>
+ </interleave>
+ </define>
+
+ <define name="capccwgroupdev">
+ <attribute name="type">
+ <value>ccwgroup</value>
+ </attribute>
+ <optional>
+ <element name="state">
+ <choice>
+ <value>online</value>
+ <value>offline</value>
+ </choice>
+ </element>
+ </optional>
+ <ref name="capccwaddress"/>
+ <optional>
+ <element name="members">
+ <oneOrMore>
+ <element name="ccw_device">
+ <attribute name="ref">
+ <data type="string"/>
+ </attribute>
+ <text/>
+ </element>
+ </oneOrMore>
+ </element>
+ </optional>
+ <element name="capability">
+ <choice>
+ <ref name="capccwgrouptypeqeth"/>
+ </choice>
+ </element>
+ </define>
+
+ <define name="capccwgroupmember">
+ <optional>
+ <element name="capability">
+ <attribute name="type">
+ <value>ccwgroup_member</value>
+ </attribute>
+ <element name="group_device"><text/></element>
+ </element>
+ </optional>
+ </define>
+
<define name="capccwdev">
<attribute name="type">
<value>ccw</value>
@@ -682,6 +740,7 @@
</element>
</optional>
<ref name="capccwaddress"/>
+ <ref name="capccwgroupmember"/>
</define>
<define name="capcssdev">
diff --git a/src/main/resources/libvirt/rng/sysinfo.rng b/src/main/resources/libvirt/rng/sysinfo.rng
new file mode 100644
index 0000000..01d305b
--- /dev/null
+++ b/src/main/resources/libvirt/rng/sysinfo.rng
@@ -0,0 +1,34 @@
+<?xml version="1.0"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <start>
+ <element name="sysinfo">
+ <choice>
+ <group>
+ <attribute name="type">
+ <value>smbios</value>
+ </attribute>
+ <interleave>
+ <ref name="sysinfo-smbios-group-bios"/>
+ <ref name="sysinfo-smbios-group-system"/>
+ <ref name="sysinfo-smbios-group-baseboard"/>
+ <ref name="sysinfo-smbios-group-processor"/>
+ <ref name="sysinfo-smbios-group-memory"/>
+ <ref name="sysinfo-smbios-group-chassis"/>
+ <ref name="sysinfo-smbios-group-oemstrings"/>
+ </interleave>
+ </group>
+ <group>
+ <attribute name="type">
+ <value>fwcfg</value>
+ </attribute>
+ <zeroOrMore>
+ <ref name="sysinfo-fwcfg-entry"/>
+ </zeroOrMore>
+ </group>
+ </choice>
+ </element>
+ </start>
+
+ <include href="sysinfocommon.rng"/>
+
+</grammar>
diff --git a/src/main/resources/libvirt/rng/sysinfocommon.rng b/src/main/resources/libvirt/rng/sysinfocommon.rng
new file mode 100644
index 0000000..41296ea
--- /dev/null
+++ b/src/main/resources/libvirt/rng/sysinfocommon.rng
@@ -0,0 +1,204 @@
+<?xml version="1.0"?>
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+
+ <!-- This schema is not designed for standalone use -->
+
+ <define name="sysinfo-smbios-group-bios">
+ <optional>
+ <element name="bios">
+ <oneOrMore>
+ <element name="entry">
+ <attribute name="name">
+ <ref name="sysinfo-bios-name"/>
+ </attribute>
+ <ref name="sysinfo-value"/>
+ </element>
+ </oneOrMore>
+ </element>
+ </optional>
+ </define>
+
+ <define name="sysinfo-smbios-group-system">
+ <optional>
+ <element name="system">
+ <oneOrMore>
+ <element name="entry">
+ <attribute name="name">
+ <ref name="sysinfo-system-name"/>
+ </attribute>
+ <ref name="sysinfo-value"/>
+ </element>
+ </oneOrMore>
+ </element>
+ </optional>
+ </define>
+
+ <define name="sysinfo-smbios-group-baseboard">
+ <zeroOrMore>
+ <element name="baseBoard">
+ <oneOrMore>
+ <element name="entry">
+ <attribute name="name">
+ <ref name="sysinfo-baseBoard-name"/>
+ </attribute>
+ <ref name="sysinfo-value"/>
+ </element>
+ </oneOrMore>
+ </element>
+ </zeroOrMore>
+ </define>
+
+ <define name="sysinfo-smbios-group-chassis">
+ <optional>
+ <element name="chassis">
+ <oneOrMore>
+ <element name="entry">
+ <attribute name="name">
+ <ref name="sysinfo-chassis-name"/>
+ </attribute>
+ <ref name="sysinfo-value"/>
+ </element>
+ </oneOrMore>
+ </element>
+ </optional>
+ </define>
+
+ <define name="sysinfo-smbios-group-processor">
+ <zeroOrMore>
+ <element name="processor">
+ <oneOrMore>
+ <element name="entry">
+ <attribute name="name">
+ <ref name="sysinfo-processor-name"/>
+ </attribute>
+ <ref name="sysinfo-value"/>
+ </element>
+ </oneOrMore>
+ </element>
+ </zeroOrMore>
+ </define>
+
+ <define name="sysinfo-smbios-group-memory">
+ <zeroOrMore>
+ <element name="memory_device">
+ <oneOrMore>
+ <element name="entry">
+ <attribute name="name">
+ <ref name="sysinfo-memory-name"/>
+ </attribute>
+ <ref name="sysinfo-value"/>
+ </element>
+ </oneOrMore>
+ </element>
+ </zeroOrMore>
+ </define>
+
+ <define name="sysinfo-smbios-group-oemstrings">
+ <optional>
+ <element name="oemStrings">
+ <oneOrMore>
+ <element name="entry">
+ <ref name="sysinfo-value"/>
+ </element>
+ </oneOrMore>
+ </element>
+ </optional>
+ </define>
+
+ <define name="sysinfo-fwcfg-entry">
+ <element name="entry">
+ <attribute name="name">
+ <data type="string"/>
+ </attribute>
+ <choice>
+ <group>
+ <attribute name="file">
+ <data type="string"/>
+ </attribute>
+ <empty/>
+ </group>
+ <group>
+ <ref name="sysinfo-value"/>
+ </group>
+ </choice>
+ </element>
+ </define>
+
+ <define name="sysinfo-bios-name">
+ <choice>
+ <value>vendor</value>
+ <value>version</value>
+ <value>date</value>
+ <value>release</value>
+ </choice>
+ </define>
+
+ <define name="sysinfo-system-name">
+ <choice>
+ <value>manufacturer</value>
+ <value>product</value>
+ <value>version</value>
+ <value>serial</value>
+ <value>uuid</value>
+ <value>sku</value>
+ <value>family</value>
+ </choice>
+ </define>
+
+ <define name="sysinfo-baseBoard-name">
+ <choice>
+ <value>manufacturer</value>
+ <value>product</value>
+ <value>version</value>
+ <value>serial</value>
+ <value>asset</value>
+ <value>location</value>
+ </choice>
+ </define>
+
+ <define name="sysinfo-chassis-name">
+ <choice>
+ <value>manufacturer</value>
+ <value>version</value>
+ <value>serial</value>
+ <value>asset</value>
+ <value>sku</value>
+ </choice>
+ </define>
+
+ <define name="sysinfo-processor-name">
+ <choice>
+ <value>socket_destination</value>
+ <value>type</value>
+ <value>family</value>
+ <value>manufacturer</value>
+ <value>signature</value>
+ <value>version</value>
+ <value>external_clock</value>
+ <value>max_speed</value>
+ <value>status</value>
+ <value>serial_number</value>
+ <value>part_number</value>
+ </choice>
+ </define>
+
+ <define name="sysinfo-memory-name">
+ <choice>
+ <value>size</value>
+ <value>form_factor</value>
+ <value>locator</value>
+ <value>bank_locator</value>
+ <value>type</value>
+ <value>type_detail</value>
+ <value>speed</value>
+ <value>manufacturer</value>
+ <value>serial_number</value>
+ <value>part_number</value>
+ </choice>
+ </define>
+
+ <define name="sysinfo-value">
+ <data type="string"/>
+ </define>
+
+</grammar>
diff --git a/src/main/resources/virtualbox/xsd/VirtualBox-settings_v1-21.xsd b/src/main/resources/virtualbox/xsd/VirtualBox-settings_v1-21.xsd
new file mode 100644
index 0000000..13806fd
--- /dev/null
+++ b/src/main/resources/virtualbox/xsd/VirtualBox-settings_v1-21.xsd
@@ -0,0 +1,1722 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ * :tabSize=2:indentSize=2:noTabs=true:
+ * :folding=explicit:collapseFolds=1:
+ *
+ * Oracle VirtualBox Settings Schema
+ * Common definitions
+-->
+<!--
+ Copyright (C) 2004-2024 Oracle and/or its affiliates.
+
+ This file is part of VirtualBox base platform packages, as
+ available from https://www.virtualbox.org.
+
+ This program is free software; you can redistribute it and/or
+ modify it under the terms of the GNU General Public License
+ as published by the Free Software Foundation, in version 3 of the
+ License.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, see <https://www.gnu.org/licenses>.
+
+ SPDX-License-Identifier: GPL-3.0-only
+-->
+
+<xsd:schema
+ xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+ xmlns="http://www.virtualbox.org/"
+ xmlns:vb="http://www.virtualbox.org/"
+ targetNamespace="http://www.virtualbox.org/"
+ elementFormDefault="qualified"
+>
+
+<xsd:annotation>
+ <xsd:documentation xml:lang="en">
+ Oracle VirtualBox Settings Schema (common definitions).
+ Copyright (C) 2004-2024 Oracle and/or its affiliates.
+ </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="TVMProcPriority">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Invalid"/>
+ <xsd:enumeration value="Default"/>
+ <xsd:enumeration value="Flat"/>
+ <xsd:enumeration value="Low"/>
+ <xsd:enumeration value="Normal"/>
+ <xsd:enumeration value="High"/>
+ </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TVMExecEngine">
+ <xsd:restriction base="xsd:string">
+ <xsd:enumeration value="Default"/>
+ <xsd:enumeration value="HwVirt"/>
+ <xsd:enumeration value="NativeApi"/>
+ <xsd:enumeration value="Interpreter"/>
+ <xsd:enumeration value="Recompiler"/>
+ </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 VBoxVideo.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="Am79C960"/>
+ <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="TFirmwareBootMenuModeType">
+ <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:enumeration value="TCP"/>
+ </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TStorageControllerType">
+ <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:enumeration value="USB"/>
+ <xsd:enumeration value="NVMe"/>
+ <xsd:enumeration value="VirtioSCSI"/>
+ </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TDisplayControllerType">
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="VBoxVGA"/>
+ <xsd:enumeration value="VMSVGA"/>
+ <xsd:enumeration value="VBoxSVGA"/>
+ <xsd:enumeration value="QemuRamFB"/>
+ </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:simpleType name="TSymlinkPolicy"> <!-- new since v1.20. -->
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="forbidden"/>
+ <xsd:enumeration value="subtree"/>
+ <xsd:enumeration value="relative"/>
+ <xsd:enumeration value="any"/>
+ </xsd:restriction>
+</xsd:simpleType>
+
+<!--
+// Complex types
+/////////////////////////////////////////////////////////////////////////
+-->
+<xsd:complexType name="TDHCPServer">
+ <xsd:sequence>
+ <xsd:element name="Options" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="Option" type="TDHCPOption" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <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="TDHCPOption">
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="value" type="xsd:string" use="required"/>
+ <xsd:attribute name="encoding" type="xsd:integer" default="0"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNATNetwork">
+ <xsd:sequence>
+ <xsd:element name="PortForwarding4" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="Forwarding" type="TNATPortForwarding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="PortForwarding6" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="Forwarding" type="TNATPortForwarding" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="Mappings" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="Loopback4" type="TNATLoopback4" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:sequence>
+ <xsd:attribute name="networkName" type="xsd:string" use="required"/>
+ <xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
+ <xsd:attribute name="network" type="xsd:string" use="required"/>
+ <xsd:attribute name="ipv6" type="xsd:boolean" use="required"/>
+ <xsd:attribute name="ipv6prefix" type="xsd:string" use="required"/>
+ <xsd:attribute name="advertiseDefaultIPv6Route" type="xsd:boolean" use="required"/>
+ <xsd:attribute name="needDhcp" type="xsd:boolean" use="required"/>
+ <xsd:attribute name="loopback6" type="xsd:integer" default="0"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNATLoopback4">
+ <xsd:attribute name="address" type="xsd:string" use="required"/>
+ <xsd:attribute name="offset" type="xsd:integer" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNATPortForwarding">
+ <xsd:attribute name="name" type="xsd:string" use="required"/>
+ <xsd:attribute name="proto" type="xsd:integer" use="required"/>
+ <xsd:attribute name="hostip" type="xsd:string" default=""/>
+ <xsd:attribute name="hostport" type="xsd:integer" use="required"/>
+ <xsd:attribute name="guestip" type="xsd:string" use="required"/>
+ <xsd:attribute name="guestport" type="xsd:integer" 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: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>
+
+<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="TUSBDeviceFilters">
+ <xsd:sequence>
+ <xsd:element name="DeviceFilter" type="TUSBDeviceFilter" minOccurs="0"/>
+ </xsd:sequence>
+</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: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>
+
+<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" minOccurs="0"/>
+ <xsd:element name="NetserviceRegistry" minOccurs="0">
+ <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:element name="NATNetworks" minOccurs="0">
+ <xsd:complexType>
+ <xsd:sequence>
+ <xsd:element name="NATNetwork" type="TNATNetwork" minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+ </xsd:complexType>
+ </xsd:element>
+ </xsd:all>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="SharedFolders" type="TSharedFolders" minOccurs="0"/>
+ <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="Updates" type="TUpdates"/>
+ <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="THWVirtExUXType">
+ <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="TLongModeType">
+ <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:complexType name="THardwareVirtExUseNativeApi">
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TIBPBOn">
+ <xsd:attribute name="vmexit" type="xsd:boolean"/>
+ <xsd:attribute name="vmentry" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TSpecCtrl">
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TSpecCtrlByHost">
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TL1DFlushOn">
+ <xsd:attribute name="scheduling" type="xsd:boolean"/>
+ <xsd:attribute name="vmentry" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TMDSClearOn">
+ <xsd:attribute name="scheduling" type="xsd:boolean"/>
+ <xsd:attribute name="vmentry" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNestedHWVirt">
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="THardwareVirtExVirtVmsaveVmload">
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TTripleFaultReset">
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TX2APIC">
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TGICITS">
+ <xsd:attribute name="enabled" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TAPIC">
+ <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="64"/>
+ </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:complexType name="TCpuIdLeafX86">
+ <xsd:attribute name="id" type="xsd:unsignedInt" use="required"/>
+ <xsd:attribute name="eax" type="xsd:unsignedInt" use="required"/>
+ <xsd:attribute name="ebx" type="xsd:unsignedInt" use="required"/>
+ <xsd:attribute name="ecx" type="xsd:unsignedInt" use="required"/>
+ <xsd:attribute name="edx" type="xsd:unsignedInt" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="TCpuIdTreeX86">
+ <xsd:sequence>
+ <xsd:element name="CpuIdLeaf" type="TCpuIdLeafX86"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TCPUX86"> <!-- Contains the "x86" sub element of the CPU element. New since v1.20. -->
+ <xsd:sequence>
+ <xsd:element name="HPET" type="THPET" minOccurs="0"/>
+ <xsd:element name="HardwareVirtExLargePages" type="THardwareVirtExLargePages" minOccurs="0"/>
+ <xsd:element name="HardwareVirtForce" type="THardwareVirtForce" minOccurs="0"/>
+ <xsd:element name="HardwareVirtExUseNativeApi" type="THardwareVirtExUseNativeApi" minOccurs="0"/>
+ <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="HardwareVirtExUX" type="THWVirtExUXType" minOccurs="0"/>
+ <xsd:element name="PAE" type="TPAEType" minOccurs="0"/>
+ <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"/>
+ <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="CpuIdTree" type="TCpuIdTreeX86" minOccurs="0">
+ <xsd:unique name="TCPUX86-CpuIdTree-CpuIdLeaf">
+ <xsd:selector xpath="vb:CpuIdLeaf"/>
+ <xsd:field xpath="@id"/>
+ </xsd:unique>
+ </xsd:element>
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TCPUARM"> <!-- Contains the "arm" sub element of the CPU element. New since v1.21. -->
+ <xsd:sequence>
+ <xsd:element name="GICITS" type="TGICITS" minOccurs="0"/>
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TCPU">
+ <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. -->
+ <xsd:element name="HardwareVirtExVPID" type="THWVirtExVPIDType" minOccurs="0"/> <!-- deprecated since v1.20. -->
+ <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. -->
+ <xsd:unique name="TCPU-CpuIdTree-CpuIdLeaf">
+ <xsd:selector xpath="vb:CpuIdLeaf"/>
+ <xsd:field xpath="@id"/>
+ </xsd:unique>
+ </xsd:element>
+ </xsd:all>
+ <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" default="8">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:unsignedInt">
+ <xsd:minInclusive value="0"/>
+ <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:attribute name="controller" type="TDisplayControllerType" default="VBoxSVGA"/>
+</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="TVideoCapture">
+ <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="file" type="xsd:string"/>
+ <xsd:attribute name="screens" type="xsd:unsignedLong"/> <!-- todo: fix writing of settings (writes -1) -->
+ <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:attribute name="rate" type="xsd:unsignedInt"/>
+ <xsd:attribute name="fps" type="xsd:unsignedInt"/>
+ <xsd:attribute name="maxTime" type="xsd:unsignedInt"/>
+ <xsd:attribute name="maxSize" type="xsd:unsignedInt"/>
+ <xsd:attribute name="options" type="xsd:string"/>
+</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" default="false"/>
+ <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="TFirmware"> <!-- Note: Is named as element "BIOS" for settings < v1.20. -->
+ <xsd:all>
+ <xsd:element name="ACPI" minOccurs="0">
+ <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="TFirmwareBootMenuModeType" 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="NVRAM" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+ <xsd:attribute name="path" type="xsd:string"/>
+ </xsd:complexType>
+ </xsd:element>
+ <xsd:element name="SmbiosUuidLittleEndian" minOccurs="0">
+ <xsd:complexType>
+ <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+ </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>
+ <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:attribute name="type" type="TFirmwareType" use="optional"/> <!-- new since v1.20. -->
+</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:attribute name="hotpluggable" 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" type="TStorageControllerType" use="required"/>
+ <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="TUSBController2">
+ <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="OHCI"/>
+ <xsd:enumeration value="EHCI"/>
+ <xsd:enumeration value="XHCI"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+</xsd:complexType>
+
+<xsd:complexType name="TUSBControllers">
+ <xsd:sequence>
+ <xsd:element name="Controller" type="TUSBController2"
+ minOccurs="0" maxOccurs="unbounded"/>
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TUSB">
+ <xsd:sequence>
+ <xsd:element name="Controllers" type="TUSBControllers" minOccurs="0"/>
+ <xsd:element name="DeviceFilters" type="TUSBDeviceFilters" minOccurs="0"/>
+ </xsd:sequence>
+</xsd:complexType>
+
+
+<xsd:complexType name="TAudioAdapter">
+ <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+ <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>
+ <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="codec" default="AD1980"/>
+ <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:enumeration value="WAS"/> <!-- 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:attribute name="localhost-reachable" type="xsd:boolean" default="true"/>
+ <xsd:attribute name="forward-broadcast" type="xsd:boolean" default="false" />
+ <xsd:attribute name="enable-tftp" type="xsd:boolean" default="false" />
+</xsd:complexType>
+
+<xsd:complexType name="TNetNATNetwork">
+ <xsd:attribute name="name" type="xsd:string"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNetBridged">
+ <xsd:attribute name="name" type="xsd:string"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNetInternal">
+ <xsd:attribute name="name" type="xsd:string"/>
+</xsd:complexType>
+
+<xsd:complexType name="TNetHostOnly">
+ <xsd:attribute name="name" type="xsd:string"/>
+</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="NATNetwork" type="TNetNATNetwork"/>
+ <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="NATNetwork" type="TNetNATNetwork" 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="Am79C973"/>
+ <xsd:attribute name="slot" type="xsd:unsignedInt" use="required"/>
+ <xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
+ <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" default="true"/>
+ <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:attribute name="promiscuousModePolicy" default="Deny">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="Deny"/>
+ <xsd:enumeration value="AllowNetwork"/>
+ <xsd:enumeration value="AllowAll"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ </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="4"/>
+ </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="optional"/>
+ <xsd:attribute name="IOAddress" type="TUInt16" use="optional"/>
+ <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="4"/>
+ </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:attribute name="autoMountPoint" type="xsd:string"/>
+ <xsd:attribute name="symlinkPolicy" type="TSymlinkPolicy" default="forbidden"/> <!-- new since v1.20. -->
+</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" default="Disabled"/>
+ <xsd:attribute name="fileTransfersEnabled" type="xsd:boolean" default="false"/>
+</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:simpleType name="TFirmwareType">
+ <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:complexType name="THID">
+ <xsd:attribute name="Pointing" default="PS2Mouse">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="USBMouse"/>
+ <xsd:enumeration value="USBTablet"/>
+ <xsd:enumeration value="PS2Mouse"/>
+ <xsd:enumeration value="ComboMouse"/>
+ <xsd:enumeration value="USBMultiTouch"/>
+ <xsd:enumeration value="USBMTScreenPlusPad"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="Keyboard" default="PS2Keyboard">
+ <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:enumeration value="ARMv8Virtual"/> <!-- new since v1.20. -->
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+</xsd:complexType>
+
+<xsd:complexType name="TIommu"> <!-- new since v1.19. -->
+ <xsd:attribute name="type" use="required">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="Automatic"/>
+ <xsd:enumeration value="AMD"/>
+ <xsd:enumeration value="Intel"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+</xsd:complexType>
+
+<xsd:complexType name="TParavirt">
+ <xsd:attribute name="provider" use="required">
+ <xsd:simpleType>
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="Default"/>
+ <xsd:enumeration value="Legacy"/>
+ <xsd:enumeration value="Minimal"/>
+ <xsd:enumeration value="HyperV"/>
+ <xsd:enumeration value="KVM"/>
+ </xsd:restriction>
+ </xsd:simpleType>
+ </xsd:attribute>
+ <xsd:attribute name="debug" type="xsd:string"/>
+</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:simpleType name="TPlatformArchitecture"> <!-- new since v1.20. -->
+ <xsd:restriction base="xsd:token">
+ <xsd:enumeration value="None"/>
+ <xsd:enumeration value="x86"/>
+ <xsd:enumeration value="ARM"/>
+ </xsd:restriction>
+</xsd:simpleType>
+
+<xsd:complexType name="TPlatformProperties"> <!-- new since v1.20. -->
+ <xsd:attribute name="exclusiveHwVirt" type="xsd:boolean"/>
+</xsd:complexType>
+
+<xsd:complexType name="TPlatformX86"> <!-- new since v1.20. -->
+ <xsd:sequence>
+ <xsd:element name="CPU" type="TCPUX86" minOccurs="0"/>
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TPlatformARM"> <!-- new since v1.20. -->
+ <xsd:sequence>
+ <xsd:element name="CPU" type="TCPUARM" minOccurs="0"/>
+ </xsd:sequence>
+</xsd:complexType>
+
+<xsd:complexType name="TPlatform"> <!-- new since v1.20. -->
+ <xsd:all>
+ <xsd:element name="Chipset" type="TChipset" minOccurs="0"/>
+ <xsd:element name="Iommu" type="TIommu" minOccurs="0"/>
+ <xsd:element name="RTC" type="TRTC" minOccurs="0"/>
+ <xsd:element name="CPU" type="TCPU"/>
+ <xsd:element name="x86" type="TPlatformX86" minOccurs="0"/>
+ <xsd:element name="arm" type="TPlatformARM" minOccurs="0"/>
+ </xsd:all>
+ <xsd:attribute name="architecture" type="TPlatformArchitecture" use="required"/>
+</xsd:complexType>
+
+<xsd:complexType name="THardware">
+ <xsd:all>
+ <xsd:element name="CPU" type="TCPU" minOccurs="0"/> <!-- deprecated since v1.20. -->
+ <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"/> <!-- deprecated since v1.20. -->
+ <xsd:element name="Chipset" type="TChipset" minOccurs="0"/> <!-- deprecated since v1.20. -->
+ <xsd:element name="Paravirt" type="TParavirt" minOccurs="0"/>
+ <xsd:element name="Boot" type="TBoot" minOccurs="0">
+ <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" minOccurs="0"/>
+ <xsd:element name="VideoRecording" type="TVideoRecording" minOccurs="0"/>
+ <xsd:element name="VideoCapture" type="TVideoCapture" minOccurs="0"/>
+ <xsd:element name="RemoteDisplay" type="TRemoteDisplay" minOccurs="0"/>
+ <xsd:element name="BIOS" type="TFirmware" minOccurs="0"/> <!-- deprecated since v1.20. -->
+ <xsd:element name="DVDDrive" type="TDVDDrive" minOccurs="0"/>
+ <xsd:element name="FloppyDrive" type="TFloppyDrive" minOccurs="0"/>
+ <xsd:element name="USBController" type="TUSBController" minOccurs="0"/>
+ <xsd:element name="USB" type="TUSB" minOccurs="0"/>
+ <xsd:element name="SATAController" type="TSATAController" minOccurs="0"/> <!-- deprecated -->
+ <xsd:element name="Network" type="TNetwork" minOccurs="0">
+ <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" minOccurs="0"/>
+ <xsd:element name="RTC" type="TRTC" minOccurs="0"/> <!-- deprecated since v1.20. -->
+ <xsd:element name="SharedFolders" type="TSharedFolders" minOccurs="0">
+ <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" minOccurs="0"/>
+ <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" minOccurs="0"/>
+ <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:element name="StorageControllers" type="TStorageControllers" minOccurs="0"/>
+ </xsd:all>
+ <xsd:attribute name="version" type="xsd:string" default="2"/>
+ <xsd:attribute name="uuid" type="TNonNullUUID" use="optional"/>
+</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="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="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:attribute name="version" type="xsd:string" default="1.15"/> <!-- Used for OVF files only, must not be present in normal settings files. The default corresponds to settings created by 5.0, which covers many older versions but not newer ones. -->
+ <xsd:attribute name="VMProcessPriority" type="TVMProcPriority"/>
+ <xsd:attribute name="executionEngine" type="TVMExecEngine"/> <!-- new since v1.20. -->
+</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="Platform" type="TPlatform" minOccurs="0"/> <!-- new since v1.20. -->
+ <xsd:element name="StorageControllers" type="TStorageControllers" minOccurs="0"/>
+ <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" use="required"/>
+</xsd:complexType>
+
+<!-- Root element for all VirtualBox config files -->
+<xsd:element name="VirtualBox" type="TVirtualBox"/>
+
+</xsd:schema>