Blame test/relaxng/libvirt.rng

Packit Service a31ea6
Packit Service a31ea6
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
Packit Service a31ea6
  
Packit Service a31ea6
  <start>
Packit Service a31ea6
    <ref name="domain"/>
Packit Service a31ea6
  </start>
Packit Service a31ea6
Packit Service a31ea6
  
Packit Service a31ea6
      We handle only document defining a domain
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="domain">
Packit Service a31ea6
    <element name="domain">
Packit Service a31ea6
      <ref name="hvs"/>
Packit Service a31ea6
      <ref name="ids"/>
Packit Service a31ea6
      <interleave>
Packit Service a31ea6
        <ref name="os"/>
Packit Service a31ea6
        <ref name="clock"/>
Packit Service a31ea6
        <ref name="resources"/>
Packit Service a31ea6
        <ref name="features"/>
Packit Service a31ea6
        <ref name="termination"/>
Packit Service a31ea6
        <optional>
Packit Service a31ea6
          <ref name="devices"/>
Packit Service a31ea6
        </optional>
Packit Service a31ea6
        <optional>
Packit Service a31ea6
          <ref name="seclabel"/>
Packit Service a31ea6
        </optional>
Packit Service a31ea6
      </interleave>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="seclabel">
Packit Service a31ea6
    <element name="seclabel">
Packit Service a31ea6
      <attribute name="model">
Packit Service a31ea6
        <text/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <attribute name="type">
Packit Service a31ea6
        <choice>
Packit Service a31ea6
          <value>dynamic</value>
Packit Service a31ea6
          <value>static</value>
Packit Service a31ea6
        </choice>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <element name="label">
Packit Service a31ea6
        <text/>
Packit Service a31ea6
      </element>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="hvs">
Packit Service a31ea6
    <attribute name="type">
Packit Service a31ea6
      <choice>
Packit Service a31ea6
        <value>xen</value>
Packit Service a31ea6
        <value>kvm</value>
Packit Service a31ea6
        <value>kqemu</value>
Packit Service a31ea6
        <value>qemu</value>
Packit Service a31ea6
        <value>lxc</value>
Packit Service a31ea6
        <value>openvz</value>
Packit Service a31ea6
        <value>test</value>
Packit Service a31ea6
      </choice>
Packit Service a31ea6
    </attribute>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="os">
Packit Service a31ea6
    <choice>
Packit Service a31ea6
      <ref name="osxen"/>
Packit Service a31ea6
      <ref name="oshvm"/>
Packit Service a31ea6
      <ref name="osexe"/>
Packit Service a31ea6
    </choice>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="osxen">
Packit Service a31ea6
    <choice>
Packit Service a31ea6
      <group>
Packit Service a31ea6
        <optional>
Packit Service a31ea6
          <ref name="bootloader"/>
Packit Service a31ea6
        </optional>
Packit Service a31ea6
        <element name="os">
Packit Service a31ea6
          <ref name="ostypexen"/>
Packit Service a31ea6
          <ref name="osbootkernel"/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </group>
Packit Service a31ea6
      <group>
Packit Service a31ea6
        <ref name="bootloader"/>
Packit Service a31ea6
        <optional>
Packit Service a31ea6
          <element name="os">
Packit Service a31ea6
            <ref name="ostypexen"/>
Packit Service a31ea6
            <optional>
Packit Service a31ea6
              <ref name="osbootkernel"/>
Packit Service a31ea6
            </optional>
Packit Service a31ea6
          </element>
Packit Service a31ea6
        </optional>
Packit Service a31ea6
      </group>
Packit Service a31ea6
    </choice>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="oshvm">
Packit Service a31ea6
    <element name="os">
Packit Service a31ea6
      <ref name="ostypehvm"/>
Packit Service a31ea6
      <interleave>
Packit Service a31ea6
        <optional>
Packit Service a31ea6
          <element name="loader">
Packit Service a31ea6
            <ref name="absFilePath"/>
Packit Service a31ea6
          </element>
Packit Service a31ea6
        </optional>
Packit Service a31ea6
        <choice>
Packit Service a31ea6
          <ref name="osbootkernel"/>
Packit Service a31ea6
          <ref name="osbootdev"/>
Packit Service a31ea6
        </choice>
Packit Service a31ea6
      </interleave>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="ostypexen">
Packit Service a31ea6
    <element name="type">
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <attribute name="arch">
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <value>i686</value>
Packit Service a31ea6
            <value>x86_64</value>
