我正在嘗試使用www.hl7.org/fhir/json.html中定義的JSON模式,例如www.hl7.org/fhir/Patient.schema.json。所有FHIR JSON模式不驗證
的模式開頭:
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://hl7.org/fhir/json-schema/Patient",
"$ref": "#/definitions/Patient",
"description": "see http://hl7.org/fhir/json.html#schema for information
about the FHIR Json Schemas",
"definitions": {
"Patient": {
"allOf": [
{
"$ref": "DomainResource#/definitions/DomainResource"
},
當我粘貼到此[www.jsonschemavalidator.net] [3]時,得到錯誤
錯誤時解決方案參考「#/定義/病人。路徑'',第1行,第1位。
如果我在「Patient」定義中移動第4行(「我可以正確驗證一些示例JSON數據。
{
"$schema": "http://json-schema.org/draft-04/schema#",
"id": "http://hl7.org/fhir/json-schema/Patient",
"description": "see http://hl7.org/fhir/json.html#schema for information
about the FHIR Json Schemas",
"definitions": {
"Patient": {
"$ref": "#/definitions/Patient",
"allOf": [
{
"$ref": "DomainResource#/definitions/DomainResource"
},
但是,我注意到在http://hl7.org/fhir/json.html定義的每個JSON模式都是這樣構造的。 HL7 JSON模式中的錯誤,還是www.jsonschemavalidator.net解析這些JSON模式的錯誤?
我的$裁判的理解是, 「$ REF」: 「#/定義/病人」 着眼於爲基本URL,在這種情況下是最近的父ID:
「hl7.org/fhir/JSON-模式/病人」。
該URL應該服務於www.hl7.org/fhir/Patient.schema.json,它來自根元素,它應該有一個schema元素#/ definitions/Patient,它對應於定義了$ ref的當前元素。所以看起來$ ref的正確位置應該在#/ definitions/Patient中,而不是位於ref的當前位置的上層根目錄#/ location中。
請參閱此處的相關對話:https://gitter.im/ajv-validator/ajv?at=58f484c208c00c092a8a5787 - 不確定它是同一問題,雖然 – esp
我沒有按照您的方式閱讀json模式規範。我認爲模式是正確的。您對模式的「更正」意味着任何json都是有效的 –
我正在跟進https://groups.google.com/forum/#!forum/json-schema。隨意加入那裏 –