z-schema
z-schema copied to clipboard
Validation Problems - Bug or Seat to Keyboard Error?
I am getting an unexpected error. I am expecting the wrong type for the value of meta.domain. I am passing an object when it should expect a string in the array. However, it appears not to be utilizing the $ref's at all. What am I doing wrong?
I am using
var allSchemasValid = validator.validateSchema(schemas); // schemas defined below but in right spot in my code.
var valid = validator.validate(data, schemas[5]);
As in the example however,
Data:
{meta: {domain: [{id: "circusliving.ca"}]}, name: {en: "ddd"}, description: {en: "dddx"}}
Data Validation Error:
{ "code": "INVALID_SCHEMA",
"errors": [
{
"code": "OBJECT_ADDITIONAL_PROPERTIES",
"params": [
[
"description",
"name"
]
],
"message": "Additional properties not allowed: description,name",
"path": "#/",
"schemaId": "role"
}
]}
Schema Array:
[{
"_id" : ObjectId("59bbe6492b2a11bba572f6ba"),
"id" : "role",
"schema" : "role",
"collection" : "roles",
"title" : "Roles",
"type" : "object",
"properties" : {
"_id" : {
"type" : "string"
},
"meta" : {
"type" : "object",
"$ref" : "meta"
},
"allOf" : [
{
"$ref" : "thing"
},
{
"$ref" : "attachment"
},
{
"$ref" : "label"
}
],
"startDate" : {
"type" : "string"
},
"endDate" : {
"type" : "string"
},
"roleName" : {
"type" : "string"
}
},
"security" : {
"list" : [
"administrator",
"admin",
"root"
],
"read" : [
"administrator",
"admin",
"root"
],
"create" : [
"administrator",
"admin",
"root"
],
"update" : [
"administrator",
"admin",
"root"
],
"delete" : [
"administrator",
"admin",
"root"
],
"schema" : [
"everyone"
]
},
"additionalProperties" : false,
"versioning" : true
},
{
"_id" : "59bd21fe2b2a11bba57506d9",
"id" : "meta",
"schema" : "meta",
"title" : "meta data",
"type" : "object",
"properties" : {
"version" : {
"type" : "integer"
},
"state" : {
"type" : "string"
},
"createdBy" : {
"type" : "string"
},
"createdOn" : {
"type" : "string"
},
"modifiedBy" : {
"type" : "string"
},
"modifiedOn" : {
"type" : "string"
},
"contributors" : {
"type" : "array",
"items" : [
{
"type" : "string"
}
]
},
"domain" : {
"type" : "array",
"items" : [
{
"type" : "string",
"format" : "hostname"
}
]
}
},
"isDefinition" : true
},
{
"_id" : ObjectId("59bd23b72b2a11bba5750a12"),
"id" : "thing",
"schema" : "thing",
"title" : "thing the base for all schemas",
"type" : "object",
"properties" : {
"id" : {
"type" : "object",
"$ref" : "lString"
},
"title" : {
"type" : "object",
"$ref" : "lString"
},
"identifier" : {
"type" : "string",
"format" : "uri"
},
"name" : {
"type" : "object",
"$ref" : "lString"
},
"alternateName" : {
"type" : "object",
"$ref" : "lString"
},
"alternateType" : {
"type" : "string",
"format" : "strict-uri"
},
"description" : {
"type" : "object",
"$ref" : "lString"
},
"disambiguatingDescription" : {
"type" : "object",
"$ref" : "lString"
},
"image" : {
"type" : "string",
"format" : "strict-uri"
},
"sameAs" : {
"type" : "string",
"format" : "strict-uri"
}
},
"isDefinition" : true
},
{
"_id" : ObjectId("59bd26ea2b2a11bba575100c"),
"id" : "attachment",
"schema" : "attachment",
"title" : "Attachments",
"type" : "object",
"properties" : {
"attachement" : {
"type" : "array",
"name" : "attachements",
"items" : [
{
"type" : "string"
}
]
}
},
"isDefinition" : true
},
{
"_id" : ObjectId("59bd27392b2a11bba57510a0"),
"id" : "label",
"schema" : "label",
"title" : "Labels",
"type" : "object",
"properties" : {
"label" : {
"type" : "array",
"name" : "labels",
"items" : [
{
"type" : "string"
}
]
}
},
"isDefinition" : true
},
{
"_id" : ObjectId("59be67f62b2a11bba577452d"),
"id" : "lString",
"schema" : "lString",
"title" : "Language String",
"type" : "object",
"properties" : {
"ar" : {
"type" : "string"
},
"zh" : {
"type" : "string"
},
"en" : {
"type" : "string"
},
"fr" : {
"type" : "string"
},
"ru" : {
"type" : "string"
},
"es" : {
"type" : "string"
}
},
"isDefinition" : true
}]