-----Original Message----- From: Martin Bjorklund [mailto:[email protected]] Sent: 25 February 2016 15:31 To: William Ivory <[email protected]> Cc: [email protected] Subject: Re: [netmod] Clarification needed for YANG 1.1 XPATH context
William Ivory <[email protected]> wrote: > > > -----Original Message----- > From: Martin Bjorklund [mailto:[email protected]] > Sent: 25 February 2016 15:17 > To: William Ivory <[email protected]> > Cc: [email protected] > Subject: Re: [netmod] Clarification needed for YANG 1.1 XPATH context > > William Ivory <[email protected]> wrote: > > Hi, > > > > I'm looking for clarification on the meaning of the following > > paragraph in section 6.4.1 (XPATH context) in RFC6020bis: > > > > 'If a node that exists in the accessible tree has a non-presence > > container as a child, then the non-presence container also exists in > > the tree.' > > > > It's unclear to me what this is trying to say, and why - for > > example, does this mean that I need to validate any 'must' and 'when' > > statements on the child container even when nothing within that > > child container is configured? > > must expressions are always evaluated if the node where the must > expression is defined exists, regardless of the number of children > this node has. > > [wivory] So in my example where the child container (non-presence) has > NO children, then it doesn't exist, and any must statement on it > should not be run. Only when a non-presence container has a non-zero > number of children should any 'must' statements on that container be > run. > > [wivory] If that's the case, then would it be correct to say that the > intention of this paragraph is as a reminder that one must evaluate > 'must' statements on nodes that have no inherent meaning and exist > only because they contain child nodes? No; section 7.5.3 says: When a datastore is validated, all "must" constraints are conceptually evaluated once for each node in the accessible tree (see Section 6.4.1). And the quoted paragraph of 6.4.1 says that the NP-container (conceptually) exists if its parent exists - regardless of number of children. So if the parent exists, any must expressions in the NP-container are evaluated. [wivory] Is the intended use case top-level containers (directly under the root node) where you might wish to enforce that at least one such container existed? In that case there would be no higher level node (as you can't add when/must to root) on which you could attach the 'must'. At any other level in the tree you would always be able to attach the 'must' at a higher level. Or am I missing some use case(s)? Thanks, William /martin _______________________________________________ netmod mailing list [email protected] https://www.ietf.org/mailman/listinfo/netmod