Packit Service a31ea6
            <value>ia64</value>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </attribute>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <attribute name="machine">
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <value>xenpv</value>
Packit Service a31ea6
            <value>xenner</value>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </attribute>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <choice>
Packit Service a31ea6
        <value>xen</value>
Packit Service a31ea6
        <value>linux</value>
Packit Service a31ea6
      </choice>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="ostypehvm">
Packit Service a31ea6
    <element name="type">
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <choice>
Packit Service a31ea6
          <ref name="hvmx86"/>
Packit Service a31ea6
          <ref name="hvmmips"/>
Packit Service a31ea6
          <ref name="hvmsparc"/>
Packit Service a31ea6
          <ref name="hvmppc"/>
Packit Service a31ea6
        </choice>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <value>hvm</value>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="hvmx86">
Packit Service a31ea6
    <group>
Packit Service a31ea6
      <attribute name="arch">
Packit Service a31ea6
        <choice>
Packit Service a31ea6
          <value>i686</value>
Packit Service a31ea6
          <value>x86_64</value>
Packit Service a31ea6
        </choice>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <attribute name="machine">
Packit Service a31ea6
        <choice>
Packit Service a31ea6
          <value>xenfv</value>
Packit Service a31ea6
          <value>pc</value>
Packit Service a31ea6
          <value>isapc</value>
Packit Service a31ea6
        </choice>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </group>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="hvmmips">
Packit Service a31ea6
    <group>
Packit Service a31ea6
      <attribute name="arch">
Packit Service a31ea6
        <value>mips</value>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <attribute name="machine">
Packit Service a31ea6
        <value>mips</value>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </group>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="hvmsparc">
Packit Service a31ea6
    <group>
Packit Service a31ea6
      <attribute name="arch">
Packit Service a31ea6
        <value>sparc</value>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <attribute name="machine">
Packit Service a31ea6
        <value>sun4m</value>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </group>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="hvmppc">
Packit Service a31ea6
    <group>
Packit Service a31ea6
      <attribute name="arch">
Packit Service a31ea6
        <value>ppc</value>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <attribute name="machine">
Packit Service a31ea6
        <choice>
Packit Service a31ea6
          <value>g3beige</value>
Packit Service a31ea6
          <value>mac99</value>
Packit Service a31ea6
          <value>prep</value>
Packit Service a31ea6
        </choice>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </group>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="osexe">
Packit Service a31ea6
    <element name="os">
Packit Service a31ea6
      <element name="type">
Packit Service a31ea6
        <value>exe</value>
Packit Service a31ea6
      </element>
Packit Service a31ea6
      <interleave>
Packit Service a31ea6
        <optional>
Packit Service a31ea6
          <element name="init">
Packit Service a31ea6
            <ref name="absFilePath"/>
Packit Service a31ea6
          </element>
Packit Service a31ea6
        </optional>
Packit Service a31ea6
      </interleave>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      The Identifiers can be:
Packit Service a31ea6
      - an optional id attribute with a number on the domain element
Packit Service a31ea6
      - a mandatory name
Packit Service a31ea6
      - an optional uuid
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="ids">
Packit Service a31ea6
    <optional>
Packit Service a31ea6
      <attribute name="id">
Packit Service a31ea6
        <ref name="unsignedInt"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </optional>
Packit Service a31ea6
    <interleave>
Packit Service a31ea6
      <element name="name">
Packit Service a31ea6
        <ref name="domainName"/>
Packit Service a31ea6
      </element>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="uuid">
Packit Service a31ea6
          <ref name="UUID"/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
    </interleave>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      Resources usage defines the amount of memory (maximum and possibly
Packit Service a31ea6
      current usage) and number of virtual CPUs used by that domain.
Packit Service a31ea6
      We can't check here the rule that currentMemory <= memory
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="resources">
Packit Service a31ea6
    <interleave>
Packit Service a31ea6
      <element name="memory">
Packit Service a31ea6
        <ref name="memoryKB"/>
Packit Service a31ea6
      </element>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="currentMemory">
Packit Service a31ea6
          <ref name="memoryKB"/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
	<element name="memoryBacking">
Packit Service a31ea6
	  <optional>
Packit Service a31ea6
	    <element name="hugepages">
Packit Service a31ea6
	      <empty/>
Packit Service a31ea6
	    </element>
Packit Service a31ea6
	  </optional>
Packit Service a31ea6
	</element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="vcpu">
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="cpuset"/>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <ref name="countCPU"/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
    </interleave>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="clock">
