更新时间:2023-01-17 21:42:19
我的一个想法是浏览模式,如果有对外部文件的引用,则使用通用的
JsonSchemaResolver
是的,您需要知道您的架构所依赖的架构,首先解析它们并将其添加到JsonSchemaResolver
中.架构将使用其ID进行解析.
Yes, you need to know which schemas your schema depends on, parse those first and add them to a JsonSchemaResolver
. The schemas will be resolved using their IDs.
这是一个示例(使用draft-03语法):
Here's an example (using draft-03 syntax):
var baseSchema = JsonSchema.Parse(@"
{
""$schema"": ""http://json-schema.org/draft-03/schema#"",
""id"": ""http://mycompany/base-schema#"",
""type"": ""object"",
""properties"": {
""firstName"": { ""type"": ""string"", ""required"": true}
}
}
");
var resolver = new JsonSchemaResolver
{
LoadedSchemas = {baseSchema}
};
var derivedSchema = JsonSchema.Parse(@"
{
""$schema"": ""http://json-schema.org/draft-03/schema#"",
""id"": ""http://mycompany/derived-schema#"",
""type"": ""object"",
""extends"":{ ""$ref"": ""http://mycompany/base-schema#""},
""properties"": {
""lastName"": { ""type"": ""string"", ""required"": true}
}
}
", resolver);