datacite-mapping 0.3.0 → 0.4.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.rubocop.yml +4 -0
- data/CHANGES.md +15 -0
- data/README.md +8 -3
- data/datacite-mapping.gemspec +2 -3
- data/lib/datacite/mapping.rb +1 -1
- data/lib/datacite/mapping/affiliation.rb +44 -0
- data/lib/datacite/mapping/alternate_identifier.rb +2 -0
- data/lib/datacite/mapping/contributor.rb +32 -6
- data/lib/datacite/mapping/contributor_name.rb +42 -0
- data/lib/datacite/mapping/creator.rb +39 -7
- data/lib/datacite/mapping/creator_name.rb +42 -0
- data/lib/datacite/mapping/date.rb +12 -0
- data/lib/datacite/mapping/date_value.rb +6 -0
- data/lib/datacite/mapping/description.rb +6 -2
- data/lib/datacite/mapping/empty_filtering_nodes.rb +1 -0
- data/lib/datacite/mapping/funding_reference.rb +14 -1
- data/lib/datacite/mapping/geo_location.rb +6 -1
- data/lib/datacite/mapping/geo_location_box.rb +5 -0
- data/lib/datacite/mapping/geo_location_node.rb +4 -2
- data/lib/datacite/mapping/geo_location_point.rb +3 -0
- data/lib/datacite/mapping/geo_location_polygon.rb +10 -1
- data/lib/datacite/mapping/identifier.rb +11 -9
- data/lib/datacite/mapping/module_info.rb +2 -2
- data/lib/datacite/mapping/name_identifier.rb +10 -6
- data/lib/datacite/mapping/name_type.rb +18 -0
- data/lib/datacite/mapping/publisher.rb +42 -0
- data/lib/datacite/mapping/read_only_nodes.rb +4 -0
- data/lib/datacite/mapping/related_identifier.rb +38 -1
- data/lib/datacite/mapping/resource.rb +25 -11
- data/lib/datacite/mapping/resource_type.rb +4 -0
- data/lib/datacite/mapping/rights.rb +33 -6
- data/lib/datacite/mapping/subject.rb +3 -2
- data/lib/datacite/mapping/title.rb +3 -2
- data/spec/data/datacite4/{datacite-example-Box_dateCollected_DataCollector-v4.0.xml → datacite-example-Box_dateCollected_DataCollector-v4.xml} +9 -11
- data/spec/data/datacite4/{datacite-example-GeoLocation-v4.0.xml → datacite-example-GeoLocation-v4.xml} +11 -10
- data/spec/data/datacite4/{datacite-example-HasMetadata-v4.0.xml → datacite-example-HasMetadata-v4.xml} +18 -13
- data/spec/data/datacite4/{datacite-example-ResearchGroup_Methods-v4.0.xml → datacite-example-ResearchGroup_Methods-v4.xml} +14 -12
- data/spec/data/datacite4/{datacite-example-ResourceTypeGeneral_Collection-v4.0.xml → datacite-example-ResourceTypeGeneral_Collection-v4.xml} +9 -9
- data/spec/data/datacite4/datacite-example-affiliation-v4.xml +114 -0
- data/spec/data/datacite4/{datacite-example-complicated-v4.0.xml → datacite-example-complicated-v4.xml} +14 -11
- data/spec/data/datacite4/datacite-example-datapaper-v4.xml +32 -0
- data/spec/data/datacite4/{datacite-example-dataset-v4.0.xml → datacite-example-dataset-v4.xml} +20 -14
- data/spec/data/datacite4/datacite-example-full-v4.xml +114 -0
- data/spec/data/datacite4/{datacite-example-fundingReference-v.4.0.xml → datacite-example-fundingReference-v4.xml} +16 -13
- data/spec/data/datacite4/datacite-example-polygon-advanced-v4.xml +141 -0
- data/spec/data/datacite4/datacite-example-polygon-v4.xml +161 -0
- data/spec/data/datacite4/{datacite-example-relationTypeIsIdenticalTo-v4.0.xml → datacite-example-relationTypeIsIdenticalTo-v4.xml} +17 -17
- data/spec/data/datacite4/datacite-example-software-v4.xml +66 -0
- data/spec/data/datacite4/{datacite-example-video-v4.0.xml → datacite-example-video-v4.xml} +7 -7
- data/spec/data/datacite4/{datacite-example-workflow-v4.0.xml → datacite-example-workflow-v4.xml} +13 -11
- data/spec/data/datacite4/metadata.xsd +102 -57
- data/spec/rspec_custom_matchers.rb +3 -0
- data/spec/unit/datacite/mapping/contributor_spec.rb +7 -1
- data/spec/unit/datacite/mapping/creator_spec.rb +9 -3
- data/spec/unit/datacite/mapping/resource_spec.rb +14 -17
- data/spec/unit/datacite/mapping/rights_spec.rb +0 -13
- metadata +42 -28
- data/spec/data/datacite4/datacite-example-full-v4.0.xml +0 -71
@@ -1,4 +1,3 @@
|
|
1
|
-
|
2
1
|
# frozen_string_literal: true
|
3
2
|
|
4
3
|
require 'spec_helper'
|
@@ -174,32 +173,31 @@ module Datacite
|
|
174
173
|
expect { Resource.new(args) }.to raise_error(ArgumentError)
|
175
174
|
end
|
176
175
|
it 'requires a non-blank publisher' do
|
177
|
-
|
178
|
-
expect { Resource.new(args) }.to raise_error(ArgumentError)
|
176
|
+
expect { Publisher.new(value: ' ') }.to raise_error(ArgumentError)
|
179
177
|
end
|
180
178
|
it 'can be initialized' do
|
181
179
|
resource = Resource.new(args)
|
182
|
-
expect(resource.publisher).to eq(publisher)
|
180
|
+
expect(resource.publisher.value).to eq(publisher)
|
183
181
|
end
|
184
182
|
it 'can be set' do
|
185
183
|
new_publisher = 'University of California'
|
186
184
|
resource = Resource.new(args)
|
187
185
|
resource.publisher = new_publisher
|
188
|
-
expect(resource.publisher).to eq(new_publisher)
|
186
|
+
expect(resource.publisher.value).to eq(new_publisher)
|
189
187
|
end
|
190
188
|
it 'strips on initialization' do
|
191
|
-
args[:publisher] = '
|
189
|
+
args[:publisher] = Publisher.new(value: '
|
192
190
|
University of California
|
193
|
-
|
191
|
+
')
|
194
192
|
resource = Resource.new(args)
|
195
|
-
expect(resource.publisher).to eq('University of California')
|
193
|
+
expect(resource.publisher.value).to eq('University of California')
|
196
194
|
end
|
197
195
|
it 'strips on set' do
|
198
196
|
resource = Resource.new(args)
|
199
|
-
resource.publisher = '
|
197
|
+
resource.publisher = Publisher.new(value: '
|
200
198
|
University of California
|
201
|
-
|
202
|
-
expect(resource.publisher).to eq('University of California')
|
199
|
+
')
|
200
|
+
expect(resource.publisher.value).to eq('University of California')
|
203
201
|
end
|
204
202
|
end
|
205
203
|
|
@@ -922,7 +920,7 @@ module Datacite
|
|
922
920
|
end
|
923
921
|
|
924
922
|
def parse_file(xml_text, basename)
|
925
|
-
|
923
|
+
Resource.parse_xml(xml_text)
|
926
924
|
rescue Exception => e # rubocop:disable Lint/RescueException
|
927
925
|
warn "Error parsing #{basename}: #{e}"
|
928
926
|
File.open("tmp/#{basename}-xml_text.xml", 'w') { |t| t.write(xml_text) }
|
@@ -933,7 +931,7 @@ module Datacite
|
|
933
931
|
def write_xml(resource, basename, options)
|
934
932
|
# Workaround for Dash 1 datacite.xml with missing DOI
|
935
933
|
resource.identifier = Identifier.from_doi('10.5555/12345678') unless resource.identifier
|
936
|
-
|
934
|
+
resource.write_xml(options)
|
937
935
|
rescue Exception => e # rubocop:disable Lint/RescueException
|
938
936
|
warn "Error writing #{basename}: #{e}"
|
939
937
|
raise
|
@@ -988,11 +986,10 @@ module Datacite
|
|
988
986
|
actual_xml = write_xml(resource, basename, options)
|
989
987
|
expected_xml.gsub!(/(<resource[^>]+>)\s+(<creators>)/, "\\1\n <identifier identifierType=\"DOI\">10.5555/12345678</identifier>\n \\2") if fix_dash1
|
990
988
|
begin
|
991
|
-
# actual_xml = actual_xml.gsub(''', "'")
|
992
989
|
expect(actual_xml).to be_xml(expected_xml)
|
993
990
|
rescue Exception # rubocop:disable Lint/RescueException
|
994
|
-
File.open("tmp/#{basename}-expected.xml", 'w') { |t| t.write(expected_xml) }
|
995
|
-
File.open("tmp/#{basename}-actual.xml", 'w') { |t| t.write(actual_xml) }
|
991
|
+
File.open("/tmp/#{basename}-expected.xml", 'w') { |t| t.write(expected_xml) }
|
992
|
+
File.open("/tmp/#{basename}-actual.xml", 'w') { |t| t.write(actual_xml) }
|
996
993
|
raise
|
997
994
|
end
|
998
995
|
end
|
@@ -1155,7 +1152,7 @@ module Datacite
|
|
1155
1152
|
|
1156
1153
|
describe '#save_to_file' do
|
1157
1154
|
it 'saves to a file' do
|
1158
|
-
xml_text = File.read('spec/data/datacite4/datacite-example-full-v4.
|
1155
|
+
xml_text = File.read('spec/data/datacite4/datacite-example-full-v4.xml')
|
1159
1156
|
resource = Resource.parse_xml(xml_text)
|
1160
1157
|
Dir.mktmpdir('resource_spec') do |dir|
|
1161
1158
|
path = "#{dir}/resource.xml"
|
@@ -14,9 +14,6 @@ module Datacite
|
|
14
14
|
rights = Rights.new(value: 'CC0 1.0 Universal', uri: URI('http://creativecommons.org/publicdomain/zero/1.0/'))
|
15
15
|
expect(rights.uri).to eq(URI('http://creativecommons.org/publicdomain/zero/1.0/'))
|
16
16
|
end
|
17
|
-
it 'requires a value' do
|
18
|
-
expect { Rights.new(uri: URI('http://creativecommons.org/publicdomain/zero/1.0/')) }.to raise_error(ArgumentError)
|
19
|
-
end
|
20
17
|
end
|
21
18
|
|
22
19
|
describe '#value=' do
|
@@ -25,16 +22,6 @@ module Datacite
|
|
25
22
|
rights.value = 'CC0 1.0 Universal'
|
26
23
|
expect(rights.value).to eq('CC0 1.0 Universal')
|
27
24
|
end
|
28
|
-
it 'requires a value' do
|
29
|
-
rights = Rights.new(value: 'CC0 1.0 Universal')
|
30
|
-
expect { rights.value = nil }.to raise_error(ArgumentError)
|
31
|
-
expect(rights.value).to eq('CC0 1.0 Universal')
|
32
|
-
end
|
33
|
-
it 'requires a non-empty value' do
|
34
|
-
rights = Rights.new(value: 'CC0 1.0 Universal')
|
35
|
-
expect { rights.value = '' }.to raise_error(ArgumentError)
|
36
|
-
expect(rights.value).to eq('CC0 1.0 Universal')
|
37
|
-
end
|
38
25
|
end
|
39
26
|
|
40
27
|
describe '#uri=' do
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: datacite-mapping
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.4.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David Moles
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2019-11-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: typesafe_enum
|
@@ -211,9 +211,12 @@ files:
|
|
211
211
|
- examples/reading.rb
|
212
212
|
- examples/writing.rb
|
213
213
|
- lib/datacite/mapping.rb
|
214
|
+
- lib/datacite/mapping/affiliation.rb
|
214
215
|
- lib/datacite/mapping/alternate_identifier.rb
|
215
216
|
- lib/datacite/mapping/contributor.rb
|
217
|
+
- lib/datacite/mapping/contributor_name.rb
|
216
218
|
- lib/datacite/mapping/creator.rb
|
219
|
+
- lib/datacite/mapping/creator_name.rb
|
217
220
|
- lib/datacite/mapping/date.rb
|
218
221
|
- lib/datacite/mapping/date_value.rb
|
219
222
|
- lib/datacite/mapping/description.rb
|
@@ -227,7 +230,9 @@ files:
|
|
227
230
|
- lib/datacite/mapping/identifier.rb
|
228
231
|
- lib/datacite/mapping/module_info.rb
|
229
232
|
- lib/datacite/mapping/name_identifier.rb
|
233
|
+
- lib/datacite/mapping/name_type.rb
|
230
234
|
- lib/datacite/mapping/namespace_extensions.rb
|
235
|
+
- lib/datacite/mapping/publisher.rb
|
231
236
|
- lib/datacite/mapping/read_only_nodes.rb
|
232
237
|
- lib/datacite/mapping/related_identifier.rb
|
233
238
|
- lib/datacite/mapping/resource.rb
|
@@ -400,18 +405,23 @@ files:
|
|
400
405
|
- spec/data/datacite3/datacite-example-video-v3.0.xml
|
401
406
|
- spec/data/datacite3/datacite-example-workflow-v3.0.xml
|
402
407
|
- spec/data/datacite3/metadata.xsd
|
403
|
-
- spec/data/datacite4/datacite-example-Box_dateCollected_DataCollector-v4.
|
404
|
-
- spec/data/datacite4/datacite-example-GeoLocation-v4.
|
405
|
-
- spec/data/datacite4/datacite-example-HasMetadata-v4.
|
406
|
-
- spec/data/datacite4/datacite-example-ResearchGroup_Methods-v4.
|
407
|
-
- spec/data/datacite4/datacite-example-ResourceTypeGeneral_Collection-v4.
|
408
|
-
- spec/data/datacite4/datacite-example-
|
409
|
-
- spec/data/datacite4/datacite-example-
|
410
|
-
- spec/data/datacite4/datacite-example-
|
411
|
-
- spec/data/datacite4/datacite-example-
|
412
|
-
- spec/data/datacite4/datacite-example-
|
413
|
-
- spec/data/datacite4/datacite-example-
|
414
|
-
- spec/data/datacite4/datacite-example-
|
408
|
+
- spec/data/datacite4/datacite-example-Box_dateCollected_DataCollector-v4.xml
|
409
|
+
- spec/data/datacite4/datacite-example-GeoLocation-v4.xml
|
410
|
+
- spec/data/datacite4/datacite-example-HasMetadata-v4.xml
|
411
|
+
- spec/data/datacite4/datacite-example-ResearchGroup_Methods-v4.xml
|
412
|
+
- spec/data/datacite4/datacite-example-ResourceTypeGeneral_Collection-v4.xml
|
413
|
+
- spec/data/datacite4/datacite-example-affiliation-v4.xml
|
414
|
+
- spec/data/datacite4/datacite-example-complicated-v4.xml
|
415
|
+
- spec/data/datacite4/datacite-example-datapaper-v4.xml
|
416
|
+
- spec/data/datacite4/datacite-example-dataset-v4.xml
|
417
|
+
- spec/data/datacite4/datacite-example-full-v4.xml
|
418
|
+
- spec/data/datacite4/datacite-example-fundingReference-v4.xml
|
419
|
+
- spec/data/datacite4/datacite-example-polygon-advanced-v4.xml
|
420
|
+
- spec/data/datacite4/datacite-example-polygon-v4.xml
|
421
|
+
- spec/data/datacite4/datacite-example-relationTypeIsIdenticalTo-v4.xml
|
422
|
+
- spec/data/datacite4/datacite-example-software-v4.xml
|
423
|
+
- spec/data/datacite4/datacite-example-video-v4.xml
|
424
|
+
- spec/data/datacite4/datacite-example-workflow-v4.xml
|
415
425
|
- spec/data/datacite4/metadata.xsd
|
416
426
|
- spec/rspec_custom_matchers.rb
|
417
427
|
- spec/spec_helper.rb
|
@@ -452,8 +462,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
452
462
|
- !ruby/object:Gem::Version
|
453
463
|
version: '0'
|
454
464
|
requirements: []
|
455
|
-
|
456
|
-
rubygems_version: 2.6.12
|
465
|
+
rubygems_version: 3.0.2
|
457
466
|
signing_key:
|
458
467
|
specification_version: 4
|
459
468
|
summary: Parses and generates Datacite XML documents
|
@@ -623,18 +632,23 @@ test_files:
|
|
623
632
|
- spec/data/datacite3/datacite-example-video-v3.0.xml
|
624
633
|
- spec/data/datacite3/datacite-example-workflow-v3.0.xml
|
625
634
|
- spec/data/datacite3/metadata.xsd
|
626
|
-
- spec/data/datacite4/datacite-example-Box_dateCollected_DataCollector-v4.
|
627
|
-
- spec/data/datacite4/datacite-example-GeoLocation-v4.
|
628
|
-
- spec/data/datacite4/datacite-example-HasMetadata-v4.
|
629
|
-
- spec/data/datacite4/datacite-example-ResearchGroup_Methods-v4.
|
630
|
-
- spec/data/datacite4/datacite-example-ResourceTypeGeneral_Collection-v4.
|
631
|
-
- spec/data/datacite4/datacite-example-
|
632
|
-
- spec/data/datacite4/datacite-example-
|
633
|
-
- spec/data/datacite4/datacite-example-
|
634
|
-
- spec/data/datacite4/datacite-example-
|
635
|
-
- spec/data/datacite4/datacite-example-
|
636
|
-
- spec/data/datacite4/datacite-example-
|
637
|
-
- spec/data/datacite4/datacite-example-
|
635
|
+
- spec/data/datacite4/datacite-example-Box_dateCollected_DataCollector-v4.xml
|
636
|
+
- spec/data/datacite4/datacite-example-GeoLocation-v4.xml
|
637
|
+
- spec/data/datacite4/datacite-example-HasMetadata-v4.xml
|
638
|
+
- spec/data/datacite4/datacite-example-ResearchGroup_Methods-v4.xml
|
639
|
+
- spec/data/datacite4/datacite-example-ResourceTypeGeneral_Collection-v4.xml
|
640
|
+
- spec/data/datacite4/datacite-example-affiliation-v4.xml
|
641
|
+
- spec/data/datacite4/datacite-example-complicated-v4.xml
|
642
|
+
- spec/data/datacite4/datacite-example-datapaper-v4.xml
|
643
|
+
- spec/data/datacite4/datacite-example-dataset-v4.xml
|
644
|
+
- spec/data/datacite4/datacite-example-full-v4.xml
|
645
|
+
- spec/data/datacite4/datacite-example-fundingReference-v4.xml
|
646
|
+
- spec/data/datacite4/datacite-example-polygon-advanced-v4.xml
|
647
|
+
- spec/data/datacite4/datacite-example-polygon-v4.xml
|
648
|
+
- spec/data/datacite4/datacite-example-relationTypeIsIdenticalTo-v4.xml
|
649
|
+
- spec/data/datacite4/datacite-example-software-v4.xml
|
650
|
+
- spec/data/datacite4/datacite-example-video-v4.xml
|
651
|
+
- spec/data/datacite4/datacite-example-workflow-v4.xml
|
638
652
|
- spec/data/datacite4/metadata.xsd
|
639
653
|
- spec/rspec_custom_matchers.rb
|
640
654
|
- spec/spec_helper.rb
|
@@ -1,71 +0,0 @@
|
|
1
|
-
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
-
<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://datacite.org/schema/kernel-4" xsi:schemaLocation="http://datacite.org/schema/kernel-4 http://schema.datacite.org/meta/kernel-4/metadata.xsd">
|
3
|
-
<identifier identifierType="DOI">10.5072/example-full</identifier>
|
4
|
-
<creators>
|
5
|
-
<creator>
|
6
|
-
<creatorName>Miller, Elizabeth</creatorName>
|
7
|
-
<givenName>Elizabeth</givenName>
|
8
|
-
<familyName>Miller</familyName>
|
9
|
-
<nameIdentifier schemeURI="http://orcid.org/" nameIdentifierScheme="ORCID">0000-0001-5000-0007</nameIdentifier>
|
10
|
-
<affiliation>DataCite</affiliation>
|
11
|
-
</creator>
|
12
|
-
</creators>
|
13
|
-
<titles>
|
14
|
-
<title xml:lang="en-us">Full DataCite XML Example</title>
|
15
|
-
<title xml:lang="en-us" titleType="Subtitle">Demonstration of DataCite Properties.</title>
|
16
|
-
</titles>
|
17
|
-
<publisher>DataCite</publisher>
|
18
|
-
<publicationYear>2014</publicationYear>
|
19
|
-
<subjects>
|
20
|
-
<subject xml:lang="en-us" schemeURI="http://dewey.info/" subjectScheme="dewey">000 computer science</subject>
|
21
|
-
</subjects>
|
22
|
-
<contributors>
|
23
|
-
<contributor contributorType="ProjectLeader">
|
24
|
-
<contributorName>Starr, Joan</contributorName>
|
25
|
-
<nameIdentifier schemeURI="http://orcid.org/" nameIdentifierScheme="ORCID">0000-0002-7285-027X</nameIdentifier>
|
26
|
-
<affiliation>California Digital Library</affiliation>
|
27
|
-
</contributor>
|
28
|
-
</contributors>
|
29
|
-
<dates>
|
30
|
-
<date dateType="Updated">2014-10-17</date>
|
31
|
-
</dates>
|
32
|
-
<language>en-us</language>
|
33
|
-
<resourceType resourceTypeGeneral="Software">XML</resourceType>
|
34
|
-
<alternateIdentifiers>
|
35
|
-
<alternateIdentifier alternateIdentifierType="URL">http://schema.datacite.org/schema/meta/kernel-3.1/example/datacite-example-full-v3.1.xml</alternateIdentifier>
|
36
|
-
</alternateIdentifiers>
|
37
|
-
<relatedIdentifiers>
|
38
|
-
<relatedIdentifier relatedIdentifierType="URL" relationType="HasMetadata" relatedMetadataScheme="citeproc+json" schemeURI="https://github.com/citation-style-language/schema/raw/master/csl-data.json">http://data.datacite.org/application/citeproc+json/10.5072/example-full</relatedIdentifier>
|
39
|
-
<relatedIdentifier relatedIdentifierType="arXiv" relationType="IsReviewedBy">arXiv:0706.0001</relatedIdentifier>
|
40
|
-
</relatedIdentifiers>
|
41
|
-
<sizes>
|
42
|
-
<size>3KB</size>
|
43
|
-
</sizes>
|
44
|
-
<formats>
|
45
|
-
<format>application/xml</format>
|
46
|
-
</formats>
|
47
|
-
<version>3.1</version>
|
48
|
-
<rightsList>
|
49
|
-
<rights rightsURI="http://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 Universal</rights>
|
50
|
-
</rightsList>
|
51
|
-
<descriptions>
|
52
|
-
<description xml:lang="en-us" descriptionType="Abstract">
|
53
|
-
XML example of all DataCite Metadata Schema v4.0 properties.
|
54
|
-
</description>
|
55
|
-
</descriptions>
|
56
|
-
<geoLocations>
|
57
|
-
<geoLocation>
|
58
|
-
<geoLocationPlace>Atlantic Ocean</geoLocationPlace>
|
59
|
-
<geoLocationPoint>
|
60
|
-
<pointLongitude>-67.302</pointLongitude>
|
61
|
-
<pointLatitude>31.233</pointLatitude>
|
62
|
-
</geoLocationPoint>
|
63
|
-
<geoLocationBox>
|
64
|
-
<westBoundLongitude>-71.032</westBoundLongitude>
|
65
|
-
<eastBoundLongitude>-68.211</eastBoundLongitude>
|
66
|
-
<southBoundLatitude>41.090</southBoundLatitude>
|
67
|
-
<northBoundLatitude>42.893</northBoundLatitude>
|
68
|
-
</geoLocationBox>
|
69
|
-
</geoLocation>
|
70
|
-
</geoLocations>
|
71
|
-
</resource>
|