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

Randall Gellens <rg+ietf@coretechnologyconsulting.com> Tue, 09 January 2024 16:13 UTC

Return-Path: <rg+ietf@coretechnologyconsulting.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 933DBC14F71E for <ecrit@ietfa.amsl.com>; Tue, 9 Jan 2024 08:13:54 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.906
X-Spam-Level:
X-Spam-Status: No, score=-1.906 tagged_above=-999 required=5 tests=[BAYES_00=-1.9, HTML_MESSAGE=0.001, RCVD_IN_ZEN_BLOCKED_OPENDNS=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01, URIBL_BLOCKED=0.001, URIBL_DBL_BLOCKED_OPENDNS=0.001, URIBL_ZEN_BLOCKED_OPENDNS=0.001] autolearn=unavailable autolearn_force=no
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 XO8S_UKw__LO for <ecrit@ietfa.amsl.com>; Tue, 9 Jan 2024 08:13:49 -0800 (PST)
Received: from turing.pensive.org (turing.pensive.org [99.111.97.161]) by ietfa.amsl.com (Postfix) with ESMTP id 3DBF7C14F6FC for <ecrit@ietf.org>; Tue, 9 Jan 2024 08:13:49 -0800 (PST)
Received: from [99.111.97.131] (99.111.97.161) by turing.pensive.org with ESMTP (EIMS X 3.3.9); Tue, 9 Jan 2024 08:13:48 -0800
From: Randall Gellens <rg+ietf@coretechnologyconsulting.com>
To: RFC Errata System <rfc-editor@rfc-editor.org>, "\"Murray S. Kucherawy\"" <superuser@gmail.com>
Cc: Hannes.Tschofenig@gmx.net, superuser@gmail.com, francesca.palombini@ericsson.com, allison.mankin@gmail.com, roger.marshall@comtechtel.com, andreas.wehrmann@strabag.com, ecrit@ietf.org
Date: Tue, 09 Jan 2024 08:13:46 -0800
X-Mailer: MailMate (1.14r6015)
Message-ID: <4749A170-57E7-456B-937F-B278AF843C01@coretechnologyconsulting.com>
In-Reply-To: <20240109151337.15FB319D99B5@rfcpa.amsl.com>
References: <20240109151337.15FB319D99B5@rfcpa.amsl.com>
MIME-Version: 1.0
Content-Type: multipart/alternative; boundary="=_MailMate_FC165394-DD8D-4A56-A31D-6E0F4868589D_="
Archived-At: <https://mailarchive.ietf.org/arch/msg/ecrit/QWz5iS8kkVuE6NNqlAsdPB3XhAs>
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: Tue, 09 Jan 2024 16:13:54 -0000

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