Skip to content

Commit

Permalink
identifier and is_part_of
Browse files Browse the repository at this point in the history
  • Loading branch information
FuhuXia committed Sep 19, 2024
1 parent c9573ed commit 71eb91e
Show file tree
Hide file tree
Showing 6 changed files with 39 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,8 @@ module Iso191152
module Metadata
@@identificationInfoXPath = 'gmd:identificationInfo'
@@dataIdentificationXPath = 'gmd:MD_DataIdentification'
@@fileIdentifierXPath = 'gmd:fileIdentifier//gco:CharacterString'
@@parentIdentifierXPath = 'gmd:parentIdentifier//gco:CharacterString'
def self.unpack(xMetadata, hResponseObj)
intMetadataClass = InternalMetadata.new
intMetadata = intMetadataClass.newMetadata
Expand Down Expand Up @@ -42,6 +44,12 @@ def self.unpack(xMetadata, hResponseObj)

intMetadata[:resourceInfo] = ResourceInformation.unpack(xDataIdentification, hResponseObj)

fileIdentifier = xMetadata.xpath(@@fileIdentifierXPath)[0]
intMetadata[:fileIdentifier] = fileIdentifier.text unless fileIdentifier.nil?

parentIdentifier = xMetadata.xpath(@@parentIdentifierXPath)[0]
intMetadata[:parentIdentifier] = parentIdentifier.text unless parentIdentifier.nil?

# :distributorInfo
# :associatedResources
# :additionalDocuments
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,20 @@ module Dcat_us
module Identifier

def self.build(intObj)
fileIdentifier = intObj.dig(:metadata, :fileIdentifier)
return fileIdentifier unless fileIdentifier.nil?

citation = intObj.dig(:metadata, :resourceInfo, :citation)
identifiers = citation&.dig(:identifiers)
onlineResources = citation&.dig(:onlineResources)
uri = onlineResources.dig(0, :olResURI)

# return uri if it exists, or the first identifier found
# uri is supposed to be more descriptive than identifiers
return uri unless uri.nil?
return identifiers[0][:identifier] unless identifiers.nil? || identifiers.empty?

nil
end


end
end
end
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,9 @@ module Dcat_us
module IsPartOf

def self.build(intObj)
parentIdentifier = intObj.dig(:metadata, :parentIdentifier)
return parentIdentifier unless parentIdentifier.nil?

associatedResources = intObj.dig(:metadata, :associatedResources)

associatedResources.each do |resource|
Expand Down
7 changes: 6 additions & 1 deletion test/readers/iso19115_2/testData/iso19115-2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,12 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.isotc211.org/2005/gmi
ftp://ftp.ncddc.noaa.gov/pub/Metadata/Online_ISO_Training/Intro_to_ISO/schemas/ISObio/schema.xsd">

<gmd:fileIdentifier>
<gco:CharacterString>ISO19115-2-ID-123456</gco:CharacterString>
</gmd:fileIdentifier>
<gmd:parentIdentifier>
<gco:CharacterString>ISO19115-2-ID-123456-parent</gco:CharacterString>
</gmd:parentIdentifier>
<gmd:identificationInfo>
<gmd:MD_DataIdentification>
<gmd:citation>
Expand Down
13 changes: 12 additions & 1 deletion test/translator/tc_iso19115_2_to_dcatus.rb
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@
require 'adiwg/mdtranslator'
require 'adiwg/mdtranslator/readers/iso19115_2/modules/module_iso19115_2'
require 'adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_dcat_us'
require 'debug'

# these tests are organized according to how data is processed in
# the dcat_us writer lib/adiwg/mdtranslator/writers/dcat_us/sections/dcat_us_dcat_us.rb
Expand Down Expand Up @@ -93,4 +92,16 @@ def test_theme
res = dcatusNS.build(@@intMetadata)
assert_equal('biota farming', res)
end

def test_identifier
expected = 'ISO19115-2-ID-123456'

assert_equal(expected, @@intMetadata[:metadata][:fileIdentifier])
end

def test_is_part_of
expected = 'ISO19115-2-ID-123456-parent'

assert_equal(expected, @@intMetadata[:metadata][:parentIdentifier])
end
end
7 changes: 6 additions & 1 deletion test/translator/testData/iso19115-2.xml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,12 @@
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.isotc211.org/2005/gmi
ftp://ftp.ncddc.noaa.gov/pub/Metadata/Online_ISO_Training/Intro_to_ISO/schemas/ISObio/schema.xsd">

<gmd:fileIdentifier>
<gco:CharacterString>ISO19115-2-ID-123456</gco:CharacterString>
</gmd:fileIdentifier>
<gmd:parentIdentifier>
<gco:CharacterString>ISO19115-2-ID-123456-parent</gco:CharacterString>
</gmd:parentIdentifier>
<gmd:identificationInfo>
<gmd:MD_DataIdentification>
<gmd:citation>
Expand Down

0 comments on commit 71eb91e

Please sign in to comment.