> On 01 Jul 2015, at 09:21, Juergen Schoenwaelder 
> <[email protected]> wrote:
> 
> On Wed, Jul 01, 2015 at 08:54:07AM +0200, Ladislav Lhotka wrote:
>> Juergen Schoenwaelder <[email protected]> writes:
>> 
>>> On Tue, Jun 30, 2015 at 04:07:10PM +0200, Ladislav Lhotka wrote:
>>>> 
>>>>> On 30 Jun 2015, at 15:39, Juergen Schoenwaelder 
>>>>> <[email protected]> wrote:
>>>>> 
>>>>> On Tue, Jun 30, 2015 at 03:32:13PM +0200, Ladislav Lhotka wrote:
>>>>>> 
>>>>>>> On 30 Jun 2015, at 15:20, Juergen Schoenwaelder 
>>>>>>> <[email protected]> wrote:
>>>>>>> 
>>>>>>> On Tue, Jun 30, 2015 at 02:56:30PM +0200, Ladislav Lhotka wrote:
>>>>>>>> Juergen Schoenwaelder <[email protected]> writes:
>>>>>>>> 
>>>>>>>>> On Mon, Jun 29, 2015 at 11:49:11AM +0200, Ladislav Lhotka wrote:
>>>>>>>>>> Hi Juergen,
>>>>>>>>>> 
>>>>>>>>>> thank you for the review.
>>>>>>>>>> 
>>>>>>>>>> Juergen Schoenwaelder <[email protected]> writes:
>>>>>>>>>> 
>>>>>>>>>>> On Mon, Jun 15, 2015 at 10:49:28PM +0000, Kent Watsen wrote:
>>>>>>>>>>>> 
>>>>>>>>>>>> This is a notice to start a NETMOD WG last call for the document 
>>>>>>>>>>>> "JSON Encoding of Data Modeled with YANG":
>>>>>>>>>>>> 
>>>>>>>>>>>> https://tools.ietf.org/html/draft-ietf-netmod-yang-json-04
>>>>>>>>>>>> 
>>>>>>>>>>>> Please indicate your support by Monday June 29, 2015 at 9PM EST.
>>>>>>>>>>> 
>>>>>>>>>>> Hi,
>>>>>>>>>>> 
>>>>>>>>>>> I have reviewed draft-ietf-netmod-yang-json-04.
>>>>>>>>>>> 
>>>>>>>>>>> - I am not sure I agree with the wording in section 3. Why is 
>>>>>>>>>>> section
>>>>>>>>>>> 8.3.3 only applicable to XML encoded data? Validation applies to
>>>>>>>>>>> datastores. While constraints are defined using XML-based notations
>>>>>>>>>> 
>>>>>>>>>> You are right that this section shouldn't talk about XML-encoded 
>>>>>>>>>> data,
>>>>>>>>>> i.e. serialized form. On the other hand, XPath 1.0 spec says: "XPath
>>>>>>>>>> operates on the abstract, logical structure of an XML document, …".
>>>>>>>>>> 
>>>>>>>>>> So I think a datastore needs to be represented, at least 
>>>>>>>>>> conceptually,
>>>>>>>>>> as XML infoset.
>>>>>>>>>> 
>>>>>>>>>>> such as XPATH, how the validation is carried out is not defined in
>>>>>>>>>>> the YANG specifications. I guess I actually disagree with the
>>>>>>>>>> 
>>>>>>>>>> I don't think this is true. YANG spec doesn't say how "must" and 
>>>>>>>>>> "when"
>>>>>>>>>> statements are evaluated, and relies on XPath.
>>>>>>>>> 
>>>>>>>>> RFC 6020:
>>>>>>>>> 
>>>>>>>>> When a datastore is validated, all "must" constraints are
>>>>>>>>> conceptually evaluated once for each data node in the data tree, and
>>>>>>>>> for all leafs with default values in use (see Section 7.6.1).  If a
>>>>>>>>> data node does not exist in the data tree, and it does not have a
>>>>>>>>> default value, its "must" statements are not evaluated.
>>>>>>>>> 
>>>>>>>>> [...]
>> 
>> The text you substituted here with an ellipsis is actually quite
>> important for this discussion because it defines the context for XPath
>> evaluation (together with section 6.4), in particular the data tree on
>> which every XPath expression is evaluated. It is clear that the data
>> tree can also comprise state data, notification content or RPC
>> input/output, i.e. not only datastore content as you keep saying.
>> 
>> Terms like "context node" refer to the XPath data model as described in
>> sec. 5 of the XPath spec:
>> 
>> http://www.w3.org/TR/1999/REC-xpath-19991116/#data-model
>> 
>> (and section 6.4 in RFC 6020 says it explicitly).
>> 
>> We need to know, at least conceptually, how to construct the XPath data
>> tree from JSON text. For example, it has to be clear that leaf-list
>> entries encoded as a JSON array appear as sibling nodes in the data
>> tree, otherwise a "must" constraint specified for the leaf-list won't
>> work correctly. I don't think this is anyhow evident and IMO it has to
>> be addressed. This is the purpose of section 3 in
>> draft-ietf-netmod-yang-json-04.
>> 
>> Would it help if "validation" is replaced with "XPath evaluation"
>> throughout this section?
> 
> No. I continue to believe (a) a datastore is validated and not an XML
> infoset (or something like that) and (b) that the evaluation of "must"
> constraints is conceptual.

Both NETCONF and YANG are absolutely silent about the data model of a 
datastore, so I assume it can be pretty much anything. Can you explain how a 
“must” constraint is conceptually evaluated on, say, key-value database?

Lada

> 
> JSON is an encoding. It remains unclear why you think that the JSON
> encoding has any impact of what happens with a datastore.
> 
> /js
> 
> -- 
> Juergen Schoenwaelder           Jacobs University Bremen gGmbH
> Phone: +49 421 200 3587         Campus Ring 1 | 28759 Bremen | Germany
> Fax:   +49 421 200 3103         <http://www.jacobs-university.de/>

--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C




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

Reply via email to