diff options
author | Richard Jones <rjones@trick.home.annexia.org> | 2009-10-01 16:58:38 +0100 |
---|---|---|
committer | Jim Meyering <meyering@redhat.com> | 2009-10-02 15:00:27 +0200 |
commit | ee21bc1f8071bb35409e9f15fb8309348c9a5912 (patch) | |
tree | 3519519cdc57caa9f3a9dce6beda0f7b8584cc90 /inspector/virt-inspector.rng | |
parent | 3c58ea10c74e0a4121ad32b5d578955825371d92 (diff) | |
download | libguestfs-ee21bc1f8071bb35409e9f15fb8309348c9a5912.tar.gz libguestfs-ee21bc1f8071bb35409e9f15fb8309348c9a5912.tar.xz libguestfs-ee21bc1f8071bb35409e9f15fb8309348c9a5912.zip |
inspector: Add RELAX NG schema for virt-inspector --xml output.
Diffstat (limited to 'inspector/virt-inspector.rng')
-rw-r--r-- | inspector/virt-inspector.rng | 168 |
1 files changed, 168 insertions, 0 deletions
diff --git a/inspector/virt-inspector.rng b/inspector/virt-inspector.rng new file mode 100644 index 00000000..1da58fc8 --- /dev/null +++ b/inspector/virt-inspector.rng @@ -0,0 +1,168 @@ +<grammar xmlns="http://relaxng.org/ns/structure/1.0"> + <!-- -*- xml -*- + This is a RELAX NG schema for the output of 'virt-inspector - -xml'. + + To validate an existing document against this schema, you can + use xmllint, like this: + + virt-inspector - -xml Foo > output.xml + xmllint - -noout - -relaxng virt-inspector.rng output.xml + + (Note that because of limitations of XML, I have had to put spaces + between double dashes in the above code. Those spaces should not + be there in what you type on the command line). + + Written by Richard W.M. Jones, with a little help from Daniel + Veillard. + + This file can be freely copied and modified without restrictions. + --> + <start> + <element name="operatingsystems"> + <oneOrMore> + <element name="operatingsystem"> + <interleave> + + <!-- required fields for an operating system --> + <element name="name"> + <choice> + <value>linux</value> + <value>windows</value> + </choice> + </element> + <element name="arch"><text/></element> + <element name="root"><text/></element> + + <!-- optional fields for an operating system --> + <optional><element name="distro"><text/></element></optional> + <optional><element name="major_version"><text/></element></optional> + <optional><element name="minor_version"><text/></element></optional> + <optional><element name="package_format"><text/></element></optional> + <optional><element name="package_management"><text/></element></optional> + + <ref name="mountpoints"/> + <ref name="filesystems"/> + <optional><ref name="applications"/></optional> + <optional><ref name="modprobealiases"/></optional> + <optional><ref name="initrds"/></optional> + <optional><ref name="kernels"/></optional> + <optional><ref name="boot"/></optional> + + </interleave> + </element> + </oneOrMore> + </element> + </start> + + <!-- how filesystems are mounted on mount points --> + <define name="mountpoints"> + <element name="mountpoints"> + <oneOrMore> + <element name="mountpoint"> + <attribute name="dev"><text/></attribute> + <text/> + </element> + </oneOrMore> + </element> + </define> + + <!-- filesystems detected --> + <define name="filesystems"> + <element name="filesystems"> + <oneOrMore> + <element name="filesystem"> + <attribute name="dev"><text/></attribute> + <interleave> + <element name="type"><text/></element> + <optional><element name="content"><text/></element></optional> + <optional><element name="label"><text/></element></optional> + <optional><element name="uuid"><text/></element></optional> + <optional><element name="spec"><text/></element></optional> + </interleave> + </element> + </oneOrMore> + </element> + </define> + + <!-- applications installed --> + <define name="applications"> + <element name="applications"> + <zeroOrMore> + <element name="application"> + <element name="name"><text/></element> + <element name="version"><text/></element> + </element> + </zeroOrMore> + </element> + </define> + + <!-- contents of /etc/modprobe* --> + <define name="modprobealiases"> + <element name="modprobealiases"> + <zeroOrMore> + <element name="alias"> + <attribute name="device"><text/></attribute> + <interleave> + <element name="modulename"><text/></element> + <optional><element name="augeas"><text/></element></optional> + <element name="file"><text/></element> + </interleave> + </element> + </zeroOrMore> + </element> + </define> + + <!-- initrd images found --> + <define name="initrds"> + <element name="initrds"> + <zeroOrMore> + <element name="initrd"> + <attribute name="version"><text/></attribute> + <zeroOrMore> + <element name="module"><text/></element> + </zeroOrMore> + </element> + </zeroOrMore> + </element> + </define> + + <!-- boot configurations --> + <define name="boot"> + <element name="boot"> + <zeroOrMore> + <element name="config"> + <optional> + <attribute name="default"><value>1</value></attribute> + </optional> + <interleave> + <element name="title"><text/></element> + <element name="kernel"><text/></element> + <element name="cmdline"><text/></element> + </interleave> + </element> + </zeroOrMore> + </element> + </define> + + <!-- kernels --> + <define name="kernels"> + <element name="kernels"> + <zeroOrMore> + <element name="kernel"> + <attribute name="version"><text/></attribute> + <attribute name="arch"><text/></attribute> + <interleave> + <element name="modules"> + <zeroOrMore> + <element name="module"><text/></element> + </zeroOrMore> + </element> + <optional><element name="path"><text/></element></optional> + <optional><element name="package"><text/></element></optional> + </interleave> + </element> + </zeroOrMore> + </element> + </define> + +</grammar> |