Packit Service a31ea6
    <optional>
Packit Service a31ea6
      <element name="clock">
Packit Service a31ea6
        <attribute name="offset">
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <value>localtime</value>
Packit Service a31ea6
            <value>utc</value>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </attribute>
Packit Service a31ea6
        <empty/>
Packit Service a31ea6
      </element>
Packit Service a31ea6
    </optional>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      A bootloader may be used to extract the OS information instead of
Packit Service a31ea6
      defining the OS parameter in the instance. It points just to the
Packit Service a31ea6
      binary or script used to extract the data from the first disk device.
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="bootloader">
Packit Service a31ea6
    <interleave>
Packit Service a31ea6
      <element name="bootloader">
Packit Service a31ea6
        <choice>
Packit Service a31ea6
          <ref name="absFilePath"/>
Packit Service a31ea6
          <empty/>
Packit Service a31ea6
        </choice>
Packit Service a31ea6
      </element>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="bootloader_args">
Packit Service a31ea6
          <text/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
    </interleave>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="osbootkernel">
Packit Service a31ea6
    <interleave>
Packit Service a31ea6
      <element name="kernel">
Packit Service a31ea6
        <ref name="absFilePath"/>
Packit Service a31ea6
      </element>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="initrd">
Packit Service a31ea6
          <ref name="absFilePath"/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="root">
Packit Service a31ea6
          <ref name="devicePath"/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="cmdline">
Packit Service a31ea6
          <text/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
    </interleave>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="osbootdev">
Packit Service a31ea6
    <element name="boot">
Packit Service a31ea6
      <attribute name="dev">
Packit Service a31ea6
        <choice>
Packit Service a31ea6
          <value>hd</value>
Packit Service a31ea6
          <value>fd</value>
Packit Service a31ea6
          <value>cdrom</value>
Packit Service a31ea6
          <value>network</value>
Packit Service a31ea6
        </choice>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <empty/>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="diskspec">
Packit Service a31ea6
    <optional>
Packit Service a31ea6
      <ref name="driver"/>
Packit Service a31ea6
    </optional>
Packit Service a31ea6
    <ref name="target"/>
Packit Service a31ea6
    <optional>
Packit Service a31ea6
      <element name="readonly">
Packit Service a31ea6
        <empty/>
Packit Service a31ea6
      </element>
Packit Service a31ea6
    </optional>
Packit Service a31ea6
    <optional>
Packit Service a31ea6
      <element name="shareable">
Packit Service a31ea6
        <empty/>
Packit Service a31ea6
      </element>
Packit Service a31ea6
    </optional>
Packit Service a31ea6
    <optional>
Packit Service a31ea6
      <element name="serial">
Packit Service a31ea6
        <ref name="diskSerial"/>
Packit Service a31ea6
      </element>
Packit Service a31ea6
    </optional>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      A disk description can be either of type file or block
Packit Service a31ea6
      The name of the attribute on the source element depends on the type
Packit Service a31ea6
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="disk">
Packit Service a31ea6
    <element name="disk">
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <attribute name="device">
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <value>floppy</value>
Packit Service a31ea6
            <value>disk</value>
Packit Service a31ea6
            <value>cdrom</value>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </attribute>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <choice>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>file</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <optional>
Packit Service a31ea6
              <element name="source">
Packit Service a31ea6
                <attribute name="file">
Packit Service a31ea6
                  <ref name="absFilePath"/>
Packit Service a31ea6
                </attribute>
Packit Service a31ea6
                <empty/>
Packit Service a31ea6
              </element>
Packit Service a31ea6
            </optional>
Packit Service a31ea6
            <ref name="diskspec"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>block</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <optional>
Packit Service a31ea6
              <element name="source">
Packit Service a31ea6
                <attribute name="dev">
Packit Service a31ea6
                  <ref name="deviceName"/>
Packit Service a31ea6
                </attribute>
Packit Service a31ea6
                <empty/>
Packit Service a31ea6
              </element>
Packit Service a31ea6
            </optional>
Packit Service a31ea6
            <ref name="diskspec"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <ref name="diskspec"/>
Packit Service a31ea6
      </choice>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="target">
Packit Service a31ea6
    <element name="target">
Packit Service a31ea6
      <attribute name="dev">
Packit Service a31ea6
        <ref name="deviceName"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <attribute name="bus">
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <value>ide</value>
Packit Service a31ea6
            <value>fdc</value>
Packit Service a31ea6
            <value>scsi</value>
Packit Service a31ea6
            <value>virtio</value>
