mirror of https://gitee.com/openkylin/libvirt.git
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>
|