]> xenbits.xensource.com Git - libvirt.git/commitdiff
schemas: Allow direct children of <filesystem/> to be interleaved
authorMichal Privoznik <mprivozn@redhat.com>
Wed, 6 Jan 2021 11:52:13 +0000 (12:52 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Wed, 6 Jan 2021 12:44:19 +0000 (13:44 +0100)
Now that individual child elements allow their children to be
interleaved, let's allow direct children of <filesystem/> to be
interleaved too.

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
docs/schemas/domaincommon.rng

index 9f3b65b5461290ffba1ab4f38a7ed58f8ecf837f..24b4994670881cab6f1d0febaa04a57c5bf24ca8 100644 (file)
   </define>
   <define name="filesystem">
     <element name="filesystem">
-      <choice>
-        <group>
-          <attribute name="type">
-            <value>file</value>
-          </attribute>
-          <interleave>
-            <optional>
-              <ref name="fsDriver"/>
-            </optional>
-            <element name="source">
-              <attribute name="file">
-                <ref name="absFilePath"/>
-              </attribute>
-              <empty/>
-            </element>
-          </interleave>
-        </group>
-        <group>
-          <attribute name="type">
-            <value>block</value>
-          </attribute>
-          <interleave>
-            <optional>
-              <ref name="fsDriver"/>
-            </optional>
-            <element name="source">
-              <attribute name="dev">
-                <ref name="absFilePath"/>
-              </attribute>
-              <empty/>
-            </element>
-          </interleave>
-        </group>
-        <group>
-          <!-- type="mount" is default -->
-          <optional>
+      <interleave>
+        <choice>
+          <group>
             <attribute name="type">
-              <value>mount</value>
+              <value>file</value>
             </attribute>
-          </optional>
-          <interleave>
-            <optional>
-              <ref name="fsDriver"/>
-            </optional>
-            <optional>
-              <ref name="fsBinary"/>
-            </optional>
-            <element name="source">
-              <attribute name="dir">
-                <ref name="absDirPath"/>
-              </attribute>
-              <empty/>
-            </element>
-          </interleave>
-        </group>
-        <group>
-          <optional>
+            <interleave>
+              <optional>
+                <ref name="fsDriver"/>
+              </optional>
+              <element name="source">
+                <attribute name="file">
+                  <ref name="absFilePath"/>
+                </attribute>
+                <empty/>
+              </element>
+            </interleave>
+          </group>
+          <group>
             <attribute name="type">
-              <value>bind</value>
+              <value>block</value>
             </attribute>
-          </optional>
-          <interleave>
+            <interleave>
+              <optional>
+                <ref name="fsDriver"/>
+              </optional>
+              <element name="source">
+                <attribute name="dev">
+                  <ref name="absFilePath"/>
+                </attribute>
+                <empty/>
+              </element>
+            </interleave>
+          </group>
+          <group>
+            <!-- type="mount" is default -->
             <optional>
-              <ref name="fsDriver"/>
-            </optional>
-            <element name="source">
-              <attribute name="dir">
-                <ref name="absDirPath"/>
+              <attribute name="type">
+                <value>mount</value>
               </attribute>
-              <empty/>
-            </element>
-          </interleave>
-        </group>
-        <group>
-          <attribute name="type">
-            <value>template</value>
-          </attribute>
-          <interleave>
-            <optional>
-              <ref name="fsDriver"/>
             </optional>
-            <element name="source">
-              <attribute name="name">
-                <ref name="genericName"/>
-              </attribute>
-              <empty/>
-            </element>
-          </interleave>
-        </group>
-        <group>
-          <attribute name="type">
-            <value>ram</value>
-          </attribute>
-          <interleave>
+            <interleave>
+              <optional>
+                <ref name="fsDriver"/>
+              </optional>
+              <optional>
+                <ref name="fsBinary"/>
+              </optional>
+              <element name="source">
+                <attribute name="dir">
+                  <ref name="absDirPath"/>
+                </attribute>
+                <empty/>
+              </element>
+            </interleave>
+          </group>
+          <group>
             <optional>
-              <ref name="fsDriver"/>
-            </optional>
-            <element name="source">
-              <attribute name="usage">
-                <ref name="unsignedLong"/>
+              <attribute name="type">
+                <value>bind</value>
               </attribute>
+            </optional>
+            <interleave>
+              <optional>
+                <ref name="fsDriver"/>
+              </optional>
+              <element name="source">
+                <attribute name="dir">
+                  <ref name="absDirPath"/>
+                </attribute>
+                <empty/>
+              </element>
+            </interleave>
+          </group>
+          <group>
+            <attribute name="type">
+              <value>template</value>
+            </attribute>
+            <interleave>
               <optional>
-                <attribute name="units">
-                  <ref name="unit"/>
+                <ref name="fsDriver"/>
+              </optional>
+              <element name="source">
+                <attribute name="name">
+                  <ref name="genericName"/>
                 </attribute>
+                <empty/>
+              </element>
+            </interleave>
+          </group>
+          <group>
+            <attribute name="type">
+              <value>ram</value>
+            </attribute>
+            <interleave>
+              <optional>
+                <ref name="fsDriver"/>
               </optional>
+              <element name="source">
+                <attribute name="usage">
+                  <ref name="unsignedLong"/>
+                </attribute>
+                <optional>
+                  <attribute name="units">
+                    <ref name="unit"/>
+                  </attribute>
+                </optional>
+                <empty/>
+              </element>
+            </interleave>
+          </group>
+        </choice>
+        <interleave>
+          <element name="target">
+            <attribute name="dir"/>
+            <empty/>
+          </element>
+          <optional>
+            <attribute name="accessmode">
+              <choice>
+                <value>passthrough</value>
+                <value>mapped</value>
+                <value>squash</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="multidevs">
+              <choice>
+                <value>default</value>
+                <value>remap</value>
+                <value>forbid</value>
+                <value>warn</value>
+              </choice>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="fmode">
+              <ref name="createMode"/>
+            </attribute>
+          </optional>
+          <optional>
+            <attribute name="dmode">
+              <ref name="createMode"/>
+            </attribute>
+          </optional>
+          <optional>
+            <element name="readonly">
               <empty/>
             </element>
-          </interleave>
-        </group>
-      </choice>
-      <interleave>
-        <element name="target">
-          <attribute name="dir"/>
-          <empty/>
-        </element>
-        <optional>
-          <attribute name="accessmode">
-            <choice>
-              <value>passthrough</value>
-              <value>mapped</value>
-              <value>squash</value>
-            </choice>
-          </attribute>
-        </optional>
+          </optional>
+          <optional>
+            <ref name="alias"/>
+          </optional>
+          <optional>
+            <ref name="address"/>
+          </optional>
+        </interleave>
+        <interleave>
+          <optional>
+            <element name="space_hard_limit">
+              <ref name="scaledInteger"/>
+            </element>
+          </optional>
+          <optional>
+            <element name="space_soft_limit">
+              <ref name="scaledInteger"/>
+            </element>
+          </optional>
+        </interleave>
         <optional>
-          <attribute name="multidevs">
+          <attribute name="model">
             <choice>
-              <value>default</value>
-              <value>remap</value>
-              <value>forbid</value>
-              <value>warn</value>
+              <value>virtio</value>
+              <value>virtio-transitional</value>
+              <value>virtio-non-transitional</value>
             </choice>
           </attribute>
         </optional>
-        <optional>
-          <attribute name="fmode">
-            <ref name="createMode"/>
-          </attribute>
-        </optional>
-        <optional>
-          <attribute name="dmode">
-            <ref name="createMode"/>
-          </attribute>
-        </optional>
-        <optional>
-          <element name="readonly">
-            <empty/>
-          </element>
-        </optional>
-        <optional>
-          <ref name="alias"/>
-        </optional>
-        <optional>
-          <ref name="address"/>
-        </optional>
       </interleave>
-      <interleave>
-        <optional>
-          <element name="space_hard_limit">
-            <ref name="scaledInteger"/>
-          </element>
-        </optional>
-        <optional>
-          <element name="space_soft_limit">
-            <ref name="scaledInteger"/>
-          </element>
-        </optional>
-      </interleave>
-      <optional>
-        <attribute name="model">
-          <choice>
-            <value>virtio</value>
-            <value>virtio-transitional</value>
-            <value>virtio-non-transitional</value>
-          </choice>
-        </attribute>
-      </optional>
     </element>
   </define>
   <define name="fsDriver">