Re: [yang-doctors] Question about yang2dsdl error.

Christian Hopps <chopps@chopps.org> Fri, 08 November 2019 12:36 UTC

Return-Path: <chopps@chopps.org>
X-Original-To: yang-doctors@ietfa.amsl.com
Delivered-To: yang-doctors@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 9DDAC1209FD for <yang-doctors@ietfa.amsl.com>; Fri, 8 Nov 2019 04:36:38 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.898
X-Spam-Level:
X-Spam-Status: No, score=-1.898 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, RCVD_IN_DNSWL_NONE=-0.0001, SPF_HELO_NONE=0.001, SPF_NONE=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 oiRUEWs413i6 for <yang-doctors@ietfa.amsl.com>; Fri, 8 Nov 2019 04:36:37 -0800 (PST)
Received: from smtp.chopps.org (smtp.chopps.org [54.88.81.56]) by ietfa.amsl.com (Postfix) with ESMTP id C7D5C1209CE for <yang-doctors@ietf.org>; Fri, 8 Nov 2019 04:36:36 -0800 (PST)
Received: from stubbs.int.chopps.org (172-222-100-236.res.spectrum.com [172.222.100.236]) (using TLSv1.2 with cipher DHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by smtp.chopps.org (Postfix) with ESMTPSA id 3EC4C600E7; Fri, 8 Nov 2019 12:36:36 +0000 (UTC)
Content-Type: text/plain; charset="us-ascii"
Mime-Version: 1.0 (Mac OS X Mail 13.0 \(3594.4.19\))
From: Christian Hopps <chopps@chopps.org>
In-Reply-To: <e2bed3136ade45d6cf71de461a55914f77fb7435.camel@nic.cz>
Date: Fri, 08 Nov 2019 07:36:35 -0500
Cc: Christian Hopps <chopps@chopps.org>, YANG Doctors <yang-doctors@ietf.org>
Content-Transfer-Encoding: quoted-printable
Message-Id: <26268464-9B83-45CD-BEC7-5A6A64630F7A@chopps.org>
References: <18331DE5-81EE-4A9A-A404-957A24225333@chopps.org> <e2bed3136ade45d6cf71de461a55914f77fb7435.camel@nic.cz>
To: Ladislav Lhotka <lhotka@nic.cz>
X-Mailer: Apple Mail (2.3594.4.19)
Archived-At: <https://mailarchive.ietf.org/arch/msg/yang-doctors/N3f8KmDl_0a3PAImHV61biO7GzQ>
Subject: Re: [yang-doctors] Question about yang2dsdl error.
X-BeenThere: yang-doctors@ietf.org
X-Mailman-Version: 2.1.29
Precedence: list
List-Id: Email list of the yang-doctors directorate <yang-doctors.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/yang-doctors/>
List-Post: <mailto:yang-doctors@ietf.org>
List-Help: <mailto:yang-doctors-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/yang-doctors>, <mailto:yang-doctors-request@ietf.org?subject=subscribe>
X-List-Received-Date: Fri, 08 Nov 2019 12:36:42 -0000


> On Nov 8, 2019, at 6:46 AM, Ladislav Lhotka <lhotka@nic.cz> wrote:
> 
> Hi Chris,
> 
> On Fri, 2019-11-08 at 06:29 -0500, Christian Hopps wrote:
>> Hi yang-doctors,
>> 
>> I've got an example which yang2dsdl complains about (in it's expected
>> unhelpful way :)
> 
> The error messages are produced by xmllint, and their unhelpfulness is
> notorious.  Apart from that, xmllint RELAX NG validator is known to have other
> bugs and gaps.
> 
> Have you tried to use Jing [1] for RELAX NG validation (the '-j' option to
> yang2dsdl)?

That doesn't seem to pick up the augmentation..

(default) [07:33:43 dak:~/w/reverse-metric-yang]$ yang2dsdl -x -j -t config -d .validate -v test-xml-example2.xml ietf-routing@2016-11-04.yang ietf-isis@2019-10-15.yang
== Generating RELAX NG schema '.validate/ietf-routing_ietf-isis-config.rng'
Done.

== Generating Schematron schema '.validate/ietf-routing_ietf-isis-config.sch'
Done.

== Generating DSRL schema '.validate/ietf-routing_ietf-isis-config.dsrl'
Done.

== Validating grammar and datatypes ...
[warning] /usr/bin/jing: Unable to locate avalon-framework in /usr/share/java
[warning] /usr/bin/jing: Unable to locate batik-all in /usr/share/java
/home/chopps/net/w/reverse-metric-yang/test-xml-example2.xml:8:16: error: character content of element "type" invalid; must be a QName equal to "direct", "routing-protocol" or "static"

Thanks,
Chris.


> Lada
> 
> [1] https://relaxng.org/jclark/jing.html
> 
>> In trying to figure out what was wrong, I gave yanglint a try, and it said the
>> example was fine (no errors no output with --strict). Can anyone shed some
>> light on what might be the issue. I'd really like yang2dsdl to pass here as
>> well.
>> 
>> Example:
>> 
>> (default) [06:23:07 dak:~/w/reverse-metric-yang]$ cat test-xml-example2.xml
>> <config xmlns="urn:ietf:params:xml:ns:netconf:base:1.0">
>>  <routing
>>      xmlns="urn:ietf:params:xml:ns:yang:ietf-routing">
>>    <control-plane-protocols>
>>      <control-plane-protocol>
>>        <type xmlns:isis="urn:ietf:params:xml:ns:yang:ietf-isis">
>>          isis:isis
>>        </type>
>>        <name>i0</name>
>>        <isis xmlns="urn:ietf:params:xml:ns:yang:ietf-isis">
>>          <area-address>00</area-address>
>>        </isis>
>>      </control-plane-protocol>
>>    </control-plane-protocols>
>>  </routing>
>> </config>
>> 
>> yang2dsdl Error:
>> 
>> (default) [06:23:05 dak:~/w/reverse-metric-yang]$ yang2dsdl -x -t config -d
>> .validate -v test-xml-example2.xml ietf-routing@2016-11-04.yang 
>> ietf-isis@2019-10-15.yang
>> == Generating RELAX NG schema '.validate/ietf-routing_ietf-isis-config.rng'
>> Done.
>> 
>> == Generating Schematron schema '.validate/ietf-routing_ietf-isis-config.sch'
>> Done.
>> 
>> == Generating DSRL schema '.validate/ietf-routing_ietf-isis-config.dsrl'
>> Done.
>> 
>> == Validating grammar and datatypes ...
>> Relax-NG validity error : Extra element control-plane-protocols in interleave
>> test-xml-example2.xml:4: element control-plane-protocols: Relax-NG validity
>> error : Element routing failed to validate content
>> test-xml-example2.xml fails to validate
>> 
>> Thanks,
>> Chris.
>> _______________________________________________
>> yang-doctors mailing list
>> yang-doctors@ietf.org
>> https://www.ietf.org/mailman/listinfo/yang-doctors
> -- 
> Ladislav Lhotka
> Head, CZ.NIC Labs
> PGP Key ID: 0xB8F92B08A9F76C67