Packit Service a31ea6
            <value>xen</value>
Packit Service a31ea6
            <value>usb</value>
Packit Service a31ea6
            <value>uml</value>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </attribute>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      Disk may use a special driver for access. Currently this is
Packit Service a31ea6
      only defined for Xen for tap/aio and file, but will certainly be
Packit Service a31ea6
      extended in the future, and libvirt doesn't look for specific values.
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="driver">
Packit Service a31ea6
    <element name="driver">
Packit Service a31ea6
      <choice>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <ref name="driverFormat"/>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <ref name="driverCache"/>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <ref name="driverFormat"/>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <ref name="driverCache"/>
Packit Service a31ea6
        </group>
Packit Service a31ea6
      </choice>
Packit Service a31ea6
      <empty/>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="driverFormat">
Packit Service a31ea6
    <attribute name="name">
Packit Service a31ea6
      <ref name="genericName"/>
Packit Service a31ea6
    </attribute>
Packit Service a31ea6
    <optional>
Packit Service a31ea6
      <attribute name="type">
Packit Service a31ea6
        <ref name="genericName"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </optional>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="driverCache">
Packit Service a31ea6
    <attribute name="cache">
Packit Service a31ea6
      <choice>
Packit Service a31ea6
        <value>none</value>
Packit Service a31ea6
        <value>writeback</value>
Packit Service a31ea6
        <value>writethrough</value>
Packit Service a31ea6
      </choice>
Packit Service a31ea6
    </attribute>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="filesystem">
Packit Service a31ea6
    <element name="filesystem">
Packit Service a31ea6
      <choice>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>file</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <element name="source">
Packit Service a31ea6
              <attribute name="file">
Packit Service a31ea6
                <ref name="absFilePath"/>
Packit Service a31ea6
              </attribute>
Packit Service a31ea6
              <empty/>
Packit Service a31ea6
            </element>
Packit Service a31ea6
            <ref name="filesystemtgt"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>block</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <element name="source">
Packit Service a31ea6
              <attribute name="dev">
Packit Service a31ea6
                <ref name="deviceName"/>
Packit Service a31ea6
              </attribute>
Packit Service a31ea6
              <empty/>
Packit Service a31ea6
            </element>
Packit Service a31ea6
            <ref name="filesystemtgt"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>mount</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <element name="source">
Packit Service a31ea6
              <attribute name="dir">
Packit Service a31ea6
                <ref name="absFilePath"/>
Packit Service a31ea6
              </attribute>
Packit Service a31ea6
              <empty/>
Packit Service a31ea6
            </element>
Packit Service a31ea6
            <ref name="filesystemtgt"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>template</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <element name="source">
Packit Service a31ea6
              <attribute name="name">
Packit Service a31ea6
                <ref name="genericName"/>
Packit Service a31ea6
              </attribute>
Packit Service a31ea6
              <empty/>
Packit Service a31ea6
            </element>
Packit Service a31ea6
            <ref name="filesystemtgt"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
      </choice>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="filesystemtgt">
Packit Service a31ea6
    <element name="target">
Packit Service a31ea6
      <attribute name="dir">
Packit Service a31ea6
        <ref name="absDirPath"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <empty/>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      An interface description can either be of type bridge in which case
Packit Service a31ea6
      it will use a bridging source, or of type ethernet which uses a device
Packit Service a31ea6
      source and a device target instead. They both share a set of interface
Packit Service a31ea6
      options. FIXME
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="interface">
Packit Service a31ea6
    <element name="interface">
Packit Service a31ea6
      <choice>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>bridge</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <optional>
Packit Service a31ea6
              <element name="source">
Packit Service a31ea6
                <attribute name="bridge">
Packit Service a31ea6
                  <ref name="deviceName"/>
Packit Service a31ea6
                </attribute>
Packit Service a31ea6
                <empty/>
Packit Service a31ea6
              </element>
Packit Service a31ea6
            </optional>
Packit Service a31ea6
            <ref name="interface-options"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>ethernet</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <optional>
Packit Service a31ea6
              <element name="source">
Packit Service a31ea6
                <attribute name="dev">
Packit Service a31ea6
                  <ref name="deviceName"/>
Packit Service a31ea6
                </attribute>
Packit Service a31ea6
                <empty/>
Packit Service a31ea6
              </element>
Packit Service a31ea6
            </optional>
Packit Service a31ea6
            <ref name="interface-options"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>network</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <element name="source">
Packit Service a31ea6
              <attribute name="network">
