Re: [netmod] Use XML namespaces in YANG document examples
Tim Bray <tbray@textuality.com> Thu, 03 February 2022 18:55 UTC
Return-Path: <tbray@textuality.com>
X-Original-To: netmod@ietfa.amsl.com
Delivered-To: netmod@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 18B903A1546 for <netmod@ietfa.amsl.com>; Thu, 3 Feb 2022 10:55:41 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.897
X-Spam-Level:
X-Spam-Status: No, score=-1.897 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_BLOCKED=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=unavailable autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=textuality-com.20210112.gappssmtp.com
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 xb5P2_0l6pzK for <netmod@ietfa.amsl.com>; Thu, 3 Feb 2022 10:55:36 -0800 (PST)
Received: from mail-lf1-x133.google.com (mail-lf1-x133.google.com [IPv6:2a00:1450:4864:20::133]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id 7D2763A1547 for <netmod@ietf.org>; Thu, 3 Feb 2022 10:55:35 -0800 (PST)
Received: by mail-lf1-x133.google.com with SMTP id x23so8076820lfc.0 for <netmod@ietf.org>; Thu, 03 Feb 2022 10:55:35 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=textuality-com.20210112.gappssmtp.com; s=20210112; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=a/a7Bg87kC785VMlWUWkivIYxejaX19l/CO2w2mLdiU=; b=dbk5vdsTDUiYYsObKNdsPhk48OyRSzEf22c1iJjvyRfwIIFMNowjWqsPKHtj8F45Vo ph3afneayFvQKl/a2AHZPUq0szdEhPxOIbt+XAYsLq7lxFsLInRDSjFvYw5PCjqdbMDZ drEYSGYz8fSn4F1j3k/hH0nrl4hoZCMt4KKfafhVw8te5kyHYrxDCyqVxnFuubM3ncMs 1hjS5K9n77aUbe+LhSSy92eZwSGzNHojP1PixzWVR4Xw4HSShX2SMaGxY+n1Jy7w3u0d Xo1vPNygdUVJp5sKUF5vnwVhqj6sPOJCXtAzYBXMG4kKHzg0jtjPyEj3rptxYVW8HZrI YBeQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=a/a7Bg87kC785VMlWUWkivIYxejaX19l/CO2w2mLdiU=; b=2bOrZ3iXv8LB5vFBwciOvEGZewtXFjGS6kRGQ1A8MJ+jhUctakThdUMe/24SFL52KO KjFQdlbhaHUwkEQu2zMO35AXuqcr9VO6U9HvvXS4Wu7rTIUv+GZT1FGTKHBvQjHjcsJm 1n+aNYTsHTbvFEHtNGevq3bfvc9GT1AavxSWppEFwbDFaBu/vd8ASMYmmaz+iijdkGje VEdQpSrbEj9EqgDWVYxXBo6kpNtHKGuPhyWI6At3BvN1kAPY3XD/ViOi1SW7dbbLTe5m yn87GGNLLUzH0qqftDd5Z2hQDCPyeHSAwOMLznj6uXPTxEhBghVJtVwqKFzhWO8p55QC nPHA==
X-Gm-Message-State: AOAM531bEMcs3iWYxkj780KeuOgqFnGUhlCwmrlqjZsqC73KAEWem/fc OF44jARzRvQqIfuFbWIYO5ML4fgY1fv0IGjSSj3cDA==
X-Google-Smtp-Source: ABdhPJygziF5GtPOhItj/njiIFH2doVFV5VLJ8v8TwtmGt0+iH6OO8hIhy3R21aqI2NrxT6KM2D2jA2sUkiisgmdjsw=
X-Received: by 2002:a05:6512:3184:: with SMTP id i4mr27408943lfe.275.1643914532490; Thu, 03 Feb 2022 10:55:32 -0800 (PST)
MIME-Version: 1.0
References: <CAHBU6iucqMiyVdZncfTHdO=y7dqz=4i0UTqMRa+BBSp=1sTpSw@mail.gmail.com> <CABCOCHRLmi2mQoeEQcYS5b8=0wKUxGY7ntRhqSGLXje=nctgdA@mail.gmail.com> <CAHBU6ivX+j4aY_f_ftQo2Uwvr-u+Y-qebY=jsk0mUDNpHVRi3g@mail.gmail.com> <20220203.192043.63845024394361435.id@4668.se>
In-Reply-To: <20220203.192043.63845024394361435.id@4668.se>
From: Tim Bray <tbray@textuality.com>
Date: Thu, 03 Feb 2022 10:55:21 -0800
Message-ID: <CAHBU6is235QT3d7q+0xhJHdtVna_9-qjGzHG_P4gnMd6nKtdTw@mail.gmail.com>
To: mbj+ietf@4668.se
Cc: Andy Bierman <andy@yumaworks.com>, netmod@ietf.org, dhc-chairs@ietf.org, drafts-expert-review@iana.org, "Eric Vyncke (evyncke)" <evyncke@cisco.com>
Content-Type: multipart/alternative; boundary="000000000000c027ce05d721adad"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/ytzA2V6p5APAdQQ7i2-O5WCckgY>
Subject: Re: [netmod] Use XML namespaces in YANG document examples
X-BeenThere: netmod@ietf.org
X-Mailman-Version: 2.1.29
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: <https://mailarchive.ietf.org/arch/browse/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: Thu, 03 Feb 2022 18:55:41 -0000
On Thu, Feb 3, 2022 at 10:21 AM Martin Björklund <mbj+ietf@4668.se> wrote: > > If an XML document has <foo xmlns:bar="...">, won't the XML processor > pass the attribute "xmlns:bar" and its value to the application? This > should be enough even if the XML processor doesn't provide a mapping > table between prefix and namespace (it requires more work in the > application of course). > Nope, there's no requirement that they do and some don't. > I think that if special text is needed for identityref values in XML, > that text should go in to the YANG specification (RFC 7950). All > these other drafts just follow the rules defined in RFC 7950. > Agreed. > > > /martin > > > > > > > > > > > > > > > > > > > > > > Andy > > > > > > > > >> I've excerpted an email exchange with Ian Farrer that I think makes > the > > >> potential problem concrete: > > >> > > >> Hi Ian, I don't think we've met. I'm the grumpy person on the "XML > > >> Directorate" who's been whining about the namespace prefixes in YANG > > >> internet-drafts. One quick issue: I'm a little surprised, is anyone > still > > >> using XML in this kind of thing any more in 2021? > > >> > > >> Anyhow, below I've excerpted the issue that's still troubling me. > Here's > > >> the XML: > > >> > > >> <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" > > >> xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> > > >> <interface> > > >> <name>eth0</name> > > >> <type>ianaift:ethernetCsmacd</type> > > >> <description>DHCPv6 Relay Interface</description> > > >> <enabled>true</enabled> > > >> </interface> > > >> </interfaces> > > >> > > >> So my question is, I see the XML namespace prefix and the prefix for > the > > >> <type> element content are identical. Is this a coincidence? For > example, > > >> would the following work, changing the namespace prefix to "foo"? > > >> > > >> > > >> <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" > > >> xmlns:foo="urn:ietf:params:xml:ns:yang:iana-if-type"> > > >> <interface> > > >> <name>eth0</name> > > >> <type>ianaift:ethernetCsmacd</type> > > >> <description>DHCPv6 Relay Interface</description> > > >> <enabled>true</enabled> > > >> </interface> > > >> </interfaces> > > >> > > >> [if - This example would not work and fails validation with yanglint: > > >> > > >> $ yanglint --strict --verbose -t config -p $IETFYANG > > >> $IETFYANG/iana-if-type.yang $IETFYANG/ietf-interfaces.yang test1.xml > > >> err : Invalid value "ianaift:ethernetCsmacd" in "type" element. > > >> (/ietf-interfaces:interfaces/interface[name='eth0']/type) > > >> ] > > >> > > >> > > >> Follow-up, would the following work, foo for both namespace and > content > > >> prefix? > > >> > > >> <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" > > >> xmlns:foo="urn:ietf:params:xml:ns:yang:iana-if-type"> > > >> <interface> > > >> <name>eth0</name> > > >> <type>foo:ethernetCsmacd</type> > > >> <description>DHCPv6 Relay Interface</description> > > >> <enabled>true</enabled> > > >> </interface> > > >> </interfaces> > > >> > > >> Thanks in advance! > > >> > > >> > > >> [if - This does validate with yanglint, however the convention in the > > >> IETF examples I’ve seen seems to be to use the prefix that is defined > in > > >> the original YANG module for imports for consistency, e.g. (from > > >> iana-if-type.yang): > > >> > > >> > > >> On Thu, Feb 3, 2022 at 8:03 AM Andy Bierman <andy@yumaworks.com> > wrote: > > >> > > >>> Hi, > > >>> > > >>> I think the text from sec 4 refers to the usage within an > application. > > >>> The XML instance document is the on-the-wire representation and > > >>> the I-D example looks correct. > > >>> > > >>> https://www.w3.org/TR/xml-names/#ns-qualnames > > >>> > > >>> > > >>> Andy > > >>> > > >>> > > >>> On Thu, Feb 3, 2022 at 3:53 AM tom petch <ietfc@btconnect.com> > wrote: > > >>> > > >>>> From: netmod <netmod-bounces@ietf.org> on behalf of > ianfarrer@gmx.com < > > >>>> ianfarrer@gmx.com> > > >>>> Sent: 03 February 2022 09:37 > > >>>> > > >>>> Hi, > > >>>> > > >>>> A draft I have been working on ( > > >>>> https://datatracker.ietf.org/doc/draft-ietf-dhc-dhcpv6-yang/) > contains > > >>>> a number of XML configuration examples. During the XML expert > review, a > > >>>> question has been raised about the use of XML namespaces in these > examples. > > >>>> I’m raising it here as I don’t have the XML knowledge to answer. > > >>>> > > >>>> <tp> > > >>>> > > >>>> Ian > > >>>> > > >>>> This looks like the issue I raised on this list 14jan2022 with a > > >>>> subject line of > > >>>> XML and prefix > > >>>> although I have not checked that the usage is exactly the same; the > > >>>> 'XML Expert' comment would appear to be. > > >>>> > > >>>> Tom Petch > > >>>> > > >>>> In my example: > > >>>> > > >>>> <interfaces xmlns="urn:ietf:params:xml:ns:yang:ietf-interfaces" > > >>>> > > >>>> xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type"> > > >>>> <interface> > > >>>> <name>eth0</name> > > >>>> <type>ianaift:ethernetCsmacd</type> > > >>>> <description>DHCPv6 Relay Interface</description> > > >>>> <enabled>true</enabled> > > >>>> </interface> > > >>>> </interfaces> > > >>>> > > >>>> The question is related to the use of the ‘ianaift:’ prefix. This is > > >>>> quite commonly use in XML examples in YANG documents (e.g. RFC8344) > so I > > >>>> think the question is generally applicable. > > >>>> > > >>>> The specific comments from the expert review are: > > >>>> > > >>>> - > > >>>> For the correct processing of these documents requires that whatever > > >>>> XML software is being used makes available to application code the > > >>>> namespace prefixes. > > >>>> > > >>>> Whilst the recommended tools (e.g. yanglint) provides this > function, it > > >>>> is not an XML best practice. Quoting from the Namespaces in XML, > section 4: > > >>>> "Note that the prefix functions only as a placeholder for a > namespace name. > > >>>> Applications SHOULD use the namespace name, not the prefix, in > constructing > > >>>> names whose scope extends beyond the containing document.” > > >>>> > > >>>> I think that violating a SHOULD assertion in a W3C standard is a > > >>>> problem. > > >>>> > > >>>> There is no requirement for XML processors to provide this prefix > > >>>> information, and software that (quite legally) doesn't, will not > work > > >>>> correctly with YANG documents constructed as specified in this I-D. > > >>>> > > >>>> 1, YANG specifications should note this fact and specify that > software > > >>>> which is used to process YANG documents MUST provide an interface > such that > > >>>> applications can retrieve the prefix-namespace mappings. > > >>>> 2, For constructs such as <type>ianaift:ethernetCsmacd</type> the > > >>>> Internet-Draft should specify that the prefix ("ianaift" in this > case) MUST > > >>>> be identical to the xmlns namespace prefix representing the > namespace name > > >>>> urn:ietf:params:xml:ns:yang:iana-if-type > > >>>> 3, Alternately, the draft could specify that for the namespace > > >>>> urn:ietf:params:xml:ns:yang:iana-if-type, the XML namespace prefix > ianaift > > >>>> MUST be used. Another XML bad practice because software that > generates XML > > >>>> programmatically should feel free to generate synthetic prefixes > without > > >>>> breaking the content, but at least this would solve the problem. > > >>>> - > > >>>> > > >>>> BCP216 (RFC8407 - Guidelines for Authors and Reviewers of Documents > > >>>> Containing YANG modules) doesn’t make any mention of how XML > namespaces > > >>>> should be used, only that example XML/ JSON should be included and > that > > >>>> these examples need to be validated (pyang and yanglint are > mentioned for > > >>>> this). > > >>>> > > >>>> Does this guidance need to be updated to reflect expert review > comments > > >>>> above? > > >>>> > > >>>> Thanks, > > >>>> Ian > > >>>> > > >>>> > > >>>> > > >>>> _______________________________________________ > > >>>> netmod mailing list > > >>>> netmod@ietf.org > > >>>> https://www.ietf.org/mailman/listinfo/netmod > > >>>> > > >>> >
- [netmod] Use XML namespaces in YANG document exam… ianfarrer
- Re: [netmod] Use XML namespaces in YANG document … tom petch
- Re: [netmod] Use XML namespaces in YANG document … Andy Bierman
- Re: [netmod] Use XML namespaces in YANG document … Tim Bray
- Re: [netmod] Use XML namespaces in YANG document … Mahesh Jethanandani
- Re: [netmod] Use XML namespaces in YANG document … Andy Bierman
- Re: [netmod] Use XML namespaces in YANG document … Carsten Bormann
- Re: [netmod] Use XML namespaces in YANG document … Tim Bray
- Re: [netmod] Use XML namespaces in YANG document … Tim Bray
- Re: [netmod] Use XML namespaces in YANG document … Andy Bierman
- Re: [netmod] Use XML namespaces in YANG document … Martin Björklund
- Re: [netmod] Use XML namespaces in YANG document … Jürgen Schönwälder
- Re: [netmod] Use XML namespaces in YANG document … Tim Bray
- Re: [netmod] Use XML namespaces in YANG document … Tim Bray
- Re: [netmod] Use XML namespaces in YANG document … Jürgen Schönwälder
- Re: [netmod] Use XML namespaces in YANG document … Martin Björklund
- Re: [netmod] Use XML namespaces in YANG document … Jernej Tuljak
- Re: [netmod] Use XML namespaces in YANG document … Ladislav Lhotka
- Re: [netmod] Use XML namespaces in YANG document … Ladislav Lhotka
- Re: [netmod] Use XML namespaces in YANG document … Ladislav Lhotka
- Re: [netmod] Use XML namespaces in YANG document … Martin Björklund
- Re: [netmod] Use XML namespaces in YANG document … ianfarrer
- Re: [netmod] Use XML namespaces in YANG document … Tim Bray
- Re: [netmod] Use XML namespaces in YANG document … Jürgen Schönwälder
- Re: [netmod] Use XML namespaces in YANG document … Tim Bray
- Re: [netmod] Use XML namespaces in YANG document … Jürgen Schönwälder
- Re: [netmod] Use XML namespaces in YANG document … tom petch
- Re: [netmod] Use XML namespaces in YANG document … Carsten Bormann
- Re: [netmod] Use XML namespaces in YANG document … tom petch
- Re: [netmod] Use XML namespaces in YANG document … Carsten Bormann
- Re: [netmod] Use XML namespaces in YANG document … tom petch
- Re: [netmod] Use XML namespaces in YANG document … Andy Bierman
- Re: [netmod] Use XML namespaces in YANG document … tom petch
- Re: [netmod] Use XML namespaces in YANG document … Carsten Bormann
- Re: [netmod] Use XML namespaces in YANG document … Jürgen Schönwälder
- Re: [netmod] Use XML namespaces in YANG document … Andy Bierman
- Re: [netmod] Use XML namespaces in YANG document … Ladislav Lhotka
- Re: [netmod] Use XML namespaces in YANG document … Jan Lindblad (jlindbla)
- Re: [netmod] Use XML namespaces in YANG document … Jürgen Schönwälder
- Re: [netmod] Use XML namespaces in YANG document … Andy Bierman
- Re: [netmod] Use XML namespaces in YANG document … Ladislav Lhotka
- Re: [netmod] Use XML namespaces in YANG document … Rob Wilton (rwilton)
- Re: [netmod] Use XML namespaces in YANG document … tom petch