Hi Jason,

yanglint does validate XML instance data for must statements:

MAHESH-M-M8D1:/Volumes/External/git/my-YANG-public/src/model/draft *833 > 
yanglint -t auto -s -i -p common 
.../../../build/mef-legato-servi...@2018-07-17.yang 
MEF6.2-bwp-per-uni-mef-interface-configuration.xml 
err : Must condition ". >= 1 and . <= count(../../bwp-flow/rank)" not 
satisfied. 
(/mef-legato-interfaces:mef-interfaces/carrier-ethernet/subscriber-interfaces/uni[uni-id='ciscoD21:GigabitEthernet0/0/0/1']/ingress-envelopes/envelope[id='ciscoD21-per-cos-env2']/bwp-flows/bwp-flow[rank='3']/rank)
err : The rank of a Bandwidth Profile Flow must be
between 1 and n, where n is the number of flows
in the Envelope 
(/mef-legato-interfaces:mef-interfaces/carrier-ethernet/subscriber-interfaces/uni[uni-id='ciscoD21:GigabitEthernet0/0/0/1']/ingress-envelopes/envelope[id='ciscoD21-per-cos-env2']/bwp-flows/bwp-flow[rank='3']/rank)

> On Jan 31, 2020, at 8:21 AM, Sterne, Jason (Nokia - CA/Ottawa) 
> <jason.ste...@nokia.com> wrote:
> 
> Thx Lada.
> 
> If I only have XML (e.g. from a NETCONF interface) I suppose I could use 
> yanglint, e.g. this type of usage:
> yanglint    --format=json    --type=config   --output=data.json   
> ./all-my-modules/*.yang ./data.xml
> 
> Is that correct?
> 
> I believe yanglint can also validate instance data against a YANG schema. Can 
> anyone confirm that yang2dsdl and yanglint do *not* validate against the 
> 'must' statements?
> 
> Jason
> 
>> -----Original Message-----
>> From: netmod <netmod-boun...@ietf.org> On Behalf Of Ladislav Lhotka
>> Sent: Friday, December 13, 2019 2:59 AM
>> To: netmod@ietf.org
>> Subject: Re: [netmod] validating instance data against YANG schema including
>> 'must' statements
>> 
>> On Thu, 2019-12-12 at 16:42 +0000, Sterne, Jason (Nokia - CA/Ottawa) wrote:
>>> Hi all,
>>> 
>>> A few years ago there were a few discussions on the list about tools to
>>> validate instance data (e.g. the data returned by a <get-config>) against a
>>> YANG model.
>>> 
>>> yang2dsdl is one option but I'm pretty sure it doesn't actually check the 
>>> data
>>> against 'must' statements.
>>> 
>>> Are there some tools that check against 'must' (and 'when') statements?
>> Do
>>> those tools also work with YANG 1.1 modules?
>> 
>> Yangson does a complete validation, and supports YANG 1.1, but only JSON
>> representation of instance data. The GitHub link is below, a PyPI package is
>> also available:
>> 
>> https://pypi.org/project/yangson/
>> 
>> Lada
>> 
>>> 
>>> Thx,
>>> Jason
>>> 
>>> 
>> ###############################################################
>> ###############
>>> ########################
>>> Re: [netmod] Toolchain upgraded to yangdump-pro 16.10-5 => 16.10-5..1
>>> Ladislav Lhotka <lho...@nic.cz> Tue, 07 March 2017 12:42 UTCShow
>> header
>>> 
>>> Kent Watsen <kwat...@juniper.net>; writes:
>>> 
>>>> Hi Benoit,
>>>> 
>>>> You seem to know the ins and outs of many tools these days, maybe you
>>>> can point me in the right direction...which tool is able to validate
>>>> instance documents against YANG 1.1 modules?
>>> 
>>> Yangson can validate JSON documents:
>>> 
>>> https://github.com/CZ-NIC/yangson
>>> 
>>>> 
>>>> I've always used `yang2dsdl`, but currently it outputs "DSDL plugin
>>>> supports only YANG version 1".
>>> 
>>> I considered updating the DSDL plugin to 1.1 but it turned up to be
>>> immensely difficult - it would basically require a complete rewrite. And
>>> even then, the Schematron implementation that is included in pyang
>>> distribution won't support the new XPath functions.
>>> 
>>> Lada
>>> 
>>> 
>> ###############################################################
>> ###############
>>> ########################
>>> 
>>> Re: [netmod] DSDL plugin in pyang
>>> Ladislav Lhotka <lho...@nic.cz> Tue, 29 November 2016 13:39 UTCShow
>> header
>>> 
>>> Hi William,
>>> 
>>> apart from yang2dsdl, I have personal experience with these two instance
>>> validation tools:
>>> 
>>> * yanglint - written in C, supports both XML and JSON instance encoding
>>> 
>>>  https://github.com/CESNET/libyang
>>> 
>>> * yangson - written in Python, supports only JSON
>>> 
>>>  https://github.com/CZ-NIC/yangson
>>>  installation: pip install yangson
>>>  manual page: http://yangson.readthedocs.io/en/latest/cmdline.html
>>> 
>>> Lada
>>> 
>>> William Lupton <wlup...@broadband-forum.org>; writes:
>>> 
>>>> Are you able to provide a list (either privately or via the NETMOD list) of
>>> other instance data validators that are available and cover YANG 1.1
>> features?
>>> Tx, W.
>>>> 
>>>>> On 25 Nov 2016, at 14:33, Ladislav Lhotka <lho...@nic.cz>; wrote:
>>>>> 
>>>>> Hi,
>>>>> 
>>>>> for users of $subj: I modified the plugin so that it now immediately
>>> refuses to process modules of yang-version greater than 1. Supporting some
>> of
>>> the YANG 1.1 features (new XPath functions, leafref handling) would require
>>> massive changes and I cannot do them now - I am not even sure it is worth
>> the
>>> effort given that other instance data validators are available.
>>>>> 
>>>>> Lada
>>> 
>>> --
>>> 
>>> 
>> ###############################################################
>> ###############
>>> ########################
>>> 
>>> _______________________________________________
>>> netmod mailing list
>>> netmod@ietf.org
>>> https://www.ietf.org/mailman/listinfo/netmod
>> --
>> Ladislav Lhotka
>> Head, CZ.NIC Labs
>> PGP Key ID: 0xB8F92B08A9F76C67
>> 
>> _______________________________________________
>> 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 mailing list
netmod@ietf.org
https://www.ietf.org/mailman/listinfo/netmod

Reply via email to