Packit Service a31ea6
                <ref name="deviceName"/>
Packit Service a31ea6
              </attribute>
Packit Service a31ea6
              <empty/>
Packit Service a31ea6
            </element>
Packit Service a31ea6
            <ref name="interface-options"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>user</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <ref name="interface-options"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>internal</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <interleave>
Packit Service a31ea6
            <element name="source">
Packit Service a31ea6
              <attribute name="name">
Packit Service a31ea6
                <ref name="deviceName"/>
Packit Service a31ea6
              </attribute>
Packit Service a31ea6
              <empty/>
Packit Service a31ea6
            </element>
Packit Service a31ea6
            <ref name="interface-options"/>
Packit Service a31ea6
          </interleave>
Packit Service a31ea6
        </group>
Packit Service a31ea6
      </choice>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      The interface options possible are:
Packit Service a31ea6
        - the MAC address
Packit Service a31ea6
        - the IP address bound to the interface
Packit Service a31ea6
        - the name of the script used to set up the binding
Packit Service a31ea6
        - the target device used
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="interface-options">
Packit Service a31ea6
    <interleave>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="target">
Packit Service a31ea6
          <attribute name="dev">
Packit Service a31ea6
            <ref name="deviceName"/>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <empty/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="mac">
Packit Service a31ea6
          <attribute name="address">
Packit Service a31ea6
            <ref name="addrMAC"/>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <empty/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="ip">
Packit Service a31ea6
          <attribute name="address">
Packit Service a31ea6
            <ref name="addrIP"/>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <empty/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="script">
Packit Service a31ea6
          <attribute name="path">
Packit Service a31ea6
            <ref name="filePath"/>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <empty/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="model">
Packit Service a31ea6
          <attribute name="type"/>
Packit Service a31ea6
          <empty/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
    </interleave>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      An emulator description is just a path to the binary used for the task
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="emulator">
Packit Service a31ea6
    <element name="emulator">
Packit Service a31ea6
      <ref name="absFilePath"/>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      A graphic description, currently in Xen only 2 types are supported:
Packit Service a31ea6
        - sdl with optional display, xauth and fullscreen
Packit Service a31ea6
        - vnc with a required port and optional listen IP address, password
Packit Service a31ea6
          and keymap
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="graphic">
Packit Service a31ea6
    <element name="graphics">
Packit Service a31ea6
      <choice>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>sdl</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="display">
Packit Service a31ea6
              <text/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="xauth">
Packit Service a31ea6
              <text/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="fullscreen">
Packit Service a31ea6
              <choice>
Packit Service a31ea6
                <value>yes</value>
Packit Service a31ea6
                <value>no</value>
Packit Service a31ea6
              </choice>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>vnc</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="port">
Packit Service a31ea6
              <ref name="PortNumber"/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="autoport">
Packit Service a31ea6
              <choice>
Packit Service a31ea6
                <value>yes</value>
Packit Service a31ea6
                <value>no</value>
Packit Service a31ea6
              </choice>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="listen">
Packit Service a31ea6
              <ref name="addrIP"/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="passwd">
Packit Service a31ea6
              <text/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="keymap">
Packit Service a31ea6
              <text/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>rdp</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="port">
Packit Service a31ea6
              <ref name="PortNumber"/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="autoport">
Packit Service a31ea6
              <choice>
Packit Service a31ea6
                <value>yes</value>
Packit Service a31ea6
                <value>no</value>
Packit Service a31ea6
              </choice>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="replaceUser">
Packit Service a31ea6
              <choice>
Packit Service a31ea6
                <value>yes</value>
Packit Service a31ea6
                <value>no</value>
Packit Service a31ea6
              </choice>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="multiUser">
Packit Service a31ea6
              <choice>
Packit Service a31ea6
                <value>yes</value>
Packit Service a31ea6
                <value>no</value>
Packit Service a31ea6
              </choice>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="listen">
Packit Service a31ea6
              <ref name="addrIP"/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <value>desktop</value>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="display">
Packit Service a31ea6
              <text/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="fullscreen">
Packit Service a31ea6
              <choice>
Packit Service a31ea6
                <value>yes</value>
Packit Service a31ea6
                <value>no</value>
Packit Service a31ea6
              </choice>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
        </group>
Packit Service a31ea6
      </choice>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
     A graphic description, currently in Xen only 2 types are supported:
Packit Service a31ea6
       - sdl with optional display, xauth and fullscreen
Packit Service a31ea6
       - vnc with a required port and optional listen IP address, password
