Я смотрю версию кода валидатора 2.2.6 из github. Я не изменил код из репозитория "https://github.com/fge/json-schema-validator.git"
Я не могу запустить пример 1, когда тестирую его на своей схеме json, которая ссылается на второй файл схемы (я могу заставить его работать, когда прибегаю к жестко закодированному URI).
Я просто переназначил "com.github.fge.jsonschema.examples.Example1.java" для использования схемы json моей команды и файлов json. Я построил проект и скопировал файлы схемы json в «json-schema-validator\bin\com\github\fge\jsonschema\examples» (все в одной папке, аналогично примерам fstab)
Секция верхнего уровня прилагается,
},
"MovingWindow": {
"description": "Is this an moving window measure?",
"type": "boolean"
}
},
"minItems": 1,
"uniqueItems": true
},
"RealTimeProfile": {
"$ref": "rtp.json#"
}
},
"required": [
"MeasureTemplateId",
"MeasureInstanceId",
но я не могу получить чтение нижнего уровня, 2-й файл схемы ("rtp.json"), чтобы быть распознанным и работать правильно. Я вижу следующую ошибку:
Исключение в потоке «основной» com.github.fge.jsonschema.core.exceptions.ProcessingException: фатальный: URI «rtp.json#» не является абсолютным уровнем: «фатальный» uri: «rtp.json#»
Фрагмент моего кода:
File jsonFile = new File("CumulativeCountBad.json");
File jsonSchemaFile = new File("main.json");
JsonNode good = JsonLoader.fromFile(jsonFile);
JsonNode mainSchema = JsonLoader.fromFile(jsonSchemaFile);
final JsonSchemaFactory factory = JsonSchemaFactory.byDefault();
final JsonSchema schema = factory.getJsonSchema(mainSchema);
ProcessingReport report;
report = schema.validate(good);
System.out.println("good: " + report);
Моя проблема похожа на следующую проблему, но я, кажется, не могу запустить эту вещь, когда я устанавливаю ссылку на: "$ref": "rtp.json#"
https://github.com/fge/json-schema-validator/issues/94
Любая помощь приветствуется. PS - я новичок в Java, извиняюсь, если есть что-то очевидное, что я пропустил. Спасибо.