diff options
author | Simon Rettberg | 2025-08-14 12:30:01 +0200 |
---|---|---|
committer | Simon Rettberg | 2025-08-14 12:30:01 +0200 |
commit | b93d4f1e174d6b6004565e85792d221816d6bbf6 (patch) | |
tree | 1172f07bc45210d0f006a4d737a78fa2dac8c44d | |
parent | Field belongs to version, not base image.... (diff) | |
download | master-sync-shared-b93d4f1.tar.gz master-sync-shared-b93d4f1.tar.xz master-sync-shared-b93d4f1.zip |
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">[ -~]{0,16}</param> + <param name="pattern">[ -~]{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> |