<!-- A Relax NG schema for the libvirt capabilities XML format -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <include href='basictypes.rng'/>
<start>
<ref name='capabilities'/>
</start>
<element name='topology'>
<element name='cells'>
<attribute name='num'>
- <ref name='uint'/>
+ <ref name='unsignedInt'/>
</attribute>
<oneOrMore>
<ref name='cell'/>
<define name='cell'>
<element name='cell'>
<attribute name='id'>
- <ref name='uint'/>
+ <ref name='unsignedInt'/>
</attribute>
<optional>
<element name='cpus'>
<attribute name='num'>
- <ref name='uint'/>
+ <ref name='unsignedInt'/>
</attribute>
<oneOrMore>
<ref name='cpu'/>
<define name='cpu'>
<element name='cpu'>
<attribute name='id'>
- <ref name='uint'/>
+ <ref name='unsignedInt'/>
</attribute>
</element>
</define>
<define name='emulator'>
<element name='emulator'>
- <ref name='path'/>
+ <ref name='absFilePath'/>
</element>
</define>
<define name='loader'>
<element name='loader'>
- <ref name='path'/>
+ <ref name='absFilePath'/>
</element>
</define>
</choice>
</define>
-
- <define name='positiveInteger'>
- <data type='positiveInteger'>
- <param name="pattern">[0-9]+</param>
- </data>
- </define>
-
- <define name='uint'>
- <data type='unsignedInt'>
- <param name="pattern">[0-9]+</param>
- </data>
- </define>
-
- <define name='path'>
- <data type='string'>
- <param name="pattern">/[a-zA-Z0-9_\+\-/%]+</param>
- </data>
- </define>
-
<define name='featureName'>
<data type='string'>
<param name='pattern'>[a-zA-Z0-9\-_]+</param>
</data>
</define>
-
- <define name="UUID">
- <choice>
- <data type="string">
- <param name="pattern">[a-fA-F0-9]{32}</param>
- </data>
- <data type="string">
- <param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param>
- </data>
- </choice>
- </define>
</grammar>
<choice>
<element name="miimon">
<!-- miimon frequency in ms -->
- <attribute name="freq"><ref name="uint"/></attribute>
+ <attribute name="freq"><ref name="unsignedInt"/></attribute>
<optional>
- <attribute name="downdelay"><ref name="uint"/></attribute>
+ <attribute name="downdelay"><ref name="unsignedInt"/></attribute>
</optional>
<optional>
- <attribute name="updelay"><ref name="uint"/></attribute>
+ <attribute name="updelay"><ref name="unsignedInt"/></attribute>
</optional>
<optional>
<!-- use_carrier -->
</optional>
</element>
<element name="arpmon">
- <attribute name="interval"><ref name="uint"/></attribute>
+ <attribute name="interval"><ref name="unsignedInt"/></attribute>
<attribute name="target"><ref name="ipv4Addr"/></attribute>
<optional>
<attribute name="validate">
<define name="mtu">
<optional>
<element name="mtu">
- <attribute name="size"><ref name="uint"/></attribute>
+ <attribute name="size"><ref name="unsignedInt"/></attribute>
</element>
</optional>
</define>
<!-- Type library -->
- <define name='uint'>
- <data type='unsignedInt'>
- <param name="pattern">[0-9]+</param>
- </data>
- </define>
-
<define name="timeval">
<data type="double">
<param name="minInclusive">0</param>
<!-- A Relax NG schema for the libvirt node device XML format -->
<grammar xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <include href='basictypes.rng'/>
<start>
<ref name='device'/>
</start>
</optional>
<element name='uuid'>
- <ref name='uuid'/>
+ <ref name='UUID'/>
</element>
</element>
</attribute>
<element name='domain'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='bus'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='slot'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='function'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='product'>
</attribute>
<element name='bus'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='device'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='product'>
</attribute>
<element name='number'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='class'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='subclass'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='protocol'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<optional>
</attribute>
<element name='host'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<optional>
</attribute>
<element name='host'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='bus'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='target'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='lun'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<element name='type'>
</element>
<element name='media_size'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
<optional>
<element name='media_label'>
<define name='capstoragefixed'>
<element name='size'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
</define>
- <define name='uuid'>
- <choice>
- <data type='string'>
- <param name="pattern">[a-fA-F0-9]{32}</param>
- </data>
- <data type='string'>
- <param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param>
- </data>
- </choice>
- </define>
-
- <define name='uint'>
- <data type='string'>
- <param name="pattern">[0-9]+</param>
- </data>
- </define>
-
<define name='hexuint'>
<data type='string'>
<param name="pattern">(0x)?[0-9a-f]+</param>
<?xml version="1.0" encoding="UTF-8"?>
<grammar ns="" xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <include href='basictypes.rng'/>
<start>
<ref name="filter"/>
</start>
<!-- ################ type library ################ -->
- <define name="UUID">
- <choice>
- <data type="string">
- <param name="pattern">[a-fA-F0-9]{32}</param>
- </data>
-
- <data type="string">
- <param name="pattern">[a-fA-F0-9]{8}\-([a-fA-F0-9]{4}\-){3}[a-fA-F0-9]{12}</param>
- </data>
- </choice>
- </define>
-
<define name="variable-name-type">
<data type="string">
<param name="pattern">$[a-zA-Z0-9_]+(\[[ ]*[@]?[0-9]+[ ]*\])?</param>
</choice>
</define>
- <define name="uint8range">
- <choice>
- <ref name="variable-name-type"/>
-
- <data type="string">
- <param name="pattern">0x[0-9a-fA-F]{1,2}</param>
- </data>
-
- <data type="int">
- <param name="minInclusive">0</param>
- <param name="maxInclusive">255</param>
- </data>
- </choice>
- </define>
-
<define name="uint16range">
<choice>
<ref name="variable-name-type"/>