On 10/04/2012 01:56 PM, Harsh Bora wrote: >> Deepak is right - the <attribute name="transport"> block must be >> embedded in an <optional> block. <zeroOrMore> only applies to elements, >> but as written, your zeroOrMore says that it is okay to omit the overall >> <host> element, but that if you provide a <host> element, it MUST have a >> transport='...' attribute, and that is not correct. For back-compat >> reasons, ALL new attributes must be in an <optional> block since older >> clients of the XML did not provide the new attributes. > > Looking at the grammar, it appeared to me like what you said, however, > when I tested the patch, zeroOrMore worked successfully for the > transport attribute as well. However, I am willing to use <optional> > block for consistency. Hmm, I guess I'd have to read up on the actual grammar of RNG notation to see if using <zeroOrMore> as an alternate spelling of <optional> for fixed-name attributes is kosher or just something that our particular RNG validation engine permits, but it's certainly not typical usage, when you realize that there will never be more than one of that attribute. At any rate, we've hashed this topic to death :) > >> >>> >>> I chose to check for only ':' to decide if its a IPv6 addr because it >>> doesnt make sense to be partial towards '.' What if someone specifies a >>> host name like 12:12;12,12 or 23:23,23,23 ? A '.' in an IPv6 addr is as >>> bad as any other invalid char. >> >> '.' is valid in IPv6 addr. But yes, ':' is mandatory in IPv6, and >> forbidden in IPv4, so it makes a good distinguishing test between the >> two families. > > So, are you suggesting to validate IPv4 only and that too based on the > absence of ':' and presence of '.'? Does that really suffice to validate > an IPv4 since any other special character is also an invalid separator > for IPv4 ? Ultimately, you want to accept both types of IP addresses. I was just replying to your quote about '.' not being valid in IPv6 as being an incorrect statement; I don't really know what the best separator character is that you want to be using in this context, because I haven't been following the original conversation closely enough. You should also realize that hostnames cannot contain ':' or ';' (I'm not sure about ','), so your question about someone setting a hostname to '12:12;12,12' to confuse the parser is not worth worrying about. -- Eric Blake eblake@xxxxxxxxxx +1-919-301-3266 Libvirt virtualization library http://libvirt.org
Attachment:
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list