schema: domain: Allow interleave of 'smartcard' subelements

Allow interleave of the top level sub-elements as well as the
subelements in the 'host-certificates' mode. Note that '<interleave>'
doesn't work properly if there's multiple definitions of the same
sub-element in the interleave so for this patch I chose to '<group>' the
'certificate' subelements. Another options would require us to stop
enforcing that there's exactly 3 of them.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2022-10-13 16:22:22 +02:00
parent 61d1b9e659
commit 9132cc635b

View File

@ -5559,49 +5559,57 @@
</interleave>
</element>
</define>
<define name="smartcard">
<element name="smartcard">
<choice>
<group>
<attribute name="mode">
<value>host</value>
</attribute>
<!-- might need to add optional database element here later -->
</group>
<group>
<attribute name="mode">
<value>host-certificates</value>
</attribute>
<ref name="certificate"/>
<ref name="certificate"/>
<ref name="certificate"/>
<optional>
<element name="database">
<ref name="absDirPath"/>
</element>
</optional>
</group>
<group>
<attribute name="mode">
<value>passthrough</value>
</attribute>
<ref name="qemucdevSrcType"/>
<interleave>
<ref name="qemucdevSrcDef"/>
<optional>
<ref name="qemucdevTgtDef"/>
</optional>
</interleave>
</group>
</choice>
<optional>
<ref name="acpi"/>
</optional>
<optional>
<ref name="address"/>
</optional>
<interleave>
<choice>
<group>
<attribute name="mode">
<value>host</value>
</attribute>
<!-- might need to add optional database element here later -->
</group>
<group>
<interleave>
<attribute name="mode">
<value>host-certificates</value>
</attribute>
<group>
<ref name="certificate"/>
<ref name="certificate"/>
<ref name="certificate"/>
</group>
<optional>
<element name="database">
<ref name="absDirPath"/>
</element>
</optional>
</interleave>
</group>
<group>
<attribute name="mode">
<value>passthrough</value>
</attribute>
<ref name="qemucdevSrcType"/>
<interleave>
<ref name="qemucdevSrcDef"/>
<optional>
<ref name="qemucdevTgtDef"/>
</optional>
</interleave>
</group>
</choice>
<optional>
<ref name="acpi"/>
</optional>
<optional>
<ref name="address"/>
</optional>
</interleave>
</element>
</define>
<define name="certificate">
<element name="certificate">
<text/>