From b9e5eeec7b930a28514108cf13cbabae5989f3af Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki?= Date: Mon, 16 Apr 2018 15:54:38 +0200 Subject: [PATCH 1/9] Encoding should be use less strict xPath expressions Encoding should be use less strict xPath expressions https://github.com/inspire-eu-validation/ets-repository/issues/149 --- data/interoperability-metadata/ets-md-iop-bsxets.xml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/data/interoperability-metadata/ets-md-iop-bsxets.xml b/data/interoperability-metadata/ets-md-iop-bsxets.xml index 48b781e94..fd4af35e1 100644 --- a/data/interoperability-metadata/ets-md-iop-bsxets.xml +++ b/data/interoperability-metadata/ets-md-iop-bsxets.xml @@ -162,11 +162,11 @@ let $messages := local:addMessage('TR.noEncoding', map { 'filename': local:filename($record), 'id': $rid }) else for $format in $formats return - (if ($format/gmd:MD_Format/gmd:name/gco:CharacterString) then () else + (if ($format/gmd:MD_Format/gmd:name/*) then () else local:addMessage('TR.incompleteEncoding', map { 'filename': local:filename($record), 'id': $rid, 'missing': 'name' }), - if ($format/gmd:MD_Format/gmd:version/gco:CharacterString) then () else + if ($format/gmd:MD_Format/gmd:version/*) then () else local:addMessage('TR.incompleteEncoding', map { 'filename': local:filename($record), 'id': $rid, 'missing': 'version' }), - if ($format/gmd:MD_Format/gmd:specification/gco:CharacterString) then () else + if ($format/gmd:MD_Format/gmd:specification/*) then () else local:addMessage('TR.incompleteEncoding', map { 'filename': local:filename($record), 'id': $rid, 'missing': 'specification' })) )[position() le $limitErrors] return From 47ce651dd03adfa974777a3ffde452b483c970b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki?= Date: Mon, 16 Apr 2018 16:22:46 +0200 Subject: [PATCH 2/9] Date and date type should be checked if the thesaurus is "GEMET - INSPIRE themes, version 1.0" Date and title should be correct with respect to the given controlled vocabulary. For the "GEMET - INSPIRE themes, version 1.0" https://github.com/inspire-eu-validation/metadata/issues/133 --- ...emplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml | 5 +++++ metadata/iso/ets-md-iso-bsxets.xml | 4 ++++ 2 files changed, 9 insertions(+) diff --git a/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml b/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml index b2e8cb1d7..8a3ed0df5 100644 --- a/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml +++ b/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml @@ -532,6 +532,11 @@ XML document '{filename}', record '{id}': The metadata record has keywords which originate from a controlled vocabulary '{thesaurus}', but no date of publication, creation, or revision is provided. The keywords are: {keywords}. + + + XML document '{filename}', record '{id}': The metadata record has keywords which originate from a controlled vocabulary 'GEMET - INSPIRE themes, version 1.0', but the date or date type is not valid. The keywords are: {keywords}. + + XML document '{filename}', record '{id}': Every service metadata record must have a service type that is one of the codes from the code list at {url}. Found: {type}. diff --git a/metadata/iso/ets-md-iso-bsxets.xml b/metadata/iso/ets-md-iso-bsxets.xml index c5ec23626..cb2b206bf 100644 --- a/metadata/iso/ets-md-iso-bsxets.xml +++ b/metadata/iso/ets-md-iso-bsxets.xml @@ -1357,6 +1357,10 @@ let $messages := return (if (not($title)) then local:addMessage('TR.noTitleForThesaurus', map { 'filename': local:filename($record), 'id': $rid, 'keywords' : $keywords }) else if (string-length(normalize-space($title)) = 0) then local:addMessage('TR.emptyTitleForThesaurus', map { 'filename': local:filename($record), 'id': $rid, 'keywords' : $keywords }) + else if ($title = 'GEMET - INSPIRE themes, version 1.0') then + if ($thesaurus/*/gmd:date/*[gmd:date/*/text() != '2008-06-01' or gmd:dateType/*/@codeListValue != 'publication']) then + local:addMessage('TR.invalidDateForThesaurusGemet', map { 'filename': local:filename($record), 'id': $rid, 'keywords' : $keywords }) + else() else (), if (not($hasExpectedDate)) then local:addMessage('TR.invalidDateForThesaurus', map { 'filename': local:filename($record), 'id': $rid, 'thesaurus': if ($title) then $title else '', 'keywords' : $keywords }) else () ) From 50153ba18168b9c9361ef3e8483fa776bb4c66a4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki?= Date: Tue, 17 Apr 2018 08:12:50 +0200 Subject: [PATCH 3/9] The metadata validator should accept ".atom" as a media type for distribution The TG of the Download Services says that the ATOM feeds (the service one and the dataset ones) must be "application/atom+xml", so the metadata validator should accept ".atom" as a media type for distribution https://github.com/inspire-eu-validation/ets-repository/issues/151 --- metadata/iso/ets-md-iso-bsxets.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/metadata/iso/ets-md-iso-bsxets.xml b/metadata/iso/ets-md-iso-bsxets.xml index cb2b206bf..76e95a8bf 100644 --- a/metadata/iso/ets-md-iso-bsxets.xml +++ b/metadata/iso/ets-md-iso-bsxets.xml @@ -1041,7 +1041,7 @@ let $messages := (for $record in $recordsToInspect local:addMessage('TR.resourceNotAccessibleException', map { 'filename': local:filename($record), 'id': $rid, 'url': $url, 'message': substring-after($validuri, 'EXCEPTION ') }) else if (matches($validuri,'^\d{3}$')) then local:addMessage('TR.resourceNotAccessible', map { 'filename': local:filename($record), 'id': $rid, 'url': $url, 'status' : $validuri }) - else if (starts-with($validuri,'text/xml') or starts-with($validuri,'application/xml') or starts-with($validuri,'application/vnd.ogc.')) then + else if (starts-with($validuri,'text/xml') or starts-with($validuri,'application/xml') or starts-with($validuri,'application/vnd.ogc.') or starts-with($validuri,'application/atom')) then try { let $root := fn:doc($url)/element() return From 88e63a9addd4011fa8ae69e068b24dc378bc2de4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki?= Date: Tue, 17 Apr 2018 11:37:40 +0200 Subject: [PATCH 4/9] Modifications in ETS - ETS checks if there is at least a gmd:report/gmd:DQ_DomainConsistency/gmd:result/gmd:DQ_ConformanceResult ETS checks if there is at least a gmd:report/gmd:DQ_DomainConsistency/gmd:result/gmd:DQ_ConformanceResult element. If there is none, a warning is thrown. If instead there is at least one, no error is reported. https://github.com/inspire-eu-validation/ets-repository/issues/157 --- ...-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml | 4 ++-- metadata/iso/ets-md-iso-bsxets.xml | 17 ++++++++++------- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml b/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml index 8a3ed0df5..08f759241 100644 --- a/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml +++ b/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml @@ -487,9 +487,9 @@ XML document '{filename}', record '{id}': The metadata record contains a reference to a specification '{specification}', but no dateType of 'creation', 'revision', or 'publication' is provided for it. - + - XML document '{filename}', record '{id}': The metadata record contains a reference to a specification '{specification}', but the specification reference is not a child of a gmd:DQ_DomainConsistency element. + XML document '{filename}', record '{id}': The metadata record not contains a reference to a gmd:DQ_ConformanceResult element. diff --git a/metadata/iso/ets-md-iso-bsxets.xml b/metadata/iso/ets-md-iso-bsxets.xml index 76e95a8bf..997b5e5c9 100644 --- a/metadata/iso/ets-md-iso-bsxets.xml +++ b/metadata/iso/ets-md-iso-bsxets.xml @@ -251,24 +251,27 @@ Relevant requirement(s):

