Re: [Ecrit] [Technical Errata Reported] RFC8147 (7752)

"Murray S. Kucherawy" <superuser@gmail.com> Mon, 18 March 2024 03:45 UTC

Return-Path: <superuser@gmail.com>
X-Original-To: ecrit@ietfa.amsl.com
Delivered-To: ecrit@ietfa.amsl.com
Received: from localhost (localhost [127.0.0.1]) by ietfa.amsl.com (Postfix) with ESMTP id 17FB7C14F6B2 for <ecrit@ietfa.amsl.com>; Sun, 17 Mar 2024 20:45:20 -0700 (PDT)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -7.105
X-Spam-Level:
X-Spam-Status: No, score=-7.105 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, RCVD_IN_DNSWL_HI=-5, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=ham autolearn_force=no
Authentication-Results: ietfa.amsl.com (amavisd-new); dkim=pass (2048-bit key) header.d=gmail.com
Received: from mail.ietf.org ([50.223.129.194]) by localhost (ietfa.amsl.com [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 05EK6b8hauAY for <ecrit@ietfa.amsl.com>; Sun, 17 Mar 2024 20:45:19 -0700 (PDT)
Received: from mail-ed1-x52a.google.com (mail-ed1-x52a.google.com [IPv6:2a00:1450:4864:20::52a]) (using TLSv1.3 with cipher TLS_AES_128_GCM_SHA256 (128/128 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits) server-digest SHA256) (No client certificate requested) by ietfa.amsl.com (Postfix) with ESMTPS id C9251C14F6AE for <ecrit@ietf.org>; Sun, 17 Mar 2024 20:45:18 -0700 (PDT)
Received: by mail-ed1-x52a.google.com with SMTP id 4fb4d7f45d1cf-56aa63bd94cso82994a12.0 for <ecrit@ietf.org>; Sun, 17 Mar 2024 20:45:18 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1710733517; x=1711338317; darn=ietf.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=1WLvBv7YmJhIVXaZECUutTz9Ch1U8W8kA4bGko4RVFk=; b=gMNbPnK0GoLt7tK2vqygmyoKk31AM2ZIr00HuOKoAH4+zs59r23XcrLXIbr/SJj05+ DyqBIDAarhem7GiYNTzOOXBknjePS7UVjSPotlP+fY0c+IPkSRWFrQLknf/xBcj02Omq tdvXFmrfSgPDQt6hGpg4Ecysplu4bsXMTXaAVbP8PCymmKCOwaT/ei4rZ5I67ILgEMgY RtfrNXhaPbaQRg7/w7WX3eL2ywneuHs9ywFoM2WmN8xPGI0+vuCzVudQZ2lMt7fDNOab i6Nj+WFB4plmSquDaHbFTizLSXgmpXgPmcK34J0k4wqpPpIT5ABu4s0u7PIXIBoWuvsP AnqQ==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1710733517; x=1711338317; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=1WLvBv7YmJhIVXaZECUutTz9Ch1U8W8kA4bGko4RVFk=; b=k42TW7H74cLMqrBuhI1H8awnbpioebILd+9qPLJ5Ebo0mqVQPEKIosQZEvWXuo/T1p Fq12cAJKLCLksCnFK7SIqIi8Hi/JLZTuSGTT1Ejr5qIdDWNYWncbak4+fDL8RTmfGrh6 CrU0k2gfc7JK1wxZ152ZFfV3vjdoC6rGWSRS/DDuGnsbs6QXDAuF1S/oKyzUPWjbgjSF 6J0RF215dtW0uBtBxkNRC1dYOMkF1fD8b92Ff72qlLK1pNJz5pB0HBQcC1t647WN7EIp 4BxTil9MBLBgkoQRScQv8WYUF+KyPKPm/vaJO0mmLJICd0fjzfcefSoUO7cZI6yMY0h7 95Zg==
X-Forwarded-Encrypted: i=1; AJvYcCW0xUibWfxllZmI2fkxdFyOHCQfzRFCvp0lhGnaaYa6/Xnp5lzYzGxAr35Sv3OhHku7vg6/3+HK6o7Af2WGjA==
X-Gm-Message-State: AOJu0YxJxYyUNMbd2wfHDPjp/ZQFiVoagq4jk/pB8Hpqut2TuBNHGINL fOYaMkYNKuY+VIlkjXy2Dsn7UnM3g/er1IDbxeDr1FLDnT4xazRAN7s/Lt+1HyvI3+WLJ0mL1Rn Oj2YC1ENFx/aXhnkA0bFqQ2eepCM=
X-Google-Smtp-Source: AGHT+IF20ESnM13oahl17T90XGPwshlC6w6YFOPE7dfssCLpuEUELs29XxzCY3jq/IA5liDFcPdTBsoX8gkZ5qmPC28=
X-Received: by 2002:a17:906:3097:b0:a3f:1250:5c3e with SMTP id 23-20020a170906309700b00a3f12505c3emr6629829ejv.0.1710733517113; Sun, 17 Mar 2024 20:45:17 -0700 (PDT)
MIME-Version: 1.0
References: <20240109151337.15FB319D99B5@rfcpa.amsl.com> <4749A170-57E7-456B-937F-B278AF843C01@coretechnologyconsulting.com>
In-Reply-To: <4749A170-57E7-456B-937F-B278AF843C01@coretechnologyconsulting.com>
From: "Murray S. Kucherawy" <superuser@gmail.com>
Date: Mon, 18 Mar 2024 13:45:04 +1000
Message-ID: <CAL0qLwYCJv2U5mSPjHFJttBEkzBPW5-Gs70Pi8DdHaKSEGKA7w@mail.gmail.com>
To: Randall Gellens <rg+ietf@coretechnologyconsulting.com>
Cc: RFC Errata System <rfc-editor@rfc-editor.org>, Hannes.Tschofenig@gmx.net, francesca.palombini@ericsson.com, allison.mankin@gmail.com, roger.marshall@comtechtel.com, andreas.wehrmann@strabag.com, ecrit@ietf.org
Content-Type: multipart/alternative; boundary="00000000000097d02f0613e72f62"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ecrit/_QgsZe-6Z1rfbo2mWTGJ-dURVhE>
Subject: Re: [Ecrit] [Technical Errata Reported] RFC8147 (7752)
X-BeenThere: ecrit@ietf.org
X-Mailman-Version: 2.1.39
Precedence: list
List-Id: Emergency Context Resolution with Internet Technologies <ecrit.ietf.org>
List-Unsubscribe: <https://www.ietf.org/mailman/options/ecrit>, <mailto:ecrit-request@ietf.org?subject=unsubscribe>
List-Archive: <https://mailarchive.ietf.org/arch/browse/ecrit/>
List-Post: <mailto:ecrit@ietf.org>
List-Help: <mailto:ecrit-request@ietf.org?subject=help>
List-Subscribe: <https://www.ietf.org/mailman/listinfo/ecrit>, <mailto:ecrit-request@ietf.org?subject=subscribe>
X-List-Received-Date: Mon, 18 Mar 2024 03:45:20 -0000

Done.

-MSK

On Wed, Jan 10, 2024 at 2:13 AM Randall Gellens <
rg+ietf@coretechnologyconsulting.com> wrote:

> This looks correct to me. I'd suggest, just for convenience of the reader,
> adding a summary of the changes above the full changes, as follows:
> ------------------------------
>
> Replace all four occurrences of:
>
> <xs:any namespace="##any" processContents="lax"
>
> with:
> <xs:any namespace="##other" processContents="lax"
>
> I do not have a login at rfc-editor.org to change the state. Perhaps
> Murray or the RFC Editor can accept the errata and add the summary?
>
> --Randall
>
> On 9 Jan 2024, at 7:13, RFC Errata System wrote:
>
> The following errata report has been submitted for RFC8147,
> "Next-Generation Pan-European eCall".
> ------------------------------
>
> You may review the report below and at:
> https://www.rfc-editor.org/errata/eid7752
> ------------------------------
>
> Type: Technical
> Reported by: Andreas Wehrmann andreas.wehrmann@strabag.com
>
> Section: 13
> Original Text
>
> <?xml version="1.0"?>
>
> <xs:schema
> targetNamespace="urn:ietf:params:xml:ns:EmergencyCallData:control"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:pi="urn:ietf:params:xml:ns:EmergencyCallData:control"
> xmlns:xml="http://www.w3.org/XML/1998/namespace"
> elementFormDefault="qualified"
> attributeFormDefault="unqualified">
>
> <xs:import namespace="http://www.w3.org/XML/1998/namespace"/>
>
> <xs:element name="EmergencyCallData.Control"
>     type="pi:controlType"/>
>
> <xs:complexType name="controlType">
>     <xs:complexContent>
>         <xs:restriction base="xs:anyType">
>             <xs:choice>
>                 <xs:element name="capabilities"
>                     type="pi:capabilitiesType"/>
>                 <xs:element name="request" type="pi:requestType"/>
>                 <xs:element name="ack" type="pi:ackType"/>
>                 <xs:any namespace="##any" processContents="lax"
>                     minOccurs="0"
>                     maxOccurs="unbounded"/>
>             </xs:choice>
>             <xs:anyAttribute/>
>         </xs:restriction>
>     </xs:complexContent>
> </xs:complexType>
>
> <xs:complexType name="ackType">
>     <xs:complexContent>
>         <xs:restriction base="xs:anyType">
>             <xs:sequence minOccurs="1" maxOccurs="unbounded">
>                 <xs:element name="actionResult" minOccurs="0"
>                     maxOccurs="unbounded">
>                     <xs:complexType>
>                         <xs:attribute name="action"
>                             type="xs:token"
>                             use="required"/>
>                         <xs:attribute name="success"
>                             type="xs:boolean"
>                             use="required"/>
>                         <xs:attribute name="reason"
>                             type="xs:token">
>                             <xs:annotation>
>                                 <xs:documentation>
>                                     conditionally mandatory
>                                     when @success="false"
>                                     to indicate reason code
>                                     for a failure
>                                 </xs:documentation>
>                             </xs:annotation>
>                         </xs:attribute>
>                         <xs:attribute name="details"
>                             type="xs:string"/>
>                         <xs:anyAttribute
>                             processContents="skip"/>
>                     </xs:complexType>
>                 </xs:element>
>                 <xs:any namespace="##any" processContents="lax"
>                     minOccurs="0"
>                     maxOccurs="unbounded"/>
>             </xs:sequence>
>             <xs:attribute name="ref"
>                 type="xs:anyURI"
>                 use="required"/>
>
>             <xs:attribute name="received"
>                 type="xs:boolean"/>
>             <xs:anyAttribute/>
>         </xs:restriction>
>     </xs:complexContent>
> </xs:complexType>
>
> <xs:complexType name="capabilitiesType">
>     <xs:complexContent>
>         <xs:restriction base="xs:anyType">
>             <xs:sequence minOccurs="1" maxOccurs="unbounded">
>                 <xs:element name="request"
>                     type="pi:requestType"
>                     minOccurs="1"
>                     maxOccurs="unbounded"/>
>                 <xs:any namespace="##any" processContents="lax"
>                     minOccurs="0"
>                     maxOccurs="unbounded"/>
>             </xs:sequence>
>             <xs:anyAttribute/>
>         </xs:restriction>
>     </xs:complexContent>
> </xs:complexType>
>
> <xs:complexType name="requestType">
>     <xs:complexContent>
>         <xs:restriction base="xs:anyType">
>             <xs:choice minOccurs="1" maxOccurs="unbounded">
>                 <xs:element name="text" minOccurs="0"
>                     maxOccurs="unbounded">
>                     <xs:complexType>
>                         <xs:simpleContent>
>                             <xs:extension base="xs:string">
>                                 <xs:anyAttribute
>                                     namespace="##any"
>                                     processContents="skip"/>
>                             </xs:extension>
>                         </xs:simpleContent>
>                     </xs:complexType>
>                 </xs:element>
>                 <xs:any namespace="##any" processContents="lax"
>                     minOccurs="0"
>                     maxOccurs="unbounded"/>
>             </xs:choice>
>             <xs:attribute name="action" type="xs:token"
>                 use="required"/>
>
>             <xs:attribute name="int-id" type="xs:unsignedInt"/>
>             <xs:attribute name="persistence"
>                 type="xs:duration"/>
>             <xs:attribute name="datatype" type="xs:token"/>
>             <xs:attribute name="supported-values"
>                 type="xs:string"/>
>             <xs:attribute name="element-id" type="xs:token"/>
>             <xs:attribute name="requested-state"
>                 type="xs:token"/>
>             <xs:anyAttribute/>
>         </xs:restriction>
>     </xs:complexContent>
> </xs:complexType>
>
> </xs:schema>
> Corrected Text
>
> <?xml version="1.0"?>
>
> <xs:schema
> targetNamespace="urn:ietf:params:xml:ns:EmergencyCallData:control"
> xmlns:xs="http://www.w3.org/2001/XMLSchema"
> xmlns:pi="urn:ietf:params:xml:ns:EmergencyCallData:control"
> xmlns:xml="http://www.w3.org/XML/1998/namespace"
> elementFormDefault="qualified"
> attributeFormDefault="unqualified">
>
> <xs:import namespace="http://www.w3.org/XML/1998/namespace"/>
>
> <xs:element name="EmergencyCallData.Control"
>     type="pi:controlType"/>
>
> <xs:complexType name="controlType">
>     <xs:complexContent>
>         <xs:restriction base="xs:anyType">
>             <xs:choice>
>                 <xs:element name="capabilities"
>                     type="pi:capabilitiesType"/>
>                 <xs:element name="request" type="pi:requestType"/>
>                 <xs:element name="ack" type="pi:ackType"/>
>                 <xs:any namespace="##other" processContents="lax"
>                     minOccurs="0"
>                     maxOccurs="unbounded"/>
>             </xs:choice>
>             <xs:anyAttribute/>
>         </xs:restriction>
>     </xs:complexContent>
> </xs:complexType>
>
> <xs:complexType name="ackType">
>     <xs:complexContent>
>         <xs:restriction base="xs:anyType">
>             <xs:sequence minOccurs="1" maxOccurs="unbounded">
>                 <xs:element name="actionResult" minOccurs="0"
>                     maxOccurs="unbounded">
>                     <xs:complexType>
>                         <xs:attribute name="action"
>                             type="xs:token"
>                             use="required"/>
>                         <xs:attribute name="success"
>                             type="xs:boolean"
>                             use="required"/>
>                         <xs:attribute name="reason"
>                             type="xs:token">
>                             <xs:annotation>
>                                 <xs:documentation>
>                                     conditionally mandatory
>                                     when @success="false"
>                                     to indicate reason code
>                                     for a failure
>                                 </xs:documentation>
>                             </xs:annotation>
>                         </xs:attribute>
>                         <xs:attribute name="details"
>                             type="xs:string"/>
>                         <xs:anyAttribute
>                             processContents="skip"/>
>                     </xs:complexType>
>                 </xs:element>
>                 <xs:any namespace="##other" processContents="lax"
>                     minOccurs="0"
>                     maxOccurs="unbounded"/>
>             </xs:sequence>
>             <xs:attribute name="ref"
>                 type="xs:anyURI"
>                 use="required"/>
>
>             <xs:attribute name="received"
>                 type="xs:boolean"/>
>             <xs:anyAttribute/>
>         </xs:restriction>
>     </xs:complexContent>
> </xs:complexType>
>
> <xs:complexType name="capabilitiesType">
>     <xs:complexContent>
>         <xs:restriction base="xs:anyType">
>             <xs:sequence minOccurs="1" maxOccurs="unbounded">
>                 <xs:element name="request"
>                     type="pi:requestType"
>                     minOccurs="1"
>                     maxOccurs="unbounded"/>
>                 <xs:any namespace="##other" processContents="lax"
>                     minOccurs="0"
>                     maxOccurs="unbounded"/>
>             </xs:sequence>
>             <xs:anyAttribute/>
>         </xs:restriction>
>     </xs:complexContent>
> </xs:complexType>
>
> <xs:complexType name="requestType">
>     <xs:complexContent>
>         <xs:restriction base="xs:anyType">
>             <xs:choice minOccurs="1" maxOccurs="unbounded">
>                 <xs:element name="text" minOccurs="0"
>                     maxOccurs="unbounded">
>                     <xs:complexType>
>                         <xs:simpleContent>
>                             <xs:extension base="xs:string">
>                                 <xs:anyAttribute
>                                     namespace="##any"
>                                     processContents="skip"/>
>                             </xs:extension>
>                         </xs:simpleContent>
>                     </xs:complexType>
>                 </xs:element>
>                 <xs:any namespace="##other" processContents="lax"
>                     minOccurs="0"
>                     maxOccurs="unbounded"/>
>             </xs:choice>
>             <xs:attribute name="action" type="xs:token"
>                 use="required"/>
>
>             <xs:attribute name="int-id" type="xs:unsignedInt"/>
>             <xs:attribute name="persistence"
>                 type="xs:duration"/>
>             <xs:attribute name="datatype" type="xs:token"/>
>             <xs:attribute name="supported-values"
>                 type="xs:string"/>
>             <xs:attribute name="element-id" type="xs:token"/>
>             <xs:attribute name="requested-state"
>                 type="xs:token"/>
>             <xs:anyAttribute/>
>         </xs:restriction>
>     </xs:complexContent>
> </xs:complexType>
>
> </xs:schema>
> Notes
>
> The complex types "controlType", "ackType", "capabilitiesType" and
> "requestType" define extension points by using xs:any with namespace ##any.
> This violates the "Unique Particle Attribution" rule for XSD 1.0 (see:
> https://www.w3.org/wiki/UniqueParticleAttribution) and shows up as an
> error in some tools.
> I suggest changing the namespace to ##other like it's done in other
> schemas (for example, RFC7865 defines extension points in this way:
> https://datatracker.ietf.org/doc/html/rfc7865#section-9 ).
> Instructions:
>
> This erratum is currently posted as "Reported". (If it is spam, it
> will be removed shortly by the RFC Production Center.) Please
> use "Reply All" to discuss whether it should be verified or
> rejected. When a decision is reached, the verifying party
> will log in to change the status and edit the report, if necessary.
> ------------------------------
> RFC8147 (draft-ietf-ecrit-ecall-27)
>
> Title : Next-Generation Pan-European eCall
> Publication Date : May 2017
> Author(s) : R. Gellens, H. Tschofenig
> Category : PROPOSED STANDARD
> Source : Emergency Context Resolution with Internet Technologies
> Area : Applications and Real-Time
> Stream : IETF
> Verifying Party : IESG
>
>