diff --git a/docs/schemas/storagepoolcaps.rng b/docs/schemas/storagepoolcaps.rng
new file mode 100644
index 0000000000..e3bf1efcde
--- /dev/null
+++ b/docs/schemas/storagepoolcaps.rng
@@ -0,0 +1,88 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 9beffba203..82681eea42 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1822,6 +1822,7 @@ exit 0
%{_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
diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in
index 249abb8475..bea822fd73 100644
--- a/mingw-libvirt.spec.in
+++ b/mingw-libvirt.spec.in
@@ -252,6 +252,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%{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
@@ -339,6 +340,7 @@ rm -rf $RPM_BUILD_ROOT%{mingw64_libexecdir}/libvirt-guests.sh
%{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
diff --git a/tests/Makefile.am b/tests/Makefile.am
index c3f633cee0..760f600bf2 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -136,6 +136,7 @@ EXTRA_DIST = \
securityselinuxhelperdata \
securityselinuxlabeldata \
sexpr2xmldata \
+ storagepoolcapsschemadata \
storagepoolschemadata \
storagepoolxml2xmlin \
storagepoolxml2xmlout \
diff --git a/tests/storagepoolcapsschemadata/poolcaps-full.xml b/tests/storagepoolcapsschemadata/poolcaps-full.xml
new file mode 100644
index 0000000000..0bb3faf04e
--- /dev/null
+++ b/tests/storagepoolcapsschemadata/poolcaps-full.xml
@@ -0,0 +1,268 @@
+
+
+
+
+
+ none
+ raw
+ dir
+ bochs
+ cloop
+ dmg
+ iso
+ vpc
+ vdi
+ fat
+ vhd
+ ploop
+ cow
+ qcow
+ qcow2
+ qed
+ vmdk
+
+
+
+
+
+
+
+ auto
+ ext2
+ ext3
+ ext4
+ ufs
+ iso9660
+ udf
+ gfs
+ gfs2
+ vfat
+ hfs+
+ xfs
+ ocfs2
+
+
+ device
+
+
+
+
+
+ none
+ raw
+ dir
+ bochs
+ cloop
+ dmg
+ iso
+ vpc
+ vdi
+ fat
+ vhd
+ ploop
+ cow
+ qcow
+ qcow2
+ qed
+ vmdk
+
+
+
+
+
+
+
+ auto
+ nfs
+ glusterfs
+ cifs
+
+
+ host
+ dir
+
+
+
+
+
+ none
+ raw
+ dir
+ bochs
+ cloop
+ dmg
+ iso
+ vpc
+ vdi
+ fat
+ vhd
+ ploop
+ cow
+ qcow
+ qcow2
+ qed
+ vmdk
+
+
+
+
+
+
+
+ unknown
+ lvm2
+
+
+ device
+ name
+
+
+
+
+
+
+
+ unknown
+ dos
+ dvh
+ gpt
+ mac
+ bsd
+ pc98
+ sun
+ lvm2
+
+
+ device
+
+
+
+
+
+ none
+ linux
+ fat16
+ fat32
+ linux-swap
+ linux-lvm
+ linux-raid
+ extended
+
+
+
+
+
+
+ host
+ device
+ initiator
+
+
+
+
+
+
+ host
+ device
+ initiator
+ network
+
+
+
+
+
+
+ adapter
+
+
+
+
+
+
+
+
+ host
+ name
+ network
+
+
+
+
+
+
+ host
+ name
+ network
+
+
+
+
+
+
+ host
+ dir
+ name
+ network
+
+
+
+
+
+ none
+ raw
+ dir
+ bochs
+ cloop
+ dmg
+ iso
+ vpc
+ vdi
+ fat
+ vhd
+ ploop
+ cow
+ qcow
+ qcow2
+ qed
+ vmdk
+
+
+
+
+
+
+ device
+ name
+
+
+
+
+
+
+ name
+
+
+
+
+
+ none
+ raw
+ dir
+ bochs
+ cloop
+ dmg
+ iso
+ vpc
+ vdi
+ fat
+ vhd
+ ploop
+ cow
+ qcow
+ qcow2
+ qed
+ vmdk
+
+
+
+
diff --git a/tests/virschematest.c b/tests/virschematest.c
index d1bcdeac9c..a89a26b918 100644
--- a/tests/virschematest.c
+++ b/tests/virschematest.c
@@ -231,6 +231,7 @@ mymain(void)
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",