--- /dev/null
+<?xml version="1.0"?>
+<!-- A Relax NG schema for the libvirt storage pool 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='storagepoolCapabilities'/>
+ </start>
+
+
+ <define name='storagepoolCapabilities'>
+ <element name='storagepoolCapabilities'>
+ <zeroOrMore>
+ <ref name='poolCapsType'/>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name='poolCapsType'>
+ <element name='pool'>
+ <ref name='poolCapsTypes'/>
+ <ref name='poolCapsSupported'/>
+ <optional>
+ <ref name='poolCapsPoolOptions'/>
+ </optional>
+ <optional>
+ <ref name='poolCapsVolOptions'/>
+ </optional>
+ </element>
+ </define>
+
+ <define name='poolCapsTypes'>
+ <attribute name='type'>
+ <text/>
+ </attribute>
+ </define>
+
+ <define name='poolCapsSupported'>
+ <attribute name='supported'>
+ <ref name="virYesNo"/>
+ </attribute>
+ </define>
+
+ <define name='poolCapsPoolOptions'>
+ <element name='poolOptions'>
+ <optional>
+ <ref name='poolDefaultFormat'/>
+ </optional>
+ <optional>
+ <ref name='poolCapsEnum'/>
+ </optional>
+ </element>
+ </define>
+
+ <define name='poolCapsVolOptions'>
+ <element name='volOptions'>
+ <ref name='poolDefaultFormat'/>
+ <ref name='poolCapsEnum'/>
+ </element>
+ </define>
+
+ <define name='poolDefaultFormat'>
+ <element name='defaultFormat'>
+ <attribute name='type'>
+ <text/>
+ </attribute>
+ </element>
+ </define>
+
+ <define name='poolCapsEnum'>
+ <zeroOrMore>
+ <element name='enum'>
+ <attribute name='name'>
+ <text/>
+ </attribute>
+ <ref name='value'/>
+ </element>
+ </zeroOrMore>
+ </define>
+
+ <define name='value'>
+ <zeroOrMore>
+ <element name='value'>
+ <text/>
+ </element>
+ </zeroOrMore>
+ </define>
+
+</grammar>
%{_datadir}/libvirt/schemas/secret.rng
%{_datadir}/libvirt/schemas/storagecommon.rng
%{_datadir}/libvirt/schemas/storagepool.rng
+%{_datadir}/libvirt/schemas/storagepoolcaps.rng
%{_datadir}/libvirt/schemas/storagevol.rng
%{_datadir}/libvirt/cpu_map/*.xml
%{mingw32_datadir}/libvirt/schemas/secret.rng
%{mingw32_datadir}/libvirt/schemas/storagecommon.rng
%{mingw32_datadir}/libvirt/schemas/storagepool.rng
+%{mingw32_datadir}/libvirt/schemas/storagepoolcaps.rng
%{mingw32_datadir}/libvirt/schemas/storagevol.rng
%dir %{mingw32_datadir}/libvirt/api/
%{mingw32_datadir}/libvirt/api/libvirt-api.xml
%{mingw64_datadir}/libvirt/schemas/secret.rng
%{mingw64_datadir}/libvirt/schemas/storagecommon.rng
%{mingw64_datadir}/libvirt/schemas/storagepool.rng
+%{mingw64_datadir}/libvirt/schemas/storagepoolcaps.rng
%{mingw64_datadir}/libvirt/schemas/storagevol.rng
%dir %{mingw64_datadir}/libvirt/api/
%{mingw64_datadir}/libvirt/api/libvirt-api.xml
securityselinuxhelperdata \
securityselinuxlabeldata \
sexpr2xmldata \
+ storagepoolcapsschemadata \
storagepoolschemadata \
storagepoolxml2xmlin \
storagepoolxml2xmlout \
--- /dev/null
+<storagepoolCapabilities>
+ <pool type='dir' supported='yes'>
+ <volOptions>
+ <defaultFormat type='raw'/>
+ <enum name='targetFormatType'>
+ <value>none</value>
+ <value>raw</value>
+ <value>dir</value>
+ <value>bochs</value>
+ <value>cloop</value>
+ <value>dmg</value>
+ <value>iso</value>
+ <value>vpc</value>
+ <value>vdi</value>
+ <value>fat</value>
+ <value>vhd</value>
+ <value>ploop</value>
+ <value>cow</value>
+ <value>qcow</value>
+ <value>qcow2</value>
+ <value>qed</value>
+ <value>vmdk</value>
+ </enum>
+ </volOptions>
+ </pool>
+ <pool type='fs' supported='yes'>
+ <poolOptions>
+ <defaultFormat type='auto'/>
+ <enum name='sourceFormatType'>
+ <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>
+ </enum>
+ <enum name='requiredSourceElements'>
+ <value>device</value>
+ </enum>
+ </poolOptions>
+ <volOptions>
+ <defaultFormat type='raw'/>
+ <enum name='targetFormatType'>
+ <value>none</value>
+ <value>raw</value>
+ <value>dir</value>
+ <value>bochs</value>
+ <value>cloop</value>
+ <value>dmg</value>
+ <value>iso</value>
+ <value>vpc</value>
+ <value>vdi</value>
+ <value>fat</value>
+ <value>vhd</value>
+ <value>ploop</value>
+ <value>cow</value>
+ <value>qcow</value>
+ <value>qcow2</value>
+ <value>qed</value>
+ <value>vmdk</value>
+ </enum>
+ </volOptions>
+ </pool>
+ <pool type='netfs' supported='yes'>
+ <poolOptions>
+ <defaultFormat type='auto'/>
+ <enum name='sourceFormatType'>
+ <value>auto</value>
+ <value>nfs</value>
+ <value>glusterfs</value>
+ <value>cifs</value>
+ </enum>
+ <enum name='requiredSourceElements'>
+ <value>host</value>
+ <value>dir</value>
+ </enum>
+ </poolOptions>
+ <volOptions>
+ <defaultFormat type='raw'/>
+ <enum name='targetFormatType'>
+ <value>none</value>
+ <value>raw</value>
+ <value>dir</value>
+ <value>bochs</value>
+ <value>cloop</value>
+ <value>dmg</value>
+ <value>iso</value>
+ <value>vpc</value>
+ <value>vdi</value>
+ <value>fat</value>
+ <value>vhd</value>
+ <value>ploop</value>
+ <value>cow</value>
+ <value>qcow</value>
+ <value>qcow2</value>
+ <value>qed</value>
+ <value>vmdk</value>
+ </enum>
+ </volOptions>
+ </pool>
+ <pool type='logical' supported='yes'>
+ <poolOptions>
+ <defaultFormat type='lvm2'/>
+ <enum name='sourceFormatType'>
+ <value>unknown</value>
+ <value>lvm2</value>
+ </enum>
+ <enum name='requiredSourceElements'>
+ <value>device</value>
+ <value>name</value>
+ </enum>
+ </poolOptions>
+ </pool>
+ <pool type='disk' supported='yes'>
+ <poolOptions>
+ <defaultFormat type='unknown'/>
+ <enum name='sourceFormatType'>
+ <value>unknown</value>
+ <value>dos</value>
+ <value>dvh</value>
+ <value>gpt</value>
+ <value>mac</value>
+ <value>bsd</value>
+ <value>pc98</value>
+ <value>sun</value>
+ <value>lvm2</value>
+ </enum>
+ <enum name='requiredSourceElements'>
+ <value>device</value>
+ </enum>
+ </poolOptions>
+ <volOptions>
+ <defaultFormat type='none'/>
+ <enum name='targetFormatType'>
+ <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>
+ </enum>
+ </volOptions>
+ </pool>
+ <pool type='iscsi' supported='yes'>
+ <poolOptions>
+ <enum name='requiredSourceElements'>
+ <value>host</value>
+ <value>device</value>
+ <value>initiator</value>
+ </enum>
+ </poolOptions>
+ </pool>
+ <pool type='iscsi-direct' supported='yes'>
+ <poolOptions>
+ <enum name='requiredSourceElements'>
+ <value>host</value>
+ <value>device</value>
+ <value>initiator</value>
+ <value>network</value>
+ </enum>
+ </poolOptions>
+ </pool>
+ <pool type='scsi' supported='yes'>
+ <poolOptions>
+ <enum name='requiredSourceElements'>
+ <value>adapter</value>
+ </enum>
+ </poolOptions>
+ </pool>
+ <pool type='mpath' supported='yes'>
+ </pool>
+ <pool type='rbd' supported='yes'>
+ <poolOptions>
+ <enum name='requiredSourceElements'>
+ <value>host</value>
+ <value>name</value>
+ <value>network</value>
+ </enum>
+ </poolOptions>
+ </pool>
+ <pool type='sheepdog' supported='yes'>
+ <poolOptions>
+ <enum name='requiredSourceElements'>
+ <value>host</value>
+ <value>name</value>
+ <value>network</value>
+ </enum>
+ </poolOptions>
+ </pool>
+ <pool type='gluster' supported='yes'>
+ <poolOptions>
+ <enum name='requiredSourceElements'>
+ <value>host</value>
+ <value>dir</value>
+ <value>name</value>
+ <value>network</value>
+ </enum>
+ </poolOptions>
+ <volOptions>
+ <defaultFormat type='raw'/>
+ <enum name='targetFormatType'>
+ <value>none</value>
+ <value>raw</value>
+ <value>dir</value>
+ <value>bochs</value>
+ <value>cloop</value>
+ <value>dmg</value>
+ <value>iso</value>
+ <value>vpc</value>
+ <value>vdi</value>
+ <value>fat</value>
+ <value>vhd</value>
+ <value>ploop</value>
+ <value>cow</value>
+ <value>qcow</value>
+ <value>qcow2</value>
+ <value>qed</value>
+ <value>vmdk</value>
+ </enum>
+ </volOptions>
+ </pool>
+ <pool type='zfs' supported='yes'>
+ <poolOptions>
+ <enum name='requiredSourceElements'>
+ <value>device</value>
+ <value>name</value>
+ </enum>
+ </poolOptions>
+ </pool>
+ <pool type='vstorage' supported='yes'>
+ <poolOptions>
+ <enum name='requiredSourceElements'>
+ <value>name</value>
+ </enum>
+ </poolOptions>
+ <volOptions>
+ <defaultFormat type='raw'/>
+ <enum name='targetFormatType'>
+ <value>none</value>
+ <value>raw</value>
+ <value>dir</value>
+ <value>bochs</value>
+ <value>cloop</value>
+ <value>dmg</value>
+ <value>iso</value>
+ <value>vpc</value>
+ <value>vdi</value>
+ <value>fat</value>
+ <value>vhd</value>
+ <value>ploop</value>
+ <value>cow</value>
+ <value>qcow</value>
+ <value>qcow2</value>
+ <value>qed</value>
+ <value>vmdk</value>
+ </enum>
+ </volOptions>
+ </pool>
+</storagepoolCapabilities>
DO_TEST_DIR("nwfilter.rng", "nwfilterxml2xmlout", "../examples/xml/nwfilter");
DO_TEST_DIR("nwfilterbinding.rng", "virnwfilterbindingxml2xmldata");
DO_TEST_DIR("secret.rng", "secretxml2xmlin");
+ DO_TEST_DIR("storagepoolcaps.rng", "storagepoolcapsschemadata");
DO_TEST_DIR("storagepool.rng", "storagepoolxml2xmlin", "storagepoolxml2xmlout",
"storagepoolschemadata");
DO_TEST_DIR("storagevol.rng", "storagevolxml2xmlin", "storagevolxml2xmlout",