Class JSONSchema
Extends
JSONInstance.
Defined in: jsv.js.
Constructor Attributes | Constructor Name and Description |
---|---|
JSONSchema(env, json, uri, schema)
This class binds a JSONInstance with a JSONSchema to provided context aware methods.
|
Method Attributes | Method Name and Description |
---|---|
getAttribute(key, arg)
Returns the value of the provided attribute name.
|
|
Returns all the attributes of the schema.
|
|
getLink(rel, instance)
Convenience method for retrieving a link or link object from a schema.
|
|
getReference(name)
Returns the value of the provided reference name.
|
|
Returns the schema of the schema.
|
|
setReference(name, uri)
Set the provided reference to the given value.
|
|
validate(instance, report, parent, parentSchema, name)
Validates the provided instance against the target schema and returns a Report.
|
- Methods borrowed from class JSONInstance:
- equals, getEnvironment, getProperties, getProperty, getPropertyNames, getType, getURI, getValue, getValueOfProperty, resolveURI
Class Detail
JSONSchema(env, json, uri, schema)
This class binds a JSONInstance with a JSONSchema to provided context aware methods.
- Parameters:
- {Environment} env
- The environment this schema belongs to
- {JSONInstance|Any} json
- The value of the schema
- {String} uri Optional
- The URI of the schema. If undefined, the URI will be a randomly generated UUID.
- {JSONSchema|Boolean} schema Optional
- The schema to bind to the instance. If
undefined
, the environment's default schema will be used. Iftrue
, the instance's schema will be itself.
Method Detail
{JSONSchema|Any}
getAttribute(key, arg)
Returns the value of the provided attribute name.
This method is different from JSONInstance#getProperty as the named property is converted using a parser defined by the schema's schema before being returned. This makes the return value of this method attribute dependent.
- Parameters:
- {String} key
- The name of the attribute
- {Any} arg Optional
- Some attribute parsers accept special arguments for returning resolved values. This is attribute dependent.
- Returns:
- {JSONSchema|Any} The value of the attribute
{Object}
getAttributes()
Returns all the attributes of the schema.
- Returns:
- {Object} A map of all parsed attribute values
{String|Object|undefined}
getLink(rel, instance)
Convenience method for retrieving a link or link object from a schema.
This method is the same as calling
schema.getAttribute("links", [rel, instance])[0];
.
- Parameters:
- {String} rel
- The link relationship
- {JSONInstance} instance Optional
- The instance to resolve any URIs from
- Returns:
- {String|Object|undefined} If
instance
is provided, a string containing the resolve URI of the link is returned. Ifinstance
is not provided, a link object is returned with details of the link. If no link with the provided relationship exists,undefined
is returned.
{String}
getReference(name)
Returns the value of the provided reference name.
- Parameters:
- {String} name
- The name of the reference
- Returns:
- {String} The value of the provided reference name
{JSONSchema}
getSchema()
Returns the schema of the schema.
- Returns:
- {JSONSchema} The schema of the schema
setReference(name, uri)
Set the provided reference to the given value.
References are used for establishing soft-links to other JSONSchemas. Currently, the following references are natively supported:
References are used for establishing soft-links to other JSONSchemas. Currently, the following references are natively supported:
full
- The value is the URI to the full instance of this instance.
describedby
- The value is the URI to the schema of this instance.
- Parameters:
- {String} name
- The name of the reference
- {String} uri
- The URI of the schema to refer to
{Report}
validate(instance, report, parent, parentSchema, name)
Validates the provided instance against the target schema and returns a Report.
- Parameters:
- {JSONInstance|Any} instance
- The instance to validate; may be a JSONInstance or any JavaScript value
- {Report} report Optional
- A Report to concatenate the result of the validation to. If
undefined
, a new Report is created. - {JSONInstance} parent Optional
- The parent/containing instance of the provided instance
- {JSONSchema} parentSchema Optional
- The schema of the parent/containing instance
- {String} name Optional
- The name of the parent object's property that references the instance
- Returns:
- {Report} The result of the validation