On 06/22/2018 07:24 AM, Han Han wrote: > For input,hub,redirdev devices, their sub-elements should be interleaved. > > input device: interleave for <driver>, <alias>, <address> > hub device: interleave for <alias>, <address> > redirdev device: interleave for <source>, <alias>, <address>, <boot> > > Signed-off-by: Han Han <hhan@xxxxxxxxxx> > --- > docs/schemas/domaincommon.rng | 60 +++++++++++++++++++---------------- > 1 file changed, 33 insertions(+), 27 deletions(-) > > diff --git a/docs/schemas/domaincommon.rng b/docs/schemas/domaincommon.rng > index 4a454dddb4..d262eb2b1b 100644 > --- a/docs/schemas/domaincommon.rng > +++ b/docs/schemas/domaincommon.rng > @@ -4270,11 +4270,19 @@ > > <define name="input"> > <element name="input"> > - <optional> > - <element name="driver"> > - <ref name="virtioOptions"/> > - </element> > - </optional> > + <interleave> > + <optional> > + <element name="driver"> > + <ref name="virtioOptions"/> > + </element> > + </optional> > + <optional> > + <ref name="alias"/> > + </optional> > + <optional> > + <ref name="address"/> > + </optional> > + </interleave> > <choice> > <group> > <attribute name="type"> This is not that simple. In between these two hunks there's another possible element defined <source/> for this kind of <input/> device: <input type='passthrough' bus='virtio'> <driver iommu='on' ats='on'/> <source evdev='/dev/input/event1234'/> <address type='pci' domain='0x0000' bus='0x00' slot='0x12' function='0x0'/> </input> What we need is to put the whole <element name="input"/> body into <interleave/>. Fixed, ACKed and pushed. Michal -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list