daemon: debug segv correct use of dereferencing NULL.
[libguestfs.git] / inspector / virt-inspector.rng
index 89f9e6c..4fd208a 100644 (file)
@@ -1,11 +1,13 @@
-<grammar xmlns="http://relaxng.org/ns/structure/1.0">
+<grammar
+  xmlns="http://relaxng.org/ns/structure/1.0"
+  datatypeLibrary="http://www.w3.org/2001/XMLSchema-datatypes">
   <!-- -*- xml -*-
-  This is a RELAX NG schema for the output of 'virt-inspector - -xml'.
+  This is a RELAX NG schema for the output of 'virt-inspector'.
 
   To validate an existing document against this schema, you can
   use xmllint, like this:
 
-    virt-inspector - -xml Foo > output.xml
+    virt-inspector -d Foo > output.xml
     xmllint - -noout - -relaxng virt-inspector.rng output.xml
 
   (Note that because of limitations of XML, I have had to put spaces
         <element name="operatingsystem">
           <interleave>
 
-            <!-- required fields for an operating system -->
+            <optional><element name="root"><text/></element></optional>
             <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="arch"><text/></element></optional>
             <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="product_name"><text/></element></optional>
+            <optional><element name="product_variant"><text/></element></optional>
+            <element name="major_version"><text/></element>
+            <element name="minor_version"><text/></element>
+            <optional><element name="windows_systemroot"><text/></element></optional>
+            <optional><element name="windows_current_control_set"><text/></element></optional>
             <optional><element name="package_format"><text/></element></optional>
             <optional><element name="package_management"><text/></element></optional>
+            <optional><element name="hostname"><text/></element></optional>
+            <optional><element name="format"><text/></element></optional>
+            <optional><element name="live"><empty/></element></optional>
+            <optional><element name="netinst"><empty/></element></optional>
+            <optional><element name="multipart"><empty/></element></optional>
 
             <ref name="mountpoints"/>
             <ref name="filesystems"/>
+            <optional><ref name="drive_mappings"/></optional>
             <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>
+
+            <optional><element name="icon"><data type="base64Binary"/></element></optional>
 
           </interleave>
         </element>
         <element name="filesystem">
           <attribute name="dev"><text/></attribute>
           <interleave>
-            <element name="type"><text/></element>
-            <optional><element name="content"><text/></element></optional>
+            <optional><element name="type"><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>
 
+  <!-- drive mappings (for Windows) -->
+  <define name="drive_mappings">
+    <element name="drive_mappings">
+      <oneOrMore>
+        <element name="drive_mapping">
+          <attribute name="name"><text/></attribute>
+          <text/>
+        </element>
+      </oneOrMore>
+    </element>
+  </define>
+
   <!-- applications installed -->
   <define name="applications">
     <element name="applications">
       <zeroOrMore>
         <element name="application">
           <element name="name"><text/></element>
+          <optional><element name="display_name"><text/></element></optional>
           <optional><element name="epoch"><text/></element></optional>
-          <element name="version"><text/></element>
-          <element name="release"><text/></element>
-          <element name="arch"><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>
+          <optional><element name="version"><text/></element></optional>
+          <optional><element name="release"><text/></element></optional>
+          <optional><element name="install_path"><text/></element></optional>
+          <optional><element name="publisher"><text/></element></optional>
+          <optional><element name="url"><text/></element></optional>
+          <optional><element name="source_package"><text/></element></optional>
+          <optional><element name="summary"><text/></element></optional>
+          <optional><element name="description"><text/></element></optional>
         </element>
       </zeroOrMore>
     </element>