adiwg-mdjson_schemas 2.0.0.pre.alpha → 2.0.0.pre.alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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
|