Packit Service a31ea6
         and keymap
Packit Service a31ea6
   -->
Packit Service a31ea6
  <define name="video">
Packit Service a31ea6
    <element name="video">
Packit Service a31ea6
      <optional>
Packit Service a31ea6
	<element name="model">
Packit Service a31ea6
          <attribute name="type">
Packit Service a31ea6
            <choice>
Packit Service a31ea6
              <value>vga</value>
Packit Service a31ea6
              <value>cirrus</value>
Packit Service a31ea6
              <value>vmvga</value>
Packit Service a31ea6
              <value>xen</value>
Packit Service a31ea6
              <value>vbox</value>
Packit Service a31ea6
            </choice>
Packit Service a31ea6
          </attribute>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="vram">
Packit Service a31ea6
              <ref name="unsignedInt"/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="heads">
Packit Service a31ea6
              <ref name="unsignedInt"/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <element name="acceleration">
Packit Service a31ea6
              <optional>
Packit Service a31ea6
                <attribute name="accel3d">
Packit Service a31ea6
                  <choice>
Packit Service a31ea6
                    <value>yes</value>
Packit Service a31ea6
                    <value>no</value>
Packit Service a31ea6
                  </choice>
Packit Service a31ea6
                </attribute>
Packit Service a31ea6
              </optional>
Packit Service a31ea6
              <optional>
Packit Service a31ea6
                <attribute name="accel2d">
Packit Service a31ea6
                  <choice>
Packit Service a31ea6
                    <value>yes</value>
Packit Service a31ea6
                    <value>no</value>
Packit Service a31ea6
                  </choice>
Packit Service a31ea6
                </attribute>
Packit Service a31ea6
              </optional>
Packit Service a31ea6
            </element>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
	</element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      When a domain terminates multiple policies can be applied depending
Packit Service a31ea6
      on how it ended:
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="termination">
Packit Service a31ea6
    <interleave>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="on_reboot">
Packit Service a31ea6
          <ref name="offOptions"/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="on_poweroff">
Packit Service a31ea6
          <ref name="offOptions"/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="on_crash">
Packit Service a31ea6
          <ref name="offOptions"/>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
    </interleave>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      Options when a domain terminates:
Packit Service a31ea6
      destroy: The domain is cleaned up
Packit Service a31ea6
      restart: A new domain is started in place of the old one
Packit Service a31ea6
      preserve: The domain will remain in memory until it is destroyed manually
Packit Service a31ea6
      rename-restart: a variant of the previous one but where the old domain is
Packit Service a31ea6
                      renamed before being saved to allow a restart
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="offOptions">
Packit Service a31ea6
    <choice>
Packit Service a31ea6
      <value>destroy</value>
Packit Service a31ea6
      <value>restart</value>
Packit Service a31ea6
      <value>preserve</value>
Packit Service a31ea6
      <value>rename-restart</value>
Packit Service a31ea6
    </choice>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      Specific setup for a qemu emulated character device.  Note: this
Packit Service a31ea6
      definition doesn't fully specify the constraints on this node.
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="qemucdev">
Packit Service a31ea6
    <attribute name="type">
Packit Service a31ea6
      <choice>
Packit Service a31ea6
        <value>dev</value>
Packit Service a31ea6
        <value>file</value>
Packit Service a31ea6
        <value>pipe</value>
Packit Service a31ea6
        <value>unix</value>
Packit Service a31ea6
        <value>tcp</value>
Packit Service a31ea6
        <value>udp</value>
Packit Service a31ea6
        <value>null</value>
Packit Service a31ea6
        <value>stdio</value>
Packit Service a31ea6
        <value>vc</value>
Packit Service a31ea6
        <value>pty</value>
Packit Service a31ea6
      </choice>
Packit Service a31ea6
    </attribute>
Packit Service a31ea6
    <interleave>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <oneOrMore>
Packit Service a31ea6
          <element name="source">
Packit Service a31ea6
            <optional>
Packit Service a31ea6
              <attribute name="mode"/>
Packit Service a31ea6
            </optional>
Packit Service a31ea6
            <optional>
Packit Service a31ea6
              <attribute name="path"/>
Packit Service a31ea6
            </optional>
Packit Service a31ea6
            <optional>
Packit Service a31ea6
              <attribute name="host"/>
Packit Service a31ea6
            </optional>
Packit Service a31ea6
            <optional>
Packit Service a31ea6
              <attribute name="service"/>
Packit Service a31ea6
            </optional>
Packit Service a31ea6
            <optional>
