adiwg-mdtranslator 2.13.0 → 2.13.1
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +26 -14
- data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +1 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/modules/module_dateTime.rb +56 -41
- data/lib/adiwg/mdtranslator/readers/fgdc/version.rb +3 -1
- data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader.rb +1 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/mdJson_reader_messages_eng.yml +377 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_additionalDocumentation.rb +6 -8
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_address.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_allocation.rb +6 -7
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_associatedResource.rb +7 -11
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attribute.rb +12 -13
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_attributeGroup.rb +10 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_bearingDistanceResolution.rb +11 -21
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_boundingBox.rb +18 -38
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_citation.rb +10 -8
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_constraint.rb +22 -28
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_contact.rb +17 -18
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_contactPostprocess.rb +5 -3
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coordinateResolution.rb +9 -15
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_coverageDescription.rb +6 -8
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dataDictionary.rb +8 -13
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_date.rb +8 -12
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dateTime.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_dimension.rb +7 -11
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distribution.rb +6 -5
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_distributor.rb +17 -8
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domain.rb +12 -12
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_domainItem.rb +9 -13
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_duration.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entity.rb +14 -12
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityAttribute.rb +20 -19
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityForeignKey.rb +8 -15
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityIndex.rb +7 -10
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_extent.rb +12 -10
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_featureCollection.rb +8 -13
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_format.rb +10 -7
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_funding.rb +8 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geoJson.rb +8 -3
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geodetic.rb +11 -8
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geographicExtent.rb +12 -10
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geographicResolution.rb +10 -13
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geologicAge.rb +11 -10
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryCollection.rb +8 -12
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryFeature.rb +8 -12
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryObject.rb +7 -12
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_geometryProperties.rb +4 -2
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georectifiedRepresentation.rb +13 -20
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georeferenceableRepresentation.rb +12 -14
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gmlIdentifier.rb +8 -8
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_graphic.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_gridRepresentation.rb +12 -13
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_identifier.rb +10 -7
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_imageDescription.rb +9 -3
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keyword.rb +8 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_keywordObject.rb +6 -5
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_legalConstraint.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_lineage.rb +10 -10
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_locale.rb +7 -9
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_maintenance.rb +12 -10
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_mdJson.rb +59 -17
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_measure.rb +9 -16
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_medium.rb +10 -5
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadata.rb +6 -9
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataInfo.rb +16 -16
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_metadataRepository.rb +8 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_obliqueLinePoint.rb +7 -12
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_onlineResource.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_orderProcess.rb +5 -3
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_party.rb +25 -28
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_phone.rb +7 -7
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_processStep.rb +15 -12
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_projectionParameters.rb +11 -10
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_referenceSystemParameters.rb +12 -11
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_releasability.rb +10 -8
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceInfo.rb +29 -40
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceType.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceUsage.rb +5 -5
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_responsibleParty.rb +12 -11
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_schema.rb +6 -9
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scope.rb +11 -8
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_scopeDescription.rb +6 -7
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_securityConstraint.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_series.rb +5 -3
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_source.rb +15 -13
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialReference.rb +10 -9
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialRepresentation.rb +14 -11
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_spatialResolution.rb +14 -10
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicClassification.rb +8 -15
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomicSystem.rb +5 -5
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomy.rb +7 -11
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_temporalExtent.rb +12 -9
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInstant.rb +12 -9
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timeInterval.rb +9 -13
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timePeriod.rb +22 -26
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_transferOption.rb +13 -9
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_valueRange.rb +7 -9
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorObject.rb +6 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_vectorRepresentation.rb +12 -10
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalDatum.rb +10 -8
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_verticalExtent.rb +12 -13
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_voucher.rb +10 -10
- data/lib/adiwg/mdtranslator/version.rb +8 -3
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_spatialOrganization.rb +78 -84
- data/lib/adiwg/mdtranslator/writers/html/sections/html_responsibility.rb +3 -3
- data/lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb +23 -14
- data/lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer_messages_eng.yml +2 -1
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataIdentification.rb +10 -2
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_date.rb +1 -0
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_dictionary.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_geographicExtent.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_mdJson.rb +5 -5
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_medium.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_party.rb +1 -5
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_repository.rb +4 -2
- data/lib/adiwg/mdtranslator/writers/mdJson/sections/mdJson_verticalDatumParameters.rb +1 -0
- data/lib/adiwg/mdtranslator/writers/sbJson/sections/sbJson_citation.rb +11 -11
- metadata +4 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 79cfaca2da52fe74b86aea2367ececbc1860562c
|
4
|
+
data.tar.gz: b37d8e8d9b5bfa47f7e2c556493ffe88794f1e6e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4651683398b739398aa3941766a579834d54f9f0618d8dd855fa60f8174282aa3c31d16ec374316223a5eda870cf92c973f2520f5dac7ebf6f4c3af9e966b9f5
|
7
|
+
data.tar.gz: 22222ad09d4b1a0df9b03c2a9884a746b2e5cfe3a60a3f90d67281ca59e818c392919677c9494bd35348e247845b4f62b68cb57e70878b8b2370a951515f36c9
|
data/Rakefile
CHANGED
@@ -1,22 +1,34 @@
|
|
1
|
+
|
1
2
|
require 'bundler/gem_tasks'
|
2
3
|
require 'rake/testtask'
|
3
4
|
|
4
5
|
Rake::TestTask.new do |t|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
6
|
+
t.libs << 'test'
|
7
|
+
t.test_files = FileList[
|
8
|
+
'test/readers/mdJson/tc*.rb',
|
9
|
+
'test/readers/sbJson/tc*.rb',
|
10
|
+
'test/readers/fgdc/tc*.rb',
|
11
|
+
'test/writers/iso19115-2/tc*.rb',
|
12
|
+
'test/writers/iso19110/tc*.rb',
|
13
|
+
'test/writers/mdJson/tc*.rb',
|
14
|
+
'test/writers/sbJson/tc*.rb',
|
15
|
+
'test/writers/html/tc*.rb',
|
16
|
+
'test/writers/fgdc/tc*.rb',
|
17
|
+
'test/translator/tc*.rb'
|
18
|
+
]
|
19
|
+
t.verbose = true
|
19
20
|
end
|
20
21
|
|
21
22
|
desc 'Run tests'
|
22
23
|
task :default => :test
|
24
|
+
|
25
|
+
# 'test/readers/mdJson/tc*.rb'
|
26
|
+
# 'test/readers/sbJson/tc*.rb',
|
27
|
+
# 'test/readers/fgdc/tc*.rb',
|
28
|
+
# 'test/writers/iso19115-2/tc*.rb',
|
29
|
+
# 'test/writers/iso19110/tc*.rb',
|
30
|
+
# 'test/writers/mdJson/tc*.rb',
|
31
|
+
# 'test/writers/sbJson/tc*.rb',
|
32
|
+
# 'test/writers/html/tc*.rb',
|
33
|
+
# 'test/writers/fgdc/tc*.rb',
|
34
|
+
# 'test/translator/tc*.rb'
|
@@ -2,6 +2,7 @@
|
|
2
2
|
# unpack fgdc metadata date
|
3
3
|
|
4
4
|
# History:
|
5
|
+
# Stan Smith 2018-06-12 change default time zone to UTC
|
5
6
|
# Stan Smith 2017-08-15 original script
|
6
7
|
|
7
8
|
require 'date'
|
@@ -36,52 +37,67 @@ module ADIWG
|
|
36
37
|
time = ''
|
37
38
|
end
|
38
39
|
|
40
|
+
# determine if date/time is universal (default) or local
|
41
|
+
zoneFlag = Fgdc.get_metadata_time_convention
|
42
|
+
zoneFlag = 'universal time' if zoneFlag.nil? || zoneFlag == ''
|
43
|
+
|
39
44
|
# convert date from fgdc to iso format
|
40
45
|
year = date.byteslice(0,4)
|
41
46
|
month = date.byteslice(4,2)
|
42
47
|
day = date.byteslice(6,2)
|
43
|
-
month = '01' if month.nil? || month == ''
|
44
|
-
day = '01' if day.nil? || day == ''
|
45
|
-
dtIn = year + '-' + month + '-' + day
|
46
48
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
minute = time.byteslice(2,2)
|
55
|
-
second = time.byteslice(4,2)
|
56
|
-
else
|
57
|
-
aTime = time.split(':')
|
58
|
-
hour = aTime[0]
|
59
|
-
minute = aTime[1]
|
60
|
-
second = aTime[2]
|
49
|
+
haveFullDate = false
|
50
|
+
dtIn = year
|
51
|
+
unless month.nil? || month == ''
|
52
|
+
dtIn += '-' + month
|
53
|
+
unless day.nil? || day == ''
|
54
|
+
dtIn += '-' + day
|
55
|
+
haveFullDate = true
|
61
56
|
end
|
62
|
-
minute = '00' if minute.nil? || minute == ''
|
63
|
-
second = '00' if second.nil? || second == ''
|
64
|
-
dtIn = dtIn + 'T' + hour + ':' + minute + ':' + second
|
65
57
|
end
|
66
58
|
|
67
|
-
#
|
68
|
-
|
69
|
-
|
59
|
+
# if have full date and some time expression
|
60
|
+
# add time element to date string
|
61
|
+
if haveFullDate
|
62
|
+
unless time == ''
|
63
|
+
aScan = time.scan(/:/)
|
64
|
+
if aScan.empty?
|
65
|
+
hour = time.byteslice(0,2)
|
66
|
+
minute = time.byteslice(2,2)
|
67
|
+
second = time.byteslice(4,2)
|
68
|
+
else
|
69
|
+
aTime = time.split(':')
|
70
|
+
hour = aTime[0]
|
71
|
+
minute = aTime[1]
|
72
|
+
second = aTime[2]
|
73
|
+
end
|
74
|
+
|
75
|
+
# all times must include timezone
|
76
|
+
# timezone format requires hours, minutes, and seconds
|
77
|
+
hour = '00' if hour.nil? || hour == ''
|
78
|
+
minute = '00' if minute.nil? || minute == ''
|
79
|
+
second = '00' if second.nil? || second == ''
|
80
|
+
tmIn = 'T' + hour + ':' + minute + ':' + second
|
81
|
+
|
82
|
+
dtIn += tmIn
|
83
|
+
|
84
|
+
# add offset to date/time string
|
85
|
+
if zoneFlag == 'universal time'
|
86
|
+
dtIn = dtIn + '+00:00'
|
87
|
+
else
|
88
|
+
timeOffset = Time.now.gmt_offset
|
89
|
+
aOffset = timeOffset.divmod(3600)
|
90
|
+
hourOff = aOffset[0]
|
91
|
+
minOff = aOffset[1] * 60
|
92
|
+
if hourOff >= 0
|
93
|
+
zone = '+' + '%02d' % hourOff + ':' + '%02d' % minOff
|
94
|
+
else
|
95
|
+
zone = '%03d' % hourOff + ':' + '%02d' % minOff
|
96
|
+
end
|
97
|
+
dtIn = dtIn + zone
|
98
|
+
end
|
70
99
|
|
71
|
-
# add offset to date/time string
|
72
|
-
if timeFlag == 'universal time'
|
73
|
-
dtIn = dtIn + '+00:00'
|
74
|
-
else
|
75
|
-
timeOffset = Time.now.gmt_offset
|
76
|
-
aOffset = timeOffset.divmod(3600)
|
77
|
-
hourOff = aOffset[0]
|
78
|
-
minOff = aOffset[1] * 60
|
79
|
-
if hourOff >= 0
|
80
|
-
zone = '+' + '%02d' % hourOff + ':' + '%02d' % minOff
|
81
|
-
else
|
82
|
-
zone = '%03d' % hourOff + ':' + '%02d' % minOff
|
83
100
|
end
|
84
|
-
dtIn = dtIn + zone
|
85
101
|
end
|
86
102
|
|
87
103
|
# if dateTimeFromString fails, [0] = nil; [1] = 'ERROR'
|
@@ -92,12 +108,11 @@ module ADIWG
|
|
92
108
|
return nil
|
93
109
|
end
|
94
110
|
|
95
|
-
#
|
96
|
-
|
97
|
-
|
98
|
-
utc = dateTimeReturn
|
111
|
+
# always output 'universal time'
|
112
|
+
if zoneFlag == 'universal time'
|
113
|
+
utc = aDateTimeReturn[0]
|
99
114
|
else
|
100
|
-
utc =
|
115
|
+
utc = aDateTimeReturn[0].new_offset(Rational(0,24))
|
101
116
|
end
|
102
117
|
|
103
118
|
# build internal dateTime object
|
@@ -1,6 +1,8 @@
|
|
1
1
|
# adiwg mdTranslator / readers / fgdc
|
2
2
|
|
3
3
|
# version 1 history
|
4
|
+
# 1.0.2 2018-06-12 change default time stamps from 'local' to UTC
|
5
|
+
# 1.0.2 2018-06-11 fix bug #179 remove 0 time value from date string when time not present
|
4
6
|
# 1.0.1 2018-02-15 add messaging
|
5
7
|
# 1.0.0 2017-07-11 version 1 FGDC CSDGM
|
6
8
|
|
@@ -8,7 +10,7 @@ module ADIWG
|
|
8
10
|
module Mdtranslator
|
9
11
|
module Readers
|
10
12
|
module Fgdc
|
11
|
-
VERSION = "1.0.
|
13
|
+
VERSION = "1.0.2"
|
12
14
|
end
|
13
15
|
end
|
14
16
|
end
|
@@ -1,6 +1,7 @@
|
|
1
1
|
# mdJson reader - process and direct mdJson ingest to internal data structure
|
2
2
|
|
3
3
|
# History:
|
4
|
+
# Stan Smith 2018-06-12 refactor messaging support
|
4
5
|
# Stan Smith 2016-11-12 refactor for mdTranslator 2.0
|
5
6
|
# Stan Smith 2016-10-09 modify 'findContact' to also return contact index and type
|
6
7
|
# Stan Smith 2016-10-07 refactored 'readerModule' to remove mdJson version checking
|
@@ -0,0 +1,377 @@
|
|
1
|
+
# Writer - messages for mdJson 2.x reader
|
2
|
+
|
3
|
+
# History:
|
4
|
+
# Stan Smith 2018-05-12 original script
|
5
|
+
|
6
|
+
messageList:
|
7
|
+
- {id: 1, message: "additional documentation object is empty"}
|
8
|
+
- {id: 2, message: "additional documentation resource type is missing"}
|
9
|
+
- {id: 3, message: "additional documentation citation is missing"}
|
10
|
+
|
11
|
+
- {id: 10, message: "address object is empty"}
|
12
|
+
- {id: 11, message: "address type is missing"}
|
13
|
+
|
14
|
+
- {id: 20, message: "budget allocation object is empty"}
|
15
|
+
- {id: 21, message: "budget allocation amount is missing"}
|
16
|
+
- {id: 22, message: "budget allocation currency type is missing"}
|
17
|
+
|
18
|
+
- {id: 30, message: "associated resource object is empty"}
|
19
|
+
- {id: 31, message: "associated resource resource type is missing"}
|
20
|
+
- {id: 32, message: "associated resource association type is missing"}
|
21
|
+
- {id: 33, message: "associated resource citation is missing"}
|
22
|
+
|
23
|
+
- {id: 40, message: "attribute object is empty"}
|
24
|
+
- {id: 41, message: "attribute sequence identifierType is missing"}
|
25
|
+
- {id: 42, message: "attribute units are missing"}
|
26
|
+
- {id: 43, message: "attribute bounds units are missing"}
|
27
|
+
|
28
|
+
- {id: 50, message: "attribute group object is empty"}
|
29
|
+
- {id: 51, message: "attribute group attribute content type is missing"}
|
30
|
+
|
31
|
+
- {id: 60, message: "bearing distance resolution object is empty"}
|
32
|
+
- {id: 61, message: "bearing distance resolution distance resolution is missing"}
|
33
|
+
- {id: 62, message: "bearing distance resolution distance units are missing"}
|
34
|
+
- {id: 63, message: "bearing distance resolution bearing resolution is missing"}
|
35
|
+
- {id: 64, message: "bearing distance resolution bearing units are missing"}
|
36
|
+
- {id: 65, message: "bearing distance resolution bearing direction is missing"}
|
37
|
+
- {id: 66, message: "bearing distance resolution bearing meridian is missing"}
|
38
|
+
|
39
|
+
- {id: 70, message: "bounding box object is empty"}
|
40
|
+
- {id: 71, message: "bounding box west boundary is missing"}
|
41
|
+
- {id: 72, message: "bounding box longitude must be between -180 and +180"}
|
42
|
+
- {id: 73, message: "bounding box east boundary is missing"}
|
43
|
+
- {id: 74, message: "bounding box south boundary is missing"}
|
44
|
+
- {id: 75, message: "bounding box latitude must be between -90 and +90"}
|
45
|
+
- {id: 76, message: "bounding box north boundary is missing"}
|
46
|
+
- {id: 77, message: "bounding box altitude units of measure are missing"}
|
47
|
+
|
48
|
+
- {id: 80, message: "citation object is empty"}
|
49
|
+
- {id: 81, message: "citation title is missing"}
|
50
|
+
|
51
|
+
- {id: 90, message: "constraint object is empty"}
|
52
|
+
- {id: 91, message: "constraint type must be use, legal, or security"}
|
53
|
+
- {id: 92, message: "constraint type is missing"}
|
54
|
+
- {id: 93, message: "legal constraint object is missing"}
|
55
|
+
- {id: 94, message: "security constraint object is missing"}
|
56
|
+
|
57
|
+
- {id: 100, message: "contact object is empty"}
|
58
|
+
- {id: 101, message: "contact id is missing"}
|
59
|
+
- {id: 102, message: "organization name is missing"}
|
60
|
+
- {id: 103, message: "individual name and/or position are missing"}
|
61
|
+
|
62
|
+
- {id: 110, message: "contact membership organization not found"}
|
63
|
+
|
64
|
+
- {id: 120, message: "coordinate resolution object is empty"}
|
65
|
+
- {id: 121, message: "coordinate resolution abscissa resolution is missing"}
|
66
|
+
- {id: 122, message: "coordinate resolution ordinate resolution is missing"}
|
67
|
+
- {id: 123, message: "coordinate resolution units are missing"}
|
68
|
+
|
69
|
+
- {id: 130, message: "coverage description object is empty"}
|
70
|
+
- {id: 131, message: "coverage description name is missing"}
|
71
|
+
- {id: 132, message: "coverage description description is missing"}
|
72
|
+
|
73
|
+
- {id: 140, message: "data dictionary object is empty"}
|
74
|
+
- {id: 141, message: "data dictionary citation is missing"}
|
75
|
+
- {id: 142, message: "data dictionary subject is missing"}
|
76
|
+
- {id: 143, message: "data dictionary responsible party is missing"}
|
77
|
+
- {id: 144, message: "data dictionary dictionaryFormat is deprecated, use dictionaryFunctionalLanguage"}
|
78
|
+
|
79
|
+
- {id: 150, message: "date object is empty"}
|
80
|
+
- {id: 151, message: "date string is invalid"}
|
81
|
+
- {id: 152, message: "date string is missing"}
|
82
|
+
- {id: 153, message: "date type is missing"}
|
83
|
+
|
84
|
+
- {id: 160, message: "dateTime string is empty"}
|
85
|
+
- {id: 161, message: "dateTime string is invalid"}
|
86
|
+
|
87
|
+
- {id: 170, message: "dimension object is empty"}
|
88
|
+
- {id: 171, message: "dimension type is missing"}
|
89
|
+
- {id: 172, message: "dimension size is missing"}
|
90
|
+
|
91
|
+
- {id: 180, message: "distribution object is empty"}
|
92
|
+
- {id: 181, message: "distribution must have a description or distributor"}
|
93
|
+
|
94
|
+
- {id: 190, message: "distributor object is empty"}
|
95
|
+
- {id: 191, message: "distributor contact is missing"}
|
96
|
+
|
97
|
+
- {id: 200, message: "data dictionary domain object is empty"}
|
98
|
+
- {id: 201, message: "data dictionary domain ID is missing"}
|
99
|
+
- {id: 202, message: "data dictionary domain code is missing"}
|
100
|
+
- {id: 203, message: "data dictionary domain description is missing"}
|
101
|
+
|
102
|
+
- {id: 210, message: "domain item object is empty"}
|
103
|
+
- {id: 211, message: "domain item name is missing"}
|
104
|
+
- {id: 212, message: "domain item value is missing"}
|
105
|
+
- {id: 213, message: "domain item definition is missing"}
|
106
|
+
|
107
|
+
- {id: 220, message: "duration object is empty"}
|
108
|
+
- {id: 221, message: "duration was not specified"}
|
109
|
+
|
110
|
+
- {id: 230, message: "data dictionary entity object is empty"}
|
111
|
+
- {id: 231, message: "data dictionary entity code name is missing"}
|
112
|
+
- {id: 232, message: "data dictionary entity definition is missing"}
|
113
|
+
|
114
|
+
- {id: 240, message: "data dictionary entity attribute object is empty"}
|
115
|
+
- {id: 241, message: "data dictionary entity attribute code name is missing"}
|
116
|
+
- {id: 242, message: "data dictionary entity attribute definition is missing"}
|
117
|
+
- {id: 243, message: "data dictionary entity attribute data type is missing"}
|
118
|
+
- {id: 244, message: "data dictionary entity attribute 'allowMany' is deprecated, use 'mustBeUnique'"}
|
119
|
+
|
120
|
+
- {id: 250, message: "data dictionary entity foreign key object is empty"}
|
121
|
+
- {id: 251, message: "data dictionary entity foreign key local attribute code name is missing"}
|
122
|
+
- {id: 252, message: "data dictionary entity foreign key referenced entity name is missing"}
|
123
|
+
- {id: 253, message: "data dictionary entity foreign key referenced attribute name is missing"}
|
124
|
+
|
125
|
+
- {id: 260, message: "data dictionary entity index object is empty"}
|
126
|
+
- {id: 261, message: "data dictionary entity index code name is missing"}
|
127
|
+
- {id: 262, message: "data dictionary entity index attribute list is missing"}
|
128
|
+
|
129
|
+
- {id: 270, message: "extent object is empty"}
|
130
|
+
- {id: 271, message: "extent must have description or at least one geographic, temporal, or vertical extent"}
|
131
|
+
|
132
|
+
- {id: 280, message: "GeoJSON feature collection object is empty"}
|
133
|
+
- {id: 281, message: "GeoJSON feature collection type must be FeatureCollection"}
|
134
|
+
- {id: 282, message: "GeoJSON feature collection type is missing"}
|
135
|
+
- {id: 283, message: "GeoJSON feature collection features are missing"}
|
136
|
+
|
137
|
+
- {id: 290, message: "distribution format object is empty"}
|
138
|
+
- {id: 291, message: "distribution format specification is missing"}
|
139
|
+
|
140
|
+
- {id: 300, message: "funding object is empty"}
|
141
|
+
- {id: 301, message: "funding must have either an allocation or timePeriod"}
|
142
|
+
|
143
|
+
- {id: 310, message: "geodetic object is empty"}
|
144
|
+
- {id: 311, message: "geodetic ellipsoid name is missing"}
|
145
|
+
|
146
|
+
- {id: 320, message: "geographic extent object is empty"}
|
147
|
+
- {id: 321, message: "geographic extent must have at least one description, identifier, bounding box, or geographic element"}
|
148
|
+
|
149
|
+
- {id: 330, message: "geographic resolution object is empty"}
|
150
|
+
- {id: 331, message: "geographic resolution latitude resolution is missing"}
|
151
|
+
- {id: 332, message: "geographic resolution longitude resolution is missing"}
|
152
|
+
- {id: 333, message: "geographic resolution units are missing"}
|
153
|
+
|
154
|
+
- {id: 340, message: "GeoJSON object is empty"}
|
155
|
+
- {id: 341, message: "GeoJSON object type not recognized"}
|
156
|
+
|
157
|
+
- {id: 350, message: "geologic age object is empty"}
|
158
|
+
- {id: 351, message: "geologic age time scale is missing"}
|
159
|
+
- {id: 352, message: "geologic age age-estimate is missing"}
|
160
|
+
|
161
|
+
- {id: 360, message: "GeoJSON geometry collection object is empty"}
|
162
|
+
- {id: 361, message: "GeoJSON geometry collection type must be GeometryCollection"}
|
163
|
+
- {id: 362, message: "GeoJSON geometry collection type is missing"}
|
164
|
+
- {id: 363, message: "GeoJSON geometry collection geometries are missing"}
|
165
|
+
|
166
|
+
- {id: 370, message: "GeoJSON feature object is empty"}
|
167
|
+
- {id: 371, message: "GeoJSON feature type must be Feature"}
|
168
|
+
- {id: 372, message: "GeoJSON feature type is missing"}
|
169
|
+
- {id: 373, message: "GeoJSON feature geometry is missing"}
|
170
|
+
|
171
|
+
- {id: 380, message: "GeoJSON geometry object is empty"}
|
172
|
+
- {id: 381, message: "GeoJSON geometry object type must be Point, LineString, Polygon, MultiPoint, MultiLineString, or MultiPolygon"}
|
173
|
+
- {id: 382, message: "GeoJSON geometry object type is missing"}
|
174
|
+
- {id: 383, message: "GeoJSON geometry object coordinates are missing"}
|
175
|
+
|
176
|
+
- {id: 390, message: "GeoJSON properties object is empty"}
|
177
|
+
|
178
|
+
- {id: 400, message: "georectified representation object is empty"}
|
179
|
+
- {id: 401, message: "georectified representation grid representation is missing"}
|
180
|
+
- {id: 402, message: "georectified representation must have either 2 or 4 corner points"}
|
181
|
+
- {id: 403, message: "georectified representation center point must be single 2D coordinate"}
|
182
|
+
- {id: 404, message: "georectified representation point-in-pixel is missing"}
|
183
|
+
|
184
|
+
- {id: 410, message: "georeferenceable representation object is empty"}
|
185
|
+
- {id: 411, message: "georeferenceable representation grid representation is missing"}
|
186
|
+
- {id: 412, message: "georeferenceable representation georeferenced parameters are missing"}
|
187
|
+
|
188
|
+
- {id: 420, message: "GML Identifier object is empty"}
|
189
|
+
- {id: 421, message: "GML Identifier identifier is missing"}
|
190
|
+
- {id: 422, message: "GML Identifier namespace is missing"}
|
191
|
+
|
192
|
+
- {id: 430, message: "graphic overview object is empty"}
|
193
|
+
- {id: 431, message: "graphic overview file name is missing"}
|
194
|
+
|
195
|
+
- {id: 440, message: "grid representation object is empty"}
|
196
|
+
- {id: 441, message: "grid representation number-of-dimensions is missing"}
|
197
|
+
- {id: 442, message: "grid representation dimensions are missing"}
|
198
|
+
- {id: 443, message: "grid representation cell geometry is missing"}
|
199
|
+
|
200
|
+
- {id: 450, message: "identifier object is empty"}
|
201
|
+
- {id: 451, message: "identifier object identifier is missing"}
|
202
|
+
|
203
|
+
- {id: 460, message: "image description object is empty"}
|
204
|
+
|
205
|
+
- {id: 470, message: "keyword object is empty"}
|
206
|
+
- {id: 471, message: "keyword list is missing"}
|
207
|
+
|
208
|
+
- {id: 480, message: "keyword object is empty"}
|
209
|
+
- {id: 481, message: "keyword object is missing keyword"}
|
210
|
+
|
211
|
+
- {id: 490, message: "legal constraint object is empty"}
|
212
|
+
- {id: 491, message: "legal constraint was not defined"}
|
213
|
+
|
214
|
+
- {id: 500, message: "resource lineage object is empty"}
|
215
|
+
- {id: 501, message: "resource lineage must have at least one statement, process step, or source"}
|
216
|
+
|
217
|
+
- {id: 510, message: "locale object is empty"}
|
218
|
+
- {id: 511, message: "locale language code is missing"}
|
219
|
+
- {id: 512, message: "locale character set code is missing"}
|
220
|
+
|
221
|
+
- {id: 520, message: "maintenance object is empty"}
|
222
|
+
- {id: 521, message: "maintenance frequency is missing"}
|
223
|
+
|
224
|
+
- {id: 530, message: "mdJSON object is empty"}
|
225
|
+
- {id: 531, message: "mdJSON schema object is missing"}
|
226
|
+
- {id: 532, message: "mdJSON contact object is missing"}
|
227
|
+
- {id: 533, message: "mdJSON metadata object is missing"}
|
228
|
+
|
229
|
+
- {id: 540, message: "measure object is empty"}
|
230
|
+
- {id: 541, message: "measure type must be distance, length, vertical, or angle"}
|
231
|
+
- {id: 542, message: "measure type is missing"}
|
232
|
+
- {id: 543, message: "measure value is missing"}
|
233
|
+
- {id: 544, message: "measure unit-of-measure is missing"}
|
234
|
+
|
235
|
+
- {id: 550, message: "offline option (medium) is empty"}
|
236
|
+
|
237
|
+
- {id: 560, message: "metadata object is empty"}
|
238
|
+
- {id: 561, message: "metadata-info object is missing"}
|
239
|
+
- {id: 562, message: "resource-info object is missing"}
|
240
|
+
|
241
|
+
- {id: 570, message: "metadata-info object is empty"}
|
242
|
+
- {id: 571, message: "metadata contact is missing"}
|
243
|
+
|
244
|
+
- {id: 580, message: "metadata repository object is empty"}
|
245
|
+
- {id: 581, message: "metadata repository name is missing"}
|
246
|
+
|
247
|
+
- {id: 590, message: "oblique line-point object is empty"}
|
248
|
+
- {id: 591, message: "oblique line-point latitude is missing"}
|
249
|
+
- {id: 592, message: "oblique line-point longitude is missing"}
|
250
|
+
|
251
|
+
- {id: 600, message: "online resource object is empty"}
|
252
|
+
- {id: 601, message: "online resource URI is missing"}
|
253
|
+
|
254
|
+
- {id: 610, message: "order process object is empty"}
|
255
|
+
|
256
|
+
- {id: 620, message: "party object is empty"}
|
257
|
+
- {id: 621, message: "party contact ID is missing"}
|
258
|
+
- {id: 622, message: "party contact not in contacts list"}
|
259
|
+
- {id: 623, message: "party organization member contact not in contacts list"}
|
260
|
+
|
261
|
+
- {id: 630, message: "phone object is empty"}
|
262
|
+
- {id: 631, message: "phone number is missing"}
|
263
|
+
- {id: 632, message: "phone service type is missing"}
|
264
|
+
|
265
|
+
- {id: 640, message: "process step object is empty"}
|
266
|
+
- {id: 641, message: "process step description is missing"}
|
267
|
+
|
268
|
+
- {id: 650, message: "projection parameters object is empty"}
|
269
|
+
- {id: 651, message: "projection parameters projection code is missing"}
|
270
|
+
|
271
|
+
- {id: 660, message: "reference system parameter set is empty"}
|
272
|
+
- {id: 661, message: "reference system parameter set must have at least one projection, geodetic, or vertical datum"}
|
273
|
+
|
274
|
+
- {id: 670, message: "releasability object is empty"}
|
275
|
+
- {id: 671, message: "releasability must have at least one addressee or statement"}
|
276
|
+
|
277
|
+
- {id: 680, message: "resource info object is empty"}
|
278
|
+
- {id: 681, message: "resource type is missing"}
|
279
|
+
- {id: 682, message: "resource citation is missing"}
|
280
|
+
- {id: 683, message: "resource abstract is missing"}
|
281
|
+
- {id: 684, message: "resource status is missing"}
|
282
|
+
- {id: 685, message: "topicCategory is deprecated, items were moved to keywords, keywordType 'isoTopicCategory'"}
|
283
|
+
- {id: 686, message: "resource point-of-contact is missing"}
|
284
|
+
- {id: 687, message: "taxonomy is now an array, the single taxonomy object was deprecated"}
|
285
|
+
- {id: 688, message: "resource default locale is missing"}
|
286
|
+
|
287
|
+
- {id: 690, message: "resource type object is empty"}
|
288
|
+
- {id: 691, message: "resource type is missing"}
|
289
|
+
|
290
|
+
- {id: 700, message: "resource usage object is empty"}
|
291
|
+
- {id: 701, message: "resource specific usage is missing"}
|
292
|
+
|
293
|
+
- {id: 710, message: "responsible party object is empty"}
|
294
|
+
- {id: 711, message: "responsible party role is missing"}
|
295
|
+
- {id: 712, message: "responsible party must have at least one party"}
|
296
|
+
|
297
|
+
- {id: 720, message: "schema object is empty"}
|
298
|
+
- {id: 721, message: "schema name is missing"}
|
299
|
+
- {id: 722, message: "schema version is missing"}
|
300
|
+
|
301
|
+
- {id: 730, message: "scope object is empty"}
|
302
|
+
- {id: 731, message: "scope code is missing"}
|
303
|
+
|
304
|
+
- {id: 740, message: "scope description object is empty"}
|
305
|
+
- {id: 741, message: "scope description needs at least one dataset, attribute, feature, or other"}
|
306
|
+
|
307
|
+
- {id: 750, message: "security constraint object is empty"}
|
308
|
+
- {id: 751, message: "security constraint classification is missing"}
|
309
|
+
|
310
|
+
- {id: 760, message: "series object is empty"}
|
311
|
+
|
312
|
+
- {id: 770, message: "source object is empty"}
|
313
|
+
- {id: 771, message: "source requires a description or scope"}
|
314
|
+
|
315
|
+
- {id: 780, message: "spatial reference system object is empty"}
|
316
|
+
- {id: 781, message: "spatial reference system must provide a reference system type, identifier, WKT, or parameter set"}
|
317
|
+
|
318
|
+
- {id: 790, message: "spatial representation object is empty"}
|
319
|
+
- {id: 791, message: "spatial representation did not have an object of supported type"}
|
320
|
+
|
321
|
+
- {id: 800, message: "spatial resolution object is empty"}
|
322
|
+
- {id: 801, message: "spatial resolution did not have an object of supported type"}
|
323
|
+
|
324
|
+
- {id: 810, message: "taxonomic classification object is empty"}
|
325
|
+
- {id: 811, message: "taxonomic classification taxonomicRank is deprecated, use taxonomicLevel"}
|
326
|
+
- {id: 812, message: "taxonomic classification level is missing"}
|
327
|
+
- {id: 813, message: "taxonomic classification latinName is deprecated, use taxonomicName"}
|
328
|
+
- {id: 814, message: "taxonomic classification name is missing"}
|
329
|
+
|
330
|
+
- {id: 820, message: "taxonomic system object is empty"}
|
331
|
+
- {id: 821, message: "taxonomic system citation is missing"}
|
332
|
+
|
333
|
+
- {id: 830, message: "taxonomy object is empty"}
|
334
|
+
- {id: 831, message: "taxonomic classification system object is missing"}
|
335
|
+
- {id: 832, message: "taxonomic identification procedure is missing"}
|
336
|
+
- {id: 833, message: "taxonomic classification is missing"}
|
337
|
+
|
338
|
+
- {id: 840, message: "temporal extent object is empty"}
|
339
|
+
- {id: 841, message: "temporal extent must have a time period or time instant"}
|
340
|
+
|
341
|
+
- {id: 850, message: "time instant object is empty"}
|
342
|
+
- {id: 851, message: "time instant must have dateTime or geologic age"}
|
343
|
+
|
344
|
+
- {id: 860, message: "time interval object is empty"}
|
345
|
+
- {id: 861, message: "time interval must be an integer"}
|
346
|
+
- {id: 862, message: "time interval is missing"}
|
347
|
+
- {id: 863, message: "time interval units are missing or invalid"}
|
348
|
+
|
349
|
+
- {id: 870, message: "time period object is empty"}
|
350
|
+
- {id: 871, message: "time period must have a start and/or end dateTime, or geologic age"}
|
351
|
+
- {id: 872, message: "time interval must be accompanied by a start and/or end dateTime"}
|
352
|
+
- {id: 873, message: "duration must be accompanied by a start and/or end dateTime"}
|
353
|
+
|
354
|
+
- {id: 880, message: "transfer option object is empty"}
|
355
|
+
- {id: 881, message: "transfer option did not provide an online or offline option"}
|
356
|
+
|
357
|
+
- {id: 890, message: "value range object is empty"}
|
358
|
+
- {id: 891, message: "value range minimum is missing"}
|
359
|
+
- {id: 892, message: "value range maximum is missing"}
|
360
|
+
|
361
|
+
- {id: 900, message: "vector object is empty"}
|
362
|
+
- {id: 901, message: "vector object type is missing"}
|
363
|
+
|
364
|
+
- {id: 910, message: "vector representation object is empty"}
|
365
|
+
- {id: 911, message: "vector representation must have a topology level or vector object"}
|
366
|
+
|
367
|
+
- {id: 920, message: "vertical datum object is empty"}
|
368
|
+
- {id: 921, message: "vertical datum must have an identifier or all other elements"}
|
369
|
+
|
370
|
+
- {id: 930, message: "vertical extent object is empty"}
|
371
|
+
- {id: 931, message: "vertical extent minimum value is missing"}
|
372
|
+
- {id: 932, message: "vertical extent maximum value is missing"}
|
373
|
+
- {id: 933, message: "vertical extent CRS identifier is missing"}
|
374
|
+
|
375
|
+
- {id: 940, message: "voucher object is empty"}
|
376
|
+
- {id: 941, message: "voucher specimen is missing"}
|
377
|
+
- {id: 942, message: "voucher repository is missing"}
|