Ladislav Lhotka <[email protected]> wrote:
> Martin Bjorklund <[email protected]> writes:
> 
> > Ladislav Lhotka <[email protected]> wrote:
> >> Hi,
> >> 
> >> I can't find any text in 6020bis that deals with the following issue:
> >> 
> >> leaf foo {
> >>     when "false()";
> >>     mandatory true;
> >>     type empty;
> >> }
> >> 
> >> Now, sec. 7.6.5 (The leaf's mandatory Statement) says:
> >> 
> >>    o  Otherwise, the leaf MUST exist if the ancestor node exists in the
> >>       data tree.
> >> 
> >> So, if we assume the ancestor node exists in the data tree, the leaf MUST 
> >> exist.
> >> 
> >> But sec. 8.1 (Constraints on Data) says:
> >> 
> >>    The following properties are true in all data trees:
> >> 
> >>    …
> >> 
> >>    o  There MUST be no nodes tagged with "when" present if the "when"
> >>       condition evaluates to "false" in the data tree.
> >> 
> >> The "mandatory" and "when" statements contradict each other. How is
> >> this resolved?
> >
> > The idea is that a false when works like if-feature - if the when
> > evaluates to false then the mandatory constraint doesn't apply.
> 
> I would personally prefer if "mandatory" was harder than "when"

But then it would never be possible augment mandatory nodes (see that
other thread).

> because
> it is a schema constraint that can be determined upfront (so is
> "if-feature"), whereas "when" needs in principle a complete data tree to
> perform the evaluation.
> 
> But either way, there should be a text that states that false "when"
> wins over mandatory, or the other way around. I can't find any in -08,
> section 8 doesn't mention "mandatory" at all.

Ok.  It needs to be added for "min-elements" as well:

OLD:

   o  The "min-elements" and "max-elements" constraints are enforced for
      lists and leaf-lists.

NEW:

   o  The "mandatory" constraint is enforced for leafs, unless the node
      or any of its ancestors has a "when" condition or "if-feature"
      expression that evaluates to "false".

   o  The "min-elements" and "max-elements" constraints are enforced for
      lists and leaf-lists, unless the node or any of its ancestors has
      a "when" condition or "if-feature" expression that evaluates to
      "false".


/martin
_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to