JSON Schema Reader

This document will lay out everything that is supported and limitations with the reader. Features that dont have support will gain support with new patches. Currently we ONLY support schema version of draft 7.

Annotation Keywords

Annotations are not included for generation

Object Type
additionalProperties Keyword

This keyword will always evaluate to false so no random additional properties will be generated by the reader and only the specified properties in the "properties" object will get generated.

required Keyword

This keyword is supported. Fields marked as "required" but not mentioned in "properties" will produce a "const" tree node.

patternProperties Keyword

"patternProperties" keyword is ignored. This feature will be supported with regular expression in later patch

propertyNames Keyword

This keyword is ignored, and will use the keys specified by the "properties" keyword instead even if it does not comply with the "propertyNames" regex pattern. If nothing is in "properties" then an empty object is returned, This feature is considered for future patches

"pattern" keyword is therefore also ignored for this patch

minProperties & maxProperties Keyword

This keyword is not fully supported, the generated object count will be based on Math.floor((min + max) / 2). range generation will be supported in future patches

dependencies Keyword

This keyword is ignored because all the fields specified in "properties" keyword will be used in the generator so this keyword has no effect,

Array Type
items & contains Keyword

For array types if items/contains keyword is not defined then an empty array will always be returned. No random element will be generated.

If contains and items attribute are specified at the same time, contains will be ignored as list has higher precedent over contains. This usually shouldnt happen as only one of the attribute should appear along, however if they do appear together they must have the same type otherwise no Json format will return true.

uniqueItems Keyword

keyword is ignored in current patch and will be added in later patches

additionalItems Keyword

The "additionalItems" property will always evalute to false similar to additionalProperties

String Type
maxLength & minLength Keyword

This keyword is supported for normal strings. But does not yet have support for pattern.

format Keyword

idn formats - are not supported as only English is currently supported. The feature will be added in when locale is added to the software.

uri formats - Any uri format is replaced with URL as uri data is not supported, this will change if uri is a supported data type.

iri format - international version of uri, same as uri will get support if uri data type is supported

pattern Keyword

"pattern" keyword is supported

Reference & Pointers
ref Keyword

This is supported. (file uri and external url are both supported). We currently dont support circular references

JSON Pointer

This is supported

Media Keywords

Any media keywords are not supported at the moment and will gain support in later patches.

Combining Schemas
allOf, anyOf, oneOf, not Keywords

allOf , anyOf , oneOf keywords are now supported. oneOf currently behaves exactly like anyOf but we will do our best to have it work correctly in future patches.

Conditional schemas
if, else

Conditional schemas will have support in later patches