-
Notifications
You must be signed in to change notification settings - Fork 398
Roadmap
Support both canonical addressing and inline schema addressing.
DONE: an addressing mode has to be specified when building a JsonSchemaFactory
, and SchemaContainer
has become an abstract class; one implementation does id
lookup. What is more, it is up to this class to resolve references and tell whether a given reference is contained within it.
RFC 3522 seems to require that emails have a domain part. RFC 1034 is unclear as to whether this is the case for hostnames.
Done: hostnames do not require more than one component, emails should have a domain part.
The $schema
keyword is not limited to what the draft defines, a custom URI can be provided to one's own schema (whether it be the core schema, the hyper schema etc).
Provide a means to support such custom schemas, starting with draft v4.
MOSTLY DONE: the implementation now has draft v4 support by default. Format attributes are still being worked on.
Not necessarily in order!
Right now, only the "current level" of the schema is checked. That is, with:
{
"properties": {
"p": { "type": "string" }
}
}
when starting from the root, only the correctness of properties
is checked, but the schema for p
is not.
Validating all of the schema at once instead unfortunately requires quite a lot of changes.
The definition of numeric value equality is that the mathematical value of numbers should be equal. But then it means 1.0
is equal to 1
.
Right now, the code considers these two as being unequal.
When reporting error messages, right now we only mention the keyword causing the failure. JSON Schema has title and description, but right now these are completely ignored (except at the syntax checking level).
On the other hand, since the implementation is purely server side, this feature may be done without. And the problem would then be to transmit these informations down the path (in ValidationContext
?), and insert them in messages.
Android is a platform with many potential uses for such a library. Check compatibility, and see the cost to make the library fully compatible.
It appears that it is already compatible, save for potential differences in delicate parts of the JDK, such as BigDecimal
. Jackson and Guava both work for Android and those are the only two dependencies of the core package.
Jackson is the library to use for anyone wanting to do JSON in Java, but there are plenty others. Design an interface of some sort so that people can transform their existing JSON data to JsonNode.
Probably required for Android support...
There already exists a toy implementation in test sources which can transform Gson's JsonElement
to JsonNode
and back, with tests, and it works quite well -- I fail to see how I would integrate that however
A neverending work!