Skip to content

Roadmap

fge edited this page Nov 21, 2011 · 127 revisions

In 0.4

Instance-only validation

Right now, JsonValidator validates both the schema and the instance. Offer a mode which will allow to validate only the instance (of course, if the schema is wrong, behavior will be undefined).

DONE

Experimental draft v4 support

Even though it is not out yet, some features of draft v4 are already known: implement them

DONE

Account for $schema

This is very important, since in theory we can have schemas which will obey different versions of the draft. Switch validators etc when this keyword is encountered.

DONE

Ability to set the default schema version when no $schema is found

For now, it is draft v3 always. Some people may not want that.

DONE

Ability to register validators against a specific schema version

For now, it is linked to the default version. Some people may not want that.

And one or more from below

Section 6 of the draft

But first, understand that section and its implications...

Streaming validation

Right now the whole instance is read in memory before proceeding -- not a smart move if you want to validate really big stuff. Try and stream the process instead... Ouch. This means a redesign.

Format validators registration

The format keyword theoretically allows users to register their own formats. Allow that.

"Double only" floating numeric instance validation

Javascript is limited, by its specification, to operate on 64bit IEEE 754 numbers. The implementation handles numbers with an arbitrarily large precision by default, but this may be unneeded. Make a validation feature which will limit itself double only (at the cost of loss of precision for divisibleBy, of course...).

(I frankly hesitate to do this one: what would be the gain after all? If you use floating point numbers, chances are high you need the precision offered currently...)

Schema bundles

Provide some base schemas to avoid looking over the Web for them, among them the draft v3 schema.

(Hmm, what schemas? That doesn't seem like a good idea... This needs to be rephrased)

Clone this wiki locally