Re: [netmod] xpath expressions in JSON
Martin Bjorklund <mbj@tail-f.com> Thu, 18 October 2018 19:58 UTC
Return-Path: <mbj@tail-f.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id A0CB0130DC7 for <netmod@ietfa.amsl.com>; Thu, 18 Oct 2018 12:58:31 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.901
X-Spam-Level:
X-Spam-Status: No, score=-1.901 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, SPF_PASS=-0.001] autolearn=ham autolearn_force=no
Received: from mail.ietf.org ([4.31.198.44]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id DAQ6wnkfjBFI for <netmod@ietfa.amsl.com>; Thu, 18 Oct 2018 12:58:29 -0700 (PDT)
Received: from mail.tail-f.com (mail.tail-f.com [46.21.102.45]) by ietfa.amsl.com (Postfix) with ESMTP id 06F871286E3 for <netmod@ietf.org>; Thu, 18 Oct 2018 12:58:29 -0700 (PDT)
Received: from localhost (h-80-27.A165.priv.bahnhof.se [212.85.80.27]) by mail.tail-f.com (Postfix) with ESMTPSA id 3C69F1AE033A; Thu, 18 Oct 2018 21:58:27 +0200 (CEST)
Date: Thu, 18 Oct 2018 21:58:26 +0200
Message-Id: <20181018.215826.2271077466982765895.mbj@tail-f.com>
To: andy@yumaworks.com
Cc: vladimir@transpacket.com, netmod@ietf.org
From: Martin Bjorklund <mbj@tail-f.com>
In-Reply-To: <CABCOCHRufR6S8NCp5n+UXgG0Y_OJ368XZZmzFR8wEHc0CLw+HQ@mail.gmail.com>
References: <20181018.123036.731934458688841323.mbj@tail-f.com> <70e76afa-59bd-249f-6b7c-4e5788806fc6@transpacket.com> <CABCOCHRufR6S8NCp5n+UXgG0Y_OJ368XZZmzFR8wEHc0CLw+HQ@mail.gmail.com>
X-Mailer: Mew version 6.7 on Emacs 24.5 / Mule 6.0 (HANACHIRUSATO)
Mime-Version: 1.0
Content-Type: Text/Plain; charset="us-ascii"
Content-Transfer-Encoding: 7bit
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/R2ni8xZklgM3ECSOUdbc2TER9wY>
Subject: Re: [netmod] xpath expressions in JSON
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: NETMOD WG list <netmod.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/netmod>, <mailto:netmod-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/netmod/>
List-Post: <mailto:netmod@ietf.org>
List-Help: <mailto:netmod-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/netmod>, <mailto:netmod-request@ietf.org?subject=subscribe>
X-List-Received-Date: Thu, 18 Oct 2018 19:58:32 -0000
Andy Bierman <andy@yumaworks.com> wrote: > Hi, > > I strongly agree that a new data type is needed (ypath1.0 or just ypath is > fine) > Adding new semantics or requirements to published data types is > unacceptable. > > Also, we must get the type and module containing the data type right on the > first try. > No moving it later because the import looks bad. That said, a "quick > 6991-bis" is unrealistic, > and a multi-year 6991-bis is unhelpful. > > Should there be a canonical format, based on module-names as prefixes? > Consider how to compare 2 values using this data type. Ok. So which alternative do you prefer for stream-xpath-filter, which is supposed to work also for JSON? The current definition doesn't work for JSON. /martin > > > Andy > > > On Thu, Oct 18, 2018 at 10:42 AM, Vladimir Vassilev < > vladimir@transpacket.com> wrote: > > > Hi, > > > > Seems this discussion affects 10 draft modules using the xpath1.0 type. > > The proposed boilerplate description text that was not added to some RFC > > modules like ietf-netconf-monitoring@2010-10-04.yang > > > > should be as consistent as possible (or skipped based on the > > ietf-netconf-monitoring precedent) until a better alternative is available. > > Here is an example of a better alternative. > > > > typedef ypath1.0 { > > type xpath1.0; > > description > > "This type represents subset of XPATH 1.0 expressions > > that apply to a data tree conforming to a YANG model. > > > > Each encoding should allow conversion to an encoding > > independent lexical representation where data node > > prefixes are resolved to and substituted with module > > names. > > > > When a schema node is defined that uses this type, the > > description of the schema node MUST specify the > > context in which the expression is evaluated if it > > is different from the default context. > > > > The default context is as follows: > > > > o The set of variable bindings is empty. > > > > o The function library is the core function library, and > > the XPath functions defined in section 10 in RFC 7950. > > > > o The context node is the leaf node. > > > > "; > > reference > > "XPATH: XML Path Language (XPath) Version 1.0"; > > } > > > > That said I do not object to short-term application of alternative A as > > long as a long-term solution is on its way for future modules. > > > > Vladimir > > > > On 10/18/18 12:30 PM, Martin Bjorklund wrote: > > > >> Hi, > >> > >> Going back to the most urgent issue, what is this WG's recommendation > >> for the subscribed-notifications draft in NETCONF wrt/ their usage of > >> yang:xpath1.0 in filters? > >> > >> To summarize: > >> > >> We already have > >> > >> o instance-identifier in XML uses prefixes from the XML document > >> o instance-identifier in JSON uses module names as prefixes > >> o XPath in NETCONF filter uses prefixes from the XML document > >> o XPath in JSON query filter uses module names as prefixes > >> > >> > >> Alternative A: > >> -------------- > >> > >> Use different encodings for "stream-xpath-filter" as well, depending > >> on if it is XML or JSON. > >> > >> We would do in SN: > >> > >> o If the node is encoded in XML, the set of namespace > >> declarations are those in scope on the > >> 'stream-xpath-filter' leaf element. > >> > >> o If the node is encoded in JSON, the set of namespace > >> declarations is the set of prefix and namespace pairs > >> for all supported YANG modules, where the prefix is > >> the YANG module name and the namespace is as defined > >> by the "namespace" statement in the YANG module. > >> > >> Pro: the format is consistent within each encoding. > >> > >> Con: unclear how to handle other encodings. > >> Con: we keep using context-depending encodings. > >> > >> We could probably add that CBOR uses the same representation as JSON. > >> > >> Example in XML: > >> > >> <stream-xpath-filter > >> xmlns:if="urn:ietf:params:xml:ns:yang:ietf-interfaces" > >> xmlns:ip="urn:ietf:params:xml:ns:yang:ietf-ip"> > >> /if:interfaces/if:interface/ip:ipv4 > >> </stream-xpath-filter> > >> > >> Example in JSON: > >> > >> "stream-xpath-filter": > >> "/ietf-interfaces:interfaces/ietf-interfaces:interface/ietf-ip:ipv4" > >> > >> > >> > >> Alternative B: > >> -------------- > >> > >> Use a non-context depending encoding, with the module name as prefix. > >> > >> We would do in SN: > >> > >> o The set of namespace > >> declarations is the set of prefix and namespace pairs > >> for all supported YANG modules, where the prefix is > >> the YANG module name and the namespace is as defined > >> by the "namespace" statement in the YANG module. > >> > >> Pro: the format is independent from the protocol encoding > >> > >> Con: in XML, this leaf is treated differently from other XPath > >> expressions, such as get-config filter and nacm rules. > >> > >> Example in XML: > >> > >> <stream-xpath-filter> > >> /ietf-interfaces:interfaces/ietf-interfaces:interface/ietf-ip:ipv4 > >> </stream-xpath-filter> > >> > >> Example in JSON: > >> > >> "stream-xpath-filter": > >> "/ietf-interfaces:interfaces/ietf-interfaces:interface/ietf-ip:ipv4" > >> > >> > >> My proposal is A. I think it is more important with consistency > >> within each encoding than across encodings. > >> > >> (This said, I would like to have a context-independent encoding of all > >> YANG types in the future. But not now.) > >> > >> > >> > >> > >> /martin > >> > >> _______________________________________________ > >> 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 > >
- [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Ladislav Lhotka
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Reshad Rahman (rrahman)
- Re: [netmod] xpath expressions in JSON Andy Bierman
- Re: [netmod] xpath expressions in JSON Qin Wu
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Ladislav Lhotka
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Andy Bierman
- Re: [netmod] xpath expressions in JSON Vladimir Vassilev
- Re: [netmod] xpath expressions in JSON Robert Wilton
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Robert Wilton
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Vladimir Vassilev
- Re: [netmod] xpath expressions in JSON Vladimir Vassilev
- Re: [netmod] xpath expressions in JSON Robert Wilton
- Re: [netmod] xpath expressions in JSON Reshad Rahman (rrahman)
- Re: [netmod] xpath expressions in JSON Robert Wilton
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Andy Bierman
- Re: [netmod] xpath expressions in JSON Robert Wilton
- Re: [netmod] xpath expressions in JSON Andy Bierman
- Re: [netmod] xpath expressions in JSON Reshad Rahman (rrahman)
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Robert Wilton
- Re: [netmod] xpath expressions in JSON Robert Wilton
- Re: [netmod] xpath expressions in JSON Andy Bierman
- Re: [netmod] xpath expressions in JSON Reshad Rahman (rrahman)
- Re: [netmod] xpath expressions in JSON Ladislav Lhotka
- Re: [netmod] xpath expressions in JSON Vladimir Vassilev
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Ladislav Lhotka
- Re: [netmod] xpath expressions in JSON Robert Wilton
- Re: [netmod] xpath expressions in JSON Reshad Rahman (rrahman)
- Re: [netmod] xpath expressions in JSON Vladimir Vassilev
- Re: [netmod] xpath expressions in JSON Andy Bierman
- Re: [netmod] xpath expressions in JSON Juergen Schoenwaelder
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Andy Bierman
- Re: [netmod] xpath expressions in JSON Andy Bierman
- Re: [netmod] xpath expressions in JSON Juergen Schoenwaelder
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Andy Bierman
- Re: [netmod] xpath expressions in JSON Ladislav Lhotka
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Ladislav Lhotka
- Re: [netmod] xpath expressions in JSON Qin Wu
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Ladislav Lhotka
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Ladislav Lhotka
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Robert Wilton
- Re: [netmod] xpath expressions in JSON Ladislav Lhotka
- Re: [netmod] xpath expressions in JSON Juergen Schoenwaelder
- Re: [netmod] xpath expressions in JSON Robert Wilton
- Re: [netmod] xpath expressions in JSON Juergen Schoenwaelder
- Re: [netmod] xpath expressions in JSON Ladislav Lhotka
- Re: [netmod] xpath expressions in JSON Juergen Schoenwaelder
- Re: [netmod] xpath expressions in JSON Martin Bjorklund
- Re: [netmod] xpath expressions in JSON Kent Watsen