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

Guy Caron <guycaron911@gmail.com> Tue, 16 January 2024 18:58 UTC

Return-Path: <guycaron911@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 85CF2C14F709 for <ecrit@ietfa.amsl.com>; Tue, 16 Jan 2024 10:58:27 -0800 (PST)
X-Virus-Scanned: amavisd-new at amsl.com
X-Spam-Flag: NO
X-Spam-Score: -1.755
X-Spam-Level:
X-Spam-Status: No, score=-1.755 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_ENVFROM_END_DIGIT=0.25, FREEMAIL_FROM=0.001, HTML_MESSAGE=0.001, MIME_HTML_ONLY=0.1, RCVD_IN_DNSWL_NONE=-0.0001, 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=no 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 5n8gluNgflNz for <ecrit@ietfa.amsl.com>; Tue, 16 Jan 2024 10:58:23 -0800 (PST)
Received: from mail-yb1-xb2e.google.com (mail-yb1-xb2e.google.com [IPv6:2607:f8b0:4864:20::b2e]) (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 6ADEDC14F6B5 for <ecrit@ietf.org>; Tue, 16 Jan 2024 10:58:23 -0800 (PST)
Received: by mail-yb1-xb2e.google.com with SMTP id 3f1490d57ef6-db3fa47c2f7so8463867276.0 for <ecrit@ietf.org>; Tue, 16 Jan 2024 10:58:23 -0800 (PST)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1705431502; x=1706036302; darn=ietf.org; h=cc:to:references:message-id:in-reply-to:thread-topic:subject:from :date:mime-version:from:to:cc:subject:date:message-id:reply-to; bh=3W2oj2jrcZ9NLCP4iiyIL0esqUqt/CQYqfTyreIUuSs=; b=NWo/4TajlueQy0lY+6xo52mFAhp60Yg1W+9rX9hCis0H1MXUlOHEjNbjk+xjxh46ji Pee+9GIPNQu9fxicgqVbhVoYsFZAibfplU0q6C+1YqYXADXJQd43mmgz0JfdaTqbJvSI 2TT4HAj+x25jDkjNfc/zEbif3mwoMt4+Kbd4BOunTTIc+AIloXFyDWRR1MNNFZs/abWG oakyxQr192QG5vYxCQtT6VJLe+kBDaKdFIwgItl2mqq5EOUKi2qloOV2/ichUzaChAog MHDsjbuLoyoU8SHPpmT4PfYj6TH5JP4Quseg4AcvfM2VwC/MdcNgBopasgIvebMLqDNj bDlg==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1705431502; x=1706036302; h=cc:to:references:message-id:in-reply-to:thread-topic:subject:from :date:mime-version:x-gm-message-state:from:to:cc:subject:date :message-id:reply-to; bh=3W2oj2jrcZ9NLCP4iiyIL0esqUqt/CQYqfTyreIUuSs=; b=fMmPTmVAuw0i/Ns2grRxzv8r4f4It0+waFc/3b46g0im123AmAqN3uHiQPNG8M+NTU He/qwxaqdOX+uJHXXf7MVNApDP1A2M+n/NYQYCreKd3W0iw35RX+7RBBpyXSkjAR1AM0 O96mvKArV59qee6yFuXySxlmBlV6MBRUQbvciAxM96xNJbAkR6mImYEZjRo7JImj/7wk ygvrmFhYeb54fEbDEiThrHYFKrW2obUZka8+IsnSoK4IgPzKVADwHi+2B5tPSM4WyKYZ lJsk8fN3xxePoK5KYvVhKVYiJlqfh4fE0bkDkLByvRWs33z2Z4dUicsqklsvLR2ydMUH vaXg==
X-Gm-Message-State: AOJu0YxFpu7fyADyhgKIshm53Z36xUL3G/B8kuLs3KOqi+8e9JZcllCV TyhHvO85xgI8E6nVa+rAthk=
X-Google-Smtp-Source: AGHT+IH401ruwca3ug5nsmUNXnJSr+oYbUmisblhvuZtys0+tj7Zf5Ouqq7Imjrmx3z+VnPkxV5Guw==
X-Received: by 2002:a25:1c3:0:b0:dc2:3982:b990 with SMTP id 186-20020a2501c3000000b00dc23982b990mr20158ybb.109.1705431501639; Tue, 16 Jan 2024 10:58:21 -0800 (PST)
Received: from GUYCARON ([2001:56b:bc81:2000:548f:dd4e:4903:70ce]) by smtp.gmail.com with ESMTPSA id ey19-20020a05622a4c1300b004298c9d0ba8sm5134231qtb.22.2024.01.16.10.58.20 (version=TLS1_2 cipher=ECDHE-ECDSA-AES128-GCM-SHA256 bits=128/128); Tue, 16 Jan 2024 10:58:21 -0800 (PST)
MIME-Version: 1.0
Date: Tue, 16 Jan 2024 13:58:17 -0500
From: Guy Caron <guycaron911@gmail.com>
Thread-Topic: Objet : [Ecrit] [Technical Errata Reported] RFC8147 (7752)
In-Reply-To: <4749A170-57E7-456B-937F-B278AF843C01@coretechnologyconsulting.com>
Message-ID: <60A9F891-35C4-407D-A5C8-9DAB478188B7@hxcore.ol>
References: <20240109151337.15FB319D99B5@rfcpa.amsl.com>, <4749A170-57E7-456B-937F-B278AF843C01@coretechnologyconsulting.com>
To: Randall Gellens <rg+ietf@coretechnologyconsulting.com>, RFC Errata System <rfc-editor@rfc-editor.org>, "\"Murray S. Kucherawy\"" <superuser@gmail.com>
Cc: "allison.mankin@gmail.com" <allison.mankin@gmail.com>, "roger.marshall@comtechtel.com" <roger.marshall@comtechtel.com>, "andreas.wehrmann@strabag.com" <andreas.wehrmann@strabag.com>, "francesca.palombini@ericsson.com" <francesca.palombini@ericsson.com>, "ecrit@ietf.org" <ecrit@ietf.org>
Content-Type: multipart/related; boundary="_E31C4150-1D8C-4C8D-8A46-716F2EF95406_"
Archived-At: <https://mailarchive.ietf.org/arch/msg/ecrit/gBzdXwQ00i_NGOYh7tAbqCKb8qo>
Subject: [Ecrit] Objet : [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, 16 Jan 2024 18:58:27 -0000

Any reason as to why RFC 8147 did not request the registration of its XML schema in the https://www.iana.org/assignments/xml-registry/xml-registry.xhtml" rel="nofollow">IETF XML Registry maintained by IANA as per RFC 3688, while it did for the namespace?

 

Thanks,

 

Guy

 

De : Randall Gellens
Envoyé le :9 janvier 2024 11:13
À : RFC Errata System; "Murray S. Kucherawy"
Cc : allison.mankin@gmail.com; roger.marshall@comtechtel.com; andreas.wehrmann@strabag.com; francesca.palombini@ericsson.com; ecrit@ietf.org
Objet :Re: [Ecrit] [Technical Errata Reported] RFC8147 (7752)

 

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" rel="nofollow">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" rel="nofollow">http://www.w3.org/2001/XMLSchema"
xmlns:pi="urn:ietf:params:xml:ns:EmergencyCallData:control"
xmlns:xml="http://www.w3.org/XML/1998/namespace" rel="nofollow">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" rel="nofollow">http://www.w3.org/2001/XMLSchema"
xmlns:pi="urn:ietf:params:xml:ns:EmergencyCallData:control"
xmlns:xml="http://www.w3.org/XML/1998/namespace" rel="nofollow">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" rel="nofollow">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" rel="nofollow">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