On 02/19/2013 04:39 PM, Eric Blake wrote:
On 02/15/2013 12:02 PM, Gene Czarcinski wrote:
> Although in IPv4 one must pick either mac or name, either
> can be omitted. Similarly, for IPv6, the name
> can be optionally omitted.
> Signed-off-by: Gene Czarcinski <gene(a)czarc.net>
> ---
> docs/schemas/network.rng | 4 +++-
> 1 file changed, 3 insertions(+), 1 deletion(-)
>
> diff --git a/docs/schemas/network.rng b/docs/schemas/network.rng
> index 09d7c73..a479453 100644
> --- a/docs/schemas/network.rng
> +++ b/docs/schemas/network.rng
> @@ -281,7 +281,9 @@
> <optional>
> <attribute name="mac"><ref
name="uniMacAddr"/></attribute>
> </optional>
> - <attribute
name="name"><text/></attribute>
> + <optional>
> + <attribute
name="name"><text/></attribute>
> + </optional>
Hmm. This says that I can omit both name and mac, and still validate.
Better would be this RelaxNG construct, which says that I must supply at
least one, but can also supply both; the difference is that failure to
supply either will cause a (desired) validation failure.
<choice>
<group>
<attribute name="mac"><ref
name="uniMacAddr"/></attribute>
<optional>
<attribute name="name"><text/></attribute>
</optional>
</group>
<attribute name="name"><text/></attribute>
</choice>
I know Laine already ack'd but since we haven't pushed yet, I'm
wondering if it is worth tightening the grammar.
Looks good to me. I'm pushing it with that change.