On Mon, Feb 25, 2013 at 01:13:37PM +0100, Pieter Hollants wrote: > Out of curiosity, seeing that we doing modifications to the XML > schema all the time, there does not seem to be some sort of version > identifier in the XML schemas. > > If I take the recently merged patch for DHCP options, for instance, > suppose virt-manager would add support for it in its GUI. How would > such a network XML definition be interpreted by older libvirt > versions? Is it supposed to ignore elements it doesn't know or do we > have an implicit requirement of "always use the latest versions > together"? The base principle is that we are supposed to only do "additions" i.e. an XML which was RNG valid for a version A should still be valid for the RHN shipped with version B , B >= A. And an older version of the code usually still work with a newer XML instance. There had been some small breakage IIRC but usually thise rule works. In general the way it works is that we don't validate XML input, but we convert it to an internal data structure by picking the information we know about. So the parser from A may extract only the subset it knows about. The "danger" is that it will accept XML definition without fully understanding the semantic of all elements, instead of filing to load it. It is usually acceptable, the problem is for example when the discarded elements includes security or features really needed for proper work. One thing which will fail commonly is that if we add an extra value for an attribute, usually we use macro mapping the text value in the XML to an internal enum, and if the match can't be done, you get an error. So we tend to fail on unknow attribute values, but accept unknown element most of the time. Daniel -- Daniel Veillard | Open Source and Standards, Red Hat veillard@xxxxxxxxxx | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ http://veillard.com/ | virtualization library http://libvirt.org/ -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list