adiwg-mdtranslator 2.12.0 → 2.13.0
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/CHANGELOG.md +15 -1
- data/adiwg-mdtranslator.gemspec +1 -1
- data/lib/adiwg/mdtranslator/internal/internal_metadata_obj.rb +2 -0
- data/lib/adiwg/mdtranslator/readers/fgdc/fgdc_reader.rb +4 -0
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_entityAttribute.rb +1 -1
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_georectifiedRepresentation.rb +7 -12
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_resourceInfo.rb +12 -11
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_source.rb +15 -7
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_taxonomy.rb +1 -6
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_timePeriod.rb +15 -1
- data/lib/adiwg/mdtranslator/readers/mdJson/modules/module_transferOption.rb +1 -3
- data/lib/adiwg/mdtranslator/version.rb +5 -1
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_citation.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_contact.rb +4 -2
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_geologicAge.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_identification.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_method.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_source.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomyKeywords.rb +4 -4
- data/lib/adiwg/mdtranslator/writers/fgdc/classes/class_taxonomySystem.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/iso19110/classes/class_fcFeatureCatalogue.rb +7 -7
- data/lib/adiwg/mdtranslator/writers/iso19110/iso19110_writer.rb +6 -5
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_address.rb +104 -104
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_aggregateInformation.rb +63 -60
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/{class_attributeGroup.rb → class_attribute.rb} +1 -1
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_baseUnit.rb +23 -23
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_boundingBox.rb +64 -60
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_browseGraphic.rb +55 -51
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_citation.rb +24 -14
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_contact.rb +96 -91
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_conventionalUnit.rb +45 -45
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_coverageDescription.rb +104 -77
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_crs.rb +4 -4
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataIdentification.rb +23 -8
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dataQuality.rb +57 -52
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_date.rb +49 -46
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_definitionUnit.rb +20 -20
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_derivedUnit.rb +32 -32
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_dimension.rb +56 -50
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distribution.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_distributor.rb +77 -74
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_enumerationList.rb +34 -34
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_extension.rb +190 -186
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_extent.rb +66 -66
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_feature.rb +50 -45
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_featureCollection.rb +35 -35
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_featureProperties.rb +43 -43
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_format.rb +73 -69
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_fraction.rb +37 -33
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicElement.rb +59 -54
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geographicExtent.rb +58 -58
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geometricObjects.rb +49 -46
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_geometryCollection.rb +68 -63
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_georectified.rb +113 -110
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_georeferenceable.rb +78 -75
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gmlIdentifier.rb +17 -17
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_grid.rb +55 -52
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_gridRepresentation.rb +19 -19
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_hierarchy.rb +47 -47
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_image.rb +132 -132
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_keyword.rb +5 -2
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_lineString.rb +70 -70
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_lineage.rb +55 -55
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_locale.rb +51 -48
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_maintenance.rb +114 -105
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_mdBand.rb +111 -111
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_mdIdentifier.rb +9 -3
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_measure.rb +58 -41
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_medium.rb +104 -104
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miBand.rb +70 -70
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_miMetadata.rb +51 -16
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiLine.rb +70 -70
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiPoint.rb +70 -70
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_multiPolygon.rb +70 -70
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_onlineResource.rb +79 -76
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_orderProcess.rb +67 -67
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_phone.rb +67 -67
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_point.rb +8 -8
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_polygon.rb +89 -89
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_processStep.rb +9 -3
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rangeDimension.rb +59 -54
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_referenceSystem.rb +1 -1
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_resolution.rb +47 -47
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_responsibleParty.rb +111 -105
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_rsIdentifier.rb +71 -65
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_scope.rb +54 -50
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_scopeDescription.rb +45 -42
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_securityConstraints.rb +92 -89
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_series.rb +55 -55
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_source.rb +98 -91
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_spatialRepresentation.rb +42 -42
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomicClassification.rb +63 -59
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomicSystem.rb +40 -40
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_taxonomy.rb +133 -130
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_temporalExtent.rb +49 -49
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_timeInstant.rb +60 -60
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_timePeriod.rb +110 -108
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_transferOptions.rb +71 -69
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_unitsOfMeasure.rb +243 -243
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_usage.rb +98 -95
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_useConstraints.rb +38 -38
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_vectorRepresentation.rb +48 -48
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_verticalExtent.rb +74 -70
- data/lib/adiwg/mdtranslator/writers/iso19115_2/classes/class_vouchers.rb +56 -53
- data/lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer.rb +61 -11
- data/lib/adiwg/mdtranslator/writers/iso19115_2/iso19115_2_writer_messages_eng.yml +109 -0
- data/lib/adiwg/mdtranslator/writers/iso19115_2/version.rb +3 -2
- data/lib/adiwg/mdtranslator_cli.rb +21 -4
- metadata +6 -5
@@ -1,6 +1,7 @@
|
|
1
1
|
# Writer - internal data structure to ISO 19110:2003
|
2
2
|
|
3
3
|
# History:
|
4
|
+
# Stan Smith 2018-03-30 add error/warning/notice message methods
|
4
5
|
# Stan Smith 2017-05-26 allow choice of which dictionary to translate
|
5
6
|
# ... fix bug when no dictionary is provided in mdJson
|
6
7
|
# Stan Smith 2017-01-20 refactor for mdJson/mdTranslator 2.0
|
@@ -20,7 +21,7 @@ module ADIWG
|
|
20
21
|
module Writers
|
21
22
|
module Iso19110
|
22
23
|
|
23
|
-
def self.startWriter(intObj,
|
24
|
+
def self.startWriter(intObj, hResponseObj, whichDict: 0)
|
24
25
|
|
25
26
|
# Iso19110 can only output one dictionary at a time
|
26
27
|
# test if requested dictionary is in input file
|
@@ -33,7 +34,7 @@ module ADIWG
|
|
33
34
|
# make objects available to the instance
|
34
35
|
@intObj = intObj
|
35
36
|
@contacts = intObj[:contacts]
|
36
|
-
@hResponseObj =
|
37
|
+
@hResponseObj = hResponseObj
|
37
38
|
dictionary = intObj[:dataDictionaries][whichDict]
|
38
39
|
@domains = dictionary[:domains]
|
39
40
|
|
@@ -43,14 +44,14 @@ module ADIWG
|
|
43
44
|
@aMessagesList = hMessageList['messageList']
|
44
45
|
|
45
46
|
# set the format of the output file based on the writer specified
|
46
|
-
|
47
|
-
|
47
|
+
hResponseObj[:writerOutputFormat] = 'xml'
|
48
|
+
hResponseObj[:writerVersion] = ADIWG::Mdtranslator::Writers::Iso19110::VERSION
|
48
49
|
|
49
50
|
# create new XML document
|
50
51
|
@xml = Builder::XmlMarkup.new(indent: 3)
|
51
52
|
|
52
53
|
# start writing the ISO 19110 XML record
|
53
|
-
metadataWriter = FC_FeatureCatalogue.new(@xml,
|
54
|
+
metadataWriter = FC_FeatureCatalogue.new(@xml, hResponseObj)
|
54
55
|
metadata = metadataWriter.writeXML(intObj)
|
55
56
|
|
56
57
|
return metadata
|
@@ -2,111 +2,111 @@
|
|
2
2
|
# 19115-2 writer output in XML
|
3
3
|
|
4
4
|
# History:
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
5
|
+
# Stan Smith 2016-11-18 refactored for mdTranslator/mdJson 2.0
|
6
|
+
# Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS
|
7
|
+
# Stan Smith 2015-07-14 refactored to make iso19110 independent of iso19115_2 classes
|
8
|
+
# Stan Smith 2015-06-22 replace global ($response) with passed in object (hResponseObj)
|
9
|
+
# Stan Smith 2014-12-23 refactored to drop physical address elements if no
|
10
|
+
# ... deliveryPoints are provided
|
11
|
+
# Stan Smith 2014-12-22 added return if passed nil address objects
|
12
|
+
# Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
|
13
13
|
# Stan Smith 2013-08-09 original script
|
14
14
|
|
15
15
|
module ADIWG
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
16
|
+
module Mdtranslator
|
17
|
+
module Writers
|
18
|
+
module Iso19115_2
|
19
|
+
|
20
|
+
class CI_Address
|
21
|
+
|
22
|
+
def initialize(xml, hResponseObj)
|
23
|
+
@xml = xml
|
24
|
+
@hResponseObj = hResponseObj
|
25
|
+
end
|
26
|
+
|
27
|
+
def writeXML(hAddress, aEmail)
|
28
|
+
|
29
|
+
@xml.tag!('gmd:CI_Address') do
|
30
|
+
|
31
|
+
|
32
|
+
unless hAddress.nil?
|
33
|
+
|
34
|
+
# address - address type (not used by ISO 19115-2)
|
35
|
+
|
36
|
+
# address - description (not used by ISO 19115-2)
|
37
|
+
|
38
|
+
# address - delivery points []
|
39
|
+
aDeliveryPoints = hAddress[:deliveryPoints]
|
40
|
+
aDeliveryPoints.each do |myPoint|
|
41
|
+
@xml.tag!('gmd:deliveryPoint') do
|
42
|
+
@xml.tag!('gco:CharacterString', myPoint)
|
43
|
+
end
|
44
|
+
end
|
45
|
+
if aDeliveryPoints.empty? && @hResponseObj[:writerShowTags]
|
46
|
+
@xml.tag!('gmd:deliveryPoint')
|
47
|
+
end
|
48
|
+
|
49
|
+
# address - city
|
50
|
+
s = hAddress[:city]
|
51
|
+
unless s.nil?
|
52
|
+
@xml.tag!('gmd:city') do
|
53
|
+
@xml.tag!('gco:CharacterString', s)
|
54
|
+
end
|
55
|
+
end
|
56
|
+
if s.nil? && @hResponseObj[:writerShowTags]
|
57
|
+
@xml.tag!('gmd:city')
|
58
|
+
end
|
59
|
+
|
60
|
+
# address - administrative area
|
61
|
+
s = hAddress[:adminArea]
|
62
|
+
unless s.nil?
|
63
|
+
@xml.tag!('gmd:administrativeArea') do
|
64
|
+
@xml.tag!('gco:CharacterString', s)
|
65
|
+
end
|
66
|
+
end
|
67
|
+
if s.nil? && @hResponseObj[:writerShowTags]
|
68
|
+
@xml.tag!('gmd:administrativeArea')
|
69
|
+
end
|
70
|
+
|
71
|
+
# address - postal code
|
72
|
+
s = hAddress[:postalCode]
|
73
|
+
unless s.nil?
|
74
|
+
@xml.tag!('gmd:postalCode') do
|
75
|
+
@xml.tag!('gco:CharacterString', s)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
if s.nil? && @hResponseObj[:writerShowTags]
|
79
|
+
@xml.tag!('gmd:postalCode')
|
80
|
+
end
|
81
|
+
|
82
|
+
# address - country
|
83
|
+
s = hAddress[:country]
|
84
|
+
unless s.nil?
|
85
|
+
@xml.tag!('gmd:country') do
|
86
|
+
@xml.tag!('gco:CharacterString', s)
|
87
|
+
end
|
88
|
+
end
|
89
|
+
if s.nil? && @hResponseObj[:writerShowTags]
|
90
|
+
@xml.tag!('gmd:country')
|
91
|
+
end
|
92
|
+
|
93
|
+
end
|
94
|
+
|
95
|
+
# address - email addresses []
|
96
|
+
aEmail.each do |myEmail|
|
97
|
+
@xml.tag!('gmd:electronicMailAddress') do
|
98
|
+
@xml.tag!('gco:CharacterString', myEmail)
|
99
|
+
end
|
100
|
+
end
|
101
|
+
if aEmail.empty? && @hResponseObj[:writerShowTags]
|
102
|
+
@xml.tag!('gmd:electronicMailAddress')
|
103
|
+
end
|
104
|
+
|
105
|
+
end # CI_Address tag
|
106
|
+
end # writeXML
|
107
|
+
end # CI_Address class
|
108
|
+
|
109
|
+
end
|
110
|
+
end
|
111
|
+
end
|
112
112
|
end
|
@@ -2,81 +2,84 @@
|
|
2
2
|
# 19115-2 writer output in XML
|
3
3
|
|
4
4
|
# History:
|
5
|
-
#
|
6
|
-
#
|
7
|
-
#
|
8
|
-
#
|
9
|
-
#
|
10
|
-
#
|
11
|
-
#
|
12
|
-
#
|
13
|
-
#
|
5
|
+
# Stan Smith 2018-04-09 add error and warning messaging
|
6
|
+
# Stan Smith 2016-11-23 refactored for mdTranslator/mdJson 2.0
|
7
|
+
# Stan Smith 2015-07-14 refactored to eliminate namespace globals $WriterNS and $IsoNS
|
8
|
+
# Stan Smith 2015-07-14 refactored to make iso19110 independent of iso19115_2 classes
|
9
|
+
# Stan Smith 2015-06-22 replace global ($response) with passed in object (hResponseObj)
|
10
|
+
# Stan Smith 2015-06-11 change all codelists to use 'class_codelist' method
|
11
|
+
# Stan Smith 2014-12-15 refactored to handle namespacing readers and writers
|
12
|
+
# Stan Smith 2014-11-06 take initiativeType from internal initiativeType
|
13
|
+
# ... rather than resourceType for 0.9.0
|
14
|
+
# Stan Smith 2014-07-08 modify require statements to function in RubyGem structure
|
14
15
|
# Stan Smith 2014-05-29 original script
|
15
16
|
|
17
|
+
require_relative '../iso19115_2_writer'
|
16
18
|
require_relative 'class_codelist'
|
17
19
|
require_relative 'class_citation'
|
18
20
|
|
19
21
|
module ADIWG
|
20
|
-
|
21
|
-
|
22
|
-
|
22
|
+
module Mdtranslator
|
23
|
+
module Writers
|
24
|
+
module Iso19115_2
|
23
25
|
|
24
|
-
|
26
|
+
class MD_AggregateInformation
|
25
27
|
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
28
|
+
def initialize(xml, hResponseObj)
|
29
|
+
@xml = xml
|
30
|
+
@hResponseObj = hResponseObj
|
31
|
+
@NameSpace = ADIWG::Mdtranslator::Writers::Iso19115_2
|
32
|
+
end
|
30
33
|
|
31
|
-
|
34
|
+
def writeXML(hAssocRes)
|
32
35
|
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
+
# classes used
|
37
|
+
codelistClass = MD_Codelist.new(@xml, @hResponseObj)
|
38
|
+
citationClass = CI_Citation.new(@xml, @hResponseObj)
|
36
39
|
|
37
|
-
|
40
|
+
@xml.tag!('gmd:MD_AggregateInformation') do
|
38
41
|
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
42
|
+
# aggregate information - aggregate data set name {citation}
|
43
|
+
hAssocCit = hAssocRes[:resourceCitation]
|
44
|
+
unless hAssocCit.empty?
|
45
|
+
@xml.tag!('gmd:aggregateDataSetName') do
|
46
|
+
citationClass.writeXML(hAssocCit, 'associated resource')
|
47
|
+
end
|
48
|
+
end
|
49
|
+
if hAssocCit.empty? && @hResponseObj[:writerShowTags]
|
50
|
+
@xml.tag!('gmd:aggregateDataSetName')
|
51
|
+
end
|
49
52
|
|
50
|
-
|
51
|
-
|
53
|
+
# aggregate information - aggregate data set identifier (use citation > identifier)
|
54
|
+
# data set identifier was dropped from 19115-1 and not carried in mdJson
|
52
55
|
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
|
62
|
-
|
56
|
+
# aggregate information - association type (required)
|
57
|
+
s = hAssocRes[:associationType]
|
58
|
+
unless s.nil?
|
59
|
+
@xml.tag!('gmd:associationType') do
|
60
|
+
codelistClass.writeXML('gmd', 'iso_associationType', s)
|
61
|
+
end
|
62
|
+
end
|
63
|
+
if s.nil?
|
64
|
+
@NameSpace.issueWarning(1, 'gmd:associationType')
|
65
|
+
end
|
63
66
|
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
67
|
+
# aggregate information - initiative type
|
68
|
+
s = hAssocRes[:initiativeType]
|
69
|
+
unless s.nil?
|
70
|
+
@xml.tag!('gmd:initiativeType') do
|
71
|
+
codelistClass.writeXML('gmd', 'iso_initiativeType', s)
|
72
|
+
end
|
73
|
+
end
|
74
|
+
if s.nil? && @hResponseObj[:writerShowTags]
|
75
|
+
@xml.tag!('gmd:initiativeType')
|
76
|
+
end
|
74
77
|
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
+
end # MD_AggregateInformation tag
|
79
|
+
end # writeXML
|
80
|
+
end # MD_AggregateInformation class
|
78
81
|
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
+
end
|
83
|
+
end
|
84
|
+
end
|
82
85
|
end
|
@@ -5,34 +5,34 @@
|
|
5
5
|
# Stan Smith 2015-08-27 copied from 19110 writer
|
6
6
|
|
7
7
|
module ADIWG
|
8
|
-
|
9
|
-
|
10
|
-
|
8
|
+
module Mdtranslator
|
9
|
+
module Writers
|
10
|
+
module Iso19115_2
|
11
11
|
|
12
|
-
|
12
|
+
class BaseUnit
|
13
13
|
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
14
|
+
def initialize(xml, hResponseObj)
|
15
|
+
@xml = xml
|
16
|
+
@hResponseObj = hResponseObj
|
17
|
+
end
|
18
18
|
|
19
|
-
|
19
|
+
def writeXML(hBase)
|
20
20
|
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
21
|
+
# create and identity for the unit
|
22
|
+
@hResponseObj[:writerMissingIdCount] = @hResponseObj[:writerMissingIdCount].succ
|
23
|
+
unitID = 'unit' + @hResponseObj[:writerMissingIdCount]
|
24
|
+
@xml.tag!('gml:BaseUnit', {'gml:id' => unitID}) do
|
25
|
+
@xml.tag!('gml:identifier', {'codeSpace' => hBase[:codeSpace]}, hBase[:identifier])
|
26
|
+
@xml.tag!('gml:name', hBase[:name])
|
27
|
+
@xml.tag!('gml:catalogSymbol', hBase[:catalogSymbol])
|
28
|
+
@xml.tag!('gml:unitsSystem', {'xlink:href' => hBase[:unitsSystem]})
|
29
|
+
end
|
30
30
|
|
31
|
-
|
32
|
-
|
33
|
-
end
|
31
|
+
end
|
34
32
|
|
35
33
|
end
|
36
|
-
|
37
|
-
|
34
|
+
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
38
38
|
end
|