]> git.ipfire.org Git - thirdparty/libvirt.git/commit
conf: set up for per-grammar overrides in schemas
authorEric Blake <eblake@redhat.com>
Mon, 14 Apr 2014 22:54:15 +0000 (16:54 -0600)
committerJiri Denemark <jdenemar@redhat.com>
Tue, 15 Apr 2014 19:07:59 +0000 (21:07 +0200)
commit369cdfa8f54c9848cc44327fb9b2bb67e01def8a
treec4220ebee9e2c8cb7c1cce9a282c7cad06bedac2
parentdb7d7c0ee8a1a6db2d81a71e10794bc5c597b301
conf: set up for per-grammar overrides in schemas

This patch is my first experience playing with nested grammars,
as documented in http://relaxng.org/tutorial-20011203.html#IDA3PZR.
I plan on doing more overrides in order to make the RelaxNG
grammar mirror the C code refactoring into a common
virStorageSource, but where different clients of that source do
not support the same subset of functionality.  By starting with
something fairly easy to validate, I can make sure my later
patches will be possible.

This patch adds a use of the no-op <ref
name='sourceStartupPolicy'/> to the disksnapshot definition, so
that the snapshot version of a type='file' <source> more closely
resembles the version in domaincommon.  A future patch will merge
the two files into using a common define, but this patch is
sufficient for testing that adding <source
startupPolicy='optional'/> in any of the
tests/domainsnapshotxml2xmlin/*.xml files still gets rejected
unless it occurs within the <domain> subelement, because the
definition of startupPolicy is empty outside of domain.rng.

* docs/schemas/storagecommon.rng (storageStartupPolicy)
(storageSourceExtra): Create no-op defaults.
* docs/schemas/domainsnapshot.rng (domain): Use nested grammar
to avoid restricting <domain>.
(storageSourceExtra): Create new override.
(disksnapshot): Access overrides through common names.
* docs/schemas/domaincommon.rng (disk): Access overrides through
common names.
* docs/schemas/domain.rng (storageStartupPolicy)
(storageSourceExtra): Create new overrides.

Signed-off-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
docs/schemas/domain.rng
docs/schemas/domaincommon.rng
docs/schemas/domainsnapshot.rng
docs/schemas/storagecommon.rng
tests/domainsnapshotxml2xmlin/disk-invalid.xml [new file with mode: 0644]