adiwg-mdjson_schemas 2.0.0.pre.alpha → 2.0.0.pre.alpha.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +10 -1
- data/examples/constraint.json +8 -6
- data/examples/dictionary.json +13 -3
- data/examples/mdJson.json +2 -6
- data/examples/processStep.json +8 -6
- data/examples/releasability.json +8 -6
- data/examples/resourceInfo.json +1 -1
- data/examples/taxonomy.json +1 -1
- data/examples/transferOption.json +2 -2
- data/examples/usage.json +4 -3
- data/lib/adiwg/mdjson_schemas/utils.rb +12 -2
- data/lib/adiwg/mdjson_schemas/version.rb +1 -1
- data/schema/citation.json +121 -149
- data/schema/dataDictionary.json +12 -5
- data/schema/identifier.json +1 -1
- data/schema/keyword.json +1 -1
- data/schema/metadataInfo.json +1 -1
- data/schema/taxonomy.json +6 -0
- data/schema/transferOption.json +19 -10
- data/test/helper.rb +13 -12
- data/test/tc_schema.rb +1 -1
- data/test/{tc_utils.rb → tu_utils.rb} +9 -0
- metadata +4 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 932b652a0686b504c4268ae584df424159cb9a07
|
4
|
+
data.tar.gz: 56bf0ed2ae13559a874bb30570a0f252641e82f2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 99066ba89e99cd8ad9645301b41dadd4ca71bd6ecb472887b830fda9d06f6607b7d9615c563c22f9327b89be7b9ebcb317ad9563dca41b2440f79a355660c098
|
7
|
+
data.tar.gz: a1c19d62d0b8cedfdf329955db450a8f0d3e55bc82711cf07cb8f57465f1945819534f41e784a7f4a81f5222fd05abf2bc16ecbd80bb46ab7a22ee1348ba69d0
|
data/Rakefile
CHANGED
@@ -9,4 +9,13 @@ Rake::TestTask.new do |t|
|
|
9
9
|
end
|
10
10
|
|
11
11
|
desc "Run tests"
|
12
|
-
task :default => :test
|
12
|
+
task :default => :test
|
13
|
+
|
14
|
+
Rake::TestTask.new do |t|
|
15
|
+
t.libs << 'test'
|
16
|
+
t.test_files = FileList['test/tu*.rb']
|
17
|
+
t.verbose = true
|
18
|
+
end
|
19
|
+
|
20
|
+
desc "Run utility tests"
|
21
|
+
task :default => :test
|
data/examples/constraint.json
CHANGED
@@ -22,18 +22,20 @@
|
|
22
22
|
},
|
23
23
|
"responsibleParty": [{
|
24
24
|
"role": "role0",
|
25
|
-
"
|
26
|
-
"
|
27
|
-
|
25
|
+
"timePeriod": [{
|
26
|
+
"startDateTime": "2016-10-14T11:10:15.2-10:00",
|
27
|
+
"endDateTime": "2016-12-31"
|
28
|
+
}],
|
28
29
|
"party": [{
|
29
30
|
"contactId": "individualId0"
|
30
31
|
}]
|
31
32
|
},
|
32
33
|
{
|
33
34
|
"role": "role1",
|
34
|
-
"
|
35
|
-
"
|
36
|
-
|
35
|
+
"timePeriod": [{
|
36
|
+
"startDateTime": "2016-10-14T11:10:15.2-10:00",
|
37
|
+
"endDateTime": "2016-12-31"
|
38
|
+
}],
|
37
39
|
"party": [{
|
38
40
|
"contactId": "individualId0"
|
39
41
|
}]
|
data/examples/dictionary.json
CHANGED
@@ -1,11 +1,21 @@
|
|
1
1
|
[{
|
2
|
-
"resourceType": "resourceType",
|
3
2
|
"citation": {
|
4
3
|
"title": "title"
|
5
4
|
},
|
6
|
-
"description": "description",
|
7
|
-
"language": "language",
|
8
5
|
"subject": "subject",
|
6
|
+
"locale": [
|
7
|
+
{
|
8
|
+
"language": "language1",
|
9
|
+
"country": "country1",
|
10
|
+
"characterSet": "characterSet1"
|
11
|
+
},
|
12
|
+
{
|
13
|
+
"language": "rar",
|
14
|
+
"country": "COK",
|
15
|
+
"characterSet": "UTF-8"
|
16
|
+
}
|
17
|
+
],
|
18
|
+
"recommendedUse": [""],
|
9
19
|
"responsibleParty": {
|
10
20
|
"role": "role",
|
11
21
|
"party": [{
|
data/examples/mdJson.json
CHANGED
@@ -70,7 +70,6 @@
|
|
70
70
|
}
|
71
71
|
},
|
72
72
|
"dataDictionary": [{
|
73
|
-
"resourceType": "resourceType",
|
74
73
|
"subject": "subject",
|
75
74
|
"responsibleParty": {
|
76
75
|
"role": "role",
|
@@ -80,10 +79,8 @@
|
|
80
79
|
},
|
81
80
|
"citation": {
|
82
81
|
"title": "title"
|
83
|
-
}
|
84
|
-
"description": "description"
|
82
|
+
}
|
85
83
|
}, {
|
86
|
-
"resourceType": "resourceType",
|
87
84
|
"subject": "subject",
|
88
85
|
"responsibleParty": {
|
89
86
|
"role": "role",
|
@@ -93,7 +90,6 @@
|
|
93
90
|
},
|
94
91
|
"citation": {
|
95
92
|
"title": "title"
|
96
|
-
}
|
97
|
-
"description": "description"
|
93
|
+
}
|
98
94
|
}]
|
99
95
|
}
|
data/examples/processStep.json
CHANGED
@@ -7,18 +7,20 @@
|
|
7
7
|
},
|
8
8
|
"processor": [{
|
9
9
|
"role": "role",
|
10
|
-
"
|
11
|
-
"
|
12
|
-
|
10
|
+
"timePeriod": [{
|
11
|
+
"startDateTime": "2016-10-14T11:10:15.2-10:00",
|
12
|
+
"endDateTime": "2016-12-31"
|
13
|
+
}],
|
13
14
|
"party": [{
|
14
15
|
"contactId": "individualId0"
|
15
16
|
}]
|
16
17
|
},
|
17
18
|
{
|
18
19
|
"role": "role",
|
19
|
-
"
|
20
|
-
"
|
21
|
-
|
20
|
+
"timePeriod": [{
|
21
|
+
"startDateTime": "2016-10-14T11:10:15.2-10:00",
|
22
|
+
"endDateTime": "2016-12-31"
|
23
|
+
}],
|
22
24
|
"party": [{
|
23
25
|
"contactId": "individualId0"
|
24
26
|
}]
|
data/examples/releasability.json
CHANGED
@@ -1,9 +1,10 @@
|
|
1
1
|
[{
|
2
2
|
"addressee": [{
|
3
3
|
"role": "role",
|
4
|
-
"
|
5
|
-
"
|
6
|
-
|
4
|
+
"timePeriod": [{
|
5
|
+
"startDateTime": "2016-10-14T11:10:15.2-10:00",
|
6
|
+
"endDateTime": "2016-12-31"
|
7
|
+
}],
|
7
8
|
"party": [{
|
8
9
|
"contactId": "individualId0"
|
9
10
|
}]
|
@@ -18,9 +19,10 @@
|
|
18
19
|
}, {
|
19
20
|
"addressee": [{
|
20
21
|
"role": "role",
|
21
|
-
"
|
22
|
-
"
|
23
|
-
|
22
|
+
"timePeriod": [{
|
23
|
+
"startDateTime": "2016-10-14T11:10:15.2-10:00",
|
24
|
+
"endDateTime": "2016-12-31"
|
25
|
+
}],
|
24
26
|
"party": [{
|
25
27
|
"contactId": "individualId0"
|
26
28
|
}]
|
data/examples/resourceInfo.json
CHANGED
data/examples/taxonomy.json
CHANGED
data/examples/usage.json
CHANGED
@@ -39,9 +39,10 @@
|
|
39
39
|
},
|
40
40
|
{
|
41
41
|
"role": "role1",
|
42
|
-
"
|
43
|
-
"
|
44
|
-
|
42
|
+
"timePeriod": [{
|
43
|
+
"startDateTime": "2016-10-14T11:10:15.2-10:00",
|
44
|
+
"endDateTime": "2016-12-31"
|
45
|
+
}],
|
45
46
|
"party": [{
|
46
47
|
"contactId": "individualId1"
|
47
48
|
}]
|
@@ -36,11 +36,21 @@ module ADIWG
|
|
36
36
|
|
37
37
|
# Pre-load all of the json-schemas for mdJSON validation
|
38
38
|
#
|
39
|
+
# @param [Boolean] strict If true, will disallow additional properties
|
39
40
|
# @return [nil]
|
40
|
-
def self.load_schemas
|
41
|
+
def self.load_schemas(strict=false)
|
41
42
|
Dir.glob(schema_dir + '*.json') do |schema|
|
43
|
+
loaded = Utils.load_json(schema)
|
42
44
|
name = File.basename(schema)
|
43
|
-
|
45
|
+
|
46
|
+
if strict
|
47
|
+
loaded['additionalProperties'] = false
|
48
|
+
loaded['definitions'].each do |_key, val|
|
49
|
+
val['additionalProperties'] = false
|
50
|
+
end unless loaded['definitions'].nil?
|
51
|
+
end
|
52
|
+
|
53
|
+
jschema = JSON::Schema.new(loaded, Addressable::URI.parse(name))
|
44
54
|
|
45
55
|
JSON::Validator.add_schema(jschema)
|
46
56
|
end
|
data/schema/citation.json
CHANGED
@@ -1,147 +1,138 @@
|
|
1
1
|
{
|
2
2
|
"id": "citation.json#",
|
3
3
|
"$schema": "http://json-schema.org/draft-04/schema#",
|
4
|
-
"
|
4
|
+
"type": "object",
|
5
|
+
"title": "citation",
|
6
|
+
"description": "A citation object.",
|
7
|
+
"required": ["title"],
|
8
|
+
"example": "",
|
5
9
|
"translation": {
|
10
|
+
"FGDC CSDGM": ["idinfo > citation > citeinfo"],
|
6
11
|
"ISO 19115-2": ["CI_Citation"]
|
7
12
|
},
|
8
|
-
"
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
"
|
13
|
+
"properties": {
|
14
|
+
"title": {
|
15
|
+
"type": "string",
|
16
|
+
"description": "Name by which the cited resource is known.",
|
17
|
+
"translation": {
|
18
|
+
"ISO 19115-2": ["CI_Citation > title", "FC_FeatureCatalogue > name"],
|
19
|
+
"FGDC CSDGM": ["idinfo > citation > citeinfo > title"]
|
20
|
+
}
|
21
|
+
},
|
22
|
+
"alternateTitle": {
|
23
|
+
"type": "array",
|
24
|
+
"description": "Alias by which the cited resource is known.",
|
19
25
|
"translation": {
|
20
|
-
"
|
26
|
+
"ISO 19115-2": ["CI_Citation > alternateTitle"]
|
21
27
|
},
|
22
|
-
"
|
23
|
-
"
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
"translation": {
|
45
|
-
"ISO 19115-2": ["CI_Citation > date > CI_Date"]
|
28
|
+
"items": {
|
29
|
+
"type": "string"
|
30
|
+
}
|
31
|
+
},
|
32
|
+
"date": {
|
33
|
+
"type": "array",
|
34
|
+
"description": "Date referenced to the cited resource.",
|
35
|
+
"translation": {
|
36
|
+
"ISO 19115-2": ["CI_Citation > date > CI_Date"]
|
37
|
+
},
|
38
|
+
"minItems": 1,
|
39
|
+
"items": {
|
40
|
+
"type": "object",
|
41
|
+
"example": "",
|
42
|
+
"required": ["date", "dateType"],
|
43
|
+
"properties": {
|
44
|
+
"date": {
|
45
|
+
"translation": {
|
46
|
+
"ISO 19115-2": ["CI_Date > date", "FC_FeatureCatalogue > versionDate"],
|
47
|
+
"FGDC CSDGM": ["idinfo > citation > citeinfo > pubdate"]
|
48
|
+
},
|
49
|
+
"$ref": "common.json#/definitions/date"
|
46
50
|
},
|
47
|
-
"
|
48
|
-
|
49
|
-
"
|
50
|
-
"
|
51
|
-
|
52
|
-
"properties": {
|
53
|
-
"date": {
|
54
|
-
"translation": {
|
55
|
-
"ISO 19115-2": ["CI_Date > date", "FC_FeatureCatalogue > versionDate"],
|
56
|
-
"FGDC CSDGM": ["idinfo > citation > citeinfo > pubdate"]
|
57
|
-
},
|
58
|
-
"$ref": "common.json#/definitions/date"
|
59
|
-
},
|
60
|
-
"dateType": {
|
61
|
-
"type": "string",
|
62
|
-
"description": "The type of date in the context of the citation.",
|
63
|
-
"translation": {
|
64
|
-
"ISO 19115-2": ["CI_Date > dateType [CI_DateTypeCode]"]
|
65
|
-
}
|
66
|
-
}
|
51
|
+
"dateType": {
|
52
|
+
"type": "string",
|
53
|
+
"description": "The type of date in the context of the citation.",
|
54
|
+
"translation": {
|
55
|
+
"ISO 19115-2": ["CI_Date > dateType [CI_DateTypeCode]"]
|
67
56
|
}
|
68
57
|
}
|
69
|
-
},
|
70
|
-
"edition": {
|
71
|
-
"type": "string",
|
72
|
-
"description": "Version identifier for the resource.",
|
73
|
-
"translation": {
|
74
|
-
"ISO 19115-2": ["CI_Citation > edition"],
|
75
|
-
"FGDC CSDGM": ["idinfo > citation > edition"]
|
76
|
-
}
|
77
|
-
},
|
78
|
-
"responsibleParty": {
|
79
|
-
"type": "array",
|
80
|
-
"description": "Identification of, and means of communication with, person(s) and organization(s) associated with the cited resource.",
|
81
|
-
"translation": {
|
82
|
-
"ISO 19115-2": ["CI_Citation > citedResponsibleParty > CI_ResponsibleParty", "FC_FeatureCatalogue > producer > CI_ResponisbleParty"],
|
83
|
-
"FGDC CSDGM": ["idinfo > ptcontac > cntinfo"]
|
84
|
-
},
|
85
|
-
"minItems": 1,
|
86
|
-
"items": {
|
87
|
-
"$ref": "responsibility.json#"
|
88
|
-
}
|
89
|
-
},
|
90
|
-
"presentationForm": {
|
91
|
-
"type": "array",
|
92
|
-
"description": "The form that the resource is presented, such as: digital map, digital document, etc.",
|
93
|
-
"translation": {
|
94
|
-
"ISO 19115-2": ["CI_Citation > presentationForm [CI_PresentationFormCode]"],
|
95
|
-
"FGDC CSDGM": ["idinfo > citation > geoform"]
|
96
|
-
},
|
97
|
-
"items": {
|
98
|
-
"type": "string"
|
99
|
-
}
|
100
|
-
},
|
101
|
-
"identifier": {
|
102
|
-
"type": "array",
|
103
|
-
"description": "Identifier for the resource in the context of the citation.",
|
104
|
-
"translation": {
|
105
|
-
"ISO 19115-2": ["CI_Citation > identifier"]
|
106
|
-
},
|
107
|
-
"items": {
|
108
|
-
"$ref": "./identifier.json#"
|
109
|
-
}
|
110
|
-
},
|
111
|
-
"series": {
|
112
|
-
"$ref": "#/definitions/series"
|
113
|
-
|
114
|
-
},
|
115
|
-
"otherCitationDetails": {
|
116
|
-
"type": "array",
|
117
|
-
"description": "Other information required to complete the citation that is not recorded elsewhere.",
|
118
|
-
"example": "",
|
119
|
-
"translation": {},
|
120
|
-
"items": {
|
121
|
-
"type": "string"
|
122
|
-
}
|
123
|
-
},
|
124
|
-
"onlineResource": {
|
125
|
-
"type": "array",
|
126
|
-
"description": "On-line information related to the citation.",
|
127
|
-
"translation": {
|
128
|
-
"ISO 19115-2": ["CI_Citation > citedResponsibleParty > CI_ResponsibleParty > contact > CI_Contact > onlineResource > CI_OnlineResource"]
|
129
|
-
},
|
130
|
-
"items": {
|
131
|
-
"$ref": "onlineResource.json#"
|
132
|
-
}
|
133
|
-
},
|
134
|
-
"graphic": {
|
135
|
-
"type": "array",
|
136
|
-
"description": "Online graphic associated with the citation",
|
137
|
-
"example": "",
|
138
|
-
"translation": {},
|
139
|
-
"items": {
|
140
|
-
"$ref": "./graphic.json#"
|
141
|
-
}
|
142
58
|
}
|
143
59
|
}
|
144
60
|
},
|
61
|
+
"edition": {
|
62
|
+
"type": "string",
|
63
|
+
"description": "Version identifier for the resource.",
|
64
|
+
"translation": {
|
65
|
+
"ISO 19115-2": ["CI_Citation > edition", "FC_FeatureCatalogue > versionNumber"],
|
66
|
+
"FGDC CSDGM": ["idinfo > citation > edition"]
|
67
|
+
}
|
68
|
+
},
|
69
|
+
"responsibleParty": {
|
70
|
+
"type": "array",
|
71
|
+
"description": "Identification of, and means of communication with, person(s) and organization(s) associated with the cited resource.",
|
72
|
+
"translation": {
|
73
|
+
"ISO 19115-2": ["CI_Citation > citedResponsibleParty > CI_ResponsibleParty", "FC_FeatureCatalogue > producer > CI_ResponisbleParty"],
|
74
|
+
"FGDC CSDGM": ["idinfo > ptcontac > cntinfo"]
|
75
|
+
},
|
76
|
+
"minItems": 1,
|
77
|
+
"items": {
|
78
|
+
"$ref": "responsibility.json#"
|
79
|
+
}
|
80
|
+
},
|
81
|
+
"presentationForm": {
|
82
|
+
"type": "array",
|
83
|
+
"description": "The form that the resource is presented, such as: digital map, digital document, etc.",
|
84
|
+
"translation": {
|
85
|
+
"ISO 19115-2": ["CI_Citation > presentationForm [CI_PresentationFormCode]"],
|
86
|
+
"FGDC CSDGM": ["idinfo > citation > geoform"]
|
87
|
+
},
|
88
|
+
"items": {
|
89
|
+
"type": "string"
|
90
|
+
}
|
91
|
+
},
|
92
|
+
"identifier": {
|
93
|
+
"type": "array",
|
94
|
+
"description": "Identifier for the resource in the context of the citation.",
|
95
|
+
"translation": {
|
96
|
+
"ISO 19115-2": ["CI_Citation > identifier"]
|
97
|
+
},
|
98
|
+
"items": {
|
99
|
+
"$ref": "./identifier.json#"
|
100
|
+
}
|
101
|
+
},
|
102
|
+
"series": {
|
103
|
+
"$ref": "#/definitions/series"
|
104
|
+
|
105
|
+
},
|
106
|
+
"otherCitationDetails": {
|
107
|
+
"type": "array",
|
108
|
+
"description": "Other information required to complete the citation that is not recorded elsewhere.",
|
109
|
+
"example": "",
|
110
|
+
"translation": {},
|
111
|
+
"items": {
|
112
|
+
"type": "string"
|
113
|
+
}
|
114
|
+
},
|
115
|
+
"onlineResource": {
|
116
|
+
"type": "array",
|
117
|
+
"description": "On-line information related to the citation.",
|
118
|
+
"translation": {
|
119
|
+
"ISO 19115-2": ["CI_Citation > citedResponsibleParty > CI_ResponsibleParty > contact > CI_Contact > onlineResource > CI_OnlineResource"]
|
120
|
+
},
|
121
|
+
"items": {
|
122
|
+
"$ref": "onlineResource.json#"
|
123
|
+
}
|
124
|
+
},
|
125
|
+
"graphic": {
|
126
|
+
"type": "array",
|
127
|
+
"description": "Online graphic associated with the citation",
|
128
|
+
"example": "",
|
129
|
+
"translation": {},
|
130
|
+
"items": {
|
131
|
+
"$ref": "./graphic.json#"
|
132
|
+
}
|
133
|
+
}
|
134
|
+
},
|
135
|
+
"definitions": {
|
145
136
|
"series": {
|
146
137
|
"type": "object",
|
147
138
|
"description": "Information about the series, or aggregate resource, to which a resource belongs.",
|
@@ -160,25 +151,6 @@
|
|
160
151
|
"type": "string"
|
161
152
|
}
|
162
153
|
}
|
163
|
-
},
|
164
|
-
"dictionary": {
|
165
|
-
"type": "object",
|
166
|
-
"example": "",
|
167
|
-
"required": ["title", "date"],
|
168
|
-
"title": "dictionary citation",
|
169
|
-
"description": "A citation object for data dictionaries.",
|
170
|
-
"properties": {
|
171
|
-
"edition": {
|
172
|
-
"type": "string",
|
173
|
-
"description": "Version identifier for the dictionary.",
|
174
|
-
"translation": {
|
175
|
-
"ISO 19115-2": ["FC_FeatureCatalogue > versionNumber"]
|
176
|
-
}
|
177
|
-
}
|
178
|
-
},
|
179
|
-
"allOf": [{
|
180
|
-
"$ref": "#/definitions/citationFull"
|
181
|
-
}]
|
182
154
|
}
|
183
155
|
}
|
184
156
|
}
|
data/schema/dataDictionary.json
CHANGED
@@ -20,27 +20,34 @@
|
|
20
20
|
}
|
21
21
|
},
|
22
22
|
"recommendedUse": {
|
23
|
-
"type": "
|
23
|
+
"type": "array",
|
24
24
|
"description": "Description of kind(s) of use to which this dictionary may be put.",
|
25
25
|
"translation": {
|
26
26
|
"ISO 19115-2": ["FC_FeatureCatalogue > fieldOfApplication > CharacterString"]
|
27
|
+
},
|
28
|
+
"items": {
|
29
|
+
"type": "string"
|
27
30
|
}
|
28
31
|
},
|
29
32
|
"locale": {
|
30
|
-
"
|
33
|
+
"type": "array",
|
31
34
|
"description": "Defines the language and country of origin in which the data dictionary is written. E.g. 'eng; USA', 'eng; UK', 'esp; MEX'.",
|
32
35
|
"translation": {
|
33
36
|
"ISO 19115-2": ["FC_FeatureCatalogue > language"]
|
37
|
+
},
|
38
|
+
"items": {
|
39
|
+
"$ref": "./locale.json"
|
34
40
|
}
|
41
|
+
|
35
42
|
},
|
36
43
|
"responsibleParty": {
|
37
44
|
"$ref": "./responsibility.json#",
|
38
45
|
"description": "Name, address, country, and telecommunications address of person or organization having primary responsibility for the intellectual content of this dictionary."
|
39
46
|
},
|
40
47
|
"dictionaryFormat": {
|
41
|
-
|
42
|
-
|
43
|
-
|
48
|
+
"type": "string",
|
49
|
+
"description": "Formal functional language used in the dictionary.",
|
50
|
+
"translation": {}
|
44
51
|
},
|
45
52
|
"dictionaryIncludedWithResource": {
|
46
53
|
"type": "boolean",
|
data/schema/identifier.json
CHANGED
data/schema/keyword.json
CHANGED
@@ -33,7 +33,7 @@
|
|
33
33
|
"ISO 19115-2": ["MD_Keywords > thesaurusName > CI_Citation"],
|
34
34
|
"FGDC CSDGM": ["idinfo>keywords>theme>themekt", "idinfo>keywords>place>placekt", "idinfo>keywords>temporal>tempkt", "idinfo>keywords>stratum>stratkt"]
|
35
35
|
},
|
36
|
-
"$ref": "citation.json
|
36
|
+
"$ref": "citation.json#"
|
37
37
|
}
|
38
38
|
},
|
39
39
|
"definitions": {
|
data/schema/metadataInfo.json
CHANGED
@@ -19,7 +19,7 @@
|
|
19
19
|
"translation": {
|
20
20
|
"ISO 19115-2": ["MI_Metadata > parentIdentifier"]
|
21
21
|
},
|
22
|
-
"$ref": "citation.json
|
22
|
+
"$ref": "citation.json#"
|
23
23
|
},
|
24
24
|
"defaultMetadataLocale": {
|
25
25
|
"description": "Main localised language and characterset used within the metadata record.",
|
data/schema/taxonomy.json
CHANGED
data/schema/transferOption.json
CHANGED
@@ -44,17 +44,26 @@
|
|
44
44
|
"additionalProperties": true,
|
45
45
|
"items": {
|
46
46
|
"$ref": "./medium.json#"
|
47
|
-
}
|
48
|
-
|
49
|
-
|
50
|
-
"
|
51
|
-
"
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
"$ref": "#/definitions/format"
|
47
|
+
}
|
48
|
+
},
|
49
|
+
"transferFrequency": {
|
50
|
+
"type" : "array",
|
51
|
+
"description" : "The rate of occurrence of distribution.",
|
52
|
+
"example": "",
|
53
|
+
"translation": {},
|
54
|
+
"items" : {
|
55
|
+
"$ref": "./timePeriod.json#/definitions/duration"
|
57
56
|
}
|
57
|
+
},
|
58
|
+
"distributionFormat": {
|
59
|
+
"type": "array",
|
60
|
+
"description": "Provides information about the format used by the distributor.",
|
61
|
+
"translation": {
|
62
|
+
"ISO 19115-2": ["MD_Distribution > distributor > MD_Distributor > distributorFormat > MD_Format"],
|
63
|
+
"FGDC CSDGM": ["distinfo > stdorder > digform"]
|
64
|
+
},
|
65
|
+
"items": {
|
66
|
+
"$ref": "./format.json#"
|
58
67
|
}
|
59
68
|
}
|
60
69
|
}
|
data/test/helper.rb
CHANGED
@@ -17,16 +17,17 @@ class TestHelper < Minitest::Test
|
|
17
17
|
|
18
18
|
@@strict = false
|
19
19
|
|
20
|
-
def self.load_json(filename)
|
21
|
-
|
22
|
-
end
|
23
|
-
|
24
|
-
schemas = `git ls-files #{@@dir}/schema`.split($/)
|
25
|
-
|
26
|
-
schemas.each do |schema|
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
end
|
20
|
+
# def self.load_json(filename)
|
21
|
+
# JSON.load File.new(filename)
|
22
|
+
# end
|
23
|
+
#
|
24
|
+
# schemas = `git ls-files #{@@dir}/schema`.split($/)
|
25
|
+
#
|
26
|
+
# schemas.each do |schema|
|
27
|
+
# name = File.basename(schema)
|
28
|
+
# jschema = JSON::Schema.new(TestHelper.load_json(schema), Addressable::URI.parse(name))
|
29
|
+
#
|
30
|
+
# JSON::Validator.add_schema(jschema)
|
31
|
+
# end
|
32
|
+
ADIWG::MdjsonSchemas::Utils.load_schemas(false)
|
32
33
|
end
|
data/test/tc_schema.rb
CHANGED
@@ -2,7 +2,7 @@ require 'helper.rb'
|
|
2
2
|
|
3
3
|
class TestRootSchema < TestHelper
|
4
4
|
def test_root_schema
|
5
|
-
errors = JSON::Validator.fully_validate(
|
5
|
+
errors = JSON::Validator.fully_validate('schema.json', @@example + 'mdJson.json', strict: @@strict)
|
6
6
|
assert(errors.empty?, errors.join("\n"))
|
7
7
|
end
|
8
8
|
end
|
@@ -20,4 +20,13 @@ class TestUtils < Minitest::Test
|
|
20
20
|
errors = File.exist?(ADIWG::MdjsonSchemas::Utils.schema_dir)
|
21
21
|
assert_equal(true, errors, 'Schema directory does not exist.')
|
22
22
|
end
|
23
|
+
|
24
|
+
def test_load_schemas
|
25
|
+
assert_nil(ADIWG::MdjsonSchemas::Utils.load_schemas, 'Failed to load schemas.')
|
26
|
+
|
27
|
+
JSON::Validator.clear_cache
|
28
|
+
|
29
|
+
assert_nil(ADIWG::MdjsonSchemas::Utils.load_schemas(true), 'Failed to load schemas.')
|
30
|
+
assert_nil(JSON::Validator::schemas.detect { |schema| schema[1].schema['additionalProperties'] }, 'Failed to set additionalProperties.')
|
31
|
+
end
|
23
32
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: adiwg-mdjson_schemas
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.0.0.pre.alpha
|
4
|
+
version: 2.0.0.pre.alpha.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josh Bradley, Stan Smith
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-02-
|
11
|
+
date: 2017-02-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -291,10 +291,10 @@ files:
|
|
291
291
|
- test/tc_transferOption.rb
|
292
292
|
- test/tc_uri.rb
|
293
293
|
- test/tc_usage.rb
|
294
|
-
- test/tc_utils.rb
|
295
294
|
- test/tc_vectorRepresentation.rb
|
296
295
|
- test/tc_verticalExtent.rb
|
297
296
|
- test/tc_voucher.rb
|
297
|
+
- test/tu_utils.rb
|
298
298
|
homepage: https://github.com/adiwg/mdJson-schemas
|
299
299
|
licenses:
|
300
300
|
- UNLICENSE
|
@@ -386,7 +386,7 @@ test_files:
|
|
386
386
|
- test/tc_transferOption.rb
|
387
387
|
- test/tc_uri.rb
|
388
388
|
- test/tc_usage.rb
|
389
|
-
- test/tc_utils.rb
|
390
389
|
- test/tc_vectorRepresentation.rb
|
391
390
|
- test/tc_verticalExtent.rb
|
392
391
|
- test/tc_voucher.rb
|
392
|
+
- test/tu_utils.rb
|