提交 07229259 编写于 作者: D Daniel Veillard

* docs/schemas/domain.rng: some missing disk bus values and cleanups

daniel
上级 89dd05cc
Thu Apr 2 15:18:00 CEST 2009 Daniel Veillard <veillard@redhat.com>
* docs/schemas/domain.rng: some missing disk bus values and cleanups
Thu Apr 2 14:00:14 CEST 2009 Daniel Veillard <veillard@redhat.com> Thu Apr 2 14:00:14 CEST 2009 Daniel Veillard <veillard@redhat.com>
* docs/*: start cleanup/revamp of architecture docs * docs/*: start cleanup/revamp of architecture docs
......
<?xml version="1.0" ?> <?xml version="1.0"?>
<grammar xmlns="http://relaxng.org/ns/structure/1.0" <grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
<!-- We handle only document defining a domain --> <!-- We handle only document defining a domain -->
<start> <start>
<ref name='domain'/> <ref name="domain"/>
</start> </start>
<!-- <!--
We handle only document defining a domain We handle only document defining a domain
--> -->
<define name='domain'> <define name="domain">
<element name="domain"> <element name="domain">
<ref name='hvs'/> <ref name="hvs"/>
<ref name='ids'/> <ref name="ids"/>
<interleave> <interleave>
<ref name='os'/> <ref name="os"/>
<ref name='clock'/> <ref name="clock"/>
<ref name='resources'/> <ref name="resources"/>
<ref name='features'/> <ref name="features"/>
<ref name='termination'/> <ref name="termination"/>
<optional> <optional>
<ref name='devices'/> <ref name="devices"/>
</optional> </optional>
<optional> <optional>
<ref name='seclabel'/> <ref name="seclabel"/>
</optional> </optional>
</interleave> </interleave>
</element> </element>
</define> </define>
<define name="seclabel">
<define name='seclabel'> <element name="seclabel">
<element name='seclabel'> <attribute name="model">
<attribute name='model'> <text/>
<text/>
</attribute> </attribute>
<attribute name='type'> <attribute name="type">
<choice> <choice>
<value>dynamic</value> <value>dynamic</value>
<value>static</value> <value>static</value>
</choice> </choice>
</attribute> </attribute>
<element name='label'> <element name="label">
<text/> <text/>
</element> </element>
</element> </element>
</define> </define>
<define name="hvs">
<attribute name="type">
<define name='hvs'>
<attribute name='type'>
<choice> <choice>
<value>xen</value> <value>xen</value>
<value>kvm</value> <value>kvm</value>
<value>kqemu</value> <value>kqemu</value>
<value>qemu</value> <value>qemu</value>
<value>lxc</value> <value>lxc</value>
<value>openvz</value> <value>openvz</value>
<value>test</value> <value>test</value>
</choice> </choice>
</attribute> </attribute>
</define> </define>
<define name="os">
<define name='os'>
<choice> <choice>
<ref name='osxen'/> <ref name="osxen"/>
<ref name='oshvm'/> <ref name="oshvm"/>
<ref name='osexe'/> <ref name="osexe"/>
</choice> </choice>
</define> </define>
<define name="osxen">
<define name='osxen'>
<choice> <choice>
<group> <group>
<optional> <optional>
<ref name='bootloader'/> <ref name="bootloader"/>
</optional> </optional>
<element name='os'> <element name="os">
<ref name='ostypexen'/> <ref name="ostypexen"/>
<ref name='osbootkernel'/> <ref name="osbootkernel"/>
</element> </element>
</group> </group>
<group> <group>
<ref name='bootloader'/> <ref name="bootloader"/>
<optional> <optional>
<element name='os'> <element name="os">
<ref name='ostypexen'/> <ref name="ostypexen"/>
<optional> <optional>
<ref name='osbootkernel'/> <ref name="osbootkernel"/>
</optional> </optional>
</element> </element>
</optional> </optional>
</group> </group>
</choice> </choice>
</define> </define>
<define name="oshvm">
<element name="os">
<define name='oshvm'> <ref name="ostypehvm"/>
<element name='os'>
<ref name='ostypehvm'/>
<interleave> <interleave>
<optional> <optional>
<element name='loader'> <element name="loader">
<ref name='absFilePath'/> <ref name="absFilePath"/>
</element> </element>
</optional> </optional>
<choice> <choice>
<ref name='osbootkernel'/> <ref name="osbootkernel"/>
<ref name='osbootdev'/> <ref name="osbootdev"/>
</choice> </choice>
</interleave> </interleave>
</element> </element>
</define> </define>
<define name="ostypexen">
<element name="type">
<define name='ostypexen'>
<element name='type'>
<optional> <optional>
<attribute name='arch'> <attribute name="arch">
<choice> <choice>
<value>i686</value> <value>i686</value>
<value>x86_64</value> <value>x86_64</value>
<value>ia64</value> <value>ia64</value>
</choice> </choice>
</attribute> </attribute>
</optional> </optional>
<optional> <optional>
<attribute name='machine'> <attribute name="machine">
<choice> <choice>
<value>xenpv</value> <value>xenpv</value>
<value>xenner</value> <value>xenner</value>
</choice> </choice>
</attribute> </attribute>
</optional> </optional>
<choice> <choice>
<value>xen</value> <value>xen</value>
<value>linux</value> <value>linux</value>
</choice> </choice>
</element> </element>
</define> </define>
<define name="ostypehvm">
<define name='ostypehvm'> <element name="type">
<element name='type'>
<optional> <optional>
<choice> <choice>
<ref name='hvmx86'/> <ref name="hvmx86"/>
<ref name='hvmmips'/> <ref name="hvmmips"/>
<ref name='hvmsparc'/> <ref name="hvmsparc"/>
<ref name='hvmppc'/> <ref name="hvmppc"/>
</choice> </choice>
</optional> </optional>
<value>hvm</value> <value>hvm</value>
</element> </element>
</define> </define>
<define name="hvmx86">
<define name='hvmx86'>
<group> <group>
<attribute name='arch'> <attribute name="arch">
<choice> <choice>
<value>i686</value> <value>i686</value>
<value>x86_64</value> <value>x86_64</value>
</choice> </choice>
</attribute> </attribute>
<attribute name='machine'> <attribute name="machine">
<choice> <choice>
<value>xenfv</value> <value>xenfv</value>
<value>pc</value> <value>pc</value>
<value>isapc</value> <value>isapc</value>
</choice> </choice>
</attribute> </attribute>
</group> </group>
</define> </define>
<define name="hvmmips">
<define name='hvmmips'>
<group> <group>
<attribute name='arch'> <attribute name="arch">
<value>mips</value> <value>mips</value>
</attribute> </attribute>
<attribute name='machine'> <attribute name="machine">
<value>mips</value> <value>mips</value>
</attribute> </attribute>
</group> </group>
</define> </define>
<define name="hvmsparc">
<define name='hvmsparc'>
<group> <group>
<attribute name='arch'> <attribute name="arch">
<value>sparc</value> <value>sparc</value>
</attribute> </attribute>
<attribute name='machine'> <attribute name="machine">
<value>sun4m</value> <value>sun4m</value>
</attribute> </attribute>
</group> </group>
</define> </define>
<define name="hvmppc">
<define name='hvmppc'>
<group> <group>
<attribute name='arch'> <attribute name="arch">
<value>ppc</value> <value>ppc</value>
</attribute> </attribute>
<attribute name='machine'> <attribute name="machine">
<choice> <choice>
<value>g3bw</value> <value>g3bw</value>
<value>mac99</value> <value>mac99</value>
<value>prep</value> <value>prep</value>
</choice> </choice>
</attribute> </attribute>
</group> </group>
</define> </define>
<define name="osexe">
<element name="os">
<define name='osexe'> <element name="type">
<element name='os'> <value>exe</value>
<element name='type'>
<value>exe</value>
</element> </element>
<interleave> <interleave>
<optional> <optional>
<element name='init'> <element name="init">
<ref name='absFilePath'/> <ref name="absFilePath"/>
</element> </element>
</optional> </optional>
</interleave> </interleave>
</element> </element>
</define> </define>
<!-- <!--
The Identifiers can be: The Identifiers can be:
- an optional id attribute with a number on the domain element - an optional id attribute with a number on the domain element
- a mandatory name - a mandatory name
- an optional uuid - an optional uuid
--> -->
<define name='ids'> <define name="ids">
<optional> <optional>
<attribute name='id'> <attribute name="id">
<ref name='unsignedInt'/> <ref name="unsignedInt"/>
</attribute> </attribute>
</optional> </optional>
<interleave> <interleave>
<element name="name"> <element name="name">
<ref name='domainName'/> <ref name="domainName"/>
</element> </element>
<optional> <optional>
<element name="uuid"> <element name="uuid">
<ref name='UUID'/> <ref name="UUID"/>
</element> </element>
</optional> </optional>
</interleave> </interleave>
</define> </define>
<!-- <!--
Resources usage defines the amount of memory (maximum and possibly Resources usage defines the amount of memory (maximum and possibly
current usage) and number of virtual CPUs used by that domain. current usage) and number of virtual CPUs used by that domain.
We can't check here the rule that currentMemory <= memory We can't check here the rule that currentMemory <= memory
--> -->
<define name="resources">
<define name='resources'>
<interleave> <interleave>
<element name='memory'> <element name="memory">
<ref name='memoryKB'/> <ref name="memoryKB"/>
</element> </element>
<optional> <optional>
<element name='currentMemory'> <element name="currentMemory">
<ref name='memoryKB'/> <ref name="memoryKB"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='vcpu'> <element name="vcpu">
<optional> <optional>
<attribute name='cpuset' /> <attribute name="cpuset"/>
</optional> </optional>
<ref name='countCPU'/> <ref name="countCPU"/>
</element> </element>
</optional> </optional>
</interleave> </interleave>
</define> </define>
<define name="clock">
<define name='clock'>
<optional> <optional>
<element name='clock'> <element name="clock">
<attribute name='offset'> <attribute name="offset">
<choice> <choice>
<value>localtime</value> <value>localtime</value>
<value>utc</value> <value>utc</value>
...@@ -290,54 +266,51 @@ ...@@ -290,54 +266,51 @@
</element> </element>
</optional> </optional>
</define> </define>
<!-- <!--
A bootloader may be used to extract the OS information instead of A bootloader may be used to extract the OS information instead of
defining the OS parameter in the instance. It points just to the defining the OS parameter in the instance. It points just to the
binary or script used to extract the data from the first disk device. binary or script used to extract the data from the first disk device.
--> -->
<define name='bootloader'> <define name="bootloader">
<interleave> <interleave>
<element name='bootloader'> <element name="bootloader">
<choice> <choice>
<ref name='absFilePath'/> <ref name="absFilePath"/>
<empty/> <empty/>
</choice> </choice>
</element> </element>
<optional> <optional>
<element name='bootloader_args'> <element name="bootloader_args">
<text/> <text/>
</element> </element>
</optional> </optional>
</interleave> </interleave>
</define> </define>
<define name="osbootkernel">
<define name='osbootkernel'>
<interleave> <interleave>
<element name='kernel'> <element name="kernel">
<ref name='absFilePath'/> <ref name="absFilePath"/>
</element> </element>
<optional> <optional>
<element name='initrd'> <element name="initrd">
<ref name='absFilePath'/> <ref name="absFilePath"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='root'> <element name="root">
<ref name='devicePath'/> <ref name="devicePath"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='cmdline'> <element name="cmdline">
<text/> <text/>
</element> </element>
</optional> </optional>
</interleave> </interleave>
</define> </define>
<define name="osbootdev">
<define name='osbootdev'> <element name="boot">
<element name='boot'> <attribute name="dev">
<attribute name='dev'>
<choice> <choice>
<value>hd</value> <value>hd</value>
<value>fd</value> <value>fd</value>
...@@ -348,435 +321,422 @@ ...@@ -348,435 +321,422 @@
<empty/> <empty/>
</element> </element>
</define> </define>
<define name="diskspec">
<define name='diskspec'>
<optional> <optional>
<ref name='driver'/> <ref name="driver"/>
</optional> </optional>
<ref name='target'/> <ref name="target"/>
<optional> <optional>
<element name='readonly'> <element name="readonly">
<empty/> <empty/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='shareable'> <element name="shareable">
<empty/> <empty/>
</element> </element>
</optional> </optional>
</define> </define>
<!-- <!--
A disk description can be either of type file or block A disk description can be either of type file or block
The name of the attribute on the source element depends on the type The name of the attribute on the source element depends on the type
--> -->
<define name='disk'> <define name="disk">
<element name='disk'> <element name="disk">
<optional> <optional>
<attribute name='device'> <attribute name="device">
<choice> <choice>
<value>floppy</value> <value>floppy</value>
<value>disk</value> <value>disk</value>
<value>cdrom</value> <value>cdrom</value>
</choice> </choice>
</attribute> </attribute>
</optional> </optional>
<choice> <choice>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>file</value> <value>file</value>
</attribute> </attribute>
<interleave> <interleave>
<optional> <optional>
<element name='source'> <element name="source">
<attribute name='file'> <attribute name="file">
<ref name='absFilePath'/> <ref name="absFilePath"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
</optional> </optional>
<ref name='diskspec'/> <ref name="diskspec"/>
</interleave> </interleave>
</group> </group>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>block</value> <value>block</value>
</attribute> </attribute>
<interleave> <interleave>
<optional> <optional>
<element name='source'> <element name="source">
<attribute name='dev'> <attribute name="dev">
<ref name='deviceName'/> <ref name="deviceName"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
</optional> </optional>
<ref name='diskspec'/> <ref name="diskspec"/>
</interleave> </interleave>
</group> </group>
<ref name='diskspec'/> <ref name="diskspec"/>
</choice> </choice>
</element> </element>
</define> </define>
<define name="target">
<define name='target'> <element name="target">
<element name='target'> <attribute name="dev">
<attribute name='dev'> <ref name="deviceName"/>
<ref name='deviceName'/>
</attribute> </attribute>
<optional> <optional>
<attribute name='bus'> <attribute name="bus">
<choice> <choice>
<value>ide</value> <value>ide</value>
<value>virtio</value> <value>fdc</value>
<value>fdc</value> <value>scsi</value>
<value>xen</value> <value>virtio</value>
<value>usb</value> <value>xen</value>
</choice> <value>usb</value>
</attribute> <value>uml</value>
</choice>
</attribute>
</optional> </optional>
</element> </element>
</define> </define>
<!-- <!--
Disk may use a special driver for access. Currently this is Disk may use a special driver for access. Currently this is
only defined for Xen for tap/aio and file, but will certainly be only defined for Xen for tap/aio and file, but will certainly be
extended in the future, and libvirt doesn't look for specific values. extended in the future, and libvirt doesn't look for specific values.
--> -->
<define name='driver'> <define name="driver">
<element name='driver'> <element name="driver">
<choice> <choice>
<group> <group>
<ref name='driverFormat'/> <ref name="driverFormat"/>
<optional> <optional>
<ref name='driverCache'/> <ref name="driverCache"/>
</optional> </optional>
</group> </group>
<group> <group>
<optional> <optional>
<ref name='driverFormat'/> <ref name="driverFormat"/>
</optional> </optional>
<ref name='driverCache'/> <ref name="driverCache"/>
</group> </group>
</choice> </choice>
<empty/> <empty/>
</element> </element>
</define> </define>
<define name="driverFormat">
<define name='driverFormat'> <attribute name="name">
<attribute name='name'> <ref name="genericName"/>
<ref name='genericName'/>
</attribute> </attribute>
<optional> <optional>
<attribute name='type'> <attribute name="type">
<ref name='genericName'/> <ref name="genericName"/>
</attribute> </attribute>
</optional> </optional>
</define> </define>
<define name="driverCache">
<define name='driverCache'> <attribute name="cache">
<attribute name='cache'>
<choice> <choice>
<value>none</value> <value>none</value>
<value>writeback</value> <value>writeback</value>
<value>writethrough</value> <value>writethrough</value>
</choice> </choice>
</attribute> </attribute>
</define> </define>
<define name="filesystem">
<define name='filesystem'> <element name="filesystem">
<element name='filesystem'>
<choice> <choice>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>file</value> <value>file</value>
</attribute> </attribute>
<interleave> <interleave>
<element name='source'> <element name="source">
<attribute name='file'> <attribute name="file">
<ref name='absFilePath'/> <ref name="absFilePath"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
<ref name='filesystemtgt'/> <ref name="filesystemtgt"/>
</interleave> </interleave>
</group> </group>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>block</value> <value>block</value>
</attribute> </attribute>
<interleave> <interleave>
<element name='source'> <element name="source">
<attribute name='dev'> <attribute name="dev">
<ref name='deviceName'/> <ref name="deviceName"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
<ref name='filesystemtgt'/> <ref name="filesystemtgt"/>
</interleave> </interleave>
</group> </group>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>mount</value> <value>mount</value>
</attribute> </attribute>
<interleave> <interleave>
<element name='source'> <element name="source">
<attribute name='dir'> <attribute name="dir">
<ref name='absFilePath'/> <ref name="absFilePath"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
<ref name='filesystemtgt'/> <ref name="filesystemtgt"/>
</interleave> </interleave>
</group> </group>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>template</value> <value>template</value>
</attribute> </attribute>
<interleave> <interleave>
<element name='source'> <element name="source">
<attribute name='name'> <attribute name="name">
<ref name='genericName'/> <ref name="genericName"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
<ref name='filesystemtgt'/> <ref name="filesystemtgt"/>
</interleave> </interleave>
</group> </group>
</choice> </choice>
</element> </element>
</define> </define>
<define name="filesystemtgt">
<define name='filesystemtgt'> <element name="target">
<element name='target'> <attribute name="dir">
<attribute name='dir'> <ref name="absDirPath"/>
<ref name='absDirPath'/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
</define> </define>
<!-- <!--
An interface description can either be of type bridge in which case An interface description can either be of type bridge in which case
it will use a bridging source, or of type ethernet which uses a device it will use a bridging source, or of type ethernet which uses a device
source and a device target instead. They both share a set of interface source and a device target instead. They both share a set of interface
options. FIXME options. FIXME
--> -->
<define name='interface'> <define name="interface">
<element name='interface'> <element name="interface">
<choice> <choice>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>bridge</value> <value>bridge</value>
</attribute> </attribute>
<interleave> <interleave>
<optional> <optional>
<element name='source'> <element name="source">
<attribute name='bridge'> <attribute name="bridge">
<ref name='deviceName'/> <ref name="deviceName"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
</optional> </optional>
<ref name='interface-options'/> <ref name="interface-options"/>
</interleave> </interleave>
</group> </group>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>ethernet</value> <value>ethernet</value>
</attribute> </attribute>
<interleave> <interleave>
<optional> <optional>
<element name='source'> <element name="source">
<attribute name='dev'> <attribute name="dev">
<ref name='deviceName'/> <ref name="deviceName"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
</optional> </optional>
<ref name='interface-options'/> <ref name="interface-options"/>
</interleave> </interleave>
</group> </group>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>network</value> <value>network</value>
</attribute> </attribute>
<interleave> <interleave>
<element name='source'> <element name="source">
<attribute name='network'> <attribute name="network">
<ref name='deviceName'/> <ref name="deviceName"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
<ref name='interface-options'/> <ref name="interface-options"/>
</interleave> </interleave>
</group> </group>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>user</value> <value>user</value>
</attribute> </attribute>
<interleave> <interleave>
<ref name='interface-options'/> <ref name="interface-options"/>
</interleave> </interleave>
</group> </group>
</choice> </choice>
</element> </element>
</define> </define>
<!-- <!--
The interface options possible are: The interface options possible are:
- the MAC address - the MAC address
- the IP address bound to the interface - the IP address bound to the interface
- the name of the script used to set up the binding - the name of the script used to set up the binding
- the target device used - the target device used
--> -->
<define name='interface-options'> <define name="interface-options">
<interleave> <interleave>
<optional> <optional>
<element name='target'> <element name="target">
<attribute name='dev'> <attribute name="dev">
<ref name='deviceName'/> <ref name="deviceName"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='mac'> <element name="mac">
<attribute name='address'> <attribute name="address">
<ref name='addrMAC'/> <ref name="addrMAC"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='ip'> <element name="ip">
<attribute name='address'> <attribute name="address">
<ref name='addrIP'/> <ref name="addrIP"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='script'> <element name="script">
<attribute name='path'> <attribute name="path">
<ref name='filePath'/> <ref name="filePath"/>
</attribute> </attribute>
<empty/> <empty/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='model'> <element name="model">
<attribute name='type' /> <attribute name="type"/>
<empty/> <empty/>
</element> </element>
</optional> </optional>
</interleave> </interleave>
</define> </define>
<!-- <!--
An emulator description is just a path to the binary used for the task An emulator description is just a path to the binary used for the task
--> -->
<define name='emulator'> <define name="emulator">
<element name='emulator'> <element name="emulator">
<ref name='absFilePath'/> <ref name="absFilePath"/>
</element> </element>
</define> </define>
<!-- <!--
A graphic description, currently in Xen only 2 types are supported: A graphic description, currently in Xen only 2 types are supported:
- sdl with optional display, xauth and fullscreen - sdl with optional display, xauth and fullscreen
- vnc with a required port and optional listen IP address, password - vnc with a required port and optional listen IP address, password
and keymap and keymap
--> -->
<define name='graphic'> <define name="graphic">
<element name='graphics'> <element name="graphics">
<choice> <choice>
<group> <group>
<attribute name='type'> <attribute name="type">
<value>sdl</value> <value>sdl</value>
</attribute> </attribute>
<optional> <optional>
<attribute name='display'> <attribute name="display">
<text/> <text/>
</attribute> </attribute>
</optional> </optional>
<optional>
<attribute name='xauth'>
<text/>
</attribute>
</optional>
<optional>
<attribute name='fullscreen'>
<choice>
<value>yes</value>
<value>no</value>
</choice>
</attribute>
</optional>
</group>
<group>
<attribute name='type'>
<value>vnc</value>
</attribute>
<optional>
<attribute name='port'>
<ref name='PortNumber'/>
</attribute>
</optional>
<optional>
<attribute name='autoport'>
<choice>
<value>yes</value>
<value>no</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name='listen'>
<ref name='addrIP'/>
</attribute>
</optional>
<optional>
<attribute name='passwd'>
<text/>
</attribute>
</optional>
<optional> <optional>
<attribute name='keymap'> <attribute name="xauth">
<text/> <text/>
</attribute> </attribute>
</optional> </optional>
</group> <optional>
<attribute name="fullscreen">
<choice>
<value>yes</value>
<value>no</value>
</choice>
</attribute>
</optional>
</group>
<group>
<attribute name="type">
<value>vnc</value>
</attribute>
<optional>
<attribute name="port">
<ref name="PortNumber"/>
</attribute>
</optional>
<optional>
<attribute name="autoport">
<choice>
<value>yes</value>
<value>no</value>
</choice>
</attribute>
</optional>
<optional>
<attribute name="listen">
<ref name="addrIP"/>
</attribute>
</optional>
<optional>
<attribute name="passwd">
<text/>
</attribute>
</optional>
<optional>
<attribute name="keymap">
<text/>
</attribute>
</optional>
</group>
</choice> </choice>
</element> </element>
</define> </define>
<!-- <!--
When a domain terminates multiple policies can be applied depending When a domain terminates multiple policies can be applied depending
on how it ended: on how it ended:
--> -->
<define name='termination'> <define name="termination">
<interleave> <interleave>
<optional> <optional>
<element name='on_reboot'> <element name="on_reboot">
<ref name='offOptions'/> <ref name="offOptions"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='on_poweroff'> <element name="on_poweroff">
<ref name='offOptions'/> <ref name="offOptions"/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='on_crash'> <element name="on_crash">
<ref name='offOptions'/> <ref name="offOptions"/>
</element> </element>
</optional> </optional>
</interleave> </interleave>
</define> </define>
<!-- <!--
Options when a domain terminates: Options when a domain terminates:
destroy: The domain is cleaned up destroy: The domain is cleaned up
...@@ -785,7 +745,7 @@ ...@@ -785,7 +745,7 @@
rename-restart: a variant of the previous one but where the old domain is rename-restart: a variant of the previous one but where the old domain is
renamed before being saved to allow a restart renamed before being saved to allow a restart
--> -->
<define name='offOptions'> <define name="offOptions">
<choice> <choice>
<value>destroy</value> <value>destroy</value>
<value>restart</value> <value>restart</value>
...@@ -793,13 +753,12 @@ ...@@ -793,13 +753,12 @@
<value>rename-restart</value> <value>rename-restart</value>
</choice> </choice>
</define> </define>
<!-- <!--
Specific setup for a qemu emulated character device. Note: this Specific setup for a qemu emulated character device. Note: this
definition doesn't fully specify the constraints on this node. definition doesn't fully specify the constraints on this node.
--> -->
<define name='qemucdev'> <define name="qemucdev">
<attribute name='type'> <attribute name="type">
<choice> <choice>
<value>dev</value> <value>dev</value>
<value>file</value> <value>file</value>
...@@ -813,69 +772,66 @@ ...@@ -813,69 +772,66 @@
<value>pty</value> <value>pty</value>
</choice> </choice>
</attribute> </attribute>
<interleave> <interleave>
<optional> <optional>
<oneOrMore> <oneOrMore>
<element name='source'> <element name="source">
<optional> <optional>
<attribute name='mode' /> <attribute name="mode"/>
</optional> </optional>
<optional> <optional>
<attribute name='path' /> <attribute name="path"/>
</optional> </optional>
<optional> <optional>
<attribute name='host' /> <attribute name="host"/>
</optional> </optional>
<optional> <optional>
<attribute name='service' /> <attribute name="service"/>
</optional> </optional>
<optional> <optional>
<attribute name='wiremode' /> <attribute name="wiremode"/>
</optional> </optional>
</element> </element>
</oneOrMore> </oneOrMore>
</optional> </optional>
<optional> <optional>
<element name='protocol'> <element name="protocol">
<optional> <optional>
<attribute name='type' /> <attribute name="type"/>
</optional> </optional>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name='target'> <element name="target">
<optional> <optional>
<attribute name='port' /> <attribute name="port"/>
</optional> </optional>
</element> </element>
</optional> </optional>
</interleave> </interleave>
</define> </define>
<!-- <!--
The description for a console The description for a console
just a tty device just a tty device
--> -->
<define name='console'> <define name="console">
<element name='console'> <element name="console">
<choice> <choice>
<group> <group>
<optional> <optional>
<attribute name='tty'> <attribute name="tty">
<ref name='devicePath'/> <ref name="devicePath"/>
</attribute> </attribute>
</optional> </optional>
<empty/> <empty/>
</group> </group>
<ref name='qemucdev' /> <ref name="qemucdev"/>
</choice> </choice>
</element> </element>
</define> </define>
<define name="sound">
<define name='sound'> <element name="sound">
<element name='sound'> <attribute name="model">
<attribute name='model'>
<choice> <choice>
<value>sb16</value> <value>sb16</value>
<value>es1370</value> <value>es1370</value>
...@@ -885,29 +841,26 @@ ...@@ -885,29 +841,26 @@
</attribute> </attribute>
</element> </element>
</define> </define>
<define name="parallel">
<define name='parallel'> <element name="parallel">
<element name='parallel'> <ref name="qemucdev"/>
<ref name='qemucdev' />
</element> </element>
</define> </define>
<define name="serial">
<define name='serial'> <element name="serial">
<element name='serial'> <ref name="qemucdev"/>
<ref name='qemucdev' />
</element> </element>
</define> </define>
<define name="input">
<define name='input'> <element name="input">
<element name='input'> <attribute name="type">
<attribute name='type'>
<choice> <choice>
<value>tablet</value> <value>tablet</value>
<value>mouse</value> <value>mouse</value>
</choice> </choice>
</attribute> </attribute>
<optional> <optional>
<attribute name='bus'> <attribute name="bus">
<choice> <choice>
<value>ps2</value> <value>ps2</value>
<value>usb</value> <value>usb</value>
...@@ -917,54 +870,51 @@ ...@@ -917,54 +870,51 @@
</optional> </optional>
</element> </element>
</define> </define>
<define name="hostdev">
<define name='hostdev'> <element name="hostdev">
<element name='hostdev'>
<optional> <optional>
<attribute name='mode'> <attribute name="mode">
<choice>
<value>subsystem</value>
<value>capabilities</value>
</choice>
</attribute>
<attribute name='type'>
<choice> <choice>
<value>usb</value> <value>subsystem</value>
<value>pci</value> <value>capabilities</value>
</choice>
</attribute>
<attribute name="type">
<choice>
<value>usb</value>
<value>pci</value>
</choice>
</attribute>
<attribute name="managed">
<choice>
<value>yes</value>
<value>no</value>
</choice> </choice>
</attribute> </attribute>
<attribute name='managed'>
<choice>
<value>yes</value>
<value>no</value>
</choice>
</attribute>
</optional> </optional>
<group> <group>
<element name='source'> <element name="source">
<choice> <choice>
<ref name="usbproduct"/> <ref name="usbproduct"/>
<ref name="usbaddress"/> <ref name="usbaddress"/>
<ref name="pciaddress"/> <ref name="pciaddress"/>
</choice> </choice>
</element> </element>
</group> </group>
</element> </element>
</define> </define>
<define name="usbproduct"> <define name="usbproduct">
<element name="vendor"> <element name="vendor">
<attribute name="id"> <attribute name="id">
<ref name="usbId"/> <ref name="usbId"/>
</attribute> </attribute>
</element> </element>
<element name="product"> <element name="product">
<attribute name="id"> <attribute name="id">
<ref name="usbId"/> <ref name="usbId"/>
</attribute> </attribute>
</element> </element>
</define> </define>
<define name="usbaddress"> <define name="usbaddress">
<element name="address"> <element name="address">
<attribute name="bus"> <attribute name="bus">
...@@ -975,7 +925,6 @@ ...@@ -975,7 +925,6 @@
</attribute> </attribute>
</element> </element>
</define> </define>
<define name="pciaddress"> <define name="pciaddress">
<element name="address"> <element name="address">
<optional> <optional>
...@@ -997,57 +946,55 @@ ...@@ -997,57 +946,55 @@
<!-- <!--
Devices attached to a domain. Devices attached to a domain.
--> -->
<define name='devices'> <define name="devices">
<element name='devices'> <element name="devices">
<interleave> <interleave>
<optional> <optional>
<ref name='emulator'/> <ref name="emulator"/>
</optional> </optional>
<zeroOrMore> <zeroOrMore>
<choice> <choice>
<ref name='graphic'/> <ref name="disk"/>
<ref name='disk'/> <ref name="filesystem"/>
<ref name='filesystem'/> <ref name="interface"/>
<ref name='interface'/> <ref name="input"/>
<ref name='console'/> <ref name="sound"/>
<ref name='sound'/> <ref name="hostdev"/>
<ref name='parallel'/> <ref name="graphic"/>
<ref name='serial'/> <ref name="console"/>
<ref name='input'/> <ref name="parallel"/>
<ref name='hostdev'/> <ref name="serial"/>
</choice> </choice>
</zeroOrMore> </zeroOrMore>
</interleave> </interleave>
</element> </element>
</define> </define>
<!-- <!--
A set of optional features: PAE, APIC and ACPI support A set of optional features: PAE, APIC and ACPI support
--> -->
<define name='features'> <define name="features">
<optional> <optional>
<element name="features"> <element name="features">
<interleave> <interleave>
<optional> <optional>
<element name="pae"> <element name="pae">
<empty/> <empty/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="apic"> <element name="apic">
<empty/> <empty/>
</element> </element>
</optional> </optional>
<optional> <optional>
<element name="acpi"> <element name="acpi">
<empty/> <empty/>
</element> </element>
</optional> </optional>
</interleave> </interleave>
</element> </element>
</optional> </optional>
</define> </define>
<!-- <!--
Type library Type library
...@@ -1056,110 +1003,110 @@ ...@@ -1056,110 +1003,110 @@
UUID currently allows only the 32 characters strict syntax UUID currently allows only the 32 characters strict syntax
memoryKB request at least 4Mbytes though Xen will grow bigger if too low memoryKB request at least 4Mbytes though Xen will grow bigger if too low
--> -->
<define name='unsignedInt'> <define name="unsignedInt">
<data type='unsignedInt'> <data type="unsignedInt">
<param name="pattern">[0-9]+</param> <param name="pattern">[0-9]+</param>
</data> </data>
</define> </define>
<define name='countCPU'> <define name="countCPU">
<data type='unsignedShort'> <data type="unsignedShort">
<param name="pattern">[0-9]+</param> <param name="pattern">[0-9]+</param>
<param name="minInclusive">1</param> <param name="minInclusive">1</param>
</data> </data>
</define> </define>
<define name='PortNumber'> <define name="PortNumber">
<data type='short'> <data type="short">
<param name="minInclusive">-1</param> <param name="minInclusive">-1</param>
</data> </data>
</define> </define>
<define name='memoryKB'> <define name="memoryKB">
<data type='unsignedInt'> <data type="unsignedInt">
<param name="pattern">[0-9]+</param> <param name="pattern">[0-9]+</param>
<param name="minInclusive">4000</param> <param name="minInclusive">4000</param>
</data> </data>
</define> </define>
<define name='domainName'> <define name="domainName">
<data type='string'> <data type="string">
<param name="pattern">[A-Za-z0-9_\.\+\-&amp;:/]+</param> <param name="pattern">[A-Za-z0-9_\.\+\-&amp;:/]+</param>
</data> </data>
</define> </define>
<define name='genericName'> <define name="genericName">
<data type='string'> <data type="string">
<param name="pattern">[a-zA-Z0-9_\+\-]+</param> <param name="pattern">[a-zA-Z0-9_\+\-]+</param>
</data> </data>
</define> </define>
<define name='UUID'> <define name="UUID">
<choice> <choice>
<data type='string'> <data type="string">
<param name="pattern">[a-fA-F0-9]{32}</param> <param name="pattern">[a-fA-F0-9]{32}</param>
</data> </data>
<data type='string'> <data type="string">
<param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param> <param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param>
</data> </data>
</choice> </choice>
</define> </define>
<define name='filePath'> <define name="filePath">
<data type='string'> <data type="string">
<param name="pattern">[a-zA-Z0-9_\.\+\-&amp;/%]+</param> <param name="pattern">[a-zA-Z0-9_\.\+\-&amp;/%]+</param>
</data> </data>
</define> </define>
<define name='absFilePath'> <define name="absFilePath">
<data type='string'> <data type="string">
<param name="pattern">/[a-zA-Z0-9_\.\+\-&amp;/%]+</param> <param name="pattern">/[a-zA-Z0-9_\.\+\-&amp;/%]+</param>
</data> </data>
</define> </define>
<define name='absDirPath'> <define name="absDirPath">
<data type='string'> <data type="string">
<param name="pattern">/[a-zA-Z0-9_\.\+\-&amp;/%]*</param> <param name="pattern">/[a-zA-Z0-9_\.\+\-&amp;/%]*</param>
</data> </data>
</define> </define>
<define name='devicePath'> <define name="devicePath">
<data type='string'> <data type="string">
<param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param> <param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param>
</data> </data>
</define> </define>
<define name='deviceName'> <define name="deviceName">
<data type='string'> <data type="string">
<param name="pattern">[a-zA-Z0-9_\.\-:/]+</param> <param name="pattern">[a-zA-Z0-9_\.\-:/]+</param>
</data> </data>
</define> </define>
<define name='addrMAC'> <define name="addrMAC">
<data type='string'> <data type="string">
<param name="pattern">([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}</param> <param name="pattern">([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}</param>
</data> </data>
</define> </define>
<define name='addrIP'> <define name="addrIP">
<data type='string'> <data type="string">
<param name="pattern">([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9]</param> <param name="pattern">([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9]</param>
</data> </data>
</define> </define>
<define name='usbId'> <define name="usbId">
<data type='string'> <data type="string">
<param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param> <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
</data> </data>
</define> </define>
<define name='usbAddr'> <define name="usbAddr">
<data type='string'> <data type="string">
<param name="pattern">(0x)?[0-9a-fA-F]{1,3}</param> <param name="pattern">(0x)?[0-9a-fA-F]{1,3}</param>
</data> </data>
</define> </define>
<define name='pciDomain'> <define name="pciDomain">
<data type='string'> <data type="string">
<param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param> <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
</data> </data>
</define> </define>
<define name='pciBus'> <define name="pciBus">
<data type='string'> <data type="string">
<param name="pattern">(0x)?[0-9a-fA-F]{1,2}</param> <param name="pattern">(0x)?[0-9a-fA-F]{1,2}</param>
</data> </data>
</define> </define>
<define name='pciSlot'> <define name="pciSlot">
<data type='string'> <data type="string">
<param name="pattern">(0x)?[0-1]?[0-9a-fA-F]</param> <param name="pattern">(0x)?[0-1]?[0-9a-fA-F]</param>
</data> </data>
</define> </define>
<define name='pciFunc'> <define name="pciFunc">
<data type='string'> <data type="string">
<param name="pattern">(0x)?[0-7]</param> <param name="pattern">(0x)?[0-7]</param>
</data> </data>
</define> </define>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册