Source: Abstract Test Case 'Dataset specification'

]]> NOT_APPLICABLE - + let $messages := (for $record in $records + let $existDQ_ConformanceResult := false let $rid := $record/gmd:fileIdentifier/*/text() let $specifications := $record/gmd:dataQualityInfo/*/gmd:report/*/gmd:result/*/gmd:specification - return + let $DQ_ConformanceResults := $record/gmd:dataQualityInfo/*/gmd:report/gmd:DQ_DomainConsistency/gmd:result/gmd:DQ_ConformanceResult + return ( + if (not($DQ_ConformanceResults)) then + local:addMessage('TR.noDQConformanceResults', map { 'filename': local:filename($record), 'id': $rid }) + else (), if (not($specifications)) then () (: Only failure situations are reported, no warnings :) else - for $spec in $specifications + for $spec in $specifications return if (not($spec/gmd:CI_Citation/gmd:title/*[1][string-length(normalize-space(text())) > 0])) then local:addMessage('TR.noTitleForSpecification', map { 'filename': local:filename($record), 'id': $rid }) else if (not($spec/gmd:CI_Citation/gmd:date/*/gmd:dateType/*[@codeListValue = ('publication','creation','revision')])) then local:addMessage('TR.noDateTypeForSpecification', map { 'filename': local:filename($record), 'id': $rid, 'specification': $spec/gmd:CI_Citation/gmd:title/*[1]/text() }) - else if (not($spec/ancestor::gmd:DQ_DomainConsistency)) then - local:addMessage('TR.noDQDomainConsistencyParent', map { 'filename': local:filename($record), 'id': $rid, 'specification': $spec/gmd:CI_Citation/gmd:title/*[1]/text() }) else () - )[position() le $limitErrors] + ))[position() le $limitErrors] return (if ($messages) then 'FAILED' else 'PASSED', local:error-statistics('TR.recordsWithErrors', count(fn:distinct-values($messages//etf:argument[@token='id']/text()))), @@ -278,7 +281,7 @@ return - + From a964aa013c866c885899a856fa236577a625b05a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki?= Date: Wed, 18 Apr 2018 11:26:33 +0200 Subject: [PATCH 5/9] Add a new error in the test md-iso.f.4: Vocabulary information --- metadata/iso/ets-md-iso-bsxets.xml | 1 + 1 file changed, 1 insertion(+) diff --git a/metadata/iso/ets-md-iso-bsxets.xml b/metadata/iso/ets-md-iso-bsxets.xml index 997b5e5c9..8c6b4671a 100644 --- a/metadata/iso/ets-md-iso-bsxets.xml +++ b/metadata/iso/ets-md-iso-bsxets.xml @@ -1378,6 +1378,7 @@ return + From 481a5dffaa4d1c3e3372663b5ae633406d8491ff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki?= Date: Wed, 18 Apr 2018 13:35:43 +0200 Subject: [PATCH 6/9] Correction in a TestAssertion "md-iso.a.5: Specification" --- metadata/iso/ets-md-iso-bsxets.xml | 1 - 1 file changed, 1 deletion(-) diff --git a/metadata/iso/ets-md-iso-bsxets.xml b/metadata/iso/ets-md-iso-bsxets.xml index 8c6b4671a..ec7027d83 100644 --- a/metadata/iso/ets-md-iso-bsxets.xml +++ b/metadata/iso/ets-md-iso-bsxets.xml @@ -254,7 +254,6 @@ Relevant requirement(s):

let $messages := (for $record in $records - let $existDQ_ConformanceResult := false let $rid := $record/gmd:fileIdentifier/*/text() let $specifications := $record/gmd:dataQualityInfo/*/gmd:report/*/gmd:result/*/gmd:specification let $DQ_ConformanceResults := $record/gmd:dataQualityInfo/*/gmd:report/gmd:DQ_DomainConsistency/gmd:result/gmd:DQ_ConformanceResult From a1714f364e9a45bfa31f9059445fa49b9453bd38 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki?= Date: Wed, 30 May 2018 14:01:26 +0200 Subject: [PATCH 7/9] The version number of the ETS has been incremented --- data/interoperability-metadata/ets-md-iop-bsxets.xml | 2 +- metadata/iso/ets-md-iso-bsxets.xml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/data/interoperability-metadata/ets-md-iop-bsxets.xml b/data/interoperability-metadata/ets-md-iop-bsxets.xml index fd4af35e1..0ebd1a36f 100644 --- a/data/interoperability-metadata/ets-md-iop-bsxets.xml +++ b/data/interoperability-metadata/ets-md-iop-bsxets.xml @@ -11,7 +11,7 @@ Source: Conformance Class 'INSPIRE Profile based on EN ISO 19115 and EN ISO 19119']]> ../../inspire-md-bsxets.xq - 0.2.2 + 0.2.3 interactive instruments GmbH 2016-12-07T00:00:00Z interactive instruments GmbH diff --git a/metadata/iso/ets-md-iso-bsxets.xml b/metadata/iso/ets-md-iso-bsxets.xml index ec7027d83..5a6bbf1cc 100644 --- a/metadata/iso/ets-md-iso-bsxets.xml +++ b/metadata/iso/ets-md-iso-bsxets.xml @@ -12,7 +12,7 @@ Source: Conformance Class 'XML encoding of ISO 19115/19119 metadata']]> ../../inspire-md-bsxets.xq - 0.2.5 + 0.2.6 interactive instruments GmbH 2016-08-30T00:00:00Z interactive instruments GmbH From f9d928db15aa056125326cdca347c27a311de1f5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki?= Date: Mon, 27 Aug 2018 12:13:16 +0200 Subject: [PATCH 8/9] Helpdesk Modifications over the first version of pull request Helpdesk #137 to accommodate the suggested changes --- ...ID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml | 21 +++++++-- metadata/iso/ets-md-iso-bsxets.xml | 43 +++++++++++-------- 2 files changed, 42 insertions(+), 22 deletions(-) diff --git a/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml b/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml index 08f759241..6dac2c9e5 100644 --- a/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml +++ b/include-metadata/TranslationTemplateBundle-EID70a263c0-0ad7-42f2-9d4d-0d8a4ca71b52.xml @@ -487,9 +487,14 @@ XML document '{filename}', record '{id}': The metadata record contains a reference to a specification '{specification}', but no dateType of 'creation', 'revision', or 'publication' is provided for it.
- + + + XML document '{filename}', record '{id}': The metadata record not contains a reference to a specification. + + + - XML document '{filename}', record '{id}': The metadata record not contains a reference to a gmd:DQ_ConformanceResult element. + XML document '{filename}', record '{id}': The gmd:DQ_ConformanceResult has an element gmd:pass that must contain a value of type gco:Boolean. This metadata record does not contain such a value. @@ -534,7 +539,7 @@ - XML document '{filename}', record '{id}': The metadata record has keywords which originate from a controlled vocabulary 'GEMET - INSPIRE themes, version 1.0', but the date or date type is not valid. The keywords are: {keywords}. + XML document '{filename}', record '{id}': The metadata record has keywords which originate from a controlled vocabulary 'GEMET - INSPIRE themes, version 1.0', but the date or date type is not correct. Date should be '2008-06-01' and date type 'publication'. The keywords are: {keywords}. @@ -612,6 +617,16 @@ XML document '{filename}', record '{id}': No valid resource contraint is provided for this record, but a metadata record must have at least one resource constraint that has a) an access constraint with code list value from ISO 19115, chapter B.5.24 - and, if that value is 'otherRestrictions', it must also have an 'otherConstraints' element with non-empty string content - and/or b) a classification with code list value from ISO 19115, chapter B.5.11. + + + XML document '{filename}', record '{id}': The metadata record not contains a reference to a gmd:DQ_ConformanceResult element. + + + + + XML document '{filename}', record '{id}': One of the citation elements shall contain title and date of the [Regulation 1089/2010]. + + XML document '{filename}', record '{id}': Each dataset or service metadata record must have a conformity statement, expressed via a domain consistency element with a conformance result. This metadata record does contain such a statement. diff --git a/metadata/iso/ets-md-iso-bsxets.xml b/metadata/iso/ets-md-iso-bsxets.xml index 5a6bbf1cc..73a2fae65 100644 --- a/metadata/iso/ets-md-iso-bsxets.xml +++ b/metadata/iso/ets-md-iso-bsxets.xml @@ -252,23 +252,28 @@ Relevant requirement(s):

