adiwg-mdjson_schemas 1.0.0rc1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (76) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +18 -0
  3. data/.travis.yml +7 -0
  4. data/CREDITS +3 -0
  5. data/Gemfile +4 -0
  6. data/LICENSE +24 -0
  7. data/README.md +36 -0
  8. data/Rakefile +12 -0
  9. data/adiwg-json_schemas.gemspec +25 -0
  10. data/examples/additionalDocumentation.json +61 -0
  11. data/examples/address.json +10 -0
  12. data/examples/associatedResource.json +119 -0
  13. data/examples/citation.json +128 -0
  14. data/examples/contact.json +205 -0
  15. data/examples/contactRef.json +12 -0
  16. data/examples/dataDictionary.json +547 -0
  17. data/examples/dataQuality.json +272 -0
  18. data/examples/date.json +19 -0
  19. data/examples/distributor.json +113 -0
  20. data/examples/extent_linestring.json +288 -0
  21. data/examples/extent_point.json +246 -0
  22. data/examples/extent_polygon.json +353 -0
  23. data/examples/format.json +14 -0
  24. data/examples/full_example.json +2844 -0
  25. data/examples/full_example2.json +2325 -0
  26. data/examples/geojson.json +446 -0
  27. data/examples/graphicOverview.json +28 -0
  28. data/examples/hierarchyLevel.json +90 -0
  29. data/examples/keywords.json +144 -0
  30. data/examples/lcc_project_example.json +326 -0
  31. data/examples/legalConstraints.json +17 -0
  32. data/examples/maintInfo.json +34 -0
  33. data/examples/metadataInfo.json +103 -0
  34. data/examples/minimum_example.json +35 -0
  35. data/examples/onlineResource.json +17 -0
  36. data/examples/resolution.json +9 -0
  37. data/examples/resourceInfo.json +1264 -0
  38. data/examples/resourceMaintenance.json +10 -0
  39. data/examples/securityConstraints.json +13 -0
  40. data/examples/spatialRef.json +14 -0
  41. data/examples/taxonomy.json +197 -0
  42. data/examples/temporalElement.json +29 -0
  43. data/examples/uri.json +16 -0
  44. data/examples/usage.json +35 -0
  45. data/examples/verticalExtent.json +18 -0
  46. data/lib/adiwg-mdjson_schemas.rb +1 -0
  47. data/lib/adiwg/mdjson_schemas.rb +7 -0
  48. data/lib/adiwg/mdjson_schemas/utils.rb +20 -0
  49. data/lib/adiwg/mdjson_schemas/validator.rb +42 -0
  50. data/lib/adiwg/mdjson_schemas/version.rb +6 -0
  51. data/schema/schema.json +64 -0
  52. data/schema/schema/citation.json +186 -0
  53. data/schema/schema/contact.json +255 -0
  54. data/schema/schema/dataDictionary.json +209 -0
  55. data/schema/schema/dataQuality.json +159 -0
  56. data/schema/schema/distributor.json +171 -0
  57. data/schema/schema/extent.json +214 -0
  58. data/schema/schema/geojson/bbox.json +14 -0
  59. data/schema/schema/geojson/crs.json +99 -0
  60. data/schema/schema/geojson/geojson.json +194 -0
  61. data/schema/schema/geojson/geometry.json +203 -0
  62. data/schema/schema/graphicOverview.json +42 -0
  63. data/schema/schema/keyword.json +39 -0
  64. data/schema/schema/maintInfo.json +43 -0
  65. data/schema/schema/metadata.json +173 -0
  66. data/schema/schema/onlineResource.json +42 -0
  67. data/schema/schema/resolution.json +51 -0
  68. data/schema/schema/resourceConstraint.json +108 -0
  69. data/schema/schema/resourceInfo.json +305 -0
  70. data/schema/schema/taxonomy.json +122 -0
  71. data/schema/schema/usage.json +39 -0
  72. data/templates/mdJson_template.json +1065 -0
  73. data/test/draft-04.json +189 -0
  74. data/test/tc_schemas.rb +210 -0
  75. data/test/tc_utils.rb +27 -0
  76. metadata +178 -0
