Michael Rehder <michael.reh...@amdocs.com> writes:

> I've read rfc6110 and I didn't see any mention of "WHEN" on the
> mandatory status (section 9.1.1 Optional and Mandatory Nodes doesn't
> list it which seems a bit odd to me).

RFC 6110 was being prepared along with RFC 6020, and section 9.1.1 is
closely related to sec. 3.1 in 6020.

> The section on "WHEN" just mentions the xpath mapping, not anything
> about changing the mandatory status of the enclosing node.

If you take into account the DSDL validation procedure (Figure 2 in RFC
6110) then everything is IMO clear:

- Mandatory nodes (as defined in sec. 9.1.1) are not wrapped in
  <rng:optional> and thus are required during RELAX NG schema
  validation, no matter what any "when" expression says.

- Section 12.17 explains how when expressions are mapped to Schematron
  asserts. This means that if an instance node exists in the data and a
  when expression attached to the corresponding data node in YANG
  evaluates to false, Schematron will report a failed assert.

- Note that Schematron cannot by definition report absence of an
  instance based on the when expression attached to its data
  node: Schematron rules are only fired for elements that are present in
  the instance document. 

>
> I still think that the YANG RFC wording of "conditional" needs to indicate if 
> the node is mandatory status is affected or not.
> Note that rfc6060 "3.1 Mandatory Nodes" doesn't mention "WHEN" (it
> does mention presence).

Perhaps this thread is just about misunderstanding of what "when" really
means, which is: Instances for which the "when" expression evaluates to
false must not be present.

It does NOT mean that instances for which the "when" expression
evaluates to true must be present.

Lada

>
> Thanks
> Mike
>> -----Original Message-----
>> From: Juergen Schoenwaelder [mailto:j.schoenwael...@jacobs-university.de]
>> Sent: Saturday, October 13, 2018 5:20 PM
>> To: Michael Rehder <michael.reh...@amdocs.com>
>> Cc: netmod@ietf.org
>> Subject: Re: [netmod] WHEN statement within mandatory objects doesn't
>> ensure presence of the mandatory object
>> 
>> On Fri, Oct 12, 2018 at 04:08:48PM +0000, Michael Rehder wrote:
>> 
>> > The mandatory statement in that case is ignored (I’ve pointed out the
>> > RNG and Schematron lack of enforcement).  WHEN trumps the mandatory
>> > status (via explicit mandatory or implicit mandatory via min-elements
>> > 1)
>> 
>> Has the RNG and Schematron been obtained following RFC 6110? If so, this may
>> be a problem with RFC 6110 but not with YANG itself. There are validators 
>> that
>> do not use RNG or Schematron.
>> 
>> /js
>> 
>> --
>> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
>> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
>> Fax:   +49 421 200 3103         <https://www.jacobs-university.de/>
> “Amdocs’ email platform is based on a third-party, worldwide, cloud-based 
> system. Any emails sent to Amdocs will be processed and stored using such 
> system and are accessible by third party providers of such system on a 
> limited basis. Your sending of emails to Amdocs evidences your consent to the 
> use of such system and such processing, storing and access”.
> _______________________________________________
> netmod mailing list
> netmod@ietf.org
> https://www.ietf.org/mailman/listinfo/netmod

-- 
Ladislav Lhotka
Head, CZ.NIC Labs
PGP Key ID: 0xB8F92B08A9F76C67

_______________________________________________
netmod mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to