2014-06-25 13:24:53 +02:00
<?xml version="1.0"?>
<!-- A Relax NG schema for the libvirt domain capabilities XML format -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
2020-09-30 13:54:58 +02:00
<include href="basictypes.rng"/>
<include href="cputypes.rng"/>
2014-06-25 13:24:53 +02:00
<start>
2020-09-30 13:54:58 +02:00
<ref name="domainCapabilities"/>
2014-06-25 13:24:53 +02:00
</start>
2020-09-30 13:54:58 +02:00
<define name="domainCapabilities">
<element name="domainCapabilities">
2014-06-25 13:24:53 +02:00
<interleave>
2020-09-30 13:54:58 +02:00
<element name="path">
2014-06-25 13:24:53 +02:00
<ref name="absFilePath"/>
</element>
2020-09-30 13:54:58 +02:00
<element name="domain">
2014-06-25 13:24:53 +02:00
<text/>
</element>
2017-03-26 18:35:14 +04:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="machine">
2017-03-26 18:35:14 +04:00
<text/>
</element>
</optional>
2020-09-30 13:54:58 +02:00
<element name="arch">
2014-06-25 13:24:53 +02:00
<text/>
</element>
<optional>
2020-09-30 13:54:58 +02:00
<ref name="vcpu"/>
2014-06-25 13:24:53 +02:00
</optional>
2017-10-19 14:19:38 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="iothreads"/>
2017-10-19 14:19:38 +02:00
</optional>
2014-09-16 14:47:47 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="os"/>
2014-09-16 14:47:47 +02:00
</optional>
2016-04-22 11:08:57 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="cpu"/>
2016-04-22 11:08:57 +02:00
</optional>
2014-06-25 13:24:53 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="devices"/>
2014-06-25 13:24:53 +02:00
</optional>
2016-03-09 18:42:14 +01:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="features"/>
2016-03-09 18:42:14 +01:00
</optional>
2014-06-25 13:24:53 +02:00
</interleave>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="vcpu">
<element name="vcpu">
<attribute name="max">
<ref name="unsignedInt"/>
2014-06-25 13:24:53 +02:00
</attribute>
<empty/>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="iothreads">
<element name="iothreads">
<ref name="supported"/>
2017-10-19 14:19:38 +02:00
<empty/>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="loader">
<element name="loader">
<ref name="supported"/>
2014-09-16 19:52:54 -04:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="value"/>
2014-09-16 19:52:54 -04:00
</optional>
2020-09-30 13:54:58 +02:00
<ref name="enum"/>
2014-09-16 14:47:47 +02:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="os">
<element name="os">
2014-09-16 14:47:47 +02:00
<interleave>
2020-09-30 13:54:58 +02:00
<ref name="supported"/>
<ref name="enum"/>
2014-09-16 14:47:47 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="loader"/>
2014-09-16 14:47:47 +02:00
</optional>
</interleave>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="cpu">
<element name="cpu">
<ref name="cpuHost"/>
2021-02-05 15:59:35 +00:00
<ref name="cpuMax"/>
2020-09-30 13:54:58 +02:00
<ref name="cpuHostModel"/>
<ref name="cpuCustom"/>
2016-04-22 11:08:57 +02:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="cpuHost">
<element name="mode">
<attribute name="name">
2016-04-22 11:08:57 +02:00
<value>host-passthrough</value>
</attribute>
2020-09-30 13:54:58 +02:00
<ref name="supported"/>
2020-06-03 00:28:10 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="enum"/>
2020-06-03 00:28:10 +02:00
</optional>
2016-04-22 11:08:57 +02:00
</element>
</define>
2021-02-05 15:59:35 +00:00
<define name="cpuMax">
<element name="mode">
<attribute name="name">
<value>maximum</value>
</attribute>
<ref name="supported"/>
<optional>
<ref name="enum"/>
</optional>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="cpuHostModel">
<element name="mode">
<attribute name="name">
2016-04-22 11:08:57 +02:00
<value>host-model</value>
</attribute>
2020-09-30 13:54:58 +02:00
<ref name="supported"/>
2016-06-15 16:45:47 +02:00
<optional>
<ref name="cpuModel"/>
<optional>
<ref name="cpuVendor"/>
</optional>
<zeroOrMore>
<ref name="cpuFeature"/>
</zeroOrMore>
</optional>
2016-04-22 11:08:57 +02:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="cpuCustom">
<element name="mode">
<attribute name="name">
2016-04-22 11:08:57 +02:00
<value>custom</value>
</attribute>
2020-09-30 13:54:58 +02:00
<ref name="supported"/>
2016-04-22 11:08:57 +02:00
<zeroOrMore>
2020-09-30 13:54:58 +02:00
<element name="model">
<attribute name="usable">
2016-06-15 16:15:44 +02:00
<choice>
<value>yes</value>
<value>no</value>
<value>unknown</value>
</choice>
</attribute>
2021-01-22 11:15:08 +00:00
<optional>
<attribute name="deprecated">
<choice>
<value>yes</value>
<value>no</value>
</choice>
</attribute>
</optional>
2016-04-22 11:08:57 +02:00
<text/>
</element>
</zeroOrMore>
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="devices">
<element name="devices">
2019-02-08 19:10:17 -05:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="disk"/>
2019-02-08 19:10:17 -05:00
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<ref name="graphics"/>
2019-02-08 19:10:17 -05:00
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<ref name="video"/>
2019-02-08 19:10:17 -05:00
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<ref name="hostdev"/>
2019-02-08 19:10:17 -05:00
</optional>
2019-03-31 17:19:33 -04:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="rng"/>
2019-03-31 17:19:33 -04:00
</optional>
2014-06-25 13:24:53 +02:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="disk">
<element name="disk">
<ref name="supported"/>
<ref name="enum"/>
2014-06-25 13:24:53 +02:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="graphics">
<element name="graphics">
<ref name="supported"/>
<ref name="enum"/>
2016-05-08 11:57:20 -04:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="video">
<element name="video">
<ref name="supported"/>
<ref name="enum"/>
2016-05-08 12:11:39 -04:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="hostdev">
<element name="hostdev">
<ref name="supported"/>
<ref name="enum"/>
2014-06-25 13:24:53 +02:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="rng">
<element name="rng">
<ref name="supported"/>
<ref name="enum"/>
2019-03-31 17:19:33 -04:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="features">
<element name="features">
2019-02-08 19:10:17 -05:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="gic"/>
2019-02-08 19:10:17 -05:00
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<ref name="vmcoreinfo"/>
2019-02-08 19:10:17 -05:00
</optional>
<optional>
2020-09-30 13:54:58 +02:00
<ref name="vmgenid"/>
2019-02-08 19:10:17 -05:00
</optional>
2019-10-30 16:54:56 +01:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="backingStoreInput"/>
2019-10-30 16:54:56 +01:00
</optional>
2019-12-03 17:36:35 +01:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="backup"/>
2019-12-03 17:36:35 +01:00
</optional>
2019-02-08 19:10:17 -05:00
<optional>
2020-09-30 13:54:58 +02:00
<ref name="sev"/>
2019-02-08 19:10:17 -05:00
</optional>
2016-03-09 18:42:14 +01:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="gic">
<element name="gic">
<ref name="supported"/>
<ref name="enum"/>
2016-03-09 18:42:14 +01:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="vmcoreinfo">
<element name="vmcoreinfo">
<ref name="supported"/>
2018-04-17 13:54:28 -04:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="vmgenid">
<element name="genid">
<ref name="supported"/>
2018-04-27 08:16:40 -04:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="backingStoreInput">
<element name="backingStoreInput">
<ref name="supported"/>
2019-10-30 16:54:56 +01:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="backup">
<element name="backup">
<ref name="supported"/>
2019-12-03 17:36:35 +01:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="sev">
<element name="sev">
<ref name="supported"/>
2018-06-14 14:18:30 +02:00
<optional>
2020-09-30 13:54:58 +02:00
<element name="cbitpos">
<data type="unsignedInt"/>
2018-06-14 14:18:30 +02:00
</element>
2020-09-30 13:54:58 +02:00
<element name="reducedPhysBits">
<data type="unsignedInt"/>
2018-06-14 14:18:30 +02:00
</element>
</optional>
2018-06-08 09:40:52 -05:00
</element>
</define>
2020-09-30 13:54:58 +02:00
<define name="value">
2014-09-16 19:52:54 -04:00
<zeroOrMore>
2020-09-30 13:54:58 +02:00
<element name="value">
2014-09-16 19:52:54 -04:00
<text/>
</element>
</zeroOrMore>
</define>
2020-09-30 13:54:58 +02:00
<define name="supported">
<attribute name="supported">
2014-09-08 08:06:35 +02:00
<ref name="virYesNo"/>
2014-06-25 13:24:53 +02:00
</attribute>
</define>
2020-09-30 13:54:58 +02:00
<define name="enum">
2014-06-25 13:24:53 +02:00
<zeroOrMore>
2020-09-30 13:54:58 +02:00
<element name="enum">
<attribute name="name">
2014-06-25 13:24:53 +02:00
<text/>
</attribute>
2020-09-30 13:54:58 +02:00
<ref name="value"/>
2014-06-25 13:24:53 +02:00
</element>
</zeroOrMore>
</define>
</grammar>