Skip to content

URI/IRI "Normalization" and Compatibility #1349

Closed
@watuwo

Description

@watuwo

The current core specification (2020-12) requires that
"$schema" (and some other) URIs "MUST be normalized".
While RFC 3986 makes suggestions for "normalization" steps,
it does not define a normal form for URIs (IRIs analogous).

"normalized"/"normal"/"normalization"/... (of URIs/IRIs) is
not well-defined. I propose that these terms are either
eliminated from the specification or defined.

My current personal preference: Eliminate the
"normalization" constraint.


A thought about the switch from URIs to IRIs:

An implementation could/should reject a schema if

  • the resolution of "$id" yields an IRI that is not also
    a URI

  • AND the schema's meta schema declares

    ...
    "$vocabulary": {
      ...
      "https://json-schema.org/draft/2020-12/vocab/core": true
      ...
    

Is this true now? Can this still occur in the future? Is
rejection still possible/desired? What about this:

Meta-schemas that do not use "$vocabulary" MUST be
considered to require the Core vocabulary as if its URI
were present with a value of true.

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

Status

Done

Relationships

None yet

Development

No branches or pull requests

Issue actions