-
-
Notifications
You must be signed in to change notification settings - Fork 114
Open
Description
I'm trying to validate JSON snippets against the DAP JSON schema: https://microsoft.github.io/debug-adapter-protocol/debugAdapterProtocol.json
Each type of message is a separate definition. I can extract and compile the relevant definition, but references are not resolved. I think I need to use the with_document function, but I'm not sure what the ID is supposed to be.
fn main() {
let schema = include_str!("../debugAdapterProtocol.json");
let schema: Value = serde_json::from_str(schema).unwrap();
// Get the specific definition from the schema
let next_request_schema = schema.get("definitions").unwrap().get("NextRequest").unwrap().clone();
// Compile this specific schema
let compiled = JSONSchema::options()
.should_validate_formats(true)
.should_ignore_unknown_formats(false)
.with_document("#".to_string(), schema)
.compile(&next_request_schema)
.unwrap();
let instance = json!({
"seq": 153,
"type": "request",
"command": "next",
"arguments": {
"threadId": 3
}
});
let result = compiled.validate(&instance);
if let Err(errors) = result {
for error in errors {
println!("Validation error: {}", error);
println!("Instance path: {}", error.instance_path);
}
}
}This results in
Validation error: Invalid reference: json-schema:///#/definitions/Request
Instance path:
Validation error: Invalid reference: json-schema:///#/definitions/NextArguments
Instance path:
I tried an empty string as well, but that didn't work either. Any clues?
Metadata
Metadata
Assignees
Labels
No labels