我正在尝试对文档(例如护照)及其属性(名字,出生日期等)进行建模,并使用json schema
对其进行描述。
我想在运行时定义许多类型的文档,每个文档都作为单独的架构。
某些属性可以从多个文档中引用,例如护照和驾照中的firstName
,因此
为此创建一个单独的属性定义架构可能是明智的。
可以说,我有护照,其型号如下:
{
"owner": "<string>",
"type" : "<string>",
"salt" : <number>,
"attributes": {
"number" : {"value": "<string>", "salt": <number>}
"lastName" : {"value": "<string>", "salt": <number>},
"firstName" : {"value": "<string>", "salt": <number>},
"birthDate" : {"value": "<date>", "salt": <number>},
"nationality": {"value": "<string>", "salt": <number>},
}
}
每个属性都有“值”和“盐”,但是每个键(属性名)的“值”不同。 我的问题是,这种JSON文档的架构外观如何?
UPD :每个属性都有value
和salt
。盐对于所有属性都是完全相同的,但是value
是不同的。如果我手动指定每个属性都具有salt
和value
,那么我将得到大量的架构重复。有可能避免吗?
答案 0 :(得分:2)
您可以做很多事情来减少架构中的重复项。一种方法是使用{{ date_value|date:'m/d/Y' }}
关键字。另一种选择是使用let readPermissions = AMZNScopeFactory.scope(withName: "alexa::ask:skills:readwrite")
来验证跨多个属性的通用约束。
definitions
答案 1 :(得分:1)
对于JSON Schema的草案7(在撰写本文时为最新),假设您要使用对另一个包含属性定义的文件的引用,则可能需要执行以下操作。
{
"$schema": "http://json-schema.org/draft-07/schema#",
"properties": {
"number": {
"properties": {
"value": {...}, # Whatever you define as your schema for number/value.
"salt": {
"$ref": "externalRef/definitions/salt"
}
}
}
}
}