> On Jul 4, 2025, at 16:01, Jakub Zelenka <bu...@php.net> wrote: > > Hello, > > I would like introduce and open discussion for RFC proposing the addition of > JSON Schema validation support to JSON extension: > > https://wiki.php.net/rfc/json_schema_validation > > If this is successful, it should be just the first for further improvements > (see the future scope). > > Kind regards, > > Jakub
There are 9 versions of JSON Schema and 11 Internet-Drafts, all of which have expired. Many of these versions are still widely used in the wild (draft-04, draft-05, and draft-06 come to mind as heavily used, despite several newer versions). Which version do you plan to target with this RFC, or will it be able to parse all versions, depending on what the input has specified in the `$schema` properties? I’ve even seen multiple schema versions used within the same set of referenced documents, and as long as the parser knows how to handle all versions, it will parse things just fine. For the reference of others on the list, here’s what I mean by 9 versions and 11 I-Ds: * Version: 2020-12 - https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-01 - https://datatracker.ietf.org/doc/html/draft-bhutton-json-schema-00 * Version: 2019-09 - https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-02 * Version: draft-07 - https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-01 - https://datatracker.ietf.org/doc/html/draft-handrews-json-schema-00 * Version: draft-06 - https://datatracker.ietf.org/doc/html/draft-wright-json-schema-01 * Version: draft-05 - https://datatracker.ietf.org/doc/html/draft-wright-json-schema-00 * Version: draft-04 - https://datatracker.ietf.org/doc/html/draft-zyp-json-schema-04 * Version: draft-03 - https://datatracker.ietf.org/doc/html/draft-zyp-json-schema-03 * Version: draft-02 - https://datatracker.ietf.org/doc/html/draft-zyp-json-schema-02 * Version: draft-01 - https://datatracker.ietf.org/doc/html/draft-zyp-json-schema-01 Typically, when you create a JSON Schema document, you specify the `$schema` property, the value of which is a URI that refers to the schema version you’re using, like this: ``` { "$schema": "https://json-schema.org/draft/2020-12/schema" } ``` This lets the parser know what “flavor” of JSON Schema you’re using. The problem is that many parsers don’t understand all schema versions, and the most popular one in PHP (justinrainbow/json-schema <https://packagist.org/packages/justinrainbow/json-schema>) only supports draft-03 and draft-04, both well over 12 years old, at this point. Perhaps the JSON Schema library that is most robust and supports the latest versions is the opis/json-schema package <https://opis.io/json-schema/2.x/>. It supports draft-06, draft-07, 2019-09, and 2020-12, which is pretty much all the newer ones that justinrainbow/json-schema doesn’t support. I think your RFC needs to address all these versions and how you plan to address compatibility issues between them all. Since all the I-Ds have expired without a formal IETF RFC being voted on and passing, you should probably call attention to the fact that JSON Schema, while not moving much right now, is still a moving target and any new versions will require updates to the core to support them. Cheers, Ben
signature.asc
Description: Message signed with OpenPGP