Hi, yanglint uses its own XPath implementation, which unfortunately does not support axes, hence the error.
Regards, Michal On Monday, January 17, 2022 16:59 CET, Italo Busi <Italo.Busi=40huawei....@dmarc.ietf.org> wrote: > Lada, Martin, > > Thanks for your suggestion and thanks Tom for having raised this issue to > Netmod WG > > We have tried to follow your suggestion and replaced the relative paths with: > when "ancestor::nw:network/nw:network-types/tet:te-topology" > > You can find the updated YANG module on github: > > https://github.com/ietf-ccamp-wg/draft-ietf-ccamp-flexigrid-yang/tree/wg-lc-resolution > > However, we have found some issues when compiling the new code with yanglint. > This is the error that we have got from the on-line YANG validator: > > libyang err : Invalid character 'a'[1] of expression > 'ancestor::nw:network/nw:network-types/tet:te-topology/flexgt:flexi-grid-topology'. > > (/ietf-flexi-grid-topology:{augment='/nw:networks/nw:network/nt:link/tet:te/tet:te-link-attributes/tet:underlay/tet:primary-path/tet:path-element/tet:type/tet:label/tet:label-hop/tet:te-label/tet:technology'}) > YANGLINT[E]: Processing schema module from > /var/yang/tmp/yangvalidator/yangvalidator-v2-workdir-tNQJZOjI/ietf-flexi-grid-topology.yang > failed. > > Is this an issue with yanglint or with the updated code? > > Pyang compilation does not return any error/warning > > Thanks in advance > > Aihua, Sergio and Italo > > > -----Original Message----- > > From: Ladislav Lhotka [mailto:ladislav.lho...@nic.cz] > > Sent: domenica 2 gennaio 2022 10:58 > > To: Martin Björklund <mbj+i...@4668.se> > > Cc: c...@tzi.org; netmod@ietf.org > > Subject: Re: [netmod] YANG 'when' with absolute path > > > > > > > > On 02. 01. 22 10:43, Martin Björklund wrote: > > > Hi, > > > > > > Ladislav Lhotka <ladislav.lho...@nic.cz<mailto:ladislav.lho...@nic.cz>> > > > wrote: > > >> Carsten Bormann <c...@tzi.org<mailto:c...@tzi.org>> writes: > > >> > > >>> On 2021-12-30, at 13:29, tom petch > > >>> <ie...@btconnect.com<mailto:ie...@btconnect.com>> wrote: > > >>>> > > >>>> when "../../../../../../nw:network-types/tet:te-topology/“ > > >>> > > >>> I’m probably showing my ignorance about YANG again, but what is the > > >>> reason this is not phrased as > > >>> > > >>> when "./ancestor::nw:network-types/tet:te-topology/“ > > >> > > >> Yes, this would work, with a minor correction: > > >> > > >> when "./ancestor::node()/nw:network-types/tet:te-topology" > > >> > > >> because 'nw:network-types' isn't an ancestor of the context node. > > >> Also, the initial './' isn't actually needed, hence > > >> > > >> when "ancestor::node()/nw:network-types/tet:te-topology" > > > > > > Or the more direct: > > > > > > when "ancestor::nw:network/nw:network-types/tet:te-topology" > > > > Right, this is the best option. > > > > > > > > This style works if we can guarantee that there will be exactly one > > > node "nw:network" among our ancestors. > > > > > > It is perhaps easier to get this style right w/o a YANG compiler > > > (which would detect if the number of ".." in the relative path is > > > wrong), but the relative path might be easier to understand for a > > > casual reader. > > > > +1 > > > > Lada > > > > > > > > > > > > > > /martin > > > > > > > > > > > >> > > >> Lada > > >> > > >>> > > >>> ? > > >>> > > >>> Grüße, Carsten > > >>> > > >>> _______________________________________________ > > >>> netmod mailing list > > >>> netmod@ietf.org<mailto: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<mailto: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