Packit Service a31ea6
              <attribute name="wiremode"/>
Packit Service a31ea6
            </optional>
Packit Service a31ea6
          </element>
Packit Service a31ea6
        </oneOrMore>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="protocol">
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="type"/>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <element name="target">
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="port"/>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
    </interleave>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      The description for a console
Packit Service a31ea6
      just a tty device
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="console">
Packit Service a31ea6
    <element name="console">
Packit Service a31ea6
      <choice>
Packit Service a31ea6
        <group>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <attribute name="tty">
Packit Service a31ea6
              <ref name="devicePath"/>
Packit Service a31ea6
            </attribute>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <empty/>
Packit Service a31ea6
        </group>
Packit Service a31ea6
        <ref name="qemucdev"/>
Packit Service a31ea6
      </choice>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="sound">
Packit Service a31ea6
    <element name="sound">
Packit Service a31ea6
      <attribute name="model">
Packit Service a31ea6
        <choice>
Packit Service a31ea6
          <value>sb16</value>
Packit Service a31ea6
          <value>es1370</value>
Packit Service a31ea6
          <value>pcspk</value>
Packit Service a31ea6
          <value>ac97</value>
Packit Service a31ea6
        </choice>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="parallel">
Packit Service a31ea6
    <element name="parallel">
Packit Service a31ea6
      <ref name="qemucdev"/>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="serial">
Packit Service a31ea6
    <element name="serial">
Packit Service a31ea6
      <ref name="qemucdev"/>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="input">
Packit Service a31ea6
    <element name="input">
Packit Service a31ea6
      <attribute name="type">
Packit Service a31ea6
        <choice>
Packit Service a31ea6
          <value>tablet</value>
Packit Service a31ea6
          <value>mouse</value>
Packit Service a31ea6
        </choice>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <attribute name="bus">
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <value>ps2</value>
Packit Service a31ea6
            <value>usb</value>
Packit Service a31ea6
            <value>xen</value>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </attribute>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="hostdev">
Packit Service a31ea6
    <element name="hostdev">
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <attribute name="mode">
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <value>subsystem</value>
Packit Service a31ea6
            <value>capabilities</value>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </attribute>
Packit Service a31ea6
        <attribute name="type">
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <value>usb</value>
Packit Service a31ea6
            <value>pci</value>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </attribute>
Packit Service a31ea6
        <attribute name="managed">
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <value>yes</value>
Packit Service a31ea6
            <value>no</value>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </attribute>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <group>
Packit Service a31ea6
        <element name="source">
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <ref name="usbproduct"/>
Packit Service a31ea6
            <ref name="usbaddress"/>
Packit Service a31ea6
            <ref name="pciaddress"/>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </element>
Packit Service a31ea6
      </group>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="usbproduct">
Packit Service a31ea6
    <element name="vendor">
Packit Service a31ea6
      <attribute name="id">
Packit Service a31ea6
        <ref name="usbId"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </element>
Packit Service a31ea6
    <element name="product">
Packit Service a31ea6
      <attribute name="id">
Packit Service a31ea6
        <ref name="usbId"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="usbaddress">
Packit Service a31ea6
    <element name="address">
Packit Service a31ea6
      <attribute name="bus">
Packit Service a31ea6
        <ref name="usbAddr"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <attribute name="device">
Packit Service a31ea6
        <ref name="usbAddr"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="pciaddress">
Packit Service a31ea6
    <element name="address">
Packit Service a31ea6
      <optional>
Packit Service a31ea6
        <attribute name="domain">
Packit Service a31ea6
          <ref name="pciDomain"/>
Packit Service a31ea6
        </attribute>
Packit Service a31ea6
      </optional>
Packit Service a31ea6
      <attribute name="bus">
Packit Service a31ea6
        <ref name="pciBus"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <attribute name="slot">
Packit Service a31ea6
        <ref name="pciSlot"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
      <attribute name="function">
Packit Service a31ea6
        <ref name="pciFunc"/>
Packit Service a31ea6
      </attribute>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      Devices attached to a domain.
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="devices">
Packit Service a31ea6
    <element name="devices">
Packit Service a31ea6
      <interleave>
Packit Service a31ea6
        <optional>
Packit Service a31ea6
          <ref name="emulator"/>
Packit Service a31ea6
        </optional>
Packit Service a31ea6
        <zeroOrMore>
Packit Service a31ea6
          <choice>
Packit Service a31ea6
            <ref name="disk"/>
