VirtualBox-settings-common.xsd revision cdd4210965dea38987df21ac871713561bcf6f60
9512fe850e98fdd448c638ca63fdd92a8a510255ahl<?xml version="1.0" encoding="UTF-8"?>
9512fe850e98fdd448c638ca63fdd92a8a510255ahl<!--
9512fe850e98fdd448c638ca63fdd92a8a510255ahl * :tabSize=2:indentSize=2:noTabs=true:
9512fe850e98fdd448c638ca63fdd92a8a510255ahl * :folding=explicit:collapseFolds=1:
9512fe850e98fdd448c638ca63fdd92a8a510255ahl *
9512fe850e98fdd448c638ca63fdd92a8a510255ahl * innotek VirtualBox Settings Schema
9512fe850e98fdd448c638ca63fdd92a8a510255ahl * Common definitions
9512fe850e98fdd448c638ca63fdd92a8a510255ahl
9512fe850e98fdd448c638ca63fdd92a8a510255ahl Copyright (C) 2004-2007 innotek GmbH
9512fe850e98fdd448c638ca63fdd92a8a510255ahl
9512fe850e98fdd448c638ca63fdd92a8a510255ahl This file is part of VirtualBox Open Source Edition (OSE), as
9512fe850e98fdd448c638ca63fdd92a8a510255ahl available from http://www.virtualbox.org. This file is free software;
9512fe850e98fdd448c638ca63fdd92a8a510255ahl you can redistribute it and/or modify it under the terms of the GNU
9512fe850e98fdd448c638ca63fdd92a8a510255ahl General Public License (GPL) as published by the Free Software
9512fe850e98fdd448c638ca63fdd92a8a510255ahl Foundation, in version 2 as it comes in the "COPYING" file of the
9512fe850e98fdd448c638ca63fdd92a8a510255ahl VirtualBox OSE distribution. VirtualBox OSE is distributed in the
9512fe850e98fdd448c638ca63fdd92a8a510255ahl hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
9512fe850e98fdd448c638ca63fdd92a8a510255ahl-->
9512fe850e98fdd448c638ca63fdd92a8a510255ahl
9512fe850e98fdd448c638ca63fdd92a8a510255ahl<xsd:schema
9512fe850e98fdd448c638ca63fdd92a8a510255ahl xmlns:xsd="http://www.w3.org/2001/XMLSchema"
9512fe850e98fdd448c638ca63fdd92a8a510255ahl xmlns="http://www.innotek.de/VirtualBox-settings"
9512fe850e98fdd448c638ca63fdd92a8a510255ahl xmlns:vb="http://www.innotek.de/VirtualBox-settings"
9512fe850e98fdd448c638ca63fdd92a8a510255ahl targetNamespace="http://www.innotek.de/VirtualBox-settings"
9512fe850e98fdd448c638ca63fdd92a8a510255ahl elementFormDefault="qualified"
9512fe850e98fdd448c638ca63fdd92a8a510255ahl>
e98f46cc16b6ba1555409cb3c7e384bdb0792875Adam Leventhal
e98f46cc16b6ba1555409cb3c7e384bdb0792875Adam Leventhal<xsd:annotation>
e98f46cc16b6ba1555409cb3c7e384bdb0792875Adam Leventhal <xsd:documentation xml:lang="en">
9512fe850e98fdd448c638ca63fdd92a8a510255ahl innotek VirtualBox Settings Schema (common definitions).
9512fe850e98fdd448c638ca63fdd92a8a510255ahl Copyright (c) 2004-2007 innotek GmbH.
9512fe850e98fdd448c638ca63fdd92a8a510255ahl </xsd:documentation>
9512fe850e98fdd448c638ca63fdd92a8a510255ahl</xsd:annotation>
9512fe850e98fdd448c638ca63fdd92a8a510255ahl
9512fe850e98fdd448c638ca63fdd92a8a510255ahl<!--
9512fe850e98fdd448c638ca63fdd92a8a510255ahl// Simple types
9512fe850e98fdd448c638ca63fdd92a8a510255ahl/////////////////////////////////////////////////////////////////////////
9512fe850e98fdd448c638ca63fdd92a8a510255ahl-->
9512fe850e98fdd448c638ca63fdd92a8a510255ahl
9512fe850e98fdd448c638ca63fdd92a8a510255ahl<xsd:simpleType name="TUUID">
9512fe850e98fdd448c638ca63fdd92a8a510255ahl <xsd:restriction base="xsd:token">
9512fe850e98fdd448c638ca63fdd92a8a510255ahl <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}\}"/>
9512fe850e98fdd448c638ca63fdd92a8a510255ahl </xsd:restriction>
e98f46cc16b6ba1555409cb3c7e384bdb0792875Adam Leventhal</xsd:simpleType>
9512fe850e98fdd448c638ca63fdd92a8a510255ahl
9512fe850e98fdd448c638ca63fdd92a8a510255ahl<xsd:simpleType name="TNonNullUUID">
e98f46cc16b6ba1555409cb3c7e384bdb0792875Adam Leventhal <xsd:restriction base="TUUID">
9512fe850e98fdd448c638ca63fdd92a8a510255ahl <xsd:pattern value=".*[1-9A-Fa-f]+.*"/>
9512fe850e98fdd448c638ca63fdd92a8a510255ahl </xsd:restriction>
9512fe850e98fdd448c638ca63fdd92a8a510255ahl</xsd:simpleType>
9512fe850e98fdd448c638ca63fdd92a8a510255ahl
9512fe850e98fdd448c638ca63fdd92a8a510255ahl<xsd:simpleType name="TUInt8">
9512fe850e98fdd448c638ca63fdd92a8a510255ahl <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="TUInt64Hex">
<xsd:restriction base="xsd:string">
<xsd:pattern value="0x[A-Fa-f0-9]{1,16}"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TLocalFile">
<xsd:restriction base="xsd:string">
<xsd:pattern value=".+"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TDiskType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="HD"/>
<xsd:enumeration value="DVD"/>
<xsd:enumeration value="FD"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TDeviceType">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="None"/>
<xsd:enumeration value="Floppy"/>
<xsd:enumeration value="DVD"/>
<xsd:enumeration value="HardDisk"/>
<xsd:enumeration value="Network"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TUSBDeviceFilterAction">
<xsd:restriction base="xsd:token">
<xsd:enumeration value="Ignore"/>
<xsd:enumeration value="Hold"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TNonEmptyString">
<xsd:restriction base="xsd:string">
<xsd:pattern value=".+"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TPresentDateTimeUTC">
<xsd:restriction base="xsd:dateTime">
<xsd:minInclusive value="1900-01-01T00:00:00Z"/>
<xsd:maxInclusive value="199999999-12-31T23:59:59Z"/>
<xsd:pattern value=".+-.+-.+T.+:.+:[0-9]{2}Z"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TGuestOSType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="unknown"/>
<xsd:enumeration value="dos"/>
<xsd:enumeration value="win31"/>
<xsd:enumeration value="win95"/>
<xsd:enumeration value="win98"/>
<xsd:enumeration value="winme"/>
<xsd:enumeration value="winnt4"/>
<xsd:enumeration value="win2k"/>
<xsd:enumeration value="winxp"/>
<xsd:enumeration value="win2k3"/>
<xsd:enumeration value="winvista"/>
<xsd:enumeration value="os2warp3"/>
<xsd:enumeration value="os2warp4"/>
<xsd:enumeration value="os2warp45"/>
<xsd:enumeration value="linux22"/>
<xsd:enumeration value="linux24"/>
<xsd:enumeration value="linux26"/>
<xsd:enumeration value="freebsd"/>
<xsd:enumeration value="openbsd"/>
<xsd:enumeration value="netbsd"/>
<xsd:enumeration value="netware"/>
<xsd:enumeration value="solaris"/>
<xsd:enumeration value="l4"/>
</xsd:restriction>
</xsd:simpleType>
<!--- @todo (dmik) capitalize enum values on next format change! -->
<!--- @todo (dmik) change "null" to None" -->
<xsd:simpleType name="TVRDPAuthType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="null"/>
<xsd:enumeration value="guest"/>
<xsd:enumeration value="external"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TNetworkAdapterType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Am79C970A"/>
<xsd:enumeration value="Am79C973"/>
<xsd:enumeration value="82540EM"/>
</xsd: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>
<!--- @todo (dmik) capitalize enum values on next format change! -->
<xsd:simpleType name="TBIOSBootMenuModeType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="disabled"/>
<xsd:enumeration value="menuonly"/>
<xsd:enumeration value="messageandmenu"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType name="TIDEControllerType">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="PIIX3"/>
<xsd:enumeration value="PIIX4"/>
</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="TPortMode">
<xsd:restriction base="xsd:string">
<xsd:enumeration value="Disconnected"/>
<xsd:enumeration value="HostPipe"/>
<xsd:enumeration value="HostDevice"/>
</xsd:restriction>
</xsd:simpleType>
<!--
// Complex types
/////////////////////////////////////////////////////////////////////////
-->
<xsd:complexType name="TImage">
<xsd:attribute name="src" type="TLocalFile" use="required"/>
<xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
</xsd:complexType>
<xsd:complexType name="TVirtualDiskImage">
<xsd:attribute name="filePath" type="TLocalFile" use="required"/>
</xsd:complexType>
<xsd:complexType name="TDiffHardDisk">
<xsd:sequence>
<xsd:element name="VirtualDiskImage" type="TVirtualDiskImage"/>
<xsd:element name="DiffHardDisk" type="TDiffHardDisk" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
</xsd:complexType>
<xsd:complexType name="THardDisk">
<xsd:sequence>
<xsd:choice>
<xsd:element name="VirtualDiskImage" type="TVirtualDiskImage"/>
<xsd:element name="ISCSIHardDisk">
<xsd:complexType>
<xsd:attribute name="server" type="xsd:token" use="required"/>
<xsd:attribute name="port" type="xsd:unsignedShort" default="0"/>
<xsd:attribute name="target" type="xsd:token" use="required"/>
<xsd:attribute name="lun" type="TUInt64Hex" default="0x0"/>
<xsd:attribute name="userName" type="xsd:token"/>
<xsd:attribute name="password" type="xsd:token"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="VMDKImage">
<xsd:complexType>
<xsd:attribute name="filePath" type="TLocalFile" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="PhysicalVolume">
<xsd:complexType>
<xsd:attribute name="path" type="TLocalFile" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="CustomHardDisk">
<xsd:complexType>
<xsd:attribute name="location" type="TLocalFile" use="required"/>
<xsd:attribute name="format" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="VHDImage">
<xsd:complexType>
<xsd:attribute name="filePath" type="TLocalFile" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:choice>
<xsd:element name="DiffHardDisk" type="TDiffHardDisk" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
<xsd:attribute name="type" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:string">
<xsd:enumeration value="normal"/>
<xsd:enumeration value="immutable"/>
<xsd:enumeration value="writethrough"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</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">
<!--- @todo (dmik) make all attr names likeThis on next format change! -->
<xsd:attribute name="name" type="TNonEmptyString" use="required"/>
<xsd:attribute name="active" type="xsd:boolean" use="required"/>
<xsd:attribute name="vendorid" type="xsd:token"/>
<xsd:attribute name="productid" type="xsd:token"/>
<xsd:attribute name="revision" type="xsd:token"/>
<xsd:attribute name="manufacturer" type="xsd:token"/>
<xsd:attribute name="product" type="xsd:token"/>
<xsd:attribute name="serialnumber" type="xsd:token"/>
<xsd:attribute name="port" type="xsd:token"/>
<xsd:attribute name="remote" type="xsd:token"/>
<xsd:attribute name="maskedInterfaces" type="xsd:unsignedInt" default="0"/>
</xsd:complexType>
<xsd:complexType name="THostUSBDeviceFilter">
<xsd:complexContent>
<xsd:extension base="TUSBDeviceFilter">
<xsd:attribute name="action" type="TUSBDeviceFilterAction" use="required"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="TSystemProperties">
<xsd:attribute name="defaultVDIFolder" type="TLocalFile"/>
<xsd:attribute name="defaultMachineFolder" type="TLocalFile"/>
<!--- @todo (dmik) remove defaultSavedStateFolder on next format change! -->
<xsd:attribute name="defaultSavedStateFolder" type="TLocalFile"/>
<xsd:attribute name="remoteDisplayAuthLibrary" type="TLocalFile"/>
<xsd:attribute name="webServiceAuthLibrary" type="TLocalFile"/>
<xsd:attribute name="HWVirtExEnabled" type="xsd:boolean"/>
<xsd:attribute name="LogHistoryCount" type="xsd:unsignedInt" default="3"/>
</xsd:complexType>
<xsd:complexType name="TExtraData">
<xsd:sequence>
<xsd:element name="ExtraDataItem" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="name" type="xsd:token" use="required"/>
<xsd:attribute name="value" type="xsd:string" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TGlobal">
<xsd:all>
<xsd:element name="MachineRegistry">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="MachineEntry" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="src" type="TLocalFile" use="required"/>
<xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DiskRegistry">
<xsd:complexType>
<xsd:all>
<xsd:element name="HardDisks" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="HardDisk" type="THardDisk" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DVDImages" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Image" type="TImage" 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="TImage" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
</xsd:element>
<xsd:element name="USBDeviceFilters">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="DeviceFilter" type="THostUSBDeviceFilter"
minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="SystemProperties" type="TSystemProperties"/>
<xsd:element name="ExtraData" type="TExtraData" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="THWVirtExType">
<xsd:attribute name="enabled" type="TTriStateBoolType" default="default"/>
</xsd:complexType>
<xsd:complexType name="TCPU">
<xsd:sequence>
<xsd:element name="HardwareVirtEx" type="THWVirtExType" minOccurs="0"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TBoot">
<xsd:sequence>
<xsd:element name="Order" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:attribute name="position" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedInt">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="4"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="device" type="TDeviceType" use="required"/>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TDisplay">
<xsd:attribute name="VRAMSize" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedInt">
<xsd:minInclusive value="1"/>
<xsd:maxInclusive value="128"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="MonitorCount" default="1">
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedInt">
<xsd:maxInclusive value="8"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="TRemoteDisplay">
<xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
<xsd:attribute name="port" type="xsd:unsignedInt" default="0"/>
<xsd:attribute name="netAddress" type="xsd:token" default=""/>
<xsd:attribute name="authType" type="TVRDPAuthType" default="null"/>
<xsd:attribute name="authTimeout" type="xsd:unsignedInt" default="5000"/>
<xsd:attribute name="allowMultiConnection" type="xsd:boolean" default="false"/>
</xsd:complexType>
<xsd:complexType name="TBIOS">
<xsd:all>
<xsd:element name="ACPI">
<xsd:complexType>
<xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="IOAPIC" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="Logo" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="fadeIn" type="xsd:boolean" default="true"/>
<xsd:attribute name="fadeOut" type="xsd:boolean" default="true"/>
<xsd:attribute name="displayTime" type="xsd:unsignedInt" default="0"/>
<xsd:attribute name="imagePath" type="TLocalFile"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="BootMenu" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="mode" type="TBIOSBootMenuModeType" default="messageandmenu"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="TimeOffset" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="value" type="xsd:integer" default="0"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="PXEDebug" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="enabled" type="xsd:boolean" default="false"/>
</xsd:complexType>
</xsd:element>
<xsd:element name="IDEController" minOccurs="0">
<xsd:complexType>
<xsd:attribute name="type" use="required" type="TIDEControllerType"/>
</xsd:complexType>
</xsd:element>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="THardDiskAttachment">
<xsd:attribute name="hardDisk" type="TNonNullUUID"/>
<xsd:attribute name="bus" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:token">
<xsd:enumeration value="ide0"/>
<xsd:enumeration value="ide1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="device" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:token">
<xsd:enumeration value="master"/>
<xsd:enumeration value="slave"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="THardDiskAttachments">
<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="TAdapter">
<xsd:attribute name="type" type="TNetworkAdapterType" default="Am79C970A"/>
<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="MACAddress">
<xsd:simpleType>
<xsd:restriction base="xsd:hexBinary">
<xsd:pattern value="[0-9A-Fa-f][02468ACEace][0-9A-Fa-f]{10}"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="cable" type="xsd:boolean" use="required"/>
<xsd:attribute name="speed" type="xsd:unsignedInt" default="100000"/>
<xsd:attribute name="trace" type="xsd:boolean" default="false"/>
<xsd:attribute name="tracefile" type="xsd:string"/>
</xsd:complexType>
<xsd:complexType name="TUartPort">
<xsd:attribute name="slot" use="required">
<xsd:simpleType>
<xsd:restriction base="xsd:unsignedInt">
<xsd:minInclusive value="0"/>
<xsd:maxExclusive value="2"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="enabled" type="xsd:boolean" use="required"/>
<xsd:attribute name="IRQ" type="TUInt8" use="required"/>
<xsd:attribute name="IOBase" type="TUInt16" use="required"/>
<xsd:attribute name="hostMode" type="TPortMode" use="required"/>
<xsd:attribute name="path" type="TLocalFile"/>
<xsd:attribute name="server" type="xsd:boolean" default="false"/>
</xsd:complexType>
<xsd:complexType name="TUart">
<xsd:sequence>
<xsd:element name="Port" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="TUartPort">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</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" minOccurs="0" maxOccurs="unbounded">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="TLptPort">
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TSharedFolder">
<xsd:attribute name="name" type="TNonEmptyString" use="required"/>
<xsd:attribute name="hostPath" type="TLocalFile" use="required"/>
</xsd:complexType>
<xsd:complexType name="TSharedFolders">
<xsd:sequence>
<xsd:element name="SharedFolder" type="TSharedFolder" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="TClipboard">
<xsd:attribute name="mode" type="TClipboardMode" use="required"/>
</xsd:complexType>
<xsd:complexType name="TGuest">
<xsd:attribute name="MemoryBalloonSize" type="xsd:unsignedInt" default="0"/>
<xsd:attribute name="StatisticsUpdateInterval" type="xsd:unsignedInt" default="0"/>
</xsd:complexType>
<xsd:complexType name="THardware">
<xsd:all>
<xsd:element name="CPU" type="TCPU" minOccurs="0"/>
<xsd:element name="Memory" type="TMemory"/>
<xsd:element name="Boot" type="TBoot">
<xsd:unique name="THardware-Boot-Order">
<xsd:selector xpath="vb:Order"/>
<xsd:field xpath="@position"/>
</xsd:unique>
</xsd:element>
<xsd:element name="Display" type="TDisplay"/>
<xsd:element name="RemoteDisplay" type="TRemoteDisplay" minOccurs="0"/>
<xsd:element name="BIOS" type="TBIOS"/>
<xsd:element name="DVDDrive" type="TDVDDrive"/>
<xsd:element name="FloppyDrive" type="TFloppyDrive"/>
<xsd:element name="USBController" type="TUSBController"/>
<xsd:element name="Network" type="TNetwork">
<xsd:unique name="THardware-Network-Adapter">
<xsd:selector xpath="vb:Adapter"/>
<xsd:field xpath="@slot"/>
</xsd:unique>
</xsd:element>
<xsd:element name="Uart" type="TUart" minOccurs="0">
<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="AudioAdapter" type="TAudioAdapter"/>
<!--- @todo (dmik) remove minOccurs="0" from SharedFolders on next format change! -->
<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>
<!--- @todo (dmik) remove minOccurs="0" on next format change! -->
<xsd:element name="Clipboard" type="TClipboard" minOccurs="0"/>
<!--- @todo (dmik) remove minOccurs="0" on next format change! -->
<xsd:element name="Guest" type="TGuest" minOccurs="0"/>
</xsd:all>
</xsd:complexType>
<xsd:complexType name="TMachine">
<xsd:all>
<xsd:element name="Description" type="xsd:string" minOccurs="0"/>
<xsd:element name="Hardware" type="THardware"/>
<xsd:element name="HardDiskAttachments" type="THardDiskAttachments"/>
<xsd:element name="ExtraData" type="TExtraData" minOccurs="0"/>
<xsd:element name="Snapshot" type="TSnapshot" minOccurs="0"/>
</xsd:all>
<xsd:attribute name="name" type="TNonEmptyString" use="required"/>
<xsd:attribute name="nameSync" type="xsd:boolean" default="true"/>
<xsd:attribute name="OSType" type="TGuestOSType" 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"/>
<!--- @todo (dmik) make lastStateChange required on next format change! -->
<xsd:attribute name="lastStateChange" type="TPresentDateTimeUTC"/>
<xsd:attribute name="aborted" type="xsd:boolean" default="false"/>
<xsd:attribute name="currentStateModified" type="xsd:boolean" default="true"/>
</xsd:complexType>
<xsd:complexType name="TSnapshot">
<xsd:all>
<xsd:element name="Description" type="xsd:string" minOccurs="0"/>
<xsd:element name="Hardware" type="THardware"/>
<xsd:element name="HardDiskAttachments" type="THardDiskAttachments"/>
<xsd:element name="Snapshots" minOccurs="0">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="Snapshot" type="TSnapshot" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:all>
<xsd:attribute name="name" type="xsd:token" use="required"/>
<xsd:attribute name="uuid" type="TNonNullUUID" use="required"/>
<xsd:attribute name="timeStamp" type="TPresentDateTimeUTC" use="required"/>
<xsd:attribute name="stateFile" type="TLocalFile"/>
</xsd:complexType>
<xsd:complexType name="TVirtualBox" abstract="true">
<xsd:choice>
<xsd:element name="Global" type="TGlobal"/>
<xsd:element name="Machine" type="TMachine">
<!-- @currentSnapshot must refer to an existing Snapshot/@uuid -->
<xsd:key name="snapshot">
<xsd:selector xpath=".//vb:Snapshot"/>
<xsd:field xpath="@uuid"/>
</xsd:key>
<xsd:keyref name="currentSnapshot" refer="vb:snapshot">
<xsd:selector xpath="."/>
<xsd:field xpath="@currentSnapshot"/>
</xsd:keyref>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:schema>