JsonSchema class

Constructed with a json schema, either as string or Map. Validation of the schema itself is done on construction. Any errors in the schema result in a FormatException being thrown.

Properties

additionalItemsBool → bool?
Whether additional items are allowed.
no setter
additionalItemsSchema → JsonSchema?
JsonSchema additional items should conform to.
no setter
additionalPropertiesBool → bool?
Whether additional properties, other than those specified, are allowed.
no setter
additionalPropertiesSchema → JsonSchema?
JsonSchema that additional properties must conform to.
no setter
allOf → List<JsonSchema>
A List<JsonSchema> which the value must conform to all of.
no setter
anchor → String?
A name used to reference a JsonSchema object.
no setter
anyOf → List<JsonSchema>
A List<JsonSchema> which the value must conform to at least one of.
no setter
comment → String?
Description of the JsonSchema.
no setter
constValue → dynamic
Const value of the JsonSchema.
no setter
contains → JsonSchema?
JsonSchema definition that at least one item must match to be valid.
no setter
contentEncoding → String?
Description of the JsonSchema.
no setter
contentMediaType → String?
Description of the JsonSchema.
no setter
contentSchema → String?
Description of the JsonSchema.
no setter
customAttributeValidators → Map<String, ValidationContext Function(ValidationContext, Object)>
The set of functions to validate custom keywords.
no setter
customFormats → Map<String, ValidationContext Function(ValidationContext, String)>
The set of functions to validate custom formats.
no setter
defaultValue → dynamic
Default value of the JsonSchema.
no setter
definitions → Map<String, JsonSchema>
Included JsonSchema definitions.
no setter
defs → Map<String, JsonSchema>
Included JsonSchema $defs.
no setter
deprecated → bool?
Whether the JSON Schema is deprecated.
no setter
description → String?
Description of the JsonSchema.
no setter
dynamicAnchor → String?
A name used to reference a JsonSchema object.
no setter
dynamicRef → Uri?
A DynamicRef to the URI of the JsonSchema.
no setter
elseSchema → JsonSchema?
A JsonSchema used for validataion if the schema doesn't validate against the 'if' schema.
no setter
enumValues → List?
Possible values of the JsonSchema.
no setter
examples → List
List of example instances for the JsonSchema.
no setter
exclusiveMaximum → num?
The value of the exclusiveMaximum for the JsonSchema, if any exists.
no setter
exclusiveMinimum → num?
The value of the exclusiveMaximum for the JsonSchema, if any exists.
no setter
format → String?
Pre-defined format (i.e. date-time, email, etc) of the JsonSchema value.
no setter
hasConst → bool
Whether or not const is set, we need this since const can be null and valid.
no setter
hasExclusiveMaximum → bool
Whether the maximum of the JsonSchema is exclusive.
no setter
hasExclusiveMinimum → bool
Whether the minimum of the JsonSchema is exclusive.
no setter
hashCode → int
The hash code for this object.
no setteroverride
id → Uri?
ID of the JsonSchema.
no setter
ifSchema → JsonSchema?
A JsonSchema that conditionally decides if validation should be performed against the 'then' or 'else' schema.
no setter
items → JsonSchema?
Single JsonSchema sub items of this JsonSchema must conform to. Note: This has subtly changed in draft 2020.
no setter
itemsList → List<JsonSchema?>?
Ordered list of JsonSchema which the value of the same index must conform to.
no setter
maxContains → int?
The maximum number of elements in the list that are valid against the schema for contains
no setter
maximum → num?
Maximum value of the JsonSchema value.
no setter
maxItems → int?
The maximum number of items allowed.
no setter
maxLength → int?
Maximum length of the JsonSchema value.
no setter
maxProperties → int?
The maximum number of properties allowed.
no setter
metaschemaVocabulary → Map<Uri, bool>?
The vocabularies defined by the metaschema of this JsonSchema.
no setter
minContains → int?
The minimum number of elements in the list that are valid against the schema for contains
no setter
minimum → num?
Minimum value of the JsonSchema value.
no setter
minItems → int?
The minimum number of items allowed.
no setter
minLength → int?
Minimum length of the JsonSchema value.
no setter
minProperties → int
The minimum number of properties allowed.
no setter
multipleOf → num?
The number which the value of the JsonSchema must be a multiple of.
no setter
notSchema → JsonSchema?
A JsonSchema which the value must NOT be.
no setter
oneOf → List<JsonSchema>
A List<JsonSchema> which the value must conform to at least one of.
no setter
parent → JsonSchema?
The parent JsonSchema for this JsonSchema.
no setter
path → String?
The path of the JsonSchema within the root JsonSchema.
no setter
pattern → RegExp?
The regular expression the JsonSchema value must conform to.
no setter
patternProperties → Map<RegExp, JsonSchema>
Map of JsonSchemas for properties, based on RegExps keys.
no setter
prefixItems → List<JsonSchema>?
Ordered list of JsonSchema which the value of the same index must conform to. Used in draft2020-12 https://json-schema.org/draft/2020-12/json-schema-core.html#rfc.section.10.3.1.1
no setter
properties → Map<String, JsonSchema>
Map of JsonSchemas for properties, by String key.
no setter
propertyDependencies → Map<String, List<String>>
Map of property dependencies by property name.
no setter
propertyName → String?
Name of the property of the current JsonSchema within its parent.
no setter
propertyNamesSchema → JsonSchema?
JsonSchema that property names must conform to.
no setter
readOnly → bool
Whether the JSON Schema is read-only.
no setter
recursiveAnchor → bool
Whether the JsonSchema is a recursive anchor point or not.
no setter
recursiveRef → Uri?
RecursiveRef to the URI of the JsonSchema.
no setter
ref → Uri?
Ref to the URI of the JsonSchema.
no setter
requiredOnParent → bool
Whether the JsonSchema is required on its parent.
no setter
requiredProperties → List<String>?
Properties that must be inclueded for the JsonSchema to be valid.
no setter
root → JsonSchema?
The root JsonSchema for this JsonSchema.
no setter
runtimeType → Type
A representation of the runtime type of the object.
no setterinherited
schemaBool → bool?
JSON of the JsonSchema as a bool. Only this value or _schemaMap should be set, not both.
no setter
schemaDependencies → Map<String, JsonSchema>
Map of schema dependencies by property name.
no setter
schemaMap → Map?
JSON of the JsonSchema as a Map. Only this value or _schemaBool should be set, not both.
no setter
schemaVersion → SchemaVersion
JSON Schema version used.
no setter
thenSchema → JsonSchema?
A JsonSchema used for validation if the schema also validates against the 'if' schema.
no setter
title → String?
Title of the JsonSchema.
no setter
type → SchemaType?
Single allowable type for the JsonSchema.
no setter
typeList → List<SchemaType?>?
List of allowable types for the JsonSchema.
no setter
unevaluatedItems → JsonSchema?
JsonSchema of unevaluated items
no setter
unevaluatedProperties → JsonSchema?
JsonSchema that unevaluated properties must conform to.
no setter
uniqueItems → bool
Whether the items in the list must be unique.
no setter
vocabulary → Map<Uri, bool>?
The vocabularies defined by this JsonSchema.
no setter
writeOnly → bool
Whether the JSON Schema is write-only.
no setter

