mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-12-26 23:55:23 +00:00
d2632d60aa
Volume and pool formatting functions took different approaches to unspecified uids/gids. When unknown, it is always parsed as -1, but one of the functions formatted it as unsigned int (wrong) and one as int (better). Due to that, our two of our XML files from tests cannot be parsed on 32-bit machines. RNG schema needs to be modified as well, but because both storagepool.rng and storagevol.rng need same schema for permission element, save some space by moving it to storagecommon.rng. Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
229 lines
5.1 KiB
XML
229 lines
5.1 KiB
XML
<?xml version="1.0"?>
|
|
<!-- A Relax NG schema for the libvirt storage volume 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='vol'/>
|
|
</start>
|
|
|
|
<include href='storagecommon.rng'/>
|
|
|
|
|
|
<define name='vol'>
|
|
<element name='volume'>
|
|
<optional>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<value>file</value>
|
|
<value>block</value>
|
|
<value>dir</value>
|
|
<value>network</value>
|
|
<value>netdir</value>
|
|
</choice>
|
|
</attribute>
|
|
</optional>
|
|
<interleave>
|
|
<element name='name'>
|
|
<ref name='volName'/>
|
|
</element>
|
|
<optional>
|
|
<element name='key'>
|
|
<text/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name='source'/>
|
|
</optional>
|
|
<ref name='sizing'/>
|
|
<ref name='target'/>
|
|
<optional>
|
|
<ref name='backingStore'/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sizing'>
|
|
<interleave>
|
|
<optional>
|
|
<element name='capacity'>
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='allocation'>
|
|
<ref name='scaledInteger'/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</define>
|
|
|
|
<define name='timestamps'>
|
|
<optional>
|
|
<element name='timestamps'>
|
|
<interleave>
|
|
<optional>
|
|
<element name='atime'>
|
|
<ref name='timestamp'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='btime'>
|
|
<ref name='timestamp'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='ctime'>
|
|
<ref name='timestamp'/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<element name='mtime'>
|
|
<ref name='timestamp'/>
|
|
</element>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
<define name='timestamp'>
|
|
<data type='string'>
|
|
<param name="pattern">[0-9]+(\.[0-9]{0,9})?</param>
|
|
</data>
|
|
</define>
|
|
|
|
<define name='target'>
|
|
<element name='target'>
|
|
<interleave>
|
|
<optional>
|
|
<element name='path'>
|
|
<choice>
|
|
<data type='anyURI'/>
|
|
<ref name='absFilePath'/>
|
|
</choice>
|
|
</element>
|
|
</optional>
|
|
<ref name='format'/>
|
|
<ref name='permissions'/>
|
|
<ref name='timestamps'/>
|
|
<optional>
|
|
<ref name='encryption'/>
|
|
</optional>
|
|
<optional>
|
|
<ref name='compat'/>
|
|
</optional>
|
|
<optional>
|
|
<element name='nocow'>
|
|
<empty/>
|
|
</element>
|
|
</optional>
|
|
<optional>
|
|
<ref name='fileFormatFeatures'/>
|
|
</optional>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='backingStore'>
|
|
<element name='backingStore'>
|
|
<interleave>
|
|
<element name='path'>
|
|
<ref name='absFilePath'/>
|
|
</element>
|
|
<ref name='format'/>
|
|
<ref name='permissions'/>
|
|
</interleave>
|
|
</element>
|
|
</define>
|
|
|
|
|
|
<define name='source'>
|
|
<element name='source'>
|
|
<zeroOrMore>
|
|
<ref name='sourcedev'/>
|
|
</zeroOrMore>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='sourcedev'>
|
|
<element name='device'>
|
|
<attribute name='path'>
|
|
<ref name='absFilePath'/>
|
|
</attribute>
|
|
<choice>
|
|
<empty/>
|
|
<ref name='devextents'/>
|
|
</choice>
|
|
</element>
|
|
</define>
|
|
|
|
<define name='devextents'>
|
|
<oneOrMore>
|
|
<element name='extent'>
|
|
<attribute name='start'>
|
|
<ref name='unsignedLong'/>
|
|
</attribute>
|
|
<attribute name='end'>
|
|
<ref name='unsignedLong'/>
|
|
</attribute>
|
|
</element>
|
|
</oneOrMore>
|
|
</define>
|
|
|
|
<define name='formatdev'>
|
|
<choice>
|
|
<value>none</value>
|
|
<value>auto</value>
|
|
<value>ext2</value>
|
|
<value>ext3</value>
|
|
<value>ext4</value>
|
|
<value>ufs</value>
|
|
<value>iso9660</value>
|
|
<value>udf</value>
|
|
<value>gfs</value>
|
|
<value>gfs2</value>
|
|
<value>vfat</value>
|
|
<value>hfs+</value>
|
|
<value>xfs</value>
|
|
<value>ocfs2</value>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name='formatfile'>
|
|
<choice>
|
|
<value>unknown</value>
|
|
<ref name='storageFormat'/>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name='formatdisk'>
|
|
<choice>
|
|
<value>none</value>
|
|
<value>linux</value>
|
|
<value>fat16</value>
|
|
<value>fat32</value>
|
|
<value>linux-swap</value>
|
|
<value>linux-lvm</value>
|
|
<value>linux-raid</value>
|
|
<value>extended</value>
|
|
</choice>
|
|
</define>
|
|
|
|
<define name='format'>
|
|
<optional>
|
|
<element name='format'>
|
|
<attribute name='type'>
|
|
<choice>
|
|
<ref name='formatfile'/>
|
|
<ref name='formatdev'/>
|
|
<ref name='formatdisk'/>
|
|
</choice>
|
|
</attribute>
|
|
</element>
|
|
</optional>
|
|
</define>
|
|
|
|
</grammar>
|