* docs/schemas/domain.rng: Move guts...
* docs/schemas/domaincommon.rng: ...to new file.
* docs/schemas/domainsnapshot.rng: Allow new xml.
* docs/schemas/Makefile.am (schema_DATA): Distribute new file.
* tests/domainsnapshotxml2xmlout/full_domain.xml: New test.
---
Email was post-processed (again).
docs/schemas/Makefile.am | 1 +
docs/schemas/domain.rng | 2555 +-----------------------
docs/schemas/{domain.rng => domaincommon.rng} | 8 +-
docs/schemas/domainsnapshot.rng | 14 +-
tests/domainsnapshotxml2xmlout/full_domain.xml | 35 +
5 files changed, 49 insertions(+), 2564 deletions(-)
copy docs/schemas/{domain.rng => domaincommon.rng} (99%)
create mode 100644 tests/domainsnapshotxml2xmlout/full_domain.xml
diff --git a/docs/schemas/Makefile.am b/docs/schemas/Makefile.am
index 596c207..4413d9e 100644
--- a/docs/schemas/Makefile.am
+++ b/docs/schemas/Makefile.am
@@ -6,6 +6,7 @@ schema_DATA = \
basictypes.rng \
capability.rng \
domain.rng \
+ domaincommon.rng \
domainsnapshot.rng \
interface.rng \
network.rng \
diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng
index dd8c41a..cf0be68 100644
--- a/docs/schemas/domain.rng
+++ b/docs/schemas/domain.rng
@@ -5,2 +5,2 @@
<ref name="domain"/>
</start>
- <include href='basictypes.rng'/>
- <include href='storageencryption.rng'/>
- <include href='networkcommon.rng'/>
-
- <!--
- description element, maybe placed anywhere under the root
...
- <param name="pattern">[a-zA-Z0-9_\.:]+</param>
- </data>
- </define>
+ <include href='domaincommon.rng'/>
</grammar>
diff --git a/docs/schemas/domain.rng b/docs/schemas/domaincommon.rng
similarity index 99%
copy from docs/schemas/domain.rng
copy to docs/schemas/domaincommon.rng
index dd8c41a..756e892 100644
--- a/docs/schemas/domain.rng
+++ b/docs/schemas/domaincommon.rng
@@ -1,16 +1,12 @@
<?xml version="1.0"?>
<grammar
xmlns="http://relaxng.org/ns/structure/1.0"
datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
- <!-- We handle only document defining a domain -->
- <start>
- <ref name="domain"/>
- </start>
-
+ <!-- domain-related definitions used in multiple grammars -->
<include href='basictypes.rng'/>
<include href='storageencryption.rng'/>
<include href='networkcommon.rng'/>
<!--
- description element, maybe placed anywhere under the root
+ description element, may be placed anywhere under the root
-->
<define name="description">
<element name="description">
diff --git a/docs/schemas/domainsnapshot.rng b/docs/schemas/domainsnapshot.rng
index 410833f..a16d731 100644
--- a/docs/schemas/domainsnapshot.rng
+++ b/docs/schemas/domainsnapshot.rng
@@ -1,9 +1,12 @@
+<?xml version="1.0"?>
<!-- A Relax NG schema for the libvirt domain snapshot properties XML format -->
<grammar
xmlns="http://relaxng.org/ns/structure/1.0">
<start>
<ref name='domainsnapshot'/>
</start>
+ <include href='domaincommon.rng'/>
+
<define name='domainsnapshot'>
<element name='domainsnapshot'>
<interleave>
@@ -36,11 +39,14 @@
</element>
</optional>
<optional>
- <element name='domain'>
- <element name='uuid'>
- <text/>
+ <choice>
+ <element name='domain'>
+ <element name='uuid'>
+ <ref name="UUID"/>
+ </element>
</element>
- </element>
+ <ref name='domain'/>
+ </choice>
</optional>
<optional>
<element name='parent'>
diff --git a/tests/domainsnapshotxml2xmlout/full_domain.xml
b/tests/domainsnapshotxml2xmlout/full_domain.xml
new file mode 100644
index 0000000..942bd7f
--- /dev/null
+++ b/tests/domainsnapshotxml2xmlout/full_domain.xml
@@ -0,0 +1,35 @@
+<domainsnapshot>
+ <name>my snap name</name>
+ <description>!@#$%^</description>
+ <parent>
+ <name>earlier_snap</name>
+ </parent>
+ <state>running</state>
+ <creationTime>1272917631</creationTime>
+<domain type='qemu'>
+ <name>QEMUGuest1</name>
+ <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+ <memory>219100</memory>
+ <currentMemory>219100</currentMemory>
+ <vcpu cpuset='1-4,8-20,525'>1</vcpu>
+ <os>
+ <type arch='i686' machine='pc'>hvm</type>
+ <boot dev='hd'/>
+ </os>
+ <clock offset='utc'/>
+ <on_poweroff>destroy</on_poweroff>
+ <on_reboot>restart</on_reboot>
+ <on_crash>destroy</on_crash>
+ <devices>
+ <emulator>/usr/bin/qemu</emulator>
+ <disk type='block' device='disk'>
+ <source dev='/dev/HostVG/QEMUGuest1'/>
+ <target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
+ </disk>
+ <controller type='ide' index='0'/>
+ <memballoon model='virtio'/>
+ </devices>
+</domain>
+ <active>1</active>
+</domainsnapshot>
--
1.7.4.4