From b681e2739561758905ce9090150513c8f7f99a2d Mon Sep 17 00:00:00 2001 From: Eemeli Aro Date: Sun, 25 Aug 2024 19:41:27 +0300 Subject: [PATCH] Add section on Uniqueness and Equality --- spec/README.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/spec/README.md b/spec/README.md index a631901c67..ae3e54dcbf 100644 --- a/spec/README.md +++ b/spec/README.md @@ -5,6 +5,7 @@ 1. [Introduction](#introduction) 1. [Conformance](#conformance) 1. [Terminology and Conventions](#terminology-and-conventions) + 1. [Uniqueness and Equality](#uniqueness-and-equality) 1. [Stability Policy](#stability-policy) 1. [Syntax](syntax.md) 1. [Productions](syntax.md#productions) @@ -73,6 +74,22 @@ A reference to a _term_ looks like this. > Examples are non-normative and styled like this. +### Uniqueness and Equality + +Parts of the specification compare strings with each other. +In all such cases, the comparison MUST be made +after applying [Unicode Normalization Form C](https://unicode.org/reports/tr15/) (NFC) +to each string being compared. + +This applies when assessing the validity of _messages_, +during _variable resolution_, +and when looking up a function implementation during _function resolution_. + +When parsing message syntax, +consuming or generating data model representations of messages, +or dealing with user-submitted values, +implementations MAY normalize all string values as NFC. + ### Stability Policy > [!IMPORTANT]