[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[libvirt] [PATCH 1/7] Sysinfo extension to relax-ng schemas



Currently includes a subset of the SMBIOS strings set

Signed-off-by: Daniel Veillard <veillard redhat com>
---
 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 aaf9667..ced46f3 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"/>
@@ -1744,6 +1747,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>

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]