On Wed, Jul 1, 2015 at 6:01 AM, Ladislav Lhotka <lho...@nic.cz> wrote:
> > > On 01 Jul 2015, at 14:33, Juergen Schoenwaelder < > j.schoenwael...@jacobs-university.de> wrote: > > > > On Wed, Jul 01, 2015 at 02:03:15PM +0200, Ladislav Lhotka wrote: > >> > >>> On 01 Jul 2015, at 09:21, Juergen Schoenwaelder < > j.schoenwael...@jacobs-university.de> wrote: > >>> > >>> On Wed, Jul 01, 2015 at 08:54:07AM +0200, Ladislav Lhotka wrote: > >>>> Juergen Schoenwaelder <j.schoenwael...@jacobs-university.de> writes: > >>>> > >>>>> On Tue, Jun 30, 2015 at 04:07:10PM +0200, Ladislav Lhotka wrote: > >>>>>> > >>>>>>> On 30 Jun 2015, at 15:39, Juergen Schoenwaelder < > j.schoenwael...@jacobs-university.de> wrote: > >>>>>>> > >>>>>>> On Tue, Jun 30, 2015 at 03:32:13PM +0200, Ladislav Lhotka wrote: > >>>>>>>> > >>>>>>>>> On 30 Jun 2015, at 15:20, Juergen Schoenwaelder < > j.schoenwael...@jacobs-university.de> wrote: > >>>>>>>>> > >>>>>>>>> On Tue, Jun 30, 2015 at 02:56:30PM +0200, Ladislav Lhotka wrote: > >>>>>>>>>> Juergen Schoenwaelder <j.schoenwael...@jacobs-university.de> > writes: > >>>>>>>>>> > >>>>>>>>>>> On Mon, Jun 29, 2015 at 11:49:11AM +0200, Ladislav Lhotka > wrote: > >>>>>>>>>>>> Hi Juergen, > >>>>>>>>>>>> > >>>>>>>>>>>> thank you for the review. > >>>>>>>>>>>> > >>>>>>>>>>>> Juergen Schoenwaelder <j.schoenwael...@jacobs-university.de> > 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? > >> > > > > This is a question to answer by someone who implements it on a > > key-value database. > > Note that RFC 6020 just has XML mapping sections and otherwise tells > nothing about how instances of data nodes are represented in a datastore. I > have thus always assumed that everything works fine because the datastore > model is essentially XML Infoset, except that “data tree” is used instead > of “infoset”, “data node” instead of “information item” etc. > > In any case, with RFC 6020 in hand I can only explain how JSON is mapped > to XML. I have no idea how to get JSON data into a datastore of unknown > data model (which you take for granted), and then conceptually evaluate > XPath expressions on it. > > > > > I feel we are wasting time and energy here. > > Indeed, and it is frustrating. However, I’d like to know what to do with > section 3 of the yang-json document. > > I agree with Juergen that the implementation of YANG constraints on a datastore is not XML-specific. The text refers to data nodes not XML elements. It is quite possible for a server to populate data nodes in a datastore without NETCONF of XML being involved. We keep getting stuck on the difference between resource representations on the wire, and implementation details within a client or server. There is no requirement that they be the same "XML or JSON". inside. Lada > > > > > /js > Andy > > > > -- > > 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 > netmod@ietf.org > https://www.ietf.org/mailman/listinfo/netmod >
_______________________________________________ netmod mailing list netmod@ietf.org https://www.ietf.org/mailman/listinfo/netmod