NOT_APPLICABLE +let $levels := ('dataset', 'series') +let $recordsToInspect := $records[gmd:hierarchyLevel/*/@codeListValue = $levels] let $messages := - (for $record in $records + (for $record in $recordsToInspect let $rid := $record/gmd:fileIdentifier/*/text() - let $specifications := $record/gmd:dataQualityInfo/*/gmd:report/*/gmd:result/*/gmd:specification + let $specifications := $record/gmd:dataQualityInfo/*/gmd:report/gmd:DQ_DomainConsistency/gmd:result/gmd:DQ_ConformanceResult/gmd:specification let $DQ_ConformanceResults := $record/gmd:dataQualityInfo/*/gmd:report/gmd:DQ_DomainConsistency/gmd:result/gmd:DQ_ConformanceResult - return ( - if (not($DQ_ConformanceResults)) then - local:addMessage('TR.noDQConformanceResults', map { 'filename': local:filename($record), 'id': $rid }) - else (), - if (not($specifications)) then () (: Only failure situations are reported, no warnings :) + return + if (not($specifications)) then local:addMessage('TR.noSpecifications', map { 'filename': local:filename($record), 'id': $rid }) else - for $spec in $specifications - return - if (not($spec/gmd:CI_Citation/gmd:title/*[1][string-length(normalize-space(text())) > 0])) then - local:addMessage('TR.noTitleForSpecification', map { 'filename': local:filename($record), 'id': $rid }) - else if (not($spec/gmd:CI_Citation/gmd:date/*/gmd:dateType/*[@codeListValue = ('publication','creation','revision')])) then - local:addMessage('TR.noDateTypeForSpecification', map { 'filename': local:filename($record), 'id': $rid, 'specification': $spec/gmd:CI_Citation/gmd:title/*[1]/text() }) + for $DQ_ConformanceResult in $DQ_ConformanceResults + let $spec := $DQ_ConformanceResult/gmd:specification + return ( + if (not($spec)) then () + else + if (not($spec/gmd:CI_Citation/gmd:title/*[1][string-length(normalize-space(text())) > 0])) then + local:addMessage('TR.noTitleForSpecification', map { 'filename': local:filename($record), 'id': $rid }) + else if (not($spec/gmd:CI_Citation/gmd:date/*/gmd:dateType/*[@codeListValue = ('publication','creation','revision')])) then + local:addMessage('TR.noDateTypeForSpecification', map { 'filename': local:filename($record), 'id': $rid, 'specification': $spec/gmd:CI_Citation/gmd:title/*[1]/text() }) + else (), + if (not($DQ_ConformanceResult/gmd:pass/gco:Boolean)) then + local:addMessage('TR.noBooleanValueForPass', map { 'filename': local:filename($record), 'id': $rid, 'specification': $spec/gmd:CI_Citation/gmd:title/*[1]/text() }) else () ))[position() le $limitErrors] return @@ -280,7 +285,8 @@ return - + + @@ -1228,9 +1234,12 @@ let $messages := (for $record in $recordsToInspect let $rid := $record/gmd:fileIdentifier/*/text() let $relevantDescriptiveKeywordsBlocks := $record/gmd:identificationInfo[1]/*/gmd:descriptiveKeywords/*[gmd:thesaurusName/*/gmd:title/*/text() = $THEMES_TITLE] + let $hasExpectedDate := boolean($relevantDescriptiveKeywordsBlocks/gmd:thesaurusName/*/gmd:date/*[gmd:date/*/text() = '2008-06-01' and gmd:dateType/*/@codeListValue = 'publication' and gmd:dateType/*/text() = 'publication']) return if ($relevantDescriptiveKeywordsBlocks[not(some $keyword in ./gmd:keyword/*/text() satisfies $keyword = $codes) ]) then local:addMessage('TR.noKeywordFromINSPIREThemes', map { 'filename': local:filename($record), 'id': $rid, 'url': $inspireThemesCodeListURL, 'keywords': fn:string-join($relevantDescriptiveKeywordsBlocks/gmd:keyword/*/text(),'; ') }) + else if (not($hasExpectedDate)) then + local:addMessage('TR.invalidDateForThesaurusGemet', map { 'filename': local:filename($record), 'id': $rid, 'keywords' : fn:string-join($relevantDescriptiveKeywordsBlocks/gmd:keyword/*/text(),'; ') }) else () )[position() le $limitErrors] } catch * { @@ -1244,6 +1253,7 @@ return + @@ -1359,10 +1369,6 @@ let $messages := return (if (not($title)) then local:addMessage('TR.noTitleForThesaurus', map { 'filename': local:filename($record), 'id': $rid, 'keywords' : $keywords }) else if (string-length(normalize-space($title)) = 0) then local:addMessage('TR.emptyTitleForThesaurus', map { 'filename': local:filename($record), 'id': $rid, 'keywords' : $keywords }) - else if ($title = 'GEMET - INSPIRE themes, version 1.0') then - if ($thesaurus/*/gmd:date/*[gmd:date/*/text() != '2008-06-01' or gmd:dateType/*/@codeListValue != 'publication']) then - local:addMessage('TR.invalidDateForThesaurusGemet', map { 'filename': local:filename($record), 'id': $rid, 'keywords' : $keywords }) - else() else (), if (not($hasExpectedDate)) then local:addMessage('TR.invalidDateForThesaurus', map { 'filename': local:filename($record), 'id': $rid, 'thesaurus': if ($title) then $title else '', 'keywords' : $keywords }) else () ) @@ -1377,7 +1383,6 @@ return -
From 51138055828d5a226694c055c87d69b23c6a980f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?I=C3=B1aki?= Date: Tue, 28 Aug 2018 08:49:13 +0200 Subject: [PATCH 9/9] Helpdesk Changes added in "Dataset conformity" test --- metadata/iso/ets-md-iso-bsxets.xml | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/metadata/iso/ets-md-iso-bsxets.xml b/metadata/iso/ets-md-iso-bsxets.xml index 73a2fae65..25e313e37 100644 --- a/metadata/iso/ets-md-iso-bsxets.xml +++ b/metadata/iso/ets-md-iso-bsxets.xml @@ -779,12 +779,19 @@ return let $levels := ('dataset', 'series') let $recordsToInspect := $records[gmd:hierarchyLevel/*/@codeListValue = $levels] +let $regulation := (lower-case("РЕГЛАМЕНТ (ЕС) № 1089/2010 НА КОМИСИЯТА от 23 ноември 2010 година за прилагане на Директива 2007/2/ЕО на Европейския парламент и на Съвета по отношение на оперативната съвместимост на масиви от пространствени данни и услуги за пространствени данни"), lower-case("NAŘÍZENÍ KOMISE (EU) č. 1089/2010 ze dne 23. listopadu 2010, kterým se provádí směrnice Evropského parlamentu a Rady 2007/2/ES, pokud jde o interoperabilitu sad prostorových dat a služeb prostorových dat"), lower-case("KOMMISSIONENS FORORDNING (EU) Nr. 1089/2010 af 23. november 2010 om gennemførelse af Europa-Parlamentets og Rådets direktiv 2007/2/EF for så vidt angår interoperabilitet for geodatasæt og -tjenester"), lower-case("VERORDENING (EU) Nr. 1089/2010 VAN DE COMMISSIE van 23 november 2010 ter uitvoering van Richtlijn 2007/2/EG van het Europees Parlement en de Raad betreffende de interoperabiliteit van verzamelingen ruimtelijke gegevens en van diensten met betrekking tot ruimtelijke gegevens"), lower-case("COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services"), lower-case("KOMISJONI MÄÄRUS (EL) nr 1089/2010, 23. november 2010, millega rakendatakse Euroopa Parlamendi ja nõukogu direktiivi 2007/2/EÜ seoses ruumiandmekogumite ja -teenuste ristkasutatavusega"), lower-case("KOMISSION ASETUS (EU) N:o 1089/2010, annettu 23 päivänä marraskuuta 2010, Euroopan parlamentin ja neuvoston direktiivin 2007/2/EY täytäntöönpanosta paikkatietoaineistojen ja -palvelujen yhteentoimivuuden osalta"), lower-case("RÈGLEMENT (UE) N o 1089/2010 DE LA COMMISSION du 23 novembre 2010 portant modalités d'application de la directive 2007/2/CE du Parlement européen et du Conseil en ce qui concerne l'interopérabilité des séries et des services de données géographiques"), lower-case("VERORDNUNG (EG) Nr. 1089/2010 DER KOMMISSION vom 23. November 2010 zur Durchführung der Richtlinie 2007/2/EG des Europäischen Parlaments und des Rates hinsichtlich der Interoperabilität von Geodatensätzen und -diensten"), lower-case("COMMISSION REGULATION (EU) No 1089/2010 of 23 November 2010 implementing Directive 2007/2/EC of the European Parliament and of the Council as regards interoperability of spatial data sets and services"), lower-case("ΚΑΝΟΝΙΣΜΟΣ (ΕΕ) αριθ. 1089/2010 ΤΗΣ ΕΠΙΤΡΟΠΗΣ της 23ης Νοεμβρίου 2010 σχετικά με την εφαρμογή της οδηγίας 2007/2/ΕΚ του Ευρωπαϊκού Κοινοβουλίου και του Συμβουλίου όσον αφορά τη διαλειτουργικότητα των συνόλων και των υπηρεσιών χωρικών δεδομένων"), lower-case("A BIZOTTSÁG 1089/2010/EU RENDELETE (2010. november 23.) a 2007/2/EK európai parlamenti és tanácsi irányelv téradatkészletek és -szolgáltatások interoperabilitására vonatkozó rendelkezéseinek végrehajtásáról"), lower-case("REGOLAMENTO (UE) N. 1089/2010 DELLA COMMISSIONE del 23 novembre 2010 recante attuazione della direttiva 2007/2/CE del Parlamento europeo e del Consiglio per quanto riguarda l'interoperabilità dei set di dati territoriali e dei servizi di dati territoriali"), lower-case("KOMISIJAS REGULA (ES) Nr. 1089/2010 (2010. gada 23. novembris), ar kuru īsteno Eiropas Parlamenta un Padomes Direktīvu 2007/2/EK attiecībā uz telpisko datu kopu un telpisko datu pakalpojumu savstarpējo izmantojamību"), lower-case("KOMISIJOS REGLAMENTAS (ES) Nr. 1089/2010 2010 m. lapkričio 23 d. kuriuo įgyvendinamos Europos Parlamento ir Tarybos direktyvos 2007/2/EB nuostatos dėl erdvinių duomenų rinkinių ir paslaugų sąveikumo"), lower-case("REGOLAMENT TAL-KUMMISSJONI (UE) Nru 1089/2010 tat-23 ta' Novembru 2010 li jimplimenta d-Direttiva 2007/2/KE tal-Parlament Ewropew u tal-Kunsill fir-rigward tal- interoperabbiltà tas-settijiet ta’ dejta u servizzi ġeografiċi"), lower-case("ROZPORZĄDZENIE KOMISJI (UE) NR 1089/2010 z dnia 23 listopada 2010 r. w sprawie wykonania dyrektywy 2007/2/WE Parlamentu Europejskiego i Rady w zakresie interoperacyjności zbiorów i usług danych przestrzennych"), lower-case("REGULAMENTO (UE) N. o 1089/2010 DA COMISSÃO de 23 de Novembro de 2010 que estabelece as disposições de execução da Directiva 2007/2/CE do Parlamento Europeu e do Conselho relativamente à interoperabilidade dos conjuntos e serviços de dados geográficos"), lower-case("REGULAMENTUL (UE) NR. 1089/2010 AL COMISIEI din 23 noiembrie 2010 de punere în aplicare a Directivei 2007/2/CE a Parlamentului European şi a Consiliului în ceea ce priveşte interoperabilitatea seturilor şi serviciilor de date spaţiale"), lower-case("NARIADENIE KOMISIE (EÚ) č. 1089/2010 z 23. novembra 2010, ktorým sa vykonáva smernica Európskeho parlamentu a Rady 2007/2/ES, pokiaľ ide o interoperabilitu súborov a služieb priestorových údajov"), lower-case("UREDBA KOMISIJE (EU) št. 1089/2010 z dne 23. novembra 2010 o izvajanju Direktive 2007/2/ES Evropskega parlamenta in Sveta glede medopravilnosti zbirk prostorskih podatkov in storitev v zvezi s prostorskimi podatki"), lower-case("REGLAMENTO (UE) N o 1089/2010 DE LA COMISIÓN de 23 de noviembre de 2010 por el que se aplica la Directiva 2007/2/CE del Parlamento Europeo y del Consejo en lo que se refiere a la interoperabilidad de los conjuntos y los servicios de datos espaciales"), lower-case("KOMMISSIONENS FÖRORDNING (EU) nr 1089/2010 av den 23 november 2010 om genomförande av Europaparlamentets och rådets direktiv 2007/2/EG vad gäller interoperabilitet för rumsliga datamängder och datatjänster")) let $messages := (for $record in $recordsToInspect let $rid := $record/gmd:fileIdentifier/*/text() let $confResPasses := $record/gmd:dataQualityInfo/*/gmd:report/gmd:DQ_DomainConsistency/gmd:result/gmd:DQ_ConformanceResult/gmd:pass + let $DQ_ConformanceResults := $record/gmd:dataQualityInfo/*/gmd:report/gmd:DQ_DomainConsistency/gmd:result/gmd:DQ_ConformanceResult + let $hasExpectedCitation := boolean($DQ_ConformanceResults/*/gmd:CI_Citation[normalize-space(lower-case(gmd:title/*/text())) = $regulation and gmd:date/*/gmd:dateType/*/@codeListValue = 'publication' and gmd:date/*/gmd:date/*/text() = '2010-12-08']) return - if (not($confResPasses)) then + if (not($DQ_ConformanceResults)) then + local:addMessage('TR.noDQConformanceResults', map { 'filename': local:filename($record), 'id': $rid }) + else if (not($hasExpectedCitation)) then + local:addMessage('TR.noExpectedCitation', map { 'filename': local:filename($record), 'id': $rid }) + else if (not($confResPasses)) then local:addMessage('TR.noConformityStatement', map { 'filename': local:filename($record), 'id': $rid }) else for $confResPass in $confResPasses @@ -800,6 +807,8 @@ return + +