<param name="pattern">[0-9]+</param>
</data>
</define>
+ <define name='unsignedLong'>
+ <data type='unsignedLong'>
+ <param name='pattern'>[0-9]+</param>
+ </data>
+ </define>
<define name="positiveInteger">
<data type="positiveInteger">
</data>
</define>
+ <define name='unit'>
+ <data type='string'>
+ <param name='pattern'>[kKmMgGtTpPeE]</param>
+ </data>
+ </define>
+
</grammar>
<!-- A Relax NG schema for the libvirt storage pool 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='pool'/>
</start>
</element>
<optional>
<element name='uuid'>
- <ref name='uuid'/>
+ <ref name='UUID'/>
</element>
</optional>
</define>
<define name='sizing'>
<optional>
<element name='capacity'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
</optional>
<optional>
<element name='allocation'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
</optional>
<optional>
<element name='available'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
</optional>
</define>
<optional>
<element name='permissions'>
<element name='mode'>
- <ref name='uint'/>
+ <ref name='unsignedInt'/>
</element>
<element name='owner'>
- <ref name='uint'/>
+ <ref name='unsignedInt'/>
</element>
<element name='group'>
- <ref name='uint'/>
+ <ref name='unsignedInt'/>
</element>
<optional>
<element name='label'>
<element name='target'>
<optional>
<element name='path'>
- <ref name='path'/>
+ <ref name='absFilePath'/>
</element>
</optional>
<ref name='permissions'/>
<element name='device'>
<attribute name='path'>
<choice>
- <ref name='path'/>
+ <ref name='absFilePath'/>
<ref name='name'/>
</choice>
</attribute>
<oneOrMore>
<element name='freeExtent'>
<attribute name='start'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</attribute>
<attribute name='end'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</attribute>
</element>
</oneOrMore>
<define name='sourceinfodir'>
<element name='dir'>
<attribute name='path'>
- <ref name='path'/>
+ <ref name='absFilePath'/>
</attribute>
<empty/>
</element>
<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>
-
- <define name='uint'>
- <data type='string'>
- <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="PortNumber">
<data type="short">
+<?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>
<ref name='unit'/>
</attribute>
</optional>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</element>
</optional>
<optional>
<element name='allocation'>
- <ref name='uint'/>
+ <optional>
+ <attribute name='unit'>
+ <ref name='unit'/>
+ </attribute>
+ </optional>
+ <ref name='unsignedLong'/>
</element>
</optional>
</define>
<optional>
<element name='permissions'>
<element name='mode'>
- <ref name='uint'/>
+ <ref name='unsignedInt'/>
</element>
<element name='owner'>
- <ref name='uint'/>
+ <ref name='unsignedInt'/>
</element>
<element name='group'>
- <ref name='uint'/>
+ <ref name='unsignedInt'/>
</element>
<optional>
<element name='label'>
<element name='target'>
<optional>
<element name='path'>
- <ref name='path'/>
+ <ref name='absFilePath'/>
</element>
</optional>
<ref name='format'/>
<define name='backingStore'>
<element name='backingStore'>
<element name='path'>
- <ref name='path'/>
+ <ref name='absFilePath'/>
</element>
<ref name='format'/>
<ref name='permissions'/>
<define name='sourcedev'>
<element name='device'>
<attribute name='path'>
- <ref name='path'/>
+ <ref name='absFilePath'/>
</attribute>
<choice>
<empty/>
<oneOrMore>
<element name='extent'>
<attribute name='start'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</attribute>
<attribute name='end'>
- <ref name='uint'/>
+ <ref name='unsignedLong'/>
</attribute>
</element>
</oneOrMore>
</data>
</define>
- <define name='uint'>
- <data type='string'>
- <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='unit'>
- <data type='string'>
- <param name="pattern">[kKmMgGtTpPyYzZ]</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>