Daniel Veillard <[email protected]> wrote on 04/06/2010 09:10:11 AM:
> > Please respond to veillard > > On Mon, Apr 05, 2010 at 12:53:19PM -0400, Stefan Berger wrote: > > This patch adds a relaxng nwfilter schema along with a test that > > verifies all the test output XML against the schema. The input XMLs > > contain a lot of intentional out-of-range values that make them fail the > > schema verification, so I am not verifying against those. > > > > Signed-off-by: Stefan Berger <[email protected]> > > Signed-off-by: Gerhard Stenzel <[email protected]> > > > > --- > > docs/schemas/Makefile.am | 3 > > docs/schemas/domain.rng | 31 + > > docs/schemas/nwfilter.rng | 783 > > ++++++++++++++++++++++++++++++++++++++++++++++ > > libvirt.spec.in | 1 > > tests/Makefile.am | 4 > > tests/nwfilterschematest | 11 > > 6 files changed, 831 insertions(+), 2 deletions(-) > > > [...] > > + <define name="addrMAC"> > > + <choice> > > + <!-- variable --> > > + <data type="string"> > > + <param name="pattern">[\\$]{1}[a-zA-Z0-9_]+</param> > > + </data> > > + > > + <data type="string"> > > + <param > > name="pattern">([a-fA-F0-9]{1,2}:){5}[a-fA-F0-9]{1,2}</param> > > + </data> > > + </choice> > > + </define> > > Hum, can you explain why you get apparently 2 completely different > format values ranges here (and in a number of other types), I'm a bit > lost. Every item in the network filter xml can be a variable like $MAC or $IP. So for the schema to validate a srcmacaddr="$MAC" I needed to add the above 'variable' pattern. I had a lot of problems finding a way to require a $ as first letter and I ended up having to use the [\\$]{1} construct. Also I could not find a switch for non-case-sensitive string comparison like other regexes have (?i) or \i for example... I suppose there is none. > > [...] > > Index: libvirt-acl/docs/schemas/domain.rng > > =================================================================== > > --- libvirt-acl.orig/docs/schemas/domain.rng > > +++ libvirt-acl/docs/schemas/domain.rng > > @@ -894,6 +894,11 @@ > > <optional> > > <ref name="address"/> > > </optional> > > + <optional> > > + <element name="filterref"> > > + <ref name="filterref-node-attributes"/> > > + </element> > > + </optional> > > </interleave> > > </define> > > <!-- > @@ -1577,6 +1582,22 @@ > > </element> > > </define> > > > > + <define name="filterref-node-attributes"> > > + <attribute name="filter"> > > + <data type="NCName"/> > > + </attribute> > > + <optional> > > + <element name="parameter"> > > + <attribute name="name"> > > + <ref name="parameter-name"/> > > + </attribute> > > + <attribute name="value"> > > + <ref name="parameter-value"/> > > + </attribute> > > + </element> > > + </optional> > > + </define> > > + > > <!-- > Type library > > > > @@ -1737,4 +1758,14 @@ > > <param name="pattern">[a-zA-Z0-9_\.\+\-/]+</param> > > </data> > > </define> > > + <define name="parameter-name"> > > + <data type="string"> > > + <param name="pattern">[a-zA-Z0-9_]+</param> > > + </data> > > + </define> > > + <define name="parameter-value"> > > + <data type="string"> > > + <param name="pattern">[a-zA-Z0-9_\.:]+</param> > > + </data> > > + </define> > > </grammar> > > I just find parameter-name/parameter-value a bit too generic names, > if you could make them more specific to the task, like > filter-param-name / filter-param-value > > but it's minor, and it's good to have updated schema and augmented > testing Ok, so I will rename those two to the names you suggest. Should I post again before pushing it to the repository? Stefan > > ACK > > Daniel > > -- > Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ > [email protected] | Rpmfind RPM search engine http://rpmfind.net/ > http://veillard.com/ | virtualization library http://libvirt.org/
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
