adiwg-mdtranslator 2.13.0 → 2.13.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 +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"}
|