@@ -0,0 +1,186 @@
1
+ {
2
+ "id": "citation.json#",
3
+ "$schema": "http://json-schema.org/draft-04/schema#",
4
+ "description": "schema for citation",
5
+ "translation": {
6
+ "ISO 19115-2": ["CI_Citation"]
7
+ },
8
+ "type": "object",
9
+ "required": ["title", "date"],
10
+ "allOf": [
11
+ {
12
+ "$ref": "#/definitions/citationFull"
13
+ }
14
+ ],
15
+ "definitions": {
16
+ "citationBase": {
17
+ "title": "base citation",
18
+ "description": "A minimal citation object supporting only basic attributes.",
19
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/citation/identifier/0/authority",
20
+ "translation": {
21
+ "FGDC CSDGM": ["idinfo > citation > citeinfo"]
22
+ },
23
+ "type": "object",
24
+ "required": ["title"],
25
+ "properties": {
26
+ "title": {
27
+ "type": "string",
28
+ "description": "Name by which the cited resource is known.",
29
+ "translation": {
30
+ "ISO 19115-2": ["CI_Citation > title"],
31
+ "FGDC CSDGM": ["idinfo > citation > citeinfo > title"]
32
+ }
33
+ },
34
+ "date": {
35
+ "type": "array",
36
+ "description": "Date referenced to the cited resource.",
37
+ "translation": {
38
+ "ISO 19115-2": ["CI_Citation > date > CI_Date"]
39
+ },
40
+ "minItems": 1,
41
+ "items": {
42
+ "type": "object",
43
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/citation/date",
44
+ "required": ["date", "dateType"],
45
+ "properties": {
46
+ "date": {
47
+ "translation": {
48
+ "ISO 19115-2": ["CI_Date > date"],
49
+ "FGDC CSDGM": ["idinfo > citation > citeinfo > pubdate"]
50
+ },
51
+ "$ref": "../schema.json#/definitions/date"
52
+ },
53
+ "dateType": {
54
+ "type": "string",
55
+ "description": "The type of date in the context of the citation.",
56
+ "translation": {
57
+ "ISO 19115-2": ["CI_Date > dateType [CI_DateTypeCode]"]
58
+ }
59
+ }
60
+ }
61
+ }
62
+ },
63
+ "responsibleParty": {
64
+ "type": "array",
65
+ "description": "Identification of, and means of communication with, person(s) and organization(s) associated with the cited resource.",
66
+ "translation": {
67
+ "ISO 19115-2": ["CI_Citation > citedResponsibleParty > CI_ResponsibleParty"],
68
+ "FGDC CSDGM": ["idinfo > ptcontac > cntinfo"]
69
+ },
70
+ "minItems": 1,
71
+ "items": {
72
+ "$ref": "contact.json#/definitions/contactRef"
73
+ }
74
+ },
75
+ "onlineResource": {
76
+ "type": "array",
77
+ "description": "On-line information related to the citation.",
78
+ "translation": {
79
+ "ISO 19115-2": ["CI_Citation > citedResponsibleParty > CI_ResponsibleParty > contact > CI_Contact > onlineResource > CI_OnlineResource"]
80
+ },
81
+ "items": {
82
+ "$ref": "onlineResource.json#"
83
+ }
84
+ }
85
+ }
86
+ },
87
+ "citationFull": {
88
+ "type": "object",
89
+ "title": "full citation",
90
+ "description": "A full citation object, all attributes are supported.",
91
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/citation",
92
+ "properties": {
93
+ "edition": {
94
+ "type": "string",
95
+ "description": "Version identifier for the resource.",
96
+ "translation": {
97
+ "ISO 19115-2": ["CI_Citation > edition"],
98
+ "FGDC CSDGM": ["idinfo > citation > edition"]
99
+ }
100
+ },
101
+ "presentationForm": {
102
+ "type": "array",
103
+ "description": "The form that the resource is presented, such as: digital map, digital document, etc.",
104
+ "translation": {
105
+ "ISO 19115-2": ["CI_Citation > presentationForm [CI_PresentationFormCode]"],
106
+ "FGDC CSDGM": ["idinfo > citation > geoform"]
107
+ },
108
+ "items": {
109
+ "type": "string"
110
+ }
111
+ },
112
+ "identifier": {
113
+ "type": "array",
114
+ "description": "Identifier for the resource in the context of the citation.",
115
+ "translation": {
116
+ "ISO 19115-2": ["CI_Citation > identifier"]
117
+ },
118
+ "items": {
119
+ "$ref": "#/definitions/identifier"
120
+ }
121
+ }
122
+ },
123
+ "allOf": [
124
+ {
125
+ "$ref": "#/definitions/citationBase"
126
+ }
127
+ ]
128
+ },
129
+ "identifier": {
130
+ "title": "identifier",
131
+ "description": "Assigned identifier for a resource.",
132
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/citation/identifier",
133
+ "translation": {
134
+ "ISO 19115-2": ["MD_Identifier"]
135
+ },
136
+ "type": "object",
137
+ "required": ["identifier"],
138
+ "properties": {
139
+ "identifier": {
140
+ "type": "string",
141
+ "description": "A name that is used to identify the resource.",
142
+ "translation": {
143
+ "ISO 19115-2": ["MD_Identifier > code"]
144
+ }
145
+ },
146
+ "type": {
147
+ "type": "string",
148
+ "description": "The type of identifier, e.g. doi, isbn, issn, etc.",
149
+ "translation": {
150
+ "ISO 19115-2": ["CI_Citation > ISBN", "CI_Citation > ISSN"]
151
+ }
152
+ },
153
+ "authority": {
154
+ "description": "Citation for the authority issuing the identifier.",
155
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/citation/identifier",
156
+ "translation": {
157
+ "ISO 19115-2": ["MD_Identifier > authority > CI_Citation"]
158
+ },
159
+ "$ref": "#/definitions/citationBase"
160
+ }
161
+ }
162
+ },
163
+ "dictionary": {
164
+ "type": "object",
165
+ "example": "../../examples/full_example.json#/dataDictionary/0/dictionaryInfo/citation",
166
+ "required": ["title", "date"],
167
+ "title": "dictionary citation",
168
+ "description": "A citation object for data dictionaries.",
169
+ "properties": {
170
+ "edition": {
171
+ "type": "string",
172
+ "description": "Version identifier for the dictionary.",
173
+ "translation": {
174
+ "ISO 19115-2": ["CI_Citation > edition"],
175
+ "FGDC CSDGM": ["idinfo > citation > edition"]
176
+ }
177
+ }
178
+ },
179
+ "allOf": [
180
+ {
181
+ "$ref": "#/definitions/citationBase"
182
+ }
183
+ ]
184
+ }
185
+ }
186
+ }
@@ -0,0 +1,255 @@
1
+ {
2
+ "id": "contact.json#",
3
+ "$schema": "http://json-schema.org/draft-04/schema#",
4
+ "description": "An array of contacts to be referenced throughout the metadata. Any contact used in the metadata record must be stored within this array and referenced by contactId. Items in array may be used 0-n times throughout the record.",
5
+ "translation": {
6
+ "ISO 19115-2": ["Contact > CI_ResponsibleParty"],
7
+ "FGDC CSDGM": ["[single member of array] = cntinfo"]
8
+ },
9
+ "example": "../../examples/full_example.json#/contact",
10
+ "type": "array",
11
+ "minItems": 1,
12
+ "uniqueItems": true,
13
+ "items": {
14
+ "anyOf": [
15
+ {
16
+ "$ref": "#/definitions/individual"
17
+ }, {
18
+ "$ref": "#/definitions/organization"
19
+ }
20
+ ]
21
+ },
22
+ "definitions": {
23
+ "phone": {
24
+ "type": "object",
25
+ "example": "../../examples/full_example.json#/contact/1/phoneBook",
26
+ "required": ["phoneNumber"],
27
+ "properties": {
28
+ "phoneName": {
29
+ "type": "string",
30
+ "description": "Descriptive name of the phone number."
31
+ },
32
+ "phoneNumber": {
33
+ "type": "string",
34
+ "description": "Telephone number. Recommended format is to use 'x' or 'ext' to denote extensions.",
35
+ "translation": {
36
+ "ISO 19115-2": ["CI_Telephone > voice | facsimile"],
37
+ "FGDC CSDGM": ["cntinfo > cntvoice"]
38
+ },
39
+ "pattern": "^[0-9+()#. \/ext-]+$"
40
+ },
41
+ "service": {
42
+ "type": "array",
43
+ "description": "Type(s) of phone number, e.g. voice, sms."
44
+ ,
45
+ "items": {
46
+ "type": "string"
47
+ },
48
+ "uniqueItems": true
49
+ }
50
+ },
51
+ "additionalProperties": false
52
+ },
53
+ "address": {
54
+ "type": "object",
55
+ "example": "../../examples/full_example.json#/contact/1/address",
56
+ "description": "Physical and email address at which the organization or individual may be contacted.",
57
+ "translation": {
58
+ "ISO 19115-2": ["CI_ResponsibleParty > contactInfo > CI_Contact > address > CI_Address"],
59
+ "FGDC CSDGM": ["cntinfo > cntaddr"]
60
+ },
61
+ "properties": {
62
+ "deliveryPoint": {
63
+ "type": "array",
64
+ "description": "Address line for the location.",
65
+ "translation": {
66
+ "ISO 19115-2": ["CI_Address > deliveryPoint"],
67
+ "FGDC CSDGM": ["cntinfo > cntaddr > address"]
68
+ },
69
+ "items": {
70
+ "type": "string"
71
+ },
72
+ "uniqueItems": true
73
+ },
74
+ "city": {
75
+ "type": "string",
76
+ "description": "City of the location.",
77
+ "translation": {
78
+ "ISO 19115-2": ["CI_Address > city"],
79
+ "FGDC CSDGM": ["cntinfo > cntaddr > city"]
80
+ }
81
+ },
82
+ "administrativeArea": {
83
+ "type": "string",
84
+ "description": "State, province of the location.",
85
+ "translation": {
86
+ "ISO 19115-2": ["CI_Address > administrativeArea"],
87
+ "FGDC CSDGM": ["cntinfo > cntaddr > state"]
88
+ }
89
+ },
90
+ "postalCode": {
91
+ "type": "string",
92
+ "description": "ZIP or other postal code.",
93
+ "translation": {
94
+ "ISO 19115-2": ["CI_Address > postalCode"],
95
+ "FGDC CSDGM": ["cntinfo > cntaddr > postal"]
96
+ }
97
+ },
98
+ "country": {
99
+ "type": "string",
100
+ "description": "ZIP or other postal code.",
101
+ "translation": {
102
+ "ISO 19115-2": ["CI_Address > postalCode"],
103
+ "FGDC CSDGM": ["cntinfo > cntaddr > postal"]
104
+ }
105
+ },
106
+ "electronicMailAddress": {
107
+ "type": "array",
108
+ "description": "E-mail or electronic mailbox address.",
109
+ "translation": {
110
+ "ISO 19115-2": ["CI_Address > electronicMailAddress"],
111
+ "FGDC CSDGM": ["cntinfo > cntemail"]
112
+ },
113
+ "items": {
114
+ "type": "string",
115
+ "pattern": "^.+@.+\\..+$"
116
+ },
117
+ "uniqueItems": true
118
+ }
119
+ },
120
+ "additionalProperties": false
121
+ },
122
+ "baseContact": {
123
+ "type": "object",
124
+ "title": "base contact",
125
+ "description": "Basic information for a contact.",
126
+ "required": ["contactId"],
127
+ "additionalProperties": true,
128
+ "properties": {
129
+ "contactId": {
130
+ "type": "string",
131
+ "example": "../../examples/full_example.json#/contact/1"
132
+ },
133
+ "positionName": {
134
+ "type": "string",
135
+ "example": "../../examples/full_example.json#/contact/1",
136
+ "description": "Role or position of the person, usually within a given organization.",
137
+ "translation": {
138
+ "ISO 19115-2": ["CI_ResponsibleParty > positionName"],
139
+ "FGDC CSDGM": ["cntinfo > cntpos"]
140
+ }
141
+ },
142
+ "address": {
143
+ "$ref": "#/definitions/address"
144
+ },
145
+ "onlineResource": {
146
+ "type": "array",
147
+ "description": "Information about accessing on-line resources and services. This may be a website, profile page, GitHub page, etc. related to the contact.",
148
+ "example": "../../examples/full_example.json#/contact/1",
149
+ "translation": {
150
+ "ISO 19115-2": ["CI_ResponsibleParty > contactInfo > CI_Contact > onlineResource > CI_OnlineResource"]
151
+ },
152
+ "items": {
153
+ "$ref": "onlineResource.json#"
154
+ },
155
+ "uniqueItems": true
156
+ },
157
+ "contactInstructions": {
158
+ "type": "string",
159
+ "description": "Supplemental instructions on how or when to contact the individual or organization.",
160
+ "example": "../../examples/full_example.json#/contact/1",
161
+ "translation": {
162
+ "ISO 19115-2": ["CI_Contact > contactInstructions"],
163
+ "FGDC CSDGM": ["cntinfo > cntinst"]
164
+ }
165
+ },
166
+ "phoneBook": {
167
+ "type": "array",
168
+ "description": "Supplemental instructions on how or when to contact the individual or organization.",
169
+ "example": "../../examples/full_example.json#/contact/1",
170
+ "translation": {
171
+ "ISO 19115-2": ["CI_Contact > contactInstructions"],
172
+ "FGDC CSDGM": ["cntinfo > cntinst"]
173
+ },
174
+ "items": {
175
+ "$ref": "#/definitions/phone"
176
+ }
177
+ }
178
+ }
179
+ },
180
+ "individual": {
181
+ "type": "object",
182
+ "title": "individual",
183
+ "example": "../../examples/full_example.json#/contact/1",
184
+ "description": "Contact information for a person.",
185
+ "translation": {
186
+ "ISO 19115-2": ["Contact > CI_ResponsibleParty"],
187
+ "FGDC CSDGM": ["cntinfo > cntperp"]
188
+ },
189
+ "required": ["individualName"],
190
+ "additionalProperties": true,
191
+ "properties": {
192
+ "individualName": {
193
+ "type": "string",
194
+ "description": "Name of the person - surname, given name, title separated by a delimiter.",
195
+ "example": "../../examples/full_example.json#/contact/1",
196
+ "translation": {
197
+ "ISO 19115-2": ["CI_ResponsibleParty > individualName"],
198
+ "FGDC CSDGM": ["cntinfo > cntperp > cntper"]
199
+ }
200
+ }
201
+ },
202
+ "allOf": [
203
+ {
204
+ "$ref": "#/definitions/baseContact"
205
+ }
206
+ ]
207
+ },
208
+ "organization": {
209
+ "type": "object",
210
+ "title": "organization",
211
+ "example": "../../examples/full_example.json#/contact/0",
212
+ "translation": {
213
+ "ISO 19115-2": ["Contact > CI_ResponsibleParty"],
214
+ "FGDC CSDGM": ["cntinfo > cntorgp"]
215
+ },
216
+ "required": ["organizationName"],
217
+ "additionalProperties": true,
218
+ "properties": {
219
+ "organizationName": {
220
+ "type": "string",
221
+ "description": "Name of the organization.",
222
+ "translation": {
223
+ "ISO 19115-2": ["CI_ResponsibleParty > organisationName"],
224
+ "FGDC CSDGM": ["cntinfo > cntperp > cntorg"]
225
+ }
226
+ }
227
+ },
228
+ "allOf": [
229
+ {
230
+ "$ref": "#/definitions/baseContact"
231
+ }
232
+ ]
233
+ },
234
+ "contactRef": {
235
+ "type": "object",
236
+ "example": "../../examples/full_example.json#/metadata/resourceInfo/citation/responsibleParty",
237
+ "additionalProperties": true,
238
+ "required": ["contactId", "role"],
239
+ "properties": {
240
+ "contactId": {
241
+ "type": "string",
242
+ "description": "Identifier matching a contactId in the main contact array."
243
+ },
244
+ "role": {
245
+ "type": "string",
246
+ "description": "Function performed by the contact in the current context.",
247
+ "translation": {
248
+ "ISO 19115-2": ["MI_Metadata > Contact > CI_Contact > role [CI_RoleCode]"],
249
+ "FGDC CSDGM": ["metainfo > cntinfo > cntpos"]
250
+ }
251
+ }
252
+ }
253
+ }
254
+ }
255
+ }
@@ -0,0 +1,209 @@
1
+ {
2
+ "id": "dataDictionary.json#",
3
+ "$schema": "http://json-schema.org/draft-04/schema#",
4
+ "type": "object",
5
+ "description": "A catalogue containing definitions and descriptions of the resource types, resource attributes, and resource associations.",
6
+ "example": "../../examples/full_example.json#/dataDictionary/0",
7
+ "required": ["dictionaryInfo"],
8
+ "additionalProperties": false,
9
+ "properties": {
10
+ "dictionaryInfo": {
11
+ "type": "object",
12
+ "description": "Information describing the dictionary and its source.",
13
+ "example": "../../examples/full_example.json#/dataDictionary/0/dictionaryInfo",
14
+ "required": ["resourceType", "citation", "description"],
15
+ "additionalProperties": false,
16
+ "properties": {
17
+ "citation": {
18
+ "description": "Citation for the dictionary.",
19
+ "example": "../../examples/full_example.json#/dataDictionary/0/dictionaryInfo",
20
+ "$ref": "citation.json#/definitions/dictionary"
21
+ },
22
+ "resourceType": {
23
+ "type": "string",
24
+ "description": "The type of resource described by the dictionary."
25
+ },
26
+ "description": {
27
+ "type": "string",
28
+ "description": "Description of the dictionary."
29
+ },
30
+ "language": {
31
+ "type": "string",
32
+ "description": "Language used within the dictionary. Should be a valid ISO 639-3 code."
33
+ }
34
+ }
35
+ },
36
+ "domain": {
37
+ "type": "array",
38
+ "items": {
39
+ "type": "object",
40
+ "description": "Information describing an enumerated list of values.",
41
+ "example": "../../examples/full_example.json#/dataDictionary/0/domain/0",
42
+ "required": ["domainId", "codeName", "description", "member"],
43
+ "additionalProperties": false,
44
+ "properties": {
45
+ "domainId": {
46
+ "type": "string"
47
+ },
48
+ "commonName": {
49
+ "type": "string"
50
+ },
51
+ "codeName": {
52
+ "type": "string"
53
+ },
54
+ "description": {
55
+ "type": "string"
56
+ },
57
+ "member": {
58
+ "type": "array",
59
+ "items": {
60
+ "type": "object",
61
+ "example": "../../examples/full_example.json#/dataDictionary/0/domain/0/member",
62
+ "required": ["name", "value", "definition"],
63
+ "additionalProperties": false,
64
+ "properties": {
65
+ "name": {
66
+ "type": "string"
67
+ },
68
+ "value": {
69
+ "type": "string"
70
+ },
71
+ "definition": {
72
+ "type": "string"
73
+ }
74
+ }
75
+ }
76
+ }
77
+ }
78
+ }
79
+ },
80
+ "entity": {
81
+ "type": "array",
82
+ "items": {
83
+ "type": "object",
84
+ "example": "../../examples/full_example.json#/dataDictionary/0/entity/1",
85
+ "required": ["entityId", "codeName", "definition"],
86
+ "additionalProperties": false,
87
+ "properties": {
88
+ "entityId": {
89
+ "type": "string"
90
+ },
91
+ "commonName": {
92
+ "type": "string"
93
+ },
94
+ "codeName": {
95
+ "type": "string"
96
+ },
97
+ "alias": {
98
+ "type": "array",
99
+ "items": {
100
+ "type": "string"
101
+ }
102
+ },
103
+ "definition": {
104
+ "type": "string"
105
+ },
106
+ "primaryKeyAttributeCodeName": {
107
+ "type": "array",
108
+ "items": {
109
+ "type": "string"
110
+ }
111
+ },
112
+ "index": {
113
+ "type": "array",
114
+ "items": {
115
+ "type": "object",
116
+ "example": "../../examples/full_example.json#/dataDictionary/0/entity/1/index",
117
+ "required": ["codeName", "allowDuplicates", "attributeCodeName"],
118
+ "additionalProperties": false,
119
+ "properties": {
120
+ "codeName": {
121
+ "type": "string"
122
+ },
123
+ "allowDuplicates": {
124
+ "type": "boolean"
125
+ },
126
+ "attributeCodeName": {
127
+ "type": "array",
128
+ "items": {
129
+ "type": "string"
130
+ }
131
+ }
132
+ }
133
+ }
134
+ },
135
+ "attribute": {
136
+ "type": "array",
137
+ "items": {
138
+ "type": "object",
139
+ "example": "../../examples/full_example.json#/dataDictionary/0/entity/1/attribute",
140
+ "required": ["codeName", "dataType", "definition", "allowNull"],
141
+ "additionalProperties": false,
142
+ "properties": {
143
+ "commonName": {
144
+ "type": "string"
145
+ },
146
+ "codeName": {
147
+ "type": "string"
148
+ },
149
+ "alias": {
150
+ "type": "array",
151
+ "items": {
152
+ "type": "string"
153
+ }
154
+ },
155
+ "definition": {
156
+ "type": "string"
157
+ },
158
+ "dataType": {
159
+ "type": "string"
160
+ },
161
+ "allowNull": {
162
+ "type": "boolean"
163
+ },
164
+ "units": {
165
+ "type": "string"
166
+ },
167
+ "domainId": {
168
+ "type": "string"
169
+ },
170
+ "minValue": {
171
+ "type": "string"
172
+ },
173
+ "maxValue": {
174
+ "type": "string"
175
+ }
176
+ }
177
+ }
178
+ },
179
+ "foreignKey": {
180
+ "type": "array",
181
+ "items": {
182
+ "type": "object",
183
+ "example": "../../examples/full_example.json#/dataDictionary/0/entity/1/foreignKey",
184
+ "required": ["localAttributeCodeName", "referencedEntityCodeName", "referencedAttributeCodeName"],
185
+ "additionalProperties": false,
186
+ "properties": {
187
+ "localAttributeCodeName": {
188
+ "type": "array",
189
+ "items": {
190
+ "type": "string"
191
+ }
192
+ },
193
+ "referencedEntityCodeName": {
194
+ "type": "string"
195
+ },
196
+ "referencedAttributeCodeName": {
197
+ "type": "array",
198
+ "items": {
199
+ "type": "string"
200
+ }
201
+ }
202
+ }
203
+ }
204
+ }
205
+ }
206
+ }
207
+ }
208
+ }
209
+ }