On Thu, Jan 15, 2026 at 11:32:48AM +0100, Gerd Hoffmann wrote:
> > > If we want to introduce a new element, perhaps it could look like
> > > this:
> > >
> > >   <loader type='rom'>/usr/share/edk2/ovmf/OVMF.qemuvars.fd</loader>
> > >   <varstore type='uefi-vars'>
> > >     <template path='/usr/share/edk2/ovmf/OVMF_VARS.qemuvars.json'/>
> > >     <source path='/path/to/guest.json'/>
> > >   </varstore>
>
> >   <loader type='rom'>/usr/share/edk2/ovmf/OVMF.qemuvars.fd</loader>
> >   <varstore template='/usr/share/edk2/ovmf/OVMF_VARS.qemuvars.json'
> > path='/path/to/guest.json'/>
>
> <varstore template='...'>/path/to/guest.json</varstore> ?
>
> Following what we are doing for nvram ...

That would rule out extending with sub-elements later:

  <varstore template='...'>
    /path/to/guest.json
    <db>...</db>
  </varstore>

is not valid XML.

> That said I have no idea what guidance is typically used by libvirt when
> adding stuff to the schema, specifically the choice between attributes
> and sub-elements looks a bit random to me ...

There's no hard and fast rule so often it's down to the taste of
whoever introduces the new element/attribute. Having to go through
review normalizes this to some extent, but ultimately what we have
today is just the result of a schema growing organically over 20
years while maintaining full backwards compatibility :)

-- 
Andrea Bolognani / Red Hat / Virtualization

Reply via email to