diff --git a/src/main/java/de/landsh/opendata/csw2dcat/MDMetadata2Dataset.java b/src/main/java/de/landsh/opendata/csw2dcat/MDMetadata2Dataset.java index de58981616e8ed90e8c9b4f272e9cf9df334055e..dc6171521e1f4e519cba309c5b9e6b2d286cfab6 100644 --- a/src/main/java/de/landsh/opendata/csw2dcat/MDMetadata2Dataset.java +++ b/src/main/java/de/landsh/opendata/csw2dcat/MDMetadata2Dataset.java @@ -846,6 +846,16 @@ public class MDMetadata2Dataset { } + private boolean isDatasetSeries(Element metadata) { + final Element scopeCode = (Element) metadata.selectSingleNode("gmd:hierarchyLevel/gmd:MD_ScopeCode"); + return scopeCode != null && "series".equals(scopeCode.attributeValue("codeListValue")); + } + + private boolean isDataService(Element metadata) { + final Element scopeCode = (Element) metadata.selectSingleNode("gmd:hierarchyLevel/gmd:MD_ScopeCode"); + return scopeCode != null && "service".equals(scopeCode.attributeValue("codeListValue")); + } + /** * Convert a gmd:MD_Metadata {@link Element} into a DCAT-AP.de compliant dcat:Dataset {@link Resource}. */ @@ -864,7 +874,7 @@ public class MDMetadata2Dataset { final Element scopeCode = (Element) metadata.selectSingleNode("gmd:hierarchyLevel/gmd:MD_ScopeCode"); if (scopeCode == null) { log.warn("MD_Metadata without MD_ScopeCode."); - } else if ("service".equals(scopeCode.attributeValue("codeListValue"))) { + } else if ( isDataService(metadata) ){ return null; } @@ -967,7 +977,7 @@ public class MDMetadata2Dataset { } } - if (settings.ignoreSeriesWithoutDistribution && !dataset.hasProperty(DCAT.distribution)) { + if (settings.ignoreSeriesWithoutDistribution && isDatasetSeries(metadata) && !dataset.hasProperty(DCAT.distribution)) { // Geo series might not have a download option or a couple service (which is totally valid). If configured, // this kind of series will be ignored. dataset.removeProperties(); diff --git a/src/test/resources/d3c6c074-4d69-4b1f-9efb-dbd9644f82c0.xml b/src/test/resources/d3c6c074-4d69-4b1f-9efb-dbd9644f82c0.xml index 8eeef8a0d24144d8a68853429f8fa6cd4c516d06..14c1b7629ed656f72eb6ceb670bb058a04cd4074 100644 --- a/src/test/resources/d3c6c074-4d69-4b1f-9efb-dbd9644f82c0.xml +++ b/src/test/resources/d3c6c074-4d69-4b1f-9efb-dbd9644f82c0.xml @@ -19,7 +19,7 @@ </gmd:characterSet> <gmd:hierarchyLevel> <gmd:MD_ScopeCode codeList="http://standards.iso.org/iso/19139/resources/gmxCodelists.xml#MD_ScopeCode" - codeListValue="dataset">dataset</gmd:MD_ScopeCode> + codeListValue="series">series</gmd:MD_ScopeCode> </gmd:hierarchyLevel> <gmd:contact> <gmd:CI_ResponsibleParty uuid="75C5BEAC-2CB6-49D1-8AFC-CFC6390CECE9">