]> xenbits.xensource.com Git - libvirt.git/commitdiff
schema: nodedev: Allow interleaving of sub-elements of 'device'
authorPeter Krempa <pkrempa@redhat.com>
Thu, 13 Oct 2022 16:29:49 +0000 (18:29 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 1 Feb 2023 17:01:53 +0000 (18:01 +0100)
Note that the schema doesn't allow us to represent the two branches of
optional <devnode type='dev'> and zero or more <devnode type='link'>
definitions, so I've merged them under the <zeroOrMore> case.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/schemas/nodedev.rng

index 6299c5267193963843d5585746321dd517323fc5..a9b32bb80f6a01c7c4984336565eab8b6b09b753 100644 (file)
@@ -9,41 +9,38 @@
 
   <define name="device">
     <element name="device">
-      <!-- The name of the network, used to refer to it through the API
-         and in virsh -->
-      <element name="name"><text/></element>
-      <optional>
-        <element name="path"><text/></element>
-      </optional>
-      <optional>
-        <element name="devnode">
-          <attribute name="type">
-            <value>dev</value>
-          </attribute>
-          <text/>
-        </element>
-      </optional>
-      <zeroOrMore>
-        <element name="devnode">
-          <attribute name="type">
-            <value>link</value>
-          </attribute>
-          <text/>
-        </element>
-      </zeroOrMore>
-      <optional>
-        <ref name="parent"/>
-      </optional>
+      <interleave>
+        <!-- The name of the network, used to refer to it through the API
+        and in virsh -->
+        <element name="name"><text/></element>
+        <optional>
+          <element name="path"><text/></element>
+        </optional>
+        <zeroOrMore>
+          <element name="devnode">
+            <attribute name="type">
+              <choice>
+                <value>dev</value>
+                <value>link</value>
+              </choice>
+            </attribute>
+            <text/>
+          </element>
+        </zeroOrMore>
+        <optional>
+          <ref name="parent"/>
+        </optional>
 
-      <optional>
-        <element name="driver">
-          <element name="name"><text/></element>
-        </element>
-      </optional>
+        <optional>
+          <element name="driver">
+            <element name="name"><text/></element>
+          </element>
+        </optional>
 
-      <zeroOrMore>
-        <ref name="capability"/>
-      </zeroOrMore>
+        <zeroOrMore>
+          <ref name="capability"/>
+        </zeroOrMore>
+      </interleave>
     </element>
   </define>