schemas: Allow direct children of <filesystem/> to be interleaved

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>
This commit is contained in:
Michal Privoznik 2021-01-06 12:52:13 +01:00
parent 374502867e
commit 1dd607cd9c

View File

@ -2623,184 +2623,186 @@
</define> </define>
<define name="filesystem"> <define name="filesystem">
<element 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>
<attribute name="type">
<value>mount</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>
<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>
<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> <interleave>
<element name="target"> <choice>
<attribute name="dir"/> <group>
<empty/> <attribute name="type">
</element> <value>file</value>
<optional> </attribute>
<attribute name="accessmode"> <interleave>
<choice> <optional>
<value>passthrough</value> <ref name="fsDriver"/>
<value>mapped</value> </optional>
<value>squash</value> <element name="source">
</choice> <attribute name="file">
</attribute> <ref name="absFilePath"/>
</optional> </attribute>
<optional> <empty/>
<attribute name="multidevs"> </element>
<choice> </interleave>
<value>default</value> </group>
<value>remap</value> <group>
<value>forbid</value> <attribute name="type">
<value>warn</value> <value>block</value>
</choice> </attribute>
</attribute> <interleave>
</optional> <optional>
<optional> <ref name="fsDriver"/>
<attribute name="fmode"> </optional>
<ref name="createMode"/> <element name="source">
</attribute> <attribute name="dev">
</optional> <ref name="absFilePath"/>
<optional> </attribute>
<attribute name="dmode"> <empty/>
<ref name="createMode"/> </element>
</attribute> </interleave>
</optional> </group>
<optional> <group>
<element name="readonly"> <!-- type="mount" is default -->
<optional>
<attribute name="type">
<value>mount</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>
<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>
<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/> <empty/>
</element> </element>
</optional> <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>
</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> <optional>
<ref name="alias"/> <attribute name="model">
</optional> <choice>
<optional> <value>virtio</value>
<ref name="address"/> <value>virtio-transitional</value>
<value>virtio-non-transitional</value>
</choice>
</attribute>
</optional> </optional>
</interleave> </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> </element>
</define> </define>
<define name="fsDriver"> <define name="fsDriver">