diff --git a/docs/schemas/Makefile.am b/docs/schemas/Makefile.am
index 596c2079816515de12a82c5a833a78b274558c7e..4413d9ec27b29b3dd59f1c7c061d42683f3572f4 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 b6dd19ac56f17f069df9e25d841bac5be928174b..cf0be68c27c3d39f900f3140fb628e1843f3a3fa 100644
--- a/docs/schemas/domain.rng
+++ b/docs/schemas/domain.rng
@@ -5,2631 +5,5 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- dynamic
- static
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xen
- kvm
- kqemu
- qemu
- lxc
- openvz
- test
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- i686
- x86_64
- ia64
-
-
-
-
-
-
- xenpv
- xenner
-
-
-
-
- xen
- linux
-
-
-
-
-
-
-
-
-
-
-
-
-
- hvm
-
-
-
-
-
-
-
- i686
- x86_64
-
-
-
-
-
-
- [a-zA-Z0-9_\.\-]+
-
-
-
-
-
-
-
-
-
- mips
-
-
-
-
- mips
-
-
-
-
-
-
-
-
- sparc
-
-
-
-
- sun4m
-
-
-
-
-
-
-
-
- ppc
-
-
-
-
-
- g3beige
- mac99
- prep
-
-
-
-
-
-
-
-
- exe
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- strict
- preferred
- interleave
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- localtime
-
-
- utc
-
-
-
- timezone
-
-
-
-
-
-
-
-
-
- variable
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- platform
- pit
- rtc
- hpet
- tsc
-
-
-
-
-
- boot
- guest
- wall
-
-
-
-
-
-
- delay
- catchup
- merge
- discard
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- auto
- native
- emulate
- paravirt
- smpsafe
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- hd
- fd
- cdrom
- network
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- floppy
- disk
- cdrom
-
-
-
-
-
-
- file
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- block
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- dir
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- network
-
-
-
-
-
-
- nbd
- rbd
- sheepdog
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ide
- fdc
- scsi
- virtio
- xen
- usb
- uml
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- none
- writeback
- writethrough
- directsync
-
-
-
-
-
-
- stop
- ignore
- enospace
-
-
-
-
-
-
- threads
- native
-
-
-
-
-
-
- on
- off
-
-
-
-
-
-
- on
- off
-
-
-
-
-
-
-
-
-
-
- fdc
- ide
- scsi
- sata
- ccid
- usb
-
-
-
-
-
-
-
- virtio-serial
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- auto
- buslogic
- lsilogic
- lsisas1068
- vmpvscsi
- piix3-uhci
- piix4-uhci
- ehci
- ich9-ehci1
- ich9-uhci1
- ich9-uhci2
- ich9-uhci3
- vt82c686b-uhci
- pci-ohci
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- file
-
-
-
-
-
-
-
-
-
-
-
-
-
- block
-
-
-
-
-
-
-
-
-
-
-
-
-
- mount
-
-
-
-
-
-
-
-
-
-
-
-
-
- template
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- passthrough
- mapped
- squash
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- bridge
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ethernet
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- network
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- direct
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- user
-
-
-
-
-
-
-
- internal
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- qemu
- vhost
-
-
-
-
-
-
- iothread
- timer
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sdl
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
- vnc
-
-
-
-
-
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- keep
-
-
-
-
-
-
-
- spice
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- fail
- disconnect
- keep
-
-
-
-
-
-
-
-
-
- main
- display
- inputs
- cursor
- playback
- record
- smartcard
-
-
-
-
- any
- secure
- insecure
-
-
-
-
-
-
-
-
-
- auto_glz
- auto_lz
- quic
- glz
- lz
- off
-
-
-
-
-
-
-
-
-
- auto
- never
- always
-
-
-
-
-
-
-
-
-
- auto
- never
- always
-
-
-
-
-
-
-
-
-
- on
- off
-
-
-
-
-
-
-
-
-
- filter
- all
- off
-
-
-
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
- rdp
-
-
-
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
- desktop
-
-
-
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- address
-
-
-
-
-
-
-
- network
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- vga
- cirrus
- vmvga
- xen
- vbox
- qxl
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy
- restart
- preserve
- rename-restart
-
-
-
-
-
- destroy
- restart
- preserve
- rename-restart
- coredump-destroy
- coredump-restart
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- xen
- serial
- uml
- virtio
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- dev
- file
- pipe
- unix
- tcp
- udp
- null
- stdio
- vc
- pty
- spicevmc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- raw
- telnet
- telnets
- tls
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- sb16
- es1370
- pcspk
- ac97
- ich6
-
-
-
-
-
-
-
-
-
-
-
- i6300esb
- ib700
-
-
-
-
-
- reset
- shutdown
- poweroff
- pause
- none
- dump
-
-
-
-
-
-
-
-
-
-
-
-
- virtio
- xen
- none
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- guestfwd
-
-
-
-
-
-
-
-
- virtio
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- host
-
-
-
-
-
- host-certificates
-
-
-
-
-
-
-
-
-
-
-
-
- passthrough
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- tablet
- mouse
-
-
-
-
-
- ps2
- usb
- xen
-
-
-
-
-
-
-
-
-
-
-
-
- usb
-
-
-
-
-
-
-
-
-
-
-
- usb
-
-
-
-
-
-
-
-
-
-
-
-
-
- subsystem
- capabilities
-
-
-
-
-
- usb
- pci
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- minimum
- exact
- strict
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- force
- require
- optional
- disable
- forbid
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- smbios
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- vendor
- version
- date
- release
-
-
-
-
-
- manufacturer
- product
- version
- serial
- uuid
- sku
- family
-
-
-
-
-
- [a-zA-Z0-9/\-_\. \(\)]+
-
-
-
-
-
-
-
- emulate
- host
- sysinfo
-
-
-
-
-
-
-
-
-
-
- yes
- no
-
-
-
-
-
-
-
-
-
-
- pci
-
-
-
-
-
- drive
-
-
-
-
-
- virtio-serial
-
-
-
-
-
- ccid
-
-
-
-
-
- usb
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ([0-9]+(-[0-9]+)?|\^[0-9]+)(,([0-9]+(-[0-9]+)?|\^[0-9]+))*
-
-
-
-
- [0-9]+
- 1
-
-
-
-
- [0-9]+
-
-
-
-
- [0-9]+
-
-
-
-
- [0-9]+
- 1000
- 1000000
-
-
-
-
- -?[0-9]+
- 18446744073709551
- -1
-
-
-
-
- -1
-
-
-
-
- [0-9]+
- 100
- 1000
-
-
-
-
- [0-9]+
- 4000
-
-
-
-
- [A-Za-z0-9_\.\+\-&:/]+
-
-
-
-
- [A-Za-z0-9_\.\+\-]+
-
-
-
-
- [a-zA-Z0-9_\+\-]+
-
-
-
-
- (vepa|bridge|private|passthrough)
-
-
-
-
- (([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9])|(([0-9a-fA-F]+|:)+[0-9a-fA-F]+)|([a-zA-Z0-9_\.\+\-]*)
-
-
-
-
- (0x)?[0-9a-fA-F]{1,4}
-
-
-
-
- (0x)?[0-9a-fA-F]{1,3}
-
-
-
-
- ((0x)?[0-9a-fA-F]{1,3}\.){0,3}(0x)?[0-9a-fA-F]{1,3}
-
-
-
-
- (0x)?[0-9a-fA-F]{1,4}
-
-
-
-
- (0x)?[0-9a-fA-F]{1,2}
-
-
-
-
- (0x)?[0-1]?[0-9a-fA-F]
-
-
-
-
- (0x)?[0-7]
-
-
-
-
- [0-9]{1,2}
-
-
-
-
- [0-9]{1,2}
-
-
-
-
- [0-9]{1,2}
-
-
-
-
- [a-zA-Z0-9\-_]+
-
-
-
-
- (-|\+)?[0-9]+
-
-
-
-
- [a-zA-Z0-9_\.\+\-/]+
-
-
-
-
- [a-zA-Z0-9_]+
-
-
-
-
- [a-zA-Z0-9_\.:]+
-
-
+
diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng
new file mode 100644
index 0000000000000000000000000000000000000000..8e7fd63de2237e68332dc5d267eac551c56da2c1
--- /dev/null
+++ b/docs/schemas/domaincommon.rng
@@ -0,0 +1,2631 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dynamic
+ static
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xen
+ kvm
+ kqemu
+ qemu
+ lxc
+ openvz
+ test
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ i686
+ x86_64
+ ia64
+
+
+
+
+
+
+ xenpv
+ xenner
+
+
+
+
+ xen
+ linux
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hvm
+
+
+
+
+
+
+
+ i686
+ x86_64
+
+
+
+
+
+
+ [a-zA-Z0-9_\.\-]+
+
+
+
+
+
+
+
+
+
+ mips
+
+
+
+
+ mips
+
+
+
+
+
+
+
+
+ sparc
+
+
+
+
+ sun4m
+
+
+
+
+
+
+
+
+ ppc
+
+
+
+
+
+ g3beige
+ mac99
+ prep
+
+
+
+
+
+
+
+
+ exe
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ strict
+ preferred
+ interleave
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ localtime
+
+
+ utc
+
+
+
+ timezone
+
+
+
+
+
+
+
+
+
+ variable
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ platform
+ pit
+ rtc
+ hpet
+ tsc
+
+
+
+
+
+ boot
+ guest
+ wall
+
+
+
+
+
+
+ delay
+ catchup
+ merge
+ discard
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ auto
+ native
+ emulate
+ paravirt
+ smpsafe
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ hd
+ fd
+ cdrom
+ network
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ floppy
+ disk
+ cdrom
+
+
+
+
+
+
+ file
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ block
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dir
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ network
+
+
+
+
+
+
+ nbd
+ rbd
+ sheepdog
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ide
+ fdc
+ scsi
+ virtio
+ xen
+ usb
+ uml
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ none
+ writeback
+ writethrough
+ directsync
+
+
+
+
+
+
+ stop
+ ignore
+ enospace
+
+
+
+
+
+
+ threads
+ native
+
+
+
+
+
+
+ on
+ off
+
+
+
+
+
+
+ on
+ off
+
+
+
+
+
+
+
+
+
+
+ fdc
+ ide
+ scsi
+ sata
+ ccid
+ usb
+
+
+
+
+
+
+
+ virtio-serial
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ auto
+ buslogic
+ lsilogic
+ lsisas1068
+ vmpvscsi
+ piix3-uhci
+ piix4-uhci
+ ehci
+ ich9-ehci1
+ ich9-uhci1
+ ich9-uhci2
+ ich9-uhci3
+ vt82c686b-uhci
+ pci-ohci
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ file
+
+
+
+
+
+
+
+
+
+
+
+
+
+ block
+
+
+
+
+
+
+
+
+
+
+
+
+
+ mount
+
+
+
+
+
+
+
+
+
+
+
+
+
+ template
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ passthrough
+ mapped
+ squash
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ bridge
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ethernet
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ network
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ direct
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ user
+
+
+
+
+
+
+
+ internal
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ qemu
+ vhost
+
+
+
+
+
+
+ iothread
+ timer
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sdl
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+ vnc
+
+
+
+
+
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ keep
+
+
+
+
+
+
+
+ spice
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ fail
+ disconnect
+ keep
+
+
+
+
+
+
+
+
+
+ main
+ display
+ inputs
+ cursor
+ playback
+ record
+ smartcard
+
+
+
+
+ any
+ secure
+ insecure
+
+
+
+
+
+
+
+
+
+ auto_glz
+ auto_lz
+ quic
+ glz
+ lz
+ off
+
+
+
+
+
+
+
+
+
+ auto
+ never
+ always
+
+
+
+
+
+
+
+
+
+ auto
+ never
+ always
+
+
+
+
+
+
+
+
+
+ on
+ off
+
+
+
+
+
+
+
+
+
+ filter
+ all
+ off
+
+
+
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+ rdp
+
+
+
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+ desktop
+
+
+
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ address
+
+
+
+
+
+
+
+ network
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ vga
+ cirrus
+ vmvga
+ xen
+ vbox
+ qxl
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ destroy
+ restart
+ preserve
+ rename-restart
+
+
+
+
+
+ destroy
+ restart
+ preserve
+ rename-restart
+ coredump-destroy
+ coredump-restart
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ xen
+ serial
+ uml
+ virtio
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ dev
+ file
+ pipe
+ unix
+ tcp
+ udp
+ null
+ stdio
+ vc
+ pty
+ spicevmc
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ raw
+ telnet
+ telnets
+ tls
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ sb16
+ es1370
+ pcspk
+ ac97
+ ich6
+
+
+
+
+
+
+
+
+
+
+
+ i6300esb
+ ib700
+
+
+
+
+
+ reset
+ shutdown
+ poweroff
+ pause
+ none
+ dump
+
+
+
+
+
+
+
+
+
+
+
+
+ virtio
+ xen
+ none
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ guestfwd
+
+
+
+
+
+
+
+
+ virtio
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ host
+
+
+
+
+
+ host-certificates
+
+
+
+
+
+
+
+
+
+
+
+
+ passthrough
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ tablet
+ mouse
+
+
+
+
+
+ ps2
+ usb
+ xen
+
+
+
+
+
+
+
+
+
+
+
+
+ usb
+
+
+
+
+
+
+
+
+
+
+
+ usb
+
+
+
+
+
+
+
+
+
+
+
+
+
+ subsystem
+ capabilities
+
+
+
+
+
+ usb
+ pci
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ minimum
+ exact
+ strict
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ force
+ require
+ optional
+ disable
+ forbid
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ smbios
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ vendor
+ version
+ date
+ release
+
+
+
+
+
+ manufacturer
+ product
+ version
+ serial
+ uuid
+ sku
+ family
+
+
+
+
+
+ [a-zA-Z0-9/\-_\. \(\)]+
+
+
+
+
+
+
+
+ emulate
+ host
+ sysinfo
+
+
+
+
+
+
+
+
+
+
+ yes
+ no
+
+
+
+
+
+
+
+
+
+
+ pci
+
+
+
+
+
+ drive
+
+
+
+
+
+ virtio-serial
+
+
+
+
+
+ ccid
+
+
+
+
+
+ usb
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ([0-9]+(-[0-9]+)?|\^[0-9]+)(,([0-9]+(-[0-9]+)?|\^[0-9]+))*
+
+
+
+
+ [0-9]+
+ 1
+
+
+
+
+ [0-9]+
+
+
+
+
+ [0-9]+
+
+
+
+
+ [0-9]+
+ 1000
+ 1000000
+
+
+
+
+ -?[0-9]+
+ 18446744073709551
+ -1
+
+
+
+
+ -1
+
+
+
+
+ [0-9]+
+ 100
+ 1000
+
+
+
+
+ [0-9]+
+ 4000
+
+
+
+
+ [A-Za-z0-9_\.\+\-&:/]+
+
+
+
+
+ [A-Za-z0-9_\.\+\-]+
+
+
+
+
+ [a-zA-Z0-9_\+\-]+
+
+
+
+
+ (vepa|bridge|private|passthrough)
+
+
+
+
+ (([0-2]?[0-9]?[0-9]\.){3}[0-2]?[0-9]?[0-9])|(([0-9a-fA-F]+|:)+[0-9a-fA-F]+)|([a-zA-Z0-9_\.\+\-]*)
+
+
+
+
+ (0x)?[0-9a-fA-F]{1,4}
+
+
+
+
+ (0x)?[0-9a-fA-F]{1,3}
+
+
+
+
+ ((0x)?[0-9a-fA-F]{1,3}\.){0,3}(0x)?[0-9a-fA-F]{1,3}
+
+
+
+
+ (0x)?[0-9a-fA-F]{1,4}
+
+
+
+
+ (0x)?[0-9a-fA-F]{1,2}
+
+
+
+
+ (0x)?[0-1]?[0-9a-fA-F]
+
+
+
+
+ (0x)?[0-7]
+
+
+
+
+ [0-9]{1,2}
+
+
+
+
+ [0-9]{1,2}
+
+
+
+
+ [0-9]{1,2}
+
+
+
+
+ [a-zA-Z0-9\-_]+
+
+
+
+
+ (-|\+)?[0-9]+
+
+
+
+
+ [a-zA-Z0-9_\.\+\-/]+
+
+
+
+
+ [a-zA-Z0-9_]+
+
+
+
+
+ [a-zA-Z0-9_\.:]+
+
+
+
diff --git a/docs/schemas/domainsnapshot.rng b/docs/schemas/domainsnapshot.rng
index 410833f670234e1eb6ec2d68f4e8a1b0e2030fb3..a16d73132ca20d925d7b56ed9109a43a8edc8388 100644
--- a/docs/schemas/domainsnapshot.rng
+++ b/docs/schemas/domainsnapshot.rng
@@ -1,9 +1,12 @@
+
+
+
@@ -36,11 +39,14 @@
-
-
-
+
+
+
+
+
-
+
+
diff --git a/libvirt.spec.in b/libvirt.spec.in
index a7bcfd7e157f1ef70dc67aba844c45a6a4415bfd..9decc31629f32dc1573e8090178e082d13ca8e85 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -1080,19 +1080,20 @@ fi
%dir %{_datadir}/libvirt/
%dir %{_datadir}/libvirt/schemas/
+%{_datadir}/libvirt/schemas/basictypes.rng
+%{_datadir}/libvirt/schemas/capability.rng
%{_datadir}/libvirt/schemas/domain.rng
+%{_datadir}/libvirt/schemas/domaincommon.rng
%{_datadir}/libvirt/schemas/domainsnapshot.rng
+%{_datadir}/libvirt/schemas/interface.rng
%{_datadir}/libvirt/schemas/network.rng
-%{_datadir}/libvirt/schemas/storagepool.rng
-%{_datadir}/libvirt/schemas/storagevol.rng
+%{_datadir}/libvirt/schemas/networkcommon.rng
%{_datadir}/libvirt/schemas/nodedev.rng
-%{_datadir}/libvirt/schemas/capability.rng
-%{_datadir}/libvirt/schemas/interface.rng
+%{_datadir}/libvirt/schemas/nwfilter.rng
%{_datadir}/libvirt/schemas/secret.rng
%{_datadir}/libvirt/schemas/storageencryption.rng
-%{_datadir}/libvirt/schemas/nwfilter.rng
-%{_datadir}/libvirt/schemas/basictypes.rng
-%{_datadir}/libvirt/schemas/networkcommon.rng
+%{_datadir}/libvirt/schemas/storagepool.rng
+%{_datadir}/libvirt/schemas/storagevol.rng
%{_datadir}/libvirt/cpu_map.xml
diff --git a/mingw32-libvirt.spec.in b/mingw32-libvirt.spec.in
index 3958d3322154275c4eee340080a4c9201b5acf81..f651d11015a69bae201caa87e018c8b27ce2edb4 100644
--- a/mingw32-libvirt.spec.in
+++ b/mingw32-libvirt.spec.in
@@ -97,19 +97,20 @@ rm -rf $RPM_BUILD_ROOT
%dir %{_mingw32_datadir}/libvirt/
%dir %{_mingw32_datadir}/libvirt/schemas/
+%{_mingw32_datadir}/libvirt/schemas/basictypes.rng
+%{_mingw32_datadir}/libvirt/schemas/capability.rng
%{_mingw32_datadir}/libvirt/schemas/domain.rng
+%{_mingw32_datadir}/libvirt/schemas/domaincommon.rng
%{_mingw32_datadir}/libvirt/schemas/domainsnapshot.rng
+%{_mingw32_datadir}/libvirt/schemas/interface.rng
%{_mingw32_datadir}/libvirt/schemas/network.rng
-%{_mingw32_datadir}/libvirt/schemas/storagepool.rng
-%{_mingw32_datadir}/libvirt/schemas/storagevol.rng
+%{_mingw32_datadir}/libvirt/schemas/networkcommon.rng
%{_mingw32_datadir}/libvirt/schemas/nodedev.rng
-%{_mingw32_datadir}/libvirt/schemas/capability.rng
-%{_mingw32_datadir}/libvirt/schemas/interface.rng
%{_mingw32_datadir}/libvirt/schemas/nwfilter.rng
%{_mingw32_datadir}/libvirt/schemas/secret.rng
%{_mingw32_datadir}/libvirt/schemas/storageencryption.rng
-%{_mingw32_datadir}/libvirt/schemas/basictypes.rng
-%{_mingw32_datadir}/libvirt/schemas/networkcommon.rng
+%{_mingw32_datadir}/libvirt/schemas/storagepool.rng
+%{_mingw32_datadir}/libvirt/schemas/storagevol.rng
%{_mingw32_datadir}/libvirt/cpu_map.xml
diff --git a/tests/domainsnapshotxml2xmlout/full_domain.xml b/tests/domainsnapshotxml2xmlout/full_domain.xml
new file mode 100644
index 0000000000000000000000000000000000000000..942bd7faa5c9eac4489f6950d7b555346c6e842e
--- /dev/null
+++ b/tests/domainsnapshotxml2xmlout/full_domain.xml
@@ -0,0 +1,35 @@
+
+ my snap name
+ !@#$%^
+
+ earlier_snap
+
+ running
+ 1272917631
+
+ QEMUGuest1
+ c7a5fdbd-edaf-9455-926a-d65c16db1809
+ 219100
+ 219100
+ 1
+
+ hvm
+
+
+
+ destroy
+ restart
+ destroy
+
+ /usr/bin/qemu
+
+
+
+
+
+
+
+
+
+ 1
+