Re: [netmod] Use XML namespaces in YANG document examples
Tim Bray <tbray@textuality.com> Mon, 07 February 2022 19:41 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 A44BE3A041C for <netmod@ietfa.amsl.com>; Mon, 7 Feb 2022 11:41:51 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -6.898
X-Spam-Level:
X-Spam-Status: No, score=-6.898 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_HI=-5, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, URIBL_BLOCKED=0.001] autolearn=ham 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 l7QGGtalIN2r for <netmod@ietfa.amsl.com>; Mon, 7 Feb 2022 11:41:46 -0800 (PST)
Received: from mail-lf1-x130.google.com (mail-lf1-x130.google.com [IPv6:2a00:1450:4864:20::130]) (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 10B043A0858 for <netmod@ietf.org>; Mon, 7 Feb 2022 11:41:45 -0800 (PST)
Received: by mail-lf1-x130.google.com with SMTP id z4so14189581lfg.5 for <netmod@ietf.org>; Mon, 07 Feb 2022 11:41:45 -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=Szs17NdCexVJZiaf7zSEnQQwx5k/3/Z8D1IJgpq2NGY=; b=gqnL4Y86wQ7OUrhCGL7bFOxqUZQnyOi8B0iR0aAe1cjS/o+lMDDRYTLFboAefcX1nb 4GTSttNAVW+hFH7nMVUq/t+ItBBvPb30K2Cc3e1f/6TB0RkOD6G+IoeGY17BxSrbZGiM ZIiMje15qd5YOXAUJP29sA4NgcwKR1vf9u8bA7ouTOAWEUiKqfO/66EUxTiheSUB9tN1 hwPM/2Q1fjVt9ZQnAD6524wGXgeRjBa4Z0i2fVc6jhPpGhtuP4eiKY6UNJTtYy0cWpwp 5EgL82VaL3UK4Ifyt/hOhmULJ/fogOUiZgO+GKS5wviWY15DqBO1jj4CqrgXPwark7XQ 8LuA==
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=Szs17NdCexVJZiaf7zSEnQQwx5k/3/Z8D1IJgpq2NGY=; b=fhuGZYZVn+h3ZZMcCl7TaB1R8QnOLdddtWGOOGvT82r4N1lYQfxA5U0X813mjbb5FY EkX9KzVnUSfIUHMc/QipMub9kHiqimaphPqy4kPKO1DL5gUaffDFdoiQFdMmNZBrPEts xBnCEr0xgOcrQoV4zgEg337Ytpw/ClZwxhT3C4rXSa0UC+5+eOFyNF7Me/ffkNRPgBVt S8PWqYOsGgAwl0oMeUK14iRW9biht/YbMBgdDX02QFYNj7zcA2ciCDYOx0O90ZNkgmDr MfOcq43cEKMqlH6NKSvTG9sktuooOY+m85uiNwnLlN17Y01OfWHbz3y6ytHj2i1wsevn g8GQ==
X-Gm-Message-State: AOAM532p0d19NrnjntiFjLfqDz5NdEXFKscn7gpXCZxghs5Eu+UzvZXx 9tIbenLt2cAJlaFUXwlLzcp/tSl3x24nVuZm5XpimQ==
X-Google-Smtp-Source: ABdhPJzcw86028nGGKY4kbKj0Fy9Fq4fqt64NroaRavb5g7/eNXdQpyB2ZQmQcG2kXnT7hUySUkU/sZBHjDtshTRY8Q=
X-Received: by 2002:a05:6512:2350:: with SMTP id p16mr716919lfu.646.1644262903017; Mon, 07 Feb 2022 11:41:43 -0800 (PST)
MIME-Version: 1.0
References: <CAHBU6is235QT3d7q+0xhJHdtVna_9-qjGzHG_P4gnMd6nKtdTw@mail.gmail.com> <20220204.081841.166197909676487568.id@4668.se> <866e763b-88ce-ca3f-300a-7f702467fe7c@mg-soft.si> <20220204.161536.1816358672148417997.id@4668.se> <5BDB40B2-F191-41BC-92DF-BD0A94B6E992@gmx.com>
In-Reply-To: <5BDB40B2-F191-41BC-92DF-BD0A94B6E992@gmx.com>
From: Tim Bray <tbray@textuality.com>
Date: Mon, 07 Feb 2022 11:41:31 -0800
Message-ID: <CAHBU6ivTiDUoN217k6u2qVJaqKEWTcT09UuDN8AW0yuY=fA3dA@mail.gmail.com>
To: ianfarrer@gmx.com
Cc: Martin Björklund <mbj+ietf@4668.se>, jernej.tuljak@mg-soft.si, dhc-chairs@ietf.org, "Eric Vyncke (evyncke)" <evyncke@cisco.com>, drafts-expert-review@iana.org, netmod@ietf.org
Content-Type: multipart/alternative; boundary="00000000000040885505d772caa7"
Archived-At: <https://mailarchive.ietf.org/arch/msg/netmod/gQRhZhl4VlNwS4L7DPKkRTye7XY>
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: Mon, 07 Feb 2022 19:41:57 -0000
LGTM. On Mon, Feb 7, 2022 at 11:40 AM <ianfarrer@gmx.com> wrote: > Hi, > > Reading back through the discussion, I think I can summarise the outcome > to the following 2 points: > > 1,The examples in the DHCPv6 YANG draft can keep the current use of XML > prefixes (e.g. ianaift:ethernetCsmacd) > > 2, In the XML examples appendix, I will change the first paragraph to read: > > XML Examples for DHCPv6 Element Configuration > > This section contains XML examples of data trees for the different > > DHCPv6 elements. In order for the XML data to be used correctly, > > the XML prefix must be the same as the namespace prefix. i.e, for > > The client configuration example, the characters before the colon > > (or 'ianaift:’ in the "interface/type” element content) must match the > > xmlns defined for "urn:ietf:params:xml:ns:yang:iana-if-type”. In this > > case xmlns:ianaift="urn:ietf:params:xml:ns:yang:iana-if-type”. > > Therefore, XML software must be chosen that makes the namespace prefix > > information available. > > > Does this sound like the right way to proceed? > > Thanks, > Ian > > > > > On 4. Feb 2022, at 16:15, Martin Björklund <mbj+ietf@4668.se> wrote: > > Jernej Tuljak <jernej.tuljak@mg-soft.si> wrote: > > > > On 04/02/2022 08:18, Martin Björklund wrote: > > Tim Bray <tbray@textuality.com> wrote: > > 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. > > Does this mean that an XML processor might not pass attributes in > general to the application? If so, we might have other similar > problems. Or does it mean that an XML processor might just not pass > these "special" attributes? If so, where is that specified? (I tried > to find this info in the spec, but didn't find it). > > > Names that start with "xml" (case insensitive) are reserved by XML 1.0 > specification, "xmlns" in an attribute name included (2.3 Common > Syntactic Constructs). They are special. There is also a guideline on > colon usage within names. > > > Yes, I know. But I can't see that the spec says that attributes w/ > reserved names should be treated differently wrt. the application than > other attributes. > > All processors I'm aware of differentiate between attributes and > namespace attributes in their APIs. What Tim is probably saying is > that some XML processors either don't implement Namespaces in XML 1.0 > or need to be explicitly configured to become "namespace aware". If > not configured as namespace aware, they might simply ignore namespace > attributes therefore not passing them. If they are configured as > namespace aware, they might remove prefix information and pass only > "namespace : local-name" pairs where required (and that excludes text > node content). > > > I guess I wonder if this is b/c the specification says so, or that > some implementations choose to do so. > > > /martin > > > > > Jernej > > > > /martin > > > 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 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] 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