Every File
in a JsonSchema
object contains an array of Resource
objects. Each Resource
object represents a JSON Schema Resource in the file. Every file has at least one resource.
TIP: Read Understanding Schema Structure to learn how all the different objects in our object model are related.
You can view the source code for the JsonSchema
object here.
schema
(JsonSchema
object)
This is the JsonSchema
object that contains this resource.
if (resource.schema.rootResource === resource) {
console.log("This is the root resource of the schema");
}
file
(File
object)
This is the File
object that contains this resource.
console.log(`This resource is in ${resource.file.path}`);
uri
(URL
object)
The absolute, canonical URI (Uniform Resource Identifier) of the resource. Note that this does not necessarily correspond to a physical file on disk, or a URL (Uniform Resource Locator) that can be downloaded.
console.log(resource.uri.href);
locationInFile
(Pointer
object)
A JSON Pointer that indicates the resource's location in the file.
console.log(`This resource is at ${resource.locationInFile.path} in ${resource.file}`);
The resource data. This can be any JavaScript value, but will usually be one of the following:
-
object
If the resource is a JSON Schema document that has already been parsed. -
string
If the resource is in text-based data that has not yet been parsed. This includes JSON, YAML, HTML, SVG, CSV, plain-text, etc. -
ArrayBuffer
If the resource contains binary data, such as an image.
resource.data = {
$id: "person",
title: "Person",
properties: {
name: { type: "string" },
age: { type: "integer" },
}
};
anchors
(array of Anchor
objects)
An array of all the JSON Schema anchors (i.e. $anchor
) in the resource.
for (let anchor of resource.anchors) {
console.log(anchor.uri.href);
}
references
(iterable of Reference
objects)
An array of all the JSON Schema references (i.e. $ref
) in the resource.
for (let ref of resource.references) {
console.log(`${ref.locationInFile.path} points to ${ref.targetURI.href}`);
}