Methods

noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
propertyRequired(String? property) → bool
Whether a given property is required for the JsonSchema instance to be valid.
resolveDynamicAnchor(String dynamicAnchor, {JsonSchema? dynamicParent}) → JsonSchema?
Get a JsonSchema from the dynamicParent with the given anchor. Returns null if none exists.
resolvePath(Uri? path) → JsonSchema
Get a nested JsonSchema from a path.
toJson() → String
JSON string represenatation of the schema.
toString() → String
A string representation of this object.
override
validate(dynamic instance, {bool parseJson = false, bool? validateFormats}) → ValidationResults
Validate instance against this schema, returning the result with information about any validation errors or warnings that occurred.
validateWithResults(dynamic instance, {bool parseJson = false, bool? validateFormats}) → ValidationResults

Operators

operator ==(Object other) → bool
The equality operator.
override

Static Methods

create(Object schema, {SchemaVersion? schemaVersion, Uri? fetchedFromUri, RefProvider? refProvider, List<CustomVocabulary>? customVocabularies, Map<String, ValidationContext Function(ValidationContext, String)> customFormats = const {}}) → JsonSchema
Create a schema from JSON data.
createAsync(Object? schema, {SchemaVersion? schemaVersion, Uri? fetchedFromUri, RefProvider? refProvider, List<CustomVocabulary>? customVocabularies, Map<String, ValidationContext Function(ValidationContext, String)> customFormats = const {}}) → Future<JsonSchema>
Create a schema from a JSON data.
createFromUrl(String schemaUrl, {SchemaVersion? schemaVersion, List<CustomVocabulary>? customVocabularies, Map<String, ValidationContext Function(ValidationContext context, String? instanceData)> customFormats = const {}}) → Future<JsonSchema>
Create a schema from a URL.
empty({SchemaVersion schemaVersion = SchemaVersion.defaultVersion}) → JsonSchema
Create an empty schema.