Comments (7)
@pvorb I can’t duplicate this problem. First, are you sure the $ref
is correct?
In the sample above the host name is [a real host name] but you mentioned that the schema hostname was example.org
. Maybe you just forgot to obscure the hostname in the sample code above? Or maybe it’s wrong in the schema.
Here’s the test code I used, and it worked:
var JaySchema = require('jayschema')
;
var addressSchema = {
"id": "https://example.org/api/address.schema.json",
"type": "string"
};
var masterSchema = {
"title": "user",
"id": "https://example.org/api/user.schema.json",
"properties": {
"addresses": {
"type": "array",
"items": {
"$ref": "https://example.org/api/address.schema.json"
}
}
}
};
var data = {
"addresses": [
"address1",
"address2",
"address3"
]
};
var js = new JaySchema();
console.log(js.register(addressSchema)); // prints []
console.log(js.validate(data, masterSchema)); // prints []
from jayschema.
Paul,
I’ve found that the getMissingSchemas()
method was incorrectly reporting some schemas as missing. Still, validation would have been successful. This wasn’t exactly the problem you reported, but maybe it was related. That bug has been fixed as of 0.1.3.
Regards,
Nate
from jayschema.
Thank you. It doesn't solve my problem, so there must still be some problem hidden in my implementation. I'll have a in-depth look on it.
Maybe you just forgot to obscure the hostname in the sample code above?
Exactly. :-) I updated the question. Can you please replace the domain in the answer above, since it shouldn't become public yet?
from jayschema.
It works with version 0.1.3 when I'm using getMissingSchemas()
instead of the result of js.register(schema)
. Maybe you should test the following:
var js = new JaySchema();
console.log(js.register(addressSchema)); // prints []
console.log(js.register(masterSchema)); // prints [ 'https://example.org/api/address.schema.json' ]
console.log(js.validate(data, masterSchema)); // prints []
I think the second log should print [] too.
from jayschema.
Sorry about that. It’s fixed in 0.1.4.
I went through the registry code and centralized the logic when checking for missing schemas, and made sure all checks use normalized ids. Added tests for this.
from jayschema.
Great, thanks. BTW: This may be interesting for you.
from jayschema.
Thanks for the pointer. Personally I thought validate(schema, data)
made more sense, but I specifically chose validate(data, schema)
to be compatible with other validators. Hopefully that will be helpful to you and others.
from jayschema.
Related Issues (20)
- Custom validation?
- Are custom formats supported? HOT 5
- Enum with null throwing error HOT 3
- Format "uri" is not throwing errors HOT 2
- validator._schemaRegistry not API ?
- Callback not invoked for undefined enum with custom loader HOT 2
- async callback
- Validator is not detecting bad enum value HOT 2
- Speed: the validator is-my-json-valid is thousands of times faster then jayschema HOT 3
- Support CLI usage HOT 1
- Validating schemas themselves HOT 3
- Combining oneOf + enum causes the rejection of enum fields
- error: Undefined should be an object
- Support browserify; get rid of dynamically loaded dependencies HOT 1
- validate hang HOT 1
- Leap seconds
- Line numbers?
- broken link
- TypeError: Cannot convert undefined or null to object HOT 1
- $ref with spaces does not work
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from jayschema.