summaryrefslogtreecommitdiffstats
path: root/src/main/resources/libvirt/libosinfo/rng/osinfo.rng
diff options
context:
space:
mode:
authorManuel Bentele2021-05-04 08:50:34 +0200
committerManuel Bentele2021-05-04 08:50:34 +0200
commitbf9fe604847991ad029980703a6c72b8a309b5a1 (patch)
treeb176f35268589bc2e9f1679159e0cf672bc2ea15 /src/main/resources/libvirt/libosinfo/rng/osinfo.rng
parentFix errors in Javadoc comments (diff)
downloadmaster-sync-shared-bf9fe604847991ad029980703a6c72b8a309b5a1.tar.gz
master-sync-shared-bf9fe604847991ad029980703a6c72b8a309b5a1.tar.xz
master-sync-shared-bf9fe604847991ad029980703a6c72b8a309b5a1.zip
Add libosinfo database and validation schema files for Libvirt
The libosinfo database consists of a single XML file aggreated from the original libosinfo database which is split accross multiple XML files. The aggregation is achieved by the following commands where the original data base files are located under /usr/share/osinfo/os: FILES=(/usr/share/osinfo/os/**/*.xml) START="$(sed -n '/^<libosinfo version=/,/>$/p' "${FILES[0]}")" END="</libosinfo>" for FILE in "${FILES[@]}"; do CONTENT+="$(sed -n '/<os/,/<\/os>/p' "${FILE}")"$'\n' done echo -e "${START}\n${CONTENT}${END}" > \ src/main/resources/libvirt/libosinfo/xml/osinfo.xml
Diffstat (limited to 'src/main/resources/libvirt/libosinfo/rng/osinfo.rng')
-rw-r--r--src/main/resources/libvirt/libosinfo/rng/osinfo.rng942
1 files changed, 942 insertions, 0 deletions
diff --git a/src/main/resources/libvirt/libosinfo/rng/osinfo.rng b/src/main/resources/libvirt/libosinfo/rng/osinfo.rng
new file mode 100644
index 0000000..775e71f
--- /dev/null
+++ b/src/main/resources/libvirt/libosinfo/rng/osinfo.rng
@@ -0,0 +1,942 @@
+<grammar xmlns="http://relaxng.org/ns/structure/1.0" datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
+ <!-- Schema distributed with osinfo-db-20210312 -->
+
+ <start>
+ <ref name='libosinfo'/>
+ </start>
+
+ <define name='libosinfo'>
+ <element name='libosinfo'>
+ <attribute name='version'>
+ <choice>
+ <value>0.0.1</value>
+ </choice>
+ </attribute>
+
+ <zeroOrMore>
+ <choice>
+ <ref name='datamap'/>
+ <ref name='device'/>
+ <ref name='os'/>
+ <ref name='platform'/>
+ <ref name='deployment'/>
+ <ref name='install-script'/>
+ </choice>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name='datamap'>
+ <element name='datamap'>
+ <attribute name='id'>
+ <ref name='url'/>
+ </attribute>
+ <oneOrMore>
+ <element name='entry'>
+ <attribute name='inval'>
+ <text/>
+ </attribute>
+ <attribute name='outval'>
+ <text/>
+ </attribute>
+ </element>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name='device'>
+ <element name='device'>
+ <attribute name='id'>
+ <ref name='url'/>
+ </attribute>
+ <interleave>
+ <oneOrMore>
+ <element name='name'>
+ <optional>
+ <attribute name='xml:lang'>
+ <text/>
+ </attribute>
+ </optional>
+ <text/>
+ </element>
+ </oneOrMore>
+ <optional>
+ <element name='bus-type'>
+ <choice>
+ <value>isa</value>
+ <value>pci</value>
+ <value>usb</value>
+ <value>xen</value>
+ <value>ps2</value>
+ </choice>
+ </element>
+ </optional>
+ <optional>
+ <element name='class'>
+ <choice>
+ <value>audio</value>
+ <value>block</value>
+ <value>console</value>
+ <value>chipset</value>
+ <value>controller.usb</value>
+ <value>filesystem</value>
+ <value>input</value>
+ <value>memory.balloon</value>
+ <value>net</value>
+ <value>video</value>
+ <value>watchdog</value>
+ <value>rng</value>
+ </choice>
+ </element>
+ </optional>
+ <zeroOrMore>
+ <element name='vendor'>
+ <optional>
+ <attribute name='xml:lang'>
+ <text/>
+ </attribute>
+ </optional>
+ <text/>
+ </element>
+ </zeroOrMore>
+ <optional>
+ <element name='vendor-id'>
+ <ref name='hexid'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='product'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='product-id'>
+ <choice>
+ <ref name='hexid'/>
+ <ref name='alpha'/>
+ </choice>
+ </element>
+ </optional>
+ <optional>
+ <element name='subsystem'>
+ <text/>
+ </element>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name="product-attr">
+ <attribute name='id'>
+ <ref name='url'/>
+ </attribute>
+ </define>
+
+ <define name="product-content">
+ <interleave>
+ <oneOrMore>
+ <element name='vendor'>
+ <optional>
+ <attribute name='xml:lang'>
+ <text/>
+ </attribute>
+ </optional>
+ <text/>
+ </element>
+ </oneOrMore>
+ <oneOrMore>
+ <element name='name'>
+ <optional>
+ <attribute name='xml:lang'>
+ <text/>
+ </attribute>
+ </optional>
+ <text/>
+ </element>
+ </oneOrMore>
+ <oneOrMore>
+ <element name='short-id'>
+ <text/>
+ </element>
+ </oneOrMore>
+ <optional>
+ <element name='version'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='codename'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='family'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='distro'>
+ <text/>
+ </element>
+ </optional>
+ </interleave>
+ </define>
+
+ <define name="product-dates">
+ <interleave>
+ <optional>
+ <element name='release-date'>
+ <ref name='date'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='eol-date'>
+ <ref name='date'/>
+ </element>
+ </optional>
+ </interleave>
+ </define>
+
+ <define name="product-rel">
+ <interleave>
+ <zeroOrMore>
+ <element name="upgrades">
+ <attribute name='id'>
+ <ref name="url"/>
+ </attribute>
+ </element>
+ </zeroOrMore>
+ <zeroOrMore>
+ <element name="derives-from">
+ <attribute name='id'>
+ <ref name="url"/>
+ </attribute>
+ </element>
+ </zeroOrMore>
+ <optional>
+ <element name="clones">
+ <attribute name='id'>
+ <ref name="url"/>
+ </attribute>
+ </element>
+ </optional>
+ </interleave>
+ </define>
+
+ <define name='variant'>
+ <element name='variant'>
+ <attribute name='id'>
+ </attribute>
+ <oneOrMore>
+ <element name='name'>
+ <optional>
+ <attribute name='xml:lang'>
+ <text/>
+ </attribute>
+ </optional>
+ <text/>
+ </element>
+ </oneOrMore>
+ </element>
+ </define>
+
+ <define name='devices-rel'>
+ <element name='devices'>
+ <zeroOrMore>
+ <element name='device'>
+ <attribute name='id'>
+ <ref name='url'/>
+ </attribute>
+ <optional>
+ <attribute name='supported'>
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ <optional>
+ <element name='driver'>
+ <text/>
+ </element>
+ </optional>
+ </element>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name='resource-attr'>
+ <interleave>
+ <optional>
+ <element name='cpu'>
+ <ref name='num'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='n-cpus'>
+ <ref name='num'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='ram'>
+ <ref name='num'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='storage'>
+ <ref name='num'/>
+ </element>
+ </optional>
+ </interleave>
+ </define>
+
+ <define name='resources'>
+ <element name='resources'>
+ <attribute name='arch'>
+ <ref name='archnamesorall'/>
+ </attribute>
+ <optional>
+ <attribute name='inherit'>
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ <interleave>
+ <optional>
+ <element name='network-install'>
+ <ref name='resource-attr'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='minimum'>
+ <ref name='resource-attr'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='recommended'>
+ <ref name='resource-attr'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='maximum'>
+ <ref name='resource-attr'/>
+ </element>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='iso'>
+ <element name='iso'>
+ <interleave>
+ <optional>
+ <element name='volume-id'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='publisher-id'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='application-id'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='system-id'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='volume-size'>
+ <ref name='num'/>
+ </element>
+ </optional>
+ <zeroOrMore>
+ <ref name='media-lang'/>
+ </zeroOrMore>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='media'>
+ <element name='media'>
+ <attribute name='arch'>
+ <ref name='archnamesorall'/>
+ </attribute>
+ <optional>
+ <attribute name="live">
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="installer">
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name='installer-script'>
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name='installer-reboots'>
+ <ref name='num'/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name='eject-after-install'>
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ <interleave>
+ <optional>
+ <element name='variant'>
+ <attribute name='id'>
+ </attribute>
+ </element>
+ </optional>
+ <optional>
+ <element name='url'>
+ <ref name='url'/>
+ </element>
+ </optional>
+ <optional>
+ <ref name='iso'/>
+ </optional>
+ <optional>
+ <element name='initrd'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='kernel'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <zeroOrMore>
+ <ref name='installer'/>
+ </zeroOrMore>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='media-lang'>
+ <element name='l10n-language'>
+ <optional>
+ <attribute name="regex">
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="l10n-language-map">
+ <ref name='url'/>
+ </attribute>
+ </optional>
+ <text/>
+ </element>
+ </define>
+
+ <define name='treeinfo'>
+ <element name='treeinfo'>
+ <interleave>
+ <optional>
+ <element name='family'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='variant'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='version'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='arch'>
+ <text/>
+ </element>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='tree'>
+ <element name='tree'>
+ <attribute name='arch'>
+ <ref name='archnamesorall'/>
+ </attribute>
+ <interleave>
+ <optional>
+ <element name='variant'>
+ <attribute name='id'>
+ </attribute>
+ </element>
+ </optional>
+ <optional>
+ <element name='url'>
+ <ref name='url'/>
+ </element>
+ </optional>
+ <optional>
+ <ref name='treeinfo'/>
+ </optional>
+ <optional>
+ <element name='initrd'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='kernel'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='boot-iso'>
+ <text/>
+ </element>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='image'>
+ <element name='image'>
+ <attribute name='arch'>
+ <ref name='archnames'/>
+ </attribute>
+ <attribute name='format'>
+ <ref name='imageformats'/>
+ </attribute>
+ <optional>
+ <attribute name='cloud-init'>
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ <interleave>
+ <optional>
+ <element name='variant'>
+ <attribute name='id'>
+ </attribute>
+ </element>
+ </optional>
+ <optional>
+ <element name='url'>
+ <ref name='url'/>
+ </element>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='installer'>
+ <element name='installer'>
+ <zeroOrMore>
+ <element name="script">
+ <attribute name='id'>
+ <ref name='url'/>
+ </attribute>
+ </element>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name='driver'>
+ <element name='driver'>
+ <attribute name='arch'>
+ <ref name='archnames'/>
+ </attribute>
+ <attribute name='location'>
+ <text/>
+ </attribute>
+ <optional>
+ <attribute name="pre-installable">
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="signed">
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ <optional>
+ <attribute name="priority">
+ <ref name='num'/>
+ </attribute>
+ </optional>
+ <interleave>
+ <zeroOrMore>
+ <element name='file'>
+ <text/>
+ </element>
+ </zeroOrMore>
+ <oneOrMore>
+ <element name='device'>
+ <attribute name='id'>
+ <ref name='url'/>
+ </attribute>
+ </element>
+ </oneOrMore>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='firmware'>
+ <element name='firmware'>
+ <attribute name='arch'>
+ <ref name='archnames'/>
+ </attribute>
+ <attribute name='type'>
+ <ref name='firmware-types'/>
+ </attribute>
+ <optional>
+ <attribute name='supported'>
+ <ref name='bool'/>
+ </attribute>
+ </optional>
+ </element>
+ </define>
+
+ <define name='os'>
+ <element name='os'>
+ <interleave>
+ <ref name='product-attr'/>
+ <ref name='product-content'/>
+ <ref name='product-dates'/>
+ <ref name='product-rel'/>
+ <optional>
+ <ref name='devices-rel'/>
+ </optional>
+ <optional>
+ <ref name='release-status'/>
+ </optional>
+ <zeroOrMore>
+ <ref name='variant'/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name='resources'/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name='media'/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name='tree'/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name='image'/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name='installer'/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name='driver'/>
+ </zeroOrMore>
+ <zeroOrMore>
+ <ref name='firmware'/>
+ </zeroOrMore>
+ <optional>
+ <element name="kernel-url-argument">
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name="cloud-image-username">
+ <text/>
+ </element>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='platform'>
+ <element name='platform'>
+ <interleave>
+ <ref name='product-attr'/>
+ <ref name='product-content'/>
+ <ref name='product-dates'/>
+ <ref name='product-rel'/>
+ <optional>
+ <ref name='devices-rel'/>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='deployment'>
+ <element name='deployment'>
+ <attribute name='id'>
+ <ref name='url'/>
+ </attribute>
+ <interleave>
+ <element name='os'>
+ <attribute name='id'>
+ <ref name='url'/>
+ </attribute>
+ </element>
+ <element name='platform'>
+ <attribute name='id'>
+ <ref name='url'/>
+ </attribute>
+ </element>
+ <ref name='devices-rel'/>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='install-script'>
+ <element name='install-script'>
+ <interleave>
+ <element name='profile'>
+ <text/>
+ </element>
+ <optional>
+ <element name='path-format'>
+ <ref name='path-formats'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='expected-filename'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <ref name='avatar-format'/>
+ </optional>
+ <optional>
+ <element name='config'>
+ <oneOrMore>
+ <element name='param'>
+ <attribute name="name"/>
+ <attribute name="policy">
+ <ref name='policies'/>
+ </attribute>
+ <optional>
+ <attribute name="value-map"/>
+ </optional>
+ </element>
+ </oneOrMore>
+ </element>
+ </optional>
+ <optional>
+ <element name='product-key-format'>
+ <text/>
+ </element>
+ </optional>
+ <optional>
+ <element name='needs-internet'>
+ <ref name='bool'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='can-pre-install-drivers'>
+ <ref name='bool'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='pre-install-drivers-signing-req'>
+ <ref name='driver-signing-reqs'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='can-post-install-drivers'>
+ <ref name='bool'/>
+ </element>
+ </optional>
+ <optional>
+ <element name='post-install-drivers-signing-req'>
+ <ref name='driver-signing-reqs'/>
+ </element>
+ </optional>
+ <zeroOrMore>
+ <ref name='injection-method'/>
+ </zeroOrMore>
+ <element name='template'>
+ <choice>
+ <group>
+ <attribute name="uri"/>
+ <empty/>
+ </group>
+ <ref name="customElement"/>
+ </choice>
+ </element>
+ <ref name='product-attr'/>
+ <ref name='product-rel'/>
+ </interleave>
+ </element>
+ </define>
+
+ <define name='avatar-format'>
+ <element name='avatar-format'>
+ <interleave>
+ <oneOrMore>
+ <element name="mime-type">
+ <text/>
+ </element>
+ </oneOrMore>
+ <optional>
+ <element name="width">
+ <ref name='num'/>
+ </element>
+ </optional>
+ <optional>
+ <element name="height">
+ <ref name='num'/>
+ </element>
+ </optional>
+ <optional>
+ <element name="alpha">
+ <ref name='bool'/>
+ </element>
+ </optional>
+ </interleave>
+ </element>
+ </define>
+
+ <define name="customElement">
+ <element>
+ <anyName/>
+ <zeroOrMore>
+ <choice>
+ <attribute>
+ <anyName/>
+ </attribute>
+ <text/>
+ <ref name="customElement"/>
+ </choice>
+ </zeroOrMore>
+ </element>
+ </define>
+
+ <define name='archnamesorall'>
+ <choice>
+ <value>all</value>
+ <ref name='archnames'/>
+ </choice>
+ </define>
+ <define name='archnames'>
+ <choice>
+ <value>aarch64</value>
+ <value>alpha</value>
+ <value>armv7l</value>
+ <value>cris</value>
+ <value>i686</value>
+ <value>ia64</value>
+ <value>lm32</value>
+ <value>m68k</value>
+ <value>microblaze</value>
+ <value>microblazeel</value>
+ <value>mips</value>
+ <value>mipsel</value>
+ <value>mips64</value>
+ <value>mips64el</value>
+ <value>openrisc</value>
+ <value>parisc</value>
+ <value>parisc64</value>
+ <value>ppc</value>
+ <value>ppc64</value>
+ <value>ppc64le</value>
+ <value>ppcemb</value>
+ <value>s390</value>
+ <value>s390x</value>
+ <value>sh4</value>
+ <value>sh4eb</value>
+ <value>sparc</value>
+ <value>sparc64</value>
+ <value>unicore32</value>
+ <value>x86_64</value>
+ <value>xtensa</value>
+ <value>xtensaeb</value>
+ </choice>
+ </define>
+
+ <define name='imageformats'>
+ <choice>
+ <value>qcow2</value>
+ <value>raw</value>
+ <value>vhdx</value>
+ <value>vmdk</value>
+ </choice>
+ </define>
+
+ <define name='date'>
+ <data type="string">
+ <param name="pattern">[0-9]{4}-[0-9]{2}-[0-9]{2}</param>
+ </data>
+ </define>
+
+ <define name='hexid'>
+ <data type="string">
+ <param name="pattern">[0-9a-fA-F]+</param>
+ </data>
+ </define>
+
+ <define name='alpha'>
+ <data type="string">
+ <param name="pattern">[a-zA-Z]+</param>
+ </data>
+ </define>
+
+ <define name='bool'>
+ <choice>
+ <data type='string'>
+ <param name='pattern'>true|false</param>
+ </data>
+ <empty/>
+ </choice>
+ </define>
+
+ <define name='num'>
+ <data type="string">
+ <param name="pattern">[0-9]+</param>
+ </data>
+ </define>
+
+ <define name='url'>
+ <data type="string">
+ <param name="pattern">\w+://.*</param>
+ </data>
+ </define>
+
+ <define name='policies'>
+ <data type="string">
+ <param name="pattern">required|optional</param>
+ </data>
+ </define>
+
+ <define name='path-formats'>
+ <data type="string">
+ <param name="pattern">dos|unix</param>
+ </data>
+ </define>
+ <define name='driver-signing-reqs'>
+ <data type="string">
+ <param name="pattern">strict|warn|none</param>
+ </data>
+ </define>
+
+ <define name='release-status'>
+ <element name='release-status'>
+ <data type="string">
+ <param name="pattern">snapshot|prerelease|released|rolling</param>
+ </data>
+ </element>
+ </define>
+
+ <define name='injection-method'>
+ <element name='injection-method'>
+ <data type="string">
+ <param name="pattern">cdrom|disk|floppy|initrd|web</param>
+ </data>
+ </element>
+ </define>
+
+ <define name='firmware-types'>
+ <choice>
+ <value>bios</value>
+ <value>efi</value>
+ </choice>
+ </define>
+</grammar>