diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/attodegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/attodegree-celsius.json index be093dd0..695b6b31 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/attodegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/attodegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e-18, "x-symbol": "a°C", "type": "number", - "minimum": -273.15 + "minimum": -2.73150000000000000000e+20 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/centidegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/centidegree-celsius.json index 0e056338..6a8dd87c 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/centidegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/centidegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 0.01, "x-symbol": "c°C", "type": "number", - "minimum": -273.15 + "minimum": -27315 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/decadegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/decadegree-celsius.json index 30340aa5..6565f508 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/decadegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/decadegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 10.0, "x-symbol": "da°C", "type": "number", - "minimum": -273.15 + "minimum": -27.315 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/decidegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/decidegree-celsius.json index 10715c81..a53997b4 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/decidegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/decidegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 0.1, "x-symbol": "d°C", "type": "number", - "minimum": -273.15 + "minimum": -2731.5 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/exadegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/exadegree-celsius.json index cbe24b1f..afd84891 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/exadegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/exadegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e+18, "x-symbol": "E°C", "type": "number", - "minimum": -273.15 + "minimum": -2.7315e-16 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/femtodegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/femtodegree-celsius.json index c777e416..a51c4420 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/femtodegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/femtodegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e-15, "x-symbol": "f°C", "type": "number", - "minimum": -273.15 + "minimum": -273150000000000000 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/gigadegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/gigadegree-celsius.json index 79585290..d2b4f042 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/gigadegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/gigadegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1000000000.0, "x-symbol": "G°C", "type": "number", - "minimum": -273.15 + "minimum": -2.7315e-7 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/hectodegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/hectodegree-celsius.json index 20de06b5..befa5e08 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/hectodegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/hectodegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 100.0, "x-symbol": "h°C", "type": "number", - "minimum": -273.15 + "minimum": -2.7315 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/kilodegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/kilodegree-celsius.json index 3fde056f..d1b217cc 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/kilodegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/kilodegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1000.0, "x-symbol": "k°C", "type": "number", - "minimum": -273.15 + "minimum": -0.27315 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/megadegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/megadegree-celsius.json index de4c53b8..95fca390 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/megadegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/megadegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1000000.0, "x-symbol": "M°C", "type": "number", - "minimum": -273.15 + "minimum": -0.00027315 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/microdegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/microdegree-celsius.json index 2d9013af..2bb5d6cd 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/microdegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/microdegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e-6, "x-symbol": "µ°C", "type": "number", - "minimum": -273.15 + "minimum": -273150000 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/millidegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/millidegree-celsius.json index 035ae875..e323e842 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/millidegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/millidegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 0.001, "x-symbol": "m°C", "type": "number", - "minimum": -273.15 + "minimum": -273150 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/nanodegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/nanodegree-celsius.json index 91659042..f9f26d1f 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/nanodegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/nanodegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e-9, "x-symbol": "n°C", "type": "number", - "minimum": -273.15 + "minimum": -273150000000 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/petadegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/petadegree-celsius.json index 5a6cae33..9abf0666 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/petadegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/petadegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1.0000000000000000e+15, "x-symbol": "P°C", "type": "number", - "minimum": -273.15 + "minimum": -2.7315e-13 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/picodegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/picodegree-celsius.json index 35f98c75..f4115712 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/picodegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/picodegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e-12, "x-symbol": "p°C", "type": "number", - "minimum": -273.15 + "minimum": -273150000000000 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/quectodegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/quectodegree-celsius.json index 4dfd5eb0..2380d75e 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/quectodegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/quectodegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e-30, "x-symbol": "q°C", "type": "number", - "minimum": -273.15 + "minimum": -2.73150000000000000000000000000000e+32 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/quettadegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/quettadegree-celsius.json index 1df270ce..9c408c5c 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/quettadegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/quettadegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e+30, "x-symbol": "Q°C", "type": "number", - "minimum": -273.15 + "minimum": -2.7315e-28 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/ronnadegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/ronnadegree-celsius.json index e872e03e..d91a5beb 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/ronnadegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/ronnadegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e+27, "x-symbol": "R°C", "type": "number", - "minimum": -273.15 + "minimum": -2.7315e-25 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/rontodegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/rontodegree-celsius.json index 6b03f19d..8cb4a832 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/rontodegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/rontodegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e-27, "x-symbol": "r°C", "type": "number", - "minimum": -273.15 + "minimum": -2.73150000000000000000000000000e+29 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/teradegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/teradegree-celsius.json index 7292910c..f8dc1084 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/teradegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/teradegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1000000000000.0, "x-symbol": "T°C", "type": "number", - "minimum": -273.15 + "minimum": -2.7315e-10 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/yoctodegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/yoctodegree-celsius.json index 138a7c85..b0ce20b2 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/yoctodegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/yoctodegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e-24, "x-symbol": "y°C", "type": "number", - "minimum": -273.15 + "minimum": -2.73150000000000000000000000e+26 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/yottadegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/yottadegree-celsius.json index bb6aa42e..a10af8ca 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/yottadegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/yottadegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e+24, "x-symbol": "Y°C", "type": "number", - "minimum": -273.15 + "minimum": -2.7315e-22 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/zeptodegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/zeptodegree-celsius.json index 94c860a0..978c3b16 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/zeptodegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/zeptodegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e-21, "x-symbol": "z°C", "type": "number", - "minimum": -273.15 + "minimum": -2.73150000000000000000000e+23 } diff --git a/schemas/2020-12/bipm/si/2019/derived/prefixed/zettadegree-celsius.json b/schemas/2020-12/bipm/si/2019/derived/prefixed/zettadegree-celsius.json index 2fd0cb1d..2384aaad 100644 --- a/schemas/2020-12/bipm/si/2019/derived/prefixed/zettadegree-celsius.json +++ b/schemas/2020-12/bipm/si/2019/derived/prefixed/zettadegree-celsius.json @@ -8,5 +8,5 @@ "x-prefix-factor": 1e+21, "x-symbol": "Z°C", "type": "number", - "minimum": -273.15 + "minimum": -2.7315e-19 } diff --git a/schemas/2020-12/bipm/si/2019/non-si/unit/dalton.json b/schemas/2020-12/bipm/si/2019/non-si/unit/dalton.json index d1731f10..093badc6 100644 --- a/schemas/2020-12/bipm/si/2019/non-si/unit/dalton.json +++ b/schemas/2020-12/bipm/si/2019/non-si/unit/dalton.json @@ -5,7 +5,7 @@ "examples": [ 1, 12, 16, 18, 28, 44, 180.16 ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.bipm.org/en/publications/si-brochure" ], - "x-si-equivalent": "1.660539066605e-27 kg", + "x-si-equivalent": "1.66053906660e-27 kg", "x-symbol": "Da", "type": "number", "minimum": 0 diff --git a/schemas/2020-12/ieee/posix/2017/path-absolute.json b/schemas/2020-12/ieee/posix/2017/path-absolute.json index 92fdc3a0..ff5aafe7 100644 --- a/schemas/2020-12/ieee/posix/2017/path-absolute.json +++ b/schemas/2020-12/ieee/posix/2017/path-absolute.json @@ -2,6 +2,7 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "IEEE Std 1003.1-2017 POSIX File Path (Absolute)", "description": "IEEE Std 1003.1-2017 POSIX absolute pathname", + "$comment": "POSIX excludes pathnames beginning with exactly two slashes from the absolute pathname definition", "examples": [ "/", "/home/user/document.txt", @@ -16,5 +17,5 @@ "$comment": "Cannot contain null bytes", "pattern": "\u0000" }, - "pattern": "^/" + "pattern": "^(/([^/].*)?|///.*)$" } diff --git a/schemas/2020-12/ieee/posix/2017/path.json b/schemas/2020-12/ieee/posix/2017/path.json index 6e63bff6..48ec4da1 100644 --- a/schemas/2020-12/ieee/posix/2017/path.json +++ b/schemas/2020-12/ieee/posix/2017/path.json @@ -18,6 +18,11 @@ }, { "$ref": "./path-relative.json" + }, + { + "$comment": "A pathname beginning with exactly two slashes is a valid pathname with implementation-defined interpretation, though not an Absolute Pathname", + "type": "string", + "pattern": "^//([^/].*)?$" } ] } diff --git a/schemas/2020-12/ietf/geojson/bounding-box.json b/schemas/2020-12/ietf/geojson/bounding-box.json index 7242a980..833a9eb4 100644 --- a/schemas/2020-12/ietf/geojson/bounding-box.json +++ b/schemas/2020-12/ietf/geojson/bounding-box.json @@ -2,6 +2,7 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "RFC 7946 GeoJSON Bounding Box", "description": "An array of numbers representing a bounding box that encloses a GeoJSON object, with coordinates in the order: westernmost, southernmost, easternmost, northernmost", + "$comment": "Boxes beyond three dimensions get one branch per dimension count, since the 2*n length rule and the latitude positions cannot be expressed for unbounded n", "examples": [ [ -180, -90, 180, 90 ], [ -122.5, 37.5, -122.0, 38.0 ], @@ -71,11 +72,139 @@ ] }, { - "description": "Higher dimension bounding box", - "minItems": 7, - "items": { - "type": "number" - } + "description": "4D bounding box", + "maxItems": 8, + "minItems": 8, + "prefixItems": [ + { + "description": "Southwesterly longitude", + "type": "number" + }, + { + "$ref": "../../iso/coordinate/2022/latitude.json" + }, + { + "description": "Southwesterly value on axis 3", + "type": "number" + }, + { + "description": "Southwesterly value on axis 4", + "type": "number" + }, + { + "description": "Northeasterly longitude", + "type": "number" + }, + { + "$ref": "../../iso/coordinate/2022/latitude.json" + }, + { + "description": "Northeasterly value on axis 3", + "type": "number" + }, + { + "description": "Northeasterly value on axis 4", + "type": "number" + } + ] + }, + { + "description": "5D bounding box", + "maxItems": 10, + "minItems": 10, + "prefixItems": [ + { + "description": "Southwesterly longitude", + "type": "number" + }, + { + "$ref": "../../iso/coordinate/2022/latitude.json" + }, + { + "description": "Southwesterly value on axis 3", + "type": "number" + }, + { + "description": "Southwesterly value on axis 4", + "type": "number" + }, + { + "description": "Southwesterly value on axis 5", + "type": "number" + }, + { + "description": "Northeasterly longitude", + "type": "number" + }, + { + "$ref": "../../iso/coordinate/2022/latitude.json" + }, + { + "description": "Northeasterly value on axis 3", + "type": "number" + }, + { + "description": "Northeasterly value on axis 4", + "type": "number" + }, + { + "description": "Northeasterly value on axis 5", + "type": "number" + } + ] + }, + { + "description": "6D bounding box", + "maxItems": 12, + "minItems": 12, + "prefixItems": [ + { + "description": "Southwesterly longitude", + "type": "number" + }, + { + "$ref": "../../iso/coordinate/2022/latitude.json" + }, + { + "description": "Southwesterly value on axis 3", + "type": "number" + }, + { + "description": "Southwesterly value on axis 4", + "type": "number" + }, + { + "description": "Southwesterly value on axis 5", + "type": "number" + }, + { + "description": "Southwesterly value on axis 6", + "type": "number" + }, + { + "description": "Northeasterly longitude", + "type": "number" + }, + { + "$ref": "../../iso/coordinate/2022/latitude.json" + }, + { + "description": "Northeasterly value on axis 3", + "type": "number" + }, + { + "description": "Northeasterly value on axis 4", + "type": "number" + }, + { + "description": "Northeasterly value on axis 5", + "type": "number" + }, + { + "description": "Northeasterly value on axis 6", + "type": "number" + } + ] } ] } diff --git a/schemas/2020-12/ietf/geojson/geometry-collection.json b/schemas/2020-12/ietf/geojson/geometry-collection.json index 03785342..9c9114ac 100644 --- a/schemas/2020-12/ietf/geojson/geometry-collection.json +++ b/schemas/2020-12/ietf/geojson/geometry-collection.json @@ -38,7 +38,15 @@ "x-jsonld-id": "https://purl.org/geojson/vocab#geometry", "type": "array", "items": { - "$ref": "geometry.json" + "$comment": "RFC 7946 says nested GeometryCollections SHOULD be avoided but does not forbid them", + "anyOf": [ + { + "$ref": "geometry.json" + }, + { + "$ref": "geometry-collection.json" + } + ] } }, "bbox": { diff --git a/schemas/2020-12/ietf/geojson/polygon-coordinates.json b/schemas/2020-12/ietf/geojson/polygon-coordinates.json index 3b7faa28..6f3fe3a6 100644 --- a/schemas/2020-12/ietf/geojson/polygon-coordinates.json +++ b/schemas/2020-12/ietf/geojson/polygon-coordinates.json @@ -21,9 +21,9 @@ ], [ [ 2, 2 ], - [ 8, 2 ], - [ 8, 8 ], [ 2, 8 ], + [ 8, 8 ], + [ 8, 2 ], [ 2, 2 ] ] ] diff --git a/schemas/2020-12/ietf/geojson/polygon.json b/schemas/2020-12/ietf/geojson/polygon.json index 50942c19..0f48b134 100644 --- a/schemas/2020-12/ietf/geojson/polygon.json +++ b/schemas/2020-12/ietf/geojson/polygon.json @@ -26,9 +26,9 @@ ], [ [ 2, 2 ], - [ 8, 2 ], - [ 8, 8 ], [ 2, 8 ], + [ 8, 8 ], + [ 8, 2 ], [ 2, 2 ] ] ] diff --git a/schemas/2020-12/ietf/http/http-url.json b/schemas/2020-12/ietf/http/http-url.json index f4fcf079..bfe4c559 100644 --- a/schemas/2020-12/ietf/http/http-url.json +++ b/schemas/2020-12/ietf/http/http-url.json @@ -10,5 +10,9 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-4.2.1" ], "$ref": "../uri/url.json", + "not": { + "$comment": "RFC 9110 requires rejecting an empty host", + "pattern": "^[Hh][Tt][Tt][Pp]://(?:[^/?#]*@)?(?::[0-9]*)?(?:[/?#]|$)" + }, "pattern": "^[Hh][Tt][Tt][Pp]://" } diff --git a/schemas/2020-12/ietf/http/https-url.json b/schemas/2020-12/ietf/http/https-url.json index 9f6146ae..1514ea81 100644 --- a/schemas/2020-12/ietf/http/https-url.json +++ b/schemas/2020-12/ietf/http/https-url.json @@ -10,5 +10,9 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-4.2.2" ], "$ref": "../uri/url.json", + "not": { + "$comment": "RFC 9110 requires rejecting an empty host", + "pattern": "^[Hh][Tt][Tt][Pp][Ss]://(?:[^/?#]*@)?(?::[0-9]*)?(?:[/?#]|$)" + }, "pattern": "^[Hh][Tt][Tt][Pp][Ss]://" } diff --git a/schemas/2020-12/ietf/http/status-client-error.json b/schemas/2020-12/ietf/http/status-client-error.json index 14e1b46e..88655e82 100644 --- a/schemas/2020-12/ietf/http/status-client-error.json +++ b/schemas/2020-12/ietf/http/status-client-error.json @@ -4,7 +4,7 @@ "description": "An HTTP 4xx client error status code indicating the request contains bad syntax or cannot be fulfilled", "examples": [ 400, 404, 403 ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", - "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-15.4" ], + "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-15.5" ], "type": "integer", "maximum": 499, "minimum": 400 diff --git a/schemas/2020-12/ietf/http/status-informational.json b/schemas/2020-12/ietf/http/status-informational.json index 5b18af49..69ad450e 100644 --- a/schemas/2020-12/ietf/http/status-informational.json +++ b/schemas/2020-12/ietf/http/status-informational.json @@ -4,7 +4,7 @@ "description": "An HTTP 1xx informational status code indicating an interim response", "examples": [ 100, 101, 102 ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", - "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-15.1" ], + "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-15.2" ], "type": "integer", "maximum": 199, "minimum": 100 diff --git a/schemas/2020-12/ietf/http/status-redirection.json b/schemas/2020-12/ietf/http/status-redirection.json index 3cdadf47..96d2637c 100644 --- a/schemas/2020-12/ietf/http/status-redirection.json +++ b/schemas/2020-12/ietf/http/status-redirection.json @@ -4,7 +4,7 @@ "description": "An HTTP 3xx redirection status code indicating further action needs to be taken to complete the request", "examples": [ 301, 302, 304 ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", - "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-15.3" ], + "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-15.4" ], "type": "integer", "maximum": 399, "minimum": 300 diff --git a/schemas/2020-12/ietf/http/status-server-error.json b/schemas/2020-12/ietf/http/status-server-error.json index f344779f..84844d47 100644 --- a/schemas/2020-12/ietf/http/status-server-error.json +++ b/schemas/2020-12/ietf/http/status-server-error.json @@ -4,7 +4,7 @@ "description": "An HTTP 5xx server error status code indicating the server failed to fulfill a valid request", "examples": [ 500, 502, 503 ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", - "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-15.5" ], + "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-15.6" ], "type": "integer", "maximum": 599, "minimum": 500 diff --git a/schemas/2020-12/ietf/http/status-successful.json b/schemas/2020-12/ietf/http/status-successful.json index 59455531..cb0664eb 100644 --- a/schemas/2020-12/ietf/http/status-successful.json +++ b/schemas/2020-12/ietf/http/status-successful.json @@ -4,7 +4,7 @@ "description": "An HTTP 2xx successful status code indicating the request was successfully received, understood, and accepted", "examples": [ 200, 201, 204 ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", - "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-15.2" ], + "x-links": [ "https://www.rfc-editor.org/rfc/rfc9110#section-15.3" ], "type": "integer", "maximum": 299, "minimum": 200 diff --git a/schemas/2020-12/ietf/language/5646/tag-syntax.json b/schemas/2020-12/ietf/language/5646/tag-syntax.json index f6b52666..9f10dc05 100644 --- a/schemas/2020-12/ietf/language/5646/tag-syntax.json +++ b/schemas/2020-12/ietf/language/5646/tag-syntax.json @@ -26,26 +26,8 @@ "pattern": "^[Xx](-[a-zA-Z0-9]{1,8})+$" }, { - "$comment": "Grandfathered irregular tags (RFC 3066 legacy)", - "enum": [ - "en-GB-oed", - "i-ami", - "i-bnn", - "i-default", - "i-enochian", - "i-hak", - "i-klingon", - "i-lux", - "i-mingo", - "i-navajo", - "i-pwn", - "i-tao", - "i-tay", - "i-tsu", - "sgn-BE-FR", - "sgn-BE-NL", - "sgn-CH-DE" - ] + "$comment": "Irregular grandfathered tags compare case-insensitively like all RFC 5646 tags", + "pattern": "^([Ee][Nn]-[Gg][Bb]-[Oo][Ee][Dd]|[Ii]-[Aa][Mm][Ii]|[Ii]-[Bb][Nn][Nn]|[Ii]-[Dd][Ee][Ff][Aa][Uu][Ll][Tt]|[Ii]-[Ee][Nn][Oo][Cc][Hh][Ii][Aa][Nn]|[Ii]-[Hh][Aa][Kk]|[Ii]-[Kk][Ll][Ii][Nn][Gg][Oo][Nn]|[Ii]-[Ll][Uu][Xx]|[Ii]-[Mm][Ii][Nn][Gg][Oo]|[Ii]-[Nn][Aa][Vv][Aa][Jj][Oo]|[Ii]-[Pp][Ww][Nn]|[Ii]-[Tt][Aa][Oo]|[Ii]-[Tt][Aa][Yy]|[Ii]-[Tt][Ss][Uu]|[Ss][Gg][Nn]-[Bb][Ee]-[Ff][Rr]|[Ss][Gg][Nn]-[Bb][Ee]-[Nn][Ll]|[Ss][Gg][Nn]-[Cc][Hh]-[Dd][Ee])$" } ] } diff --git a/schemas/2020-12/ietf/problem-details/problem.json b/schemas/2020-12/ietf/problem-details/9457/problem.json similarity index 89% rename from schemas/2020-12/ietf/problem-details/problem.json rename to schemas/2020-12/ietf/problem-details/9457/problem.json index 25a87963..1faab985 100644 --- a/schemas/2020-12/ietf/problem-details/problem.json +++ b/schemas/2020-12/ietf/problem-details/9457/problem.json @@ -1,6 +1,6 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "RFC 7807 Problem Details for HTTP APIs", + "title": "RFC 9457 Problem Details for HTTP APIs", "description": "A machine-readable format for specifying errors in HTTP API responses", "examples": [ { @@ -34,7 +34,7 @@ ], "x-jsonld-type": "http://www.w3.org/ns/hydra/core#Error", "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", - "x-links": [ "https://www.rfc-editor.org/rfc/rfc7807" ], + "x-links": [ "https://www.rfc-editor.org/rfc/rfc9457" ], "type": "object", "properties": { "title": { @@ -45,7 +45,7 @@ "type": { "description": "A URI reference that identifies the problem type", "default": "about:blank", - "$ref": "../uri/uri-reference.json" + "$ref": "../../uri/uri-reference.json" }, "detail": { "description": "A human-readable explanation specific to this occurrence of the problem", @@ -54,12 +54,12 @@ }, "instance": { "description": "A URI reference that identifies the specific occurrence of the problem", - "$ref": "../uri/uri-reference.json" + "$ref": "../../uri/uri-reference.json" }, "status": { "description": "The HTTP status code generated by the origin server for this occurrence of the problem", "x-jsonld-id": "http://www.w3.org/ns/hydra/core#statusCode", - "$ref": "../http/status.json" + "$ref": "../../http/status.json" } } } diff --git a/schemas/2020-12/ietf/uri/uri-relative.json b/schemas/2020-12/ietf/uri/uri-relative.json index 547a2896..730355db 100644 --- a/schemas/2020-12/ietf/uri/uri-relative.json +++ b/schemas/2020-12/ietf/uri/uri-relative.json @@ -13,60 +13,9 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.rfc-editor.org/rfc/rfc3986#section-4.2" ], "type": "string", - "allOf": [ - { - "anyOf": [ - { - "$comment": "Empty string", - "pattern": "^$" - }, - { - "$comment": "Network-path reference", - "pattern": "^//.*$" - }, - { - "$comment": "Absolute-path reference", - "pattern": "^/(?:[^?#]*)?(?:\\?[^#]*)?(?:#.*)?$" - }, - { - "$comment": "Relative-path reference (first segment must not contain a colon)", - "not": { - "pattern": "^[^/?#]*:" - }, - "pattern": "^[^/?#][^?#]*(?:\\?[^#]*)?(?:#.*)?$" - }, - { - "$comment": "Query and/or fragment only", - "pattern": "^(?:\\?[^#]*)?(?:#.*)?$" - } - ] - } - ], - "anyOf": [ - { - "$comment": "Not a network path", - "not": { - "pattern": "^//" - } - }, - { - "$comment": "Valid IPv4 or not IPv4-like", - "anyOf": [ - { - "not": { - "pattern": "^//(?:[^@]*@)?[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+" - } - }, - { - "pattern": "^//(?:[^@]*@)?(?:(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])\\.){3}(?:25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])(?:[:/?#].*)?$" - } - ], - "pattern": "^//(?:[^@/]*@)?[^:/?#]+(?::[0-9]+)?(?:[/?#].*)?$" - }, - { - "$comment": "Valid network path with IPv6", - "pattern": "^//(?:[^@/]*@)?\\[[0-9A-Fa-f:.]+\\](?::[0-9]+)?(?:[/?#].*)?$" - } - ], + "not": { + "$comment": "A relative reference is a URI reference that is not itself a URI", + "format": "uri" + }, "format": "uri-reference" } diff --git a/schemas/2020-12/ietf/uri/url.json b/schemas/2020-12/ietf/uri/url.json index 3558485c..389b639b 100644 --- a/schemas/2020-12/ietf/uri/url.json +++ b/schemas/2020-12/ietf/uri/url.json @@ -14,35 +14,11 @@ "$ref": "./uri.json", "anyOf": [ { - "$comment": "With authority (//...)", - "anyOf": [ - { - "$comment": "Empty host", - "pattern": "^[^:]+://(?:[^@/]*@)?(?:/|$)" - }, - { - "$comment": "IPv6 in brackets", - "pattern": "^[^:]+://(?:[^@]*@)?\\[[0-9A-Fa-f:.]+\\]" - }, - { - "$comment": "Valid IPv4 - check each octet", - "not": { - "pattern": "^[^:]+://(?:[^@]*@)?(?:(?:25[6-9]|2[6-9][0-9]|[3-9][0-9]{2}|[1-9][0-9]{3,})[.]|[.](?:25[6-9]|2[6-9][0-9]|[3-9][0-9]{2}|[1-9][0-9]{3,})[.]|[.](?:25[6-9]|2[6-9][0-9]|[3-9][0-9]{2}|[1-9][0-9]{3,})[.]|[.](?:25[6-9]|2[6-9][0-9]|[3-9][0-9]{2}|[1-9][0-9]{3,})(?:[:/]|$))" - }, - "pattern": "^[^:]+://(?:[^@]*@)?[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+(?:[:/?#]|$)" - }, - { - "$comment": "Domain or reg-name (not IPv4)", - "not": { - "pattern": "^[^:]+://(?:[^@]*@)?[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+(?:[:/]|$)" - }, - "pattern": "^[^:]+://(?:[^@]*@)?[A-Za-z0-9.-]+(?:[:/?#]|$)" - } - ], + "$comment": "With authority", "pattern": "^[A-Za-z][A-Za-z0-9+\\-.]*://" }, { - "$comment": "Without authority (path-absolute/rootless/empty)", + "$comment": "Rootless-path URIs such as mailto and urn are not syntactically distinguishable as locators, so only path-absolute and empty paths qualify", "not": { "pattern": "^[^:]+://" }, diff --git a/schemas/2020-12/ietf/uri/urn.json b/schemas/2020-12/ietf/uri/urn.json index 6a576425..14df729e 100644 --- a/schemas/2020-12/ietf/uri/urn.json +++ b/schemas/2020-12/ietf/uri/urn.json @@ -5,7 +5,7 @@ "examples": [ "urn:example:foo", "URN:example:foo/bar", - "urn:a:b", + "urn:isbn:0451450523", "urn:12345:abcde", "urn:1-234:foo", "urn:IsBn:2000", @@ -23,5 +23,5 @@ "$comment": "Disallow reserved NID value 'urn'", "pattern": "^[Uu][Rr][Nn]:[Uu][Rr][Nn]:" }, - "pattern": "^[Uu][Rr][Nn]:([A-Za-z0-9]([A-Za-z0-9\\-]{0,30}[A-Za-z0-9])?):((%[0-9A-Fa-f]{2}|[A-Za-z0-9\\-._~!$&'()*+,;=:@/])+)(?:\\?(?:\\+[^?#]*)?)?(?:\\?=[^#]*)?(?:#.*)?$" + "pattern": "^[Uu][Rr][Nn]:([A-Za-z0-9][A-Za-z0-9\\-]{0,30}[A-Za-z0-9]):(?:%[0-9A-Fa-f]{2}|[A-Za-z0-9\\-._~!$&'()*+,;=:@])(?:%[0-9A-Fa-f]{2}|[A-Za-z0-9\\-._~!$&'()*+,;=:@]|/)*(?:\\?\\+(?:%[0-9A-Fa-f]{2}|[A-Za-z0-9\\-._~!$&'()*+,;=:@])(?:%[0-9A-Fa-f]{2}|[A-Za-z0-9\\-._~!$&'()*+,;=:@]|/|\\?(?!=))*)?(?:\\?=(?:%[0-9A-Fa-f]{2}|[A-Za-z0-9\\-._~!$&'()*+,;=:@])(?:%[0-9A-Fa-f]{2}|[A-Za-z0-9\\-._~!$&'()*+,;=:@]|/|\\?)*)?(?:#(?:%[0-9A-Fa-f]{2}|[A-Za-z0-9\\-._~!$&'()*+,;=:@]|/|\\?)*)?$" } diff --git a/schemas/2020-12/iso/currency/2015/alpha-code.json b/schemas/2020-12/iso/currency/2015/alpha-code.json index dd47cd89..35637748 100644 --- a/schemas/2020-12/iso/currency/2015/alpha-code.json +++ b/schemas/2020-12/iso/currency/2015/alpha-code.json @@ -14,6 +14,12 @@ }, { "$ref": "alpha-precious-metal.json" + }, + { + "$ref": "alpha-test.json" + }, + { + "$ref": "alpha-unknown.json" } ] } diff --git a/schemas/2020-12/iso/currency/2015/historical/alpha-code.json b/schemas/2020-12/iso/currency/2015/historical/alpha-code.json index 9ca3adc5..100f63cf 100644 --- a/schemas/2020-12/iso/currency/2015/historical/alpha-code.json +++ b/schemas/2020-12/iso/currency/2015/historical/alpha-code.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ISO 4217:2015 Alphabetic Currency, Fund, and Precious Metal Code (Historical)", - "description": "A three-letter alphabetic code including withdrawn currencies, funds, and precious metals (2025-03-31)", + "title": "ISO 4217:2015 Alphabetic Currency and Precious Metal Code (Historical)", + "description": "A three-letter alphabetic code including withdrawn currencies and precious metals (2025-03-31)", "examples": [ "ADP", "AFA", "ALK", "ANG" ], "deprecated": true, "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", diff --git a/schemas/2020-12/iso/currency/2015/historical/alpha-currency.json b/schemas/2020-12/iso/currency/2015/historical/alpha-currency.json index 261882b7..154af5fb 100644 --- a/schemas/2020-12/iso/currency/2015/historical/alpha-currency.json +++ b/schemas/2020-12/iso/currency/2015/historical/alpha-currency.json @@ -11,21 +11,21 @@ "title": "Andorran Peseta", "x-country-names": [ "ANDORRA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ADP", - "x-withdrawal-date": "2003-07", + "x-withdrawal-dates": [ "2003-07" ], "const": "ADP" }, { "title": "Afghani", "x-country-names": [ "AFGHANISTAN" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/AFA", - "x-withdrawal-date": "2003-01", + "x-withdrawal-dates": [ "2003-01" ], "const": "AFA" }, { "title": "Old Lek", "x-country-names": [ "ALBANIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ALK", - "x-withdrawal-date": "1989-12", + "x-withdrawal-dates": [ "1989-12" ], "const": "ALK" }, { @@ -36,282 +36,282 @@ "SINT MAARTEN (DUTCH PART)" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ANG", - "x-withdrawal-date": "2025-03", + "x-withdrawal-dates": [ "2010-10", "2025-03" ], "const": "ANG" }, { "title": "Kwanza", "x-country-names": [ "ANGOLA" ], - "x-withdrawal-date": "1991-03", + "x-withdrawal-dates": [ "1991-03" ], "const": "AOK" }, { "title": "New Kwanza", "x-country-names": [ "ANGOLA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/AON", - "x-withdrawal-date": "2000-02", + "x-withdrawal-dates": [ "2000-02" ], "const": "AON" }, { "title": "Kwanza Reajustado", "x-country-names": [ "ANGOLA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/AOR", - "x-withdrawal-date": "2000-02", + "x-withdrawal-dates": [ "2000-02" ], "const": "AOR" }, { "title": "Austral", "x-country-names": [ "ARGENTINA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ARA", - "x-withdrawal-date": "1992-01", + "x-withdrawal-dates": [ "1992-01" ], "const": "ARA" }, { "title": "Peso Argentino", "x-country-names": [ "ARGENTINA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ARP", - "x-withdrawal-date": "1985-07", + "x-withdrawal-dates": [ "1985-07" ], "const": "ARP" }, { "title": "Peso", "x-country-names": [ "ARGENTINA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ARY", - "x-withdrawal-date": "1989 to 1990", + "x-withdrawal-dates": [ "1989 to 1990" ], "const": "ARY" }, { "title": "Schilling", "x-country-names": [ "AUSTRIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ATS", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "ATS" }, { "title": "Azerbaijan Manat", "x-country-names": [ "AZERBAIJAN" ], - "x-withdrawal-date": "2005-10", + "x-withdrawal-dates": [ "2005-10" ], "const": "AYM" }, { "title": "Azerbaijanian Manat", "x-country-names": [ "AZERBAIJAN" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/AZM", - "x-withdrawal-date": "2005-12", + "x-withdrawal-dates": [ "2005-12" ], "const": "AZM" }, { "title": "Dinar", "x-country-names": [ "BOSNIA AND HERZEGOVINA" ], - "x-withdrawal-date": "1998-07", + "x-withdrawal-dates": [ "1998-07" ], "const": "BAD" }, { "title": "Convertible Franc", "x-country-names": [ "BELGIUM" ], - "x-withdrawal-date": "1990-03", + "x-withdrawal-dates": [ "1990-03" ], "const": "BEC" }, { "title": "Belgian Franc", "x-country-names": [ "BELGIUM" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BEF", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "BEF" }, { "title": "Financial Franc", "x-country-names": [ "BELGIUM" ], - "x-withdrawal-date": "1990-03", + "x-withdrawal-dates": [ "1990-03" ], "const": "BEL" }, { "title": "Lev A/52", "x-country-names": [ "BULGARIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BGJ", - "x-withdrawal-date": "1989 to 1990", + "x-withdrawal-dates": [ "1989 to 1990" ], "const": "BGJ" }, { "title": "Lev A/62", "x-country-names": [ "BULGARIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BGK", - "x-withdrawal-date": "1989 to 1990", + "x-withdrawal-dates": [ "1989 to 1990" ], "const": "BGK" }, { "title": "Lev", "x-country-names": [ "BULGARIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BGL", - "x-withdrawal-date": "2003-11", + "x-withdrawal-dates": [ "2003-11" ], "const": "BGL" }, { "title": "Peso boliviano", "x-country-names": [ "BOLIVIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BOP", - "x-withdrawal-date": "1987-02", + "x-withdrawal-dates": [ "1987-02" ], "const": "BOP" }, { "title": "Cruzeiro", "x-country-names": [ "BRAZIL" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BRB", - "x-withdrawal-date": "1986-03", + "x-withdrawal-dates": [ "1986-03" ], "const": "BRB" }, { "title": "Cruzado", "x-country-names": [ "BRAZIL" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BRC", - "x-withdrawal-date": "1989-02", + "x-withdrawal-dates": [ "1989-02" ], "const": "BRC" }, { "title": "Cruzeiro", "x-country-names": [ "BRAZIL" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BRE", - "x-withdrawal-date": "1993-03", + "x-withdrawal-dates": [ "1993-03" ], "const": "BRE" }, { "title": "New Cruzado", "x-country-names": [ "BRAZIL" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BRN", - "x-withdrawal-date": "1990-03", + "x-withdrawal-dates": [ "1990-03" ], "const": "BRN" }, { "title": "Cruzeiro Real", "x-country-names": [ "BRAZIL" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BRR", - "x-withdrawal-date": "1994-07", + "x-withdrawal-dates": [ "1994-07" ], "const": "BRR" }, { "title": "Kyat", "x-country-names": [ "BURMA" ], - "x-withdrawal-date": "1990-02", + "x-withdrawal-dates": [ "1990-02" ], "const": "BUK" }, { "title": "Belarusian Ruble", "x-country-names": [ "BELARUS" ], - "x-withdrawal-date": "2001-01", + "x-withdrawal-dates": [ "2001-01" ], "const": "BYB" }, { "title": "Belarusian Ruble", "x-country-names": [ "BELARUS" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/BYR", - "x-withdrawal-date": "2017-01", + "x-withdrawal-dates": [ "2017-01" ], "const": "BYR" }, { "title": "WIR Franc (for electronic)", "x-country-names": [ "SWITZERLAND" ], - "x-withdrawal-date": "2004-11", + "x-withdrawal-dates": [ "2004-11" ], "const": "CHC" }, { "title": "Serbian Dinar", "x-country-names": [ "SERBIA AND MONTENEGRO" ], - "x-withdrawal-date": "2006-10", + "x-withdrawal-dates": [ "2006-10" ], "const": "CSD" }, { "title": "Krona A/53", "x-country-names": [ "CZECHOSLOVAKIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/CSJ", - "x-withdrawal-date": "1989 to 1990", + "x-withdrawal-dates": [ "1989 to 1990" ], "const": "CSJ" }, { "title": "Koruna", "x-country-names": [ "CZECHOSLOVAKIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/CSK", - "x-withdrawal-date": "1993-03", + "x-withdrawal-dates": [ "1993-03" ], "const": "CSK" }, { "title": "Peso Convertible", "x-country-names": [ "CUBA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/CUC", - "x-withdrawal-date": "2021-06", + "x-withdrawal-dates": [ "2021-06" ], "const": "CUC" }, { "title": "Cyprus Pound", "x-country-names": [ "CYPRUS" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/CYP", - "x-withdrawal-date": "2008-01", + "x-withdrawal-dates": [ "2008-01" ], "const": "CYP" }, { "title": "Mark der DDR", "x-country-names": [ "GERMAN DEMOCRATIC REPUBLIC" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/DDM", - "x-withdrawal-date": "1990-07 to 1990-09", + "x-withdrawal-dates": [ "1990-07 to 1990-09" ], "const": "DDM" }, { "title": "Deutsche Mark", "x-country-names": [ "GERMANY" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/DEM", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "DEM" }, { "title": "Sucre", "x-country-names": [ "ECUADOR" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ECS", - "x-withdrawal-date": "2000-09", + "x-withdrawal-dates": [ "2000-09" ], "const": "ECS" }, { "title": "Unidad de Valor Constante (UVC)", "x-country-names": [ "ECUADOR" ], - "x-withdrawal-date": "2000-09", + "x-withdrawal-dates": [ "2000-09" ], "const": "ECV" }, { "title": "Kroon", "x-country-names": [ "ESTONIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/EEK", - "x-withdrawal-date": "2011-01", + "x-withdrawal-dates": [ "2011-01" ], "const": "EEK" }, { "title": "Spanish Peseta", "x-country-names": [ "SPAIN" ], - "x-withdrawal-date": "1978 to 1981", + "x-withdrawal-dates": [ "1978 to 1981" ], "const": "ESA" }, { "title": "\"A\" Account (convertible Peseta Account)", "x-country-names": [ "SPAIN" ], - "x-withdrawal-date": "1994-12", + "x-withdrawal-dates": [ "1994-12" ], "const": "ESB" }, { "title": "Spanish Peseta", "x-country-names": [ "ANDORRA", "SPAIN" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ESP", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "ESP" }, { "title": "Euro", "x-country-names": [ "SERBIA AND MONTENEGRO" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/EUR", - "x-withdrawal-date": "2006-10", + "x-withdrawal-dates": [ "2006-10" ], "const": "EUR" }, { "title": "Markka", "x-country-names": [ "ÅLAND ISLANDS", "FINLAND" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/FIM", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "FIM" }, { @@ -331,114 +331,114 @@ "SAINT-BARTHÉLEMY" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/FRF", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "1999-01", "2002-03" ], "const": "FRF" }, { "title": "Georgian Coupon", "x-country-names": [ "GEORGIA" ], - "x-withdrawal-date": "1995-10", + "x-withdrawal-dates": [ "1995-10" ], "const": "GEK" }, { "title": "Cedi", "x-country-names": [ "GHANA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/GHC", - "x-withdrawal-date": "2008-01", + "x-withdrawal-dates": [ "2008-01" ], "const": "GHC" }, { "title": "Ghana Cedi", "x-country-names": [ "GHANA" ], - "x-withdrawal-date": "2007-06", + "x-withdrawal-dates": [ "2007-06" ], "const": "GHP" }, { "title": "Syli", "x-country-names": [ "GUINEA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/GNE", - "x-withdrawal-date": "1989-12", + "x-withdrawal-dates": [ "1989-12" ], "const": "GNE" }, { "title": "Syli", "x-country-names": [ "GUINEA" ], - "x-withdrawal-date": "1986-02", + "x-withdrawal-dates": [ "1986-02" ], "const": "GNS" }, { "title": "Ekwele", "x-country-names": [ "EQUATORIAL GUINEA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/GQE", - "x-withdrawal-date": "1986-06", + "x-withdrawal-dates": [ "1986-06" ], "const": "GQE" }, { "title": "Drachma", "x-country-names": [ "GREECE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/GRD", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "GRD" }, { "title": "Guinea Escudo", "x-country-names": [ "GUINEA-BISSAU" ], - "x-withdrawal-date": "1978 to 1981", + "x-withdrawal-dates": [ "1978 to 1981" ], "const": "GWE" }, { "title": "Guinea-Bissau Peso", "x-country-names": [ "GUINEA-BISSAU" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/GWP", - "x-withdrawal-date": "1997-05", + "x-withdrawal-dates": [ "1997-05" ], "const": "GWP" }, { "title": "Croatian Dinar", "x-country-names": [ "CROATIA" ], - "x-withdrawal-date": "1995-01", + "x-withdrawal-dates": [ "1995-01" ], "const": "HRD" }, { "title": "Croatian Kuna", "x-country-names": [ "CROATIA", "CROATIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/HRK", - "x-withdrawal-date": "2015-06", + "x-withdrawal-dates": [ "2015-06", "2023-01" ], "const": "HRK" }, { "title": "Rupiah", "x-country-names": [ "TIMOR-LESTE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/IDR", - "x-withdrawal-date": "2002-07", + "x-withdrawal-dates": [ "2002-07" ], "const": "IDR" }, { "title": "Irish Pound", "x-country-names": [ "IRELAND" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/IEP", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "IEP" }, { "title": "Pound", "x-country-names": [ "ISRAEL" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ILP", - "x-withdrawal-date": "1978 to 1981", + "x-withdrawal-dates": [ "1978 to 1981" ], "const": "ILP" }, { "title": "Old Shekel", "x-country-names": [ "ISRAEL" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ILR", - "x-withdrawal-date": "1989 to 1990", + "x-withdrawal-dates": [ "1989 to 1990" ], "const": "ILR" }, { "title": "Old Krona", "x-country-names": [ "ICELAND" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ISJ", - "x-withdrawal-date": "1989 to 1990", + "x-withdrawal-dates": [ "1989 to 1990" ], "const": "ISJ" }, { @@ -449,214 +449,214 @@ "SAN MARINO" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ITL", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "ITL" }, { "title": "Pathet Lao Kip", "x-country-names": [ "LAO" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/LAJ", - "x-withdrawal-date": "1979-12", + "x-withdrawal-dates": [ "1979-12" ], "const": "LAJ" }, { "title": "Loti", "x-country-names": [ "LESOTHO" ], - "x-withdrawal-date": "1985-05", + "x-withdrawal-dates": [ "1985-05" ], "const": "LSM" }, { "title": "Lithuanian Litas", "x-country-names": [ "LITHUANIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/LTL", - "x-withdrawal-date": "2014-12", + "x-withdrawal-dates": [ "2014-12" ], "const": "LTL" }, { "title": "Talonas", "x-country-names": [ "LITHUANIA" ], - "x-withdrawal-date": "1993-07", + "x-withdrawal-dates": [ "1993-07" ], "const": "LTT" }, { "title": "Luxembourg Convertible Franc", "x-country-names": [ "LUXEMBOURG" ], - "x-withdrawal-date": "1990-03", + "x-withdrawal-dates": [ "1990-03" ], "const": "LUC" }, { "title": "Luxembourg Franc", "x-country-names": [ "LUXEMBOURG" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/LUF", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "LUF" }, { "title": "Luxembourg Financial Franc", "x-country-names": [ "LUXEMBOURG" ], - "x-withdrawal-date": "1990-03", + "x-withdrawal-dates": [ "1990-03" ], "const": "LUL" }, { "title": "Latvian Lats", "x-country-names": [ "LATVIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/LVL", - "x-withdrawal-date": "2014-01", + "x-withdrawal-dates": [ "2014-01" ], "const": "LVL" }, { "title": "Latvian Ruble", "x-country-names": [ "LATVIA" ], - "x-withdrawal-date": "1994-12", + "x-withdrawal-dates": [ "1994-12" ], "const": "LVR" }, { "title": "Malagasy Franc", "x-country-names": [ "MADAGASCAR" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/MGF", - "x-withdrawal-date": "2004-12", + "x-withdrawal-dates": [ "2004-12" ], "const": "MGF" }, { "title": "Mali Franc", "x-country-names": [ "MALI" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/MLF", - "x-withdrawal-date": "1984-11", + "x-withdrawal-dates": [ "1984-11" ], "const": "MLF" }, { "title": "Ouguiya", "x-country-names": [ "MAURITANIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/MRO", - "x-withdrawal-date": "2017-12", + "x-withdrawal-dates": [ "2017-12" ], "const": "MRO" }, { "title": "Maltese Lira", "x-country-names": [ "MALTA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/MTL", - "x-withdrawal-date": "2008-01", + "x-withdrawal-dates": [ "2008-01" ], "const": "MTL" }, { "title": "Maltese Pound", "x-country-names": [ "MALTA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/MTP", - "x-withdrawal-date": "1983-06", + "x-withdrawal-dates": [ "1983-06" ], "const": "MTP" }, { "title": "Maldive Rupee", "x-country-names": [ "MALDIVES" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/MVQ", - "x-withdrawal-date": "1989-12", + "x-withdrawal-dates": [ "1989-12" ], "const": "MVQ" }, { "title": "Kwacha", "x-country-names": [ "MALAWI" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/MWK", - "x-withdrawal-date": "2016-02", + "x-withdrawal-dates": [ "2016-02" ], "const": "MWK" }, { "title": "Mexican Peso", "x-country-names": [ "MEXICO" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/MXP", - "x-withdrawal-date": "1993-01", + "x-withdrawal-dates": [ "1993-01" ], "const": "MXP" }, { "title": "Mozambique Escudo", "x-country-names": [ "MOZAMBIQUE" ], - "x-withdrawal-date": "1978 to 1981", + "x-withdrawal-dates": [ "1978 to 1981" ], "const": "MZE" }, { "title": "Mozambique Metical", "x-country-names": [ "MOZAMBIQUE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/MZM", - "x-withdrawal-date": "2006-06", + "x-withdrawal-dates": [ "2006-06" ], "const": "MZM" }, { "title": "Cordoba", "x-country-names": [ "NICARAGUA" ], - "x-withdrawal-date": "1990-10", + "x-withdrawal-dates": [ "1990-10" ], "const": "NIC" }, { "title": "Netherlands Guilder", "x-country-names": [ "NETHERLANDS" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/NLG", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "NLG" }, { "title": "Sol", "x-country-names": [ "PERU" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/PEH", - "x-withdrawal-date": "1989 to 1990", + "x-withdrawal-dates": [ "1989 to 1990" ], "const": "PEH" }, { "title": "Inti", "x-country-names": [ "PERU" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/PEI", - "x-withdrawal-date": "1991-07", + "x-withdrawal-dates": [ "1991-07" ], "const": "PEI" }, { "title": "Nuevo Sol", "x-country-names": [ "PERU" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/PEN", - "x-withdrawal-date": "2015-12", + "x-withdrawal-dates": [ "2015-12" ], "const": "PEN" }, { "title": "Sol", "x-country-names": [ "PERU" ], - "x-withdrawal-date": "1986-02", + "x-withdrawal-dates": [ "1986-02" ], "const": "PES" }, { "title": "Zloty", "x-country-names": [ "POLAND" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/PLZ", - "x-withdrawal-date": "1997-01", + "x-withdrawal-dates": [ "1997-01" ], "const": "PLZ" }, { "title": "Portuguese Escudo", "x-country-names": [ "PORTUGAL" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/PTE", - "x-withdrawal-date": "2002-03", + "x-withdrawal-dates": [ "2002-03" ], "const": "PTE" }, { "title": "Rhodesian Dollar", "x-country-names": [ "SOUTHERN RHODESIA" ], - "x-withdrawal-date": "1978 to 1981", + "x-withdrawal-dates": [ "1978 to 1981" ], "const": "RHD" }, { "title": "Leu A/52", "x-country-names": [ "ROMANIA" ], - "x-withdrawal-date": "1989 to 1990", + "x-withdrawal-dates": [ "1989 to 1990" ], "const": "ROK" }, { "title": "Old Leu", "x-country-names": [ "ROMANIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ROL", - "x-withdrawal-date": "2005-06", + "x-withdrawal-dates": [ "2005-06" ], "const": "ROL" }, { "title": "New Romanian Leu", "x-country-names": [ "ROMANIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/RON", - "x-withdrawal-date": "2015-06", + "x-withdrawal-dates": [ "2015-06" ], "const": "RON" }, { @@ -675,158 +675,169 @@ "UZBEKISTAN" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/RUR", - "x-withdrawal-date": "1994-08", + "x-withdrawal-dates": [ + "1993-01", + "1993-10", + "1993-12", + "1994-04", + "1994-05", + "1994-06", + "1994-07", + "1994-08", + "1995-05", + "2004-01" + ], "const": "RUR" }, { "title": "Sudanese Dinar", "x-country-names": [ "SUDAN" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/SDD", - "x-withdrawal-date": "2007-07", + "x-withdrawal-dates": [ "2007-07" ], "const": "SDD" }, { "title": "Sudanese Pound", "x-country-names": [ "SOUTH SUDAN" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/SDG", - "x-withdrawal-date": "2012-09", + "x-withdrawal-dates": [ "2012-09" ], "const": "SDG" }, { "title": "Sudanese Pound", "x-country-names": [ "SUDAN" ], - "x-withdrawal-date": "1998-06", + "x-withdrawal-dates": [ "1998-06" ], "const": "SDP" }, { "title": "Tolar", "x-country-names": [ "SLOVENIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/SIT", - "x-withdrawal-date": "2007-01", + "x-withdrawal-dates": [ "2007-01" ], "const": "SIT" }, { "title": "Slovak Koruna", "x-country-names": [ "SLOVAKIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/SKK", - "x-withdrawal-date": "2009-01", + "x-withdrawal-dates": [ "2009-01" ], "const": "SKK" }, { "title": "Leone", "x-country-names": [ "SIERRA LEONE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/SLL", - "x-withdrawal-date": "2023-12", + "x-withdrawal-dates": [ "2023-12" ], "const": "SLL" }, { "title": "Surinam Guilder", "x-country-names": [ "SURINAME" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/SRG", - "x-withdrawal-date": "2003-12", + "x-withdrawal-dates": [ "2003-12" ], "const": "SRG" }, { "title": "Dobra", "x-country-names": [ "SAO TOME AND PRINCIPE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/STD", - "x-withdrawal-date": "2017-12", + "x-withdrawal-dates": [ "2017-12" ], "const": "STD" }, { "title": "Rouble", "x-country-names": [ "UNION OF SOVIET SOCIALIST REPUBLICS" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/SUR", - "x-withdrawal-date": "1990-12", + "x-withdrawal-dates": [ "1990-12" ], "const": "SUR" }, { "title": "Lilangeni", "x-country-names": [ "SWAZILAND" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/SZL", - "x-withdrawal-date": "2018-08", + "x-withdrawal-dates": [ "2018-08" ], "const": "SZL" }, { "title": "Tajik Ruble", "x-country-names": [ "TAJIKISTAN" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/TJR", - "x-withdrawal-date": "2001-04", + "x-withdrawal-dates": [ "2001-04" ], "const": "TJR" }, { "title": "Turkmenistan Manat", "x-country-names": [ "TURKMENISTAN" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/TMM", - "x-withdrawal-date": "2009-01", + "x-withdrawal-dates": [ "2009-01" ], "const": "TMM" }, { "title": "Timor Escudo", "x-country-names": [ "TIMOR-LESTE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/TPE", - "x-withdrawal-date": "2002-11", + "x-withdrawal-dates": [ "2002-11" ], "const": "TPE" }, { "title": "Old Turkish Lira", "x-country-names": [ "TURKEY" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/TRL", - "x-withdrawal-date": "2005-12", + "x-withdrawal-dates": [ "2005-12" ], "const": "TRL" }, { "title": "New Turkish Lira", "x-country-names": [ "TURKEY" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/TRY", - "x-withdrawal-date": "2009-01", + "x-withdrawal-dates": [ "2009-01" ], "const": "TRY" }, { "title": "Karbovanet", "x-country-names": [ "UKRAINE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/UAK", - "x-withdrawal-date": "1996-09", + "x-withdrawal-dates": [ "1996-09" ], "const": "UAK" }, { "title": "Uganda Shilling", "x-country-names": [ "UGANDA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/UGS", - "x-withdrawal-date": "1987-05", + "x-withdrawal-dates": [ "1987-05" ], "const": "UGS" }, { "title": "Old Shilling", "x-country-names": [ "UGANDA" ], - "x-withdrawal-date": "1989 to 1990", + "x-withdrawal-dates": [ "1989 to 1990" ], "const": "UGW" }, { "title": "US Dollar (Same day)", "x-country-names": [ "UNITED STATES" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/USS", - "x-withdrawal-date": "2014-03", + "x-withdrawal-dates": [ "2014-03" ], "const": "USS" }, { "title": "Old Uruguay Peso", "x-country-names": [ "URUGUAY" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/UYN", - "x-withdrawal-date": "1989-12", + "x-withdrawal-dates": [ "1989-12" ], "const": "UYN" }, { "title": "Uruguayan Peso", "x-country-names": [ "URUGUAY" ], - "x-withdrawal-date": "1993-03", + "x-withdrawal-dates": [ "1993-03" ], "const": "UYP" }, { "title": "Bolivar", "x-country-names": [ "VENEZUELA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/VEB", - "x-withdrawal-date": "2008-01", + "x-withdrawal-dates": [ "2008-01" ], "const": "VEB" }, { @@ -837,117 +848,117 @@ "VENEZUELA (BOLIVARIAN REPUBLIC OF)" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/VEF", - "x-withdrawal-date": "2011-12", + "x-withdrawal-dates": [ "2011-12", "2016-02", "2018-08" ], "const": "VEF" }, { "title": "Old Dong", "x-country-names": [ "VIETNAM" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/VNC", - "x-withdrawal-date": "1989-1990", + "x-withdrawal-dates": [ "1989-1990" ], "const": "VNC" }, { "title": "European Currency Unit (E.C.U)", "x-country-names": [ "EUROPEAN MONETARY CO-OPERATION FUND (EMCF)" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/XEU", - "x-withdrawal-date": "1999-01", + "x-withdrawal-dates": [ "1999-01" ], "const": "XEU" }, { "title": "Gold-Franc", "x-country-names": [ "ZZ01_Gold-Franc" ], - "x-withdrawal-date": "2006-10", + "x-withdrawal-dates": [ "2006-10" ], "const": "XFO" }, { "title": "Yemeni Dinar", "x-country-names": [ "YEMEN, DEMOCRATIC" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/YDD", - "x-withdrawal-date": "1991-09", + "x-withdrawal-dates": [ "1991-09" ], "const": "YDD" }, { "title": "New Yugoslavian Dinar", "x-country-names": [ "YUGOSLAVIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/YUD", - "x-withdrawal-date": "1990-01", + "x-withdrawal-dates": [ "1990-01" ], "const": "YUD" }, { "title": "New Dinar", "x-country-names": [ "YUGOSLAVIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/YUM", - "x-withdrawal-date": "2003-07", + "x-withdrawal-dates": [ "2003-07" ], "const": "YUM" }, { "title": "Yugoslavian Dinar", "x-country-names": [ "YUGOSLAVIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/YUN", - "x-withdrawal-date": "1995-11", + "x-withdrawal-dates": [ "1995-11" ], "const": "YUN" }, { "title": "Financial Rand", "x-country-names": [ "LESOTHO", "SOUTH AFRICA" ], - "x-withdrawal-date": "1995-03", + "x-withdrawal-dates": [ "1995-03" ], "const": "ZAL" }, { "title": "Zambian Kwacha", "x-country-names": [ "ZAMBIA" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ZMK", - "x-withdrawal-date": "2012-12", + "x-withdrawal-dates": [ "2012-12" ], "const": "ZMK" }, { "title": "New Zaire", "x-country-names": [ "ZAIRE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ZRN", - "x-withdrawal-date": "1999-06", + "x-withdrawal-dates": [ "1999-06" ], "const": "ZRN" }, { "title": "Zaire", "x-country-names": [ "ZAIRE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ZRZ", - "x-withdrawal-date": "1994-02", + "x-withdrawal-dates": [ "1994-02" ], "const": "ZRZ" }, { "title": "Rhodesian Dollar", "x-country-names": [ "ZIMBABWE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ZWC", - "x-withdrawal-date": "1989-12", + "x-withdrawal-dates": [ "1989-12" ], "const": "ZWC" }, { "title": "Zimbabwe Dollar (old)", "x-country-names": [ "ZIMBABWE", "ZIMBABWE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ZWD", - "x-withdrawal-date": "2006-08", + "x-withdrawal-dates": [ "2006-08", "2008-08" ], "const": "ZWD" }, { "title": "Zimbabwe Dollar", "x-country-names": [ "ZIMBABWE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ZWL", - "x-withdrawal-date": "2024-09", + "x-withdrawal-dates": [ "2024-09" ], "const": "ZWL" }, { "title": "Zimbabwe Dollar (new)", "x-country-names": [ "ZIMBABWE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ZWN", - "x-withdrawal-date": "2006-09", + "x-withdrawal-dates": [ "2006-09" ], "const": "ZWN" }, { "title": "Zimbabwe Dollar", "x-country-names": [ "ZIMBABWE" ], "x-jsonld-self": "http://publications.europa.eu/resource/authority/currency/ZWR", - "x-withdrawal-date": "2009-06", + "x-withdrawal-dates": [ "2009-06" ], "const": "ZWR" } ] diff --git a/schemas/2020-12/iso/currency/2015/historical/numeric-code.json b/schemas/2020-12/iso/currency/2015/historical/numeric-code.json index e0b2200b..e38085f4 100644 --- a/schemas/2020-12/iso/currency/2015/historical/numeric-code.json +++ b/schemas/2020-12/iso/currency/2015/historical/numeric-code.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ISO 4217:2015 Numeric Currency, Fund, and Precious Metal Code (Historical)", - "description": "A three-digit numeric code including withdrawn currencies, funds, and precious metals (2025-03-31)", + "title": "ISO 4217:2015 Numeric Currency and Precious Metal Code (Historical)", + "description": "A three-digit numeric code including withdrawn currencies and precious metals (2025-03-31)", "examples": [ 4, 8, 20, 24 ], "deprecated": true, "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", diff --git a/schemas/2020-12/iso/currency/2015/numeric-code.json b/schemas/2020-12/iso/currency/2015/numeric-code.json index 900f3919..084ec4b3 100644 --- a/schemas/2020-12/iso/currency/2015/numeric-code.json +++ b/schemas/2020-12/iso/currency/2015/numeric-code.json @@ -14,6 +14,12 @@ }, { "$ref": "numeric-precious-metal.json" + }, + { + "$ref": "numeric-test.json" + }, + { + "$ref": "numeric-unknown.json" } ] } diff --git a/schemas/2020-12/iso/datetime/2019/duration/calendar-basic.json b/schemas/2020-12/iso/datetime/2019/duration/calendar-basic.json index 13e530c9..cc490301 100644 --- a/schemas/2020-12/iso/datetime/2019/duration/calendar-basic.json +++ b/schemas/2020-12/iso/datetime/2019/duration/calendar-basic.json @@ -2,10 +2,10 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "ISO 8601-1:2019 Duration (Alternative Calendar Basic Format)", "description": "A duration in alternative basic format P[YYYYMMDD]T[HHMMSS] (§5.5.2.4)", - "$comment": "This schema validates day/month combinations (i.e rejects April 31) but does not validate leap years. February 29 is accepted for any year, and leap year validation must be performed by the consumer", - "examples": [ "P00020110T223355", "P00010101T000000", "P00001231T235959" ], + "$comment": "Alternative-format durations are quantities, not calendar dates: each field is capped at its carry-over point (12 months, 30 days, 24 hours), years are unsigned, and expanded year forms do not apply", + "examples": [ "P00020110T223355", "P00010101T000000", "P00001130T235959" ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.iso.org/standard/70907.html" ], "type": "string", - "pattern": "^P(?:[0-9]{4}|[+-][0-9]{5,})(?:(0[13578]|1[02])(0[1-9]|[12][0-9]|3[01])|(0[469]|11)(0[1-9]|[12][0-9]|30)|02(0[1-9]|1[0-9]|2[0-9]))T(?:[01][0-9]|2[0-3])(?:[0-5][0-9])(?:[0-5][0-9])$" + "pattern": "^P[0-9]{4}(?:0[0-9]|1[0-2])(?:[0-2][0-9]|30)T(?:[01][0-9]|2[0-3])(?:[0-5][0-9])(?:[0-5][0-9])$" } diff --git a/schemas/2020-12/iso/datetime/2019/duration/calendar-extended.json b/schemas/2020-12/iso/datetime/2019/duration/calendar-extended.json index 82107594..8a1e6e4c 100644 --- a/schemas/2020-12/iso/datetime/2019/duration/calendar-extended.json +++ b/schemas/2020-12/iso/datetime/2019/duration/calendar-extended.json @@ -2,14 +2,14 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "ISO 8601-1:2019 Duration (Alternative Calendar Extended Format)", "description": "A duration in alternative extended format P[YYYY-MM-DD]T[HH:MM:SS] (§5.5.2.4)", - "$comment": "This schema validates day/month combinations (i.e rejects April 31) but does not validate leap years. February 29 is accepted for any year, and leap year validation must be performed by the consumer", + "$comment": "Alternative-format durations are quantities, not calendar dates: each field is capped at its carry-over point (12 months, 30 days, 24 hours), years are unsigned, and expanded year forms do not apply", "examples": [ "P0002-01-10T22:33:55", "P0001-01-01T00:00:00", - "P0001-12-31T23:59:59" + "P0001-11-30T23:59:59" ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.iso.org/standard/70907.html" ], "type": "string", - "pattern": "^P(?:[0-9]{4}|[+-][0-9]{5,})-(?:(0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|(0[469]|11)-(0[1-9]|[12][0-9]|30)|02-(0[1-9]|1[0-9]|2[0-9]))T(?:[01][0-9]|2[0-3]):(?:[0-5][0-9]):(?:[0-5][0-9])$" + "pattern": "^P[0-9]{4}-(?:0[0-9]|1[0-2])-(?:[0-2][0-9]|30)T(?:[01][0-9]|2[0-3]):(?:[0-5][0-9]):(?:[0-5][0-9])$" } diff --git a/schemas/2020-12/iso/datetime/2019/duration/designator-extension.json b/schemas/2020-12/iso/datetime/2019/duration/designator-extension.json index b6c4d0ef..6af74e40 100644 --- a/schemas/2020-12/iso/datetime/2019/duration/designator-extension.json +++ b/schemas/2020-12/iso/datetime/2019/duration/designator-extension.json @@ -2,6 +2,7 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "ISO 8601-2:2019 Duration with Negative Support (Designator Format)", "description": "A duration in designator format with optional minus sign for reverse direction P[n]Y[n]M[n]DT[n]H[n]M[n]S or -P[n]Y[n]M[n]DT[n]H[n]M[n]S (§4.4.1.9)", + "$comment": "ISO 8601 permits omitting any zero-valued component (at least one must remain), allows a decimal fraction on the lowest-order component only, and accepts both comma and full stop as the decimal sign. The extension adds an optional leading minus sign and the week form", "examples": [ "P3Y6M4DT12H30M5S", "P1Y", @@ -17,388 +18,26 @@ "type": "string", "anyOf": [ { - "$comment": "Positive: Date-only: Years with decimal (lowest order)", - "pattern": "^P[0-9]+(?:\\.[0-9]+)?Y$" + "pattern": "^-?P[0-9]+(?:[.,][0-9]+)?Y$" }, { - "$comment": "Positive: Date-only: Years (integer) + Months with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+(?:\\.[0-9]+)?M$" + "pattern": "^-?P(?:[0-9]+Y)?[0-9]+(?:[.,][0-9]+)?M$" }, { - "$comment": "Positive: Date-only: Years (integer) + Months (integer) + Days with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+(?:\\.[0-9]+)?D$" + "pattern": "^-?P(?:[0-9]+Y)?(?:[0-9]+M)?[0-9]+(?:[.,][0-9]+)?D$" }, { - "$comment": "Positive: Date-only: Months with decimal (lowest order)", - "pattern": "^P[0-9]+(?:\\.[0-9]+)?M$" + "pattern": "^-?P(?:[0-9]+Y)?(?:[0-9]+M)?(?:[0-9]+D)?T[0-9]+(?:[.,][0-9]+)?H$" }, { - "$comment": "Positive: Date-only: Months (integer) + Days with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+(?:\\.[0-9]+)?D$" + "pattern": "^-?P(?:[0-9]+Y)?(?:[0-9]+M)?(?:[0-9]+D)?T(?:[0-9]+H)?[0-9]+(?:[.,][0-9]+)?M$" }, { - "$comment": "Positive: Date-only: Days with decimal (lowest order)", - "pattern": "^P[0-9]+(?:\\.[0-9]+)?D$" + "pattern": "^-?P(?:[0-9]+Y)?(?:[0-9]+M)?(?:[0-9]+D)?T(?:[0-9]+H)?(?:[0-9]+M)?[0-9]+(?:[.,][0-9]+)?S$" }, { - "$comment": "Positive: Time-only: Hours with decimal (lowest order)", - "pattern": "^PT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Positive: Time-only: Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^PT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Time-only: Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^PT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Time-only: Minutes with decimal (lowest order)", - "pattern": "^PT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Time-only: Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^PT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Time-only: Seconds with decimal (lowest order)", - "pattern": "^PT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Years + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Positive: Date+Time: Years + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Years + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Years + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Years + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Years + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months (integer) + Days + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months (integer) + Days + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months (integer) + Days + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months (integer) + Days + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months (integer) + Days + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Years (integer) + Months (integer) + Days + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Months + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Positive: Date+Time: Months + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Months + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Months + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Months + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Months + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Months (integer) + Days + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Positive: Date+Time: Months (integer) + Days + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Months (integer) + Days + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Months (integer) + Days + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Months (integer) + Days + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Months (integer) + Days + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Days + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Positive: Date+Time: Days + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Days + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Days + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Positive: Date+Time: Days + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Positive: Date+Time: Days + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date-only: Years with decimal (lowest order)", - "pattern": "^-P[0-9]+(?:\\.[0-9]+)?Y$" - }, - { - "$comment": "Negative: Date-only: Years (integer) + Months with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date-only: Years (integer) + Months (integer) + Days with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+M[0-9]+(?:\\.[0-9]+)?D$" - }, - { - "$comment": "Negative: Date-only: Months with decimal (lowest order)", - "pattern": "^-P[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date-only: Months (integer) + Days with decimal (lowest order)", - "pattern": "^-P[0-9]+M[0-9]+(?:\\.[0-9]+)?D$" - }, - { - "$comment": "Negative: Date-only: Days with decimal (lowest order)", - "pattern": "^-P[0-9]+(?:\\.[0-9]+)?D$" - }, - { - "$comment": "Negative: Time-only: Hours with decimal (lowest order)", - "pattern": "^-PT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Negative: Time-only: Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^-PT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Time-only: Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-PT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Time-only: Minutes with decimal (lowest order)", - "pattern": "^-PT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Time-only: Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-PT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Time-only: Seconds with decimal (lowest order)", - "pattern": "^-PT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Years + Hours with decimal (lowest order)", - "pattern": "^-P[0-9]+YT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Negative: Date+Time: Years + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+YT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Years + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+YT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Years + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+YT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Years + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+YT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Years + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+YT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months + Hours with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+MT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+MT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+MT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+MT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+MT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+MT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months (integer) + Days + Hours with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months (integer) + Days + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months (integer) + Days + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months (integer) + Days + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months (integer) + Days + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Years (integer) + Months (integer) + Days + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Months + Hours with decimal (lowest order)", - "pattern": "^-P[0-9]+MT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Negative: Date+Time: Months + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+MT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Months + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+MT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Months + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+MT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Months + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+MT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Months + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+MT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Months (integer) + Days + Hours with decimal (lowest order)", - "pattern": "^-P[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Negative: Date+Time: Months (integer) + Days + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+M[0-9]+DT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Months (integer) + Days + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+M[0-9]+DT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Months (integer) + Days + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Months (integer) + Days + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+M[0-9]+DT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Months (integer) + Days + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Days + Hours with decimal (lowest order)", - "pattern": "^-P[0-9]+DT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Negative: Date+Time: Days + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+DT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Days + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+DT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Days + Minutes with decimal (lowest order)", - "pattern": "^-P[0-9]+DT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Negative: Date+Time: Days + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+DT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Negative: Date+Time: Days + Seconds with decimal (lowest order)", - "pattern": "^-P[0-9]+DT[0-9]+(?:\\.[0-9]+)?S$" + "$comment": "Week durations, signed like the rest of the extension", + "pattern": "^-?P[0-9]+(?:[.,][0-9]+)?W$" } ], "not": { diff --git a/schemas/2020-12/iso/datetime/2019/duration/designator.json b/schemas/2020-12/iso/datetime/2019/duration/designator.json index 463d3d94..2b9d3e3a 100644 --- a/schemas/2020-12/iso/datetime/2019/duration/designator.json +++ b/schemas/2020-12/iso/datetime/2019/duration/designator.json @@ -2,6 +2,7 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "ISO 8601-1:2019 Duration (Designator Format)", "description": "A duration in designator format P[n]Y[n]M[n]DT[n]H[n]M[n]S (§5.5.2.2, §5.5.2.3)", + "$comment": "ISO 8601 permits omitting any zero-valued component (at least one must remain), allows a decimal fraction on the lowest-order component only, and accepts both comma and full stop as the decimal sign", "examples": [ "P3Y6M4DT12H30M5S", "P1Y", @@ -16,196 +17,22 @@ "type": "string", "anyOf": [ { - "$comment": "Date-only: Years with decimal (lowest order)", - "pattern": "^P[0-9]+(?:\\.[0-9]+)?Y$" + "pattern": "^P[0-9]+(?:[.,][0-9]+)?Y$" }, { - "$comment": "Date-only: Years (integer) + Months with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+(?:\\.[0-9]+)?M$" + "pattern": "^P(?:[0-9]+Y)?[0-9]+(?:[.,][0-9]+)?M$" }, { - "$comment": "Date-only: Years (integer) + Months (integer) + Days with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+(?:\\.[0-9]+)?D$" + "pattern": "^P(?:[0-9]+Y)?(?:[0-9]+M)?[0-9]+(?:[.,][0-9]+)?D$" }, { - "$comment": "Date-only: Months with decimal (lowest order)", - "pattern": "^P[0-9]+(?:\\.[0-9]+)?M$" + "pattern": "^P(?:[0-9]+Y)?(?:[0-9]+M)?(?:[0-9]+D)?T[0-9]+(?:[.,][0-9]+)?H$" }, { - "$comment": "Date-only: Months (integer) + Days with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+(?:\\.[0-9]+)?D$" + "pattern": "^P(?:[0-9]+Y)?(?:[0-9]+M)?(?:[0-9]+D)?T(?:[0-9]+H)?[0-9]+(?:[.,][0-9]+)?M$" }, { - "$comment": "Date-only: Days with decimal (lowest order)", - "pattern": "^P[0-9]+(?:\\.[0-9]+)?D$" - }, - { - "$comment": "Time-only: Hours with decimal (lowest order)", - "pattern": "^PT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Time-only: Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^PT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Time-only: Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^PT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Time-only: Minutes with decimal (lowest order)", - "pattern": "^PT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Time-only: Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^PT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Time-only: Seconds with decimal (lowest order)", - "pattern": "^PT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Years + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Date+Time: Years + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Years + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Years + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Years + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Years + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+YT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Years (integer) + Months + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Date+Time: Years (integer) + Months + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Years (integer) + Months + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Years (integer) + Months + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Years (integer) + Months + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Years (integer) + Months + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+MT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Years (integer) + Months (integer) + Days + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Date+Time: Years (integer) + Months (integer) + Days + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Years (integer) + Months (integer) + Days + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Years (integer) + Months (integer) + Days + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Years (integer) + Months (integer) + Days + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Years (integer) + Months (integer) + Days + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+Y[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Months + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Date+Time: Months + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Months + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Months + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Months + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Months + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+MT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Months (integer) + Days + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Date+Time: Months (integer) + Days + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Months (integer) + Days + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Months (integer) + Days + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Months (integer) + Days + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Months (integer) + Days + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+M[0-9]+DT[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Days + Hours with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+(?:\\.[0-9]+)?H$" - }, - { - "$comment": "Date+Time: Days + Hours (integer) + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+H[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Days + Hours (integer) + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+H[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Days + Minutes with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+(?:\\.[0-9]+)?M$" - }, - { - "$comment": "Date+Time: Days + Minutes (integer) + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+M[0-9]+(?:\\.[0-9]+)?S$" - }, - { - "$comment": "Date+Time: Days + Seconds with decimal (lowest order)", - "pattern": "^P[0-9]+DT[0-9]+(?:\\.[0-9]+)?S$" + "pattern": "^P(?:[0-9]+Y)?(?:[0-9]+M)?(?:[0-9]+D)?T(?:[0-9]+H)?(?:[0-9]+M)?[0-9]+(?:[.,][0-9]+)?S$" } ], "not": { diff --git a/schemas/2020-12/jsonrpc/v2.0/identifier.json b/schemas/2020-12/jsonrpc/v2.0/identifier.json index 1bea8310..ca7e6677 100644 --- a/schemas/2020-12/jsonrpc/v2.0/identifier.json +++ b/schemas/2020-12/jsonrpc/v2.0/identifier.json @@ -2,8 +2,9 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "JSON-RPC 2.0 Identifier", "description": "An identifier established by the client that must be matched in the response if included in a request", + "$comment": "Fractional number identifiers are discouraged but allowed", "examples": [ "abc123", 42, null, "request-1" ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.jsonrpc.org/specification#request_object" ], - "type": [ "string", "integer", "null" ] + "type": [ "string", "number", "null" ] } diff --git a/schemas/2020-12/w3c/xmlschema/2001/any-uri.json b/schemas/2020-12/w3c/xmlschema/2001/any-uri.json index 719db544..cccea5bf 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/any-uri.json +++ b/schemas/2020-12/w3c/xmlschema/2001/any-uri.json @@ -1,7 +1,8 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "W3C XML Schema anyURI", - "description": "The anyURI datatype represents an Internationalized Resource Identifier (IRI) reference as defined in RFC 3987, either absolute or relative (§3.3.17)", + "description": "The anyURI datatype represents an Internationalized Resource Identifier (IRI) reference as defined in RFC 3987, either absolute or relative (§3.2.17)", + "$comment": "The anyURI lexical space is laxer than RFC 3986, as any XML character sequence can be escaped into a URI", "examples": [ "http://www.example.com", "https://www.example.com/path/to/resource", @@ -14,10 +15,12 @@ "urn:isbn:0-395-36341-1", "" ], + "x-jsonld-datatype": "http://www.w3.org/2001/XMLSchema#anyURI", "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema11-2/#anyURI", "https://www.w3.org/TR/xmlschema-2/#anyURI" ], - "$ref": "../../../ietf/uri/iri-reference.json" + "type": "string", + "pattern": "^[^\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\uFFFE\\uFFFF]*$" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/base64-binary.json b/schemas/2020-12/w3c/xmlschema/2001/base64-binary.json index 3605c8c3..ad9d5131 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/base64-binary.json +++ b/schemas/2020-12/w3c/xmlschema/2001/base64-binary.json @@ -2,6 +2,7 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "W3C XML Schema base64Binary", "description": "The base64Binary datatype represents Base64-encoded arbitrary binary data (§3.2.16)", + "$comment": "The XSD grammar requires canonical padding characters and permits a single space after each character", "examples": [ "R0lGODlhAQABAAAAACw=", "SGVsbG8gV29ybGQh", @@ -13,7 +14,8 @@ "x-jsonld-datatype": "http://www.w3.org/2001/XMLSchema#base64Binary", "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#base64Binary" ], - "$ref": "../../../ietf/encoding/base64.json", + "type": "string", + "pattern": "^((([A-Za-z0-9+/] ?){4})*(([A-Za-z0-9+/] ?){3}[A-Za-z0-9+/]|([A-Za-z0-9+/] ?){2}[AEIMQUYcgkosw048] ?=|[A-Za-z0-9+/] ?[AQgw] ?= ?=))?$", "contentEncoding": "base64", "contentMediaType": "application/octet-stream" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/date-time.json b/schemas/2020-12/w3c/xmlschema/2001/date-time.json index e34ac63f..f98dfa1a 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/date-time.json +++ b/schemas/2020-12/w3c/xmlschema/2001/date-time.json @@ -14,5 +14,5 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#dateTime" ], "type": "string", - "pattern": "^-?((?!0000)[0-9]{4}-(0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|(?!0000)[0-9]{4}-(0[469]|11)-(0[1-9]|[12][0-9]|30)|(?!0000)[0-9]{4}-02-(0[1-9]|1[0-9]|2[0-9]))T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|24:00:00(\\.0+)?)(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$" + "pattern": "^-?(([1-9][0-9]{4,}|(?!0000)[0-9]{4})-(0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|([1-9][0-9]{4,}|(?!0000)[0-9]{4})-(0[469]|11)-(0[1-9]|[12][0-9]|30)|([1-9][0-9]{4,}|(?!0000)[0-9]{4})-02-(0[1-9]|1[0-9]|2[0-9]))T(([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9](\\.[0-9]+)?|24:00:00(\\.0+)?)(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/date.json b/schemas/2020-12/w3c/xmlschema/2001/date.json index e07815a5..350a8041 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/date.json +++ b/schemas/2020-12/w3c/xmlschema/2001/date.json @@ -8,5 +8,5 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#date" ], "type": "string", - "pattern": "^-?((?!0000)[0-9]{4}-(0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|(?!0000)[0-9]{4}-(0[469]|11)-(0[1-9]|[12][0-9]|30)|(?!0000)[0-9]{4}-02-(0[1-9]|1[0-9]|2[0-9]))(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])?$" + "pattern": "^-?(([1-9][0-9]{4,}|(?!0000)[0-9]{4})-(0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|([1-9][0-9]{4,}|(?!0000)[0-9]{4})-(0[469]|11)-(0[1-9]|[12][0-9]|30)|([1-9][0-9]{4,}|(?!0000)[0-9]{4})-02-(0[1-9]|1[0-9]|2[0-9]))(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/g-day.json b/schemas/2020-12/w3c/xmlschema/2001/g-day.json index be694d89..b42cc57c 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/g-day.json +++ b/schemas/2020-12/w3c/xmlschema/2001/g-day.json @@ -7,5 +7,5 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#gDay" ], "type": "string", - "pattern": "^---(0[1-9]|[12][0-9]|3[01])(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])?$" + "pattern": "^---(0[1-9]|[12][0-9]|3[01])(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/g-month-day.json b/schemas/2020-12/w3c/xmlschema/2001/g-month-day.json index 0fb69798..26b6e44e 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/g-month-day.json +++ b/schemas/2020-12/w3c/xmlschema/2001/g-month-day.json @@ -7,5 +7,5 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#gMonthDay" ], "type": "string", - "pattern": "^(--(0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|--02-(0[1-9]|1[0-9]|2[0-9])|--(0[469]|11)-(0[1-9]|[12][0-9]|30))(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])?$" + "pattern": "^(--(0[13578]|1[02])-(0[1-9]|[12][0-9]|3[01])|--02-(0[1-9]|1[0-9]|2[0-9])|--(0[469]|11)-(0[1-9]|[12][0-9]|30))(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/g-month.json b/schemas/2020-12/w3c/xmlschema/2001/g-month.json index 9151ea1c..b8106591 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/g-month.json +++ b/schemas/2020-12/w3c/xmlschema/2001/g-month.json @@ -7,5 +7,5 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#gMonth" ], "type": "string", - "pattern": "^--(0[1-9]|1[0-2])(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])?$" + "pattern": "^--(0[1-9]|1[0-2])(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/g-year-month.json b/schemas/2020-12/w3c/xmlschema/2001/g-year-month.json index d5ae7b81..ac43874b 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/g-year-month.json +++ b/schemas/2020-12/w3c/xmlschema/2001/g-year-month.json @@ -8,5 +8,5 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#gYearMonth" ], "type": "string", - "pattern": "^-?(?!0000)[0-9]{4}-(0[1-9]|1[0-2])(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])?$" + "pattern": "^-?([1-9][0-9]{4,}|(?!0000)[0-9]{4})-(0[1-9]|1[0-2])(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/g-year.json b/schemas/2020-12/w3c/xmlschema/2001/g-year.json index 0f8f29b2..61325e71 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/g-year.json +++ b/schemas/2020-12/w3c/xmlschema/2001/g-year.json @@ -8,5 +8,5 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#gYear" ], "type": "string", - "pattern": "^-?(?!0000)[0-9]{4}(Z|[+-]([01][0-9]|2[0-3]):[0-5][0-9])?$" + "pattern": "^-?([1-9][0-9]{4,}|(?!0000)[0-9]{4})(Z|[+-]((0[0-9]|1[0-3]):[0-5][0-9]|14:00))?$" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/name.json b/schemas/2020-12/w3c/xmlschema/2001/name.json index 4abb0205..0548ef37 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/name.json +++ b/schemas/2020-12/w3c/xmlschema/2001/name.json @@ -14,11 +14,8 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#Name", - "https://www.w3.org/TR/xml/#NT-Name" + "https://www.w3.org/TR/2000/REC-xml-20001006#NT-Name" ], "type": "string", - "not": { - "pattern": "[\\x00-\\x1F]" - }, - "pattern": "^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$" + "pattern": "^(?![\\p{Nd}\\u00B7\\u02D0-\\u02D1\\u0387\\u0640\\u0E46\\u0EC6\\u3005\\u3031-\\u3035\\u309D-\\u309E\\u30FC-\\u30FE])[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/ncname.json b/schemas/2020-12/w3c/xmlschema/2001/ncname.json index 1a831b7f..5b2360c1 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/ncname.json +++ b/schemas/2020-12/w3c/xmlschema/2001/ncname.json @@ -20,16 +20,6 @@ "https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-NCName" ], "type": "string", - "not": { - "anyOf": [ - { - "pattern": ":" - }, - { - "pattern": "[\\x00-\\x1F]" - } - ] - }, "pattern": "^(?![:\\p{Nd}\\u00B7\\u02D0-\\u02D1\\u0387\\u0640\\u0E46\\u0EC6\\u3005\\u3031-\\u3035\\u309D-\\u309E\\u30FC-\\u30FE])[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}][A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$", "minLength": 1 } diff --git a/schemas/2020-12/w3c/xmlschema/2001/nmtoken.json b/schemas/2020-12/w3c/xmlschema/2001/nmtoken.json index 1fd01e5f..a271615a 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/nmtoken.json +++ b/schemas/2020-12/w3c/xmlschema/2001/nmtoken.json @@ -15,11 +15,8 @@ "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#NMTOKEN", - "https://www.w3.org/TR/xml/#NT-Nmtoken" + "https://www.w3.org/TR/2000/REC-xml-20001006#NT-Nmtoken" ], "type": "string", - "not": { - "pattern": "[\\x00-\\x1F]" - }, "pattern": "^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]+$" } diff --git a/schemas/2020-12/w3c/xmlschema/2001/nmtokens.json b/schemas/2020-12/w3c/xmlschema/2001/nmtokens.json index 27db034c..97e85f66 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/nmtokens.json +++ b/schemas/2020-12/w3c/xmlschema/2001/nmtokens.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "W3C XML Schema NMTOKENS", - "description": "Represents a list of XML name tokens (§3.3.4)", + "description": "Represents a list of XML name tokens (§3.3.5)", "$comment": "NMTOKENS is a space-separated list of NMTOKEN values. In JSON Schema, this is represented as an array with at least one item", "examples": [ [ "token1", "token2" ], diff --git a/schemas/2020-12/w3c/xmlschema/2001/notation.json b/schemas/2020-12/w3c/xmlschema/2001/notation.json index 7555ea8d..334add52 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/notation.json +++ b/schemas/2020-12/w3c/xmlschema/2001/notation.json @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "W3C XML Schema NOTATION", - "description": "Represents the NOTATION attribute type from XML 1.0 (§3.2.16). The value space of NOTATION is the set of QNames of notations declared in the current schema. The lexical space consists of QName strings that reference notation declarations. Note that the semantic constraint requiring the QName to reference an actual notation declaration in the schema cannot be validated in isolation by this schema", + "description": "Represents the NOTATION attribute type from XML 1.0 (§3.2.19). The value space of NOTATION is the set of QNames of notations declared in the current schema. The lexical space consists of QName strings that reference notation declarations. Note that the semantic constraint requiring the QName to reference an actual notation declaration in the schema cannot be validated in isolation by this schema", "examples": [ "jpeg", "png", "gif", "svg", "mime:image-jpeg", "format:pdf" ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ diff --git a/schemas/2020-12/w3c/xmlschema/2001/qname.json b/schemas/2020-12/w3c/xmlschema/2001/qname.json index b7505976..973419d4 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/qname.json +++ b/schemas/2020-12/w3c/xmlschema/2001/qname.json @@ -22,22 +22,6 @@ "https://www.w3.org/TR/1999/REC-xml-names-19990114/#NT-QName" ], "type": "string", - "not": { - "anyOf": [ - { - "$comment": "QName cannot have multiple colons", - "pattern": ".*:.*:" - }, - { - "$comment": "QName cannot start or end with a colon", - "pattern": "^:|:$" - }, - { - "$comment": "QName cannot contain control characters", - "pattern": "[\\x00-\\x1F]" - } - ] - }, "pattern": "^((?![:\\p{Nd}\\u00B7\\u02D0-\\u02D1\\u0387\\u0640\\u0E46\\u0EC6\\u3005\\u3031-\\u3035\\u309D-\\u309E\\u30FC-\\u30FE])[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}][A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*:)?(?![:\\p{Nd}\\u00B7\\u02D0-\\u02D1\\u0387\\u0640\\u0E46\\u0EC6\\u3005\\u3031-\\u3035\\u309D-\\u309E\\u30FC-\\u30FE])[A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}][A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\u{10000}-\\u{EFFFF}\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$", "minLength": 1 } diff --git a/schemas/2020-12/w3c/xmlschema/2001/string.json b/schemas/2020-12/w3c/xmlschema/2001/string.json index 73b164ec..dea68e34 100644 --- a/schemas/2020-12/w3c/xmlschema/2001/string.json +++ b/schemas/2020-12/w3c/xmlschema/2001/string.json @@ -2,9 +2,11 @@ "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "W3C XML Schema string", "description": "The string datatype represents character strings in XML (§3.2.1)", + "$comment": "The pattern encodes the XML Char production", "examples": [ "Hello World", "", "Line 1\nLine 2", "Multiple spaces" ], "x-jsonld-datatype": "http://www.w3.org/2001/XMLSchema#string", "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.w3.org/TR/xmlschema-2/#string" ], - "type": "string" + "type": "string", + "pattern": "^[^\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\uFFFE\\uFFFF]*$" } diff --git a/schemas/2020-12/xbrl/dtr/type/2024-01-31/gyear-list-item-type.json b/schemas/2020-12/xbrl/dtr/type/2024-01-31/gyear-list-item-type.json index 7b099915..3a3f0d2a 100644 --- a/schemas/2020-12/xbrl/dtr/type/2024-01-31/gyear-list-item-type.json +++ b/schemas/2020-12/xbrl/dtr/type/2024-01-31/gyear-list-item-type.json @@ -1,19 +1,14 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", "title": "XBRL DTR 2024-01-31 gYearListItemType", - "description": "A list of W3C XML Schema gYear values", - "examples": [ - [ "2020", "2021", "2022" ], - [ "1999" ], - [ "-1999", "1000", "2024Z" ] - ], + "description": "A whitespace-separated list of year values as defined by the XBRL Data Types Registry", + "$comment": "The registry type is a whitespace-separated token list, not gYear values, so no timezone designator is allowed", + "examples": [ "2020 2021 2022", "1999", "-1999 1000 2024" ], "x-license": "https://github.com/sourcemeta/std/blob/main/LICENSE", "x-links": [ "https://www.xbrl.org/dtr/dtr.html", "https://www.xbrl.org/dtr/type/2024-01-31/types.xsd" ], - "type": "array", - "items": { - "$ref": "../../../../w3c/xmlschema/2001/g-year.json" - } + "type": "string", + "pattern": "^\\s*(-?[0-9]{4,}(\\s+-?[0-9]{4,})*)?\\s*$" } diff --git a/templates/schemas/2020-12/iso/currency/2015/alpha-code.jq b/templates/schemas/2020-12/iso/currency/2015/alpha-code.jq index a4d4d659..d9d464e9 100644 --- a/templates/schemas/2020-12/iso/currency/2015/alpha-code.jq +++ b/templates/schemas/2020-12/iso/currency/2015/alpha-code.jq @@ -14,6 +14,8 @@ "anyOf": [ {"$ref": "alpha-currency.json"}, {"$ref": "alpha-fund.json"}, - {"$ref": "alpha-precious-metal.json"} + {"$ref": "alpha-precious-metal.json"}, + {"$ref": "alpha-test.json"}, + {"$ref": "alpha-unknown.json"} ] } diff --git a/templates/schemas/2020-12/iso/currency/2015/historical/alpha-code.jq b/templates/schemas/2020-12/iso/currency/2015/historical/alpha-code.jq index f65c5328..70db3922 100644 --- a/templates/schemas/2020-12/iso/currency/2015/historical/alpha-code.jq +++ b/templates/schemas/2020-12/iso/currency/2015/historical/alpha-code.jq @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ISO 4217:2015 Alphabetic Currency, Fund, and Precious Metal Code (Historical)", - "description": ("A three-letter alphabetic code including withdrawn currencies, funds, and precious metals (" + .ISO_4217."@attributes".Pblshd + ")"), + "title": "ISO 4217:2015 Alphabetic Currency and Precious Metal Code (Historical)", + "description": ("A three-letter alphabetic code including withdrawn currencies and precious metals (" + .ISO_4217."@attributes".Pblshd + ")"), "examples": ( .ISO_4217.HstrcCcyTbl.HstrcCcyNtry | map(select(.Ccy != null)) diff --git a/templates/schemas/2020-12/iso/currency/2015/historical/alpha-currency.jq b/templates/schemas/2020-12/iso/currency/2015/historical/alpha-currency.jq index e21cdfcb..d43b21de 100644 --- a/templates/schemas/2020-12/iso/currency/2015/historical/alpha-currency.jq +++ b/templates/schemas/2020-12/iso/currency/2015/historical/alpha-currency.jq @@ -28,7 +28,7 @@ | map({ "title": .[0].CcyNm, "x-country-names": map(.CtryNm), - "x-withdrawal-date": .[0].WthdrwlDt, + "x-withdrawal-dates": (map(.WthdrwlDt) | unique), "const": .[0].Ccy } + (if (.[0].Ccy | IN("AOK", "AYM", "BAD", "BEC", "BEL", "BUK", "BYB", "CHC", "CSD", "ECV", "ESA", "ESB", "GEK", "GHP", "GNS", "GWE", "HRD", "LSM", "LTT", "LUC", "LUL", "LVR", "MZE", "NIC", "PES", "RHD", "ROK", "SDP", "UGW", "UYP", "XFO", "ZAL") | not) then {"x-jsonld-self": ("http://publications.europa.eu/resource/authority/currency/" + .[0].Ccy)} else {} end)) diff --git a/templates/schemas/2020-12/iso/currency/2015/historical/numeric-code.jq b/templates/schemas/2020-12/iso/currency/2015/historical/numeric-code.jq index 60e1887e..dd7eb525 100644 --- a/templates/schemas/2020-12/iso/currency/2015/historical/numeric-code.jq +++ b/templates/schemas/2020-12/iso/currency/2015/historical/numeric-code.jq @@ -1,7 +1,7 @@ { "$schema": "https://json-schema.org/draft/2020-12/schema", - "title": "ISO 4217:2015 Numeric Currency, Fund, and Precious Metal Code (Historical)", - "description": ("A three-digit numeric code including withdrawn currencies, funds, and precious metals (" + .ISO_4217."@attributes".Pblshd + ")"), + "title": "ISO 4217:2015 Numeric Currency and Precious Metal Code (Historical)", + "description": ("A three-digit numeric code including withdrawn currencies and precious metals (" + .ISO_4217."@attributes".Pblshd + ")"), "examples": ( .ISO_4217.HstrcCcyTbl.HstrcCcyNtry | map(select(.Ccy != null and .CcyNbr != null)) diff --git a/templates/schemas/2020-12/iso/currency/2015/numeric-code.jq b/templates/schemas/2020-12/iso/currency/2015/numeric-code.jq index 6fc565f2..27f46d9a 100644 --- a/templates/schemas/2020-12/iso/currency/2015/numeric-code.jq +++ b/templates/schemas/2020-12/iso/currency/2015/numeric-code.jq @@ -14,6 +14,8 @@ "anyOf": [ {"$ref": "numeric-currency.json"}, {"$ref": "numeric-fund.json"}, - {"$ref": "numeric-precious-metal.json"} + {"$ref": "numeric-precious-metal.json"}, + {"$ref": "numeric-test.json"}, + {"$ref": "numeric-unknown.json"} ] } diff --git a/test/bipm/si/2019/derived/prefixed/decadegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/decadegree-celsius.test.json index e2191837..734c4331 100644 --- a/test/bipm/si/2019/derived/prefixed/decadegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/decadegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -13.6575, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/exadegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/exadegree-celsius.test.json index 74d1a907..7467d60b 100644 --- a/test/bipm/si/2019/derived/prefixed/exadegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/exadegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -1.36575e-16, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/gigadegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/gigadegree-celsius.test.json index 3c018496..be247cfe 100644 --- a/test/bipm/si/2019/derived/prefixed/gigadegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/gigadegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -1.36575e-7, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/hectodegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/hectodegree-celsius.test.json index 1105bcd8..1e145470 100644 --- a/test/bipm/si/2019/derived/prefixed/hectodegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/hectodegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -1.36575, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/kilodegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/kilodegree-celsius.test.json index a0ffd5b4..8161b7ab 100644 --- a/test/bipm/si/2019/derived/prefixed/kilodegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/kilodegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -0.136575, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/megadegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/megadegree-celsius.test.json index b2dbd2f4..302fd505 100644 --- a/test/bipm/si/2019/derived/prefixed/megadegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/megadegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -0.000136575, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/petadegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/petadegree-celsius.test.json index 870ce091..eea6f7bc 100644 --- a/test/bipm/si/2019/derived/prefixed/petadegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/petadegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -1.36575e-13, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/quettadegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/quettadegree-celsius.test.json index 4e095065..993b4512 100644 --- a/test/bipm/si/2019/derived/prefixed/quettadegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/quettadegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -1.36575e-28, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/ronnadegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/ronnadegree-celsius.test.json index b1c4fc10..c81d1ba2 100644 --- a/test/bipm/si/2019/derived/prefixed/ronnadegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/ronnadegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -1.36575e-25, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/teradegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/teradegree-celsius.test.json index 069c6869..aaba6118 100644 --- a/test/bipm/si/2019/derived/prefixed/teradegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/teradegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -1.36575e-10, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/yottadegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/yottadegree-celsius.test.json index 71b51e38..b042bf10 100644 --- a/test/bipm/si/2019/derived/prefixed/yottadegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/yottadegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -1.36575e-22, "valid": true }, { diff --git a/test/bipm/si/2019/derived/prefixed/zettadegree-celsius.test.json b/test/bipm/si/2019/derived/prefixed/zettadegree-celsius.test.json index 454f2a54..2ac57d39 100644 --- a/test/bipm/si/2019/derived/prefixed/zettadegree-celsius.test.json +++ b/test/bipm/si/2019/derived/prefixed/zettadegree-celsius.test.json @@ -17,8 +17,8 @@ "valid": true }, { - "description": "Valid - negative", - "data": -50, + "description": "Valid - negative within the scaled range", + "data": -1.36575e-19, "valid": true }, { diff --git a/test/ieee/posix/2017/path-absolute.test.json b/test/ieee/posix/2017/path-absolute.test.json index b2632a43..1a55710d 100644 --- a/test/ieee/posix/2017/path-absolute.test.json +++ b/test/ieee/posix/2017/path-absolute.test.json @@ -52,9 +52,9 @@ "valid": true }, { - "description": "Exactly two leading slashes (implementation-defined)", + "description": "Invalid - exactly two leading slashes are excluded from absolute pathnames", "data": "//server/share", - "valid": true + "valid": false }, { "description": "Three or more leading slashes (treated as single slash)", @@ -412,9 +412,9 @@ "valid": true }, { - "description": "Two slashes only", + "description": "Invalid - exactly two slashes are excluded from absolute pathnames", "data": "//", - "valid": true + "valid": false }, { "description": "Many slashes only", diff --git a/test/ietf/geojson/bounding-box.test.json b/test/ietf/geojson/bounding-box.test.json index 7a34c431..b31140d5 100644 --- a/test/ietf/geojson/bounding-box.test.json +++ b/test/ietf/geojson/bounding-box.test.json @@ -132,9 +132,19 @@ "valid": false }, { - "description": "Valid higher dimension bounding box (loose validation)", + "description": "Valid - four dimensional box with even length", "data": [ 0, 0, 0, 0, 1, 1, 1, 1 ], "valid": true + }, + { + "description": "Invalid - odd number of elements can never be 2*n", + "valid": false, + "data": [ 1, 2, 3, 4, 5, 6, 7 ] + }, + { + "description": "Invalid - latitude beyond range in a four dimensional box", + "valid": false, + "data": [ 0, 95, 0, 0, 10, 96, 10, 10 ] } ] } diff --git a/test/ietf/problem-details/problem.test.json b/test/ietf/problem-details/9457/problem.test.json similarity index 99% rename from test/ietf/problem-details/problem.test.json rename to test/ietf/problem-details/9457/problem.test.json index 65321da1..5353f2ab 100644 --- a/test/ietf/problem-details/problem.test.json +++ b/test/ietf/problem-details/9457/problem.test.json @@ -1,5 +1,5 @@ { - "target": "../../../schemas/2020-12/ietf/problem-details/problem.json", + "target": "../../../../schemas/2020-12/ietf/problem-details/9457/problem.json", "tests": [ { "description": "Invalid type - string", diff --git a/test/ietf/uri/uri-relative.test.json b/test/ietf/uri/uri-relative.test.json index ca42fef3..7e8920c6 100644 --- a/test/ietf/uri/uri-relative.test.json +++ b/test/ietf/uri/uri-relative.test.json @@ -182,9 +182,9 @@ "valid": false }, { - "description": "Network path with invalid IPv4", + "description": "Network path with IPv4-like reg-name (first-match-wins makes it a valid reg-name)", "data": "//256.256.256.256/path", - "valid": false + "valid": true }, { "description": "Network path with IPv6 without brackets", @@ -192,14 +192,14 @@ "valid": false }, { - "description": "Network path with empty port", + "description": "Network path with empty port (port is *DIGIT)", "data": "//example.com:/path", - "valid": false + "valid": true }, { - "description": "Network path without host", + "description": "Network path with empty host (reg-name may be empty)", "data": "//:8080/path", - "valid": false + "valid": true }, { "description": "Path with unreserved characters", diff --git a/test/ietf/uri/url.test.json b/test/ietf/uri/url.test.json index 97deef4d..f507a450 100644 --- a/test/ietf/uri/url.test.json +++ b/test/ietf/uri/url.test.json @@ -52,9 +52,9 @@ "valid": true }, { - "description": "Authority with invalid IPv4", + "description": "Authority with IPv4-like reg-name (first-match-wins makes it a valid reg-name)", "data": "http://256.256.256.256/", - "valid": false + "valid": true }, { "description": "Authority with IPv6", @@ -97,9 +97,9 @@ "valid": true }, { - "description": "Authority without host", + "description": "Authority with empty host (allowed by RFC 3986 for generic URIs)", "data": "http://:80/", - "valid": false + "valid": true }, { "description": "Path with multiple segments", diff --git a/test/ietf/uri/urn.test.json b/test/ietf/uri/urn.test.json index 6532b541..0891d050 100644 --- a/test/ietf/uri/urn.test.json +++ b/test/ietf/uri/urn.test.json @@ -27,9 +27,9 @@ "valid": true }, { - "description": "Single-character NID and NSS", + "description": "Single-character NID (RFC 8141 requires at least two characters)", "data": "urn:a:b", - "valid": true + "valid": false }, { "description": "Numeric NID (all digits)", @@ -172,9 +172,9 @@ "valid": true }, { - "description": "URN with empty r-component", + "description": "Empty r-component (RFC 8141 requires at least one pchar)", "data": "urn:example:foo?", - "valid": true + "valid": false }, { "description": "URN with empty fragment", diff --git a/test/iso/currency/2015/alpha-code.test.json b/test/iso/currency/2015/alpha-code.test.json index d7f23092..06ab33e4 100644 --- a/test/iso/currency/2015/alpha-code.test.json +++ b/test/iso/currency/2015/alpha-code.test.json @@ -72,9 +72,9 @@ "valid": true }, { - "description": "Invalid - unknown code (XXX)", + "description": "Valid - XXX is a List One member (the no-currency code)", "data": "XXX", - "valid": false + "valid": true }, { "description": "Invalid - lowercase", diff --git a/test/iso/currency/2015/numeric-code.test.json b/test/iso/currency/2015/numeric-code.test.json index c1d26142..f515b4a4 100644 --- a/test/iso/currency/2015/numeric-code.test.json +++ b/test/iso/currency/2015/numeric-code.test.json @@ -72,9 +72,9 @@ "valid": true }, { - "description": "Invalid - unknown code (999)", + "description": "Valid - 999 is a List One member (the no-currency code)", "data": 999, - "valid": false + "valid": true }, { "description": "Invalid - non-existent code", diff --git a/test/iso/datetime/2019/duration/calendar-basic.test.json b/test/iso/datetime/2019/duration/calendar-basic.test.json index d03711e7..9588d559 100644 --- a/test/iso/datetime/2019/duration/calendar-basic.test.json +++ b/test/iso/datetime/2019/duration/calendar-basic.test.json @@ -37,9 +37,9 @@ "valid": true }, { - "description": "Valid - 0 years 12 months 31 days, 23 hours 59 minutes 59 seconds", + "description": "Invalid - 31 days exceeds the 30-day carry-over point", "data": "P00001231T235959", - "valid": true + "valid": false }, { "description": "Valid - 10 years 6 months 15 days, 12 hours 30 minutes 45 seconds", @@ -107,14 +107,14 @@ "valid": false }, { - "description": "Invalid - month 00 (months should be 01-12)", + "description": "Valid - zero months is a legal duration quantity", "data": "P00000001T000000", - "valid": false + "valid": true }, { - "description": "Invalid - month 00 with valid day (months should be 01-12)", + "description": "Valid - zero months with days is a legal duration quantity", "data": "P00010001T000000", - "valid": false + "valid": true }, { "description": "Invalid - month 13 (months should be 01-12)", @@ -127,9 +127,9 @@ "valid": false }, { - "description": "Invalid - day 00 (days should be 01-31)", + "description": "Valid - zero days is a legal duration quantity", "data": "P00010100T000000", - "valid": false + "valid": true }, { "description": "Invalid - day 32 (days should be 01-31)", @@ -187,9 +187,9 @@ "valid": true }, { - "description": "Valid - day 31 (maximum valid day)", + "description": "Invalid - 31 days exceeds the 30-day carry-over point", "data": "P00000131T000000", - "valid": true + "valid": false }, { "description": "Valid - hour 00 (minimum valid hour)", @@ -222,24 +222,24 @@ "valid": true }, { - "description": "Valid - expanded year with plus sign (5 digits)", + "description": "Invalid - durations take no sign and no expanded year form", "data": "P+100000101T000000", - "valid": true + "valid": false }, { - "description": "Valid - expanded year with minus sign (5 digits)", + "description": "Invalid - durations take no sign and no expanded year form", "data": "P-100000101T000000", - "valid": true + "valid": false }, { - "description": "Valid - expanded year with plus sign (6 digits)", + "description": "Invalid - durations take no sign and no expanded year form", "data": "P+10000000101T000000", - "valid": true + "valid": false }, { - "description": "Valid - expanded year with minus sign (10 digits)", + "description": "Invalid - durations take no sign and no expanded year form", "data": "P-10000000000101T000000", - "valid": true + "valid": false }, { "description": "Invalid - expanded year without sign (5 digits)", @@ -282,9 +282,9 @@ "valid": false }, { - "description": "Invalid - month 00", + "description": "Valid - zero months is a legal duration quantity", "data": "P00010001T000000", - "valid": false + "valid": true }, { "description": "Invalid - month 13", @@ -292,9 +292,9 @@ "valid": false }, { - "description": "Invalid - day 00", + "description": "Valid - zero days is a legal duration quantity", "data": "P00010100T000000", - "valid": false + "valid": true }, { "description": "Invalid - day 32", @@ -302,9 +302,9 @@ "valid": false }, { - "description": "Invalid - February 30", + "description": "Valid - month and day fields are quantities, not a calendar date", "data": "P00010230T000000", - "valid": false + "valid": true }, { "description": "Invalid - February 31", @@ -342,9 +342,9 @@ "valid": true }, { - "description": "Valid - January 31", + "description": "Invalid - 31 days exceeds the 30-day carry-over point", "data": "P00010131T000000", - "valid": true + "valid": false } ] } diff --git a/test/iso/datetime/2019/duration/calendar-extended.test.json b/test/iso/datetime/2019/duration/calendar-extended.test.json index 42ea7781..945b8674 100644 --- a/test/iso/datetime/2019/duration/calendar-extended.test.json +++ b/test/iso/datetime/2019/duration/calendar-extended.test.json @@ -37,9 +37,9 @@ "valid": true }, { - "description": "Valid - 0 years 12 months 31 days, 23 hours 59 minutes 59 seconds", + "description": "Invalid - 31 days exceeds the 30-day carry-over point", "data": "P0000-12-31T23:59:59", - "valid": true + "valid": false }, { "description": "Valid - 10 years 6 months 15 days, 12 hours 30 minutes 45 seconds", @@ -107,14 +107,14 @@ "valid": false }, { - "description": "Invalid - month 00 (months should be 01-12)", + "description": "Valid - zero months is a legal duration quantity", "data": "P0000-00-01T00:00:00", - "valid": false + "valid": true }, { - "description": "Invalid - month 00 with valid day (months should be 01-12)", + "description": "Valid - zero months with days is a legal duration quantity", "data": "P0001-00-01T00:00:00", - "valid": false + "valid": true }, { "description": "Invalid - month 13 (months should be 01-12)", @@ -127,9 +127,9 @@ "valid": false }, { - "description": "Invalid - day 00 (days should be 01-31)", + "description": "Valid - zero days is a legal duration quantity", "data": "P0001-01-00T00:00:00", - "valid": false + "valid": true }, { "description": "Invalid - day 32 (days should be 01-31)", @@ -187,9 +187,9 @@ "valid": true }, { - "description": "Valid - day 31 (maximum valid day)", + "description": "Invalid - 31 days exceeds the 30-day carry-over point", "data": "P0000-01-31T00:00:00", - "valid": true + "valid": false }, { "description": "Valid - hour 00 (minimum valid hour)", @@ -222,24 +222,24 @@ "valid": true }, { - "description": "Valid - expanded year with plus sign (5 digits)", + "description": "Invalid - durations take no sign and no expanded year form", "data": "P+10000-01-01T00:00:00", - "valid": true + "valid": false }, { - "description": "Valid - expanded year with minus sign (5 digits)", + "description": "Invalid - durations take no sign and no expanded year form", "data": "P-10000-01-01T00:00:00", - "valid": true + "valid": false }, { - "description": "Valid - expanded year with plus sign (6 digits)", + "description": "Invalid - durations take no sign and no expanded year form", "data": "P+100000-01-01T00:00:00", - "valid": true + "valid": false }, { - "description": "Valid - expanded year with minus sign (10 digits)", + "description": "Invalid - durations take no sign and no expanded year form", "data": "P-1000000000-01-01T00:00:00", - "valid": true + "valid": false }, { "description": "Invalid - expanded year without sign (5 digits)", @@ -282,9 +282,9 @@ "valid": false }, { - "description": "Invalid - month 00", + "description": "Valid - zero months is a legal duration quantity", "data": "P0001-00-01T00:00:00", - "valid": false + "valid": true }, { "description": "Invalid - month 13", @@ -292,9 +292,9 @@ "valid": false }, { - "description": "Invalid - day 00", + "description": "Valid - zero days is a legal duration quantity", "data": "P0001-01-00T00:00:00", - "valid": false + "valid": true }, { "description": "Invalid - day 32", @@ -302,9 +302,9 @@ "valid": false }, { - "description": "Invalid - February 30", + "description": "Valid - month and day fields are quantities, not a calendar date", "data": "P0001-02-30T00:00:00", - "valid": false + "valid": true }, { "description": "Invalid - February 31", @@ -342,9 +342,9 @@ "valid": true }, { - "description": "Valid - January 31", + "description": "Invalid - 31 days exceeds the 30-day carry-over point", "data": "P0001-01-31T00:00:00", - "valid": true + "valid": false } ] } diff --git a/test/jsonrpc/v2.0/identifier.test.json b/test/jsonrpc/v2.0/identifier.test.json index 18c7689a..10c77ef3 100644 --- a/test/jsonrpc/v2.0/identifier.test.json +++ b/test/jsonrpc/v2.0/identifier.test.json @@ -91,19 +91,23 @@ }, { "data": 1.5, - "valid": false + "valid": true, + "description": "Valid - fractional numbers are allowed (SHOULD NOT, not MUST NOT)" }, { "data": 3.14, - "valid": false + "valid": true, + "description": "Valid - fractional numbers are allowed (SHOULD NOT, not MUST NOT)" }, { "data": 0.1, - "valid": false + "valid": true, + "description": "Valid - fractional numbers are allowed (SHOULD NOT, not MUST NOT)" }, { "data": -0.5, - "valid": false + "valid": true, + "description": "Valid - fractional numbers are allowed (SHOULD NOT, not MUST NOT)" }, { "data": true, diff --git a/test/jsonrpc/v2.0/request.test.json b/test/jsonrpc/v2.0/request.test.json index 5aa22d91..2039f1ba 100644 --- a/test/jsonrpc/v2.0/request.test.json +++ b/test/jsonrpc/v2.0/request.test.json @@ -253,7 +253,8 @@ "jsonrpc": "2.0", "method": "test" }, - "valid": false + "valid": true, + "description": "Valid - fractional id is allowed (SHOULD NOT, not MUST NOT)" }, { "data": { diff --git a/test/jsonrpc/v2.0/response.test.json b/test/jsonrpc/v2.0/response.test.json index 8467bf9a..e878e548 100644 --- a/test/jsonrpc/v2.0/response.test.json +++ b/test/jsonrpc/v2.0/response.test.json @@ -274,7 +274,8 @@ "jsonrpc": "2.0", "result": 19 }, - "valid": false + "valid": true, + "description": "Valid - fractional id is allowed (SHOULD NOT, not MUST NOT)" }, { "data": { diff --git a/test/w3c/xmlschema/2001/any-uri.test.json b/test/w3c/xmlschema/2001/any-uri.test.json index fe856faf..7b331bb8 100644 --- a/test/w3c/xmlschema/2001/any-uri.test.json +++ b/test/w3c/xmlschema/2001/any-uri.test.json @@ -97,9 +97,9 @@ "valid": true }, { - "description": "Invalid - with unencoded space", + "description": "Valid - spaces are within the XSD anyURI lexical space", "data": "http://www.example.com/file with spaces.txt", - "valid": false + "valid": true }, { "description": "Valid - IPv6 host", diff --git a/test/w3c/xmlschema/2001/base64-binary.test.json b/test/w3c/xmlschema/2001/base64-binary.test.json index 2d43ce5e..6a676916 100644 --- a/test/w3c/xmlschema/2001/base64-binary.test.json +++ b/test/w3c/xmlschema/2001/base64-binary.test.json @@ -42,9 +42,9 @@ "valid": true }, { - "description": "Valid - with slash", + "description": "Invalid - final quad has non-zero discarded bits (f not in B16)", "data": "abc/def=", - "valid": true + "valid": false }, { "description": "Valid - all uppercase", @@ -112,9 +112,9 @@ "valid": false }, { - "description": "Invalid - contains space", + "description": "Valid - single space between characters per the XSD grammar", "data": "YWJj ZA==", - "valid": false + "valid": true }, { "description": "Invalid - contains dash", @@ -242,14 +242,14 @@ "valid": false }, { - "description": "Valid - padding with two equals at end of 4-char group", + "description": "Invalid - character before double padding must be A, Q, g, or w", "data": "AB==", - "valid": true + "valid": false }, { - "description": "Valid - padding with one equal at end of 4-char group", + "description": "Invalid - character before single padding must be from the B16 class", "data": "ABC=", - "valid": true + "valid": false }, { "description": "Valid - 8 chars then padding", diff --git a/test/w3c/xmlschema/2001/date.test.json b/test/w3c/xmlschema/2001/date.test.json index 9462e48f..bb8e0897 100644 --- a/test/w3c/xmlschema/2001/date.test.json +++ b/test/w3c/xmlschema/2001/date.test.json @@ -102,9 +102,9 @@ "valid": false }, { - "description": "Invalid - five digit year", + "description": "Valid - years may have more than four digits", "data": "10000-05-15", - "valid": false + "valid": true }, { "description": "Invalid - with time component", diff --git a/test/w3c/xmlschema/2001/g-year-month.test.json b/test/w3c/xmlschema/2001/g-year-month.test.json index abe08552..f31304fb 100644 --- a/test/w3c/xmlschema/2001/g-year-month.test.json +++ b/test/w3c/xmlschema/2001/g-year-month.test.json @@ -72,9 +72,9 @@ "valid": false }, { - "description": "Invalid - five digit year", + "description": "Valid - years may have more than four digits", "data": "10000-05", - "valid": false + "valid": true }, { "description": "Invalid - with day component", diff --git a/test/w3c/xmlschema/2001/g-year.test.json b/test/w3c/xmlschema/2001/g-year.test.json index 26483cdf..18b19438 100644 --- a/test/w3c/xmlschema/2001/g-year.test.json +++ b/test/w3c/xmlschema/2001/g-year.test.json @@ -57,9 +57,9 @@ "valid": false }, { - "description": "Invalid - five digit year", + "description": "Valid - years may have more than four digits", "data": "10000", - "valid": false + "valid": true }, { "description": "Invalid - with month component", diff --git a/test/xbrl/dtr/type/2024-01-31/gyear-list-item-type.test.json b/test/xbrl/dtr/type/2024-01-31/gyear-list-item-type.test.json index 511f7fa3..2fb91784 100644 --- a/test/xbrl/dtr/type/2024-01-31/gyear-list-item-type.test.json +++ b/test/xbrl/dtr/type/2024-01-31/gyear-list-item-type.test.json @@ -3,48 +3,53 @@ "tests": [ { "description": "Valid - single year", - "data": [ "2023" ], - "valid": true + "valid": true, + "data": "2020" }, { "description": "Valid - multiple years", - "data": [ "2020", "2021", "2022" ], - "valid": true + "valid": true, + "data": "2020 2021 2022" }, { - "description": "Valid - years with timezone", - "data": [ "2023Z", "2024+01:00" ], - "valid": true + "description": "Valid - negative and long years", + "valid": true, + "data": "-1999 1000 12026" }, { - "description": "Valid - negative year", - "data": [ "-1999" ], - "valid": true + "description": "Valid - empty list", + "valid": true, + "data": "" }, { - "description": "Valid - empty array", - "data": [], - "valid": true + "description": "Valid - surrounding whitespace", + "valid": true, + "data": " 2020 2021 " }, { - "description": "Invalid - year 0000", - "data": [ "0000" ], - "valid": false + "description": "Invalid - timezone designator", + "valid": false, + "data": "2024Z" }, { - "description": "Invalid - non-string year", - "data": [ 2023 ], - "valid": false + "description": "Invalid - three digit year", + "valid": false, + "data": "202" }, { - "description": "Invalid - not an array", - "data": "2023", - "valid": false + "description": "Invalid - comma separated", + "valid": false, + "data": "2020,2021" }, { - "description": "Invalid - null", - "data": null, - "valid": false + "description": "Invalid - JSON array of years", + "valid": false, + "data": [ "2020", "2021" ] + }, + { + "description": "Invalid - number", + "valid": false, + "data": 2020 } ] } diff --git a/test/xbrl/instance/2003/any-uri-item-type.test.json b/test/xbrl/instance/2003/any-uri-item-type.test.json index 8ee15a31..04dd898a 100644 --- a/test/xbrl/instance/2003/any-uri-item-type.test.json +++ b/test/xbrl/instance/2003/any-uri-item-type.test.json @@ -22,9 +22,9 @@ "valid": true }, { - "description": "Invalid - URI with spaces", + "description": "Valid - spaces are within the XSD anyURI lexical space", "data": "http://example.com/path with spaces", - "valid": false + "valid": true }, { "description": "Invalid - number instead of string",