-
Notifications
You must be signed in to change notification settings - Fork 91
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Validation errors on non-required fields #49
Comments
Hi @cappamontana, can you supply the object you're validating with the schema? Ideally make object and schema as small as possible to replicate your issue. For example, here's a testcase for issue #48 https://github.com/zaggino/z-schema/blob/master/test/issue_48.js |
I've just made a simple object so you can see the properties. I guess it is happening because of the empty string values. var website_users = { |
Ok, the validator is actually doing the right thing - once the properties are present in the object, they must validate. If you wanted to treat empty strings as non-existing properties, we'd need a special option for that, because this behaviour would not respect the json schema specification. Now there's another question, if we'd treat |
Yes if they are present they must validate, so I can understand somehow that the DATE field is not validating (because it's a string and not a date) but still these fields are optional and should not cause the complete json to fail. But more important, if we skip the date_of_birth property and look to i.e postcode, the regexp fails (which is right), but this shouldn't mean the rest of the json is not valid, since this is not a required field. |
JSON schema is specific that if one thing fails, everything fails. If a property is present, it needs to be validated even if it's an empty string. I could create option There is no state like |
If you're using this with a DB like MongoDB, I'd suggest to change the types from
to:
and instead of |
Hi Martin, Thanks for your message. I've fixed the problem by just mapping values to Thanks! On Wed, Aug 6, 2014 at 4:07 PM, Martin Zagora notifications@github.com
|
Hi Martin, One last thing...I'm getting the error below on
It seems like the \ from \s is skipped.
On Wed, Aug 6, 2014 at 4:28 PM, Tuncay Oner tuncayoner@gmail.com wrote:
|
If you have it in a JavaScript code, it needs to be correctly escaped like this: 42f8b74 |
Hi,
First of all, thanks for this great library!
I've encountered some problems validating a schema with optional/non-required properties.
I get this error:
errors: Array[2]
0: ValidationError
code: "FORMAT"
message: "date format validation failed: "
path: "#/date_of_birth"
1: ValidationError
code: "PATTERN"
message: "String does not match pattern: ^[1-9]{1}[0-9]{3} ?[A-Z]{2}$"
params: Object
path: "#/postcode"
valid: false
on this schema:
"website_users":
{
"$schema": "http://json-schema.org/schema#",
"description": "Schema for the website users context",
"type": "object",
"self": {
"vendor": "xxxx",
"name": "website_users",
"format": "jsonschema",
"version": "1-0-0"
},
"properties": {
I understand that the validation fails on these fields (because they are empty) but they are optional.
Thanks in advance!
The text was updated successfully, but these errors were encountered: