From b0a1cdbd25c37373bc130a623917d9424b658cf3 Mon Sep 17 00:00:00 2001 From: Greg Dennis Date: Sun, 22 Jun 2025 09:31:55 +1200 Subject: [PATCH 1/4] incorporate RFC 9557 time zone extension into 'date-time' format --- specs/jsonschema-validation.md | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/specs/jsonschema-validation.md b/specs/jsonschema-validation.md index ab980f88..67602ea4 100644 --- a/specs/jsonschema-validation.md +++ b/specs/jsonschema-validation.md @@ -397,22 +397,24 @@ custom format values. These attributes apply to string instances. Date and time format names are derived from +[RFC 9557, section 4.1](https://www.rfc-editor.org/info/rfc9557) which extends [RFC 3339, section 5.6](https://www.rfc-editor.org/info/rfc3339). The duration format is from the ISO 8601 ABNF as given in Appendix A of RFC 3339. - *date-time*: A string instance is valid against this attribute if it is a - valid representation according to the "date-time" ABNF rule (referenced above) + valid representation according to the "date-time" ABNF rule in RFC 3339, + optionally with the "time-zone" rule in RFC 9557 - *date*: A string instance is valid against this attribute if it is a valid - representation according to the "full-date" ABNF rule (referenced above) + representation according to the "full-date" ABNF rule in RFC 3339 - *time*: A string instance is valid against this attribute if it is a valid - representation according to the "full-time" ABNF rule (referenced above) + representation according to the "full-time" ABNF rule in RFC 3339 - *duration*: A string instance is valid against this attribute if it is a valid - representation according to the "duration" ABNF rule (referenced above) + representation according to the "duration" ABNF rule in ISO 8601 Implementations MAY support additional attributes using the other format names defined anywhere in that RFC. Implementations SHOULD NOT define extension -attributes with any name matching an RFC 3339 format unless it validates -according to the rules of that format.[^5] +attributes with any name matching an RFC 3339, RFC 9557, or ISO 8601 format +unless it validates according to the rules of that format.[^5] [^5]: There is not currently consensus on the need for supporting all RFC 3339 formats, so this approach of reserving the namespace will encourage From 8bdeaa6df9b61589152d9b6fe58f0521c1990d0f Mon Sep 17 00:00:00 2001 From: Greg Dennis Date: Sun, 13 Jul 2025 15:09:43 +1200 Subject: [PATCH 2/4] Update specs/jsonschema-validation.md Co-authored-by: Richard Gibson --- specs/jsonschema-validation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specs/jsonschema-validation.md b/specs/jsonschema-validation.md index 67602ea4..aa457dfb 100644 --- a/specs/jsonschema-validation.md +++ b/specs/jsonschema-validation.md @@ -409,7 +409,7 @@ format is from the ISO 8601 ABNF as given in Appendix A of RFC 3339. - *time*: A string instance is valid against this attribute if it is a valid representation according to the "full-time" ABNF rule in RFC 3339 - *duration*: A string instance is valid against this attribute if it is a valid - representation according to the "duration" ABNF rule in ISO 8601 + representation according to the "duration" ABNF rule in RFC 3339 Appendix A Implementations MAY support additional attributes using the other format names defined anywhere in that RFC. Implementations SHOULD NOT define extension From 3dca1c9f97fd03f3e3afb7232d66f92aad667a5b Mon Sep 17 00:00:00 2001 From: Greg Dennis Date: Sun, 13 Jul 2025 15:10:08 +1200 Subject: [PATCH 3/4] Update specs/jsonschema-validation.md Co-authored-by: Richard Gibson --- specs/jsonschema-validation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specs/jsonschema-validation.md b/specs/jsonschema-validation.md index aa457dfb..395fe9f5 100644 --- a/specs/jsonschema-validation.md +++ b/specs/jsonschema-validation.md @@ -399,7 +399,7 @@ These attributes apply to string instances. Date and time format names are derived from [RFC 9557, section 4.1](https://www.rfc-editor.org/info/rfc9557) which extends [RFC 3339, section 5.6](https://www.rfc-editor.org/info/rfc3339). The duration -format is from the ISO 8601 ABNF as given in Appendix A of RFC 3339. +format is from ISO 8601 as formalized into ABNF by RFC 3339 Appendix A. - *date-time*: A string instance is valid against this attribute if it is a valid representation according to the "date-time" ABNF rule in RFC 3339, From 55097db48aff4c2d07ee48fbf5b3255caef081c1 Mon Sep 17 00:00:00 2001 From: Greg Dennis Date: Sun, 13 Jul 2025 15:14:15 +1200 Subject: [PATCH 4/4] add clarity and full-inclusion of rfc9557 format --- specs/jsonschema-validation.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/specs/jsonschema-validation.md b/specs/jsonschema-validation.md index 395fe9f5..da7f372c 100644 --- a/specs/jsonschema-validation.md +++ b/specs/jsonschema-validation.md @@ -402,8 +402,8 @@ Date and time format names are derived from format is from ISO 8601 as formalized into ABNF by RFC 3339 Appendix A. - *date-time*: A string instance is valid against this attribute if it is a - valid representation according to the "date-time" ABNF rule in RFC 3339, - optionally with the "time-zone" rule in RFC 9557 + valid representation of either the "date-time" ABNF rule in RFC 3339 or the + "date-time-ext" rule in RFC 9557 - *date*: A string instance is valid against this attribute if it is a valid representation according to the "full-date" ABNF rule in RFC 3339 - *time*: A string instance is valid against this attribute if it is a valid