我正在尝试让Newtonsoft.Json.Schema在https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/schemas/v1.2/resourceListing.json#解析模式,但是它无法解析引用为resourceObject.json#的子模式。它正确地指出网址应该是https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/schemas/v1.2/resourceObject.json#但是无法加载它并出现此错误:
无法解析架构引用“https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/schemas/v1.2/resourceObject.json#”。路径'properties.apis.items',第10行,第22位。
我使用http://www.jsonschemavalidator.net/验证了两个模式,它似乎使用了我正在使用的相同库。我还使用我引用的架构(resourceListing.json)来验证我正在尝试验证的内容并且它有效。
我尝试使用this documentation中建议的JSchemaPreloadedResolver自己加载它,但这会导致完全相同的错误。这是我用RestSharp作为客户端库的代码。
var dependencyResolver = new JSchemaPreloadedResolver();
dependencyResolver.Add(
new Uri("https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/schemas/v1.2/resourceObject.json#"),
client.Get<string>("https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/schemas/v1.2/resourceObject.json#")
);
var schema = JSchema.Parse(client.Get<string>("https://raw.githubusercontent.com/OAI/OpenAPI-Specification/master/schemas/v1.2/resourceListing.json#"), dependencyResolver);