Packit Service a31ea6
            <ref name="filesystem"/>
Packit Service a31ea6
            <ref name="interface"/>
Packit Service a31ea6
            <ref name="input"/>
Packit Service a31ea6
            <ref name="sound"/>
Packit Service a31ea6
            <ref name="hostdev"/>
Packit Service a31ea6
            <ref name="graphic"/>
Packit Service a31ea6
            <ref name="video"/>
Packit Service a31ea6
            <ref name="console"/>
Packit Service a31ea6
            <ref name="parallel"/>
Packit Service a31ea6
            <ref name="serial"/>
Packit Service a31ea6
          </choice>
Packit Service a31ea6
        </zeroOrMore>
Packit Service a31ea6
      </interleave>
Packit Service a31ea6
    </element>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
      A set of optional features: PAE, APIC and ACPI support
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="features">
Packit Service a31ea6
    <optional>
Packit Service a31ea6
      <element name="features">
Packit Service a31ea6
        <interleave>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <element name="pae">
Packit Service a31ea6
              <empty/>
Packit Service a31ea6
            </element>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <element name="apic">
Packit Service a31ea6
              <empty/>
Packit Service a31ea6
            </element>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
          <optional>
Packit Service a31ea6
            <element name="acpi">
Packit Service a31ea6
              <empty/>
Packit Service a31ea6
            </element>
Packit Service a31ea6
          </optional>
Packit Service a31ea6
        </interleave>
Packit Service a31ea6
      </element>
Packit Service a31ea6
    </optional>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  
Packit Service a31ea6
       Type library
Packit Service a31ea6
Packit Service a31ea6
       Our unsignedInt doesn't allow a leading '+' in its lexical form
Packit Service a31ea6
       A domain name shoul be made of ascii, numbers, _-+ and is non-empty
Packit Service a31ea6
       UUID currently allows only the 32 characters strict syntax
Packit Service a31ea6
       memoryKB request at least 4Mbytes though Xen will grow bigger if too low
Packit Service a31ea6
    -->
Packit Service a31ea6
  <define name="unsignedInt">
Packit Service a31ea6
    <data type="unsignedInt">
Packit Service a31ea6
      <param name="pattern">[0-9]+</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="countCPU">
Packit Service a31ea6
    <data type="unsignedShort">
Packit Service a31ea6
      <param name="pattern">[0-9]+</param>
Packit Service a31ea6
      <param name="minInclusive">1</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="PortNumber">
Packit Service a31ea6
    <data type="short">
Packit Service a31ea6
      <param name="minInclusive">-1</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="memoryKB">
Packit Service a31ea6
    <data type="unsignedInt">
Packit Service a31ea6
      <param name="pattern">[0-9]+</param>
Packit Service a31ea6
      <param name="minInclusive">4000</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="domainName">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">[A-Za-z0-9_\.\+\-&:/]+</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="diskSerial">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">[A-Za-z0-9_\.\+\-]+</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="genericName">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">[a-zA-Z0-9_\+\-]+</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="UUID">
Packit Service a31ea6
    <choice>
Packit Service a31ea6
      <data type="string">
Packit Service a31ea6
        <param name="pattern">[a-fA-F0-9]{32}</param>
Packit Service a31ea6
      </data>
Packit Service a31ea6
      <data type="string">
Packit Service a31ea6
        <param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param>
Packit Service a31ea6
      </data>
Packit Service a31ea6
    </choice>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="filePath">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">[a-zA-Z0-9_\.\+\-&/%]+</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="absFilePath">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">/[a-zA-Z0-9_\.\+\-&/%]+</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="absDirPath">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">/[a-zA-Z0-9_\.\+\-&/%]*</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="devicePath">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="deviceName">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">[a-zA-Z0-9_\.\-:/]+</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="addrMAC">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">([a-fA-F0-9]{2}:){5}[a-fA-F0-9]{2}</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="addrIP">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9]</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="usbId">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="usbAddr">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">(0x)?[0-9a-fA-F]{1,3}</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="pciDomain">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">(0x)?[0-9a-fA-F]{1,4}</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="pciBus">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">(0x)?[0-9a-fA-F]{1,2}</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="pciSlot">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">(0x)?[0-1]?[0-9a-fA-F]</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
  <define name="pciFunc">
Packit Service a31ea6
    <data type="string">
Packit Service a31ea6
      <param name="pattern">(0x)?[0-7]</param>
Packit Service a31ea6
    </data>
Packit Service a31ea6
  </define>
Packit Service a31ea6
</grammar>