Re: [netmod] attributes in draft-lhotka-netmod-yang-json

Ladislav Lhotka <lhotka@nic.cz> Wed, 26 March 2014 14:10 UTC

Return-Path: <lhotka@nic.cz>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (ietfa.amsl.com [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 61E501A00FB for <netmod@ietfa.amsl.com>; Wed, 26 Mar 2014 07:10:13 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -0.361
X-Spam-Level:
X-Spam-Status: No, score=-0.361 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, HELO_EQ_CZ=0.445, HOST_EQ_CZ=0.904, MIME_8BIT_HEADER=0.3, T_RP_MATCHES_RCVD=-0.01] autolearn=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 9XlEX5JJSQJ5 for <netmod@ietfa.amsl.com>; Wed, 26 Mar 2014 07:10:12 -0700 (PDT)
Received: from mail.nic.cz (mail.nic.cz [IPv6:2001:1488:800:400::400]) by ietfa.amsl.com (Postfix) with ESMTP id 466B91A0119 for <netmod@ietf.org>; Wed, 26 Mar 2014 07:10:12 -0700 (PDT)
Received: from ladislavs-air-2.lan (ip-94-113-93-24.net.upcbroadband.cz [94.113.93.24]) by mail.nic.cz (Postfix) with ESMTPSA id 4825213F6A4; Wed, 26 Mar 2014 15:10:10 +0100 (CET)
DKIM-Signature: v=1; a=rsa-sha256; c=simple/simple; d=nic.cz; s=default; t=1395843010; bh=VzKdeG8u729LhWGR48c9SBgYnGbnC0cmkxqn5aFW/KU=; h=Content-Type:Mime-Version:Subject:From:In-Reply-To:Date:Cc: Content-Transfer-Encoding:Message-Id:References:To; b=vbBBOg3U0XLYcGkfC979MIv50HFNIFg9sQYZAYnPrnTwAKBnQjvZp3MNQBH+1bDmH D/FwWLvF2P1AaifhcsdPqBNoIWr3F6LvhcWOImvs1SIB/NpCxeamsurt7cMP7LTZVX hXqfjXG40hES5lGIwWqcpxjxmZHtG6RbOUg2lviQ=
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 7.2 \(1874\))
From: Ladislav Lhotka <lhotka@nic.cz>
In-Reply-To: <20140326.145737.580242632261637255.mbj@tail-f.com>
Date: Wed, 26 Mar 2014 15:10:09 +0100
Content-Transfer-Encoding: 7bit
Message-Id: <A169C9A0-970B-4F7B-B102-61543EE553BD@nic.cz>
References: <CABCOCHQdE5JwJBrQpGx_eFxr8ijGvKr0-_OuTUiPZH_bX+a1FQ@mail.gmail.com> <20140326.143440.588668936751872922.mbj@tail-f.com> <m2y4zxysna.fsf@ip-94-113-93-91.net.upcbroadband.cz> <20140326.145737.580242632261637255.mbj@tail-f.com>
To: Martin Björklund <mbj@tail-f.com>
X-Mailer: Apple Mail (2.1874)
X-Virus-Scanned: clamav-milter 0.97.8 at mail
X-Virus-Status: Clean
Archived-At: http://mailarchive.ietf.org/arch/msg/netmod/DuNWkQpCG2FE1V0-mrdbfXm-pWI
Cc: netmod@ietf.org
Subject: Re: [netmod] attributes in draft-lhotka-netmod-yang-json
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.15
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: <http://www.ietf.org/mail-archive/web/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: Wed, 26 Mar 2014 14:10:13 -0000

On 26 Mar 2014, at 14:57, Martin Bjorklund <mbj@tail-f.com> wrote:

> Ladislav Lhotka <lhotka@nic.cz> wrote:
>> Martin Bjorklund <mbj@tail-f.com> writes:
>> 
>>> Hi,
>>> 
>>> Here's yet another attempt to handle attributes in JSON, without
>>> changing the encoding for the case that there are no attributes
>>> present.
>>> 
>>> In all examples, the attributes "inactive" and "etag" are present.
>>> 
>>> Attributes are encoded differently depending on the type of object:
>>> 
>>> 
>>> leaf
>>> ----
>>> 
>>> Encode the attributes as a sibling to the leaf.
>>> 
>>> 
>>>  leaf foo {
>>>    type string;
>>>  }
>>> 
>>>  "foo": "some value";
>>>  "@foo": {
>>>     "inactive": true,
>>>     "etag": "...";
>>>   }
>>> 
>>> 
>>> list instance
>>> -------------
>>> 
>>> Encode the attributes within the list instance.
>>> 
>>> 
>>>  list bar {
>>>    key name;
>>>    leaf name {
>>>      type string;
>>>    }
>>>    ...
>>>  }
>>> 
>>>  "bar": [
>>>     {
>>>        "@bar": {
>>>           "inactive": true,
>>>           "etag": "..."
>>>         }
>>>         "name": "instance name";
>>>      }]
>>> 
>> 
>> This could be ambiguous:
>> 
>> list bar {
>>  key name;
>>  leaf name { ... }
>>  leaf bar { ... }
>> }
>> 
>> Then you don't know whether the attributes belong to the list entry
>> or to the contained leaf.
> 
> Right. Then we use "@@bar" for the list / container attributes.

OK, then this scheme is fine with me.

Lada

> 
> 
> /martin
> 
> 
> 
>> 
>> Lada 
>> 
>>> 
>>> container
>>> ---------
>>> 
>>> Encode the attributes within the container.
>>> 
>>> 
>>>  container baz;
>>> 
>>>  "baz": {
>>>     "@baz": {
>>>        "inactive": true,
>>>        "etag": "..."
>>>       }
>>>  }
>>> 
>>> 
>>> leaf-list
>>> ---------
>>> 
>>> Encode the attributes as a sibling to the leaf-list, with an array of
>>> same length as the leaf-list itself.
>>> 
>>> 
>>>  leaf-list buzz {
>>>     type string;
>>>  }
>>> 
>>>  "buzz": [ "val1", "val2", "val3" ],
>>>  "@buzz: [ null, 
>>>            { "inactive": true,
>>>              "etag": "..."
>>>            }
>>>            null]
>>> 
>>> 
>>> 
>>> /martin
>> 
>> -- 
>> Ladislav Lhotka, CZ.NIC Labs
>> PGP Key ID: E74E8C0C

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