[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

Re: [libvirt] [PATCH] virsh: Improve editing

On Mon, May 16, 2011 at 02:59:28PM -0600, Eric Blake wrote:
> On 05/16/2011 01:12 AM, Daniel Veillard wrote:
> > On Fri, May 13, 2011 at 02:42:29PM +0100, Daniel P. Berrange wrote:
> >> There are two common problems with virsh edit & friends
> >>
> >>   - Invalid XML syntax, causes error report & lost changes
> >>   - User add unsupported/unknown XML attributes/elements which
> >>     are silently discarded by libvirt
> >>
> >> This patch only fixes the first problem. It would be nice to
> >> fix the second two, by running the XML through the RNG schema
> >> validator.
> >>
> >> Rather than do this in virsh though, I'd add some flags to
> >> the virXXXXDefine/Create  APIs, eg
> >>
> >>
> >> virsh can set this flag by default, and if the XML fails
> >> validation, it could prompt the user, asking if they want
> >> to proceed anyway (in which case recall the same API but
> >> without the validate flag set), or re-edit the XML
> > 
> >   Hum, yes I agree with the option of validating on define of APIs
> > the only problem is that we tend to have holes in the RNG, but
> > since that would be optional I think that's okay, this would
> > hopefully help finding the mismatches between the RNG and the C parsing
> > code.
> There's also the idea of doing a round trip parse -> dumpxml -> compare;
> but that also has problems where dumpxml sometimes rearranges elements
> or populates backwards-compatibility additions that were not present in
> the original.

  Yeah that can't fly, even for an XML/Markup editor preserving this
kind of non-strucural information is nearly impossible, since we even
discard the tree in libvirt after parsing we really can't hope to do
anything like this.


Daniel Veillard      | libxml Gnome XML XSLT toolkit  http://xmlsoft.org/
daniel veillard com  | Rpmfind RPM search engine http://rpmfind.net/
http://veillard.com/ | virtualization library  http://libvirt.org/

[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]