commit | b4d7124a2f88e6a357c48eb383a6adcc57d6d5d7 | [log] [tgz] |
---|---|---|
author | Tim Olsen <tim.olsen@10gen.com> | Fri Sep 06 14:26:08 2013 -0400 |
committer | Tim Olsen <tim.olsen@10gen.com> | Fri Sep 06 14:26:08 2013 -0400 |
tree | f2e7670e71c03a768507aa88200679c2ad003d4b | |
parent | a31c68a20b204e83987490b1757f5674d4d00a04 [diff] |
Add better error messages during failure of an anyOf or oneOf by copying the error messages from the best matching subschema.
An implementation of JSON Schema, based on IETF's draft v4 - Go language
Functional, two features are missing : dependencies as schemas and id(s) as scope for references
Test phase : Passed 97% of Json Schema Test Suite
Internal improvements/refactoring in progress, anyway the interface will not change
package main import ( "github.com/sigu-399/gojsonschema" "fmt" ) func main() { schema, err := gojsonschema.NewJsonSchemaDocument("http://myhost/bla/schema1.json") // OR //schema, err := gojsonschema.NewJsonSchemaDocument("file:///home/me/myschemas/schema1.json") if err != nil { panic(err.Error()) } jsonToValidate, err := gojsonschema.GetHttpJson("http://myotherhost/blu/extract56.json") // OR //jsonToValidate, err := gojsonschema.GetFileJson("/home/billy/hotels.json") if err != nil { panic(err.Error()) } validationResult := schema.Validate(jsonToValidate) fmt.Printf("IsValid %v\n", validationResult.IsValid()) fmt.Printf("%v\n", validationResult.GetErrorMessages()) }
###Website http://json-schema.org
###Schema Core http://json-schema.org/latest/json-schema-core.html
###Schema Validation http://json-schema.org/latest/json-schema-validation.html
https://github.com/sigu-399/gojsonpointer
https://github.com/sigu-399/gojsonreference
gojsonschema uses the following test suite :