Skip to content

Commit 74d2fbb

Browse files
committed
IRI normalization requirements
1 parent a42fcdf commit 74d2fbb

File tree

1 file changed

+13
-2
lines changed

1 file changed

+13
-2
lines changed

specs/jsonschema-core.md

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -951,8 +951,19 @@ identified by
951951
[absolute IRIs](https://www.rfc-editor.org/rfc/rfc3987.html#section-2.2)
952952
(without fragments). These identifiers are used to create references between
953953
schema resources. When comparing IRIs for the purposes of resource
954-
identification, implementations SHOULD first follow the IRI normalization
955-
procedures defined in [RFC 3987][rfc3987], section 5.3.
954+
identification, implementations MUST apply the Syntax-Based IRI normalization
955+
procedures defined in [RFC 3987][rfc3987], section 5.3.2.[^12] Implementations
956+
MAY also apply Scheme-Based and Protocol-Based Normalization.[^13]
957+
958+
[^12]: [RFC 3987][rfc3987], section 5.1, requires that applications using IRIs
959+
as non-locating, identifier-only tokens MUST use Simple String Comparison. JSON
960+
Schema deviates from that requirement by specifying normalization requirements.
961+
962+
[^13]: We expect implementations to use whatever IRI libraries they have
963+
available to them and therefore don't always have control over which
964+
normalization rules are applied. Supporting Scheme-Based and Protocol-Based
965+
Normalization is allowed to accommodate those situations, but it is discouraged
966+
otherwise.
956967

957968
Several keywords can accept a relative IRI reference, or a value
958969
used to construct a relative IRI reference. For these keywords, it is necessary

0 commit comments

Comments
 (0)