Andy Bierman <[email protected]> writes:
> Hi,
>
> Use of NP-containers are subjective, based on how you
> want to organize your data. The extra layer of containment
> may be a waste, but it sometimes has a purpose
>
> - 2 or more sibling lists with lots of entries can be mixed in JSON,
> so putting each list in its container prevents that.
No, in JSON all list entries are always nicely packed in an array. It is
the XML encoding where entries of two lists can be interleaved.
For example, if we have
list foo { ... }
list bar { ... }
then JSON encoding is always
"foo": [...foo entries...]
"bar": [...bar entries...]
whereas in XML we can have, e.g.
<bar>...</bar>
<foo>...</foo>
<bar>...</bar>
<bar>...</bar>
<foo>...</foo>
Lada
> - There is no standard way to 'delete-all' in NETCONF or RESTCONF
> but a 'replace' on the parent container can be used for this purpose.
> (container of list or leaf-list)
> - container servers as a conceptual 'root' for external augments
>
> Andy
>
>
> On Mon, Dec 14, 2015 at 5:56 PM, Christian Hopps <[email protected]> wrote:
>
>>
>> Some models seem to place a single list of things inside a container also
>> named after the items in the list, e.g.,
>>
>> +--ro modulename
>> +--rw ribs
>> +--rw rib* [name] +--rw name
>> I don't see the purpose of these containers. It seems to me that one can
>> model and query the exact same data without the outer container. That is,
>>
>> +--ro modulename
>> +--rw rib* [name] +--rw name
>> Is there something useful about these containers that I've missed, as it's
>> a fairly common pattern in the models I've been looking at. Example
>> comparisons below..
>> Thanks,
>> Chris.
>>
>>
>> w/ container:
>> <modulename> <ribs> <rib> <name>foo</name>
>> </rib> <rib> <name>bar</name> </rib> ... </ribs>
>> </modulename>
>> w/o container:
>> <modulename>
>> <rib> <name>foo</name> </rib> <rib>
>> <name>bar</name> </rib> ... </modulename>
>> Likewise if you want to fetch all ribs you can either way:
>>
>> <filter>
>> <modulename>
>> <ribs/>
>> </modulename>
>> </filter>
>> or
>>
>> <filter>
>> <modulename>
>> <rib/>
>> </modulename>
>> </filter>
>> Or a particular rib
>>
>> <filter>
>> <modulename>
>> <ribs> <rib> <name>foo</name>
>> </rib> </ribs>
>> </modulename>
>> </filter>
>> or
>>
>> <filter>
>> <modulename> <rib> <name>foo</name>
>> </rib>
>> </modulename>
>> </filter>
>> Using xpath:
>>
>> /modulename/ribs/rib[name='foo']
>> or
>>
>> /modulename/rib[name='foo']
>>
>> _______________________________________________
>> netmod mailing list
>> [email protected]
>> https://www.ietf.org/mailman/listinfo/netmod
>>
>>
> _______________________________________________
> netmod mailing list
> [email protected]
> https://www.ietf.org/mailman/listinfo/netmod
--
Ladislav Lhotka, CZ.NIC Labs
PGP Key ID: E74E8C0C
_______________________________________________
netmod mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/netmod