From 99baf1ba758b264b4a5dfec79569c87d7a516db3 Mon Sep 17 00:00:00 2001 Message-Id: <99baf1ba758b264b4a5dfec79569c87d7a516db3.1305127059.git.jdenemar@redhat.com> From: Daniel Veillard <veillard@redhat.com> Date: Mon, 9 May 2011 17:22:10 -0600 Subject: [PATCH] Sysinfo extension to relax-ng schemas https://bugzilla.redhat.com/show_bug.cgi?id=661365 Currently includes a subset of the SMBIOS strings set (cherry picked from commit 5c3611ca399f4adb2b28bece28a821fbae1b849b) --- docs/schemas/domain.rng | 75 +++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 75 insertions(+), 0 deletions(-) diff --git a/docs/schemas/domain.rng b/docs/schemas/domain.rng index bf3e4a2..d8c24ea 100644 --- a/docs/schemas/domain.rng +++ b/docs/schemas/domain.rng @@ -30,6 +30,9 @@ <optional> <ref name="cpu"/> </optional> + <optional> + <ref name="sysinfo"/> + </optional> <ref name="os"/> <ref name="clock"/> <ref name="resources"/> @@ -1622,6 +1625,78 @@ </element> </define> + <!-- + System information specification: + Placeholder for system specific informations likes the ones + contained in the SMBIOS area. + Only a limited subset of entries can be modified there, so we + fully enumerate each case here. + The DMTF spec doesn't specify any string subset, just 0 terminated + byte strings, but better be safe and restrict at least the names + to avoid problems with space normalization in attribute values, + the value is kept as the element body for maximum flexibility. + A priori we allow only type 0 and type 1 string updates + --> + <define name="sysinfo"> + <element name="sysinfo"> + <attribute name="type"> + <value>smbios</value> + </attribute> + <interleave> + <optional> + <element name="bios"> + <oneOrMore> + <element name="entry"> + <attribute name="name"> + <ref name="sysinfo-bios-name"/> + </attribute> + <ref name="sysinfo-value"/> + </element> + </oneOrMore> + </element> + </optional> + <optional> + <element name="system"> + <oneOrMore> + <element name="entry"> + <attribute name="name"> + <ref name="sysinfo-system-name"/> + </attribute> + <ref name="sysinfo-value"/> + </element> + </oneOrMore> + </element> + </optional> + </interleave> + </element> + </define> + + <define name="sysinfo-bios-name"> + <choice> + <value>vendor</value> + <value>version</value> + <value>date</value> + <value>release</value> + </choice> + </define> + + <define name="sysinfo-system-name"> + <choice> + <value>manufacturer</value> + <value>product</value> + <value>version</value> + <value>serial</value> + <value>uuid</value> + <value>sku</value> + </choice> + </define> + + <define name="sysinfo-value"> + <data type="string"> + <param name='pattern'>[a-zA-Z0-9/\-_\. ]+</param> + </data> + </define> + <define name="address"> <element name="address"> <choice> -- 1.7.5.rc3