diff --git a/config/codelist/external/thesauri/place/regions.rdf b/config/codelist/external/thesauri/place/regions.rdf index 77c8d22..043b9c5 100644 --- a/config/codelist/external/thesauri/place/regions.rdf +++ b/config/codelist/external/thesauri/place/regions.rdf @@ -11,10 +11,11 @@ Continents, countries, sea regions of the world. Generated from NaturalEarth datasets and SeaVox. - 2015-07-17 12:00:00 - 2015-07-17 12:00:00 + 2015-07-17 + 2015-07-17 + @@ -31,6 +32,11 @@ Länder + + Country groups + Groupements de pays + + Dependency Dépendances @@ -38,9 +44,6 @@ - - - North America North America @@ -364,9 +367,6 @@ - - - Aruba Aruba @@ -433,6 +433,7 @@ + Aland Islands @@ -593,12 +594,15 @@ + + + Azerbaijan @@ -638,13 +642,17 @@ + + + + Benin @@ -702,7 +710,9 @@ + + Bahrain @@ -743,6 +753,7 @@ + Bajo Nuevo Bank (Petrel Islands) @@ -930,7 +941,9 @@ + + Chile @@ -1183,12 +1196,15 @@ + + + Czechia @@ -1203,12 +1219,15 @@ + + + Germany @@ -1222,13 +1241,17 @@ + + + + Djibouti @@ -1268,13 +1291,17 @@ + + + + Dominican Republic @@ -1367,13 +1394,17 @@ + + + + Estonia @@ -1388,12 +1419,15 @@ + + + Ethiopia @@ -1421,12 +1455,15 @@ + + + Fiji @@ -1467,13 +1504,17 @@ + + + + Faeroe Islands @@ -1527,7 +1568,9 @@ + + @@ -1651,13 +1694,17 @@ + + + + Grenada @@ -1780,7 +1827,9 @@ + + Haiti @@ -1808,12 +1857,15 @@ + + + Indonesia @@ -1894,14 +1946,76 @@ + + + + + + + England + England + ENG + + + -6.349 49.91 + 1.771 55.805 + + + + + + + + Northern Ireland + Northern Ireland + NIR + + + -8.174 54.035 + -5.431 55.311 + + + + + + + + Scotland + Scotland + SCT + + + -13.691 54.633 + -0.755 60.848 + + + + + + + + Wales + Wales + WLS + + + -5.311 51.384 + -2.647 53.427 + + + + + + + Iran Iran @@ -1943,7 +2057,9 @@ + + Israel @@ -1970,13 +2086,17 @@ + + + + Jamaica @@ -2148,8 +2268,8 @@ - Kosovo - Kosovo + Kosovo (UNSCR 1244/99) + Kosovo (UNSCR 1244/99) KOS @@ -2160,6 +2280,7 @@ + Kuwait @@ -2254,7 +2375,9 @@ + + Sri Lanka @@ -2295,12 +2418,15 @@ + + + Luxembourg @@ -2314,13 +2440,17 @@ + + + + Latvia @@ -2335,12 +2465,15 @@ + + + Macao @@ -2473,6 +2606,7 @@ + Mali @@ -2500,12 +2634,15 @@ + + + Myanmar @@ -2533,6 +2670,7 @@ + Mongolia @@ -2746,13 +2884,17 @@ + + + + Norway @@ -2769,7 +2911,9 @@ + + Nepal @@ -2941,12 +3085,15 @@ + + + Puerto Rico @@ -2987,13 +3134,17 @@ + + + + Paraguay @@ -3065,7 +3216,9 @@ + + Russian Federation @@ -3330,6 +3483,7 @@ + São Tomé and Principe @@ -3370,12 +3524,15 @@ + + + Slovenia @@ -3390,12 +3547,15 @@ + + + Sweden @@ -3410,12 +3570,15 @@ + + + Swaziland @@ -3601,8 +3764,8 @@ - Turkey - Turkey + Türkiye + Türkiye TUR @@ -3614,7 +3777,9 @@ + + Tuvalu @@ -3933,11 +4098,74 @@ + + EU12 + EU12 + + + + -63.1536 -21.3899 + 55.8366 60.8459 + + + + + + + + + + + + + + + + + + + EU25 + EU25 + + + + -63.1536 -21.3899 + 55.8366 70.0923 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - EEA32 - EEA32 + EEA32 (2006-2013) + EEA32 (2006-2013) @@ -3945,6 +4173,7 @@ 44.807 71.165 + @@ -3981,8 +4210,8 @@ - EEA33 - EEA33 + EEA33 (2013-2020) + EEA33 (2013-2020) @@ -3990,6 +4219,7 @@ 44.807 71.165 + @@ -4025,6 +4255,54 @@ + + + + EEA32 (from 2020) + EEA32 (from 2020) + + + + -31.285 27.642 + 44.807 71.165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EEA39 EEA39 @@ -4035,6 +4313,7 @@ 44.807 71.165 + @@ -4076,6 +4355,59 @@ + + + + EEA38 (from 2020) + EEA38 (from 2020) + + + + -31.285 27.642 + 44.807 71.165 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + EFTA4 EFTA4 @@ -4086,6 +4418,7 @@ 31.077 71.165 + @@ -4102,6 +4435,7 @@ 34.099 59.671 + @@ -4124,6 +4458,7 @@ 31.570 70.075 + @@ -4151,6 +4486,7 @@ 34.099 70.075 + @@ -4191,6 +4527,7 @@ 34.099 70.075 + @@ -4264,6 +4601,20 @@ + + Russian Federation (European part) + Russian Federation (European part) + + + + 19.639031 41.189044 + 69.030279 81.851932 + + + + + + diff --git a/config/index/features.json b/config/index/features.json index 7033c91..1f10991 100644 --- a/config/index/features.json +++ b/config/index/features.json @@ -3,6 +3,7 @@ "analysis": { "analyzer": { "pathAnalyzer": { + "type": "custom", "tokenizer": "pathTokenizer" } }, @@ -12,6 +13,7 @@ "delimiter": "/", "replacement": "/", "skip": 0, + "buffer_size": 1024, "reverse": false } } @@ -43,15 +45,6 @@ } } }, - { - "dateType": { - "match": "ft_*_d", - "mapping": { - "type": "double", - "format": "" - } - } - }, { "dateTimeType": { "match": "ft_*_dt", @@ -66,7 +59,6 @@ "match": "ft_*_s", "mapping": { "type": "keyword", - "fielddata": true, "copy_to": "any" } } @@ -75,7 +67,7 @@ "stringPathType": { "match": "ft_*_s_tree", "mapping": { - "type": "keyword", + "type": "text", "fielddata": true, "analyzer": "pathAnalyzer", "search_analyzer": "keyword" @@ -86,8 +78,7 @@ "operationType": { "match": "_op*", "mapping": { - "type": "keyword", - "fielddata": true + "type": "keyword" } } } diff --git a/config/index/records.json b/config/index/records.json index 8903b5f..5ac837f 100644 --- a/config/index/records.json +++ b/config/index/records.json @@ -2,26 +2,30 @@ "settings": { "index": { "max_result_window": 15000, + "max_inner_result_window": 200, "query.default_field": "any.default", "mapping.total_fields.limit": 4000, "analysis": { + "normalizer": { + "sorting": { + "type": "custom", + "filter": ["lowercase", "asciifolding"] + } + }, "analyzer": { "trigram": { "type": "custom", "tokenizer": "standard", - "filter": [ - "shingle" - ] + "filter": ["shingle"] }, "reverse": { "type": "custom", "tokenizer": "standard", - "filter": [ - "reverse" - ] + "filter": ["reverse"] }, "french_rebuilt": { - "tokenizer": "standard", + "type": "custom", + "tokenizer": "standard", "filter": [ "lowercase", "french_synonym", @@ -33,10 +37,12 @@ ] }, "english_rebuilt": { - "tokenizer": "standard", + "type": "custom", + "tokenizer": "standard", "filter": [ "english_possessive_stemmer", "lowercase", + "asciifolding", "english_synonym", "english_stop", "english_keywords", @@ -44,6 +50,7 @@ ] }, "synInspireAnnexes": { + "type": "custom", "tokenizer": "keyword", "filter": [ "lowercase", @@ -53,39 +60,29 @@ ] }, "synInspireThemeUris": { + "type": "custom", "tokenizer": "keyword", - "filter": [ - "lowercase", - "synInspireThemeUris" - ] + "filter": ["lowercase", "synInspireThemeUris"] }, "synInspireThemes": { + "type": "custom", "tokenizer": "keyword", - "filter": [ - "lowercase", - "synInspireThemes" - ] + "filter": ["lowercase", "synInspireThemes"] }, "keepInspireServiceTypes": { + "type": "custom", "tokenizer": "keyword", - "filter": [ - "lowercase", - "keepInspireServiceTypes" - ] + "filter": ["lowercase", "keepInspireServiceTypes"] }, "keepInspireAnnexes": { + "type": "custom", "tokenizer": "keyword", - "filter": [ - "lowercase", - "keepInspireAnnexes" - ] + "filter": ["lowercase", "keepInspireAnnexes"] }, "keepInspireThemes": { + "type": "custom", "tokenizer": "keyword", - "filter": [ - "lowercase", - "keepInspireThemes" - ] + "filter": ["lowercase", "keepInspireThemes"] } }, "filter": { @@ -95,12 +92,22 @@ "max_shingle_size": 3 }, "french_elision": { - "type": "elision", + "type": "elision", "articles_case": true, "articles": [ - "l", "m", "t", "qu", "n", "s", - "j", "d", "c", "jusqu", "quoiqu", - "lorsqu", "puisqu" + "l", + "m", + "t", + "qu", + "n", + "s", + "j", + "d", + "c", + "jusqu", + "quoiqu", + "lorsqu", + "puisqu" ] }, "french_synonym": { @@ -114,38 +121,37 @@ ] }, "french_stop": { - "type": "stop", - "stopwords": "_french_" + "type": "stop", + "stopwords": "_french_" }, "french_keywords": { - "type": "keyword_marker", - "keywords": [] + "type": "keyword_marker", + "keywords": [] }, "french_stemmer": { - "type": "stemmer", - "language": "light_french" + "type": "stemmer", + "language": "light_french" }, "english_stop": { - "type": "stop", - "stopwords": "_english_" + "type": "stop", + "stopwords": "_english_" }, "english_synonym": { "type": "synonym", "expand": true, - "synonyms": [ - ] + "synonyms": [] }, "english_keywords": { - "type": "keyword_marker", - "keywords": ["example"] + "type": "keyword_marker", + "keywords": ["example"] }, "english_stemmer": { - "type": "stemmer", - "language": "english" + "type": "stemmer", + "language": "english" }, "english_possessive_stemmer": { - "type": "stemmer", - "language": "possessive_english" + "type": "stemmer", + "language": "possessive_english" }, "keepInspireServiceTypes": { "type": "keep", @@ -160,11 +166,7 @@ }, "keepInspireAnnexes": { "type": "keep", - "keep_words": [ - "i", - "ii", - "iii" - ] + "keep_words": ["i", "ii", "iii"] }, "keepInspireThemes": { "type": "keep", @@ -1031,21 +1033,28 @@ "mineral resources => http://inspire.ec.europa.eu/theme/mr" ] } - }, - "normalizer": { - "case_insensitive": { - "char_filter": [], - "filter": [ - "lowercase", "asciifolding" - ], - "type": "custom" - } } } } }, "mappings": { "dynamic_templates": [ + { + "conformTo": { + "match": "conformTo_*", + "mapping": { + "type": "keyword" + } + } + }, + { + "recordLink_": { + "match": "recordLink_*", + "mapping": { + "type": "keyword" + } + } + }, { "numbers": { "match": "*Number", @@ -1054,6 +1063,71 @@ } } }, + { + "org": { + "match": "*Org*Object", + "mapping": { + "type": "object", + "properties": { + "default": { + "type": "keyword", + "copy_to": ["any.default", "organisationName.default"] + }, + "langeng": { + "type": "keyword", + "copy_to": ["any.langeng", "organisationName.langeng"] + }, + "langfre": { + "type": "keyword", + "copy_to": ["any.langfre", "organisationName.langfre"] + }, + "langger": { + "type": "keyword", + "copy_to": ["any.langger", "organisationName.langger"] + }, + "langita": { + "type": "keyword", + "copy_to": ["any.langita", "organisationName.langita"] + }, + "langdut": { + "type": "keyword", + "copy_to": ["any.langdut", "organisationName.langdut"] + }, + "langdan": { + "type": "keyword", + "copy_to": ["any.langdan", "organisationName.langdan"] + }, + "langspa": { + "type": "keyword", + "copy_to": ["any.langspa", "organisationName.langspa"] + }, + "langarm": { + "type": "keyword", + "copy_to": ["any.langarm", "organisationName.langarm"] + }, + "langaze": { + "type": "keyword", + "copy_to": ["any.langaze", "organisationName.langaze"] + }, + "langgeo": { + "type": "keyword", + "copy_to": ["any.langgeo", "organisationName.langgeo"] + }, + "langrum": { + "type": "keyword", + "copy_to": ["any.langrum", "organisationName.langrum"] + }, + "langukr": { + "type": "keyword", + "copy_to": ["any.langukr", "organisationName.langukr"] + }, + "link": { + "type": "keyword" + } + } + } + } + }, { "textField": { "match": "*Object", @@ -1063,14 +1137,16 @@ "default": { "type": "text", "analyzer": "standard", - "copy_to": [ - "any.default", - "anytext" - ], + "copy_to": ["any.default", "anytext"], "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 + }, + "sort": { + "type": "keyword", + "ignore_above": 2000, + "normalizer": "sorting" }, "trigram": { "type": "text", @@ -1085,39 +1161,33 @@ "langeng": { "type": "text", "analyzer": "english_rebuilt", - "copy_to": [ - "any.langeng" - ], + "copy_to": ["any.langeng"], "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 } } }, "langfre": { "type": "text", "analyzer": "french_rebuilt", - "copy_to": [ - "any.langfre" - ], + "copy_to": ["any.langfre"], "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 } } }, "langger": { "type": "text", "analyzer": "german", - "copy_to": [ - "any.langger" - ], + "copy_to": ["any.langger"], "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 } } }, @@ -1130,46 +1200,108 @@ "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 } } }, - "langita": { + "langdan": { "type": "text", - "analyzer": "italian", + "analyzer": "danish", "copy_to": [ - "any.langita" + "any.langdan" ], "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 + } + } + }, + "langita": { + "type": "text", + "analyzer": "italian", + "copy_to": ["any.langita"], + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 2000 } } }, "langspa": { "type": "text", "analyzer": "spanish", - "copy_to": [ - "any.langspa" - ], + "copy_to": ["any.langspa"], + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 2000 + } + } + }, + "langarm": { + "type": "text", + "analyzer": "armenian", + "copy_to": ["any.langarm"], + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 2000 + } + } + }, + "langaze": { + "type": "text", + "analyzer": "standard", + "copy_to": ["any.langaze"], "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 + } + } + }, + "langgeo": { + "type": "text", + "analyzer": "standard", + "copy_to": ["any.langgeo"], + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 2000 + } + } + }, + "langrum": { + "type": "text", + "analyzer": "romanian", + "copy_to": ["any.langrum"], + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 2000 + } + } + }, + "langukr": { + "type": "text", + "analyzer": "standard", + "copy_to": ["any.langukr"], + "fields": { + "keyword": { + "type": "keyword", + "ignore_above": 2000 } } }, "langroh": { "type": "text", "analyzer": "standard", - "copy_to": [ - "any.langroh" - ], + "copy_to": ["any.langroh"], "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 } } }, @@ -1229,51 +1361,60 @@ { "tag": { "match": "th_*", + "match_mapping_type": "object", "mapping": { - "type": "object", - "copy_to": ["tag"], "properties": { "default": { "type": "keyword", - "copy_to": [ - "any.default" - ] + "copy_to": ["any.default"] }, "langeng": { "type": "keyword", - "copy_to": [ - "any.langeng" - ] + "copy_to": ["any.langeng"] }, "langfre": { "type": "keyword", - "copy_to": [ - "any.langfre" - ] + "copy_to": ["any.langfre"] }, "langger": { "type": "keyword", - "copy_to": [ - "any.langger" - ] + "copy_to": ["any.langger"] }, "langdut": { "type": "keyword", - "copy_to": [ - "any.langdut" - ] + "copy_to": ["any.langdut"] + }, + "langdan": { + "type": "keyword", + "copy_to": ["any.langdan"] }, "langita": { "type": "keyword", - "copy_to": [ - "any.langita" - ] + "copy_to": ["any.langita"] }, "langspa": { "type": "keyword", - "copy_to": [ - "any.langspa" - ] + "copy_to": ["any.langspa"] + }, + "langarm": { + "type": "keyword", + "copy_to": ["any.langarm"] + }, + "langaze": { + "type": "keyword", + "copy_to": ["any.langaze"] + }, + "langgeo": { + "type": "keyword", + "copy_to": ["any.langgeo"] + }, + "langrum": { + "type": "keyword", + "copy_to": ["any.langrum"] + }, + "langukr": { + "type": "keyword", + "copy_to": ["any.langukr"] }, "text": { "type": "keyword" @@ -1301,14 +1442,6 @@ } } }, - { - "org": { - "match": "*Org*", - "mapping": { - "type": "keyword" - } - } - }, { "contact": { "match": "*contact*", @@ -1318,6 +1451,14 @@ "organisation": { "type": "keyword" }, + "email": { + "type": "keyword", + "copy_to": ["any.default"] + }, + "individual": { + "type": "keyword", + "copy_to": ["any.default"] + }, "role": { "type": "keyword" } @@ -1394,7 +1535,7 @@ "synInspireAnnexesType": { "match": "inspireAnnex*", "mapping": { - "type": "keyword", + "type": "text", "fielddata": true, "analyzer": "synInspireAnnexes", "search_analyzer": "keyword" @@ -1405,7 +1546,7 @@ "synInspireThemeType": { "match": "inspireTheme*", "mapping": { - "type": "keyword", + "type": "text", "fielddata": true, "analyzer": "synInspireThemes", "search_analyzer": "keyword" @@ -1416,7 +1557,7 @@ "inspireServiceType": { "match": "inspireServiceType", "mapping": { - "type": "keyword", + "type": "text", "fielddata": true, "analyzer": "keepInspireServiceTypes", "search_analyzer": "keyword" @@ -1452,6 +1593,10 @@ "type": "text", "analyzer": "dutch" }, + "langdan": { + "type": "text", + "analyzer": "danish" + }, "langita": { "type": "text", "analyzer": "italian" @@ -1460,6 +1605,26 @@ "type": "text", "analyzer": "spanish" }, + "langarm": { + "type": "text", + "analyzer": "armenian" + }, + "langaze": { + "type": "text", + "analyzer": "standard" + }, + "langgeo": { + "type": "text", + "analyzer": "standard" + }, + "langrum": { + "type": "text", + "analyzer": "romanian" + }, + "langukr": { + "type": "text", + "analyzer": "standard" + }, "langroh": { "type": "text", "analyzer": "standard" @@ -1474,46 +1639,55 @@ "properties": { "default": { "type": "keyword", - "copy_to": [ - "any.default", - "anytext" - ] + "copy_to": ["any.default", "anytext"] }, "langeng": { "type": "keyword", - "copy_to": [ - "any.langeng" - ] + "copy_to": ["any.langeng"] }, "langfre": { "type": "keyword", - "copy_to": [ - "any.langfre" - ] + "copy_to": ["any.langfre"] }, "langger": { "type": "keyword", - "copy_to": [ - "any.langger" - ] + "copy_to": ["any.langger"] }, "langdut": { "type": "keyword", - "copy_to": [ - "any.langdut" - ] + "copy_to": ["any.langdut"] + }, + "langdan": { + "type": "keyword", + "copy_to": ["any.langdan"] }, "langita": { "type": "keyword", - "copy_to": [ - "any.langita" - ] + "copy_to": ["any.langita"] }, "langspa": { "type": "keyword", - "copy_to": [ - "any.langspa" - ] + "copy_to": ["any.langspa"] + }, + "langarm": { + "type": "keyword", + "copy_to": ["any.langarm"] + }, + "langaze": { + "type": "keyword", + "copy_to": ["any.langaze"] + }, + "langgeo": { + "type": "keyword", + "copy_to": ["any.langgeo"] + }, + "langrum": { + "type": "keyword", + "copy_to": ["any.langrum"] + }, + "langukr": { + "type": "keyword", + "copy_to": ["any.langukr"] }, "link": { "type": "keyword" @@ -1528,8 +1702,7 @@ }, "document": { "type": "text", - "index": false, - "doc_values": false + "index": false }, "documentStandard": { "type": "keyword" @@ -1541,10 +1714,12 @@ "type": "keyword" }, "geom": { - "type": "geo_shape" + "type": "geo_shape", + "ignore_malformed": true }, "shape": { - "type": "geo_shape" + "type": "geo_shape", + "ignore_malformed": true }, "location": { "type": "geo_point" @@ -1598,9 +1773,6 @@ "isOpenData": { "type": "keyword" }, - "lineage": { - "type": "text" - }, "resolutionScaleDenominator": { "type": "integer" }, @@ -1635,6 +1807,46 @@ } } }, + "measure": { + "type": "nested", + "properties": { + "name": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "date": { + "type": "date" + }, + "value": { + "type": "keyword" + }, + "unit": { + "type": "keyword" + }, + "type": { + "type": "keyword" + } + } + }, + "processSteps": { + "type": "nested", + "properties": { + "descriptionObject": { + "type": "object" + }, + "date": { + "type": "date" + }, + "source": { + "type": "object" + }, + "processor": { + "type": "object" + } + } + }, "link": { "type": "nested", "properties": { @@ -1646,12 +1858,33 @@ "type": "text", "copy_to": "any.common" }, + "linkObject": { + "type": "object", + "properties": { + "default": { + "type": "keyword", + "copy_to": "any.common" + } + } + }, "name": { "type": "text", "copy_to": "any.common" }, + "nameObject": { + "type": "object", + "properties": { + "default": { + "type": "keyword", + "copy_to": "any.common" + } + } + }, "description": { "type": "text" + }, + "descriptionObject": { + "type": "object" } } }, @@ -1666,7 +1899,7 @@ "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 } } }, @@ -1675,7 +1908,7 @@ "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 } } }, @@ -1693,7 +1926,7 @@ "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 } } }, @@ -1702,7 +1935,7 @@ "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 } } }, @@ -1721,12 +1954,7 @@ "recordJoin": { "type": "join", "relations": { - "record": [ - "children", - "dataset", - "sibling", - "feature" - ] + "record": ["children", "dataset", "sibling", "feature"] } }, "recordLink": { @@ -1748,7 +1976,8 @@ "type": "keyword" }, "title": { - "type": "keyword" + "type": "keyword", + "copy_to": "any.common" }, "origin": { "type": "keyword" @@ -1787,12 +2016,74 @@ } } }, + "featureTypes": { + "type": "object", + "properties": { + "aliases": { + "type": "keyword", + "copy_to": "any.common" + }, + "code": { + "type": "keyword" + }, + "definition": { + "type": "text" + }, + "typeName": { + "type": "keyword", + "copy_to": "any.common" + }, + "isAbstract": { + "type": "boolean" + }, + "attributeTable": { + "type": "object", + "properties": { + "code": { + "type": "keyword", + "copy_to": "any.common" + }, + "definition": { + "type": "text" + }, + "link": { + "type": "keyword" + }, + "name": { + "type": "keyword", + "copy_to": "any.common" + }, + "type": { + "type": "keyword" + }, + "cardinality": { + "type": "keyword" + }, + "values": { + "type": "object", + "properties": { + "code": { + "type": "keyword", + "copy_to": "any.common" + }, + "definition": { + "type": "text" + }, + "label": { + "type": "keyword", + "copy_to": "any.common" + } + } + } + } + } + } + }, "serviceType": { "type": "keyword" }, "format": { - "type": "keyword", - "normalizer": "case_insensitive" + "type": "keyword" }, "spatialRepresentationType": { "type": "keyword" @@ -1809,15 +2100,14 @@ }, "validReport": { "type": "text", - "index": false, - "doc_values": false + "index": false }, "useLimitation": { "type": "text", "fields": { "keyword": { "type": "keyword", - "ignore_above": 256 + "ignore_above": 2000 } } }, @@ -1874,13 +2164,88 @@ "type": "boolean" }, "indexingErrorMsg": { - "type": "keyword" + "type": "object", + "properties": { + "string": { + "type": "keyword" + }, + "type": { + "type": "keyword" + }, + "values": { + "type": "nested" + } + } }, "statusWorkflow": { "type": "keyword" }, "userSavedCount": { "type": "long" + }, + "resourceTemporalExtentDetails": { + "properties": { + "start": { + "properties": { + "date": { + "type": "date", + "format": "date_optional_time" + } + } + }, + "end": { + "properties": { + "date": { + "type": "date", + "format": "date_optional_time" + } + } + } + } + }, + "organisationName": { + "type": "object", + "properties": { + "default": { + "type": "keyword" + }, + "langeng": { + "type": "keyword" + }, + "langfre": { + "type": "keyword" + }, + "langger": { + "type": "keyword" + }, + "langita": { + "type": "keyword" + }, + "langdut": { + "type": "keyword" + }, + "langdan": { + "type": "keyword" + }, + "langspa": { + "type": "keyword" + }, + "langarm": { + "type": "keyword" + }, + "langaze": { + "type": "keyword" + }, + "langgeo": { + "type": "keyword" + }, + "langrum": { + "type": "keyword" + }, + "langukr": { + "type": "keyword" + } + } } } } diff --git a/config/schema_plugins/csw-record/formatter/full_view/view.groovy b/config/schema_plugins/csw-record/formatter/full_view/view.groovy deleted file mode 100644 index 1679ee7..0000000 --- a/config/schema_plugins/csw-record/formatter/full_view/view.groovy +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -new cswrecord.Handlers(handlers, f, env).addDefaultHandlers() \ No newline at end of file diff --git a/config/schema_plugins/csw-record/formatter/groovy/cswrecord/Handlers.groovy b/config/schema_plugins/csw-record/formatter/groovy/cswrecord/Handlers.groovy deleted file mode 100644 index 578b8be..0000000 --- a/config/schema_plugins/csw-record/formatter/groovy/cswrecord/Handlers.groovy +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -package cswrecord - -import org.fao.geonet.api.records.formatters.FormatType -import org.geotools.geometry.jts.ReferencedEnvelope -import org.geotools.referencing.CRS - -import static java.lang.Double.parseDouble - -public class Handlers extends dublincore.Handlers { - - - public static final String BOUNDING_BOX = 'ows:BoundingBox' - - public Handlers(handlers, f, env) { - super(handlers, f, env, 'csw:Record') - excludedEls << BOUNDING_BOX - } - - public void addDefaultHandlers() { - super.addDefaultHandlers() - handlers.add name: 'BBoxes', select: BOUNDING_BOX, handleBoundingBox - } - - def handleBoundingBox = { el -> - def lowerCorner = el.'ows:LowerCorner'.text().trim().split(' ') - def upperCorner = el.'ows:UpperCorner'.text().trim().split(' ') - - def crsAtt = el['@crs'] - if (upperCorner.length > 1 && lowerCorner.length > 1) { - try { - String crsCode = crsAtt.text().trim() - if (!crsCode.isEmpty()) { - if (crsCode.contains(":::")) { - crsCode = crsCode.split(":::", 2)[1] - } - } else { - crsCode = "EPSG:4326" - } - - def crs = CRS.decode(crsCode.trim()) - ReferencedEnvelope bbox = new ReferencedEnvelope(parseDouble(lowerCorner[0]), parseDouble(upperCorner[0]), - parseDouble(lowerCorner[1]), parseDouble(upperCorner[1]), crs) - - def model = [ - label : f.nodeLabel(el), - s : bbox.getMinY(), - n : bbox.getMaxY(), - w : bbox.getMinX(), - e : bbox.getMaxX(), - geomproj : "EPSG:${CRS.lookupEpsgCode(crs, false)}", - minwidth: mapConfig.getWidth() / 4, - minheight: mapConfig.getWidth() / 4, - mapconfig : this.env.mapConfiguration - ] - - return handlers.fileResult("html/bbox.html", model) - } catch (Throwable t) { - // skip and use default - } - } - - def data = el.'ows:LowerCorner'.text().trim() + ", " + el.'ows:UpperCorner'.text().trim() - if (!crsAtt.text().isEmpty()) { - data += " (${crsAtt.text()})" - } - - return handlers.fileResult("html/2-level-entry.html", [label: f.nodeLabel(el), childData: data]) - } - - @Override - public String getAbstract(el) { - def abstractVal = firstNonEmpty(el.'dct:abstract') - if (abstractVal.isEmpty()) { - abstractVal = super.getAbstract(el); - } - return abstractVal - } - -} diff --git a/config/schema_plugins/csw-record/schema-ident.xml b/config/schema_plugins/csw-record/schema-ident.xml index 8800381..7cd9ab9 100644 --- a/config/schema_plugins/csw-record/schema-ident.xml +++ b/config/schema_plugins/csw-record/schema-ident.xml @@ -28,7 +28,7 @@ csw-record e5f27024-dde2-11df-a18e-001c2346de4c 2.0.2 - 3.4.0 + 4.4.0 Dublin core (for CSW only) http://www.opengis.net/cat/csw/2.0.2 http://schemas.opengis.net/csw/2.0.2/CSW-discovery.xsd diff --git a/config/schema_plugins/dublin-core/config/associated-panel/default.json b/config/schema_plugins/dublin-core/config/associated-panel/default.json index d9b986c..abfae19 100644 --- a/config/schema_plugins/dublin-core/config/associated-panel/default.json +++ b/config/schema_plugins/dublin-core/config/associated-panel/default.json @@ -12,6 +12,20 @@ "fields": { "url": {} } + }], + "associatedResourcesTypes": [{ + "type": "parent", + "label": "linkToParent", + "config": { + "sources": { + "metadataStore": { + "params": { + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": true} + } + } }] } } diff --git a/config/schema_plugins/dublin-core/formatter/full_view/view.groovy b/config/schema_plugins/dublin-core/formatter/full_view/view.groovy deleted file mode 100644 index e34be68..0000000 --- a/config/schema_plugins/dublin-core/formatter/full_view/view.groovy +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -new dublincore.Handlers(handlers, f, env).addDefaultHandlers() \ No newline at end of file diff --git a/config/schema_plugins/dublin-core/formatter/groovy/dublincore/Handlers.groovy b/config/schema_plugins/dublin-core/formatter/groovy/dublincore/Handlers.groovy deleted file mode 100644 index c6efe6d..0000000 --- a/config/schema_plugins/dublin-core/formatter/groovy/dublincore/Handlers.groovy +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -package dublincore - -import org.fao.geonet.api.records.formatters.groovy.Environment -import org.fao.geonet.api.records.formatters.groovy.util.* - -public class Handlers { - public static final String TITLE_EL_NAME = 'dc:title' - public static final String DESC_EL_NAME = 'dc:description' - protected org.fao.geonet.api.records.formatters.groovy.Handlers handlers; - protected org.fao.geonet.api.records.formatters.groovy.Functions f - protected Environment env - common.Handlers commonHandlers - public String rootEl - def excludedEls = [] - def urlElts = ['dc:relation'] - - public Handlers(handlers, f, env) { - this(handlers, f, env, "simpledc") - } - - public Handlers(handlers, f, env, rootEl) { - this.handlers = handlers - this.f = f - this.env = env - commonHandlers = new common.Handlers(handlers, f, env) - this.rootEl = rootEl - excludedEls << rootEl - } - - public void addDefaultHandlers() { - commonHandlers.addDefaultStartAndEndHandlers() - - handlers.add name: "Normal Elements", select: { - !excludedEls.contains(it.name()) && !it.text().isEmpty() - }, group:true, handleNormalEls - handlers.add name: 'Root Element', select: rootEl, priority: -1, handleRootEl - } - - def firstNonEmpty(el) { - if (el.text().isEmpty()) { - return null; - } else { - return el.find { !it.text().isEmpty() }.text() - } - } - - def handleRootEl = { el -> - Summary summary = new Summary(handlers, env, f); - - summary.title = firstNonEmpty(el[TITLE_EL_NAME]) - summary.abstr = getAbstract(el) - summary.content = handlers.processElements(el.children()) - summary.addNavBarItem(new NavBarItem(f.translate('complete'), null, '.container > .entry:not(.overview)')) - summary.addNavBarItem(commonHandlers.createXmlNavBarItem()) - summary.addCompleteNavItem = false - summary.addOverviewNavItem = true - - LinkBlock linkBlock = new LinkBlock(f.translate("links"), "fa fa-link"); - summary.links.add(linkBlock) - def toLink = { linkEl -> - Link link; - try { - def href = linkEl.text() - link = new Link(href, href); - - } catch (URISyntaxException e) { - link = new Link("alert('${f.translate('notValidUri')}')", linkEl.text()); - } - - return link - } - - def relatedLinkType = new LinkType("related", null, null, "fa fa-sitemap") - def referencesLinkType = new LinkType("references", null, null, "fa fa-arrows-h") - el.'dc:relation'.each{linkBlock.put(relatedLinkType, toLink(it))} - el.'dc:URI'.each{linkBlock.put(referencesLinkType, toLink(it))} - - summary.result - } - - def handleNormalEls = { els -> - def sections = new TreeMap( - [compare:{el1, el2 -> - if (el1 == TITLE_EL_NAME) return -1 - else if (el2 == TITLE_EL_NAME) return 1 - else return f.nodeLabel(el1, null).compareTo(f.nodeLabel(el2, null)) - }] as Comparator); - - - els.each{ - def list = sections[it.name()] - list = list == null ? [] : list - list << it - sections.put(it.name(), list) - } - - def singles = new StringBuilder() - def multiples = new StringBuilder() - sections.entrySet().each { entry -> - if (entry.value.size() > 1) { - multiples.append(handlers.fileResult("html/list-entry.html", [label: f.nodeLabel(entry.key, null), listItems: entry.value])) - } else { - def el = entry.value.iterator().next() - if(!urlElts.contains(el.name())) - singles.append(handlers.fileResult("html/text-el.html", [label: f.nodeLabel(el), text: el.text()])) - else - singles.append(handlers.fileResult("html/url-el.html", ["label": f.nodeLabel(el), "href" : el.text(), "text" : - el.text().length() > 50 ? (el.text().substring(0, 50) + "...") : el.text()])) - - } - } - - return handlers.fileResult("html/2-level-entry.html", [label: f.nodeLabel(rootEl, null), childData: singles.toString() + multiples]) - } - - public String getAbstract(el) { - return firstNonEmpty(el[DESC_EL_NAME]) - } -} diff --git a/config/schema_plugins/dublin-core/formatter/xsl-view/view.xsl b/config/schema_plugins/dublin-core/formatter/xsl-view/view.xsl index f4fdfc7..d407b47 100644 --- a/config/schema_plugins/dublin-core/formatter/xsl-view/view.xsl +++ b/config/schema_plugins/dublin-core/formatter/xsl-view/view.xsl @@ -88,11 +88,18 @@ select="(dct:references|dc:relation)[ normalize-space(.) != '' and matches(., '.*(.gif|.png|.jpeg|.jpg)$', 'i')]"/> + + + {$schemaStrings/overview} + src="{.}" + onerror="{$imgOnError}"/> diff --git a/config/schema_plugins/dublin-core/index-fields/index.xsl b/config/schema_plugins/dublin-core/index-fields/index.xsl index 58d520f..ad96831 100644 --- a/config/schema_plugins/dublin-core/index-fields/index.xsl +++ b/config/schema_plugins/dublin-core/index-fields/index.xsl @@ -71,7 +71,7 @@ - + - + - + - + - + - + @@ -187,7 +187,7 @@ - "default": + "default": @@ -206,7 +206,7 @@ - "default": + "default": @@ -226,10 +226,11 @@ { - "protocol":"", - "url":"", - "name":"", - "description":"" + "protocol":"", + "urlObject":{"default": ""}, + "nameObject":{"default": ""}, + "descriptionObject":{"default": ""}, + "function": "" } diff --git a/config/schema_plugins/dublin-core/layout/config-editor.xml b/config/schema_plugins/dublin-core/layout/config-editor.xml index 317e9ba..ff7aa5b 100644 --- a/config/schema_plugins/dublin-core/layout/config-editor.xml +++ b/config/schema_plugins/dublin-core/layout/config-editor.xml @@ -50,12 +50,24 @@ - + - + + + + + +
@@ -68,8 +80,20 @@ - + + + + + +
@@ -79,8 +103,21 @@ - + + + + + + + diff --git a/config/schema_plugins/iso19139/formatter/html/graphic-overview.html b/config/schema_plugins/dublin-core/process/thumbnail-add.xsl similarity index 58% rename from config/schema_plugins/iso19139/formatter/html/graphic-overview.html rename to config/schema_plugins/dublin-core/process/thumbnail-add.xsl index b93e746..b430b19 100644 --- a/config/schema_plugins/iso19139/formatter/html/graphic-overview.html +++ b/config/schema_plugins/dublin-core/process/thumbnail-add.xsl @@ -1,3 +1,4 @@ + -
-
-
- -
-
-
+ + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/dublin-core/sample-data/dublin-core.mef b/config/schema_plugins/dublin-core/sample-data/dublin-core.mef deleted file mode 100644 index 3024aac..0000000 Binary files a/config/schema_plugins/dublin-core/sample-data/dublin-core.mef and /dev/null differ diff --git a/config/schema_plugins/dublin-core/sample-data/natural_polar_ecosystems.mef b/config/schema_plugins/dublin-core/sample-data/natural_polar_ecosystems.mef new file mode 100644 index 0000000..0b842f5 Binary files /dev/null and b/config/schema_plugins/dublin-core/sample-data/natural_polar_ecosystems.mef differ diff --git a/config/schema_plugins/dublin-core/schema-ident.xml b/config/schema_plugins/dublin-core/schema-ident.xml index ea579fe..bd653c0 100644 --- a/config/schema_plugins/dublin-core/schema-ident.xml +++ b/config/schema_plugins/dublin-core/schema-ident.xml @@ -28,7 +28,7 @@ dublin-core 3785ae4c-dde3-11df-a813-001c2346de4c 1.0 - 3.4.0 + 4.4.0 Dublin core The Dublin Core Metadata Element Set is a vocabulary of fifteen properties for use in resource description. The name "Dublin" is due to its origin at a 1995 invitational diff --git a/config/schema_plugins/iso19110/config/associated-panel/default.json b/config/schema_plugins/iso19110/config/associated-panel/default.json index c4e7c09..53bfe37 100644 --- a/config/schema_plugins/iso19110/config/associated-panel/default.json +++ b/config/schema_plugins/iso19110/config/associated-panel/default.json @@ -1,3 +1,8 @@ { - "config": {} + "config": { + "associatedResourcesTypes": [ { + "type": "hasfeaturecats", + "allowToAddRelation": false + }] + } } diff --git a/config/schema_plugins/iso19110/convert/OGCWFStoISO19110/OGCWFS-to-ISO19110.xsl b/config/schema_plugins/iso19110/convert/OGCWFStoISO19110/OGCWFS-to-ISO19110.xsl new file mode 100644 index 0000000..df10279 --- /dev/null +++ b/config/schema_plugins/iso19110/convert/OGCWFStoISO19110/OGCWFS-to-ISO19110.xsl @@ -0,0 +1,198 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + [Y0001]-[M01]-[D01]T[H01]:[m01]:[s01] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + false + + + + + + + + + + + + + + + + + Namespace: . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Codelist value + + + code + + + + + + + + + diff --git a/config/schema_plugins/iso19110/convert/fromOGCWFSDescribeFeatureType.xsl b/config/schema_plugins/iso19110/convert/fromOGCWFSDescribeFeatureType.xsl new file mode 100644 index 0000000..1a0596d --- /dev/null +++ b/config/schema_plugins/iso19110/convert/fromOGCWFSDescribeFeatureType.xsl @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19110/formatter/full_view/view.groovy b/config/schema_plugins/iso19110/formatter/full_view/view.groovy deleted file mode 100644 index 61acdb3..0000000 --- a/config/schema_plugins/iso19110/formatter/full_view/view.groovy +++ /dev/null @@ -1,28 +0,0 @@ -def isoHandlers = new iso19110.Handlers(handlers, f, env) - -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -//SummaryFactory.summaryHandler({it.parent() is it.parent()}, isoHandlers) - -isoHandlers.addDefaultHandlers() \ No newline at end of file diff --git a/config/schema_plugins/iso19110/formatter/groovy/iso19110/Handlers.groovy b/config/schema_plugins/iso19110/formatter/groovy/iso19110/Handlers.groovy deleted file mode 100644 index 9275beb..0000000 --- a/config/schema_plugins/iso19110/formatter/groovy/iso19110/Handlers.groovy +++ /dev/null @@ -1,59 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -package iso19110 - -import org.fao.geonet.api.records.formatters.groovy.Environment -import org.fao.geonet.api.records.formatters.groovy.Functions -import org.fao.geonet.api.records.formatters.groovy.util.NavBarItem -import org.fao.geonet.api.records.formatters.groovy.util.Summary - -/** - * @author Jesse on 6/24/2015. - */ -class Handlers extends iso19139.Handlers { - def iso19139RootPackageEl; - - public Handlers(org.fao.geonet.api.records.formatters.groovy.Handlers handlers, Functions f, Environment env) { - super(handlers, f, env); - rootEl = 'gfc:FC_FeatureCatalogue' - packageViews = [rootEl] - iso19139RootPackageEl = super.rootPackageEl - rootPackageEl = iso19100RootPackageEl - } - - private def iso19100RootPackageEl = { el -> - Summary summary = new Summary(handlers, env, f); - - summary.title = isofunc.isoText(el['gmx:name']) - summary.abstr = '' - summary.content = iso19139RootPackageEl(el) - summary.addNavBarItem(new NavBarItem(f.translate('complete'), null, '.container > .entry:not(.overview)')) - summary.addNavBarItem(commonHandlers.createXmlNavBarItem()) - summary.addCompleteNavItem = false - summary.addOverviewNavItem = false - - summary.result - } - -} diff --git a/config/schema_plugins/iso19110/formatter/iso19115-3_2018/view.xsl b/config/schema_plugins/iso19110/formatter/iso19115-3_2018/view.xsl index 395ba47..1e9699f 100644 --- a/config/schema_plugins/iso19110/formatter/iso19115-3_2018/view.xsl +++ b/config/schema_plugins/iso19110/formatter/iso19115-3_2018/view.xsl @@ -10,7 +10,7 @@ xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" xmlns:srv2="http://standards.iso.org/iso/19115/-3/srv/2.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac1="http://standards.iso.org/iso/19115/-3/mac/1.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" diff --git a/config/schema_plugins/iso19110/index-fields/index.xsl b/config/schema_plugins/iso19110/index-fields/index.xsl index 2eb2b04..c2d2e39 100644 --- a/config/schema_plugins/iso19110/index-fields/index.xsl +++ b/config/schema_plugins/iso19110/index-fields/index.xsl @@ -50,7 +50,7 @@ - + + + + + + + + + + + + - - + + + + {"type": "revision", "date": ""} + + [ { - "typeName" : "", - "definition" :"", - "code" :"", + "typeName" : "", + "definition" :"", + "code" :"", "isAbstract" :"", - "aliases" : "" + "aliases" : "" + + + + + + + + + + + + + + + + + + + + + + { + + "organisationObject": , + + "role":"", + "email":"", + "website":"", + "logo":"", + "individual":"", + "position":"", + "phone":"", + "address":"" + } + + diff --git a/config/schema_plugins/iso19110/layout/config-editor.xml b/config/schema_plugins/iso19110/layout/config-editor.xml index 5fa3c78..4b628b2 100644 --- a/config/schema_plugins/iso19110/layout/config-editor.xml +++ b/config/schema_plugins/iso19110/layout/config-editor.xml @@ -23,7 +23,7 @@ --> + xsi:noNamespaceSchemaLocation="../../../../../../config-editor.xsd"> @@ -65,11 +65,10 @@ - + - + diff --git a/config/schema_plugins/iso19110/process/iso19115-3.2018-schemaupgrade.xsl b/config/schema_plugins/iso19110/process/iso19115-3.2018-schemaupgrade.xsl index ea9556a..c14b6a0 100644 --- a/config/schema_plugins/iso19110/process/iso19115-3.2018-schemaupgrade.xsl +++ b/config/schema_plugins/iso19110/process/iso19115-3.2018-schemaupgrade.xsl @@ -9,8 +9,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv2="http://standards.iso.org/iso/19115/-3/srv/2.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac1="http://standards.iso.org/iso/19115/-3/mac/1.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" diff --git a/config/schema_plugins/iso19110/schema-ident.xml b/config/schema_plugins/iso19110/schema-ident.xml index 5ab8045..e6c0f70 100644 --- a/config/schema_plugins/iso19110/schema-ident.xml +++ b/config/schema_plugins/iso19110/schema-ident.xml @@ -28,7 +28,7 @@ iso19110 ae229ba0-dde3-11df-99ab-001c2346de4c 1.0 - 3.4.0 + 4.4.0 Geographic information -- Methodology for feature cataloguing (Deprecated - use ISO19115-3) Information géographique -- Méthodologie de catalogage des entités (Deprecated - utiliser ISO19115-3) diff --git a/config/schema_plugins/iso19115-3.2018/config/associated-panel/default.json b/config/schema_plugins/iso19115-3.2018/config/associated-panel/default.json index e1ccb04..b37adf6 100644 --- a/config/schema_plugins/iso19115-3.2018/config/associated-panel/default.json +++ b/config/schema_plugins/iso19115-3.2018/config/associated-panel/default.json @@ -3,7 +3,7 @@ "display": "select", "types": [ { - "group": "onlineDiscover", + "group": "overview", "label": "onlineDiscoverThumbnail", "sources": { "filestore": true, @@ -15,37 +15,44 @@ "fields": { "url": { "isMultilingual": false, - "param": "thumbnail_url" + "param": "thumbnail_url", + "label": "overviewUrl" }, "name": { + "label": "overviewDescription", "param": "thumbnail_desc" } } }, { - "group": "onlineDiscover", - "label": "onlineDiscoverInApp", - "copyLabel": "name", + "group": "API", + "label": "onlineDiscoverWMS", + "copyLabel": "desc", + "icon": "fa gn-icon-onlinesrc", "sources": { "metadataStore": { - "label": "searchAnApplication", + "label": "searchAservice", "params": { - "resourceType": "application" + "serviceType": ["OGC:WMS", "WMS", "view"], + "isTemplate": "n" } } }, - "icon": "fa gn-icon-map", "process": "onlinesrc-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": false, + "label": "ogcServiceUrl" }, "protocol": { - "value": "WWW:LINK", + "value": "OGC:WMS", "hidden": true, "isMultilingual": false }, - "name": {}, + "name": { + "label": "layerName", + "tooltip": "layerNameTooltip" + }, "desc": {}, "function": { "value": "browsing", @@ -55,22 +62,24 @@ } }, { - "group": "onlineDiscover", - "label": "onlineDiscoverWMS", + "group": "API", + "label": "onlineDiscoverINSPIREView", "copyLabel": "desc", "icon": "fa gn-icon-onlinesrc", "sources": { "metadataStore": { "label": "searchAservice", "params": { - "serviceType": ["OGC:WMS", "WMS", "view"] + "serviceType": "view", + "isTemplate": "n" } } }, "process": "onlinesrc-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": false, + "label": "ogcServiceUrl" }, "protocol": { "value": "OGC:WMS", @@ -83,29 +92,36 @@ "value": "browsing", "hidden": true, "isMultilingual": false + }, + "applicationProfile": { + "value": "inspire-view", + "hidden": true, + "isMultilingual": false } } }, { - "group": "onlineDiscover", - "label": "onlineDiscoverINSPIREView", + "group": "API", + "label": "onlineDiscoverWMTS", "copyLabel": "desc", "icon": "fa gn-icon-onlinesrc", "sources": { "metadataStore": { "label": "searchAservice", "params": { - "serviceType": "view" + "serviceType": ["OGC:WMTS", "WMTS"], + "isTemplate": "n" } } }, "process": "onlinesrc-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": false, + "label": "ogcServiceUrl" }, "protocol": { - "value": "OGC:WMS", + "value": "OGC:WMTS", "hidden": true, "isMultilingual": false }, @@ -115,24 +131,20 @@ "value": "browsing", "hidden": true, "isMultilingual": false - }, - "applicationProfile": { - "value": "inspire-view", - "hidden": true, - "isMultilingual": false } } }, { - "group": "onlineDiscover", - "label": "onlineDiscoverWMTS", + "group": "API", + "label": "onlineDiscoverArcGIS", "copyLabel": "desc", "icon": "fa gn-icon-onlinesrc", "sources": { "metadataStore": { "label": "searchAservice", "params": { - "serviceType": ["OGC:WMTS", "WMTS"] + "serviceType": "ESRI:REST", + "isTemplate": "n" } } }, @@ -142,7 +154,7 @@ "isMultilingual": false }, "protocol": { - "value": "OGC:WMTS", + "value": "ESRI:REST", "hidden": true, "isMultilingual": false }, @@ -156,15 +168,16 @@ } }, { - "group": "onlineDiscover", - "label": "onlineDiscoverArcGIS", + "group": "API", + "label": "onlineDiscoverArcGISTiled", "copyLabel": "desc", "icon": "fa gn-icon-onlinesrc", "sources": { "metadataStore": { "label": "searchAservice", "params": { - "serviceType": "ESRI:REST" + "serviceType": "ESRI:REST", + "isTemplate": "n" } } }, @@ -174,7 +187,7 @@ "isMultilingual": false }, "protocol": { - "value": "ESRI:REST", + "value": "ESRI:REST-TILED", "hidden": true, "isMultilingual": false }, @@ -188,25 +201,27 @@ } }, { - "group": "onlineDiscover", - "label": "onlineDiscoverArcGISTiled", + "group": "API", + "label": "OGC API Maps", "copyLabel": "desc", "icon": "fa gn-icon-onlinesrc", "sources": { "metadataStore": { "label": "searchAservice", "params": { - "serviceType": "ESRI:REST" + "serviceType": ["OGC API Maps"], + "isTemplate": "n" } } }, "process": "onlinesrc-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": false, + "label": "ogcServiceUrl" }, "protocol": { - "value": "ESRI:REST-TILED", + "value": "OGC API Maps", "hidden": true, "isMultilingual": false }, @@ -220,20 +235,52 @@ } }, { - "group": "onlineDiscover", - "label": "onlineDiscoverMap", - "copyLabel": "name", + "group": "API", + "label": "OGC API Records", + "copyLabel": "desc", + "icon": "fa gn-icon-onlinesrc", "sources": { - "filestore": true + "metadataStore": { + "label": "searchAservice", + "params": { + "serviceType": ["OGC API Records"], + "isTemplate": "n" + } + } }, - "icon": "fa gn-icon-map", "process": "onlinesrc-add", "fields": { "url": { + "isMultilingual": false, + "label": "ogcServiceUrl" + }, + "protocol": { + "value": "OGC API Records", + "hidden": true, + "isMultilingual": false + }, + "name": {}, + "desc": {}, + "function": { + "value": "search", + "hidden": true, "isMultilingual": false + } + } + }, + { + "group": "API", + "label": "REST API", + "copyLabel": "name", + "icon": "fa gn-icon-onlinesrc", + "process": "onlinesrc-add", + "fields": { + "url": { + "isMultilingual": false, + "label": "restApiUrl" }, "protocol": { - "value": "WWW:LINK", + "value": "REST", "hidden": true, "isMultilingual": false }, @@ -288,7 +335,7 @@ "isMultilingual": false }, "protocol": { - "value": "WWW:LINK", + "value": "WWW:DOWNLOAD", "hidden": true, "isMultilingual": false }, @@ -310,14 +357,16 @@ "metadataStore": { "label": "searchAservice", "params": { - "serviceType": ["OGC:WFS", "WFS", "download"] + "serviceType": ["OGC:WFS", "WFS", "download"], + "isTemplate": "n" } } }, "process": "onlinesrc-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": false, + "label": "ogcServiceUrl" }, "protocol": { "value": "OGC:WFS", @@ -342,14 +391,16 @@ "metadataStore": { "label": "searchAservice", "params": { - "serviceType": ["OGC:WCS", "WCS"] + "serviceType": ["OGC:WCS", "WCS"], + "isTemplate": "n" } } }, "process": "onlinesrc-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": false, + "label": "ogcServiceUrl" }, "protocol": { "value": "OGC:WCS", @@ -374,14 +425,16 @@ "metadataStore": { "label": "searchAservice", "params": { - "serviceType": "download" + "serviceType": "download", + "isTemplate": "n" } } }, "process": "onlinesrc-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": false, + "label": "ogcServiceUrl" }, "protocol": { "value": "OGC:WFS", @@ -411,7 +464,8 @@ "metadataStore": { "label": "searchAservice", "params": { - "serviceType": "download" + "serviceType": "download", + "isTemplate": "n" } } }, @@ -439,6 +493,74 @@ } } }, + { + "group": "onlineDownload", + "label": "OGC API Features", + "copyLabel": "desc", + "icon": "fa gn-icon-onlinesrc", + "sources": { + "metadataStore": { + "label": "searchAservice", + "params": { + "serviceType": ["OGC API Features"], + "isTemplate": "n" + } + } + }, + "process": "onlinesrc-add", + "fields": { + "url": { + "isMultilingual": false, + "label": "ogcServiceUrl" + }, + "protocol": { + "value": "OGC API Features", + "hidden": true, + "isMultilingual": false + }, + "name": {}, + "desc": {}, + "function": { + "value": "download", + "hidden": true, + "isMultilingual": false + } + } + }, + { + "group": "onlineDownload", + "label": "OGC API Coverages", + "copyLabel": "desc", + "icon": "fa gn-icon-onlinesrc", + "sources": { + "metadataStore": { + "label": "searchAservice", + "params": { + "serviceType": ["OGC API Coverages"], + "isTemplate": "n" + } + } + }, + "process": "onlinesrc-add", + "fields": { + "url": { + "isMultilingual": false, + "label": "ogcServiceUrl" + }, + "protocol": { + "value": "OGC API Coverages", + "hidden": true, + "isMultilingual": false + }, + "name": {}, + "desc": {}, + "function": { + "value": "download", + "hidden": true, + "isMultilingual": false + } + } + }, { "group": "localNetwork", "label": "localNetworkVectorFile", @@ -552,33 +674,45 @@ } }, { - "group": "onlineUse", + "group": "onlineUseFcats", "label": "onlineUseFcats", "copyLabel": "name", "sources": { "filestore": true }, + "fileStoreFilter": "*.{pdf,PDF,xls,XLS,ods,ODS,csv,CSV,txt,TXT}", "icon": "fa fa-table", "process": "fcats-file-add", "fields": { "url": { + "isMultilingual": true + }, + "name": {}, + "function": { + "value": "featureCatalogue", + "hidden": true, "isMultilingual": false }, - "name": {} + "protocol": { + "value": "WWW:LINK", + "hidden": true, + "isMultilingual": false + } } }, { - "group": "onlineUse", + "group": "quality", "label": "onlineUseDQReport", "copyLabel": "name", "sources": { "filestore": true }, + "fileStoreFilter": "*.{pdf,PDF}", "icon": "fa fa-table", "process": "dq-report-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": true }, "name": {}, "desc": {}, @@ -586,21 +720,32 @@ "param": "type", "value": "qualityReport", "isMultilingual": false + }, + "function": { + "value": "dataQualityReport", + "hidden": true, + "isMultilingual": false + }, + "protocol": { + "value": "WWW:LINK", + "hidden": true, + "isMultilingual": false } } }, { - "group": "onlineUse", + "group": "quality", "label": "onlineUseDQTOR", "copyLabel": "name", "sources": { "filestore": true }, + "fileStoreFilter": "*.{pdf,PDF}", "icon": "fa fa-table", "process": "dq-report-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": true }, "name": {}, "desc": {}, @@ -608,21 +753,32 @@ "param": "type", "value": "qualitySpecification", "isMultilingual": false + }, + "function": { + "value": "dataQualityReport", + "hidden": true, + "isMultilingual": false + }, + "protocol": { + "value": "WWW:LINK", + "hidden": true, + "isMultilingual": false } } }, { - "group": "onlineUse", + "group": "quality", "label": "onlineUseDQProdReport", "copyLabel": "name", "sources": { "filestore": true }, + "fileStoreFilter": "*.{pdf,PDF}", "icon": "fa fa-table", "process": "dq-report-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": true }, "name": {}, "desc": {}, @@ -630,11 +786,21 @@ "param": "type", "value": "lineage", "isMultilingual": false + }, + "function": { + "value": "dataQualityReport", + "hidden": true, + "isMultilingual": false + }, + "protocol": { + "value": "WWW:LINK", + "hidden": true, + "isMultilingual": false } } }, { - "group": "onlineUse", + "group": "onlineUseLegend", "label": "onlineUseLegendLYR", "copyLabel": "name", "sources": { @@ -645,13 +811,23 @@ "process": "legend-add", "fields": { "url": { + "isMultilingual": true + }, + "name": {}, + "function": { + "value": "legend", + "hidden": true, "isMultilingual": false }, - "name": {} + "protocol": { + "value": "WWW:LINK", + "hidden": true, + "isMultilingual": false + } } }, { - "group": "onlineUse", + "group": "onlineUseLegend", "label": "onlineUseStyleSLD", "copyLabel": "name", "sources": { @@ -662,13 +838,23 @@ "process": "legend-add", "fields": { "url": { + "isMultilingual": true + }, + "name": {}, + "function": { + "value": "legend", + "hidden": true, "isMultilingual": false }, - "name": {} + "protocol": { + "value": "WWW:LINK", + "hidden": true, + "isMultilingual": false + } } }, { - "group": "onlineUse", + "group": "onlineUseLegend", "label": "onlineUseStyleQML", "copyLabel": "name", "sources": { @@ -679,20 +865,90 @@ "process": "legend-add", "fields": { "url": { + "isMultilingual": true + }, + "name": {}, + "function": { + "value": "legend", + "hidden": true, "isMultilingual": false }, - "name": {} + "protocol": { + "value": "WWW:LINK", + "hidden": true, + "isMultilingual": false + } } }, { - "group": "onlineMore", + "group": "links", + "label": "onlineDiscoverInApp", + "copyLabel": "name", + "sources": { + "metadataStore": { + "label": "searchAnApplication", + "params": { + "resourceType": "application", + "isTemplate": "n" + } + } + }, + "icon": "fa gn-icon-map", + "process": "onlinesrc-add", + "fields": { + "url": { + "isMultilingual": false + }, + "protocol": { + "value": "WWW:LINK", + "hidden": true, + "isMultilingual": false + }, + "name": {}, + "desc": {}, + "function": { + "value": "browsing", + "hidden": true, + "isMultilingual": false + } + } + }, + { + "group": "links", + "label": "onlineDiscoverMap", + "copyLabel": "name", + "sources": { + "filestore": true + }, + "icon": "fa gn-icon-map", + "process": "onlinesrc-add", + "fields": { + "url": { + "isMultilingual": false + }, + "protocol": { + "value": "WWW:LINK", + "hidden": true, + "isMultilingual": false + }, + "name": {}, + "desc": {}, + "function": { + "value": "browsing", + "hidden": true, + "isMultilingual": false + } + } + }, + { + "group": "links", "label": "onlineMoreWWW", "copyLabel": "name", "icon": "fa gn-icon-onlinesrc", "process": "onlinesrc-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": true }, "protocol": { "value": "WWW:LINK", @@ -709,7 +965,7 @@ } }, { - "group": "onlineMore", + "group": "links", "label": "onlineMoreFile", "copyLabel": "name", "sources": { @@ -719,7 +975,7 @@ "process": "onlinesrc-add", "fields": { "url": { - "isMultilingual": false + "isMultilingual": true }, "protocol": { "value": "WWW:LINK", @@ -735,6 +991,95 @@ } } } - ] + ], + "associatedResourcesTypes": [{ + "type": "parent", + "label": "linkToParent", + "config": { + "fields": {"associationType": "partOfSeamlessDatabase", "initiativeType": "" }, + "sources": { + "metadataStore": { + "params": { + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": true} + } + } + }, { + "type": "siblings", + "label": "linkToSibling", + "config": { + "sources": { + "metadataStore": { + "params": { + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": true} + } + } + }, { + "type": "service", + "label": "linkToService", + "condition": "!gnCurrentEdit.isService", + "config": { + "sources": { + "metadataStore": { + "label": "searchAservice", + "params": { + "resourceType": ["service"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "dataset", + "label": "linkToDataset", + "condition": "gnCurrentEdit.isService", + "config": { + "sources": { + "metadataStore": { + "params": { + "resourceType": ["dataset"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "source", + "label": "linkToSource", + "config": { + "sources": { + "metadataStore": { + "label": "linkToSource", + "params": { + "resourceType": ["dataset"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }, { + "type": "fcats", + "label": "linkToFeatureCatalog", + "config": { + "sources": { + "metadataStore": { + "label": "linkToFeatureCatalog", + "params": { + "resourceType": ["featureCatalog"], + "isTemplate": "n" + } + }, + "remoteurl": {"multiple": false} + } + } + }] } } diff --git a/config/schema_plugins/iso19115-3.2018/convert/DCAT/sparql-to-iso19115-3.xsl b/config/schema_plugins/iso19115-3.2018/convert/DCAT/sparql-to-iso19115-3.xsl new file mode 100644 index 0000000..79fafcb --- /dev/null +++ b/config/schema_plugins/iso19115-3.2018/convert/DCAT/sparql-to-iso19115-3.xsl @@ -0,0 +1,671 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pointOfContact + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ISO 19115-3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/fromISO19115-3.2014.xsl b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/fromISO19115-3.2014.xsl index f0571b3..062a632 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/fromISO19115-3.2014.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/fromISO19115-3.2014.xsl @@ -8,8 +8,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv2="http://standards.iso.org/iso/19115/-3/srv/2.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac1="http://standards.iso.org/iso/19115/-3/mac/1.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" @@ -87,8 +86,8 @@ - - + + diff --git a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/fromISO19139.xsl b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/fromISO19139.xsl index 613376a..e13c694 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/fromISO19139.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/fromISO19139.xsl @@ -18,7 +18,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/CI_Citation.xsl b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/CI_Citation.xsl index ba1ec33..afeedab 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/CI_Citation.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/CI_Citation.xsl @@ -16,7 +16,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/CI_ResponsibleParty.xsl b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/CI_ResponsibleParty.xsl index 03549ff..be7b0f5 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/CI_ResponsibleParty.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/CI_ResponsibleParty.xsl @@ -18,7 +18,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/SRV.xsl b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/SRV.xsl index 66266e1..4387f28 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/SRV.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/SRV.xsl @@ -16,7 +16,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/core.xsl b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/core.xsl index 8a580e7..836307a 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/core.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/core.xsl @@ -6,7 +6,7 @@ xmlns:gsr="http://www.isotc211.org/2005/gsr" xmlns:gss="http://www.isotc211.org/2005/gss" xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:srvold="http://www.isotc211.org/2005/srv" xmlns:gml30="http://www.opengis.net/gml" xmlns:cat="http://standards.iso.org/iso/19115/-3/cat/1.0" xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" xmlns:mda="http://standards.iso.org/iso/19115/-3/mda/1.0" xmlns:mdb="http://standards.iso.org/iso/19115/-3/mdb/2.0" xmlns:mdt="http://standards.iso.org/iso/19115/-3/mdt/2.0" xmlns:mex="http://standards.iso.org/iso/19115/-3/mex/1.0" xmlns:mic="http://standards.iso.org/iso/19115/-3/mic/1.0" xmlns:mil="http://standards.iso.org/iso/19115/-3/mil/1.0" xmlns:mrl="http://standards.iso.org/iso/19115/-3/mrl/2.0" diff --git a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/defaults.xsl b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/defaults.xsl index 1177353..dd8af71 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/defaults.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/mapping/defaults.xsl @@ -18,7 +18,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" @@ -179,10 +179,14 @@ gex + test="ancestor-or-self::gmd:MD_Georectified + or ancestor-or-self::gmi:MI_Georectified + or ancestor-or-self::gmd:MD_Georeferenceable + or ancestor-or-self::gmi:MI_Georeferenceable + or ancestor-or-self::gmd:MD_GridSpatialRepresentation + or ancestor-or-self::gmd:MD_ReferenceSystem + or ancestor-or-self::gmd:MD_VectorSpatialRepresentation + or name()=gmi:MI_Metadata"> msr @@ -191,7 +195,7 @@ mrd - + mri diff --git a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/toISO19139.xsl b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/toISO19139.xsl index 55b3821..66500e8 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/toISO19139.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/toISO19139.xsl @@ -15,7 +15,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv2="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv2="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/utility/create19115-3Namespaces.xsl b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/utility/create19115-3Namespaces.xsl index 831005b..29c9fba 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/ISO19139/utility/create19115-3Namespaces.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/ISO19139/utility/create19115-3Namespaces.xsl @@ -19,7 +19,7 @@ - + @@ -54,6 +54,7 @@ + diff --git a/config/schema_plugins/iso19115-3.2018/convert/fromISO19115-3.2014.xsl b/config/schema_plugins/iso19115-3.2018/convert/fromISO19115-3.2014.xsl new file mode 100644 index 0000000..dfc40d0 --- /dev/null +++ b/config/schema_plugins/iso19115-3.2018/convert/fromISO19115-3.2014.xsl @@ -0,0 +1,5 @@ + + + diff --git a/config/schema_plugins/iso19115-3.2018/convert/fromISO19139-with-languages-refactor.xsl b/config/schema_plugins/iso19115-3.2018/convert/fromISO19139-with-languages-refactor.xsl new file mode 100644 index 0000000..3725298 --- /dev/null +++ b/config/schema_plugins/iso19115-3.2018/convert/fromISO19139-with-languages-refactor.xsl @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/convert/fromISO19139.xsl b/config/schema_plugins/iso19115-3.2018/convert/fromISO19139.xsl new file mode 100644 index 0000000..f93f6dd --- /dev/null +++ b/config/schema_plugins/iso19115-3.2018/convert/fromISO19139.xsl @@ -0,0 +1,5 @@ + + + diff --git a/config/schema_plugins/iso19115-3.2018/convert/fromJsonCkan.xsl b/config/schema_plugins/iso19115-3.2018/convert/fromJsonCkan.xsl index 1b09829..44bdbef 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/fromJsonCkan.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/fromJsonCkan.xsl @@ -16,7 +16,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" @@ -82,14 +82,14 @@ + codeListValue="utf8"/> - + diff --git a/config/schema_plugins/iso19115-3.2018/convert/fromJsonDkan.xsl b/config/schema_plugins/iso19115-3.2018/convert/fromJsonDkan.xsl index 371fcf1..cd8827d 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/fromJsonDkan.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/fromJsonDkan.xsl @@ -16,7 +16,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" @@ -70,14 +70,14 @@ + codeListValue="utf8"/> - + @@ -366,9 +366,9 @@ - - ^.*([0-9]{2})/([0-9]{2})/([0-9]{4}) - ([0-9]{2}:[0-9]{2})$ - + + ^.*([0-9]{2})[-/]([0-9]{2})[-/]([0-9]{4})[-\s]+([0-9]{2}:[0-9]{2}).*$ + ^([0-9]{4})-([0-9]{2})-([0-9]{2}) ([0-9]{2}:[0-9]{2}:[0-9]{2})$ diff --git a/config/schema_plugins/iso19115-3.2018/convert/fromJsonLdEsri.xsl b/config/schema_plugins/iso19115-3.2018/convert/fromJsonLdEsri.xsl index 9416bac..2cf39cb 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/fromJsonLdEsri.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/fromJsonLdEsri.xsl @@ -16,7 +16,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" @@ -82,14 +82,14 @@ + codeListValue="utf8"/> - + diff --git a/config/schema_plugins/iso19115-3.2018/convert/fromJsonOpenDataSoft.xsl b/config/schema_plugins/iso19115-3.2018/convert/fromJsonOpenDataSoft.xsl index 0f17af6..a14cd81 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/fromJsonOpenDataSoft.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/fromJsonOpenDataSoft.xsl @@ -16,7 +16,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" @@ -73,7 +73,7 @@ - + @@ -81,18 +81,21 @@ - + + codeListValue="utf8"/> - + @@ -106,7 +109,7 @@ - + @@ -130,17 +133,17 @@ - + - + - + @@ -154,33 +157,34 @@ - - + - + + + - + + + + + + + + + + + @@ -188,7 +192,7 @@ - + @@ -228,7 +232,6 @@ - @@ -261,110 +264,30 @@ - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + - - + + + - + - - - @@ -378,14 +301,14 @@ - + - + @@ -402,7 +325,7 @@ - + @@ -412,7 +335,7 @@ - + - + @@ -441,11 +364,13 @@ - + + + false - + @@ -528,7 +453,7 @@ - + @@ -556,20 +481,22 @@ - + + csv json - + geojson - + - shapefile + shp @@ -583,7 +510,10 @@ - + @@ -631,7 +561,10 @@ - + @@ -651,7 +584,7 @@ + codeListValue="download"/> diff --git a/config/schema_plugins/iso19115-3.2018/convert/fromJsonUdata.xsl b/config/schema_plugins/iso19115-3.2018/convert/fromJsonUdata.xsl index 19224a3..31560a3 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/fromJsonUdata.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/fromJsonUdata.xsl @@ -16,7 +16,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" @@ -71,14 +71,14 @@ + codeListValue="utf8"/> - + diff --git a/config/schema_plugins/iso19115-3.2018/convert/fromSPARQL-DCAT.xsl b/config/schema_plugins/iso19115-3.2018/convert/fromSPARQL-DCAT.xsl new file mode 100644 index 0000000..0ee9c6e --- /dev/null +++ b/config/schema_plugins/iso19115-3.2018/convert/fromSPARQL-DCAT.xsl @@ -0,0 +1,671 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + pointOfContact + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ISO 19115-3 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + dataset + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/convert/oai_dc.xsl b/config/schema_plugins/iso19115-3.2018/convert/oai_dc.xsl index 46ffe6a..e8d6947 100644 --- a/config/schema_plugins/iso19115-3.2018/convert/oai_dc.xsl +++ b/config/schema_plugins/iso19115-3.2018/convert/oai_dc.xsl @@ -3,7 +3,7 @@ - + @@ -243,6 +246,7 @@ + @@ -253,18 +257,26 @@ codeListValue="{$thesauri/thesaurus[key = $currentThesaurus]/dname}" /> + + - + - + @@ -272,6 +284,12 @@ + + + @@ -299,6 +317,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/extract-date-modified.xsl b/config/schema_plugins/iso19115-3.2018/extract-date-modified.xsl index ae4c56a..a654624 100644 --- a/config/schema_plugins/iso19115-3.2018/extract-date-modified.xsl +++ b/config/schema_plugins/iso19115-3.2018/extract-date-modified.xsl @@ -7,10 +7,10 @@ - + /cit:date/*)[1]"/> diff --git a/config/schema_plugins/iso19115-3.2018/extract-uuid.xsl b/config/schema_plugins/iso19115-3.2018/extract-uuid.xsl index 8ed9aac..ba2d980 100644 --- a/config/schema_plugins/iso19115-3.2018/extract-uuid.xsl +++ b/config/schema_plugins/iso19115-3.2018/extract-uuid.xsl @@ -1,7 +1,4 @@ - - - - - - + + + - - - - + - - - - - - - ( + select=".//cit:individual/*/cit:name"/> + + + + + + + , + + + + + ( - ) + ) + + + + + + + + + + + + + + + @@ -76,7 +92,7 @@ ('publication', 'revision')]/ cit:date/gco:*[. != '']"/> - + @@ -84,36 +100,12 @@ - - - - - - - - - - - - - - - - ( - - - - - - ) - - - + *[cit:role/*/@codeListValue = $publisherRolesList]"/> + + + + + + + + + + @@ -36,20 +49,22 @@ select="count(authorsNameAndOrgList/*) > 0"/> - - + if (doiUrl != '') then doiUrl else landingPageUrl))"/> @@ -57,12 +72,12 @@ @data{, - author = {}, - publisher = {}, - title = {}, - year = {}, - doi = {}, - url = {} + author = {}, + publisher = {}, + title = {}, + year = {}, + doi = {}, + url = {} } @@ -73,12 +88,12 @@ TY - - AU - + AU - - TI - + TI - - PB - + PB - KW - @@ -101,7 +116,7 @@
- +

@@ -114,23 +129,24 @@ else if ($hasAuthor) then '.' else ''"/> -

.
+ . -
+

+ -
+

-
+

-
+

@@ -150,6 +166,7 @@ , +   diff --git a/config/schema_plugins/iso19115-3.2018/formatter/citation/view.xsl b/config/schema_plugins/iso19115-3.2018/formatter/citation/view.xsl index 58ea8f7..b2b31d2 100644 --- a/config/schema_plugins/iso19115-3.2018/formatter/citation/view.xsl +++ b/config/schema_plugins/iso19115-3.2018/formatter/citation/view.xsl @@ -16,6 +16,12 @@ + + diff --git a/config/schema_plugins/iso19115-3.2018/formatter/datacite/view.xsl b/config/schema_plugins/iso19115-3.2018/formatter/datacite/view.xsl index 4091d7f..82ddac2 100644 --- a/config/schema_plugins/iso19115-3.2018/formatter/datacite/view.xsl +++ b/config/schema_plugins/iso19115-3.2018/formatter/datacite/view.xsl @@ -73,7 +73,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" @@ -123,6 +123,8 @@ + + - + select="normalize-space(ancestor::mdb:MD_Metadata/mdb:metadataLinkage/*/cit:linkage/gco:CharacterString[ + starts-with(., $defaultDoiPrefix)])"/> + + + + + + + + + + + + + @@ -460,12 +487,17 @@ eg. DataCite 2014 - TODO: Define who is the publisher ? Only one allowed. + publisher is the first distributor contact + or the first point of contact having the role "distributor" --> - + + + + + + + + + + + + + + + + + + + + + + + + Publication Office + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/formatter/eu-po-doi/view.xsl b/config/schema_plugins/iso19115-3.2018/formatter/eu-po-doi/view.xsl new file mode 100644 index 0000000..dee9ec8 --- /dev/null +++ b/config/schema_plugins/iso19115-3.2018/formatter/eu-po-doi/view.xsl @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/formatter/iso19139/view.xsl b/config/schema_plugins/iso19115-3.2018/formatter/iso19139/view.xsl index 95c9643..d388bbf 100644 --- a/config/schema_plugins/iso19115-3.2018/formatter/iso19139/view.xsl +++ b/config/schema_plugins/iso19115-3.2018/formatter/iso19139/view.xsl @@ -39,7 +39,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv2="http://standards.iso.org/iso/19115/-3/srv/2.0" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/formatter/jsonld/iso19115-3.2018-to-jsonld.xsl b/config/schema_plugins/iso19115-3.2018/formatter/jsonld/iso19115-3.2018-to-jsonld.xsl index fd4b8cd..9983d87 100644 --- a/config/schema_plugins/iso19115-3.2018/formatter/jsonld/iso19115-3.2018-to-jsonld.xsl +++ b/config/schema_plugins/iso19115-3.2018/formatter/jsonld/iso19115-3.2018-to-jsonld.xsl @@ -5,7 +5,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mac="http://standards.iso.org/iso/19115/-3/mac/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" @@ -305,9 +305,9 @@ { "@type":"DataDownload", - "contentUrl": "" + "contentUrl": "" , - "encodingFormat": "" + "encodingFormat": "" , "name": @@ -426,7 +426,7 @@ select="$metadata/gmd:locale/*[concat('#', @id) = $languageId]/gmd:languageCode/*/@codeListValue"/> { , diff --git a/config/schema_plugins/iso19115-3.2018/formatter/xsl-view/view.xsl b/config/schema_plugins/iso19115-3.2018/formatter/xsl-view/view.xsl index 7f16a09..789d1f2 100644 --- a/config/schema_plugins/iso19115-3.2018/formatter/xsl-view/view.xsl +++ b/config/schema_plugins/iso19115-3.2018/formatter/xsl-view/view.xsl @@ -20,7 +20,7 @@ xmlns:mrd="http://standards.iso.org/iso/19115/-3/mrd/1.0" xmlns:mdq="http://standards.iso.org/iso/19157/-2/mdq/1.0" xmlns:gml="http://www.opengis.net/gml/3.2" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:gfc="http://standards.iso.org/iso/19110/gfc/1.1" @@ -50,7 +50,7 @@ - + @@ -58,7 +58,9 @@ - + + + @@ -148,8 +150,8 @@

- - + +

@@ -169,8 +171,9 @@ - - + + @@ -189,8 +192,9 @@ - - + + @@ -202,7 +206,9 @@ - + @@ -213,8 +219,8 @@

- - + +

@@ -224,9 +230,7 @@ - - +
@@ -237,25 +241,33 @@

- +

- - {$schemaStrings/overview} + - -
- - - -
-
+ +
+ {$schemaStrings/overview} + + +
+ + + +
+
+
@@ -281,7 +293,7 @@
@@ -305,7 +317,7 @@ select="mdb:identificationInfo/*/mri:citation/*/cit:otherCitationDetails"/> --> - + @@ -318,10 +330,10 @@
- Cite +
-

+

@@ -356,7 +368,7 @@
- citation +
@@ -380,18 +392,6 @@ - - -
+
@@ -430,7 +431,7 @@ - +
@@ -540,9 +541,9 @@ + select="@*"/>

-
+
@@ -554,8 +555,10 @@ + match="gex:EX_GeographicBoundingBox[gex:eastBoundLongitude/*:Decimal castable as xs:double + and gex:southBoundLatitude/*:Decimal castable as xs:double + and gex:westBoundLongitude/*:Decimal castable as xs:double + and gex:northBoundLatitude/*:Decimal castable as xs:double]" priority="100"> @@ -582,16 +584,16 @@ match="gex:EX_Extent" priority="100">
-

- +

+ - -

-
- + +

+
+
@@ -601,48 +603,96 @@ -
-

- - -

+ + + + + + + + +
+

+ + +

+ + + +
+
+
+ - - - - - - - - - - - - - - - , - - - - - - - - - - - - , + + + + + + + + + + + + - + + + , + - + + + + + + + + + + , + + + + + + + + + + + + + + + + + +   + + + +
@@ -651,11 +701,11 @@ - + - +
@@ -665,7 +715,7 @@ cit:administrativeArea|cit:postalCode|cit:country)">
-
+
@@ -678,9 +728,9 @@
- + - + @@ -689,31 +739,37 @@
- + - + - () + ()
+ + + - + - + - -> -

- -

+ + + +

+ +

+
@@ -727,28 +783,33 @@
- -
+
+
+ - - + + + + + + ( - + ) - @@ -766,7 +827,7 @@ - + @@ -790,7 +851,7 @@ + select="if (*/cit:name != '') then */cit:name else */cit:linkage"/>

@@ -813,13 +874,13 @@

- - +

@@ -835,6 +896,7 @@ match="mri:descriptiveKeywords[ normalize-space(string-join(*/mri:keyword//text(), '')) = '' or count(*/mri:keyword) = 0]" priority="200"/> +

- @@ -958,8 +1020,8 @@

- +
@@ -985,8 +1047,8 @@ msr:MD_PixelOrientationCode|srv:SV_ParameterDirection| reg:RE_AmendmentType)">
  • - +
  • @@ -1024,7 +1086,7 @@
  • - +
  • @@ -1055,12 +1117,32 @@ + + + + + - - - + + + + + + + + + + + + + + + + + -   + +   @@ -1252,7 +1337,7 @@ - + diff --git a/config/schema_plugins/iso19115-3.2018/index-fields/index-subtemplate.xsl b/config/schema_plugins/iso19115-3.2018/index-fields/index-subtemplate.xsl index 6cd7cf1..0aaae56 100644 --- a/config/schema_plugins/iso19115-3.2018/index-fields/index-subtemplate.xsl +++ b/config/schema_plugins/iso19115-3.2018/index-fields/index-subtemplate.xsl @@ -36,7 +36,7 @@ xmlns:mrl="http://standards.iso.org/iso/19115/-3/mrl/2.0" xmlns:mrd="http://standards.iso.org/iso/19115/-3/mrd/1.0" xmlns:gml="http://www.opengis.net/gml/3.2" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:mdq="http://standards.iso.org/iso/19157/-2/mdq/1.0" @@ -104,22 +104,23 @@ select="string-join(.//cit:individual/cit:CI_Individual/cit:name/gco:CharacterString, ', ')"/> + + select="if ($name != '') then $name + else if ($mail != '') then $mail else ''"/> + { - "default": "" + "default": "" ,"lang": "" + ]/@value"/>": "" } @@ -127,7 +128,7 @@ {"common": ""} + select="util:escapeForJson(normalize-space(.))"/>"} { - "default": "" + "default": "" ,"lang": "" + ]/@value"/>": "" } @@ -167,7 +168,7 @@ { - "default": "" } @@ -190,9 +191,9 @@ { "default": "" } @@ -216,7 +217,7 @@ select="string-join(mco:useLimitations/*/text(), ', ')"/> { - "default": " { - "default": "" @@ -249,7 +250,7 @@ {"common": ""} + select="util:escapeForJson(normalize-space(.))"/>"} diff --git a/config/schema_plugins/iso19115-3.2018/index-fields/index.xsl b/config/schema_plugins/iso19115-3.2018/index-fields/index.xsl index b00f201..976fae5 100644 --- a/config/schema_plugins/iso19115-3.2018/index-fields/index.xsl +++ b/config/schema_plugins/iso19115-3.2018/index-fields/index.xsl @@ -29,7 +29,7 @@ xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" xmlns:mdb="http://standards.iso.org/iso/19115/-3/mdb/2.0" @@ -228,6 +228,7 @@ + + - Warning / Keyword not found in . + + { + "string": "indexingErrorMsg-keywordNotFoundInThesaurus", + "type": "warning", + "values": { + "keyword": "", + "thesaurus": "" + } + } + @@ -645,7 +670,7 @@ - + @@ -667,7 +692,9 @@ - + @@ -714,7 +741,16 @@ - + + + + + + + + + - + + {"type": "Point", "coordinates": + + @@ -823,14 +844,29 @@ } - Warning / Field resourceTemporalDateRange / Lower and upper bounds empty. Date range not indexed. + + { + "string": "indexingErrorMsg-invalidBounds", + "type": "warning", + "values": { } + } + - Warning / Field resourceTemporalDateRange / Lower range bound '' can not be greater than upper bound ''. + + { + "string": "indexingErrorMsg-temporalRangeLowerGreaterThanUpper", + "type": "warning", + "values": { + "lowerBound": "", + "upperBound": "" + } + } + @@ -846,12 +882,16 @@ - { - "gte": "" - - ,"lte": "" - - } + + { + "gte": + + ,"lte": + ,"unit": "m" + + } + @@ -872,14 +912,10 @@ - - - - - +
    + + + @@ -900,10 +936,10 @@ { - "code": "", - "codeSpace": "", - "name": "", - "url": "" + "code": "", + "codeSpace": "", + "name": "", + "url": "" } @@ -934,7 +970,7 @@ { - "title": "", + "title": "", "date": "", @@ -942,7 +978,7 @@ "link": "", - "explanation": "", + "explanation": "", "pass": "" } @@ -954,13 +990,15 @@ - featureCatalog - + + + @@ -977,14 +1015,15 @@ + [ { - "typeName" : "", - "definition" :"", - "code" :"", - "isAbstract" :"", - "aliases" : "" + "typeName" : "", + "definition" :"", + "code" :"", + "isAbstract" :"", + "aliases" : "" - {"name": "", - "definition": "", - "code": "", + {"name": "", + "definition": "", + "code": "", "link": "", "type": "" - + + ,"cardinality": "" + + + ,"values": [ - { - "label": "", - "code": "", - "definition": ""} + { + "label": "", + "code": "", + "definition": ""} , ] @@ -1035,24 +1079,34 @@ - + + + { - "protocol": "", - "function": "", - "applicationProfile": "", - - "url":"", - "name":"", - "description":"" + + "urlObject": , + + + "nameObject": , + + + "descriptionObject": , + + + "nilReason": "", + + "applicationProfile": "" } @@ -1069,39 +1123,104 @@ - + + + + + + + { + "descriptionObject": + + ,"date": "" + + + ,"source": [ + + { + "descriptionObject": + } + , + + ] + + + + + ,"processor": [ + + + { + "organisationObject": + + ,"individual":"" + + } + , + + ] + + } + + + + + + + + + normalize-space(mdq:measure/*/mdq:nameOfMeasure/gco:CharacterString) != '' + or normalize-space(mdq:measure/*/mdq:measureDescription/gco:CharacterString) != '' + ]/mdq:result/(mdq:DQ_QuantitativeResult|mdq:DQ_DescriptiveResult)"> + select="(../../mdq:measure/*/mdq:nameOfMeasure/gco:CharacterString)[1]"/> + select="mdq:value/gco:Record[. != '']|mdq:statement/gco:CharacterString[. != '']"/> + select="mdq:valueUnit//gml:identifier"/> + select="(../../mdq:measure/*/mdq:measureDescription/gco:CharacterString)[1]"/> + + + { - "name": "", + "name": "", - "description": "", + "description": "", + + + "date": "", - "value": "", + "value": "", - "unit": "", + "unit": "", "type": "" } - + @@ -1120,6 +1239,7 @@ + @@ -1128,8 +1248,7 @@ - + @@ -1138,24 +1257,38 @@ - - - + + + + + { - "protocol":"", + "protocol":"", "mimeType":"", - "url":"", - "name":"", - "description":"", + + "urlObject": , + + + "nameObject": , + + + "descriptionObject": , + + + "nilReason": "", + "function":"", - "applicationProfile":"", + "applicationProfile":"", "group": } @@ -1188,7 +1321,7 @@ + {"name": "children", "parent": ""}--> @@ -1235,18 +1368,6 @@ - - - - - - - @@ -1258,10 +1379,11 @@ ISO19115-3 allows more combinations. --> + + select="(.//cit:CI_Organisation/cit:name)[1]" + as="node()?"/> @@ -1269,7 +1391,7 @@ select="replace(*[1]/cit:role/*/@codeListValue, ' ', '')" as="xs:string?"/> - + + + + - - - + and .//cit:CI_Organisation/cit:name/gco:CharacterString = $organisationName/gco:CharacterString]) = 0"> + - - - + @@ -1305,21 +1430,26 @@ { - "organisation":"", + + "organisationObject": , + "role":"", - "email":"", - "website":"", - "logo":"", - "individual":"", - "position":"", - "phone":"", - "address":"" + "email":"", + "website":"", + "logo":"", + "individual":"", + "position":"", + "phone":"", + "address":"" + + ,"nilReason": "" + ,"identifiers":[ { - "code": "", + "code": "", "codeSpace": "", "link": "" } @@ -1424,7 +1554,7 @@ - + diff --git a/config/schema_plugins/iso19115-3.2018/index-fields/link-utility.xsl b/config/schema_plugins/iso19115-3.2018/index-fields/link-utility.xsl index cc5ace0..a2674cc 100644 --- a/config/schema_plugins/iso19115-3.2018/index-fields/link-utility.xsl +++ b/config/schema_plugins/iso19115-3.2018/index-fields/link-utility.xsl @@ -6,6 +6,7 @@ xmlns:mdb="http://standards.iso.org/iso/19115/-3/mdb/2.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" + xmlns:mdq="http://standards.iso.org/iso/19157/-2/mdq/1.0" exclude-result-prefixes="#all"> @@ -75,47 +76,84 @@ - + portrayalCatalogueCitation - + featureCatalogueCitation - + additionalDocumentation specification reportReference + - + + + ]/*/cit:onlineResource/*[cit:linkage/gco:CharacterString != '']"> - + - + + + + + + + + - <xsl:apply-templates mode="get-iso19115-3.2018-localized-string" - select="cit:title"/> + <xsl:variable name="name" + select="if (cit:name) then cit:name else ../../cit:title"/> + <xsl:choose> + <xsl:when test="$forIndexing"> + <xsl:copy-of select="$name"/> + </xsl:when> + <xsl:otherwise> + <xsl:apply-templates mode="get-iso19115-3.2018-localized-string" + select="$name"/> + </xsl:otherwise> + </xsl:choose> - + + + + + + + + + - onlinesrc + + + + diff --git a/config/schema_plugins/iso19115-3.2018/layout/config-editor.xml b/config/schema_plugins/iso19115-3.2018/layout/config-editor.xml index 531679f..9562c71 100644 --- a/config/schema_plugins/iso19115-3.2018/layout/config-editor.xml +++ b/config/schema_plugins/iso19115-3.2018/layout/config-editor.xml @@ -2,7 +2,7 @@ @@ -321,14 +320,14 @@ data-variables="cit:role/cit:CI_RoleCode/@codeListValue~{role}"/> - + @@ -467,7 +466,7 @@ field per language is displayed. --> cit:title - cit:abstract + mri:abstract
    +
    + @@ -585,11 +585,14 @@
    +
    + + @@ -598,11 +601,15 @@
    +
    + + + @@ -615,17 +622,44 @@ - + - + - - - - - - + + @@ -699,12 +729,48 @@ class="gn-label-above-input gn-indent-bluescale"> - - + + + + + + + + + @@ -790,21 +856,54 @@
    - - - - - + + - - + + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/layout/dispatcher.xsl b/config/schema_plugins/iso19115-3.2018/layout/dispatcher.xsl index 4b0e47e..741a6d1 100644 --- a/config/schema_plugins/iso19115-3.2018/layout/dispatcher.xsl +++ b/config/schema_plugins/iso19115-3.2018/layout/dispatcher.xsl @@ -1,6 +1,6 @@ - + diff --git a/config/schema_plugins/iso19115-3.2018/layout/evaluate.xsl b/config/schema_plugins/iso19115-3.2018/layout/evaluate.xsl index 97ce0b2..1986d1c 100644 --- a/config/schema_plugins/iso19115-3.2018/layout/evaluate.xsl +++ b/config/schema_plugins/iso19115-3.2018/layout/evaluate.xsl @@ -1,7 +1,7 @@ + + @@ -64,9 +66,20 @@ match="cit:CI_Date/cit:date[../cit:dateType]"> - - + + + + + + + + + + + + + + @@ -104,7 +117,8 @@
    + data-element-ref="{concat('_X', gn:element/@ref)}" + data-hide-time="{if ($viewConfig/@hideTimeInCalendar = 'true') then 'true' else 'false'}">
    @@ -156,7 +170,8 @@
    + data-element-ref="{concat('_X', gn:element/@ref)}" + data-hide-time="{if ($viewConfig/@hideTimeInCalendar = 'true') then 'true' else 'false'}">
    diff --git a/config/schema_plugins/iso19115-3.2018/layout/layout-custom-fields-keywords.xsl b/config/schema_plugins/iso19115-3.2018/layout/layout-custom-fields-keywords.xsl index a8ccaca..10620e6 100644 --- a/config/schema_plugins/iso19115-3.2018/layout/layout-custom-fields-keywords.xsl +++ b/config/schema_plugins/iso19115-3.2018/layout/layout-custom-fields-keywords.xsl @@ -90,11 +90,12 @@ + + select="if ($thesaurusList/thesaurus[@key = substring-after($thesaurusIdentifier, 'geonetwork.thesaurus.')]) + then $thesaurusList/thesaurus[@key = substring-after($thesaurusIdentifier, 'geonetwork.thesaurus.')] + else $listOfThesaurus/thesaurus[title = $thesaurusTitle]"/> @@ -140,13 +141,18 @@ then $overrideLabel else (mri:thesaurusName/*/cit:title/(gco:CharacterString|lan:PT_FreeText/lan:textGroup/lan:LocalisedCharacterString|gcx:Anchor))[1]"/> - + + - + select="if ($thesaurusList/thesaurus[@key = $thesaurusKey]) + then $thesaurusList/thesaurus[@key = $thesaurusKey] + else if ($listOfThesaurus/thesaurus[key = $thesaurusKey]) + then $listOfThesaurus/thesaurus[key = $thesaurusKey] + else if ($listOfThesaurus/thesaurus[multilingualTitles/multilingualTitle/title = $thesaurusTitle]) + then $listOfThesaurus/thesaurus[multilingualTitles/multilingualTitle/title = $thesaurusTitle] + else $listOfThesaurus/thesaurus[title = $thesaurusTitle]"/> @@ -178,15 +184,28 @@ else mri:keyword/*[1][. != '']/replace(text(), ',', ',,'), ',')"/> + + + select="if (count($listOfTransformation) > 0) + then string-join($listOfTransformation, ',') + else if ($isXlinkEnabled) + then 'to-iso19115-3.2018-keyword,to-iso19115-3.2018-keyword-with-anchor,to-iso19115-3.2018-keyword-as-xlink' + else 'to-iso19115-3.2018-keyword,to-iso19115-3.2018-keyword-with-anchor'"/> - + 0) then 'to-iso19115-3.2018-keyword-with-anchor' @@ -237,6 +256,8 @@ data-transformations="{$transformations}" data-current-transformation="{$transformation}" data-max-tags="{$maxTags}" + data-browsable="{not($thesaurusConfig/@browsable) + or $thesaurusConfig/@browsable != 'false'}" data-order-by-id="{$orderById}" data-lang="{$metadataOtherLanguagesAsJson}" data-textgroup-only="false"> diff --git a/config/schema_plugins/iso19115-3.2018/layout/layout-custom-fields.xsl b/config/schema_plugins/iso19115-3.2018/layout/layout-custom-fields.xsl index 56efe41..d0c6585 100644 --- a/config/schema_plugins/iso19115-3.2018/layout/layout-custom-fields.xsl +++ b/config/schema_plugins/iso19115-3.2018/layout/layout-custom-fields.xsl @@ -7,7 +7,6 @@ xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:mrs="http://standards.iso.org/iso/19115/-3/mrs/1.0" - xmlns:gts="http://www.isotc211.org/2005/gts" xmlns:gml="http://www.opengis.net/gml/3.2" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gn="http://www.fao.org/geonetwork" @@ -18,16 +17,9 @@ exclude-result-prefixes="#all"> - + @@ -128,6 +120,24 @@ + + + + + + + + + + + + + + + + @@ -267,7 +277,7 @@ - +
    - - - - - - - - - - - - - -
    - - -
    -
    + + + + + + + + + + + + + + + +
    + + +
    +
    +
    @@ -333,7 +346,9 @@ (1 or @gn:addedObj = 'true') and $isFlatMode]" priority="2000"> - + + + @@ -345,132 +360,5 @@ $isFlatMode]" priority="2000"/> - - - - - - - - - - - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/config/schema_plugins/iso19115-3.2018/layout/layout.xsl b/config/schema_plugins/iso19115-3.2018/layout/layout.xsl index 6dc8f79..4f807c0 100644 --- a/config/schema_plugins/iso19115-3.2018/layout/layout.xsl +++ b/config/schema_plugins/iso19115-3.2018/layout/layout.xsl @@ -1,6 +1,6 @@ @@ -203,7 +202,7 @@ match="*[gco:CharacterString|gcx:Anchor|gco:Integer|gco:UnlimitedInteger|gco:Decimal| gco:Boolean|gco:Real|gco:Measure|gco:Length|gco:Distance|gco:Angle|gmx:FileName| gco:Scale|gco:RecordType|gcx:MimeFileType|gco:LocalName|gco:ScopedName|gco:RecordType| - gco:Record|lan:PT_FreeText|mcc:URI|gco:TM_PeriodDuration]"> + gco:Record|lan:PT_FreeText|mcc:URI|gco:TM_PeriodDuration|gco:UomIdentifier]"> @@ -271,7 +270,7 @@ gco:Distance|gco:Angle|gmx:FileName| gco:Scale|gco:RecordType|gcx:MimeFileType| gco:LocalName|gco:ScopedName|gco:RecordType| - gco:Record|mcc:URI|gco:TM_PeriodDuration"/> + gco:Record|mcc:URI|gco:TM_PeriodDuration|gco:UomIdentifier"/> + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/layout/utility-fn.xsl b/config/schema_plugins/iso19115-3.2018/layout/utility-fn.xsl index 1f6d969..e81c1b4 100644 --- a/config/schema_plugins/iso19115-3.2018/layout/utility-fn.xsl +++ b/config/schema_plugins/iso19115-3.2018/layout/utility-fn.xsl @@ -10,6 +10,28 @@ exclude-result-prefixes="#all"> + + + + + + + + + + + + + + + + + + + + + + @@ -122,9 +155,14 @@ + select="if ($valueSeparator != '') + then substring-before(., $valueSeparator) + else substring(., 1, 2)"/> + select="if ($valueSeparator != '') + then substring-after(., $valueSeparator) + else substring(., 4)"/> + @@ -135,9 +173,13 @@ + select="if ($valueSeparator != '') + then substring-before(., $valueSeparator) + else substring(., 1, 2)"/> + select="if ($valueSeparator != '') + then substring-after(., $valueSeparator) + else substring(., 4)"/> diff --git a/config/schema_plugins/iso19115-3.2018/layout/utility-tpl.xsl b/config/schema_plugins/iso19115-3.2018/layout/utility-tpl.xsl index 191d52e..9785ae9 100644 --- a/config/schema_plugins/iso19115-3.2018/layout/utility-tpl.xsl +++ b/config/schema_plugins/iso19115-3.2018/layout/utility-tpl.xsl @@ -1,6 +1,6 @@ @@ -28,14 +32,17 @@ - + [ { - "value": "WWW:DOWNLOAD:", - "label": ""} + "value": "WWW:DOWNLOAD:", + "label": ""} , ] diff --git a/config/schema_plugins/iso19115-3.2018/loc/eng/codelists.xml b/config/schema_plugins/iso19115-3.2018/loc/eng/codelists.xml index 2c7e70f..fd3ba79 100644 --- a/config/schema_plugins/iso19115-3.2018/loc/eng/codelists.xml +++ b/config/schema_plugins/iso19115-3.2018/loc/eng/codelists.xml @@ -30,7 +30,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/loc/eng/labels.xml b/config/schema_plugins/iso19115-3.2018/loc/eng/labels.xml index 3f6f51a..d24c02e 100644 --- a/config/schema_plugins/iso19115-3.2018/loc/eng/labels.xml +++ b/config/schema_plugins/iso19115-3.2018/loc/eng/labels.xml @@ -5,7 +5,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" @@ -398,14 +398,8 @@ - - - Information about the scope of the resource. - - - - + Code for the scope. mandatory @@ -1325,6 +1319,14 @@ Spatial or temporal extent of the role + + + Designation of the locale language + + + + Additional metadata language + Designation of the locale language @@ -3924,6 +3926,8 @@ + + - - - Informations concernant le domaine d’application de - la ressource. - - - - + Code pour le domaine d’application. mandatory @@ -776,6 +769,31 @@ + + + Indique qu'un certain élément n'a pas de valeur ou que la valeur est inconnue. + + + + + + + + + + + + + + + + + + + + + + @@ -1399,10 +1417,17 @@ Étendue spatiale ou temporelle du rôle + + + Langue principale de la fiche. Code ISO de la langue à 3 caractères. + + + + Langue additionnelle. Code ISO de la langue à 3 caractères. + - Désignation de la langue du paramétrage régional - + Code ISO de la langue à 3 caractères. @@ -6325,6 +6350,8 @@ la non-évaluation, dans le cadre de métadonnées INSPIRE + + @@ -8812,11 +8839,11 @@ http://www.sandre.eaufrance.fr/?urn=urn:sandre:ensembledonnees:BDCarthage:FXX::: - + - + @@ -8880,7 +8907,7 @@ http://www.sandre.eaufrance.fr/?urn=urn:sandre:ensembledonnees:BDCarthage:FXX::: - + diff --git a/config/schema_plugins/iso19115-3.2018/oasis-catalog.xml b/config/schema_plugins/iso19115-3.2018/oasis-catalog.xml index 6b41135..c498dc6 100644 --- a/config/schema_plugins/iso19115-3.2018/oasis-catalog.xml +++ b/config/schema_plugins/iso19115-3.2018/oasis-catalog.xml @@ -22,8 +22,8 @@ - + diff --git a/config/schema_plugins/iso19115-3.2018/present/csw/csw-brief.xsl b/config/schema_plugins/iso19115-3.2018/present/csw/csw-brief.xsl index 2feea30..1ed8615 100644 --- a/config/schema_plugins/iso19115-3.2018/present/csw/csw-brief.xsl +++ b/config/schema_plugins/iso19115-3.2018/present/csw/csw-brief.xsl @@ -8,7 +8,7 @@ xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" xmlns:mrd="http://standards.iso.org/iso/19115/-3/mrd/1.0" xmlns:mrs="http://standards.iso.org/iso/19115/-3/mrs/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/present/csw/csw-full.xsl b/config/schema_plugins/iso19115-3.2018/present/csw/csw-full.xsl index 02361c5..361d9d8 100644 --- a/config/schema_plugins/iso19115-3.2018/present/csw/csw-full.xsl +++ b/config/schema_plugins/iso19115-3.2018/present/csw/csw-full.xsl @@ -8,7 +8,7 @@ xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" xmlns:mrd="http://standards.iso.org/iso/19115/-3/mrd/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/present/csw/csw-summary.xsl b/config/schema_plugins/iso19115-3.2018/present/csw/csw-summary.xsl index cb9d87c..7c578bd 100644 --- a/config/schema_plugins/iso19115-3.2018/present/csw/csw-summary.xsl +++ b/config/schema_plugins/iso19115-3.2018/present/csw/csw-summary.xsl @@ -8,7 +8,7 @@ xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" xmlns:mrd="http://standards.iso.org/iso/19115/-3/mrd/1.0" xmlns:mrs="http://standards.iso.org/iso/19115/-3/mrs/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/present/csw/mdb-brief.xsl b/config/schema_plugins/iso19115-3.2018/present/csw/mdb-brief.xsl index b40961d..e6d1a6d 100644 --- a/config/schema_plugins/iso19115-3.2018/present/csw/mdb-brief.xsl +++ b/config/schema_plugins/iso19115-3.2018/present/csw/mdb-brief.xsl @@ -6,7 +6,7 @@ xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" xmlns:mrd="http://standards.iso.org/iso/19115/-3/mrd/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/present/csw/mdb-summary.xsl b/config/schema_plugins/iso19115-3.2018/present/csw/mdb-summary.xsl index 2bbb099..e101888 100644 --- a/config/schema_plugins/iso19115-3.2018/present/csw/mdb-summary.xsl +++ b/config/schema_plugins/iso19115-3.2018/present/csw/mdb-summary.xsl @@ -6,7 +6,7 @@ xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" xmlns:mrd="http://standards.iso.org/iso/19115/-3/mrd/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" diff --git a/config/schema_plugins/iso19115-3.2018/process/add-columns-from-csv.xsl b/config/schema_plugins/iso19115-3.2018/process/add-columns-from-csv.xsl index f4cc492..3422bc0 100644 --- a/config/schema_plugins/iso19115-3.2018/process/add-columns-from-csv.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/add-columns-from-csv.xsl @@ -28,7 +28,7 @@ xmlns:mrc="http://standards.iso.org/iso/19115/-3/mrc/2.0" xmlns:mdb="http://standards.iso.org/iso/19115/-3/mdb/2.0" xmlns:cat="http://standards.iso.org/iso/19115/-3/cat/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xs="http://www.w3.org/2001/XMLSchema" diff --git a/config/schema_plugins/iso19115-3.2018/process/add-contact.xsl b/config/schema_plugins/iso19115-3.2018/process/add-contact.xsl index 525fcfc..21cf23e 100644 --- a/config/schema_plugins/iso19115-3.2018/process/add-contact.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/add-contact.xsl @@ -4,7 +4,7 @@ xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mdb="http://standards.iso.org/iso/19115/-3/mdb/2.0" xmlns:mri="http://standards.iso.org/iso/19115/-3/mri/1.0" xmlns:util="java:org.fao.geonet.util.XslUtil" diff --git a/config/schema_plugins/iso19115-3.2018/process/add-date-for-status-common.xsl b/config/schema_plugins/iso19115-3.2018/process/add-date-for-status-common.xsl new file mode 100644 index 0000000..303c525 --- /dev/null +++ b/config/schema_plugins/iso19115-3.2018/process/add-date-for-status-common.xsl @@ -0,0 +1,108 @@ + + + + + + + + + + + + + + + Resource has status + . Do you want to set the + date? (with default value: + ) + Le statut de la ressource est + . Voulez-vous ajouter la date avec le type + ? (avec par défaut : + ) + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + { + "dateTypeForStatus":{"type":"codelist", "codelist": "", "defaultValue":""}, + "dateValueForStatus":{"type":"string", "defaultValue":""} + } + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/process/add-date-for-status.xsl b/config/schema_plugins/iso19115-3.2018/process/add-date-for-status.xsl new file mode 100644 index 0000000..cde2979 --- /dev/null +++ b/config/schema_plugins/iso19115-3.2018/process/add-date-for-status.xsl @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/process/add-extent-from-geokeywords.xsl b/config/schema_plugins/iso19115-3.2018/process/add-extent-from-geokeywords.xsl index 8048d53..f168d7a 100644 --- a/config/schema_plugins/iso19115-3.2018/process/add-extent-from-geokeywords.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/add-extent-from-geokeywords.xsl @@ -5,7 +5,7 @@ xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mdb="http://standards.iso.org/iso/19115/-3/mdb/2.0" xmlns:mri="http://standards.iso.org/iso/19115/-3/mri/1.0" version="2.0" exclude-result-prefixes="#all"> diff --git a/config/schema_plugins/iso19115-3.2018/process/add-info-from-wms.xsl b/config/schema_plugins/iso19115-3.2018/process/add-info-from-wms.xsl index 5a585fb..9fa3779 100644 --- a/config/schema_plugins/iso19115-3.2018/process/add-info-from-wms.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/add-info-from-wms.xsl @@ -25,7 +25,7 @@ WMS service - is described in online resource section. Run to update extent, CRS or - graphic overview - for this WMS service for the layer named: + is described in online resource section. Run to update extent, CRS or graphic overview for this WMS service for the layer named: Le service de visualisation - est décrit dans la section resource en ligne. Exécuter cette action - pour mettre à jour l'étendue, les systèmes de projection - ou les aperçus pour ce service et la couche nommée : + est décrit dans la section resource en ligne. Exécuter cette action pour mettre à jour l'étendue, les systèmes de projection ou les aperçus pour ce service et la couche nommée : Er is een verwijzing gevonden naar de WMS service . Gebruik deze functie om de dekking, de projectie of thumbnail af te leiden of bij te werken vanuit deze WMS-service voor de laag met de naam: @@ -87,6 +83,7 @@ + @@ -100,8 +97,7 @@ - + select="//cit:CI_OnlineResource[contains(cit:protocol/gco:CharacterString, 'OGC:WMS') and normalize-space(cit:linkage/*[1]/text()) = $wmsServiceUrl]"/> @@ -132,13 +128,15 @@ + + target="link#{cit:protocol/gco:CharacterString}#{$url}#{$layerName}"> . + select="$layerName"/>. true { @@ -157,7 +155,9 @@ "defaultValue":""}, "wmsServiceUrl":{"type":"string", "defaultValue":""} + select="$url"/>"}, + "wmsLayerName":{"type":"string", "defaultValue":""} } @@ -211,42 +211,43 @@ + - - - - + + + + + + - - - + + + + + + + + - - - - - - - - - @@ -254,16 +255,16 @@ + and $wmsLayerName != ''"> + select="$capabilitiesDoc//Layer[Name=$wmsLayerName]/LatLonBoundingBox"/> @@ -412,8 +413,6 @@ - - @@ -426,8 +425,20 @@ - + + + + + + @@ -436,8 +447,6 @@ - - diff --git a/config/schema_plugins/iso19115-3.2018/process/add-wms-and-legend-from-esrirest.xsl b/config/schema_plugins/iso19115-3.2018/process/add-wms-and-legend-from-esrirest.xsl index aee7ff0..83ae541 100644 --- a/config/schema_plugins/iso19115-3.2018/process/add-wms-and-legend-from-esrirest.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/add-wms-and-legend-from-esrirest.xsl @@ -143,6 +143,7 @@ mdb:defaultLocale| mdb:parentMetadata| mdb:metadataScope| + mdb:contact| mdb:dateInfo| mdb:metadataStandard| mdb:metadataProfile| diff --git a/config/schema_plugins/iso19115-3.2018/process/collection-updater.xsl b/config/schema_plugins/iso19115-3.2018/process/collection-updater.xsl index c71f709..33ff132 100644 --- a/config/schema_plugins/iso19115-3.2018/process/collection-updater.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/collection-updater.xsl @@ -4,10 +4,11 @@ xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:mdb="http://standards.iso.org/iso/19115/-3/mdb/2.0" xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" + xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:mrd="http://standards.iso.org/iso/19115/-3/mrd/1.0" xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" xmlns:mri="http://standards.iso.org/iso/19115/-3/mri/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:geonet="http://www.fao.org/geonetwork" xmlns:util="java:org.fao.geonet.util.XslUtil" @@ -72,16 +73,23 @@ - + merge="gex:geographicElement|gex:temporalElement"/>--> + + + merge="." + limit="1"/> @@ -173,10 +181,13 @@ - - - - + + + + + + + @@ -209,6 +220,41 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/process/create-featurecatalogue-from-wfs.xsl b/config/schema_plugins/iso19115-3.2018/process/create-featurecatalogue-from-wfs.xsl index d7d8538..2bf1035 100644 --- a/config/schema_plugins/iso19115-3.2018/process/create-featurecatalogue-from-wfs.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/create-featurecatalogue-from-wfs.xsl @@ -9,7 +9,7 @@ xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gex="http://standards.iso.org/iso/19115/-3/gex/1.0" xmlns:lan="http://standards.iso.org/iso/19115/-3/lan/1.0" - xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.1" + xmlns:srv="http://standards.iso.org/iso/19115/-3/srv/2.0" xmlns:mas="http://standards.iso.org/iso/19115/-3/mas/1.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:mco="http://standards.iso.org/iso/19115/-3/mco/1.0" @@ -64,21 +64,23 @@ + select="$root[count(.//srv:SV_ServiceIdentification) = 0]//mdb:distributionInfo//mrd:onLine/*[contains(cit:protocol/*, 'WFS') or contains(cit:protocol/*, 'ESRI:REST')]"/> + + + - + target="link#{$protocol}#{$url[1]}#{$featureType[1]}"> + true - {"featureCatWfsUrl":{"type":"text", "defaultValue":""}, - "featureCatWfsFeatureType":{"type":"text", "defaultValue":""}, + {"featureCatWfsUrl":{"type":"text", "defaultValue":""}, + "featureCatWfsFeatureType":{"type":"text", "defaultValue":""}, "featureCatReplace":{"type":"boolean", "defaultValue":""}} @@ -109,6 +111,7 @@ mdb:defaultLocale| mdb:parentMetadata| mdb:metadataScope| + mdb:contact| mdb:dateInfo| mdb:metadataStandard| mdb:metadataProfile| diff --git a/config/schema_plugins/iso19115-3.2018/process/dataset-add.xsl b/config/schema_plugins/iso19115-3.2018/process/dataset-add.xsl index 63f07c6..e5c86be 100644 --- a/config/schema_plugins/iso19115-3.2018/process/dataset-add.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/dataset-add.xsl @@ -6,7 +6,7 @@ a coupledResource reference. --> diff --git a/config/schema_plugins/iso19115-3.2018/process/dq-report-add.xsl b/config/schema_plugins/iso19115-3.2018/process/dq-report-add.xsl index 3e2e4e2..4fcd563 100644 --- a/config/schema_plugins/iso19115-3.2018/process/dq-report-add.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/dq-report-add.xsl @@ -32,6 +32,7 @@ xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" + xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gn="http://www.fao.org/geonetwork" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gn-fn-iso19115-3.2018="http://geonetwork-opensource.org/xsl/functions/profiles/iso19115-3.2018" @@ -45,15 +46,19 @@ + of URL+protocol+title --> + + - + @@ -215,12 +220,12 @@ - + - + @@ -228,7 +233,7 @@ - + @@ -243,7 +248,7 @@ @@ -256,12 +261,12 @@ - + - + @@ -269,7 +274,7 @@ - + @@ -277,7 +282,7 @@ @@ -287,19 +292,19 @@ - + - - + + - WWW:LINK-1.0-http--link + WWW:LINK - + @@ -307,10 +312,10 @@ - + - + diff --git a/config/schema_plugins/iso19115-3.2018/process/fcats-file-add.xsl b/config/schema_plugins/iso19115-3.2018/process/fcats-file-add.xsl index bcaaaaf..e0b8393 100644 --- a/config/schema_plugins/iso19115-3.2018/process/fcats-file-add.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/fcats-file-add.xsl @@ -30,6 +30,7 @@ xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" + xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gn="http://www.fao.org/geonetwork" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gn-fn-iso19115-3.2018="http://geonetwork-opensource.org/xsl/functions/profiles/iso19115-3.2018" @@ -39,14 +40,19 @@ + + + - - - - - - - - - - - - - - - - - - + + + + @@ -98,13 +90,40 @@ - - + + + + + + + + + + + + + + + + + + + + + + + + + + - + diff --git a/config/schema_plugins/iso19115-3.2018/process/legend-add.xsl b/config/schema_plugins/iso19115-3.2018/process/legend-add.xsl index d29aceb..d7ca870 100644 --- a/config/schema_plugins/iso19115-3.2018/process/legend-add.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/legend-add.xsl @@ -31,6 +31,7 @@ xmlns:cit="http://standards.iso.org/iso/19115/-3/cit/2.0" xmlns:mcc="http://standards.iso.org/iso/19115/-3/mcc/1.0" xmlns:gco="http://standards.iso.org/iso/19115/-3/gco/1.0" + xmlns:gcx="http://standards.iso.org/iso/19115/-3/gcx/1.0" xmlns:gn="http://www.fao.org/geonetwork" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:gn-fn-iso19115-3.2018="http://geonetwork-opensource.org/xsl/functions/profiles/iso19115-3.2018" @@ -51,8 +52,12 @@ select="/mdb:MD_Metadata/mdb:defaultLocale/*/lan:language/*/@codeListValue" as="xs:string"/> + + @@ -110,17 +115,17 @@ - + - + - + diff --git a/config/schema_plugins/iso19115-3.2018/process/move-keyword-to-anchor.xsl b/config/schema_plugins/iso19115-3.2018/process/move-keyword-to-anchor.xsl index fe4e373..f1beb30 100644 --- a/config/schema_plugins/iso19115-3.2018/process/move-keyword-to-anchor.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/move-keyword-to-anchor.xsl @@ -1,7 +1,7 @@ + + - + @@ -194,14 +198,14 @@ - + - + @@ -219,7 +223,7 @@ - + @@ -238,13 +242,13 @@ - + - + @@ -264,7 +268,7 @@ - + diff --git a/config/schema_plugins/iso19115-3.2018/process/parent-remove.xsl b/config/schema_plugins/iso19115-3.2018/process/parent-remove.xsl index 0737888..67dc5ab 100644 --- a/config/schema_plugins/iso19115-3.2018/process/parent-remove.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/parent-remove.xsl @@ -2,7 +2,7 @@ + diff --git a/config/schema_plugins/iso19115-3.2018/process/service-add.xsl b/config/schema_plugins/iso19115-3.2018/process/service-add.xsl index 7404e18..07ca92a 100644 --- a/config/schema_plugins/iso19115-3.2018/process/service-add.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/service-add.xsl @@ -5,7 +5,7 @@ by adding a reference to the distribution section. --> diff --git a/config/schema_plugins/iso19115-3.2018/process/sibling-add.xsl b/config/schema_plugins/iso19115-3.2018/process/sibling-add.xsl index 8acbf2a..ca2fcc0 100644 --- a/config/schema_plugins/iso19115-3.2018/process/sibling-add.xsl +++ b/config/schema_plugins/iso19115-3.2018/process/sibling-add.xsl @@ -3,7 +3,7 @@ Stylesheet used to add a reference to a related record using aggregation info. --> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Translate record + Traduire la fiche + + + + + + + + + + + + + + + true + { + "languages":{"type":"string", "defaultValue":""}, + "fieldsToTranslate":{"type":"textarea", "defaultValue":"/mdb:MD_Metadata/mdb:identificationInfo/mri:MD_DataIdentification/mri:citation/cit:CI_Citation/cit:title"} + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + mdb:PT_FreeText_PropertyType + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/config/schema_plugins/iso19115-3.2018/sample-data/0dbac056-cd5a-4c9c-bbec-564e47c4507c.zip b/config/schema_plugins/iso19115-3.2018/sample-data/0dbac056-cd5a-4c9c-bbec-564e47c4507c.zip deleted file mode 100644 index e2fbde2..0000000 Binary files a/config/schema_plugins/iso19115-3.2018/sample-data/0dbac056-cd5a-4c9c-bbec-564e47c4507c.zip and /dev/null differ diff --git a/config/schema_plugins/iso19115-3.2018/sample-data/service_record.mef b/config/schema_plugins/iso19115-3.2018/sample-data/service_record.mef new file mode 100644 index 0000000..f84f154 Binary files /dev/null and b/config/schema_plugins/iso19115-3.2018/sample-data/service_record.mef differ diff --git a/config/schema_plugins/iso19115-3.2018/schema-ident.xml b/config/schema_plugins/iso19115-3.2018/schema-ident.xml index 0b773c3..a0a2c3c 100644 --- a/config/schema_plugins/iso19115-3.2018/schema-ident.xml +++ b/config/schema_plugins/iso19115-3.2018/schema-ident.xml @@ -5,7 +5,7 @@ iso19115-3.2018 93f66207-621a-4610-813f-38494a51d121 1.0 - 3.5.0 + 4.4.0 Geographic information -- Metadata Information géographique -- Métadonnées - @@ -144,10 +145,11 @@ Ce schéma est également composé des normes : are filtered when user does not have download privilege. --> - - diff --git a/config/schema_plugins/iso19115-3.2018/schema.xsd b/config/schema_plugins/iso19115-3.2018/schema.xsd index 768a3af..9d948dd 100644 --- a/config/schema_plugins/iso19115-3.2018/schema.xsd +++ b/config/schema_plugins/iso19115-3.2018/schema.xsd @@ -2,8 +2,8 @@ - + - + - + diff --git a/config/schema_plugins/iso19115-3.2018/schema/standards.iso.org/19115/-3/srv/2.1/serviceInformation.xsd b/config/schema_plugins/iso19115-3.2018/schema/standards.iso.org/19115/-3/srv/2.1/serviceInformation.xsd deleted file mode 100644 index b753d40..0000000 --- a/config/schema_plugins/iso19115-3.2018/schema/standards.iso.org/19115/-3/srv/2.1/serviceInformation.xsd +++ /dev/null @@ -1,278 +0,0 @@ - - - - - - - - - - class of information to which the referencing entity applies - - - - - - - - - - - links a given operationName (mandatory attribute of SV_OperationMetadata) with a data set identified by an 'identifier' - - - - - - - - - scoped identifier of the resource in the context of the given service instance NOTE: name of the resources (i.e. dataset) as it is used by a service instance (e.g. layer name or featureTypeName). - - - - - reference to the dataset on which the service operates - - - - - - - - - - - - - - - - - - class of information to which the referencing entity applies - - - - - - - - - - - Operation Chain Information - - - - - - - - - the name, as used by the service for this chain - - - - - a narrative explanation of the services in the chain and resulting output - - - - - - - - - - - - - - - - - describes the signature of one and only one method provided by the service - - - - - - - - - a unique identifier for this interface - - - - - distributed computing platforms on which the operation has been implemented - - - - - free text description of the intent of the operation and the results of the operation - - - - - the name used to invoke this interface within the context of the DCP. The name is identical for all DCPs. - - - - - handle for accessing the service interface - - - - - - - - - - - - - - - - - - - parameter information - - - - - - - - - the name, as used by the service for this parameter - - - - - indication if the parameter is an input to the service, an output or both - - - - - a narrative explanation of the role of the parameter - - - - - indication if the parameter is required - - - - - indication if more than one value of the parameter may be provided - - - - - - - - - - - - - - - - class of information to which the referencing entity applies - - - - - class of information to which the referencing entity applies - - - - - the parameter is an input parameter to the service instance - - - - - the parameter is an output parameter to the service instance - - - - - the parameter is both an input and output parameter to the service instance - - - - - - - - - - - - - identification of capabilities which a service provider makes available to a service user through a set of interfaces that define a behaviour - See ISO 19119 for further information - - - - - - - - - a service type name, E.G. 'discovery', 'view', 'download', 'transformation', or 'invoke' - - - - - provide for searching based on the version of serviceType. For example, we may only be interested in OGC Catalogue V1.1 services. If version is maintained as a separate attribute, users can easily search for all services of a type regardless of the version - - - - - information about the availability of the service, including, 'fees' 'planned' 'available date and time' 'ordering instructions' 'turnaround' - - - - - type of coupling between service and associated data (if exists) - - - - - further description of the data coupling in the case of tightly coupled services - - - - - provides a reference to the dataset on which the service operates - - - - - - - - - - - - - - - - - - - diff --git a/config/schema_plugins/iso19115-3.2018/schema/standards.iso.org/19115/-3/srv/2.1/srv.xsd b/config/schema_plugins/iso19115-3.2018/schema/standards.iso.org/19115/-3/srv/2.1/srv.xsd deleted file mode 100644 index 1283ec3..0000000 --- a/config/schema_plugins/iso19115-3.2018/schema/standards.iso.org/19115/-3/srv/2.1/srv.xsd +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/config/schema_plugins/iso19115-3.2018/schematron/criteria-type.xml b/config/schema_plugins/iso19115-3.2018/schematron/criteria-type.xml new file mode 100644 index 0000000..f6d572e --- /dev/null +++ b/config/schema_plugins/iso19115-3.2018/schematron/criteria-type.xml @@ -0,0 +1,104 @@ + + + + + + *//mri:keyword/gco:CharacterString/text() = + '@@value@@'__OR__*//mri:keyword/lan:PT_FreeText/lan:textGroup/lan:LocalisedCharacterString/text() + = '@@value@@' + + XPATH + Keyword + false + + 0 + xml.search.keywords@json?pNewSearch=true&maxResults=100&pKeyword=@@search@@&pTypeSearch=CONTAINS + + + (data, scope) { return data[0] } + (record, scope) { return record.value['#text'] + ' (' + + record.thesaurus.title + ')' } + + (record, scope) { return record.value['#text'] } + + + + @@value@@ + USER_MAIN_PROFILE + UserMainProfile + true + + + @@value@@ + GROUP + Group + true + + + 60000 + xml.group.list@json + + + (data, scope) { return data } + (record, scope) { + var label = record.label[scope.lang] ? record.label[scope.lang] : record.name; + return label +" ("+record.id +")"; + } + + + (record, scope) { + var regex = /\s+/g; + var tokenHash = {}; + var tokens = []; + var addUniqueTokens = function (string) { + var parts = string.split(regex); + for (var i = 0; i < parts.length; i++) { + var token = angular.lowercase(parts[i]); + if (!tokenHash[token]) { + tokens.push(token); + tokenHash[token] = true; + } + } + } + addUniqueTokens(record.name); + for (var p in record.label) { + if (record.label.hasOwnProperty(p) && typeof record.label === 'string') { + addUniqueTokens(record.label[p]); + } + } + + return tokens; + } + + (record, scope) { return record.id } + + + diff --git a/config/schema_plugins/iso19115-3.2018/schematron/schematron-rules-iso.sch b/config/schema_plugins/iso19115-3.2018/schematron/schematron-rules-iso.sch index 87ced57..cd7b664 100644 --- a/config/schema_plugins/iso19115-3.2018/schematron/schematron-rules-iso.sch +++ b/config/schema_plugins/iso19115-3.2018/schematron/schematron-rules-iso.sch @@ -232,7 +232,7 @@ value="gex:geographicElement/ gex:EX_GeographicBoundingBox[ normalize-space(gex:westBoundLongitude/gco:Decimal) != '' and normalize-space(gex:eastBoundLongitude/gco:Decimal) != '' and normalize-space(gex:southBoundLatitude/gco:Decimal) != '' and normalize-space(gex:northBoundLatitude/gco:Decimal) != '' ]"/> + value="gex:geographicElement/gex:EX_BoundingPolygon[ count(gex:polygon[normalize-space() != '']) > 0]"/> @@ -1524,13 +1524,20 @@ est associée. + + The resource "" is declared multiple time with same association and initiative type. + + + La + ressource "" est référencée plusieurs fois avec le même type d'association et d'initiative. + + Associated resource name - Nom ou référence à une ressource associée - + Nom ou référence à une ressource associée + + + + + + + + diff --git a/config/schema_plugins/iso19115-3.2018/schematron/schematron-rules-iso.xsl b/config/schema_plugins/iso19115-3.2018/schematron/schematron-rules-iso.xsl index dd614f8..b2c9c75 100644 --- a/config/schema_plugins/iso19115-3.2018/schematron/schematron-rules-iso.xsl +++ b/config/schema_plugins/iso19115-3.2018/schematron/schematron-rules-iso.xsl @@ -570,10 +570,8 @@ rule.mri.associatedresource Associated resource name - Nom ou référence à une ressource associée - - Nom ou référence à une ressource associée - + Nom ou référence à une ressource associée + Nom ou référence à une ressource associée @@ -803,7 +801,7 @@ Le nom de l'organisation est + select="gex:geographicElement/gex:EX_BoundingPolygon[ count(gex:polygon[normalize-space() != '']) > 0]"/> + rule.mri.associatedresourceAssociated resource name Nom ou référence à une ressource associée--> Associated resource name - Nom ou référence à une ressource associée - + Nom ou référence à une ressource associée @@ -2815,6 +2811,10 @@ Nombre de thèmes : + + + @@ -2876,6 +2876,37 @@ La + + + + + + + + + + + + en + + The resource " + + " is declared multiple time with same association and initiative type. + + + fr +La + ressource " + + " est référencée plusieurs fois avec le même type d'association et d'initiative. + + + + diff --git a/config/schema_plugins/iso19115-3.2018/suggest.xsl b/config/schema_plugins/iso19115-3.2018/suggest.xsl index 4936786..0200c0e 100644 --- a/config/schema_plugins/iso19115-3.2018/suggest.xsl +++ b/config/schema_plugins/iso19115-3.2018/suggest.xsl @@ -6,6 +6,7 @@ + @@ -16,9 +17,11 @@ + +

    add-extent-from-geokeywords

    add-resource-id

    add-contact

    @@ -28,6 +31,7 @@

    add-columns-from-csv

    add-values-from-csv

    collection-updater

    +

    add-date-for-status

    spatineo-registration

    diff --git a/config/schema_plugins/iso19115-3.2018/templates/featureTypeDescription.xml b/config/schema_plugins/iso19115-3.2018/templates/featureTypeDescription.xml index 3da1e69..ce5718e 100644 --- a/config/schema_plugins/iso19115-3.2018/templates/featureTypeDescription.xml +++ b/config/schema_plugins/iso19115-3.2018/templates/featureTypeDescription.xml @@ -1,5 +1,5 @@ - - @@ -80,93 +76,79 @@ - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + - + + + + + + + + + + + select="count(mdb:dateInfo/*[cit:dateType/*/@codeListValue = 'creation' + and cit:date/*/text() != '']) > 0" + as="xs:boolean"/> + select="count(mdb:dateInfo/*[cit:dateType/*/@codeListValue = 'revision' + and cit:date/*/text() != '']) > 0" + as="xs:boolean"/> - + - - - - - - - - + - + - - - - - - - - + - - - - - - - - - - + - - - - - - - - - - - + + @@ -194,7 +176,7 @@ - + @@ -523,10 +505,10 @@ + select="upper-case(java:twoCharLangCode(lan:language/lan:LanguageCode/@codeListValue, ''))"/> - + @@ -587,29 +569,6 @@
    - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ISO 19115:2003/19139 + + + + 1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/app-schema.xsl b/config/schema_plugins/iso19139/convert/19115to19139/app-schema.xsl new file mode 100644 index 0000000..9b76a5c --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/app-schema.xsl @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/citation.xsl b/config/schema_plugins/iso19139/convert/19115to19139/citation.xsl new file mode 100644 index 0000000..10fcbf8 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/citation.xsl @@ -0,0 +1,197 @@ + + + + + + + + + + <gco:CharacterString> + <xsl:value-of select="resTitle"/> + </gco:CharacterString> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/content.xsl b/config/schema_plugins/iso19139/convert/19115to19139/content.xsl new file mode 100644 index 0000000..ec64bb4 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/content.xsl @@ -0,0 +1,430 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/data-quality.xsl b/config/schema_plugins/iso19139/convert/19115to19139/data-quality.xsl new file mode 100644 index 0000000..b6e585d --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/data-quality.xsl @@ -0,0 +1,596 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/distribution.xsl b/config/schema_plugins/iso19139/convert/19115to19139/distribution.xsl new file mode 100644 index 0000000..3497d60 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/distribution.xsl @@ -0,0 +1,237 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + onLine + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/extension.xsl b/config/schema_plugins/iso19139/convert/19115to19139/extension.xsl new file mode 100644 index 0000000..582f75d --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/extension.xsl @@ -0,0 +1,157 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/extent.xsl b/config/schema_plugins/iso19139/convert/19115to19139/extent.xsl new file mode 100644 index 0000000..87264b4 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/extent.xsl @@ -0,0 +1,279 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/identification.xsl b/config/schema_plugins/iso19139/convert/19115to19139/identification.xsl new file mode 100644 index 0000000..fe7d61e --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/identification.xsl @@ -0,0 +1,650 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + --T + :: + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + topSecret + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/ref-system.xsl b/config/schema_plugins/iso19139/convert/19115to19139/ref-system.xsl new file mode 100644 index 0000000..0276369 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/ref-system.xsl @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/resp-party.xsl b/config/schema_plugins/iso19139/convert/19115to19139/resp-party.xsl new file mode 100644 index 0000000..04fc2e1 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/resp-party.xsl @@ -0,0 +1,263 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    diff --git a/config/schema_plugins/iso19139/convert/19115to19139/spat-rep-types.xsl b/config/schema_plugins/iso19139/convert/19115to19139/spat-rep-types.xsl new file mode 100644 index 0000000..0ec6e72 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/spat-rep-types.xsl @@ -0,0 +1,350 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + , + . + + + + + + + + + , + . + + + + + + + + + , + . + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + complex + + composite + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/19115to19139/unmapped.xsl b/config/schema_plugins/iso19139/convert/19115to19139/unmapped.xsl new file mode 100644 index 0000000..799ab11 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/19115to19139/unmapped.xsl @@ -0,0 +1,190 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/ATOM/inspire-atom-feed.xsl b/config/schema_plugins/iso19139/convert/ATOM/inspire-atom-feed.xsl index 041f371..41661cd 100644 --- a/config/schema_plugins/iso19139/convert/ATOM/inspire-atom-feed.xsl +++ b/config/schema_plugins/iso19139/convert/ATOM/inspire-atom-feed.xsl @@ -178,15 +178,15 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
    - - + + - + @@ -307,10 +307,10 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" - - + + @@ -435,7 +435,7 @@ xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0" <xsl:with-param name="pocs" select="gmd:identificationInfo//gmd:pointOfContact"/> </xsl:call-template> - <xsl:variable name="defaultCRS" select="normalize-space(.//gmd:referenceSystemInfo[1]/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:code/gco:CharacterString)"/> + <xsl:variable name="defaultCRS" select="normalize-space(.//gmd:referenceSystemInfo[1]/gmd:MD_ReferenceSystem/gmd:referenceSystemIdentifier/gmd:RS_Identifier/gmd:code/(gco:CharacterString|gmx:Anchor))"/> <xsl:call-template name="add-category"> <xsl:with-param name="crs" select="$defaultCRS"/> diff --git a/config/schema_plugins/iso19139/convert/ArcCatalog8_to_ISO19115.xsl b/config/schema_plugins/iso19139/convert/ArcCatalog8_to_ISO19115.xsl new file mode 100644 index 0000000..2e86839 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/ArcCatalog8_to_ISO19115.xsl @@ -0,0 +1,2417 @@ +<?xml version="1.0"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"> + <xsl:output method="xml"/> + <!-- <xsl:output method="xml" doctype-system="ISO_19115.dtd"/> --> + <xsl:template match="/"> + <Metadata> + <xsl:apply-templates select="metadata/mdFileID"/> + <xsl:apply-templates select="metadata/mdLang"/> + <xsl:apply-templates select="metadata/mdChar"/> + <xsl:apply-templates select="metadata/mdParentID"/> + <xsl:for-each select="metadata/mdHrLv"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="metadata/mdHrLvName"> + <xsl:apply-templates select="."/> + </xsl:for-each> + + <xsl:apply-templates select="metadata/mdContact"/> + + <xsl:apply-templates select="metadata/mdDateSt"/> + <xsl:apply-templates select="metadata/mdStanName"/> + <xsl:apply-templates select="metadata/mdStanVer"/> + <xsl:apply-templates select="metadata/distInfo"/> + <xsl:for-each select="metadata/dataIdInfo"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="metadata/appSchInfo"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="metadata/porCatInfo"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="metadata/mdMaint"/> + <xsl:for-each select="metadata/mdConst"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="metadata/dqInfo"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="metadata/spatRepInfo"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="metadata/refSysInfo"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="metadata/contInfo"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </Metadata> + </xsl:template> + + <!-- contInfo--> + <xsl:template match="contInfo"> + <contInfo> + <xsl:apply-templates select="ContInfo"/> + <xsl:apply-templates select="CovDesc"/> + <xsl:apply-templates select="FetCatDesc"/> + <xsl:apply-templates select="ImgDesc"/> + </contInfo> + </xsl:template> + <!-- ImgDesc--> + <xsl:template match="ImgDesc"> + <ImgDesc> + <xsl:apply-templates select="attDesc"/> + <xsl:apply-templates select="contentTyp"/> + <xsl:for-each select="covDim"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="illElevAng"/> + <xsl:apply-templates select="illAziAng"/> + <xsl:apply-templates select="imagCond"/> + <xsl:apply-templates select="imagQuCode"/> + <xsl:apply-templates select="cloudCovPer"/> + <xsl:apply-templates select="prcTypCde"/> + <xsl:apply-templates select="cmpGenQuan"/> + <xsl:apply-templates select="trianInd"/> + <xsl:apply-templates select="radCalDatAv"/> + <xsl:apply-templates select="camCalInAv"/> + <xsl:apply-templates select="filmDistInAv"/> + <xsl:apply-templates select="lensDistInAv"/> + </ImgDesc> + </xsl:template> + <!-- FetCatDesc--> + <xsl:template match="FetCatDesc"> + <FetCatDesc> + <xsl:apply-templates select="compCode"/> + <xsl:for-each select="catLang"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="incWithDS"/> + <xsl:for-each select="catFetTypes"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="catCitation"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </FetCatDesc> + </xsl:template> + <!-- catFetTypes--> + <xsl:template match="catFetTypes"> + <catFetTypes> + <xsl:apply-templates select="TypeName"/> + <xsl:apply-templates select="LocalName"/> + <xsl:apply-templates select="ScopedName"/> + <xsl:apply-templates select="MemberName"/> + </catFetTypes> + </xsl:template> + <!-- CovDesc--> + <xsl:template match="CovDesc"> + <CovDesc> + <xsl:apply-templates select="attDesc"/> + <xsl:apply-templates select="contentTyp"/> + <xsl:for-each select="covDim"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </CovDesc> + </xsl:template> + <!-- covDim--> + <xsl:template match="covDim"> + <covDim> + <xsl:apply-templates select="Band"/> + <xsl:apply-templates select="RangeDim"/> + </covDim> + </xsl:template> + <!-- RangeDim--> + <xsl:template match="RangeDim"> + <RangeDim> + <xsl:apply-templates select="seqID"/> + <xsl:apply-templates select="dimDescrp"/> + </RangeDim> + </xsl:template> + <!-- Band--> + <xsl:template match="Band"> + <Band> + <xsl:apply-templates select="seqID"/> + <xsl:apply-templates select="dimDescrp"/> + <xsl:apply-templates select="maxVal"/> + <xsl:apply-templates select="minVal"/> + <xsl:apply-templates select="valUnit"/> + <xsl:apply-templates select="pkResp"/> + <xsl:apply-templates select="bitsPerVal"/> + <xsl:apply-templates select="toneGrad"/> + <xsl:apply-templates select="sclFac"/> + <xsl:apply-templates select="offset"/> + </Band> + </xsl:template> + <!-- Template with scope aName attributeType--> + <xsl:template match="seqID | MemberName"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="scope"/> + <xsl:apply-templates select="aName"/> + <xsl:apply-templates select="attributeType"/> + </xsl:element> + </xsl:template> + <!-- Template with scope aName--> + <xsl:template match="attributeType | TypeName"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="scope"/> + <xsl:apply-templates select="aName"/> + </xsl:element> + </xsl:template> + <!-- spatRepInfo--> + <xsl:template match="spatRepInfo"> + <spatRepInfo> + <xsl:apply-templates select="Georect"/> + <xsl:apply-templates select="GridSpatRep"/> + <xsl:apply-templates select="Georef"/> + <xsl:apply-templates select="VectSpatRep"/> + </spatRepInfo> + </xsl:template> + <!-- VectSpatRep--> + <xsl:template match="VectSpatRep"> + <VectSpatRep> + <xsl:apply-templates select="topLvl"/> + <xsl:for-each select="geometObjs"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </VectSpatRep> + </xsl:template> + <!-- geometObjs--> + <xsl:template match="geometObjs"> + <geometObjs> + <xsl:apply-templates select="geoObjTyp"/> + <xsl:apply-templates select="geoObjCnt"/> + </geometObjs> + </xsl:template> + <!-- Georef--> + <xsl:template match="Georef"> + <Georef> + <xsl:apply-templates select="numDims"/> + <xsl:apply-templates select="axDimProps"/> + <xsl:apply-templates select="cellGeo"/> + <xsl:apply-templates select="tranParaAv"/> + <xsl:apply-templates select="ctrlPtAv"/> + <xsl:apply-templates select="orieParaAv"/> + <xsl:apply-templates select="orieParaDesc"/> + <xsl:apply-templates select="georefPars"/> + <xsl:for-each select="paraCit"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </Georef> + </xsl:template> + <!-- GridSpatRep--> + <xsl:template match="GridSpatRep"> + <GridSpatRep> + <xsl:apply-templates select="numDims"/> + <xsl:apply-templates select="axDimProps"/> + <xsl:apply-templates select="cellGeo"/> + <xsl:apply-templates select="tranParaAv"/> + </GridSpatRep> + </xsl:template> + <!-- Dimen--> + <xsl:template match="Dimen"> + <Dimen> + <xsl:apply-templates select="dimName"/> + <xsl:apply-templates select="dimSize"/> + <xsl:apply-templates select="dimResol"/> + </Dimen> + </xsl:template> + <!-- Georect--> + <xsl:template match="Georect"> + <Georect> + <xsl:apply-templates select="numDims"/> + <xsl:apply-templates select="axDimProps"/> + <xsl:apply-templates select="cellGeo"/> + <xsl:apply-templates select="tranParaAv"/> + <xsl:apply-templates select="chkPtAv"/> + <xsl:apply-templates select="chkPtDesc"/> + <xsl:apply-templates select="cornerPts"/> + <xsl:apply-templates select="centerPt"/> + <xsl:apply-templates select="ptInPixel"/> + <xsl:apply-templates select="transDimDesc"/> + <xsl:for-each select="transDimMap"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </Georect> + </xsl:template> + <!-- dqInfo--> + <xsl:template match="dqInfo"> + <dqInfo> + <xsl:apply-templates select="dqScope"/> + <xsl:apply-templates select="dataLineage"/> + <xsl:for-each select="dqReport"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </dqInfo> + </xsl:template> + <!-- dqReport--> + <xsl:template match="dqReport"> + <dqReport> + <xsl:apply-templates select="DQRelIntPosAcc"/> + <xsl:apply-templates select="DQQuanAttAcc"/> + <xsl:apply-templates select="DQDomConsis"/> + <xsl:apply-templates select="DQGridDataPosAcc"/> + <xsl:apply-templates select="DQTempValid"/> + <xsl:apply-templates select="DQAbsExtPosAcc"/> + <xsl:apply-templates select="DQConcConsis"/> + <xsl:apply-templates select="DQCompComm"/> + <xsl:apply-templates select="DQFormConsis"/> + <xsl:apply-templates select="DQTopConsis"/> + <xsl:apply-templates select="DQAccTimeMeas"/> + <xsl:apply-templates select="DQNonQuanAttAcc"/> + <xsl:apply-templates select="DQThemClassCor"/> + <xsl:apply-templates select="DQCompOm"/> + <xsl:apply-templates select="DQTempConsis"/> + </dqReport> + </xsl:template> + <!-- Template with measName measId measureDescription evalMethType evalMethDesc evaluationProcedure measDateTm measResult--> + <xsl:template + match="DQRelIntPosAcct | DQQuanAttAcc | DQDomConsis | DQGridDataPosAcc | DQTempValid | DQAbsExtPosAcc | DQConcConsis | DQCompComm | DQFormConsis | DQTopConsis | DQAccTimeMeas | DQNonQuanAttAcc | DQThemClassCor | DQCompOm | DQTempConsis"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:for-each select="measName"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="measId"/> + <xsl:apply-templates select="measureDescription"/> + <xsl:apply-templates select="evalMethType"/> + <xsl:apply-templates select="evalMethDesc"/> + <xsl:apply-templates select="evaluationProcedure"/> + <xsl:apply-templates select="measDateTm"/> + <xsl:for-each select="measResult"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <!-- measResult--> + <xsl:template match="measResult"> + <measResult> + <xsl:apply-templates select="ConResult"/> + <xsl:apply-templates select="QuanResult"/> + <xsl:apply-templates select="Result"/> + </measResult> + </xsl:template> + <!-- QuanResult--> + <xsl:template match="QuanResult"> + <QuanResult> + <xsl:apply-templates select="quanValType"/> + <xsl:apply-templates select="quanValUnit"/> + <xsl:apply-templates select="errStat"/> + <xsl:for-each select="quanValue"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </QuanResult> + </xsl:template> + <!-- ConResult--> + <xsl:template match="ConResult"> + <ConResult> + <xsl:apply-templates select="conSpec"/> + <xsl:apply-templates select="conExpl"/> + <xsl:apply-templates select="conPass"/> + </ConResult> + </xsl:template> + <!-- Template with RS_Identifier MdIdent--> + <xsl:template match="measId | imagQuCode | prcTypCde"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="RS_Identifier"/> + <xsl:apply-templates select="MdIdent"/> + </xsl:element> + </xsl:template> + <!-- dqScope--> + <xsl:template match="dqScope"> + <dqScope> + <xsl:for-each select="scpLvl"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="scpExt"/> + <xsl:for-each select="scpLvlDesc"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </dqScope> + </xsl:template> + <!-- dataLineage--> + <xsl:template match="dataLineage"> + <dataLineage> + <xsl:apply-templates select="statement"/> + <xsl:for-each select="dataSource"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="prcStep"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </dataLineage> + </xsl:template> + <!-- Template with srcDesc srcScale srcRefSys srcCitatn srcExt srcStep--> + <xsl:template match="dataSource | stepSrc"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="srcDesc"/> + <xsl:apply-templates select="srcScale"/> + <xsl:apply-templates select="srcRefSys"/> + <xsl:apply-templates select="srcCitatn"/> + <xsl:for-each select="srcExt"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="srcStep"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <!-- Template with RefSystem MdCoRefSys --> + <xsl:template match="srcRefSys | refSysInfo"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="RefSystem"/> + <xsl:apply-templates select="MdCoRefSys"/> + </xsl:element> + </xsl:template> + <!-- Template with stepDesc stepRat stepDateTm stepProc stepSrc--> + <xsl:template match="srcStep | prcStep"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="stepDesc"/> + <xsl:apply-templates select="stepRat"/> + <xsl:apply-templates select="stepDateTm"/> + <xsl:for-each select="stepProc"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="stepSrc"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <!-- appSchInfo--> + <xsl:template match="appSchInfo"> + <appSchInfo> + <xsl:apply-templates select="asName"/> + <xsl:apply-templates select="asSchLang"/> + <xsl:apply-templates select="asCstLang"/> + <xsl:apply-templates select="asAscii"/> + <xsl:apply-templates select="asGraFile"/> + <xsl:apply-templates select="asSwDevFile"/> + <xsl:apply-templates select="asSwDevFiFt"/> + <xsl:apply-templates select="fetCatSup"/> + </appSchInfo> + </xsl:template> + <!-- fetCatSup--> + <xsl:template match="fetCatSup"> + <fetCatSup> + <xsl:for-each select="featTypeList"> + <featTypeList> + <xsl:apply-templates select="spatObj"/> + <xsl:apply-templates select="spatSchName"/> + </featTypeList> + </xsl:for-each> + </fetCatSup> + </xsl:template> + <!-- rpCntInfo--> + <xsl:template match="rpCntInfo"> + <rpCntInfo> + <xsl:apply-templates select="cntPhone"/> + <xsl:apply-templates select="cntAddress"/> + <xsl:apply-templates select="cntOnLineRes"/> + <xsl:apply-templates select="cntHours"/> + <xsl:apply-templates select="cntInstr"/> + </rpCntInfo> + </xsl:template> + <!-- cntPhone--> + <xsl:template match="cntPhone"> + <cntPhone> + <xsl:for-each select="voiceNum"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="faxNum"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </cntPhone> + </xsl:template> + <!-- cntAddress--> + <xsl:template match="cntAddress"> + <cntAddress> + <xsl:for-each select="delPoint"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="city"/> + <xsl:apply-templates select="adminArea"/> + <xsl:apply-templates select="postCode"/> + <xsl:apply-templates select="country"/> + <xsl:for-each select="eMailAdd"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </cntAddress> + </xsl:template> + <!-- cntOnLineRes--> + <xsl:template match="cntOnLineRes"> + <cntOnLineRes> + <xsl:apply-templates select="linkage"/> + <xsl:apply-templates select="protocol"/> + <xsl:apply-templates select="appProfile"/> + <xsl:apply-templates select="orName"/> + <xsl:apply-templates select="orDesc"/> + <xsl:apply-templates select="orFunct"/> + </cntOnLineRes> + </xsl:template> + <!-- distInfo--> + <xsl:template match="distInfo"> + <distInfo> + <xsl:for-each select="distributor"> + <xsl:if test="distorCont"> + <distributor> + <xsl:apply-templates select="distorCont"/> + <xsl:for-each select="distorFormat"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="distorOrdPrc"> + <distorOrdPrc> + <xsl:apply-templates select="resFees"/> + <xsl:apply-templates select="planAvDtTm"/> + <xsl:apply-templates select="ordInstr"/> + <xsl:apply-templates select="ordTurn"/> + </distorOrdPrc> + </xsl:for-each> + </distributor> + </xsl:if> + <xsl:for-each select="distorTran"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:for-each> + <!-- <xsl:for-each select="distTranOps"> + <xsl:apply-templates select="."/> + </xsl:for-each> --> + </distInfo> + </xsl:template> + <!-- onLineSrc --> + <xsl:template match="onLineSrc"> + <onLineSrc> + <xsl:apply-templates select="linkage"/> + <xsl:apply-templates select="protocol"/> + <xsl:apply-templates select="appProfile"/> + <xsl:apply-templates select="orName"/> + <xsl:apply-templates select="orDesc"/> + <xsl:apply-templates select="orFunct"/> + </onLineSrc> + </xsl:template> + <!-- onLineMed - because of an error in ArcCatalog, we will match on offLineMed --> + <xsl:template match="offLineMed"> + <onLineMed> + <xsl:apply-templates select="medName"/> + <xsl:for-each select="medDensity"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="medDenUnits"/> + <xsl:apply-templates select="medVol"/> + <xsl:for-each select="medFormat"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="medNote"/> + </onLineMed> + </xsl:template> + <!-- dataIdInfo--> + <xsl:template match="dataIdInfo"> + <dataIdInfo> + <xsl:apply-templates select="idCitation"/> + <xsl:apply-templates select="idAbs"/> + <xsl:apply-templates select="idPurp"/> + <xsl:for-each select="idCredit"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="status"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="idPoC"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="resConst"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="dsFormat"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="idSpecUse"> + <idSpecUse> + <xsl:apply-templates select="specUsage"/> + <xsl:apply-templates select="usageDate"/> + <xsl:apply-templates select="usrDetLim"/> + <xsl:for-each select="usrCntInfo"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </idSpecUse> + </xsl:for-each> + <xsl:for-each select="resMaint"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="descKeys"> + <descKeys> + <xsl:for-each select="keyword"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="keyTyp"/> + <xsl:apply-templates select="thesaName"/> + </descKeys> + </xsl:for-each> + <xsl:for-each select="graphOver"> + <graphOver> + <xsl:apply-templates select="bgFileName"/> + <xsl:apply-templates select="bgFileDesc"/> + <xsl:apply-templates select="bgFileType"/> + </graphOver> + </xsl:for-each> + <xsl:for-each select="spatRpType"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="dataScale"> + <dataScale> + <xsl:apply-templates select="equScale"/> + <xsl:apply-templates select="scaleDist"/> + </dataScale> + </xsl:for-each> + <xsl:for-each select="dataLang"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="dataChar"/> + <xsl:for-each select="tpCat"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="geoBox"> + <geoBox> + <xsl:apply-templates select="westBL"/> + <xsl:apply-templates select="eastBL"/> + <xsl:apply-templates select="southBL"/> + <xsl:apply-templates select="northBL"/> + </geoBox> + </xsl:for-each> + <xsl:for-each select="geoDesc"> + <geoDesc> + <xsl:apply-templates select="exTypeCode"/> + <xsl:apply-templates select="geoId"/> + </geoDesc> + </xsl:for-each> + <xsl:apply-templates select="envirDesc"/> + <xsl:for-each select="dataExt"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="suppInfo"/> + </dataIdInfo> + </xsl:template> + <!-- SpatTempEx--> + <xsl:template match="SpatTempEx"> + <SpatTempEx> + <xsl:apply-templates select="exTemp"/> + <xsl:for-each select="exSpat"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </SpatTempEx> + </xsl:template> + <!-- BoundPoly--> + <xsl:template match="BoundPoly"> + <BoundPoly> + <xsl:apply-templates select="exTypeCode"/> + <xsl:for-each select="polygon"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </BoundPoly> + </xsl:template> + <!-- Template with MdCoRefSys coordinates --> + <xsl:template match="GM_Polygon | cornerPts | centerPt"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="MdCoRefSys"/> + <xsl:apply-templates select="coordinates"/> + </xsl:element> + </xsl:template> + <!-- MdCoRefSys--> + <xsl:template match="MdCoRefSys"> + <MdCoRefSys> + <xsl:apply-templates select="refSysID"/> + <xsl:apply-templates select="projection"/> + <xsl:apply-templates select="ellipsoid"/> + <xsl:apply-templates select="datum"/> + <xsl:apply-templates select="projParas"/> + <xsl:apply-templates select="ellParas"/> + </MdCoRefSys> + </xsl:template> + <!-- ellParas--> + <xsl:template match="ellParas"> + <ellParas> + <xsl:apply-templates select="semiMajAx"/> + <xsl:apply-templates select="axisUnits"/> + <xsl:apply-templates select="denFlatRat"/> + </ellParas> + </xsl:template> + <!-- projParas--> + <xsl:template match="projParas"> + <projParas> + <xsl:apply-templates select="zone"/> + <xsl:for-each select="stanPara"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="longCntMer"/> + <xsl:apply-templates select="latProjOri"/> + <xsl:apply-templates select="falEastng"/> + <xsl:apply-templates select="falNorthng"/> + <xsl:apply-templates select="falENUnits"/> + <xsl:apply-templates select="sclFacEqu"/> + <xsl:apply-templates select="hgtProsPt"/> + <xsl:apply-templates select="longProjCnt"/> + <xsl:apply-templates select="latProjCnt"/> + <xsl:apply-templates select="sclFacCnt"/> + <xsl:apply-templates select="stVrLongPl"/> + <xsl:apply-templates select="sclFacPrOr"/> + <xsl:apply-templates select="obLnAziPars"/> + <xsl:for-each select="obLnPtPars"> + <obLnPtPars> + <xsl:apply-templates select="obLineLat"/> + <xsl:apply-templates select="obLineLong"/> + </obLnPtPars> + </xsl:for-each> + </projParas> + </xsl:template> + <!-- obLnAziPars--> + <xsl:template match="obLnAziPars"> + <obLnAziPars> + <xsl:apply-templates select="aziAngle"/> + <xsl:apply-templates select="aziPtLong"/> + </obLnAziPars> + </xsl:template> + <!-- TM_GeometricPrimitive--> + <xsl:template match="TM_GeometricPrimitive"> + <TM_GeometricPrimitive> + <xsl:apply-templates select="TM_Instant"/> + <xsl:apply-templates select="TM_Period"/> + </TM_GeometricPrimitive> + </xsl:template> + <!-- TM_Period--> + <xsl:template match="TM_Period"> + <TM_Period> + <xsl:apply-templates select="begin"/> + <xsl:apply-templates select="end"/> + </TM_Period> + </xsl:template> + <!-- tmPosition--> + <xsl:template match="tmPosition"> + <tmPosition> + <xsl:apply-templates select="TM_DateAndTime"/> + <xsl:apply-templates select="TM_CalDate"/> + <xsl:apply-templates select="TM_ClockTime"/> + </tmPosition> + </xsl:template> + <!-- TM_DateAndTime--> + <xsl:template match="TM_DateAndTime"> + <TM_DateAndTime> + <xsl:apply-templates select="calDate"/> + <xsl:apply-templates select="clkTime"/> + </TM_DateAndTime> + </xsl:template> + <!-- usrDefFreq--> + <xsl:template match="usrDefFreq"> + <usrDefFreq> + <xsl:apply-templates select="designator"/> + <xsl:apply-templates select="years"/> + <xsl:apply-templates select="months"/> + <xsl:apply-templates select="days"/> + <xsl:apply-templates select="timeIndicator"/> + <xsl:apply-templates select="hours"/> + <xsl:apply-templates select="minutes"/> + <xsl:apply-templates select="seconds"/> + </usrDefFreq> + </xsl:template> + <!-- Template with value uom--> + <xsl:template match="scaleDist | quanValUnit | dimResol"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="value"/> + <xsl:apply-templates select="uom"/> + </xsl:element> + </xsl:template> + <!-- value--> + <xsl:template match="value"> + <value> + <xsl:apply-templates select="Integer"/> + <xsl:apply-templates select="Decimal"/> + <xsl:apply-templates select="Real"/> + </value> + </xsl:template> + <!-- uom--> + <xsl:template match="uom"> + <uom> + <xsl:apply-templates select="UomArea"/> + <xsl:apply-templates select="UomTime"/> + <xsl:apply-templates select="UomLength"/> + <xsl:apply-templates select="UomVolume"/> + <xsl:apply-templates select="UomVelocity"/> + <xsl:apply-templates select="UomAngle"/> + <xsl:apply-templates select="UomScale"/> + </uom> + </xsl:template> + <!-- SecConsts--> + <xsl:template match="SecConsts"> + <SecConsts> + <xsl:for-each select="useLimit"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:apply-templates select="class"/> + <xsl:apply-templates select="userNote"/> + <xsl:apply-templates select="classSys"/> + <xsl:apply-templates select="handDesc"/> + </SecConsts> + </xsl:template> + <!-- LegConsts--> + <xsl:template match="LegConsts"> + <LegConsts> + <xsl:for-each select="useLimit"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="accessConsts"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="useConsts"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="othConsts"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </LegConsts> + </xsl:template> + <!-- Template with "xsl:value-of" --> + <!-- <xsl:template match="mdFileID | rpIndName | spatObj | spatSchName | asSchLang | asCstLang | asAscii | asGraFile | asSwDevFile | asSwDevFiFt | mdParentID | rpOrgName | rpPosName | city | adminArea | postCode | country | linkage | protocol | appProfile | orName | orDesc | cntHours | cntInstr | mdDateSt | mdStanName | mdStanVer | formatName | formatVer | formatAmdNum | formatSpec | fileDecmTech | resFees | planAvDtTm | ordInstr | handDesc | userNote | classSys | uomName | Real | Decimal | Integer | bgFileType | bgFileDesc | bgFileName | issn | isbn | collTitle | otherCitDet | artPage | issId | seriesName | resEdDate | resEd | resAltTitle | seconds | minutes | hours | timeIndicator | days | months | years | designator | other | datasetSet | attribIntSet | featIntSet | featSet | attribSet | usrDetLim | usageDate | specUsage | identCode | exTypeCode | envirDesc | suppInfo | exDesc | vertMaxVal | vertMinVal | end | begin | clkTime | calDate | coordinates | zone | longCntMer | latProjOri | falEastng | falNorthng | sclFacEqu | hgtProsPt | longProjCnt | latProjCnt | sclFacCnt | stVrLongPl | sclFacPrOr | aziPtLong | aziAngle | obLineLong | obLineLat | semiMajAx | denFlatRat | medNote | medVol | medDenUnits | transSize | unitsODist | ordTurn | resTitle | idAbs | idPurp | languageCode | rfDenom | mdHrLvName | dateNext | maintNote | voiceNum | faxNum | delPoint | eMailAdd | citId | citIdType | othConsts | useLimit | stanPara | idCredit | medDensity | keyword | statement | srcDesc | stepDesc | stepRat | stepDateTm | measName | measureDescription | evalMethDesc | measDateTm | conExpl | conPass | quanValType | errStat | quanValue | Result | numDims | tranParaAv | chkPtAv | chkPtDesc | transDimDesc | transDimMap | dimSize | ctrlPtAv | orieParaAv | orieParaDesc | georefPars | TopLvlCd | geoObjCnt | ContInfo | attDesc | scope | aName | dimDescrp | maxVal | minVal | pkResp | bitsPerVal | toneGrad | sclFac | offset | compCode | incWithDS | illElevAng | illAziAng | cloudCovPer | cmpGenQuan | trianInd | radCalDatAv | camCalInAv | filmDistInAv | lensDistInAv | westBL | eastBL | southBL | northBL"> --> + <xsl:template + match="mdFileID | rpIndName | spatObj | spatSchName | asSchLang | asCstLang | asAscii | asGraFile | asSwDevFile | asSwDevFiFt | mdParentID | rpOrgName | rpPosName | city | adminArea | postCode | country | linkage | protocol | appProfile | orName | cntHours | cntInstr | mdStanName | mdStanVer | formatName | formatVer | formatAmdNum | formatSpec | fileDecmTech | resFees | planAvDtTm | ordInstr | handDesc | userNote | classSys | uomName | Real | Decimal | Integer | bgFileType | bgFileDesc | bgFileName | issn | isbn | collTitle | otherCitDet | artPage | issId | seriesName | resEdDate | resEd | resAltTitle | seconds | minutes | hours | timeIndicator | days | months | years | designator | other | datasetSet | attribIntSet | featIntSet | featSet | attribSet | usrDetLim | usageDate | specUsage | identCode | exTypeCode | envirDesc | suppInfo | exDesc | vertMaxVal | vertMinVal | end | begin | clkTime | calDate | coordinates | zone | longCntMer | latProjOri | falEastng | falNorthng | sclFacEqu | hgtProsPt | longProjCnt | latProjCnt | sclFacCnt | stVrLongPl | sclFacPrOr | aziPtLong | aziAngle | obLineLong | obLineLat | semiMajAx | denFlatRat | medNote | medVol | medDenUnits | ordTurn | resTitle | idAbs | idPurp | languageCode | rfDenom | mdHrLvName | dateNext | maintNote | voiceNum | faxNum | delPoint | eMailAdd | citId | citIdType | othConsts | useLimit | stanPara | idCredit | medDensity | keyword | statement | srcDesc | stepDesc | stepRat | stepDateTm | measName | measureDescription | evalMethDesc | measDateTm | conExpl | conPass | quanValType | errStat | quanValue | Result | numDims | tranParaAv | chkPtAv | chkPtDesc | transDimDesc | transDimMap | dimSize | ctrlPtAv | orieParaAv | orieParaDesc | georefPars | TopLvlCd | geoObjCnt | ContInfo | attDesc | scope | aName | dimDescrp | maxVal | minVal | pkResp | bitsPerVal | toneGrad | sclFac | offset | compCode | incWithDS | illElevAng | illAziAng | cloudCovPer | cmpGenQuan | trianInd | radCalDatAv | camCalInAv | filmDistInAv | lensDistInAv | westBL | eastBL | southBL | northBL"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:if test="@value"> + <xsl:attribute name="value"> + <xsl:apply-templates select="@value"/> + </xsl:attribute> + </xsl:if> + <!-- Strip html tags --> + <xsl:value-of select="replace(., '</?\w+[^<]*>', '')"/> + </xsl:element> + </xsl:template> + + <xsl:template + match="mdDateSt"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:if test="@value"> + <xsl:attribute name="value"> + <xsl:apply-templates select="@value"/> + </xsl:attribute> + </xsl:if> + <xsl:choose> + <xsl:when test="string-length(.) = 8"> + <xsl:value-of select="substring(., 1, 4)"/>-<xsl:value-of select="substring(., 5, 2)"/>-<xsl:value-of select="substring(., 7, 2)"/> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="."/> + </xsl:otherwise> + </xsl:choose> + </xsl:element> + </xsl:template> + + <xsl:template match="conversionToISOstandardUnit"> + <conversionToISOstandarUnit> + <xsl:value-of select="."/> + </conversionToISOstandarUnit> + </xsl:template> + <!-- ArcCatalog 8 & 9 do not provide unit of distribution in the ISO metadata, so I've hardcoded that here, assuming is is always provided in MB --> + <xsl:template match="transSize"> + <unitsODist>MB</unitsODist> + <transSize> + <xsl:value-of select="."/> + </transSize> + </xsl:template> + <!-- Update to add - separators in date (it is assumed the incoming date format is CCYYMMDD)--> + <xsl:template match="refDate"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:variable name="year" select="substring(., 1, 4)"/> + <xsl:variable name="month" select="substring(., 5, 2)"/> + <xsl:variable name="day" select="substring(., 7, 2)"/> + <xsl:variable name="date" select="string(concat($year,'-',$month,'-',$day))"></xsl:variable> + <xsl:element name="{$name}"> + <xsl:value-of select="$date"/> + </xsl:element> + </xsl:template> + <!-- Template with only 1 child node THIS IS THE CORRECT ONE ACCORDING TO ISO 19115 --> + <!-- <xsl:template match="mdLang | mdChar | orFunct | role | medName | TempExtent | exTemp | TM_Instant | TM_CalDate | TM_ClockTime | vertDatum | keyTyp | equScale | dataChar | class | maintFreq | presForm | accessConsts | useConsts | medFormat | status | spatRpType | dataLang | tpCat | polygon | scpLvl | srcScale | RefSystem | evalMethType | cellGeo | ptInPixel | dimName | topLvl | geoObjTyp | contentTyp | catLang | LocalName | ScopedName | imagCond | refDateType"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="node()"/> + </xsl:element> + </xsl:template> --> + <!-- Template with only 1 child node TEMPORARILY MODIFIED TO MATCH GEONETWORK --> + <xsl:template + match="mdLang | mdChar | orFunct | role | medName | TempExtent | exTemp | TM_Instant | TM_CalDate | TM_ClockTime | vertDatum | keyTyp | equScale | dataChar | class | maintFreq | presForm | accessConsts | useConsts | medFormat | status | spatRpType | dataLang | tpCat | polygon | scpLvl | srcScale | RefSystem | evalMethType | cellGeo | ptInPixel | dimName | topLvl | geoObjTyp | contentTyp | catLang | LocalName | ScopedName | imagCond"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="node()"/> + </xsl:element> + </xsl:template> + <!-- refDateType TO BE DELETED WHEN REMOVING THE TEMPORARYTemplate with only 1 child --> + <xsl:template match="refDateType"> + <refDateType> + <xsl:apply-templates select="node()"/> + </refDateType> + </xsl:template> + <!-- Template with only 1 child node with "xsl:for-each"--> + <xsl:template match="porCatInfo | mdHrLv | Consts | axDimProps"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:for-each select="node()"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + <!-- Template with SecConsts LegConsts Consts --> + <xsl:template match="mdConst | resConst"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:if test="node()=SecConsts"> + <xsl:apply-templates select="SecConsts"/> + </xsl:if> + <xsl:if test="node()=LegConsts"> + <xsl:apply-templates select="LegConsts"/> + </xsl:if> + <xsl:if test="node()=Consts"> + <xsl:apply-templates select="Consts"/> + </xsl:if> + </xsl:element> + </xsl:template> + <!-- Template with uomName conversionToISOstandardUnit--> + <xsl:template + match="vertUoM | axisUnits | falENUnits | UomArea | UomTime | UomLength | UomVolume | UomVelocity | UomAngle | UomScale | valUnit"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="uomName"/> + <xsl:apply-templates select="conversionToISOstandardUnit"/> + </xsl:element> + </xsl:template> + <!-- Template with rpIndName rpOrgName rpPosName rpCntInfo role--> + <xsl:template match="citRespParty | mdContact | distorCont | idPoC | usrCntInfo | stepProc"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="rpIndName"/> + <xsl:apply-templates select="rpOrgName"/> + <xsl:apply-templates select="rpPosName"/> + <xsl:apply-templates select="rpCntInfo"/> + <xsl:apply-templates select="role"/> + </xsl:element> + </xsl:template> + <!-- Template with attribSet featSet featIntSet attribIntSet datasetSet other--> + <xsl:template match="upScpDesc | scpLvlDesc"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="attribSet"/> + <xsl:apply-templates select="featSet"/> + <xsl:apply-templates select="featIntSet"/> + <xsl:apply-templates select="attribIntSet"/> + <xsl:apply-templates select="datasetSet"/> + <xsl:apply-templates select="other"/> + </xsl:element> + </xsl:template> + <!-- Template with maintFreq dateNext usrDefFreq maintScp upScpDesc maintNote--> + <xsl:template match="mdMaint | resMaint"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="maintFreq"/> + <xsl:apply-templates select="dateNext"/> + <xsl:apply-templates select="usrDefFreq"/> + <xsl:for-each select="maintScp"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="upScpDesc"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="maintNote"> + <xsl:apply-templates select="."/> + </xsl:for-each> + </xsl:element> + </xsl:template> + + <!-- Template for Citation with resTitle resAltTitle resRefDate resEd resEdDate citId citIdType citRespParty presForm otherCitDet collTitle isbn issn--> + <!-- When no resRefDate is found in the source document, the whole citation object is neglected/skipped!!! --> + <xsl:template + match="portCatCit | asName | identAuth | thesaName | idCitation | srcCitatn | evaluationProcedure | conSpec | paraCit | catCitation"> + <!--<xsl:if test="resRefDate/refDateType">--> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="resTitle"/> + <xsl:for-each select="resAltTitle"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="resRefDate"> + <xsl:if test="refDateType"> + <resRefDate> + <xsl:apply-templates select="refDate"/> + <xsl:apply-templates select="refDateType"/> + </resRefDate> + </xsl:if> + </xsl:for-each> + <xsl:apply-templates select="resEd"/> + <xsl:apply-templates select="resEdDate"/> + <xsl:for-each select="citId"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="citIdType"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="citRespParty"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="presForm"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="datasetSeries"> + <datasetSeries> + <xsl:apply-templates select="seriesName"/> + <xsl:apply-templates select="issId"/> + <xsl:apply-templates select="artPage"/> + </datasetSeries> + </xsl:for-each> + <xsl:apply-templates select="otherCitDet"/> + <xsl:apply-templates select="collTitle"/> + <xsl:apply-templates select="isbn"/> + <xsl:apply-templates select="issn"/> + </xsl:element> + <!--</xsl:if>--> + </xsl:template> + + <!-- Template with unitsODist transSize onLineSrc onLineMed--> + <!-- <xsl:template match="distorTran | distTranOps"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="unitsODist"/> + <xsl:apply-templates select="transSize"/> + <xsl:apply-templates select="onLineSrc"/> + <xsl:apply-templates select="onLineMed"/> + </xsl:element> + </xsl:template> --> + <xsl:template match="distorTran | distTranOps"> + <!-- <xsl:variable name="name" select="local-name(.)"/> --> + <xsl:element name="distTranOps"> + <xsl:apply-templates select="unitsODist"/> + <xsl:apply-templates select="transSize"/> + <xsl:apply-templates select="onLineSrc"/> + <xsl:apply-templates + select="offLineMed"/> <!-- because of an error in ArcCatalog, we will match on offLineMed --> + </xsl:element> + </xsl:template> + <!-- Template with identAuth identCode --> + <xsl:template + match="refSysID | projection | ellipsoid | datum | datumID | geoId | RS_Identifier | MdIdent"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="identAuth"/> + <xsl:apply-templates select="identCode"/> + </xsl:element> + </xsl:template> + <!-- Template with BoundPoly GeoDesc--> + <xsl:template match="geoEle | exSpat"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="BoundPoly"/> + <xsl:apply-templates select="GeoDesc"/> + </xsl:element> + </xsl:template> + <!-- Template with formatName formatVer formatAmdNum formatSpec fileDecmTech--> + <xsl:template match="dsFormat | distorFormat"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="formatName"/> + <xsl:apply-templates select="formatVer"/> + <xsl:apply-templates select="formatAmdNum"/> + <xsl:apply-templates select="formatSpec"/> + <xsl:apply-templates select="fileDecmTech"/> + </xsl:element> + </xsl:template> + <!-- Template with vertMinVal vertMaxVal vertUoM vertDatum--> + <xsl:template match="vertEle"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="vertMinVal"/> + <xsl:apply-templates select="vertMaxVal"/> + <xsl:apply-templates select="vertUoM"/> + <xsl:apply-templates select="vertDatum"/> + </xsl:element> + </xsl:template> + <!-- Template with exDesc vertEle tempEle geoEle--> + <xsl:template match="dataExt | scpExt | srcExt"> + <xsl:variable name="name" select="local-name(.)"/> + <xsl:element name="{$name}"> + <xsl:apply-templates select="exDesc"/> + <xsl:for-each select="vertEle"> + <xsl:apply-templates select="."/> + </xsl:for-each> + <xsl:for-each select="tempEle"> + <tempEle> + <xsl:apply-templates select="SpatTempEx"/> + <xsl:apply-templates select="TempExtent"/> + </tempEle> + </xsl:for-each> + <!-- ArcCatalog has some non ISO content stored in the geoEle element, so just ignored here --> + <!-- <xsl:for-each select="geoEle"> + <xsl:apply-templates select="."/> + </xsl:for-each> --> + </xsl:element> + </xsl:template> + <xsl:template match="DateTypCd"> + <DateTypCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>creation</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>publication</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>revision</xsl:text> + </xsl:attribute> + </xsl:if> + </DateTypCd> + </xsl:template> + <xsl:template match="orDesc"> + <orDesc> + <xsl:choose> + <xsl:when test=".=001"> + <xsl:text>Live Data and Maps</xsl:text> + </xsl:when> + <xsl:when test=".=002"> + <xsl:text>Downloadable data</xsl:text> + </xsl:when> + <xsl:when test=".=003"> + <xsl:text>Offline Data</xsl:text> + </xsl:when> + <xsl:when test=".=004"> + <xsl:text>Static Map Images</xsl:text> + </xsl:when> + <xsl:when test=".=005"> + <xsl:text>Other Documents</xsl:text> + </xsl:when> + <xsl:when test=".=006"> + <xsl:text>Applications</xsl:text> + </xsl:when> + <xsl:when test=".=007"> + <xsl:text>Geographic Services</xsl:text> + </xsl:when> + <xsl:when test=".=008"> + <xsl:text>Clearinghouses</xsl:text> + </xsl:when> + <xsl:when test=".=009"> + <xsl:text>Map Files</xsl:text> + </xsl:when> + <xsl:when test=".=010"> + <xsl:text>Geographic Activities</xsl:text> + </xsl:when> + <xsl:otherwise> + <xsl:value-of select="."/> + </xsl:otherwise> + </xsl:choose> + </orDesc> + </xsl:template> + <xsl:template match="OnFunctCd"> + <OnFunctCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>download</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>information</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>offlineAccess</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>order</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>search</xsl:text> + </xsl:attribute> + </xsl:if> + </OnFunctCd> + </xsl:template> + <xsl:template match="PresFormCd"> + <PresFormCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>documentDigital</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>documentHardcopy</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>imageDigital</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>imageHardcopy</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>mapDigital</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>mapHardcopy</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>modelDigital</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>modelHardcopy</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>profileDigital</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=010"> + <xsl:attribute name="value"> + <xsl:text>profileHardcopy</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=011"> + <xsl:attribute name="value"> + <xsl:text>tableDigital</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=012"> + <xsl:attribute name="value"> + <xsl:text>tableHardcopy</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=013"> + <xsl:attribute name="value"> + <xsl:text>videoDigital</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=014"> + <xsl:attribute name="value"> + <xsl:text>videoHardcopy</xsl:text> + </xsl:attribute> + </xsl:if> + </PresFormCd> + </xsl:template> + <xsl:template match="RoleCd"> + <RoleCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>resourceProvider</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>custodian</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>owner</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>user</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>distributor</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>originator</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>pointOfContact</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>principalInvestigator</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>processor</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=010"> + <xsl:attribute name="value"> + <xsl:text>publisher</xsl:text> + </xsl:attribute> + </xsl:if> + </RoleCd> + </xsl:template> + <xsl:template match="EvalMethTypeCd"> + <EvalMethTypeCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>directInternal</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>directExternal</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>indirect</xsl:text> + </xsl:attribute> + </xsl:if> + </EvalMethTypeCd> + </xsl:template> + <xsl:template match="AscTypeCd"> + <AscTypeCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>crossReference</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>largerWorkCitation</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>partOfSeamlessDatabase</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>source</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>stereomate</xsl:text> + </xsl:attribute> + </xsl:if> + </AscTypeCd> + </xsl:template> + <xsl:template match="InitTypCd"> + <InitTypCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>campaign</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>collection</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>exercise</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>experiment</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>investigation</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>mission</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>nonImageSensor</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>operation</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>platform</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=010"> + <xsl:attribute name="value"> + <xsl:text>process</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=011"> + <xsl:attribute name="value"> + <xsl:text>program</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=012"> + <xsl:attribute name="value"> + <xsl:text>project</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=013"> + <xsl:attribute name="value"> + <xsl:text>study</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=014"> + <xsl:attribute name="value"> + <xsl:text>task</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=015"> + <xsl:attribute name="value"> + <xsl:text>trial</xsl:text> + </xsl:attribute> + </xsl:if> + </InitTypCd> + </xsl:template> + <xsl:template match="CellGeoCd"> + <CellGeoCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>point</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>area</xsl:text> + </xsl:attribute> + </xsl:if> + </CellGeoCd> + </xsl:template> + <xsl:template match="CharSetCd"> + <CharSetCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>ucs2</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>ucs4</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>utf7</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>utf8</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>utf16</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>8859part1</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>8859part2</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>8859part3</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>8859part4</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=010"> + <xsl:attribute name="value"> + <xsl:text>8859part5</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=011"> + <xsl:attribute name="value"> + <xsl:text>8859part6</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=012"> + <xsl:attribute name="value"> + <xsl:text>8859part7</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=013"> + <xsl:attribute name="value"> + <xsl:text>8859part8</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=014"> + <xsl:attribute name="value"> + <xsl:text>8859part9</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=015"> + <xsl:attribute name="value"> + <xsl:text>8859part11</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=016"> + <xsl:attribute name="value"> + <xsl:text>8859part14</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=017"> + <xsl:attribute name="value"> + <xsl:text>8859part15</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=018"> + <xsl:attribute name="value"> + <xsl:text>jis</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=019"> + <xsl:attribute name="value"> + <xsl:text>shiftJIS</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=020"> + <xsl:attribute name="value"> + <xsl:text>eucJP</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=021"> + <xsl:attribute name="value"> + <xsl:text>usAscii</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=022"> + <xsl:attribute name="value"> + <xsl:text>ebcdic</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=023"> + <xsl:attribute name="value"> + <xsl:text>eucKR</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=024"> + <xsl:attribute name="value"> + <xsl:text>big5</xsl:text> + </xsl:attribute> + </xsl:if> + </CharSetCd> + </xsl:template> + <xsl:template match="ClasscationCd"> + <ClasscationCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>unclassified</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>restricted</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>confidential</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>secret</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>topsecret</xsl:text> + </xsl:attribute> + </xsl:if> + </ClasscationCd> + </xsl:template> + <xsl:template match="ContentTypCd"> + <ContentTypCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>image</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>thematicClassification</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>physicalMeasurement</xsl:text> + </xsl:attribute> + </xsl:if> + </ContentTypCd> + </xsl:template> + <xsl:template match="DatatypeCd"> + <DatatypeCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>class</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>codelist</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>enumeration</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>codelistElement</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>abstractClass</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>aggregateClass</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>specifiedClass</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>datatypeClass</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>interfaceClass</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=010"> + <xsl:attribute name="value"> + <xsl:text>unionClass</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=011"> + <xsl:attribute name="value"> + <xsl:text>metaclass</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=012"> + <xsl:attribute name="value"> + <xsl:text>typeClass</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=013"> + <xsl:attribute name="value"> + <xsl:text>characterString</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=014"> + <xsl:attribute name="value"> + <xsl:text>integer</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=015"> + <xsl:attribute name="value"> + <xsl:text>association</xsl:text> + </xsl:attribute> + </xsl:if> + </DatatypeCd> + </xsl:template> + <xsl:template match="DimNameTypCd"> + <DimNameTypCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>row</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>column</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>vertical</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>track</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>crossTrack</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>line</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>sample</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>time</xsl:text> + </xsl:attribute> + </xsl:if> + </DimNameTypCd> + </xsl:template> + <xsl:template match="GeoObjTypCd"> + <GeoObjTypCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>complexes</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>composites</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>curve</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>point</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>solid</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>surface</xsl:text> + </xsl:attribute> + </xsl:if> + </GeoObjTypCd> + </xsl:template> + <xsl:template match="ImgCondCd"> + <ImgCondCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>blurredImage</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>cloud</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>degradingObliquity</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>fog</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>heavySmokeOrDust</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>night</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>rain</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>semiDarkness</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>shadow</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=010"> + <xsl:attribute name="value"> + <xsl:text>snow</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=011"> + <xsl:attribute name="value"> + <xsl:text>terrainMasking</xsl:text> + </xsl:attribute> + </xsl:if> + </ImgCondCd> + </xsl:template> + <xsl:template match="KeyTypCd"> + <KeyTypCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>discipline</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>place</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>stratum</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>temporal</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>theme</xsl:text> + </xsl:attribute> + </xsl:if> + </KeyTypCd> + </xsl:template> + <xsl:template match="MaintFreqCd"> + <MaintFreqCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>continual</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>daily</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>weekly</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>fortnightly</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>monthly</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>quarterly</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>biannually</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>annually</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>asNeeded</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=010"> + <xsl:attribute name="value"> + <xsl:text>irregular</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=011"> + <xsl:attribute name="value"> + <xsl:text>notPlanned</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=998"> + <xsl:attribute name="value"> + <xsl:text>unknown</xsl:text> + </xsl:attribute> + </xsl:if> + </MaintFreqCd> + </xsl:template> + <xsl:template match="MedFormCd"> + <MedFormCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>cpio</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>tar</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>highSierra</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>iso9660</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>iso9660RockRidge</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>iso9660AppleHFS</xsl:text> + </xsl:attribute> + </xsl:if> + </MedFormCd> + </xsl:template> + <xsl:template match="MedNameCd"> + <MedNameCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>cdRom</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>dvd</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>dvdRom</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>3halfInchFloppy</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>5quarterInchFloppy</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>7trackTape</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>9trackTape</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>3480Cartridge</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>3490Cartridge</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=010"> + <xsl:attribute name="value"> + <xsl:text>3580Cartridge</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=011"> + <xsl:attribute name="value"> + <xsl:text>4mmCartridgeTape</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=012"> + <xsl:attribute name="value"> + <xsl:text>8mmCartridgeTape</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=013"> + <xsl:attribute name="value"> + <xsl:text>1quarterInchCartridgeTape</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=014"> + <xsl:attribute name="value"> + <xsl:text>digitalLinearTape</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=015"> + <xsl:attribute name="value"> + <xsl:text>onLine</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=016"> + <xsl:attribute name="value"> + <xsl:text>satellite</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=017"> + <xsl:attribute name="value"> + <xsl:text>telephoneLink</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=018"> + <xsl:attribute name="value"> + <xsl:text>hardcopy</xsl:text> + </xsl:attribute> + </xsl:if> + </MedNameCd> + </xsl:template> + <xsl:template match="ObCd"> + <ObCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>mandatory</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>optional</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>conditional</xsl:text> + </xsl:attribute> + </xsl:if> + </ObCd> + </xsl:template> + <xsl:template match="PixOrientCd"> + <PixOrientCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>center</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>lowerLeft</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>lowerRight</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>upperRight</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>upperLeft</xsl:text> + </xsl:attribute> + </xsl:if> + </PixOrientCd> + </xsl:template> + <xsl:template match="ProgCd"> + <ProgCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>completed</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>historicalArchive</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>obsolete</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>onGoing</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>planned</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>required</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>underdevelopment</xsl:text> + </xsl:attribute> + </xsl:if> + </ProgCd> + </xsl:template> + <xsl:template match="RestrictCd"> + <RestrictCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>copyright</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>patent</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>patentPending</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>trademark</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>license</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>intellectualPropertyRights</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>restricted</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>otherRestictions</xsl:text> + </xsl:attribute> + </xsl:if> + </RestrictCd> + </xsl:template> + <xsl:template match="ScopeCd"> + <ScopeCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>attribute</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>attributeType</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>collectionHardware</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>collectionSession</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>dataset</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>series</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>nonGeographicDataset</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>dimensionGroup</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>feature</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=010"> + <xsl:attribute name="value"> + <xsl:text>featureType</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=011"> + <xsl:attribute name="value"> + <xsl:text>propertyType</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=012"> + <xsl:attribute name="value"> + <xsl:text>fieldSession</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=013"> + <xsl:attribute name="value"> + <xsl:text>software</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=014"> + <xsl:attribute name="value"> + <xsl:text>service</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=015"> + <xsl:attribute name="value"> + <xsl:text>model</xsl:text> + </xsl:attribute> + </xsl:if> + </ScopeCd> + </xsl:template> + <xsl:template match="SpatRepTypCd"> + <SpatRepTypCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>vector</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>grid</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>textTable</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>tin</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>stereoModel</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>video</xsl:text> + </xsl:attribute> + </xsl:if> + </SpatRepTypCd> + </xsl:template> + <xsl:template match="TopicCatCd"> + <TopicCatCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>farming</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>biota</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>boundaries</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>climatologyMeteorologyAtmosphere</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>economy</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>elevation</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>environment</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>geoscientificInformation</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>health</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=010"> + <xsl:attribute name="value"> + <xsl:text>imageryBaseMapsEarthCover</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=011"> + <xsl:attribute name="value"> + <xsl:text>intelligenceMilitary</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=012"> + <xsl:attribute name="value"> + <xsl:text>inlandWaters</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=013"> + <xsl:attribute name="value"> + <xsl:text>location</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=014"> + <xsl:attribute name="value"> + <xsl:text>oceans</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=015"> + <xsl:attribute name="value"> + <xsl:text>planningCadastre</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=016"> + <xsl:attribute name="value"> + <xsl:text>society</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=017"> + <xsl:attribute name="value"> + <xsl:text>structure</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=018"> + <xsl:attribute name="value"> + <xsl:text>transportation</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=019"> + <xsl:attribute name="value"> + <xsl:text>utilitiesCommunication</xsl:text> + </xsl:attribute> + </xsl:if> + </TopicCatCd> + </xsl:template> + <xsl:template match="TopoLevCd"> + <TopoLevCd> + <xsl:if test="@value=001"> + <xsl:attribute name="value"> + <xsl:text>geometryOnly</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=002"> + <xsl:attribute name="value"> + <xsl:text>topology1D</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=003"> + <xsl:attribute name="value"> + <xsl:text>planarGraph</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=004"> + <xsl:attribute name="value"> + <xsl:text>fullPlanarGraph</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=005"> + <xsl:attribute name="value"> + <xsl:text>surfaceGraph</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=006"> + <xsl:attribute name="value"> + <xsl:text>fullSurfaceGraph</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=007"> + <xsl:attribute name="value"> + <xsl:text>topology3D</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=008"> + <xsl:attribute name="value"> + <xsl:text>fullTopology3D</xsl:text> + </xsl:attribute> + </xsl:if> + <xsl:if test="@value=009"> + <xsl:attribute name="value"> + <xsl:text>abstract</xsl:text> + </xsl:attribute> + </xsl:if> + </TopoLevCd> + </xsl:template> +</xsl:stylesheet> diff --git a/config/schema_plugins/iso19139/convert/CDMCoords-to-ISO19139Keywords.xsl b/config/schema_plugins/iso19139/convert/CDMCoords-to-ISO19139Keywords.xsl new file mode 100644 index 0000000..a5610c3 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/CDMCoords-to-ISO19139Keywords.xsl @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="1.0"> + <xsl:include href="ThreddsDatasetsto19139/CDMCoords-to-ISO19139Keywords.xsl"/> + <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> + <xsl:template match="/"> + <xsl:apply-templates/> + </xsl:template> +</xsl:stylesheet> diff --git a/config/schema_plugins/iso19139/convert/DIFtoISO19139/DIF-ISO-2.1.xsl b/config/schema_plugins/iso19139/convert/DIFtoISO19139/DIF-ISO-2.1.xsl new file mode 100644 index 0000000..3f7e03d --- /dev/null +++ b/config/schema_plugins/iso19139/convert/DIFtoISO19139/DIF-ISO-2.1.xsl @@ -0,0 +1,3723 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- ====================================================== --> +<!-- A translator for DIF (GCMD) to ISO 19115 --> +<!-- Written by Dave Connell (Australian Antarctic Data Centre) and Andy Townsend (Australian Antarctic Data Centre) --> +<!-- Released on the 5th of June, 2008. Last updated on the 6th of March, 2009 --> +<!-- Version 2.1 --> +<!-- ====================================================== --> + +<!-- Trap for young players - name space definitions must match those served out of geoserver --> +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:gco="http://www.isotc211.org/2005/gco" + xmlns:gmd="http://www.isotc211.org/2005/gmd" + xmlns:gml="http://www.opengis.net/gml" + xmlns:dif="http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/" + xmlns:fn="http://www.w3.org/2005/02/xpath-functions" + xmlns:util="java:java.util.UUID" + version="2.0" + exclude-result-prefixes="dif fn util"> + + <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" media-type="text/plain"/> + <!--<xsl:strip-space elements="*"/> --> + + <!-- MATCH ROOT DIF --> + <xsl:template match="dif:DIF"> + + <!-- PRINT Dataset HEADER MATERIAL --> + <gmd:MD_Metadata> + + <gmd:fileIdentifier> + <gco:CharacterString> + <xsl:value-of select="dif:Entry_ID"/> + </gco:CharacterString> + </gmd:fileIdentifier> + + <gmd:language> + <gco:CharacterString>eng</gco:CharacterString> + </gmd:language> + + <gmd:characterSet> + <gmd:MD_CharacterSetCode codeListValue="utf8" + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_CharacterSetCode"/> + </gmd:characterSet> + + <xsl:if test="dif:Parent_DIF!=''"> + <gmd:parentIdentifier> + <gco:CharacterString> + <xsl:value-of select="dif:Parent_DIF"/> + </gco:CharacterString> + </gmd:parentIdentifier> + </xsl:if> + + <gmd:hierarchyLevel> + <gmd:MD_ScopeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_ScopeCode" + codeListValue="dataset"/> + </gmd:hierarchyLevel> + + <xsl:for-each select="dif:Personnel"> + + <xsl:choose> + <xsl:when test="contains(.,'DIF AUTHOR')"> + + <xsl:for-each select="dif:Role"> + <xsl:if test=".='DIF AUTHOR'"> + <gmd:contact> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:Last_Name"></xsl:value-of>, + <xsl:value-of select="../dif:First_Name"></xsl:value-of> + </gco:CharacterString> + </gmd:individualName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="author"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:contact> + </xsl:if> + </xsl:for-each> + + </xsl:when> + <xsl:otherwise> + + <gmd:contact> + <gmd:CI_ResponsibleParty> + <gmd:individualName gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:individualName> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="author"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:contact> + + </xsl:otherwise> + </xsl:choose> + + </xsl:for-each> + + <xsl:if test="dif:Originating_Metadata_Node!=''"> + <gmd:contact> + <gmd:CI_ResponsibleParty> + <gmd:organisationName> + <gco:CharacterString> + <xsl:value-of select="dif:Originating_Metadata_Node"/> + </gco:CharacterString> + </gmd:organisationName> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="originator"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:contact> + </xsl:if> + + <xsl:choose> + <xsl:when test="dif:DIF_Creation_Date!=''"> + <gmd:dateStamp> + <gco:Date> + <xsl:value-of select="dif:DIF_Creation_Date"/> + </gco:Date> + </gmd:dateStamp> + </xsl:when> + <xsl:when test="dif:DIF_Creation_Date=''"> + <gmd:dateStamp> + <gco:Date>Unknown + </gco:Date> + </gmd:dateStamp> + </xsl:when> + <xsl:otherwise> + <gmd:dateStamp> + <gco:Date>Unknown + </gco:Date> + </gmd:dateStamp> + </xsl:otherwise> + </xsl:choose> + + <gmd:metadataStandardName> + <gco:CharacterString> + <xsl:value-of select="dif:Metadata_Name"/> + </gco:CharacterString> + </gmd:metadataStandardName> + + <gmd:metadataStandardVersion> + <gco:CharacterString> + <xsl:value-of select="dif:Metadata_Version"/> + </gco:CharacterString> + </gmd:metadataStandardVersion> + + <gmd:identificationInfo> + <gmd:MD_DataIdentification> + <gmd:citation> + <gmd:CI_Citation> + + <gmd:title> + <gco:CharacterString> + <xsl:value-of select="dif:Entry_Title"/> + </gco:CharacterString> + </gmd:title> + + <xsl:if test="dif:Data_Set_Citation/dif:Dataset_Title!=''"> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:alternateTitle> + <gco:CharacterString> + <xsl:value-of select="./dif:Dataset_Title"/> + </gco:CharacterString> + </gmd:alternateTitle> + </xsl:for-each> + </xsl:if> + + <xsl:choose> + <xsl:when test="dif:DIF_Creation_Date!=''"> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date> + <xsl:value-of select="dif:DIF_Creation_Date"/> + </gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="publication"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + </xsl:when> + <xsl:when test="dif:DIF_Creation_Date=''"> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>Unknown + </gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="publication"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + </xsl:when> + <xsl:otherwise> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>Unknown + </gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="publication"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + </xsl:otherwise> + </xsl:choose> + + <xsl:if test="dif:Data_Set_Citation/dif:Version!=''"> + <gmd:edition> + <gco:CharacterString> + <xsl:value-of select="dif:Data_Set_Citation/dif:Version"/> + </gco:CharacterString> + </gmd:edition> + </xsl:if> + + <xsl:if test="dif:Data_Center/dif:Data_Set_ID!=''"> + <xsl:for-each select="dif:Data_Center/dif:Data_Set_ID"> + <gmd:identifier> + <gmd:MD_Identifier> + <gmd:code> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:code> + </gmd:MD_Identifier> + </gmd:identifier> + </xsl:for-each> + </xsl:if> + + <xsl:if test="dif:Personnel!=''"> + + <xsl:for-each select="dif:Personnel"> + <xsl:for-each select="dif:Role"> + <xsl:if test=".='INVESTIGATOR'"> + <gmd:citedResponsibleParty> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:Last_Name"/>, + <xsl:value-of select="../dif:First_Name"/> + </gco:CharacterString> + </gmd:individualName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if + test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="principalInvestigator"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:citedResponsibleParty> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Personnel"> + <xsl:for-each select="dif:Role"> + <xsl:if test=".='TECHNICAL CONTACT'"> + <gmd:citedResponsibleParty> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:Last_Name"/>, + <xsl:value-of select="../dif:First_Name"/> + </gco:CharacterString> + </gmd:individualName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if + test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="processor"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:citedResponsibleParty> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + </xsl:if> + + <xsl:if test="dif:Data_Set_Citation/dif:Dataset_Creator!=''"> + <gmd:citedResponsibleParty> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="./dif:Dataset_Creator"/> + </gco:CharacterString> + </gmd:individualName> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="originator"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </xsl:for-each> + </gmd:citedResponsibleParty> + </xsl:if> + + <xsl:if test="dif:Originating_Center!=''"> + <gmd:citedResponsibleParty> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="dif:Originating_Center"/> + </gco:CharacterString> + </gmd:individualName> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="originator"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:citedResponsibleParty> + </xsl:if> + + <xsl:if test="dif:Data_Set_Citation/dif:Dataset_Publisher!=''"> + <gmd:citedResponsibleParty> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="./dif:Dataset_Publisher"/> + </gco:CharacterString> + </gmd:individualName> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="publisher"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </xsl:for-each> + </gmd:citedResponsibleParty> + </xsl:if> + + <xsl:if + test="dif:Data_Set_Citation/dif:Dataset_Series_Name!='' or dif:Data_Set_Citation/dif:Issue_Identification!=''"> + <gmd:series> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:CI_Series> + <xsl:if test="dif:Dataset_Series_Name!=''"> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="./dif:Dataset_Series_Name"/> + </gco:CharacterString> + </gmd:name> + </xsl:if> + <xsl:if test="dif:Issue_Identification!=''"> + <gmd:issueIdentification> + <gco:CharacterString> + <xsl:value-of select="./dif:Issue_Identification"/> + </gco:CharacterString> + </gmd:issueIdentification> + </xsl:if> + </gmd:CI_Series> + </xsl:for-each> + </gmd:series> + </xsl:if> + + <xsl:if test="dif:Data_Set_Citation/dif:Other_Citation_Details!=''"> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:otherCitationDetails> + <gco:CharacterString> + <xsl:value-of select="./dif:Other_Citation_Details"/> + </gco:CharacterString> + </gmd:otherCitationDetails> + </xsl:for-each> + </xsl:if> + + </gmd:CI_Citation> + </gmd:citation> + + <gmd:abstract> + <gco:CharacterString> + <xsl:value-of select="dif:Summary"/> + </gco:CharacterString> + </gmd:abstract> + + <xsl:if test="dif:Data_Set_Progress!=''"> + + <xsl:for-each select="dif:Data_Set_Progress"> + <xsl:if test=".='COMPLETE'"> + <gmd:status> + <gmd:MD_ProgressCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_ProgressCode" + codeListValue="completed"/> + </gmd:status> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="dif:Data_Set_Progress"> + <xsl:if test=".='IN WORK'"> + <gmd:status> + <gmd:MD_ProgressCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_ProgressCode" + codeListValue="onGoing"/> + </gmd:status> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="dif:Data_Set_Progress"> + <xsl:if test=".='PLANNED'"> + <gmd:status> + <gmd:MD_ProgressCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_ProgressCode" + codeListValue="planned"/> + </gmd:status> + </xsl:if> + </xsl:for-each> + + </xsl:if> + + <xsl:for-each select="dif:Data_Center"> + <xsl:for-each select="dif:Personnel/dif:Role"> + <gmd:pointOfContact> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:First_Name"/>, + <xsl:value-of select="../dif:Last_Name"/> + </gco:CharacterString> + </gmd:individualName> + <gmd:organisationName> + <gco:CharacterString> + <xsl:value-of select="../../dif:Data_Center_Name/dif:Short_Name"/> | + <xsl:value-of select="../../dif:Data_Center_Name/dif:Long_Name"/> + </gco:CharacterString> + </gmd:organisationName> + <gmd:positionName> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:positionName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!='' or ../../dif:Data_Center_URL!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!='' or ../../dif:Data_Center_URL!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + <xsl:if test="../../dif:Data_Center_URL!=''"> + <gmd:onlineResource> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:Data_Center_URL"/> + </gmd:URL> + </gmd:linkage> + </gmd:CI_OnlineResource> + </gmd:onlineResource> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="resourceProvider"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:pointOfContact> + </xsl:for-each> + </xsl:for-each> + + <xsl:if + test="dif:Multimedia_Sample/dif:File!='' or dif:Multimedia_Sample/dif:Description!='' or dif:Multimedia_Sample/dif:Format!=''"> + + <xsl:for-each select="dif:Multimedia_Sample"> + <gmd:graphicOverview> + <gmd:MD_BrowseGraphic> + <xsl:choose> + <xsl:when test="dif:File!=''"> + <gmd:fileName> + <gco:CharacterString> + <xsl:value-of select="./dif:File"/> + </gco:CharacterString> + </gmd:fileName> + </xsl:when> + <xsl:when test="dif:File=''"> + <gmd:fileName gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:fileName> + </xsl:when> + <xsl:otherwise> + <gmd:fileName gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:fileName> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="dif:Description!=''"> + <gmd:fileDescription> + <gco:CharacterString> + <xsl:value-of select="./dif:Description"/> + </gco:CharacterString> + </gmd:fileDescription> + </xsl:if> + <xsl:if test="dif:Format!=''"> + <gmd:fileType> + <gco:CharacterString> + <xsl:value-of select="./dif:Format"/> + </gco:CharacterString> + </gmd:fileType> + </xsl:if> + </gmd:MD_BrowseGraphic> + </gmd:graphicOverview> + </xsl:for-each> + + </xsl:if> + + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Parameters"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Topic"/> | + <xsl:value-of select="dif:Term"/> | + <xsl:value-of select="dif:Variable_Level_1"/> | + <xsl:value-of select="dif:Variable_Level_2"/> | + <xsl:value-of select="dif:Variable_Level_3"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Science Keywords</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2008-02-05</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, S. + Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. Bilodeau, M. + Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global Change Master + Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + + <xsl:if test="dif:Keyword!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Keyword"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Sensor_Name!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Sensor_Name"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Short_Name"/> | + <xsl:value-of select="dif:Long_Name"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Instruments</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2008-01-22</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Source_Name!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Source_Name"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Short_Name"/> | + <xsl:value-of select="dif:Long_Name"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Platforms</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2008-02-05</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Paleo_Temporal_Coverage!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Paleo_Temporal_Coverage"> + <gmd:keyword> + <gco:CharacterString> + Paleo Start Date + <xsl:value-of select="dif:Paleo_Start_Date"/> + </gco:CharacterString> + </gmd:keyword> + <gmd:keyword> + <gco:CharacterString> + Paleo Stop Date + <xsl:value-of select="dif:Paleo_Stop_Date"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Paleo Temporal Coverage</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Paleo Start and Stop Dates</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date> + <xsl:value-of select="dif:Last_DIF_Revision_Date"/> + </gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Paleo_Temporal_Coverage/dif:Chronostratigraphic_Unit!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Paleo_Temporal_Coverage/dif:Chronostratigraphic_Unit"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Eon"/> | + <xsl:value-of select="dif:Era"/> | + <xsl:value-of select="dif:Period"/> | + <xsl:value-of select="dif:Epoch"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Chronostratigraphic Unit</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2007-04-01</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Project!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Project"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Short_Name"/> | + <xsl:value-of select="dif:Long_Name"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Projects</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2008-01-24</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:IDN_Node!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:IDN_Node"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Short_Name"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>IDN Nodes</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2007-04-01</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Location!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Location"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Location_Category"/> | + <xsl:value-of select="dif:Location_Type"/> | + <xsl:value-of select="dif:Location_Subregion1"/> | + <xsl:value-of select="dif:Location_Subregion2"/> | + <xsl:value-of select="dif:Location_Subregion3"/> | + <xsl:value-of select="dif:Detailed_Location"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Locations</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2008-02-05</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Access_Constraints!=''"> + <xsl:for-each select="dif:Access_Constraints"> + <gmd:resourceConstraints> + <gmd:MD_LegalConstraints> + <gmd:accessConstraints> + <gmd:MD_RestrictionCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_RestrictionCode" + codeListValue="otherRestrictions"/> + </gmd:accessConstraints> + <gmd:otherConstraints> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:otherConstraints> + </gmd:MD_LegalConstraints> + </gmd:resourceConstraints> + </xsl:for-each> + </xsl:if> + + <xsl:if test="dif:Use_Constraints!=''"> + <xsl:for-each select="dif:Use_Constraints"> + <gmd:resourceConstraints> + <gmd:MD_LegalConstraints> + <gmd:useConstraints> + <gmd:MD_RestrictionCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_RestrictionCode" + codeListValue="otherRestrictions"/> + </gmd:useConstraints> + <gmd:otherConstraints> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:otherConstraints> + </gmd:MD_LegalConstraints> + </gmd:resourceConstraints> + </xsl:for-each> + </xsl:if> + + <xsl:choose> + <xsl:when test="dif:Data_Set_Language"> + + <xsl:for-each select="dif:Data_Set_Language"> + + <xsl:if test=".='English' or .='ENGLISH'"> + <gmd:language> + <gco:CharacterString>eng</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Afrikaans' or .='AFRIKAANS'"> + <gmd:language> + <gco:CharacterString>afr</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Arabic' or .='ARABIC'"> + <gmd:language> + <gco:CharacterString>ara</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Bosnian' or .='BOSNIAN'"> + <gmd:language> + <gco:CharacterString>bos</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Bulgarian' or .='BULGARIAN'"> + <gmd:language> + <gco:CharacterString>bul</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Chinese' or .='CHINESE'"> + <gmd:language> + <gco:CharacterString>chi</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Croatian' or .='CROATIAN'"> + <gmd:language> + <gco:CharacterString>scr</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Czech' or .='CZECH'"> + <gmd:language> + <gco:CharacterString>cze</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Danish' or .='DANISH'"> + <gmd:language> + <gco:CharacterString>dan</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Dutch' or .='DUTCH'"> + <gmd:language> + <gco:CharacterString>dut</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Estonian' or .='ESTONIAN'"> + <gmd:language> + <gco:CharacterString>est</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Finnish' or .='FINNISH'"> + <gmd:language> + <gco:CharacterString>fin</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='French' or .='FRENCH'"> + <gmd:language> + <gco:CharacterString>fre</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='German' or .='GERMAN'"> + <gmd:language> + <gco:CharacterString>ger</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Hebrew' or .='HEBREW'"> + <gmd:language> + <gco:CharacterString>heb</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Hungarian' or .='HUNGARIAN'"> + <gmd:language> + <gco:CharacterString>hun</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Indonesian' or .='INDONESIAN'"> + <gmd:language> + <gco:CharacterString>ind</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Italian' or .='ITALIAN'"> + <gmd:language> + <gco:CharacterString>ita</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Japanese' or .='JAPANESE'"> + <gmd:language> + <gco:CharacterString>jpn</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Korean' or .='KOREAN'"> + <gmd:language> + <gco:CharacterString>kor</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Latvian' or .='LATVIAN'"> + <gmd:language> + <gco:CharacterString>lav</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Lithuanian' or .='LITHUANIAN'"> + <gmd:language> + <gco:CharacterString>lit</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Norwegian' or .='NORWEGIAN'"> + <gmd:language> + <gco:CharacterString>nor</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Polish' or .='POLISH'"> + <gmd:language> + <gco:CharacterString>pol</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Portugese' or .='PORTUGESE'"> + <gmd:language> + <gco:CharacterString>por</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Romanian' or .='ROMANIAN'"> + <gmd:language> + <gco:CharacterString>rum</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Russian' or .='RUSSIAN'"> + <gmd:language> + <gco:CharacterString>rus</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Slovak' or .='SLOVAK'"> + <gmd:language> + <gco:CharacterString>slo</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Spanish' or .='SPANISH'"> + <gmd:language> + <gco:CharacterString>spa</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Ukranian' or .='UKRANIAN'"> + <gmd:language> + <gco:CharacterString>ukr</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Vietnamese' or .='VIETNAMESE'"> + <gmd:language> + <gco:CharacterString>vie</gco:CharacterString> + </gmd:language> + </xsl:if> + </xsl:for-each> + </xsl:when> + <xsl:otherwise> + <gmd:language gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:language> + </xsl:otherwise> + </xsl:choose> + + <gmd:characterSet> + <gmd:MD_CharacterSetCode codeListValue="utf8" + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_CharacterSetCode"/> + </gmd:characterSet> + + <xsl:for-each select="dif:ISO_Topic_Category"> + <gmd:topicCategory> + <gmd:MD_TopicCategoryCode> + <xsl:value-of select="lower-case(normalize-space(.))"/> + </gmd:MD_TopicCategoryCode> + </gmd:topicCategory> + </xsl:for-each> + + <gmd:extent> + <gmd:EX_Extent> + + <xsl:choose> + <xsl:when + test="dif:Spatial_Coverage/dif:Westernmost_Longitude!='' and dif:Spatial_Coverage/dif:Easternmost_Longitude!='' and dif:Spatial_Coverage/dif:Southernmost_Latitude!='' and dif:Spatial_Coverage/dif:Northernmost_Latitude!=''"> + <gmd:geographicElement> + <xsl:for-each select="dif:Spatial_Coverage"> + <gmd:EX_GeographicBoundingBox> + <gmd:westBoundLongitude> + <gco:Decimal> + <xsl:value-of select="./dif:Westernmost_Longitude"/> + </gco:Decimal> + </gmd:westBoundLongitude> + <gmd:eastBoundLongitude> + <gco:Decimal> + <xsl:value-of select="./dif:Easternmost_Longitude"/> + </gco:Decimal> + </gmd:eastBoundLongitude> + <gmd:southBoundLatitude> + <gco:Decimal> + <xsl:value-of select="./dif:Southernmost_Latitude"/> + </gco:Decimal> + </gmd:southBoundLatitude> + <gmd:northBoundLatitude> + <gco:Decimal> + <xsl:value-of select="./dif:Northernmost_Latitude"/> + </gco:Decimal> + </gmd:northBoundLatitude> + </gmd:EX_GeographicBoundingBox> + </xsl:for-each> + </gmd:geographicElement> + </xsl:when> + <xsl:when + test="dif:Spatial_Coverage/dif:Westernmost_Longitude='' and dif:Spatial_Coverage/dif:Easternmost_Longitude='' and dif:Spatial_Coverage/dif:Southernmost_Latitude='' and dif:Spatial_Coverage/dif:Northernmost_Latitude=''"> + <gmd:geographicElement> + <gmd:EX_GeographicDescription> + <gmd:geographicIdentifier> + <gmd:RS_Identifier> + <gmd:code gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:code> + </gmd:RS_Identifier> + </gmd:geographicIdentifier> + </gmd:EX_GeographicDescription> + </gmd:geographicElement> + </xsl:when> + <xsl:otherwise> + <gmd:geographicElement> + <gmd:EX_GeographicDescription> + <gmd:geographicIdentifier> + <gmd:RS_Identifier> + <gmd:code gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:code> + </gmd:RS_Identifier> + </gmd:geographicIdentifier> + </gmd:EX_GeographicDescription> + </gmd:geographicElement> + </xsl:otherwise> + </xsl:choose> + + <xsl:choose> + <xsl:when test="dif:Temporal_Coverage!=''"> + <xsl:for-each select="dif:Temporal_Coverage"> + <gmd:temporalElement> + <gmd:EX_TemporalExtent> + <gmd:extent> + <gml:TimePeriod> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:begin> + <gml:TimeInstant> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(./dif:Start_Date)"/> + </xsl:attribute> + <gml:timePosition> + <xsl:value-of select="./dif:Start_Date"/> + </gml:timePosition> + </gml:TimeInstant> + </gml:begin> + <gml:end> + <gml:TimeInstant> + <xsl:choose> + <xsl:when test="./dif:Stop_Date!=''"> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(./dif:Stop_Date)"/> + </xsl:attribute> + </xsl:when> + <xsl:when test="./dif:Stop_Date=''"> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + </xsl:when> + <xsl:otherwise> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + </xsl:otherwise> + </xsl:choose> + <xsl:choose> + <xsl:when test="./dif:Stop_Date!=''"> + <gml:timePosition> + <xsl:value-of select="./dif:Stop_Date"/> + </gml:timePosition> + </xsl:when> + <xsl:when test="./dif:Stop_Date=''"> + <gml:timePosition>Unknown + </gml:timePosition> + </xsl:when> + <xsl:otherwise> + <gml:timePosition>Unknown + </gml:timePosition> + </xsl:otherwise> + </xsl:choose> + </gml:TimeInstant> + </gml:end> + </gml:TimePeriod> + </gmd:extent> + </gmd:EX_TemporalExtent> + </gmd:temporalElement> + </xsl:for-each> + </xsl:when> + <xsl:when test="dif:Temporal_Coverage=''"> + <gmd:temporalElement> + <gmd:EX_TemporalExtent> + <gmd:extent> + <gml:TimePeriod> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:begin> + <gml:TimeInstant> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:timePosition>Unknown + </gml:timePosition> + </gml:TimeInstant> + </gml:begin> + <gml:end> + <gml:TimeInstant> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:timePosition>Unknown + </gml:timePosition> + </gml:TimeInstant> + </gml:end> + </gml:TimePeriod> + </gmd:extent> + </gmd:EX_TemporalExtent> + </gmd:temporalElement> + </xsl:when> + <xsl:otherwise> + <gmd:temporalElement> + <gmd:EX_TemporalExtent> + <gmd:extent> + <gml:TimePeriod> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:begin> + <gml:TimeInstant> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:timePosition>Unknown + </gml:timePosition> + </gml:TimeInstant> + </gml:begin> + <gml:end> + <gml:TimeInstant> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:timePosition>Unknown + </gml:timePosition> + </gml:TimeInstant> + </gml:end> + </gml:TimePeriod> + </gmd:extent> + </gmd:EX_TemporalExtent> + </gmd:temporalElement> + </xsl:otherwise> + </xsl:choose> + + <xsl:for-each select="dif:Spatial_Coverage"> + <xsl:if test="./dif:Minimum_Altitude!='' or ./dif:Maximum_Altitude!=''"> + <gmd:verticalElement> + <gmd:EX_VerticalExtent> + + <xsl:if test="./dif:Minimum_Altitude!=''"> + <xsl:for-each select="./dif:Minimum_Altitude"> + <gmd:minimumValue> + <gco:Real> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Real> + </gmd:minimumValue> + </xsl:for-each> + </xsl:if> + <xsl:if test="./dif:Maximum_Altitude!=''"> + <xsl:for-each select="./dif:Maximum_Altitude"> + <gmd:maximumValue> + <gco:Real> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Real> + </gmd:maximumValue> + </xsl:for-each> + </xsl:if> + <xsl:if test="./dif:Minimum_Altitude!=''"> + <gmd:verticalCRS> + <gml:VerticalCRS> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + + <xsl:if + test="substring-after(./dif:Minimum_Altitude,' ')='m' or substring-after(./dif:Minimum_Altitude,' ')='metres' or substring-after(./dif:Minimum_Altitude,' ')='meters'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6499"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6499 + </gml:identifier> + <gml:name>Vertical CS. Axis: height (H). Orientation: up. UoM: + m. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-114" + gml:uom="urn:x-ogc:def:uom:EPSG:9001"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:114 + </gml:identifier> + <gml:name>height</gml:name> + <gml:axisAbbrev>H</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">up</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <xsl:if + test="substring-after(./dif:Minimum_Altitude,' ')='ft' or substring-after(./dif:Minimum_Altitude,' ')='feet'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6496"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6496 + </gml:identifier> + <gml:name>Vertical CS. Axis: height (H). Orientation: up. UoM: + ft(Br36). + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-111" + gml:uom="urn:x-ogc:def:uom:EPSG:9095"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:111 + </gml:identifier> + <gml:name>height</gml:name> + <gml:axisAbbrev>H</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">up</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <gml:verticalDatum> + <gml:VerticalDatum> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + </gml:VerticalDatum> + </gml:verticalDatum> + </gml:VerticalCRS> + </gmd:verticalCRS> + </xsl:if> + + <xsl:if + test="not(./dif:Minimum_Altitude/text()) and ./dif:Maximum_Altitude!=''"> + <gmd:verticalCRS> + <gml:VerticalCRS> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + + <xsl:if + test="substring-after(./dif:Minimum_Altitude,' ')='m' or substring-after(./dif:Minimum_Altitude,' ')='metres' or substring-after(./dif:Minimum_Altitude,' ')='meters'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6499"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6499 + </gml:identifier> + <gml:name>Vertical CS. Axis: height (H). Orientation: up. UoM: + m. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-114" + gml:uom="urn:x-ogc:def:uom:EPSG:9001"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:114 + </gml:identifier> + <gml:name>height</gml:name> + <gml:axisAbbrev>H</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">up</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <xsl:if + test="substring-after(./dif:Minimum_Altitude,' ')='ft' or substring-after(./dif:Minimum_Altitude,' ')='feet'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6496"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6496 + </gml:identifier> + <gml:name>Vertical CS. Axis: height (H). Orientation: up. UoM: + ft(Br36). + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-111" + gml:uom="urn:x-ogc:def:uom:EPSG:9095"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:111 + </gml:identifier> + <gml:name>height</gml:name> + <gml:axisAbbrev>H</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">up</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <gml:verticalDatum> + <gml:VerticalDatum> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + </gml:VerticalDatum> + </gml:verticalDatum> + </gml:VerticalCRS> + </gmd:verticalCRS> + </xsl:if> + + </gmd:EX_VerticalExtent> + </gmd:verticalElement> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="dif:Spatial_Coverage"> + <xsl:if test="./dif:Minimum_Depth!='' or ./dif:Maximum_Depth!=''"> + <gmd:verticalElement> + <gmd:EX_VerticalExtent> + + <xsl:if test="./dif:Minimum_Depth!=''"> + <xsl:for-each select="./dif:Minimum_Depth"> + <gmd:minimumValue> + <gco:Real> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Real> + </gmd:minimumValue> + </xsl:for-each> + </xsl:if> + <xsl:if test="./dif:Maximum_Depth!=''"> + <xsl:for-each select="./dif:Maximum_Depth"> + <gmd:maximumValue> + <gco:Real> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Real> + </gmd:maximumValue> + </xsl:for-each> + </xsl:if> + <xsl:if test="./dif:Minimum_Depth!=''"> + <gmd:verticalCRS> + <gml:VerticalCRS> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + + <xsl:if + test="substring-after(./dif:Minimum_Depth,' ')='m' or substring-after(./dif:Minimum_Depth,' ')='metres' or substring-after(./dif:Minimum_Depth,' ')='meters'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6498"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6498 + </gml:identifier> + <gml:name>Vertical CS. Axis: depth (D). Orientation: down. UoM: + m. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-113" + gml:uom="urn:x-ogc:def:uom:EPSG:9001"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:113 + </gml:identifier> + <gml:name>depth</gml:name> + <gml:axisAbbrev>D</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">down</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <xsl:if + test="substring-after(./dif:Minimum_Depth,' ')='ft' or substring-after(./dif:Minimum_Depth,' ')='feet'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6495"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6495 + </gml:identifier> + <gml:name>Vertical CS. Axis: depth (D). Orientation: down. UoM: + ft. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-214" + gml:uom="urn:x-ogc:def:uom:EPSG:9002"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:214 + </gml:identifier> + <gml:name>depth</gml:name> + <gml:axisAbbrev>D</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">down</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <gml:verticalDatum> + <gml:VerticalDatum> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + </gml:VerticalDatum> + </gml:verticalDatum> + </gml:VerticalCRS> + </gmd:verticalCRS> + </xsl:if> + + <xsl:if test="not(./dif:Minimum_Depth/text()) and ./dif:Maximum_Depth!=''"> + <gmd:verticalCRS> + <gml:VerticalCRS> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + + <xsl:if + test="substring-after(./dif:Minimum_Depth,' ')='m' or substring-after(./dif:Minimum_Depth,' ')='metres' or substring-after(./dif:Minimum_Depth,' ')='meters'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6498"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6498 + </gml:identifier> + <gml:name>Vertical CS. Axis: depth (D). Orientation: down. UoM: + m. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-113" + gml:uom="urn:x-ogc:def:uom:EPSG:9001"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:113 + </gml:identifier> + <gml:name>depth</gml:name> + <gml:axisAbbrev>D</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">down</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <xsl:if + test="substring-after(./dif:Minimum_Depth,' ')='ft' or substring-after(./dif:Minimum_Depth,' ')='feet'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6495"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6495 + </gml:identifier> + <gml:name>Vertical CS. Axis: depth (D). Orientation: down. UoM: + ft. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-214" + gml:uom="urn:x-ogc:def:uom:EPSG:9002"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:214 + </gml:identifier> + <gml:name>depth</gml:name> + <gml:axisAbbrev>D</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">down</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <gml:verticalDatum> + <gml:VerticalDatum> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + </gml:VerticalDatum> + </gml:verticalDatum> + </gml:VerticalCRS> + </gmd:verticalCRS> + </xsl:if> + + </gmd:EX_VerticalExtent> + </gmd:verticalElement> + </xsl:if> + </xsl:for-each> + + </gmd:EX_Extent> + </gmd:extent> + + <xsl:if test="dif:Reference!=''"> + <gmd:supplementalInformation> + <gco:CharacterString> + <xsl:value-of select="dif:Reference"/> + </gco:CharacterString> + </gmd:supplementalInformation> + </xsl:if> + + </gmd:MD_DataIdentification> + </gmd:identificationInfo> + + <gmd:distributionInfo> + <gmd:MD_Distribution> + + <xsl:choose> + <xsl:when test="dif:Distribution_Format!=''"> + <xsl:for-each select="dif:Distribution"> + <gmd:distributionFormat> + <gmd:MD_Format> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="./dif:Distribution_Format"/> + </gco:CharacterString> + </gmd:name> + <gmd:version gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:version> + </gmd:MD_Format> + </gmd:distributionFormat> + </xsl:for-each> + </xsl:when> + <xsl:when test="dif:Distribution_Format=''"> + <gmd:distributionFormat> + <gmd:MD_Format> + <gmd:name gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:name> + <gmd:version gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:version> + </gmd:MD_Format> + </gmd:distributionFormat> + </xsl:when> + <xsl:otherwise> + <gmd:distributionFormat> + <gmd:MD_Format> + <gmd:name gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:name> + <gmd:version gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:version> + </gmd:MD_Format> + </gmd:distributionFormat> + </xsl:otherwise> + </xsl:choose> + + <xsl:for-each select="dif:Data_Center"> + <xsl:for-each select="dif:Personnel/dif:Role"> + <gmd:distributor> + <gmd:MD_Distributor> + <gmd:distributorContact> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:First_Name"/>, + <xsl:value-of select="../dif:Last_Name"/> + </gco:CharacterString> + </gmd:individualName> + <gmd:organisationName> + <gco:CharacterString> + <xsl:value-of select="../../dif:Data_Center_Name/dif:Short_Name"/> | + <xsl:value-of select="../../dif:Data_Center_Name/dif:Long_Name"/> + </gco:CharacterString> + </gmd:organisationName> + <gmd:positionName> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:positionName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!='' or ../../dif:Data_Center_URL!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!='' or ../../dif:Data_Center_URL!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + <xsl:if test="../../dif:Data_Center_URL!=''"> + <gmd:onlineResource> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:Data_Center_URL"/> + </gmd:URL> + </gmd:linkage> + </gmd:CI_OnlineResource> + </gmd:onlineResource> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="distributor"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:distributorContact> + + <xsl:if + test="../../../dif:Distribution/dif:Fees!='' or ../../../dif:Data_Set_Citation/dif:Dataset_Release_Date!=''"> + <xsl:for-each select="../../../dif:Distribution"> + <gmd:distributionOrderProcess> + <gmd:MD_StandardOrderProcess> + <xsl:if test="./dif:Fees!=''"> + <gmd:fees> + <gco:CharacterString> + <xsl:value-of select="./dif:Fees"/> + </gco:CharacterString> + </gmd:fees> + </xsl:if> + <xsl:if test="../dif:Data_Set_Citation/dif:Dataset_Release_Date!=''"> + <gmd:plannedAvailableDateTime> + <gco:DateTime> + <xsl:value-of + select="../dif:Data_Set_Citation/dif:Dataset_Release_Date"/>T12:00:00 + </gco:DateTime> + </gmd:plannedAvailableDateTime> + </xsl:if> + </gmd:MD_StandardOrderProcess> + </gmd:distributionOrderProcess> + </xsl:for-each> + </xsl:if> + + </gmd:MD_Distributor> + </gmd:distributor> + </xsl:for-each> + </xsl:for-each> + + <xsl:if + test="dif:Distribution/dif:Distribution_Size!='' or dif:Related_URL!='' or dif:Multimedia_Sample/dif:URL!='' or dif:Data_Set_Citation/dif:Online_Resource!='' or dif:Distribution/dif:Distribution_Media!=''"> + + + <gmd:transferOptions> + <gmd:MD_DigitalTransferOptions> + + <xsl:if test="dif:Distribution/dif:Distribution_Size!=''"> + <xsl:for-each select="dif:Distribution/dif:Distribution_Size"> + <gmd:unitsOfDistribution> + <gco:CharacterString> + <xsl:value-of select="substring-after(.,' ')"/> + </gco:CharacterString> + </gmd:unitsOfDistribution> + <gmd:transferSize> + <gco:Real> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Real> + </gmd:transferSize> + </xsl:for-each> + </xsl:if> + + <xsl:if test="dif:Related_URL!=''"> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='ECHO'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='EDG'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='EOSDIS DATA POOL'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GIOVANNI'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='LAADS'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='LAS'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='MIRADOR'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='MODAPS'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='NOMADS'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='OPENDAP DATA (DODS)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='OPENDAP DIRECTORY (DODS)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='THREDDS CATALOG'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='THREDDS DATA'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='THREDDS DIRECTORY'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='WHOM'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='WIST'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='GET DATA'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='GET RELATED DATA SET METADATA (DIF)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='GET RELATED SERVICE METADATA (SERF)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='ACCESS MAP VIEWER'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>OGC:WMS-1.1.1-http-get-map</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='ACCESS WEB SERVICE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET MAP SERVICE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>OGC:WMS-1.1.1-http-get-map</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET SOFTWARE PACKAGE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET WEB COVERAGE SERVICE (WCS)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET WEB FEATURE SERVICE (WFS)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET WEB MAP SERVICE (WMS)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>OGC:WMS-1.1.1-http-get-map</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET WORKFLOW (SERVICE CHAIN)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='GET SERVICE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='VIEW EXTENDED METADATA'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='VIEW PROJECT HOME PAGE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='PRODUCT HISTORY'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='USER''S GUIDE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='VIEW RELATED INFORMATION'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + </xsl:if> + + <xsl:choose> + <xsl:when test="dif:Related_URL"> + </xsl:when> + <xsl:otherwise> + <xsl:if test="dif:Distribution/dif:Distribution_Media!=''"> + <xsl:if + test="dif:Distribution/dif:Distribution_Media='HTTP' or dif:Distribution/dif:Distribution_Media='FTP'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage gco:nilReason="missing"> + <gmd:URL/> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:name> + <gmd:description gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + + <xsl:if test="dif:Multimedia_Sample/dif:URL!=''"> + <xsl:for-each select="dif:Multimedia_Sample"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="./dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString>Multimedia Sample</gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="./dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:for-each> + </xsl:if> + + <xsl:if test="dif:Data_Set_Citation/dif:Online_Resource!=''"> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="./dif:Online_Resource"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString>Data Set Citation</gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="./dif:Dataset_Title"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:for-each> + </xsl:if> + + <xsl:if test="dif:Distribution/dif:Distribution_Media!=''"> + + <xsl:for-each select="dif:Distribution/dif:Distribution_Media"> + <xsl:if test=".='HTTP' or .='FTP'"> + <gmd:offLine> + <gmd:MD_Medium> + <gmd:name> + <gmd:MD_MediumNameCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_MediumNameCode" + codeListValue="onLine"/> + </gmd:name> + </gmd:MD_Medium> + </gmd:offLine> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="dif:Distribution/dif:Distribution_Media"> + <xsl:if test=".='CD'"> + <gmd:offLine> + <gmd:MD_Medium> + <gmd:name> + <gmd:MD_MediumNameCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_MediumNameCode" + codeListValue="cdRom"/> + </gmd:name> + </gmd:MD_Medium> + </gmd:offLine> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="dif:Distribution/dif:Distribution_Media"> + <xsl:if test=".='DVD'"> + <gmd:offLine> + <gmd:MD_Medium> + <gmd:name> + <gmd:MD_MediumNameCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_MediumNameCode" + codeListValue="dvd"/> + </gmd:name> + </gmd:MD_Medium> + </gmd:offLine> + </xsl:if> + </xsl:for-each> + + </xsl:if> + + </gmd:MD_DigitalTransferOptions> + </gmd:transferOptions> + + </xsl:if> + + </gmd:MD_Distribution> + </gmd:distributionInfo> + + <gmd:dataQualityInfo> + <gmd:DQ_DataQuality> + <gmd:scope> + <gmd:DQ_Scope> + <gmd:level> + <gmd:MD_ScopeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_ScopeCode" + codeListValue="dataset"/> + </gmd:level> + </gmd:DQ_Scope> + </gmd:scope> + + <xsl:if test="dif:Data_Resolution!=''"> + + <xsl:for-each select="dif:Data_Resolution/dif:Temporal_Resolution"> + <gmd:report> + <gmd:DQ_AccuracyOfATimeMeasurement> + <gmd:nameOfMeasure> + <gco:CharacterString>Temporal Resolution</gco:CharacterString> + </gmd:nameOfMeasure> + <gmd:result> + <gmd:DQ_QuantitativeResult> + <gmd:valueUnit> + <gml:DerivedUnit> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:derivationUnitTerm uom="{substring-after(.,' ')}"/> + </gml:DerivedUnit> + </gmd:valueUnit> + <gmd:value> + <gco:Record> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Record> + </gmd:value> + </gmd:DQ_QuantitativeResult> + </gmd:result> + </gmd:DQ_AccuracyOfATimeMeasurement> + </gmd:report> + </xsl:for-each> + + <xsl:for-each select="dif:Data_Resolution/dif:Latitude_Resolution"> + <gmd:report> + <gmd:DQ_AbsoluteExternalPositionalAccuracy> + <gmd:nameOfMeasure> + <gco:CharacterString>Latitude Resolution</gco:CharacterString> + </gmd:nameOfMeasure> + <gmd:result> + <gmd:DQ_QuantitativeResult> + <gmd:valueUnit> + <gml:DerivedUnit> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:derivationUnitTerm uom="{substring-after(.,' ')}"/> + </gml:DerivedUnit> + </gmd:valueUnit> + <gmd:value> + <gco:Record> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Record> + </gmd:value> + </gmd:DQ_QuantitativeResult> + </gmd:result> + </gmd:DQ_AbsoluteExternalPositionalAccuracy> + </gmd:report> + </xsl:for-each> + + <xsl:for-each select="dif:Data_Resolution/dif:Longitude_Resolution"> + <gmd:report> + <gmd:DQ_AbsoluteExternalPositionalAccuracy> + <gmd:nameOfMeasure> + <gco:CharacterString>Longitude Resolution</gco:CharacterString> + </gmd:nameOfMeasure> + <gmd:result> + <gmd:DQ_QuantitativeResult> + <gmd:valueUnit> + <gml:DerivedUnit> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:derivationUnitTerm uom="{substring-after(.,' ')}"/> + </gml:DerivedUnit> + </gmd:valueUnit> + <gmd:value> + <gco:Record> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Record> + </gmd:value> + </gmd:DQ_QuantitativeResult> + </gmd:result> + </gmd:DQ_AbsoluteExternalPositionalAccuracy> + </gmd:report> + </xsl:for-each> + + <xsl:for-each select="dif:Data_Resolution/dif:Vertical_Resolution"> + <gmd:report> + <gmd:DQ_AbsoluteExternalPositionalAccuracy> + <gmd:nameOfMeasure> + <gco:CharacterString>Vertical Resolution</gco:CharacterString> + </gmd:nameOfMeasure> + <gmd:result> + <gmd:DQ_QuantitativeResult> + <gmd:valueUnit> + <gml:DerivedUnit> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:derivationUnitTerm uom="{substring-after(.,' ')}"/> + </gml:DerivedUnit> + </gmd:valueUnit> + <gmd:value> + <gco:Record> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Record> + </gmd:value> + </gmd:DQ_QuantitativeResult> + </gmd:result> + </gmd:DQ_AbsoluteExternalPositionalAccuracy> + </gmd:report> + </xsl:for-each> + + </xsl:if> + + <xsl:choose> + <xsl:when test="dif:Quality!=''"> + <gmd:lineage> + <gmd:LI_Lineage> + <gmd:statement> + <gco:CharacterString> + <xsl:value-of select="dif:Quality"/> + </gco:CharacterString> + </gmd:statement> + </gmd:LI_Lineage> + </gmd:lineage> + </xsl:when> + <xsl:when test="dif:Quality=''"> + <gmd:lineage> + <gmd:LI_Lineage> + <gmd:statement gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:statement> + </gmd:LI_Lineage> + </gmd:lineage> + </xsl:when> + <xsl:otherwise> + <gmd:lineage> + <gmd:LI_Lineage> + <gmd:statement gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:statement> + </gmd:LI_Lineage> + </gmd:lineage> + </xsl:otherwise> + </xsl:choose> + + </gmd:DQ_DataQuality> + </gmd:dataQualityInfo> + + <xsl:choose> + <xsl:when test="dif:Private"> + + <xsl:for-each select="dif:Private"> + + <xsl:if test=".='True' or .='TRUE'"> + <gmd:metadataConstraints> + <gmd:MD_LegalConstraints> + <gmd:useLimitation> + <gco:CharacterString>This metadata record is publicly available. + </gco:CharacterString> + </gmd:useLimitation> + </gmd:MD_LegalConstraints> + </gmd:metadataConstraints> + </xsl:if> + + <xsl:if test=".='False' or .='FALSE'"> + <gmd:metadataConstraints> + <gmd:MD_LegalConstraints> + <gmd:useLimitation> + <gco:CharacterString>This metadata record is not publicly available. + </gco:CharacterString> + </gmd:useLimitation> + </gmd:MD_LegalConstraints> + </gmd:metadataConstraints> + </xsl:if> + + </xsl:for-each> + + </xsl:when> + + <xsl:otherwise> + <gmd:metadataConstraints> + <gmd:MD_LegalConstraints> + <gmd:useLimitation> + <gco:CharacterString>This metadata record is publicly available. + </gco:CharacterString> + </gmd:useLimitation> + </gmd:MD_LegalConstraints> + </gmd:metadataConstraints> + </xsl:otherwise> + + </xsl:choose> + + <gmd:metadataMaintenance> + <gmd:MD_MaintenanceInformation> + + <gmd:maintenanceAndUpdateFrequency> + <gmd:MD_MaintenanceFrequencyCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_MaintenanceFrequencyCode" + codeListValue="asNeeded"/> + </gmd:maintenanceAndUpdateFrequency> + + <xsl:if test="dif:Future_DIF_Review_Date!=''"> + <gmd:dateOfNextUpdate> + <gco:Date> + <xsl:value-of select="dif:Future_DIF_Review_Date"/> + </gco:Date> + </gmd:dateOfNextUpdate> + </xsl:if> + + <xsl:if test="dif:DIF_Revision_History!=''"> + <gmd:maintenanceNote> + <gco:CharacterString> + <xsl:value-of select="dif:DIF_Revision_History"/> + </gco:CharacterString> + </gmd:maintenanceNote> + </xsl:if> + + <xsl:for-each select="dif:Personnel"> + <xsl:for-each select="dif:Role"> + <xsl:if test=".='DIF AUTHOR'"> + <gmd:contact> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:Last_Name"></xsl:value-of>, + <xsl:value-of select="../dif:First_Name"></xsl:value-of> + </gco:CharacterString> + </gmd:individualName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="author"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:contact> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + </gmd:MD_MaintenanceInformation> + </gmd:metadataMaintenance> + </gmd:MD_Metadata> + + + </xsl:template> + <!-- ====================================================== --> + +</xsl:stylesheet> diff --git a/config/schema_plugins/iso19139/convert/DIFtoISO19139/DIF-ISO-ANZLIC-2.1.xsl b/config/schema_plugins/iso19139/convert/DIFtoISO19139/DIF-ISO-ANZLIC-2.1.xsl new file mode 100644 index 0000000..555bfa4 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/DIFtoISO19139/DIF-ISO-ANZLIC-2.1.xsl @@ -0,0 +1,3738 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- ====================================================== --> +<!-- A translator for DIF (GCMD) to ISO 19115 - ANZLIC Profile --> +<!-- Written by Dave Connell (Australian Antarctic Data Centre) and Andy Townsend (Australian Antarctic Data Centre) --> +<!-- ANZLIC support provided by John Hockaday --> +<!-- Released on the 5th of June, 2008. Last updated on the 6th of March, 2009 --> +<!-- Version 2.1 --> +<!-- ====================================================== --> + +<!-- Trap for young players - name space definitions must match those served out of geoserver --> + +<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:gmd="http://www.isotc211.org/2005/gmd" + xmlns:gco="http://www.isotc211.org/2005/gco" + xmlns:gml="http://www.opengis.net/gml" + xmlns:dif="http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/" + xmlns:util="java:java.util.UUID" + version="2.0" + xsi:schemaLocation="http://www.isotc211.org/2005/gmd http://www.isotc211.org/2005/gmd/gmd.xsd + http://www.opengis.net/gml http://www.isotc211.org/2005/gml/gml.xsd" + exclude-result-prefixes="util dif"> + + <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes" media-type="text/plain"/> + + <!--<xsl:strip-space elements="*"/> --> + <!-- MATCH ROOT DIF --> + + <xsl:template match="dif:DIF"> + <!-- PRINT Dataset HEADER MATERIAL --> + + <gmd:MD_Metadata + xsi:schemaLocation="http://www.isotc211.org/2005/gmd http://www.isotc211.org/2005/gmd/gmd.xsd http://www.isotc211.org/2005/gco http://www.isotc211.org/2005/gco/gco.xsd http://www.opengis.net/gml http://www.isotc211.org/2005/gml/gml.xsd"> + + <gmd:fileIdentifier> + <gco:CharacterString> + <xsl:value-of select="dif:Entry_ID"/> + </gco:CharacterString> + </gmd:fileIdentifier> + + <gmd:language> + <gco:CharacterString>eng</gco:CharacterString> + </gmd:language> + + <gmd:characterSet> + <gmd:MD_CharacterSetCode codeListValue="utf8" + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_CharacterSetCode"/> + </gmd:characterSet> + + <xsl:if test="dif:Parent_DIF!=''"> + <gmd:parentIdentifier> + <gco:CharacterString> + <xsl:value-of select="dif:Parent_DIF"/> + </gco:CharacterString> + </gmd:parentIdentifier> + </xsl:if> + + <gmd:hierarchyLevel> + <gmd:MD_ScopeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_ScopeCode" + codeListValue="dataset"/> + </gmd:hierarchyLevel> + + <xsl:for-each select="dif:Personnel"> + + <xsl:choose> + <xsl:when test="contains(.,'DIF AUTHOR')"> + + <xsl:for-each select="dif:Role"> + <xsl:if test=".='DIF AUTHOR'"> + <gmd:contact> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:Last_Name"></xsl:value-of>, + <xsl:value-of select="../dif:First_Name"></xsl:value-of> + </gco:CharacterString> + </gmd:individualName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="author"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:contact> + </xsl:if> + </xsl:for-each> + + </xsl:when> + <xsl:otherwise> + + <gmd:contact> + <gmd:CI_ResponsibleParty> + <gmd:individualName gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:individualName> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="author"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:contact> + + </xsl:otherwise> + </xsl:choose> + + </xsl:for-each> + + <xsl:if test="dif:Originating_Metadata_Node!=''"> + <gmd:contact> + <gmd:CI_ResponsibleParty> + <gmd:organisationName> + <gco:CharacterString> + <xsl:value-of select="dif:Originating_Metadata_Node"/> + </gco:CharacterString> + </gmd:organisationName> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="originator"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:contact> + </xsl:if> + + <xsl:choose> + <xsl:when test="dif:DIF_Creation_Date!=''"> + <gmd:dateStamp> + <gco:Date> + <xsl:value-of select="dif:DIF_Creation_Date"/> + </gco:Date> + </gmd:dateStamp> + </xsl:when> + <xsl:when test="dif:DIF_Creation_Date=''"> + <gmd:dateStamp> + <gco:Date>Unknown + </gco:Date> + </gmd:dateStamp> + </xsl:when> + <xsl:otherwise> + <gmd:dateStamp> + <gco:Date>Unknown + </gco:Date> + </gmd:dateStamp> + </xsl:otherwise> + </xsl:choose> + + <gmd:metadataStandardName> + <gco:CharacterString>ANZLIC Metadata Profile: An Australian/New Zealand Profile of AS/NZS + ISO 19115:2005, Geographic information - Metadata + </gco:CharacterString> + </gmd:metadataStandardName> + + <gmd:metadataStandardVersion> + <gco:CharacterString>1.1</gco:CharacterString> + </gmd:metadataStandardVersion> + + <gmd:identificationInfo> + <gmd:MD_DataIdentification> + <gmd:citation> + <gmd:CI_Citation> + + <gmd:title> + <gco:CharacterString> + <xsl:value-of select="dif:Entry_Title"/> + </gco:CharacterString> + </gmd:title> + + <xsl:if test="dif:Data_Set_Citation/dif:Dataset_Title!=''"> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:alternateTitle> + <gco:CharacterString> + <xsl:value-of select="./dif:Dataset_Title"/> + </gco:CharacterString> + </gmd:alternateTitle> + </xsl:for-each> + </xsl:if> + + <xsl:choose> + <xsl:when test="dif:DIF_Creation_Date!=''"> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date> + <xsl:value-of select="dif:DIF_Creation_Date"/> + </gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="publication"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + </xsl:when> + <xsl:when test="dif:DIF_Creation_Date=''"> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>Unknown + </gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="publication"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + </xsl:when> + <xsl:otherwise> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>Unknown + </gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="publication"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + </xsl:otherwise> + </xsl:choose> + + <xsl:if test="dif:Data_Set_Citation/dif:Version!=''"> + <gmd:edition> + <gco:CharacterString> + <xsl:value-of select="dif:Data_Set_Citation/dif:Version"/> + </gco:CharacterString> + </gmd:edition> + </xsl:if> + + <gmd:identifier> + <gmd:MD_Identifier> + <gmd:code> + <gco:CharacterString> + <xsl:value-of select="dif:Entry_ID"/> + </gco:CharacterString> + </gmd:code> + </gmd:MD_Identifier> + </gmd:identifier> + + <xsl:if test="dif:Data_Center/dif:Data_Set_ID!=''"> + <xsl:for-each select="dif:Data_Center/dif:Data_Set_ID"> + <gmd:identifier> + <gmd:MD_Identifier> + <gmd:code> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:code> + </gmd:MD_Identifier> + </gmd:identifier> + </xsl:for-each> + </xsl:if> + + <xsl:if test="dif:Personnel!=''"> + + <xsl:for-each select="dif:Personnel"> + <xsl:for-each select="dif:Role"> + <xsl:if test=".='INVESTIGATOR'"> + <gmd:citedResponsibleParty> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:Last_Name"/>, + <xsl:value-of select="../dif:First_Name"/> + </gco:CharacterString> + </gmd:individualName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if + test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="principalInvestigator"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:citedResponsibleParty> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Personnel"> + <xsl:for-each select="dif:Role"> + <xsl:if test=".='TECHNICAL CONTACT'"> + <gmd:citedResponsibleParty> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:Last_Name"/>, + <xsl:value-of select="../dif:First_Name"/> + </gco:CharacterString> + </gmd:individualName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if + test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="processor"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:citedResponsibleParty> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + </xsl:if> + + <xsl:if test="dif:Data_Set_Citation/dif:Dataset_Creator!=''"> + <gmd:citedResponsibleParty> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="./dif:Dataset_Creator"/> + </gco:CharacterString> + </gmd:individualName> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="originator"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </xsl:for-each> + </gmd:citedResponsibleParty> + </xsl:if> + + <xsl:if test="dif:Originating_Center!=''"> + <gmd:citedResponsibleParty> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="dif:Originating_Center"/> + </gco:CharacterString> + </gmd:individualName> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="originator"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:citedResponsibleParty> + </xsl:if> + + <xsl:if test="dif:Data_Set_Citation/dif:Dataset_Publisher!=''"> + <gmd:citedResponsibleParty> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="./dif:Dataset_Publisher"/> + </gco:CharacterString> + </gmd:individualName> + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="publisher"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </xsl:for-each> + </gmd:citedResponsibleParty> + </xsl:if> + + <xsl:if + test="dif:Data_Set_Citation/dif:Dataset_Series_Name!='' or dif:Data_Set_Citation/dif:Issue_Identification!=''"> + <gmd:series> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:CI_Series> + <xsl:if test="dif:Dataset_Series_Name!=''"> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="./dif:Dataset_Series_Name"/> + </gco:CharacterString> + </gmd:name> + </xsl:if> + <xsl:if test="dif:Issue_Identification!=''"> + <gmd:issueIdentification> + <gco:CharacterString> + <xsl:value-of select="./dif:Issue_Identification"/> + </gco:CharacterString> + </gmd:issueIdentification> + </xsl:if> + </gmd:CI_Series> + </xsl:for-each> + </gmd:series> + </xsl:if> + + <xsl:if test="dif:Data_Set_Citation/dif:Other_Citation_Details!=''"> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:otherCitationDetails> + <gco:CharacterString> + <xsl:value-of select="./dif:Other_Citation_Details"/> + </gco:CharacterString> + </gmd:otherCitationDetails> + </xsl:for-each> + </xsl:if> + + </gmd:CI_Citation> + </gmd:citation> + + <gmd:abstract> + <gco:CharacterString> + <xsl:value-of select="dif:Summary"/> + </gco:CharacterString> + </gmd:abstract> + + <xsl:if test="dif:Data_Set_Progress!=''"> + + <xsl:for-each select="dif:Data_Set_Progress"> + <xsl:if test=".='COMPLETE'"> + <gmd:status> + <gmd:MD_ProgressCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_ProgressCode" + codeListValue="completed"/> + </gmd:status> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="dif:Data_Set_Progress"> + <xsl:if test=".='IN WORK'"> + <gmd:status> + <gmd:MD_ProgressCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_ProgressCode" + codeListValue="onGoing"/> + </gmd:status> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="dif:Data_Set_Progress"> + <xsl:if test=".='PLANNED'"> + <gmd:status> + <gmd:MD_ProgressCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_ProgressCode" + codeListValue="planned"/> + </gmd:status> + </xsl:if> + </xsl:for-each> + + </xsl:if> + + <xsl:for-each select="dif:Data_Center"> + <xsl:for-each select="dif:Personnel/dif:Role"> + <gmd:pointOfContact> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:First_Name"/>, + <xsl:value-of select="../dif:Last_Name"/> + </gco:CharacterString> + </gmd:individualName> + <gmd:organisationName> + <gco:CharacterString> + <xsl:value-of select="../../dif:Data_Center_Name/dif:Short_Name"/> | + <xsl:value-of select="../../dif:Data_Center_Name/dif:Long_Name"/> + </gco:CharacterString> + </gmd:organisationName> + <gmd:positionName> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:positionName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!='' or ../../dif:Data_Center_URL!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!='' or ../../dif:Data_Center_URL!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + <xsl:if test="../../dif:Data_Center_URL!=''"> + <gmd:onlineResource> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:Data_Center_URL"/> + </gmd:URL> + </gmd:linkage> + </gmd:CI_OnlineResource> + </gmd:onlineResource> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="resourceProvider"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:pointOfContact> + </xsl:for-each> + </xsl:for-each> + + <xsl:if + test="dif:Multimedia_Sample/dif:File!='' or dif:Multimedia_Sample/dif:Description!='' or dif:Multimedia_Sample/dif:Format!=''"> + + <xsl:for-each select="dif:Multimedia_Sample"> + <gmd:graphicOverview> + <gmd:MD_BrowseGraphic> + <xsl:choose> + <xsl:when test="dif:File!=''"> + <gmd:fileName> + <gco:CharacterString> + <xsl:value-of select="./dif:File"/> + </gco:CharacterString> + </gmd:fileName> + </xsl:when> + <xsl:when test="dif:File=''"> + <gmd:fileName gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:fileName> + </xsl:when> + <xsl:otherwise> + <gmd:fileName gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:fileName> + </xsl:otherwise> + </xsl:choose> + <xsl:if test="dif:Description!=''"> + <gmd:fileDescription> + <gco:CharacterString> + <xsl:value-of select="./dif:Description"/> + </gco:CharacterString> + </gmd:fileDescription> + </xsl:if> + <xsl:if test="dif:Format!=''"> + <gmd:fileType> + <gco:CharacterString> + <xsl:value-of select="./dif:Format"/> + </gco:CharacterString> + </gmd:fileType> + </xsl:if> + </gmd:MD_BrowseGraphic> + </gmd:graphicOverview> + </xsl:for-each> + + </xsl:if> + + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Parameters"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Topic"/> | + <xsl:value-of select="dif:Term"/> | + <xsl:value-of select="dif:Variable_Level_1"/> | + <xsl:value-of select="dif:Variable_Level_2"/> | + <xsl:value-of select="dif:Variable_Level_3"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Science Keywords</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2008-02-05</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, S. + Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. Bilodeau, M. + Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global Change Master + Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + + <xsl:if test="dif:Keyword!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Keyword"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Sensor_Name!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Sensor_Name"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Short_Name"/> | + <xsl:value-of select="dif:Long_Name"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Instruments</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2008-01-22</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Source_Name!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Source_Name"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Short_Name"/> | + <xsl:value-of select="dif:Long_Name"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Platforms</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2008-02-05</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Paleo_Temporal_Coverage!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Paleo_Temporal_Coverage"> + <gmd:keyword> + <gco:CharacterString> + Paleo Start Date + <xsl:value-of select="dif:Paleo_Start_Date"/> + </gco:CharacterString> + </gmd:keyword> + <gmd:keyword> + <gco:CharacterString> + Paleo Stop Date + <xsl:value-of select="dif:Paleo_Stop_Date"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Paleo Temporal Coverage</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Paleo Start and Stop Dates</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date> + <xsl:value-of select="dif:Last_DIF_Revision_Date"/> + </gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Paleo_Temporal_Coverage/dif:Chronostratigraphic_Unit!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Paleo_Temporal_Coverage/dif:Chronostratigraphic_Unit"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Eon"/> | + <xsl:value-of select="dif:Era"/> | + <xsl:value-of select="dif:Period"/> | + <xsl:value-of select="dif:Epoch"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Chronostratigraphic Unit</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2007-04-01</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Project!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Project"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Short_Name"/> | + <xsl:value-of select="dif:Long_Name"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Projects</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2008-01-24</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:IDN_Node!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:IDN_Node"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Short_Name"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>IDN Nodes</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2007-04-01</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Location!=''"> + <gmd:descriptiveKeywords> + <gmd:MD_Keywords> + <xsl:for-each select="dif:Location"> + <gmd:keyword> + <gco:CharacterString> + <xsl:value-of select="dif:Location_Category"/> | + <xsl:value-of select="dif:Location_Type"/> | + <xsl:value-of select="dif:Location_Subregion1"/> | + <xsl:value-of select="dif:Location_Subregion2"/> | + <xsl:value-of select="dif:Location_Subregion3"/> | + <xsl:value-of select="dif:Detailed_Location"/> + </gco:CharacterString> + </gmd:keyword> + </xsl:for-each> + <gmd:thesaurusName> + <gmd:CI_Citation> + <gmd:title> + <gco:CharacterString>GCMD Keywords</gco:CharacterString> + </gmd:title> + <gmd:alternateTitle> + <gco:CharacterString>Locations</gco:CharacterString> + </gmd:alternateTitle> + <gmd:date> + <gmd:CI_Date> + <gmd:date> + <gco:Date>2008-02-05</gco:Date> + </gmd:date> + <gmd:dateType> + <gmd:CI_DateTypeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_DateTypeCode" + codeListValue="revision"/> + </gmd:dateType> + </gmd:CI_Date> + </gmd:date> + <gmd:collectiveTitle> + <gco:CharacterString>Olsen, L.M., G. Major, K. Shein, J. Scialdone, R. Vogel, + S. Leicester, H. Weir, S. Ritz, T. Stevens, M. Meaux, C.Solomon, R. + Bilodeau, M. Holland, T. Northcutt, R. A. Restrepo, 2007 . NASA/Global + Change Master Directory (GCMD) Earth Science Keywords. Version 6.0.0.0.0 + </gco:CharacterString> + </gmd:collectiveTitle> + </gmd:CI_Citation> + </gmd:thesaurusName> + </gmd:MD_Keywords> + </gmd:descriptiveKeywords> + </xsl:if> + + <xsl:if test="dif:Access_Constraints!=''"> + <xsl:for-each select="dif:Access_Constraints"> + <gmd:resourceConstraints> + <gmd:MD_LegalConstraints> + <gmd:accessConstraints> + <gmd:MD_RestrictionCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_RestrictionCode" + codeListValue="otherRestrictions"/> + </gmd:accessConstraints> + <gmd:otherConstraints> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:otherConstraints> + </gmd:MD_LegalConstraints> + </gmd:resourceConstraints> + </xsl:for-each> + </xsl:if> + + <xsl:if test="dif:Use_Constraints!=''"> + <xsl:for-each select="dif:Use_Constraints"> + <gmd:resourceConstraints> + <gmd:MD_LegalConstraints> + <gmd:useConstraints> + <gmd:MD_RestrictionCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_RestrictionCode" + codeListValue="otherRestrictions"/> + </gmd:useConstraints> + <gmd:otherConstraints> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:otherConstraints> + </gmd:MD_LegalConstraints> + </gmd:resourceConstraints> + </xsl:for-each> + </xsl:if> + + <xsl:choose> + <xsl:when test="dif:Data_Set_Language"> + + <xsl:for-each select="dif:Data_Set_Language"> + + <xsl:if test=".='English' or .='ENGLISH'"> + <gmd:language> + <gco:CharacterString>eng</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Afrikaans' or .='AFRIKAANS'"> + <gmd:language> + <gco:CharacterString>afr</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Arabic' or .='ARABIC'"> + <gmd:language> + <gco:CharacterString>ara</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Bosnian' or .='BOSNIAN'"> + <gmd:language> + <gco:CharacterString>bos</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Bulgarian' or .='BULGARIAN'"> + <gmd:language> + <gco:CharacterString>bul</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Chinese' or .='CHINESE'"> + <gmd:language> + <gco:CharacterString>chi</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Croatian' or .='CROATIAN'"> + <gmd:language> + <gco:CharacterString>scr</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Czech' or .='CZECH'"> + <gmd:language> + <gco:CharacterString>cze</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Danish' or .='DANISH'"> + <gmd:language> + <gco:CharacterString>dan</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Dutch' or .='DUTCH'"> + <gmd:language> + <gco:CharacterString>dut</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Estonian' or .='ESTONIAN'"> + <gmd:language> + <gco:CharacterString>est</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Finnish' or .='FINNISH'"> + <gmd:language> + <gco:CharacterString>fin</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='French' or .='FRENCH'"> + <gmd:language> + <gco:CharacterString>fre</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='German' or .='GERMAN'"> + <gmd:language> + <gco:CharacterString>ger</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Hebrew' or .='HEBREW'"> + <gmd:language> + <gco:CharacterString>heb</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Hungarian' or .='HUNGARIAN'"> + <gmd:language> + <gco:CharacterString>hun</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Indonesian' or .='INDONESIAN'"> + <gmd:language> + <gco:CharacterString>ind</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Italian' or .='ITALIAN'"> + <gmd:language> + <gco:CharacterString>ita</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Japanese' or .='JAPANESE'"> + <gmd:language> + <gco:CharacterString>jpn</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Korean' or .='KOREAN'"> + <gmd:language> + <gco:CharacterString>kor</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Latvian' or .='LATVIAN'"> + <gmd:language> + <gco:CharacterString>lav</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Lithuanian' or .='LITHUANIAN'"> + <gmd:language> + <gco:CharacterString>lit</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Norwegian' or .='NORWEGIAN'"> + <gmd:language> + <gco:CharacterString>nor</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Polish' or .='POLISH'"> + <gmd:language> + <gco:CharacterString>pol</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Portugese' or .='PORTUGESE'"> + <gmd:language> + <gco:CharacterString>por</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Romanian' or .='ROMANIAN'"> + <gmd:language> + <gco:CharacterString>rum</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Russian' or .='RUSSIAN'"> + <gmd:language> + <gco:CharacterString>rus</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Slovak' or .='SLOVAK'"> + <gmd:language> + <gco:CharacterString>slo</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Spanish' or .='SPANISH'"> + <gmd:language> + <gco:CharacterString>spa</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Ukranian' or .='UKRANIAN'"> + <gmd:language> + <gco:CharacterString>ukr</gco:CharacterString> + </gmd:language> + </xsl:if> + + <xsl:if test=".='Vietnamese' or .='VIETNAMESE'"> + <gmd:language> + <gco:CharacterString>vie</gco:CharacterString> + </gmd:language> + </xsl:if> + </xsl:for-each> + </xsl:when> + <xsl:otherwise> + <gmd:language gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:language> + </xsl:otherwise> + </xsl:choose> + + <gmd:characterSet> + <gmd:MD_CharacterSetCode + codeListValue="utf8" + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_CharacterSetCode"/> + </gmd:characterSet> + + <xsl:for-each select="dif:ISO_Topic_Category"> + <gmd:topicCategory> + <gmd:MD_TopicCategoryCode> + <xsl:value-of select="lower-case(normalize-space(.))"/> + </gmd:MD_TopicCategoryCode> + </gmd:topicCategory> + </xsl:for-each> + + <gmd:extent> + <gmd:EX_Extent> + + <xsl:choose> + <xsl:when + test="dif:Spatial_Coverage/dif:Westernmost_Longitude!='' and dif:Spatial_Coverage/dif:Easternmost_Longitude!='' and dif:Spatial_Coverage/dif:Southernmost_Latitude!='' and dif:Spatial_Coverage/dif:Northernmost_Latitude!=''"> + <gmd:geographicElement> + <xsl:for-each select="dif:Spatial_Coverage"> + <gmd:EX_GeographicBoundingBox> + <gmd:westBoundLongitude> + <gco:Decimal> + <xsl:value-of select="./dif:Westernmost_Longitude"/> + </gco:Decimal> + </gmd:westBoundLongitude> + <gmd:eastBoundLongitude> + <gco:Decimal> + <xsl:value-of select="./dif:Easternmost_Longitude"/> + </gco:Decimal> + </gmd:eastBoundLongitude> + <gmd:southBoundLatitude> + <gco:Decimal> + <xsl:value-of select="./dif:Southernmost_Latitude"/> + </gco:Decimal> + </gmd:southBoundLatitude> + <gmd:northBoundLatitude> + <gco:Decimal> + <xsl:value-of select="./dif:Northernmost_Latitude"/> + </gco:Decimal> + </gmd:northBoundLatitude> + </gmd:EX_GeographicBoundingBox> + </xsl:for-each> + </gmd:geographicElement> + </xsl:when> + <xsl:when + test="dif:Spatial_Coverage/dif:Westernmost_Longitude='' and dif:Spatial_Coverage/dif:Easternmost_Longitude='' and dif:Spatial_Coverage/dif:Southernmost_Latitude='' and dif:Spatial_Coverage/dif:Northernmost_Latitude=''"> + <gmd:geographicElement> + <gmd:EX_GeographicDescription> + <gmd:geographicIdentifier> + <gmd:RS_Identifier> + <gmd:code gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:code> + </gmd:RS_Identifier> + </gmd:geographicIdentifier> + </gmd:EX_GeographicDescription> + </gmd:geographicElement> + </xsl:when> + <xsl:otherwise> + <gmd:geographicElement> + <gmd:EX_GeographicDescription> + <gmd:geographicIdentifier> + <gmd:RS_Identifier> + <gmd:code gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:code> + </gmd:RS_Identifier> + </gmd:geographicIdentifier> + </gmd:EX_GeographicDescription> + </gmd:geographicElement> + </xsl:otherwise> + </xsl:choose> + + <xsl:choose> + <xsl:when test="dif:Temporal_Coverage!=''"> + <xsl:for-each select="dif:Temporal_Coverage"> + <gmd:temporalElement> + <gmd:EX_TemporalExtent> + <gmd:extent> + <gml:TimePeriod> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:begin> + <gml:TimeInstant> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(./dif:Start_Date)"/> + </xsl:attribute> + <gml:timePosition> + <xsl:value-of select="./dif:Start_Date"/> + </gml:timePosition> + </gml:TimeInstant> + </gml:begin> + <gml:end> + <gml:TimeInstant> + <xsl:choose> + <xsl:when test="./dif:Stop_Date!=''"> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(./dif:Stop_Date)"/> + </xsl:attribute> + </xsl:when> + <xsl:when test="./dif:Stop_Date=''"> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + </xsl:when> + <xsl:otherwise> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + </xsl:otherwise> + </xsl:choose> + <xsl:choose> + <xsl:when test="./dif:Stop_Date!=''"> + <gml:timePosition> + <xsl:value-of select="./dif:Stop_Date"/> + </gml:timePosition> + </xsl:when> + <xsl:when test="./dif:Stop_Date=''"> + <gml:timePosition>Unknown + </gml:timePosition> + </xsl:when> + <xsl:otherwise> + <gml:timePosition>Unknown + </gml:timePosition> + </xsl:otherwise> + </xsl:choose> + </gml:TimeInstant> + </gml:end> + </gml:TimePeriod> + </gmd:extent> + </gmd:EX_TemporalExtent> + </gmd:temporalElement> + </xsl:for-each> + </xsl:when> + <xsl:when test="dif:Temporal_Coverage=''"> + <gmd:temporalElement> + <gmd:EX_TemporalExtent> + <gmd:extent> + <gml:TimePeriod> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:begin> + <gml:TimeInstant> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:timePosition>Unknown + </gml:timePosition> + </gml:TimeInstant> + </gml:begin> + <gml:end> + <gml:TimeInstant> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:timePosition>Unknown + </gml:timePosition> + </gml:TimeInstant> + </gml:end> + </gml:TimePeriod> + </gmd:extent> + </gmd:EX_TemporalExtent> + </gmd:temporalElement> + </xsl:when> + <xsl:otherwise> + <gmd:temporalElement> + <gmd:EX_TemporalExtent> + <gmd:extent> + <gml:TimePeriod> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:begin> + <gml:TimeInstant> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:timePosition>Unknown + </gml:timePosition> + </gml:TimeInstant> + </gml:begin> + <gml:end> + <gml:TimeInstant> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:timePosition>Unknown + </gml:timePosition> + </gml:TimeInstant> + </gml:end> + </gml:TimePeriod> + </gmd:extent> + </gmd:EX_TemporalExtent> + </gmd:temporalElement> + </xsl:otherwise> + </xsl:choose> + + <xsl:for-each select="dif:Spatial_Coverage"> + <xsl:if test="./dif:Minimum_Altitude!='' or ./dif:Maximum_Altitude!=''"> + <gmd:verticalElement> + <gmd:EX_VerticalExtent> + + <xsl:if test="./dif:Minimum_Altitude!=''"> + <xsl:for-each select="./dif:Minimum_Altitude"> + <gmd:minimumValue> + <gco:Real> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Real> + </gmd:minimumValue> + </xsl:for-each> + </xsl:if> + <xsl:if test="./dif:Maximum_Altitude!=''"> + <xsl:for-each select="./dif:Maximum_Altitude"> + <gmd:maximumValue> + <gco:Real> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Real> + </gmd:maximumValue> + </xsl:for-each> + </xsl:if> + <xsl:if test="./dif:Minimum_Altitude!=''"> + <gmd:verticalCRS> + <gml:VerticalCRS> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + + <xsl:if + test="substring-after(./dif:Minimum_Altitude,' ')='m' or substring-after(./dif:Minimum_Altitude,' ')='metres' or substring-after(./dif:Minimum_Altitude,' ')='meters'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6499"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6499 + </gml:identifier> + <gml:name>Vertical CS. Axis: height (H). Orientation: up. UoM: + m. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-114" + gml:uom="urn:x-ogc:def:uom:EPSG:9001"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:114 + </gml:identifier> + <gml:name>height</gml:name> + <gml:axisAbbrev>H</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">up</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <xsl:if + test="substring-after(./dif:Minimum_Altitude,' ')='ft' or substring-after(./dif:Minimum_Altitude,' ')='feet'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6496"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6496 + </gml:identifier> + <gml:name>Vertical CS. Axis: height (H). Orientation: up. UoM: + ft(Br36). + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-111" + gml:uom="urn:x-ogc:def:uom:EPSG:9095"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:111 + </gml:identifier> + <gml:name>height</gml:name> + <gml:axisAbbrev>H</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">up</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <gml:verticalDatum> + <gml:VerticalDatum> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + </gml:VerticalDatum> + </gml:verticalDatum> + </gml:VerticalCRS> + </gmd:verticalCRS> + </xsl:if> + + <xsl:if + test="not(./dif:Minimum_Altitude/text()) and ./dif:Maximum_Altitude!=''"> + <gmd:verticalCRS> + <gml:VerticalCRS> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + + <xsl:if + test="substring-after(./dif:Minimum_Altitude,' ')='m' or substring-after(./dif:Minimum_Altitude,' ')='metres' or substring-after(./dif:Minimum_Altitude,' ')='meters'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6499"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6499 + </gml:identifier> + <gml:name>Vertical CS. Axis: height (H). Orientation: up. UoM: + m. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-114" + gml:uom="urn:x-ogc:def:uom:EPSG:9001"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:114 + </gml:identifier> + <gml:name>height</gml:name> + <gml:axisAbbrev>H</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">up</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <xsl:if + test="substring-after(./dif:Minimum_Altitude,' ')='ft' or substring-after(./dif:Minimum_Altitude,' ')='feet'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6496"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6496 + </gml:identifier> + <gml:name>Vertical CS. Axis: height (H). Orientation: up. UoM: + ft(Br36). + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-111" + gml:uom="urn:x-ogc:def:uom:EPSG:9095"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:111 + </gml:identifier> + <gml:name>height</gml:name> + <gml:axisAbbrev>H</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">up</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <gml:verticalDatum> + <gml:VerticalDatum> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + </gml:VerticalDatum> + </gml:verticalDatum> + </gml:VerticalCRS> + </gmd:verticalCRS> + </xsl:if> + + </gmd:EX_VerticalExtent> + </gmd:verticalElement> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="dif:Spatial_Coverage"> + <xsl:if test="./dif:Minimum_Depth!='' or ./dif:Maximum_Depth!=''"> + <gmd:verticalElement> + <gmd:EX_VerticalExtent> + + <xsl:if test="./dif:Minimum_Depth!=''"> + <xsl:for-each select="./dif:Minimum_Depth"> + <gmd:minimumValue> + <gco:Real> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Real> + </gmd:minimumValue> + </xsl:for-each> + </xsl:if> + <xsl:if test="./dif:Maximum_Depth!=''"> + <xsl:for-each select="./dif:Maximum_Depth"> + <gmd:maximumValue> + <gco:Real> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Real> + </gmd:maximumValue> + </xsl:for-each> + </xsl:if> + <xsl:if test="./dif:Minimum_Depth!=''"> + <gmd:verticalCRS> + <gml:VerticalCRS> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + + <xsl:if + test="substring-after(./dif:Minimum_Depth,' ')='m' or substring-after(./dif:Minimum_Depth,' ')='metres' or substring-after(./dif:Minimum_Depth,' ')='meters'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6498"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6498 + </gml:identifier> + <gml:name>Vertical CS. Axis: depth (D). Orientation: down. UoM: + m. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-113" + gml:uom="urn:x-ogc:def:uom:EPSG:9001"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:113 + </gml:identifier> + <gml:name>depth</gml:name> + <gml:axisAbbrev>D</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">down</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <xsl:if + test="substring-after(./dif:Minimum_Depth,' ')='ft' or substring-after(./dif:Minimum_Depth,' ')='feet'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6495"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6495 + </gml:identifier> + <gml:name>Vertical CS. Axis: depth (D). Orientation: down. UoM: + ft. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-214" + gml:uom="urn:x-ogc:def:uom:EPSG:9002"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:214 + </gml:identifier> + <gml:name>depth</gml:name> + <gml:axisAbbrev>D</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">down</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <gml:verticalDatum> + <gml:VerticalDatum> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + </gml:VerticalDatum> + </gml:verticalDatum> + </gml:VerticalCRS> + </gmd:verticalCRS> + </xsl:if> + + <xsl:if test="not(./dif:Minimum_Depth/text()) and ./dif:Maximum_Depth!=''"> + <gmd:verticalCRS> + <gml:VerticalCRS> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + + <xsl:if + test="substring-after(./dif:Minimum_Depth,' ')='m' or substring-after(./dif:Minimum_Depth,' ')='metres' or substring-after(./dif:Minimum_Depth,' ')='meters'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6498"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6498 + </gml:identifier> + <gml:name>Vertical CS. Axis: depth (D). Orientation: down. UoM: + m. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-113" + gml:uom="urn:x-ogc:def:uom:EPSG:9001"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:113 + </gml:identifier> + <gml:name>depth</gml:name> + <gml:axisAbbrev>D</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">down</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <xsl:if + test="substring-after(./dif:Minimum_Depth,' ')='ft' or substring-after(./dif:Minimum_Depth,' ')='feet'"> + <gml:verticalCS> + <gml:VerticalCS gml:id="epsg-cs-6495"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:cs:EPSG:6495 + </gml:identifier> + <gml:name>Vertical CS. Axis: depth (D). Orientation: down. UoM: + ft. + </gml:name> + <gml:axis> + <gml:CoordinateSystemAxis gml:id="epsg-axis-214" + gml:uom="urn:x-ogc:def:uom:EPSG:9002"> + <gml:identifier codeSpace="EPSG">urn:x-ogc:def:axis:EPSG:214 + </gml:identifier> + <gml:name>depth</gml:name> + <gml:axisAbbrev>D</gml:axisAbbrev> + <gml:axisDirection codeSpace="EPSG">down</gml:axisDirection> + </gml:CoordinateSystemAxis> + </gml:axis> + </gml:VerticalCS> + </gml:verticalCS> + </xsl:if> + + <gml:verticalDatum> + <gml:VerticalDatum> + <xsl:attribute name="gml:id"> + <xsl:variable name="uid" + select="util:toString(util:randomUUID())"/> + <xsl:value-of select="concat('a',$uid)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:scope/> + </gml:VerticalDatum> + </gml:verticalDatum> + </gml:VerticalCRS> + </gmd:verticalCRS> + </xsl:if> + + </gmd:EX_VerticalExtent> + </gmd:verticalElement> + </xsl:if> + </xsl:for-each> + + </gmd:EX_Extent> + </gmd:extent> + + <xsl:if test="dif:Reference!=''"> + <gmd:supplementalInformation> + <gco:CharacterString> + <xsl:value-of select="dif:Reference"/> + </gco:CharacterString> + </gmd:supplementalInformation> + </xsl:if> + + </gmd:MD_DataIdentification> + </gmd:identificationInfo> + + <gmd:distributionInfo> + <gmd:MD_Distribution> + + <xsl:choose> + <xsl:when test="dif:Distribution_Format!=''"> + <xsl:for-each select="dif:Distribution"> + <gmd:distributionFormat> + <gmd:MD_Format> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="./dif:Distribution_Format"/> + </gco:CharacterString> + </gmd:name> + <gmd:version gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:version> + </gmd:MD_Format> + </gmd:distributionFormat> + </xsl:for-each> + </xsl:when> + <xsl:when test="dif:Distribution_Format=''"> + <gmd:distributionFormat> + <gmd:MD_Format> + <gmd:name gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:name> + <gmd:version gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:version> + </gmd:MD_Format> + </gmd:distributionFormat> + </xsl:when> + <xsl:otherwise> + <gmd:distributionFormat> + <gmd:MD_Format> + <gmd:name gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:name> + <gmd:version gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:version> + </gmd:MD_Format> + </gmd:distributionFormat> + </xsl:otherwise> + </xsl:choose> + + <xsl:for-each select="dif:Data_Center"> + <xsl:for-each select="dif:Personnel/dif:Role"> + <gmd:distributor> + <gmd:MD_Distributor> + <gmd:distributorContact> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:First_Name"/>, + <xsl:value-of select="../dif:Last_Name"/> + </gco:CharacterString> + </gmd:individualName> + <gmd:organisationName> + <gco:CharacterString> + <xsl:value-of select="../../dif:Data_Center_Name/dif:Short_Name"/> | + <xsl:value-of select="../../dif:Data_Center_Name/dif:Long_Name"/> + </gco:CharacterString> + </gmd:organisationName> + <gmd:positionName> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:positionName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!='' or ../../dif:Data_Center_URL!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!='' or ../../dif:Data_Center_URL!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + <xsl:if test="../../dif:Data_Center_URL!=''"> + <gmd:onlineResource> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:Data_Center_URL"/> + </gmd:URL> + </gmd:linkage> + </gmd:CI_OnlineResource> + </gmd:onlineResource> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="distributor"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:distributorContact> + + <xsl:if + test="../../../dif:Distribution/dif:Fees!='' or ../../../dif:Data_Set_Citation/dif:Dataset_Release_Date!=''"> + <xsl:for-each select="../../../dif:Distribution"> + <gmd:distributionOrderProcess> + <gmd:MD_StandardOrderProcess> + <xsl:if test="./dif:Fees!=''"> + <gmd:fees> + <gco:CharacterString> + <xsl:value-of select="./dif:Fees"/> + </gco:CharacterString> + </gmd:fees> + </xsl:if> + <xsl:if test="../dif:Data_Set_Citation/dif:Dataset_Release_Date!=''"> + <gmd:plannedAvailableDateTime> + <gco:DateTime> + <xsl:value-of + select="../dif:Data_Set_Citation/dif:Dataset_Release_Date"/>T12:00:00 + </gco:DateTime> + </gmd:plannedAvailableDateTime> + </xsl:if> + </gmd:MD_StandardOrderProcess> + </gmd:distributionOrderProcess> + </xsl:for-each> + </xsl:if> + + </gmd:MD_Distributor> + </gmd:distributor> + </xsl:for-each> + </xsl:for-each> + + <xsl:if + test="dif:Distribution/dif:Distribution_Size!='' or dif:Related_URL!='' or dif:Multimedia_Sample/dif:URL!='' or dif:Data_Set_Citation/dif:Online_Resource!='' or dif:Distribution/dif:Distribution_Media!=''"> + + + <gmd:transferOptions> + <gmd:MD_DigitalTransferOptions> + + <xsl:if test="dif:Distribution/dif:Distribution_Size!=''"> + <xsl:for-each select="dif:Distribution/dif:Distribution_Size"> + <gmd:unitsOfDistribution> + <gco:CharacterString> + <xsl:value-of select="substring-after(.,' ')"/> + </gco:CharacterString> + </gmd:unitsOfDistribution> + <gmd:transferSize> + <gco:Real> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Real> + </gmd:transferSize> + </xsl:for-each> + </xsl:if> + + <xsl:if test="dif:Related_URL!=''"> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='ECHO'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='EDG'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='EOSDIS DATA POOL'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GIOVANNI'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='LAADS'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='LAS'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='MIRADOR'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='MODAPS'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='NOMADS'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='OPENDAP DATA (DODS)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='OPENDAP DIRECTORY (DODS)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='THREDDS CATALOG'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='THREDDS DATA'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='THREDDS DIRECTORY'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='WHOM'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='WIST'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='GET DATA'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='GET RELATED DATA SET METADATA (DIF)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='GET RELATED SERVICE METADATA (SERF)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='ACCESS MAP VIEWER'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>OGC:WMS-1.1.1-http-get-map</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='ACCESS WEB SERVICE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET MAP SERVICE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>OGC:WMS-1.1.1-http-get-map</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET SOFTWARE PACKAGE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET WEB COVERAGE SERVICE (WCS)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET WEB FEATURE SERVICE (WFS)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET WEB MAP SERVICE (WMS)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>OGC:WMS-1.1.1-http-get-map</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='GET WORKFLOW (SERVICE CHAIN)'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='GET SERVICE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='VIEW EXTENDED METADATA'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='VIEW PROJECT HOME PAGE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='PRODUCT HISTORY'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Subtype"> + <xsl:if test=".='USER''S GUIDE'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> | + <xsl:value-of select="../../dif:URL_Content_Type/dif:Subtype"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + <xsl:for-each select="dif:Related_URL/dif:URL_Content_Type"> + <xsl:for-each select="dif:Type"> + <xsl:if test=".='VIEW RELATED INFORMATION'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="../../dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString> + <xsl:value-of select="../../dif:URL_Content_Type/dif:Type"/> + </gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="../../dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + </xsl:if> + + <xsl:choose> + <xsl:when test="dif:Related_URL"> + </xsl:when> + <xsl:otherwise> + <xsl:if test="dif:Distribution/dif:Distribution_Media!=''"> + <xsl:if + test="dif:Distribution/dif:Distribution_Media='HTTP' or dif:Distribution/dif:Distribution_Media='FTP'"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage gco:nilReason="missing"> + <gmd:URL/> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:name> + <gmd:description gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:if> + </xsl:if> + </xsl:otherwise> + </xsl:choose> + + <xsl:if test="dif:Multimedia_Sample/dif:URL!=''"> + <xsl:for-each select="dif:Multimedia_Sample"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="./dif:URL"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString>Multimedia Sample</gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="./dif:Description"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:for-each> + </xsl:if> + + <xsl:if test="dif:Data_Set_Citation/dif:Online_Resource!=''"> + <xsl:for-each select="dif:Data_Set_Citation"> + <gmd:onLine> + <gmd:CI_OnlineResource> + <gmd:linkage> + <gmd:URL> + <xsl:value-of select="./dif:Online_Resource"/> + </gmd:URL> + </gmd:linkage> + <gmd:protocol> + <gco:CharacterString>WWW:LINK-1.0-http--link</gco:CharacterString> + </gmd:protocol> + <gmd:name> + <gco:CharacterString>Data Set Citation</gco:CharacterString> + </gmd:name> + <gmd:description> + <gco:CharacterString> + <xsl:value-of select="./dif:Dataset_Title"/> + </gco:CharacterString> + </gmd:description> + </gmd:CI_OnlineResource> + </gmd:onLine> + </xsl:for-each> + </xsl:if> + + <xsl:if test="dif:Distribution/dif:Distribution_Media!=''"> + + <xsl:for-each select="dif:Distribution/dif:Distribution_Media"> + <xsl:if test=".='HTTP' or .='FTP'"> + <gmd:offLine> + <gmd:MD_Medium> + <gmd:name> + <gmd:MD_MediumNameCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_MediumNameCode" + codeListValue="onLine"/> + </gmd:name> + </gmd:MD_Medium> + </gmd:offLine> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="dif:Distribution/dif:Distribution_Media"> + <xsl:if test=".='CD'"> + <gmd:offLine> + <gmd:MD_Medium> + <gmd:name> + <gmd:MD_MediumNameCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_MediumNameCode" + codeListValue="cdRom"/> + </gmd:name> + </gmd:MD_Medium> + </gmd:offLine> + </xsl:if> + </xsl:for-each> + + <xsl:for-each select="dif:Distribution/dif:Distribution_Media"> + <xsl:if test=".='DVD'"> + <gmd:offLine> + <gmd:MD_Medium> + <gmd:name> + <gmd:MD_MediumNameCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_MediumNameCode" + codeListValue="dvd"/> + </gmd:name> + </gmd:MD_Medium> + </gmd:offLine> + </xsl:if> + </xsl:for-each> + + </xsl:if> + + </gmd:MD_DigitalTransferOptions> + </gmd:transferOptions> + + </xsl:if> + + </gmd:MD_Distribution> + </gmd:distributionInfo> + + <gmd:dataQualityInfo> + <gmd:DQ_DataQuality> + <gmd:scope> + <gmd:DQ_Scope> + <gmd:level> + <gmd:MD_ScopeCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_ScopeCode" + codeListValue="dataset"/> + </gmd:level> + </gmd:DQ_Scope> + </gmd:scope> + + <xsl:if test="dif:Data_Resolution!=''"> + + <xsl:for-each select="dif:Data_Resolution/dif:Temporal_Resolution"> + <gmd:report> + <gmd:DQ_AccuracyOfATimeMeasurement> + <gmd:nameOfMeasure> + <gco:CharacterString>Temporal Resolution</gco:CharacterString> + </gmd:nameOfMeasure> + <gmd:result> + <gmd:DQ_QuantitativeResult> + <gmd:valueUnit> + <gml:DerivedUnit> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:derivationUnitTerm uom="{substring-after(.,' ')}"/> + </gml:DerivedUnit> + </gmd:valueUnit> + <gmd:value> + <gco:Record> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Record> + </gmd:value> + </gmd:DQ_QuantitativeResult> + </gmd:result> + </gmd:DQ_AccuracyOfATimeMeasurement> + </gmd:report> + </xsl:for-each> + + <xsl:for-each select="dif:Data_Resolution/dif:Latitude_Resolution"> + <gmd:report> + <gmd:DQ_AbsoluteExternalPositionalAccuracy> + <gmd:nameOfMeasure> + <gco:CharacterString>Latitude Resolution</gco:CharacterString> + </gmd:nameOfMeasure> + <gmd:result> + <gmd:DQ_QuantitativeResult> + <gmd:valueUnit> + <gml:DerivedUnit> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:derivationUnitTerm uom="{substring-after(.,' ')}"/> + </gml:DerivedUnit> + </gmd:valueUnit> + <gmd:value> + <gco:Record> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Record> + </gmd:value> + </gmd:DQ_QuantitativeResult> + </gmd:result> + </gmd:DQ_AbsoluteExternalPositionalAccuracy> + </gmd:report> + </xsl:for-each> + + <xsl:for-each select="dif:Data_Resolution/dif:Longitude_Resolution"> + <gmd:report> + <gmd:DQ_AbsoluteExternalPositionalAccuracy> + <gmd:nameOfMeasure> + <gco:CharacterString>Longitude Resolution</gco:CharacterString> + </gmd:nameOfMeasure> + <gmd:result> + <gmd:DQ_QuantitativeResult> + <gmd:valueUnit> + <gml:DerivedUnit> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:derivationUnitTerm uom="{substring-after(.,' ')}"/> + </gml:DerivedUnit> + </gmd:valueUnit> + <gmd:value> + <gco:Record> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Record> + </gmd:value> + </gmd:DQ_QuantitativeResult> + </gmd:result> + </gmd:DQ_AbsoluteExternalPositionalAccuracy> + </gmd:report> + </xsl:for-each> + + <xsl:for-each select="dif:Data_Resolution/dif:Vertical_Resolution"> + <gmd:report> + <gmd:DQ_AbsoluteExternalPositionalAccuracy> + <gmd:nameOfMeasure> + <gco:CharacterString>Vertical Resolution</gco:CharacterString> + </gmd:nameOfMeasure> + <gmd:result> + <gmd:DQ_QuantitativeResult> + <gmd:valueUnit> + <gml:DerivedUnit> + <xsl:attribute name="gml:id"> + <xsl:value-of select="generate-id(.)"/> + </xsl:attribute> + <gml:identifier codeSpace=""/> + <gml:derivationUnitTerm uom="{substring-after(.,' ')}"/> + </gml:DerivedUnit> + </gmd:valueUnit> + <gmd:value> + <gco:Record> + <xsl:value-of select="substring-before(.,' ')"/> + </gco:Record> + </gmd:value> + </gmd:DQ_QuantitativeResult> + </gmd:result> + </gmd:DQ_AbsoluteExternalPositionalAccuracy> + </gmd:report> + </xsl:for-each> + + </xsl:if> + + <xsl:choose> + <xsl:when test="dif:Quality!=''"> + <gmd:lineage> + <gmd:LI_Lineage> + <gmd:statement> + <gco:CharacterString> + <xsl:value-of select="dif:Quality"/> + </gco:CharacterString> + </gmd:statement> + </gmd:LI_Lineage> + </gmd:lineage> + </xsl:when> + <xsl:when test="dif:Quality=''"> + <gmd:lineage> + <gmd:LI_Lineage> + <gmd:statement gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:statement> + </gmd:LI_Lineage> + </gmd:lineage> + </xsl:when> + <xsl:otherwise> + <gmd:lineage> + <gmd:LI_Lineage> + <gmd:statement gco:nilReason="missing"> + <gco:CharacterString/> + </gmd:statement> + </gmd:LI_Lineage> + </gmd:lineage> + </xsl:otherwise> + </xsl:choose> + + </gmd:DQ_DataQuality> + </gmd:dataQualityInfo> + + <xsl:choose> + <xsl:when test="dif:Private"> + + <xsl:for-each select="dif:Private"> + + <xsl:if test=".='True' or .='TRUE'"> + <gmd:metadataConstraints> + <gmd:MD_LegalConstraints> + <gmd:useLimitation> + <gco:CharacterString>This metadata record is publicly available. + </gco:CharacterString> + </gmd:useLimitation> + </gmd:MD_LegalConstraints> + </gmd:metadataConstraints> + </xsl:if> + + <xsl:if test=".='False' or .='FALSE'"> + <gmd:metadataConstraints> + <gmd:MD_LegalConstraints> + <gmd:useLimitation> + <gco:CharacterString>This metadata record is not publicly available. + </gco:CharacterString> + </gmd:useLimitation> + </gmd:MD_LegalConstraints> + </gmd:metadataConstraints> + </xsl:if> + + </xsl:for-each> + + </xsl:when> + + <xsl:otherwise> + <gmd:metadataConstraints> + <gmd:MD_LegalConstraints> + <gmd:useLimitation> + <gco:CharacterString>This metadata record is publicly available. + </gco:CharacterString> + </gmd:useLimitation> + </gmd:MD_LegalConstraints> + </gmd:metadataConstraints> + </xsl:otherwise> + + </xsl:choose> + + <gmd:metadataMaintenance> + <gmd:MD_MaintenanceInformation> + + <gmd:maintenanceAndUpdateFrequency> + <gmd:MD_MaintenanceFrequencyCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#MD_MaintenanceFrequencyCode" + codeListValue="asNeeded"/> + </gmd:maintenanceAndUpdateFrequency> + + <xsl:if test="dif:Future_DIF_Review_Date!=''"> + <gmd:dateOfNextUpdate> + <gco:Date> + <xsl:value-of select="dif:Future_DIF_Review_Date"/> + </gco:Date> + </gmd:dateOfNextUpdate> + </xsl:if> + + <xsl:if test="dif:DIF_Revision_History!=''"> + <gmd:maintenanceNote> + <gco:CharacterString> + <xsl:value-of select="dif:DIF_Revision_History"/> + </gco:CharacterString> + </gmd:maintenanceNote> + </xsl:if> + + <xsl:for-each select="dif:Personnel"> + <xsl:for-each select="dif:Role"> + <xsl:if test=".='DIF AUTHOR'"> + <gmd:contact> + <gmd:CI_ResponsibleParty> + <gmd:individualName> + <gco:CharacterString> + <xsl:value-of select="../dif:Last_Name"></xsl:value-of>, + <xsl:value-of select="../dif:First_Name"></xsl:value-of> + </gco:CharacterString> + </gmd:individualName> + + <xsl:if + test="../dif:Phone!='' or ../dif:Fax!='' or ../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + + <gmd:contactInfo> + <gmd:CI_Contact> + + <xsl:if test="../dif:Phone!='' or ../dif:Fax!=''"> + <gmd:phone> + <gmd:CI_Telephone> + <xsl:for-each select="../dif:Phone"> + <gmd:voice> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:voice> + </xsl:for-each> + <xsl:for-each select="../dif:Fax"> + <gmd:facsimile> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:facsimile> + </xsl:for-each> + </gmd:CI_Telephone> + </gmd:phone> + </xsl:if> + + <xsl:if + test="../dif:Contact_Address/dif:Address!='' or ../dif:Contact_Address/dif:City!='' or ../dif:Contact_Address/dif:Province_or_State!='' or ../dif:Contact_Address/dif:Postal_Code!='' or ../dif:Contact_Address/dif:Country!='' or ../dif:Email!=''"> + <gmd:address> + <gmd:CI_Address> + <xsl:for-each select="../dif:Contact_Address/dif:Address"> + <gmd:deliveryPoint> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:deliveryPoint> + </xsl:for-each> + <xsl:if test="../dif:Contact_Address/dif:City!=''"> + <gmd:city> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:City"/> + </gco:CharacterString> + </gmd:city> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Province_or_State!=''"> + <gmd:administrativeArea> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Province_or_State"/> + </gco:CharacterString> + </gmd:administrativeArea> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Postal_Code!=''"> + <gmd:postalCode> + <gco:CharacterString> + <xsl:value-of + select="../dif:Contact_Address/dif:Postal_Code"/> + </gco:CharacterString> + </gmd:postalCode> + </xsl:if> + <xsl:if test="../dif:Contact_Address/dif:Country!=''"> + <gmd:country> + <gco:CharacterString> + <xsl:value-of select="../dif:Contact_Address/dif:Country"/> + </gco:CharacterString> + </gmd:country> + </xsl:if> + <xsl:for-each select="../dif:Email"> + <gmd:electronicMailAddress> + <gco:CharacterString> + <xsl:value-of select="."/> + </gco:CharacterString> + </gmd:electronicMailAddress> + </xsl:for-each> + </gmd:CI_Address> + </gmd:address> + </xsl:if> + + </gmd:CI_Contact> + </gmd:contactInfo> + + </xsl:if> + + <gmd:role> + <gmd:CI_RoleCode + codeList="http://asdd.ga.gov.au/asdd/profileinfo/gmxCodelists.xml#CI_RoleCode" + codeListValue="author"/> + </gmd:role> + </gmd:CI_ResponsibleParty> + </gmd:contact> + </xsl:if> + </xsl:for-each> + </xsl:for-each> + + </gmd:MD_MaintenanceInformation> + </gmd:metadataMaintenance> + </gmd:MD_Metadata> + + + </xsl:template> + <!-- ====================================================== --> + +</xsl:stylesheet> diff --git a/config/schema_plugins/iso19139/convert/OGCSLDtoISO19139/OGCSLD-to-ISO19139.xsl b/config/schema_plugins/iso19139/convert/OGCSLDtoISO19139/OGCSLD-to-ISO19139.xsl new file mode 100644 index 0000000..b24f58d --- /dev/null +++ b/config/schema_plugins/iso19139/convert/OGCSLDtoISO19139/OGCSLD-to-ISO19139.xsl @@ -0,0 +1,124 @@ +<?xml version="1.0" encoding="UTF-8"?> +<xsl:stylesheet xmlns:sld="http://www.opengis.net/sld" + xmlns:gco="http://www.isotc211.org/2005/gco" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + version="2.0" + xmlns="http://www.isotc211.org/2005/gmd" +> + + + <!-- ============================================================================= --> + + <xsl:param name="lang">eng</xsl:param> + <xsl:param name="topic"></xsl:param> + + <xsl:include href="identification.xsl"/> + + <!-- ============================================================================= --> + + <xsl:output method="xml" version="1.0" encoding="UTF-8" indent="yes"/> + + <!-- ============================================================================= --> + + <xsl:template match="/"> + <xsl:apply-templates/> + </xsl:template> + + <!-- ============================================================================= --> + + <xsl:template match="sld:StyledLayerDescriptor"> + <MD_Metadata> + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + <!-- <fileIdentifier> + <gco:CharacterString><xsl:value-of select="/wmc:ViewContext/@id"/></gco:CharacterString> + </fileIdentifier> + --> + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + <language> + <gco:CharacterString> + <xsl:value-of select="$lang"/> + </gco:CharacterString> + <!-- English is default. Not available in Web Map Context. Selected by user from GUI --> + </language> + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + <characterSet> + <MD_CharacterSetCode codeList="./resources/codeList.xml#MD_CharacterSetCode" + codeListValue="utf8"/> + </characterSet> + + <!-- parentIdentifier : Web Map Context has no parent --> + <!-- mdHrLv --> + <!-- mdHrLvName --> + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + <xsl:variable name="df">[Y0001]-[M01]-[D01]T[H01]:[m01]:[s01]</xsl:variable> + <dateStamp> + <gco:DateTime> + <xsl:value-of select="format-dateTime(current-dateTime(),$df)"/> + </gco:DateTime> + </dateStamp> + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + <metadataStandardName> + <gco:CharacterString>ISO 19115:2003/19139</gco:CharacterString> + </metadataStandardName> + + <metadataStandardVersion> + <gco:CharacterString>1.0</gco:CharacterString> + </metadataStandardVersion> + + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + <identificationInfo> + <MD_DataIdentification> + <xsl:apply-templates select="." mode="DataIdentification"> + <xsl:with-param name="topic"> + <xsl:value-of select="$topic"/> + </xsl:with-param> + </xsl:apply-templates> + </MD_DataIdentification> + </identificationInfo> + + <!-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --> + + <distributionInfo> + <MD_Distribution> + <transferOptions> + <MD_DigitalTransferOptions> + <onLine> + <CI_OnlineResource> + <linkage> + <URL/> + </linkage> + <protocol> + <!-- FIXME : use standardized label for WMS protocol --> + <gco:CharacterString>OGC-SLD</gco:CharacterString> + </protocol> + <name> + <gco:CharacterString> + <xsl:value-of select="sld:NamedLayer/sld:Name"/> + </gco:CharacterString> + </name> + <description> + <gco:CharacterString> + <xsl:value-of select="sld:NamedLayer/sld:Name"/> + </gco:CharacterString> + </description> + </CI_OnlineResource> + </onLine> + </MD_DigitalTransferOptions> + </transferOptions> + </MD_Distribution> + </distributionInfo> + </MD_Metadata> + </xsl:template> + +</xsl:stylesheet> diff --git a/config/schema_plugins/iso19139/convert/OGCSLDtoISO19139/identification.xsl b/config/schema_plugins/iso19139/convert/OGCSLDtoISO19139/identification.xsl new file mode 100644 index 0000000..12c205d --- /dev/null +++ b/config/schema_plugins/iso19139/convert/OGCSLDtoISO19139/identification.xsl @@ -0,0 +1,84 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<xsl:stylesheet xmlns:sld="http://www.opengis.net/sld" xmlns:gco="http://www.isotc211.org/2005/gco" + xmlns:ogc="http://www.opengis.net/ogc" + xmlns:xsl="http://www.w3.org/1999/XSL/Transform" + xmlns:math="http://exslt.org/math" + version="2.0" + xmlns="http://www.isotc211.org/2005/gmd" + extension-element-prefixes="math ogc"> + + <!-- ============================================================================= --> + + <xsl:key name="prop" match="//ogc:PropertyName" use="."/> + + <!-- ============================================================================= --> + + <xsl:template match="*" mode="DataIdentification"> + + <citation> + <CI_Citation> + <title> + <gco:CharacterString> + <xsl:value-of select="sld:NamedLayer/sld:UserStyle/sld:Title"/> + </gco:CharacterString> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    + +
    diff --git a/config/schema_plugins/iso19139/convert/OGCWMCtoISO19139/OGCWMC-OR-OWSC-to-ISO19139.xsl b/config/schema_plugins/iso19139/convert/OGCWMCtoISO19139/OGCWMC-OR-OWSC-to-ISO19139.xsl new file mode 100644 index 0000000..9d5eb8d --- /dev/null +++ b/config/schema_plugins/iso19139/convert/OGCWMCtoISO19139/OGCWMC-OR-OWSC-to-ISO19139.xsl @@ -0,0 +1,321 @@ + + + + eng + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ISO 19115:2003/19139 + + + + 1.0 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + OGC:OWS-C + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + WWW:LINK + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/OGCWMCtoISO19139/identification.xsl b/config/schema_plugins/iso19139/convert/OGCWMCtoISO19139/identification.xsl new file mode 100644 index 0000000..49a8f59 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/OGCWMCtoISO19139/identification.xsl @@ -0,0 +1,157 @@ + + + + [Y0001]-[M01]-[D01]T[H01]:[m01]:[s01] + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/OGCWMCtoISO19139/resp-party.xsl b/config/schema_plugins/iso19139/convert/OGCWMCtoISO19139/resp-party.xsl new file mode 100644 index 0000000..b289ffa --- /dev/null +++ b/config/schema_plugins/iso19139/convert/OGCWMCtoISO19139/resp-party.xsl @@ -0,0 +1,134 @@ + + + + + + + + + + + + + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/ThreddsCatalog-to-ISO19119_ISO19139.xsl b/config/schema_plugins/iso19139/convert/ThreddsCatalog-to-ISO19119_ISO19139.xsl new file mode 100644 index 0000000..f9e1f9b --- /dev/null +++ b/config/schema_plugins/iso19139/convert/ThreddsCatalog-to-ISO19119_ISO19139.xsl @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/ThreddsDatasetsto19139/CDMCoords-to-ISO19139Keywords.xsl b/config/schema_plugins/iso19139/convert/ThreddsDatasetsto19139/CDMCoords-to-ISO19139Keywords.xsl new file mode 100644 index 0000000..435d4b4 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/ThreddsDatasetsto19139/CDMCoords-to-ISO19139Keywords.xsl @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Data Parameters/Variables following the + conventions + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromDIF-GCMD.xsl b/config/schema_plugins/iso19139/convert/fromDIF-GCMD.xsl new file mode 100644 index 0000000..7b9d2ad --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromDIF-GCMD.xsl @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromESRI-Geosticker.xsl b/config/schema_plugins/iso19139/convert/fromESRI-Geosticker.xsl new file mode 100644 index 0000000..8213b3a --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromESRI-Geosticker.xsl @@ -0,0 +1,139 @@ + + + + + + + + False + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/config/schema_plugins/iso19139/convert/fromISO19115-2.xsl b/config/schema_plugins/iso19139/convert/fromISO19115-2.xsl new file mode 100644 index 0000000..6929a01 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromISO19115-2.xsl @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + http://www.isotc211.org/2005/gmd + http://www.isotc211.org/2005/gmd/gmd.xsd http://www.isotc211.org/2005/srv + http://schemas.opengis.net/iso/19139/20060504/srv/srv.xsd + + + + + + + + + + ISO 19115:2003/19139 + + + + + + + + 1.0 + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromISO19115.xsl b/config/schema_plugins/iso19139/convert/fromISO19115.xsl new file mode 100644 index 0000000..5afb960 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromISO19115.xsl @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromOGCCSWGetCapabilities.xsl b/config/schema_plugins/iso19139/convert/fromOGCCSWGetCapabilities.xsl new file mode 100644 index 0000000..79e2749 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromOGCCSWGetCapabilities.xsl @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromOGCSLD.xsl b/config/schema_plugins/iso19139/convert/fromOGCSLD.xsl new file mode 100644 index 0000000..4dc034f --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromOGCSLD.xsl @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromOGCSOSGetCapabilities.xsl b/config/schema_plugins/iso19139/convert/fromOGCSOSGetCapabilities.xsl new file mode 100644 index 0000000..54b48b4 --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromOGCSOSGetCapabilities.xsl @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromOGCWCSGetCapabilities.xsl b/config/schema_plugins/iso19139/convert/fromOGCWCSGetCapabilities.xsl new file mode 100644 index 0000000..9b693fa --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromOGCWCSGetCapabilities.xsl @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromOGCWFSGetCapabilities.xsl b/config/schema_plugins/iso19139/convert/fromOGCWFSGetCapabilities.xsl new file mode 100644 index 0000000..9b693fa --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromOGCWFSGetCapabilities.xsl @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromOGCWMC-OR-OWSC.xsl b/config/schema_plugins/iso19139/convert/fromOGCWMC-OR-OWSC.xsl new file mode 100644 index 0000000..485e0fc --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromOGCWMC-OR-OWSC.xsl @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromOGCWMSGetCapabilities.xsl b/config/schema_plugins/iso19139/convert/fromOGCWMSGetCapabilities.xsl new file mode 100644 index 0000000..9b693fa --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromOGCWMSGetCapabilities.xsl @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromOGCWPSGetCapabilities.xsl b/config/schema_plugins/iso19139/convert/fromOGCWPSGetCapabilities.xsl new file mode 100644 index 0000000..9b693fa --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromOGCWPSGetCapabilities.xsl @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/fromOGCWxSGetCapabilities.xsl b/config/schema_plugins/iso19139/convert/fromOGCWxSGetCapabilities.xsl new file mode 100644 index 0000000..16c836c --- /dev/null +++ b/config/schema_plugins/iso19139/convert/fromOGCWxSGetCapabilities.xsl @@ -0,0 +1,9 @@ + + + + + + + + diff --git a/config/schema_plugins/iso19139/convert/thesaurus-transformation.xsl b/config/schema_plugins/iso19139/convert/thesaurus-transformation.xsl index 12e4e85..a27b85b 100644 --- a/config/schema_plugins/iso19139/convert/thesaurus-transformation.xsl +++ b/config/schema_plugins/iso19139/convert/thesaurus-transformation.xsl @@ -293,12 +293,15 @@ + select="geonet:add-thesaurus-info($currentThesaurus, $listOfLanguage[1], + $withAnchor, $withThesaurusAnchor, + /root/gui/thesaurus/thesauri, not(/root/request/keywordOnly))"/> + @@ -311,18 +314,28 @@ codeListValue="{$thesauri/thesaurus[key = $currentThesaurus]/dname}"/> + + + + - + - + @@ -330,20 +343,81 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - + + - + - + - + @@ -351,7 +425,7 @@ + codeListValue="creation"/> diff --git a/config/schema_plugins/iso19139/extract-relations.xsl b/config/schema_plugins/iso19139/extract-relations.xsl index 2b27b5e..10e1035 100644 --- a/config/schema_plugins/iso19139/extract-relations.xsl +++ b/config/schema_plugins/iso19139/extract-relations.xsl @@ -34,6 +34,8 @@ xmlns:gmx="http://www.isotc211.org/2005/gmx" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:util="java:org.fao.geonet.util.XslUtil" + xmlns:digestUtils="java:org.apache.commons.codec.digest.DigestUtils" + xmlns:exslt="http://exslt.org/common" xmlns:gn-fn-rel="http://geonetwork-opensource.org/xsl/functions/relations" version="2.0" exclude-result-prefixes="#all"> @@ -85,7 +87,7 @@ - + - + - + + + + + + + + select="gmd:MD_BrowseGraphic/gmd:fileName"/> <xsl:apply-templates mode="get-iso19139-localized-string" - select="gmd:fileDescription"/> + select="gmd:MD_BrowseGraphic/gmd:fileDescription"/> thumbnail @@ -118,48 +126,56 @@ - + - - - - - - - - - - - <xsl:apply-templates mode="get-iso19139-localized-string" - select="gmd:name"/> - - - + + + + + + + + - - - - - - - - - - - - - - - - - - onlinesrc - + + + + + + + + + <xsl:apply-templates mode="get-iso19139-localized-string" + select="gmd:CI_OnlineResource/gmd:name"/> + + + + + + + + + + + + + + + + + + + + + + onlinesrc + + diff --git a/config/schema_plugins/iso19139/formatter/citation/base.xsl b/config/schema_plugins/iso19139/formatter/citation/base.xsl index ac5a5a7..9901fc1 100644 --- a/config/schema_plugins/iso19139/formatter/citation/base.xsl +++ b/config/schema_plugins/iso19139/formatter/citation/base.xsl @@ -22,21 +22,12 @@ - - - - - + + + - - - - - + + + + + + + + + + + + + + + + @@ -81,7 +91,7 @@ ('publication', 'revision')]/ gmd:date/gco:*[. != '']"/> - + @@ -90,35 +100,11 @@ - - - - - - - - - - - - - - ( - - - - - - ) - - - - + *[gmd:role/*/@codeListValue = $publisherRolesList]"/> + + select="'(DOI|WWW:LINK-1.0-http--metadata-URL)'"/> + + diff --git a/config/schema_plugins/iso19139/formatter/datacite/view.xsl b/config/schema_plugins/iso19139/formatter/datacite/view.xsl index 15ea93d..ed2ffd0 100644 --- a/config/schema_plugins/iso19139/formatter/datacite/view.xsl +++ b/config/schema_plugins/iso19139/formatter/datacite/view.xsl @@ -99,6 +99,8 @@ + DataCite 2014 - TODO: Define who is the publisher ? Only one allowed. + publisher is the first distributor contact + or the first point of contact having the role "distributor" --> - + + + + + + + + + + + + + + + + + + + + diff --git a/config/schema_plugins/iso19139/formatter/full_view/view.groovy b/config/schema_plugins/iso19139/formatter/full_view/view.groovy deleted file mode 100644 index c5d141e..0000000 --- a/config/schema_plugins/iso19139/formatter/full_view/view.groovy +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -import iso19139.SummaryFactory - -def isoHandlers = new iso19139.Handlers(handlers, f, env) - -SummaryFactory.summaryHandler({it.parent() is it.parent()}, isoHandlers) - -isoHandlers.addDefaultHandlers() diff --git a/config/schema_plugins/iso19139/formatter/groovy/iso19139/Functions.groovy b/config/schema_plugins/iso19139/formatter/groovy/iso19139/Functions.groovy deleted file mode 100644 index 001291c..0000000 --- a/config/schema_plugins/iso19139/formatter/groovy/iso19139/Functions.groovy +++ /dev/null @@ -1,109 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -package iso19139 - -import org.fao.geonet.domain.ISODate - -import java.text.SimpleDateFormat - -public class Functions { - static final def CHAR_PATTERN = /\W/ - - def handlers; - def f - def env - common.Handlers commonHandlers - - def clean = { text -> - if (text == null) { - return '' - } - def trimmed = text.trim() - if ((trimmed =~ CHAR_PATTERN).matches()) { - trimmed = ''; - } - return trimmed; - } - - def isoUrlText = { el -> - el.'gmd:URL'.text() - } - - def isoAnchorUrlLink = { el -> - el.'gmx:Anchor'['@xlink:href'].text() - } - - def isoAnchorUrlText = { el -> - el.'gmx:Anchor'.text() - } - - def isoText = { el -> - def uiCode2 = '#'+env.lang2.toUpperCase() - def uiCode3 = '#'+env.lang3.toUpperCase() - - def locStrings = el.'**'.findAll{ it.name() == 'gmd:LocalisedCharacterString' && !it.text().isEmpty()} - def ptEl = locStrings.find{(it.'@locale' == uiCode2 || it.'@locale' == uiCode3)} - if (ptEl != null) return ptEl.text() - - def charString = el.'**'.findAll {it.name() == 'gco:CharacterString' && !it.text().isEmpty()} - if (!charString.isEmpty()) return charString[0].text() - if (!locStrings.isEmpty()) return locStrings[0].text() - "" - } - - def dateText = { el -> - - String date = el.'gco:Date'.text() - String dateTime = el.'gco:DateTime'.text() - if (!date.isEmpty()) { - return date; - } else if (!dateTime.isEmpty()){ - ISODate isoDate = new ISODate(dateTime) - return new SimpleDateFormat("dd-MM-yyyy HH:mm:ss").format(isoDate.toDate()) - } - } - /** - * A shortcut for: commonHandlers.func.textEl(node), text)) - * @return - */ - def isoTextEl(node, text) { - return commonHandlers.func.textEl(f.nodeLabel(node), text) - } - - /** - * A shortcut for: commonHandlers.func.wikiTextEl(node), text)) - * @return - */ - def isoWikiTextEl(node, text) { - return commonHandlers.func.wikiTextEl(f.nodeLabel(node), text) - } - - /** - * A shortcut for: commonHandlers.func.textEl(node), text)) - * @return - */ - def isoUrlEl(node, href, text) { - return commonHandlers.func.urlEl(f.nodeLabel(node), href, text) - } -} \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/groovy/iso19139/Handlers.groovy b/config/schema_plugins/iso19139/formatter/groovy/iso19139/Handlers.groovy deleted file mode 100644 index ebc71e3..0000000 --- a/config/schema_plugins/iso19139/formatter/groovy/iso19139/Handlers.groovy +++ /dev/null @@ -1,464 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -package iso19139 - -import org.fao.geonet.api.records.formatters.groovy.Environment -import org.fao.geonet.api.records.formatters.groovy.MapConfig - -public class Handlers { - protected org.fao.geonet.api.records.formatters.groovy.Handlers handlers; - protected org.fao.geonet.api.records.formatters.groovy.Functions f - protected Environment env - Matchers matchers - iso19139.Functions isofunc - common.Handlers commonHandlers - List packageViews - String rootEl = 'gmd:MD_Metadata' - - public Handlers(handlers, f, env) { - this.handlers = handlers - this.f = f - this.env = env - commonHandlers = new common.Handlers(handlers, f, env) - isofunc = new iso19139.Functions(handlers: handlers, f:f, env:env, commonHandlers: commonHandlers) - matchers = new Matchers(handlers: handlers, f:f, env:env) - packageViews = [ - 'gmd:identificationInfo', 'gmd:metadataMaintenance', 'gmd:metadataConstraints', 'gmd:spatialRepresentationInfo', - 'gmd:distributionInfo', 'gmd:applicationSchemaInfo', 'gmd:dataQualityInfo', 'gmd:portrayalCatalogueInfo', - 'gmd:contentInfo', 'gmd:metadataExtensionInfo', 'gmd:referenceSystemInfo', rootEl] - } - - def addDefaultHandlers() { - handlers.add name: 'Text Elements', select: matchers.isTextEl, isoTextEl - handlers.add name: 'Simple Text Elements', select: matchers.isSimpleTextEl, isoSimpleTextEl - handlers.add name: 'URL Elements', select: matchers.isUrlEl, isoUrlEl - handlers.add name: 'Anchor URL Elements', select: matchers.isAnchorUrlEl, isoAnchorUrlEl - handlers.add name: 'Simple Elements', select: matchers.isBasicType, isoBasicType - handlers.add name: 'Boolean Elements', select: matchers.isBooleanEl, isoBooleanEl - handlers.add name: 'CodeList Elements', select: matchers.isCodeListEl, isoCodeListEl - handlers.add name: 'Date Elements', select: matchers.isDateEl, dateEl - handlers.add name: 'Format Elements', select: matchers.isFormatEl, group: true, formatEls - handlers.add name: 'Keyword Elements', select: 'gmd:descriptiveKeywords', group:true, keywordsEl - handlers.add name: 'ResponsibleParty Elements', select: matchers.isRespParty, pointOfContactEl - handlers.add name: 'Graphic Overview', select: 'gmd:graphicOverview', group: true, graphicOverviewEl - handlers.add name: 'Dataset URI', select: 'gmd:dataSetURI', isoDatasetUriEl - handlers.add select: 'gmd:language', group: false, isoLanguageEl - handlers.add select: matchers.isCiOnlineResourceParent, group: true, onlineResourceEls - handlers.add select: 'srv:coupledResource', group: true, coupledResourceEls - handlers.add select: 'srv:containsOperations', group: true, containsOperationsEls - handlers.add name: 'gmd:topicCategory', select: 'gmd:topicCategory', group: true, { elems -> - def listItems = elems.findAll{!it.text().isEmpty()}.collect {f.codelistValueLabel("MD_TopicCategoryCode", it.text())}; - handlers.fileResult("html/list-entry.html", [label:f.nodeLabel(elems[0]), listItems: listItems]) - } - - handlers.skip name: "skip date parent element", select: matchers.hasDateChild, {it.children()} - handlers.skip name: "skip codelist parent element", select: matchers.hasCodeListChild, {it.children()} - handlers.skip name: "skip containers: " + matchers.skipContainers, select: matchers.isSkippedContainer, {it.children()} - - handlers.add select: 'gmd:locale', group: true, localeEls - handlers.add 'gmd:CI_Date', ciDateEl - handlers.add 'gmd:CI_Citation', citationEl - handlers.add name: 'Root Element', select: matchers.isRoot, rootPackageEl - - handlers.add name: 'identificationInfo elements', select: {it.parent().name() == 'gmd:identificationInfo'}, commonHandlers.entryEl(f.&nodeLabel, {el -> 'gmd_identificationInfo'}) - handlers.add name: 'Container Elements', select: matchers.isContainerEl, priority: -1, commonHandlers.entryEl(f.&nodeLabel, addPackageViewClass) - - commonHandlers.addDefaultStartAndEndHandlers(); - addExtentHandlers() - - handlers.sort name: 'Text Elements', select: matchers.isContainerEl, priority: -1, sortContainerEl - } - - def sortContainerEl = {el1, el2 -> - def v1 = matchers.isContainerEl(el1) ? 1 : -1; - def v2 = matchers.isContainerEl(el2) ? 1 : -1; - return v1 - v2 - } - def addPackageViewClass = {el -> if (packageViews.contains(el.name())) return el.name().replace(':', '_')} - - def addExtentHandlers() { - handlers.add commonHandlers.matchers.hasChild('gmd:EX_Extent'), commonHandlers.flattenedEntryEl({it.'gmd:EX_Extent'}, f.&nodeLabel) - handlers.add name: 'BBox Element', select: matchers.isBBox, bboxEl(false) - handlers.add name: 'Polygon Element', select: matchers.isPolygon, polygonEl(false) - handlers.add 'gmd:geographicElement', commonHandlers.processChildren{it.children()} - handlers.add 'gmd:extentTypeCode', extentTypeCodeEl - } - - def isoTextEl = { isofunc.isoTextEl(it, isofunc.isoText(it))} - def isoUrlEl = { isofunc.isoUrlEl(it, isofunc.isoUrlText(it), isofunc.isoUrlText(it))} - def isoAnchorUrlEl = { isofunc.isoUrlEl(it, isofunc.isoAnchorUrlLink(it), isofunc.isoAnchorUrlText(it))} - def isoDatasetUriEl = { isofunc.isoUrlEl(it, isofunc.isoText(it), isofunc.isoText(it))} - def isoCodeListEl = {isofunc.isoTextEl(it, f.codelistValueLabel(it))} - def isoBasicType = {isofunc.isoTextEl(it, it.'*'.text())} - def isoSimpleTextEl = { isofunc.isoTextEl(it, it.text()) } - def isoSimpleTextElGrouped = { elems -> - def listItems = elems.findAll{!it.text().isEmpty()}.collect {it.text()}; - handlers.fileResult("html/list-entry.html", [label:f.nodeLabel(elems[0]), listItems: listItems]) - } - def parseBool(text) { - switch (text.trim().toLowerCase()){ - case "1": - case "true": - case "y": - return true; - default: - return false; - } - } - def isoBooleanEl = {isofunc.isoTextEl(it, parseBool(it.'*'.text()).toString())} - def dateEl = {isofunc.isoTextEl(it, isofunc.dateText(it));} - def extentTypeCodeEl = { - isofunc.isoTextEl(it, parseBool(it.text()) ? 'include' : 'excluded') - } - def ciDateEl = { - if(matchers.isDateEl(it.'gmd:date')) { - def dateType = f.codelistValueLabel(it.'gmd:dateType'.'gmd:CI_DateTypeCode') - commonHandlers.func.textEl(dateType, isofunc.dateText(it.'gmd:date')); - } - } - def localeEls = { els -> - def locales = [] - els.each { - it.'gmd:PT_Locale'.each { loc -> - locales << [ - language: f.codelistValueLabel(loc.'gmd:languageCode'.'gmd:LanguageCode'), - charset: f.codelistValueLabel(loc.'gmd:characterEncoding'.'gmd:MD_CharacterSetCode') - ] - } - } - handlers.fileResult("html/locale.html", [ - label: f.nodeLabel(els[0]), - locales: locales - ]) - } - def isoLanguageEl = { language -> - def lang; - if (!language.'gmd:LanguageCode'.isEmpty()) { - lang = f.codelistValueLabel(language.'gmd:LanguageCode') - } else { - lang = f.translateLanguageCode(language.text()); - } - - commonHandlers.func.textEl(f.nodeLabel(language), lang); - } - def containsOperationsEls = { els -> - StringBuilder builder = new StringBuilder(); - els.'*'.each{op -> - builder.append(handlers.processElements(op)); - } - - return handlers.fileResult('html/2-level-entry.html', [label: f.nodeLabel(els[0]), childData: builder.toString()]) - } - - def onlineResourceEls = { els -> - def links = [] - els.each {it.'gmd:CI_OnlineResource'.each { link -> - def model = [ - href : isofunc.isoUrlText(link.'gmd:linkage'), - name : isofunc.clean(isofunc.isoText(link.'gmd:name')), - desc : isofunc.clean(isofunc.isoText(link.'gmd:description')) - ] - if (model.href != '' || model.name != '' || model.desc != '') { - links << model; - } - }} - - if (links.isEmpty()) { - return '' - } else { - handlers.fileResult('html/online-resource.html', [ - label: f.nodeLabel(els[0]), - links: links - ]) - } - } - - def coupledResourceEls = { els -> - def resources = com.google.common.collect.ArrayListMultimap.create() - - def resolveResource = { el -> - def resource = el.'srv:SV_CoupledResource' - if (resource.isEmpty()) { - resource = el - } - resource - } - - els.each {el -> - def resource = resolveResource(el) - def opName = resource.'srv:operationName'.text() - def identifier = resource.'srv:identifier'.text() - def scopedName = resource.'gco:ScopedName'.text() - - def tip, href, cls; - if (identifier.trim().isEmpty()) { - href = "javascript:alert('" + this.f.translate("noUuidInLink") + "');" - tip = this.f.translate("noUuidInLink") - cls = 'text-muted' - } else { - href = env.localizedUrl + 'display#/' + identifier + '/formatters/full_view/' - tip = href - } - def category = opName.trim().isEmpty() ? 'uncategorized' : opName - resources.put(category, [ - href : href, - tip : tip, - name : scopedName.trim().isEmpty() ? identifier : scopedName, - class: cls - ]); - } - - def label = f.nodeLabel("srv:SV_CoupledResource", null) - if (!els.isEmpty()) { - label = f.nodeLabel(els[0]) - } - - def model = [label: label, resources: resources.asMap()] - handlers.fileResult("html/coupled-resources.html", model) - } - def formatEls = { els -> - def formats = [] as Set - - def resolveFormat = { el -> - def format = el.'gmd:MD_Format' - if (format.isEmpty()) { - format = el - } - format - } - - els.each {el -> - def format = resolveFormat(el) - def valueMap = [:] - format.children().list().each {child -> - if (child.name().equals("gmd:formatDistributor")) { - return; - } - String[] parts = child.name().split(":"); - String name; - if (parts.length == 2) { - name = parts[1] - } else { - name = parts[0] - } - - valueMap.put(name, isofunc.isoText(child)) - } - def distributor = resolveFormat(el).'gmd:formatDistributor'.'gmd:MD_Distributor'.'gmd:distributorContact'.'*' - if (!distributor.text().isEmpty()) { - valueMap.put('formatDistributor', handlers.processElements(distributor)) - } - - formats.add(valueMap) - } - - def label = "format" - if (!els.isEmpty()) { - label = f.nodeLabel(els[0]) - } - - def model = [label: label, formats: formats] - handlers.fileResult("html/format.html", model) - } - def keywordsEl = {keywords -> - def keywordProps = com.google.common.collect.ArrayListMultimap.create() - keywords.collectNested {it.'**'.findAll{it.name() == 'gmd:keyword'}}.flatten().each { k -> - def thesaurusName = isofunc.isoText(k.parent().'gmd:thesaurusName'.'gmd:CI_Citation'.'gmd:title') - - if (thesaurusName.isEmpty()) { - def keywordTypeCode = k.parent().'gmd:type'.'gmd:MD_KeywordTypeCode' - if (!keywordTypeCode.isEmpty()) { - thesaurusName = f.translate("uncategorizedKeywords") - } - } - - if (thesaurusName.isEmpty()) { - thesaurusName = f.translate("noThesaurusName") - } - keywordProps.put(thesaurusName, isofunc.isoText(k)) - } - - return handlers.fileResult('html/keyword.html', [ - label : f.nodeLabel("gmd:descriptiveKeywords", null), - keywords: keywordProps.asMap()]) - } - def isSmallImage(img) { - return img.matches(".+_s\\.\\w+"); - } - def graphicOverviewEl = {graphics -> - def links = [] - def hasLargeGraphic = graphics.find {graphic -> - def url = graphic.'gmd:fileName'.text() - !(url.startsWith("http://") || url.startsWith("https://")) && !isSmallImage(url) - } - graphics.each {it.'gmd:MD_BrowseGraphic'.each { graphic -> - def img = graphic.'gmd:fileName'.text() - String thumbnailUrl; - if (img.startsWith("http://") || img.startsWith("https://")) { - thumbnailUrl = img.replace("&fname", "&fname"); - } else if (!isSmallImage(img) || !hasLargeGraphic) { - thumbnailUrl = env.getLocalizedUrl() + "resources.get?fname=" + img + "&access=public&id=" + env.getMetadataId(); - } - - if (thumbnailUrl != null) { - links << [ - src : thumbnailUrl, - desc: isofunc.isoText(graphic.'gmd:fileDescription') - ] - } - - }} - handlers.fileResult("html/graphic-overview.html", [ - label: f.nodeLabel(graphics[0]), - graphics: links - ]) - } - def citationEl = { el -> - Set processedChildren = ['gmd:title', 'gmd:alternateTitle', 'gmd:identifier', 'gmd:ISBN', 'gmd:ISSN', - 'gmd:date', 'gmd:edition', 'gmd:editionDate', 'gmd:presentationForm'] - - def otherChildren = el.children().findAll { ch -> !processedChildren.contains(ch.name()) } - - def model = [ - title : handlers.processElements([el.'gmd:title']), - altTitle : handlers.processElements([el.'gmd:alternateTitle']), - date : handlers.processElements(el.'gmd:date'.'gmd:CI_Date'), - editionInfo: commonHandlers.func.textEl(el.'gmd:edition'.text(), el.'gmd:editionDate'.'gco:Date'.text()), - identifier : isofunc.isoWikiTextEl(el.'gmd:identifier', el.'gmd:identifier'.'*'.'gmd:code'.join('
    ')), - presentationForm : isofunc.isoTextEl(el.'gmd:presentationForm', f.codelistValueLabel(el.'gmd:presentationForm'.'gmd:CI_PresentationFormCode')), - ISBN : handlers.processElements(el.'gmd:ISBN'), - ISSN : handlers.processElements(el.'gmd:ISSN'), - otherData : handlers.processElements(otherChildren) - ] - return handlers.fileResult("html/citation.html", model) - } - - /** - * El must be a parent of gmd:CI_ResponsibleParty - */ - def pointOfContactEl = { el -> - - def party = el.children().find { ch -> - ch.name() == 'gmd:CI_ResponsibleParty' || ch['@gco:isoType'].text() == 'gmd:CI_ResponsibleParty' - } - - def general = pointOfContactGeneralData(party); - def groups = party.'gmd:contactInfo'.'*'.'*' - - def half = (int) Math.round((groups.size()) / 2) - - def output = commonHandlers.func.isPDFOutput() ? '
    ' : '
    ' - if (commonHandlers.func.isPDFOutput()) { - output += '
    ' - output += '' - } else { - output = '
    ' - output += commonHandlers.func.textColEl(general.toString() + handlers.processElements(groups.take(half - 1)), 6) - output += commonHandlers.func.textColEl(handlers.processElements(groups.drop(half - 1)), 6) - } - - output += commonHandlers.func.isPDFOutput() ? '
    ' + general.toString() + handlers.processElements(groups.take(half - 1)) + '' + handlers.processElements(groups.drop(half - 1)) + '
    ' : '
    ' - - return handlers.fileResult('html/2-level-entry.html', [label: f.nodeLabel(el), childData: output]) - } - - def pointOfContactGeneralData(party) { - def generalChildren = [ - party.'gmd:individualName', - party.'gmd:organisationName', - party.'gmd:positionName', - party.'gmd:role' - ] - handlers.fileResult('html/2-level-entry.html', [label: f.translate('general'), childData: handlers.processElements(generalChildren)]) - } - - def polygonEl(thumbnail) { - return { el -> - MapConfig mapConfig = env.mapConfiguration - def mapproj = mapConfig.mapproj - def background = mapConfig.background - def width = thumbnail? mapConfig.thumbnailWidth : mapConfig.width - def mdId = env.getMetadataId(); - def xpath = f.getXPathFrom(el); - - if (xpath != null) { - def image = "" - - def inclusion = el.'gmd:extentTypeCode'.text() == '0' ? 'exclusive' : 'inclusive'; - - def label = f.nodeLabel(el) + " (" + f.translate(inclusion) + ")" - handlers.fileResult('html/2-level-entry.html', [label: label, childData: image]) - } - } - } - - def bboxEl(thumbnail) { - return { el -> - if (el.parent().'gmd:EX_BoundingPolygon'.text().isEmpty() && - el.parent().parent().'gmd:geographicElement'.'gmd:EX_BoundingPolygon'.text().isEmpty()) { - - def inclusion = el.'gmd:extentTypeCode'.text() == '0' ? 'exclusive' : 'inclusive'; - - def label = f.nodeLabel(el) + " (" + f.translate(inclusion) + ")" - - def replacements = bbox(thumbnail, el) - replacements['label'] = label - replacements['pdfOutput'] = commonHandlers.func.isPDFOutput() - - handlers.fileResult("html/bbox.html", replacements) - } - } - } - - def bbox(thumbnail, el) { - def mapConfig = env.mapConfiguration - if (thumbnail) { - mapConfig.setWidth(mapConfig.thumbnailWidth) - } - - return [ w: el.'gmd:westBoundLongitude'.'gco:Decimal'.text(), - e: el.'gmd:eastBoundLongitude'.'gco:Decimal'.text(), - s: el.'gmd:southBoundLatitude'.'gco:Decimal'.text(), - n: el.'gmd:northBoundLatitude'.'gco:Decimal'.text(), - geomproj: "EPSG:4326", - minwidth: mapConfig.getWidth() / 4, - minheight: mapConfig.getWidth() / 4, - mapconfig: mapConfig - ] - } - def rootPackageEl = { - el -> - def rootPackage = el.children().findAll { ch -> !this.packageViews.contains(ch.name()) } - def otherPackage = el.children().findAll { ch -> this.packageViews.contains(ch.name()) } - - def rootPackageData = handlers.processElements(rootPackage, el); - def otherPackageData = handlers.processElements(otherPackage, el); - - def rootPackageOutput = handlers.fileResult('html/2-level-entry.html', - [label: f.nodeLabel(el), childData: rootPackageData, name: rootEl.replace(":", "_")]) - - return rootPackageOutput.toString() + otherPackageData - } -} diff --git a/config/schema_plugins/iso19139/formatter/groovy/iso19139/Matchers.groovy b/config/schema_plugins/iso19139/formatter/groovy/iso19139/Matchers.groovy deleted file mode 100644 index c83eda1..0000000 --- a/config/schema_plugins/iso19139/formatter/groovy/iso19139/Matchers.groovy +++ /dev/null @@ -1,93 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -package iso19139 - -public class Matchers { - def handlers; - def f - def env - - def isUrlEl = {!it.'gmd:URL'.text().isEmpty()} - def isAnchorUrlEl = {!it.'gmx:Anchor'['@xlink:href'].text().isEmpty()} - def simpleElements = ['gco:Decimal', 'gco:Integer', 'gco:Scale', 'gco:Angle', 'gco:Measure', 'gco:Distance', - 'gmd:MD_PixelOrientationCode', 'gts:TM_PeriodDuration'] - - def skipContainers = [ - 'gmd:CI_Series', 'gmd:MD_ReferenceSystem', 'gmd:identificationInfo', 'gmd:transferOptions', - 'gmd:contactInfo', 'gmd:address', 'gmd:phone', 'gmd:onlineResource', 'gmd:referenceSystemIdentifier', - 'gmd:distributorTransferOptions', 'gmd:resourceMaintenance', 'gmd:resourceConstraints', 'gmd:aggregationInfo', 'gmd:scope', - 'gmd:DQ_DataQuality', 'gmd:lineage', 'gmd:processStep', 'gmd:MD_Distribution', 'gmd:MD_Distributor' - ] - - def isBasicType = {el -> - el.children().size() == 1 && simpleElements.any{!el[it].text().isEmpty()} - } - def isDateEl = {!it.'gco:DateTime'.text().isEmpty() || !it.'gco:Date'.text().isEmpty()} - def isFormatEl = {!it.'gmd:MD_Format'.text().isEmpty() || (it.name() == 'gmd:MD_Format' && !it.text().isEmpty())} - def isBooleanEl = {!it.'gco:Boolean'.text().isEmpty()} - def hasDateChild = {it.children().size() == 1 && it.children().any(isDateEl)} - def isCodeListEl = {!it['@codeListValue'].text().isEmpty()} - def hasCodeListChild = {it.children().size() == 1 && it.children().any(isCodeListEl)} - - def isTextEl = {el -> - !el.'gco:CharacterString'.text().isEmpty() || - !el.'gmd:PT_FreeText'.'gmd:textGroup'.'gmd:LocalisedCharacterString'.text().isEmpty() - } - - def isSimpleTextEl = {el -> - el.children().isEmpty() && !el.text().isEmpty() - } - - def isContainerEl = {el -> - !isBasicType(el) && !isSimpleTextEl(el) && - !isTextEl(el) && !isUrlEl(el) && !isAnchorUrlEl(el) && - !isCodeListEl(el) && !hasCodeListChild(el) && - !isDateEl(el) && !hasDateChild(el) && - !el.children().isEmpty() - //!excludeContainer.any{it == el.name()} - } - - def isRespParty = { el -> - !el.'gmd:CI_ResponsibleParty'.isEmpty() || el.'*'['@gco:isoType'].text() == 'gmd:CI_ResponsibleParty' - } - - def isCiOnlineResourceParent = { el -> - !el.'gmd:CI_OnlineResource'.text().isEmpty() - } - - def isBBox = { el -> - el.name() == 'gmd:EX_GeographicBoundingBox' - } - def isPolygon = { el -> - el.name() == 'gmd:EX_BoundingPolygon' - } - def isRoot = { el -> - el.parent() is el - } - - def isSkippedContainer = { el -> - skipContainers.contains(el.name()) - } - -} diff --git a/config/schema_plugins/iso19139/formatter/groovy/iso19139/SummaryFactory.groovy b/config/schema_plugins/iso19139/formatter/groovy/iso19139/SummaryFactory.groovy deleted file mode 100644 index 5c72c82..0000000 --- a/config/schema_plugins/iso19139/formatter/groovy/iso19139/SummaryFactory.groovy +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -package iso19139 -import org.fao.geonet.api.records.formatters.FormatType -import org.fao.geonet.api.records.formatters.groovy.Environment -import org.fao.geonet.api.records.formatters.groovy.util.* - -import java.util.regex.Pattern - -/** - * Creates the {@link org.fao.geonet.api.records.formatters.groovy.util.Summary} instance for the iso19139 class. - * - * @author Jesse on 11/18/2014. - */ -class SummaryFactory { - def isoHandlers; - org.fao.geonet.api.records.formatters.groovy.Handlers handlers - org.fao.geonet.api.records.formatters.groovy.Functions f - Environment env - - def navBarItems - - /* - * This field can be set by the creator and provided a closure that will be passed the summary object. The closure can - * perform customization for its needs. - */ - Closure summaryCustomizer = null - - SummaryFactory(isoHandlers, summaryCustomizer) { - this.isoHandlers = isoHandlers - this.handlers = isoHandlers.handlers; - this.f = isoHandlers.f; - this.env = isoHandlers.env; - this.navBarItems = ['gmd:identificationInfo', 'gmd:distributionInfo', isoHandlers.rootEl] - this.summaryCustomizer = summaryCustomizer; - } - SummaryFactory(isoHandlers) { - this(isoHandlers, null) - } - - static void summaryHandler(select, isoHandler) { - def factory = new SummaryFactory(isoHandler) - factory.handlers.add name: "Summary Handler", select: select, {factory.create(it).getResult()} - } - - Summary create(metadata) { - - Summary summary = new Summary(this.handlers, this.env, this.f) - - summary.title = this.isoHandlers.isofunc.isoText(metadata.'gmd:identificationInfo'.'*'.'gmd:citation'.'gmd:CI_Citation'.'gmd:title') - summary.abstr = this.isoHandlers.isofunc.isoText(metadata.'gmd:identificationInfo'.'*'.'gmd:abstract').replaceAll("\n", "
    ") - - configureKeywords(metadata, summary) - configureFormats(metadata, summary) - configureExtent(metadata, summary) - configureThumbnails(metadata, summary) - - - LinkBlock linkBlock = new LinkBlock('links', "fa fa-link"); - configureLinks(linkBlock, 'link', false, { - def linkParts = it.split("\\|") - [ - title : isoHandlers.isofunc.clean(linkParts[0]), - desc : isoHandlers.isofunc.clean(linkParts[1]), - href : isoHandlers.isofunc.clean(linkParts[2]), - protocol: isoHandlers.isofunc.clean(linkParts[3]) - ] - }) - - if (!linkBlock.links.isEmpty()) { - summary.links.add(linkBlock) - } - - /* - * TODO fix the xslt transform required by loadHierarchyLinkBlocks when running tests. - */ - if (env.formatType == FormatType.pdf/* || env.formatType == FormatType.testpdf */) { - summary.associated.add(isoHandlers.commonHandlers.loadHierarchyLinkBlocks()) - } else { - summary.associated.add(createDynamicAssociatedHtml(summary)) - } - - def toNavBarItem = {s -> - def name = f.nodeLabel(s, null) - def abbrName = f.nodeTranslation(s, null, "abbrLabel") - new NavBarItem(name, abbrName, '.' + s.replace(':', "_")) - } - summary.navBar = this.isoHandlers.packageViews.findAll{navBarItems.contains(it)}.collect (toNavBarItem) - summary.navBarOverflow = this.isoHandlers.packageViews.findAll{!navBarItems.contains(it)}.collect (toNavBarItem) - summary.navBarOverflow.add(isoHandlers.commonHandlers.createXmlNavBarItem()) - summary.content = this.isoHandlers.rootPackageEl(metadata) - - if (summaryCustomizer != null) { - summaryCustomizer(summary); - } - - return summary - } - - def configureKeywords(metadata, summary) { - def keywords = metadata."**".findAll{it.name() == 'gmd:descriptiveKeywords'} - if (!keywords.isEmpty()) { - summary.keywords = this.isoHandlers.keywordsEl(keywords).toString() - } - } - def configureFormats(metadata, summary) { - def formats = metadata."**".findAll this.isoHandlers.matchers.isFormatEl - if (!formats.isEmpty()) { - summary.formats = this.isoHandlers.formatEls(formats).toString() - } - } - def configureExtent(metadata, summary) { - def extents = metadata."**".findAll { this.isoHandlers.matchers.isPolygon(it) || this.isoHandlers.matchers.isBBox(it) } - def split = extents.split this.isoHandlers.matchers.isPolygon - - def polygons = split[0] - def bboxes = split[1] - - def extent = "" - if (!polygons.isEmpty()) { - extent = this.isoHandlers.polygonEl(true)(polygons[0]).toString() - } else if (!bboxes.isEmpty()) { - extent = this.isoHandlers.bboxEl(true)(bboxes[0]).toString() - } - summary.extent = extent - } - - def configureLinks(linkBlock, indexKey, urlAndTextEquals, objParser) { - Collection links = this.env.indexInfo[indexKey]; - if (links != null && !links.isEmpty()) { - - links.each { link -> - def linkParts = objParser(link) - def title = linkParts.title - def desc = linkParts.desc - def href = linkParts.href - if (title.isEmpty()) { - title = desc; - } - if (title.isEmpty()) { - title = href; - } - - if (href != '') { - def protocol = linkParts.protocol != null ? linkParts.protocol.toLowerCase() : ''; - def linkClass = href.isEmpty() ? 'text-muted' : ''; - - def imagesDir = "../../images/formatter/" - def type; - def icon = ""; - def iconClasses = ""; - if (protocol.contains("kml")) { - type = "kml"; - icon = imagesDir + "kml.png"; - } else if (protocol.contains("wms")) { - type = "wms"; - icon = imagesDir + "wms.png"; - } else if (protocol.contains("download")) { - type = "download"; - iconClasses = "fa fa-download" - } else if (protocol.contains("wfs")) { - type = "wfs"; - icon = imagesDir + "wfs.png"; - } else if (protocol.contains("ogc:")) { - type = "ogc"; - } else { - if (indexKey == 'wms_uri' ) { - type = "wms"; - icon = imagesDir + "wms.png"; - } else { - type = "link"; - iconClasses = "fa fa-link" - } - } - - def linkType = new LinkType(type, null, icon, iconClasses) - - def linkObj = new Link(href, title, linkClass) - if (urlAndTextEquals) { - linkBlock.linkMap.put(linkType, linkObj); - } else { - linkBlock.put(linkType, linkObj) - } - } - } - } - } - - LinkBlock createDynamicAssociatedHtml(Summary summary) { - def associated = "associated-link" - def html = """ - -
    Loading...
    -""" - - LinkBlock linkBlock = new LinkBlock(associated, "fa fa-sitemap") - linkBlock.html = html - return linkBlock; - } - - private static void configureThumbnails(metadata, header) { - def logos = metadata.'gmd:identificationInfo'.'*'.'gmd:graphicOverview'.'gmd:MD_BrowseGraphic'.'gmd:fileName'.'gco:CharacterString' - - logos.each { logo -> - header.addThumbnail(logo.text()) - } - } -} diff --git a/config/schema_plugins/iso19139/formatter/html/citation.html b/config/schema_plugins/iso19139/formatter/html/citation.html deleted file mode 100644 index c947ab7..0000000 --- a/config/schema_plugins/iso19139/formatter/html/citation.html +++ /dev/null @@ -1,40 +0,0 @@ - - -
    -
    - {{title}} - {{altTitle}} - {{date}} - {{editionInfo}} -
    -
    - {{identifier}} - {{presentationForm}} - {{ISBN}} - {{ISSN}} -
    -
    - {{otherData}} -
    -
    diff --git a/config/schema_plugins/iso19139/formatter/html/coupled-resources.html b/config/schema_plugins/iso19139/formatter/html/coupled-resources.html deleted file mode 100644 index d798f9f..0000000 --- a/config/schema_plugins/iso19139/formatter/html/coupled-resources.html +++ /dev/null @@ -1,35 +0,0 @@ - - -
    -
      -
    • - {{opName}} -
        -
      • - -
      • -
      -
    • -
    -
    diff --git a/config/schema_plugins/iso19139/formatter/html/format.html b/config/schema_plugins/iso19139/formatter/html/format.html deleted file mode 100644 index 8d1ca36..0000000 --- a/config/schema_plugins/iso19139/formatter/html/format.html +++ /dev/null @@ -1,47 +0,0 @@ - - -
    -
      -
    • - {{f.name}} ({{f.version}}) -
        -
      • -
        gmd:amendmentNumber
        -
        {{f.amendmentNumber}}
        -
      • -
      • -
        gmd:specification
        -
        {{f.specification}}
        -
      • -
      • -
        gmd:fileDecompressionTechnique
        -
        {{f.fileDecompressionTechnique}}
        -
      • -
      • - {{f.formatDistributor}} -
      • -
      -
    • -
    -
    diff --git a/config/schema_plugins/iso19139/formatter/html/keyword.html b/config/schema_plugins/iso19139/formatter/html/keyword.html deleted file mode 100644 index 4fdd59d..0000000 --- a/config/schema_plugins/iso19139/formatter/html/keyword.html +++ /dev/null @@ -1,33 +0,0 @@ - - -
    -
      -
    • - {{type}} -
        -
      • {{word}}
      • -
      -
    • -
    -
    diff --git a/config/schema_plugins/iso19139/formatter/html/locale.html b/config/schema_plugins/iso19139/formatter/html/locale.html deleted file mode 100644 index 531361f..0000000 --- a/config/schema_plugins/iso19139/formatter/html/locale.html +++ /dev/null @@ -1,30 +0,0 @@ - - -
    -
      -
    • - {{loc.language}} ({{loc.charset}}) -
    • -
    -
    diff --git a/config/schema_plugins/iso19139/formatter/html/online-resource.html b/config/schema_plugins/iso19139/formatter/html/online-resource.html deleted file mode 100644 index fc94f4b..0000000 --- a/config/schema_plugins/iso19139/formatter/html/online-resource.html +++ /dev/null @@ -1,30 +0,0 @@ - - -
    -
      -
    • - -
    • -
    -
    diff --git a/config/schema_plugins/iso19139/formatter/html/single-resource.html b/config/schema_plugins/iso19139/formatter/html/single-resource.html deleted file mode 100644 index 1dc9d60..0000000 --- a/config/schema_plugins/iso19139/formatter/html/single-resource.html +++ /dev/null @@ -1,32 +0,0 @@ - - - - - {{link.name | escapeXmlContent}} - {{link.href | escapeXmlContent}} - - {{link.name | escapeXmlContent}} - - {{link.desc | escapeXmlContent}} - diff --git a/config/schema_plugins/iso19139/formatter/iso19115-3.2018/view.xsl b/config/schema_plugins/iso19139/formatter/iso19115-3.2018/view.xsl new file mode 100644 index 0000000..a432e41 --- /dev/null +++ b/config/schema_plugins/iso19139/formatter/iso19115-3.2018/view.xsl @@ -0,0 +1,6 @@ + + + + diff --git a/config/schema_plugins/iso19139/formatter/jsonld/iso19139-to-jsonld.xsl b/config/schema_plugins/iso19139/formatter/jsonld/iso19139-to-jsonld.xsl index 310d01c..20e654c 100644 --- a/config/schema_plugins/iso19139/formatter/jsonld/iso19139-to-jsonld.xsl +++ b/config/schema_plugins/iso19139/formatter/jsonld/iso19139-to-jsonld.xsl @@ -248,9 +248,9 @@ { "@type":"DataDownload", - "contentUrl":"" + "contentUrl":"" , - "encodingFormat":"" + "encodingFormat":"" , "name": { , diff --git a/config/schema_plugins/iso19139/formatter/loc/ca-strings.json b/config/schema_plugins/iso19139/formatter/loc/ca-strings.json deleted file mode 100644 index 504e3f8..0000000 --- a/config/schema_plugins/iso19139/formatter/loc/ca-strings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "general": "General", - "kml-link": "Arxiu KML per descarregar", - "link-link": "Enllaç", - "download-link": "Descarregar", - "ogc-link": "Enllaços WxS", - "noFormatName": "No s'ha proporcionat cap nom de format", - "noThesaurusName": "Sense nom de tesaure", - "wms-link": "Servidor Web de Mapes", - "associated-link": "Associat", - "children-link": "Fill", - "datasets-link": "Conjunt de dades", - "hasfeaturecat-link": "Catàleg de Features", - "fcats-link": "Catàleg de Features", - "parent-link": "Pare", - "related-link": "Relacionats", - "services-link": "Servei", - "siblings-link": "Germà", - "sources-link": "Origen", - "hassource-link": "Origen", - "source-link": "Origen", - "largerWorkCitation-link": "Citació de treball ampliat", - "isTemporalStatOf-link": "Estat temporal", - "stereoMate-link": "Par estereogràfic", - "crossReference-link": "Referència creuada", - "partOfSeamlessDatabase-link": "Part d'una base de dades", - "isDescriptionOf-link": "Descripció", - "inclusive": "Inclusiu", - "exclusive": "Exclusiu" -} \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/loc/en-strings.json b/config/schema_plugins/iso19139/formatter/loc/en-strings.json deleted file mode 100644 index 14bd962..0000000 --- a/config/schema_plugins/iso19139/formatter/loc/en-strings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "general": "General", - "kml-link": "KML File for download", - "link-link": "Link", - "download-link": "Download", - "ogc-link": "WxS Links", - "noFormatName": "No format name provided", - "noThesaurusName": "No Thesaurus Name", - "wms-link": "Web Map Server", - "associated-link": "Associated", - "children-link": "Child", - "datasets-link": "Dataset", - "hasfeaturecat-link": "Feature Catalog", - "fcats-link": "Feature Catalog", - "parent-link": "Parent", - "related-link": "Related", - "services-link": "Service", - "siblings-link": "Sibling", - "sources-link": "Source", - "hassource-link": "Source", - "source-link": "Source", - "largerWorkCitation-link": "Larger Work Citation", - "isTemporalStatOf-link": "Temporal state", - "stereoMate-link": "Stereo mate", - "crossReference-link": "Cross Reference", - "partOfSeamlessDatabase-link": "Part of Seamless Database", - "isDescriptionOf-link": "Description", - "inclusive" : "Inclusive", - "exclusive" : "Exclusive" -} \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/loc/es-strings.json b/config/schema_plugins/iso19139/formatter/loc/es-strings.json deleted file mode 100644 index d3f31ce..0000000 --- a/config/schema_plugins/iso19139/formatter/loc/es-strings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "general": "General", - "kml-link": "Fichero KML para descargar", - "link-link": "Enlace", - "download-link": "Descargar", - "ogc-link": "Enlaces WxS", - "noFormatName": "No se ha añadido un nombre de formato", - "noThesaurusName": "Sin Nombre de Tesauro", - "wms-link": "Servidor Web Map", - "associated-link": "Asociado", - "children-link": "Hijo", - "datasets-link": "Conjunto de datos", - "hasfeaturecat-link": "Catálogo de Features", - "fcats-link": "Catálogo de Features", - "parent-link": "Padre", - "related-link": "Relacionados", - "services-link": "Servicio", - "siblings-link": "Hermano", - "sources-link": "Origen", - "hassource-link": "Origen", - "source-link": "Origen", - "largerWorkCitation-link": "Cita de trabajo ampliada", - "isTemporalStatOf-link": "Estado temporal", - "stereoMate-link": "Compañero estéreo", - "crossReference-link": "Referencia cruzada", - "partOfSeamlessDatabase-link": "Parte de la base de datos original", - "isDescriptionOf-link": "Descripción", - "inclusive": "Inclusivo", - "exclusive": "Exclusivo" -} \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/loc/fr-strings.json b/config/schema_plugins/iso19139/formatter/loc/fr-strings.json deleted file mode 100644 index a4f411d..0000000 --- a/config/schema_plugins/iso19139/formatter/loc/fr-strings.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "general": "Général", - "kml-link": "Fichier KML pour téléchargement", - "link-link": "Lien", - "noFormatName": "Aucun nom de format", - "noThesaurusName": "Pas de nom de thésaurus", - "wms-link": "Serveur Web Map", - "associated-link": "Ressources associées", - "children-link": "Enfant", - "datasets-link": "Données", - "hasfeaturecat-link": "Catalogue d'attributs", - "fcats-link": "Catalogue d'attributs", - "parent-link": "Parent", - "related-link": "Associé", - "services-link": "Service", - "siblings-link": "Frères et soeurs", - "sources-link": "Source", - "hassource-link": "Source", - "source-link": "Source", - "largerWorkCitation-link": "Référence mère", - "isTemporalStatOf-link": "Temporal state", - "stereoMate-link": "Stéréo restitution", - "crossReference-link": "Référence croisée", - "partOfSeamlessDatabase-link": "Partie d'une même base de données", - "isDescriptionOf-link": "Description" -} \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/loc/ge-strings.json b/config/schema_plugins/iso19139/formatter/loc/ge-strings.json deleted file mode 100644 index 0aa9a9f..0000000 --- a/config/schema_plugins/iso19139/formatter/loc/ge-strings.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "general": "Allgemein", - "kml-link": "KML Datei zum herunterladen", - "link-link": "Verknüpfung", - "noFormatName": "Kein Formatname bereitgestellt", - "noThesaurusName": "Kein Thesaurus Name", - "wms-link": "Web Map Server", - "associated-link": "Verbunden", - "children-link": "Kinder", - "datasets-link": "Datenbestand", - "hasfeaturecat-link": "Feature-Katalog", - "fcats-link": "Feature-Katalog", - "parent-link": "Eltern", - "related-link": "Verwandt", - "services-link": "Dienst", - "siblings-link": "Geschwister", - "sources-link": "Quellen", - "hassource-link": "Quellen", - "source-link": "Quellen", - "largerWorkCitation-link": "Übergeordneter Datenbestand", - "isTemporalStatOf-link": "Temporal state", - "stereoMate-link": "Stereobild", - "crossReference-link": "Querverweis", - "partOfSeamlessDatabase-link": "Komponente", - "isDescriptionOf-link": "Description" -} \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/loc/it-strings.json b/config/schema_plugins/iso19139/formatter/loc/it-strings.json deleted file mode 100644 index afa5027..0000000 --- a/config/schema_plugins/iso19139/formatter/loc/it-strings.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "general": "Generale", - "kml-link": "File KML per il download", - "link-link": "Collegamento", - "noFormatName": "Nome formato non fornito", - "noThesaurusName": "Nome Thesaurus non fornito", - "wms-link": "Web Map Server", - "associated-link": "Associated", - "children-link": "Child", - "datasets-link": "Dataset", - "hasfeaturecat-link": "Feature Catalog", - "fcats-link": "Feature Catalog", - "parent-link": "Parent", - "related-link": "Related", - "services-link": "Servizio", - "siblings-link": "Sibling", - "sources-link": "Source", - "hassource-link": "Source", - "source-link": "Source", - "largerWorkCitation-link": "Riferimento a dataset principale", - "isTemporalStatOf-link": "Temporal state", - "stereoMate-link": "Accoppiamento stereo", - "crossReference-link": "Riferimento incrociato", - "partOfSeamlessDatabase-link": "Parte del database senza soluzione di continuità", - "isDescriptionOf-link": "Description" -} \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/loc/ko-strings.json b/config/schema_plugins/iso19139/formatter/loc/ko-strings.json deleted file mode 100644 index 22ac1d9..0000000 --- a/config/schema_plugins/iso19139/formatter/loc/ko-strings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "general": "일반", - "kml-link": "다운로드할 KML 파일", - "link-link": "링크", - "noFormatName": "제공된 포맷 이름이 없음", - "noThesaurusName": "분류어사전 이름 없음", - "wms-link": "Web Map Service URL" -} \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/loc/nl-strings.json b/config/schema_plugins/iso19139/formatter/loc/nl-strings.json deleted file mode 100644 index 92b5d9b..0000000 --- a/config/schema_plugins/iso19139/formatter/loc/nl-strings.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "general": "Algemeen", - "kml-link": "KML bestand voor download", - "link-link": "Link", - "noFormatName": "Formaatnaam niet gegeven", - "noThesaurusName": "Geen Thesaurus Naam", - "wms-link": "Web Map Server URL's" -} \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/loc/sk-strings.json b/config/schema_plugins/iso19139/formatter/loc/sk-strings.json deleted file mode 100644 index 3076b5e..0000000 --- a/config/schema_plugins/iso19139/formatter/loc/sk-strings.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "general": "Veobecn", - "kml-link": "KML Sbor na stiahnutie", - "link-link": "Odkaz", - "download-link": "Odkaz na stiahnutie", - "ogc-link": "WxS Odkazy", - "noFormatName": "iadny formt poskytujci meno", - "noThesaurusName": "iadny Thesaurus meno", - "wms-link": "Webov Mapov Sluba", - "associated-link": "Spojen", - "children-link": "Dedin link", - "datasets-link": "dajov link", - "hasfeaturecat-link": "Atribtov katalg", - "fcats-link": "Atribtov katalg", - "parent-link": "Rodiovsk odkaz", - "related-link": "Prbuzn odkaz", - "services-link": "Odkaz na slubu", - "siblings-link": "Nasledujci odkaz", - "sources-link": "Zdrojov odkaz", - "hassource-link": "Zdroj", - "source-link": "Zdrojov odkaz", - "largerWorkCitation-link": "Odkaz na citciu", - "isTemporalStatOf-link": "Odkaz na doasn stav", - "stereoMate-link": "Odkaz na partnera", - "crossReference-link": "Krov odvolvka", - "partOfSeamlessDatabase-link": "as databzy", - "isDescriptionOf-link": "Popis", - "inclusive" : "Vrtane", - "exclusive" : "Vhradne" -} \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/partial_view/config.properties b/config/schema_plugins/iso19139/formatter/partial_view/config.properties deleted file mode 100644 index bdd6f5e..0000000 --- a/config/schema_plugins/iso19139/formatter/partial_view/config.properties +++ /dev/null @@ -1,24 +0,0 @@ -# -# Copyright (C) 2001-2016 Food and Agriculture Organization of the -# United Nations (FAO-UN), United Nations World Food Programme (WFP) -# and United Nations Environment Programme (UNEP) -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or (at -# your option) any later version. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA -# -# Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, -# Rome - Italy. email: geonetwork@osgeo.org -# - -published=false \ No newline at end of file diff --git a/config/schema_plugins/iso19139/formatter/partial_view/view.groovy b/config/schema_plugins/iso19139/formatter/partial_view/view.groovy deleted file mode 100644 index 1f10de4..0000000 --- a/config/schema_plugins/iso19139/formatter/partial_view/view.groovy +++ /dev/null @@ -1,28 +0,0 @@ -/* - * Copyright (C) 2001-2016 Food and Agriculture Organization of the - * United Nations (FAO-UN), United Nations World Food Programme (WFP) - * and United Nations Environment Programme (UNEP) - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or (at - * your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA - * - * Contact: Jeroen Ticheler - FAO - Viale delle Terme di Caracalla 2, - * Rome - Italy. email: geonetwork@osgeo.org - */ - -def isoHandlers = new iso19139.Handlers(handlers, f, env) - -isoHandlers.addDefaultHandlers() -handlers.start {} -handlers.end {} diff --git a/config/schema_plugins/iso19139/formatter/xsl-view/view.xsl b/config/schema_plugins/iso19139/formatter/xsl-view/view.xsl index 73b8ca5..65dc278 100644 --- a/config/schema_plugins/iso19139/formatter/xsl-view/view.xsl +++ b/config/schema_plugins/iso19139/formatter/xsl-view/view.xsl @@ -88,7 +88,7 @@ @@ -120,8 +120,8 @@

    - - + +

    @@ -160,8 +160,9 @@ - - + + @@ -172,8 +173,9 @@ - - + + @@ -193,8 +195,8 @@

    - - + +

    @@ -204,9 +206,7 @@ - - +
    @@ -215,26 +215,33 @@

    - - + +

    - - {$schemaStrings/overview} - - -
    - - - -
    -
    + + +
    + {$schemaStrings/overview} + + +
    + + + +
    +
    +
    @@ -290,10 +297,10 @@
    - Cite +
    -

    +

    @@ -335,7 +342,7 @@
    - citation +
    @@ -361,7 +368,7 @@ -
    +
    @@ -383,7 +390,7 @@ -
    +
    @@ -432,7 +439,7 @@
    - +
    @@ -526,7 +533,7 @@

    -
    +
    @@ -544,8 +551,10 @@ + match="gmd:EX_GeographicBoundingBox[gmd:eastBoundLongitude/gco:Decimal castable as xs:double + and gmd:southBoundLatitude/gco:Decimal castable as xs:double + and gmd:westBoundLongitude/gco:Decimal castable as xs:double + and gmd:northBoundLatitude/gco:Decimal castable as xs:double]"> -
    +
    @@ -622,16 +632,16 @@ - + - - - + - + - + - + () @@ -648,7 +658,7 @@
    - + @@ -657,18 +667,23 @@   - + - +
    - +
    - + , @@ -692,7 +707,7 @@ - + @@ -702,7 +717,7 @@ - + @@ -711,7 +726,7 @@ - + @@ -741,7 +756,7 @@ - + @@ -777,17 +792,17 @@ - + - ( + ( ) -

    +

    @@ -822,7 +837,7 @@ select="*/gmd:version"/>
    -

    +

    @@ -927,7 +942,7 @@ select="*/gmd:name"/> () -

    +

    @@ -1016,8 +1031,8 @@

  • - - + + @@ -1042,24 +1057,21 @@ - - - - - - - - - + + + + + + - @@ -1068,25 +1080,17 @@ + + + + + + + - - - - - - - - - - - - - - - @@ -1148,7 +1152,10 @@ -   + +   @@ -1185,7 +1192,7 @@ {$label} - + @@ -1195,7 +1202,7 @@ - + @@ -1210,7 +1217,7 @@ - + @@ -1221,21 +1228,21 @@ |gml:endPosition[matches(., '[0-9]{4}-[0-9]{2}-[0-9]{2}')] |gml:begin[matches(., '[0-9]{4}-[0-9]{2}-[0-9]{2}')] |gml:end[matches(., '[0-9]{4}-[0-9]{2}-[0-9]{2}')]"> - + - + - + @@ -1305,7 +1312,7 @@ - + + select="if ($name != '') then $name + else if ($mail != '') then $mail else ''"/> + { - "default": "" + "default": "" ,"lang": "" + ]/@value"/>": "" } @@ -120,11 +122,11 @@ |gmd:description/gmd:PT_FreeText/*/gmd:LocalisedCharacterString[. != ''] )[1])"/> { - "default": "" + "default": "" ,"lang": "" + ]/@value"/>": "" } @@ -134,7 +136,7 @@ select="concat('S:', .//gmd:southBoundLatitude/*/text(), ', W:', .//gmd:westBoundLongitude/*/text(), ', N:', .//gmd:northBoundLatitude/*/text(), ', E:',.//gmd:eastBoundLongitude/*/text())"/> { - "default": "" + "default": "" } @@ -151,7 +153,7 @@ then gmd:name/gco:CharacterString else concat(gmd:name/gco:CharacterString, ' ', gmd:version/gco:CharacterString)"/> { - "default": "" + "default": "" } @@ -166,7 +168,7 @@ string-join(gmd:MD_LegalConstraints/gmd:otherConstraints/*/text(), ', '))"/> { - "default": "" + "default": "" } @@ -179,7 +181,7 @@ { - "default": "" + "default": "" } diff --git a/config/schema_plugins/iso19139/index-fields/index.xsl b/config/schema_plugins/iso19139/index-fields/index.xsl index e742ffe..37b3dc0 100644 --- a/config/schema_plugins/iso19139/index-fields/index.xsl +++ b/config/schema_plugins/iso19139/index-fields/index.xsl @@ -29,10 +29,12 @@ xmlns:gco="http://www.isotc211.org/2005/gco" xmlns:srv="http://www.isotc211.org/2005/srv" xmlns:gml="http://www.opengis.net/gml/3.2" - xmlns:gml31="http://www.opengis.net/gml" + xmlns:gml320="http://www.opengis.net/gml" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:gn-fn-index="http://geonetwork-opensource.org/xsl/functions/index" xmlns:index="java:org.fao.geonet.kernel.search.EsSearchManager" + xmlns:digestUtils="java:org.apache.commons.codec.digest.DigestUtils" + xmlns:exslt="http://exslt.org/common" xmlns:util="java:org.fao.geonet.util.XslUtil" xmlns:date-util="java:org.fao.geonet.utils.DateUtil" xmlns:daobs="http://daobs.org" @@ -233,6 +235,7 @@ + - Warning / Keyword not found in . + + { + "string": "indexingErrorMsg-keywordNotFoundInThesaurus", + "type": "warning", + "values": { + "keyword": "", + "thesaurus": "" + } + } + @@ -600,7 +622,7 @@ - + @@ -621,7 +643,9 @@ - + @@ -648,7 +672,7 @@ @@ -666,7 +690,10 @@ - + + + + + + {"type": "Point", "coordinates": + + @@ -747,11 +778,17 @@ - + + select="gml:beginPosition + |gml:begin/gml:TimeInstant/gml:timePosition + |gml320:beginPosition + |gml320:begin/gml320:TimeInstant/gml320:timePosition"/> + select="gml:endPosition + |gml:end/gml:TimeInstant/gml:timePosition + |gml320:endPosition + |gml320:end/gml320:TimeInstant/gml320:timePosition"/> @@ -775,14 +812,29 @@ } - Warning / Field resourceTemporalDateRange / Lower and upper bounds empty or not valid dates. Date range not indexed. + + { + "string": "indexingErrorMsg-invalidBounds", + "type": "warning", + "values": { } + } + - Warning / Field resourceTemporalDateRange / Lower range bound '' can not be greater than upper bound ''. + + { + "string": "indexingErrorMsg-temporalRangeLowerGreaterThanUpper", + "type": "warning", + "values": { + "lowerBound": "", + "upperBound": "" + } + } + @@ -797,12 +849,15 @@ - { - "gte": "" - - ,"lte": "" - - } + + { + "gte": + + ,"lte": + + } + @@ -824,14 +879,10 @@ - - - - - + + + + @@ -851,10 +902,10 @@ { - "code": "", - "codeSpace": "", - "name": "", - "url": "" + "code": "", + "codeSpace": "", + "name": "", + "url": "" } @@ -884,15 +935,15 @@ { - "title": "", - + "title": "", + "date": "", "link": "", - "explanation": "", + "explanation": "", "pass": "" } @@ -919,7 +970,7 @@ then 'remote' else 'catalog'"/>", "to": "", - "title": "", + "title": "", "url": "" } @@ -942,7 +993,7 @@ then 'remote' else 'catalog'"/>", "to": "", - "title": "", + "title": "", "url": "" } @@ -951,53 +1002,120 @@ gmd:statement, $allLanguages)"/> - + + select="(../../gmd:nameOfMeasure/gco:CharacterString)[1]"/> + select="(gmd:value)[1]"/> + select="(gmd:valueUnit//(gml:identifier|gml320:identifier))[1]"/> + select="(../../gmd:measureDescription/gco:CharacterString)[1]"/> + { - "name": "", + "name": "", - "description": "", + "description": "", + + + "date": "", - "value": "", + "value": "", - "unit": "", + "unit": "", "type": "" } - + + + + + { + "descriptionObject": + + ,"date": "" + + + ,"source": [ + + { + "descriptionObject": + } + , + + ] + + + + + + ,"processor": [ + + { + "organisationObject": + + ,"individual":"" + + } + , + + ] + + } + + + + + + + + + + select="gmd:distributionFormat/*/gmd:name/*[. != '']"> + + + + + + @@ -1006,14 +1124,16 @@ + select="util:escapeForJson((gmd:name/*/text())[1])"/> - - - + + + + + @@ -1021,17 +1141,30 @@ { - "protocol":"", + "hash": "", + "idx": , + "protocol":"", "mimeType":"", - "url":"", - "name":"", - "description":"", + "urlObject":{ + "default": "", + "lang": ""}, + + "nameObject": , + + + "descriptionObject": , + + + "nilReason": "", + "function":"", - "applicationProfile":"", + "applicationProfile":"", "group": } - + @@ -1114,17 +1247,6 @@ - - - - - - - @@ -1136,14 +1258,15 @@ + + select="*[1]/gmd:organisationName[1]" + as="node()?"/> + + + + + - - - - - - + + + - { - "organisation":"", + + "organisationObject": , + "role":"", - "email":"", - "website":"", - "logo":"", - "individual":"", - "position":"", - "phone":"", - "address":"" + "email":"", + "website":"", + "logo":"", + "individual":"", + "position":"", + "phone":"", + "address":"" + + ,"nilReason": "" + } @@ -1201,7 +1335,7 @@ + regex=".*[i|I][d|D]=([a-zA-Z0-9\-\.\{{\}}]*).*"> @@ -1279,7 +1413,7 @@ - + diff --git a/config/schema_plugins/iso19139/layout/config-editor.xml b/config/schema_plugins/iso19139/layout/config-editor.xml index 46fe1cd..0814dd9 100644 --- a/config/schema_plugins/iso19139/layout/config-editor.xml +++ b/config/schema_plugins/iso19139/layout/config-editor.xml @@ -201,7 +201,7 @@ data-search-action="true" data-popup-action="true" data-template-type="contact" - data-insert-modes="" + data-insert-modes="text,xlink" data-variables="gmd:role/gmd:CI_RoleCode/@codeListValue~{role}"/> @@ -210,7 +210,7 @@ data-search-action="true" data-popup-action="true" data-template-type="contact" - data-insert-modes="" + data-insert-modes="text,xlink" data-variables="gmd:role/gmd:CI_RoleCode/@codeListValue~{role}"/> @@ -219,7 +219,7 @@ data-search-action="true" data-popup-action="true" data-template-type="contact" - data-insert-modes="" + data-insert-modes="text,xlink" data-variables="gmd:role/gmd:CI_RoleCode/@codeListValue~{role}"/> @@ -228,7 +228,7 @@ data-search-action="true" data-popup-action="true" data-template-type="contact" - data-insert-modes="" + data-insert-modes="text,xlink" data-variables="gmd:role/gmd:CI_RoleCode/@codeListValue~{role}"/> @@ -237,7 +237,7 @@ data-search-action="true" data-popup-action="true" data-template-type="contact" - data-insert-modes="" + data-insert-modes="text,xlink" data-variables="gmd:role/gmd:CI_RoleCode/@codeListValue~{role}"/> @@ -296,6 +296,9 @@ gmd:spatialRepresentationInfo gmd:pointOfContact gmd:contact + gmd:processor + gmd:userContactInfo + gmd:resourceSpecificUsage gmd:graphicOverview gmd:citedResponsibleParty gmd:dataQualityInfo @@ -421,6 +424,7 @@
    +
    @@ -429,6 +433,7 @@ + @@ -438,12 +443,14 @@
    +
    + @@ -515,12 +522,36 @@ + - + + + + + + + + @@ -3170,7 +3201,7 @@ - + + - - - + + + - - - @@ -3291,23 +3334,42 @@ transformations="to-iso19139-keyword-with-anchor"/> --> - - - - - + + - + + + + + + + + @@ -3374,16 +3436,42 @@
    + + + - + + + + + + + + diff --git a/config/schema_plugins/iso19139/layout/dispatcher.xsl b/config/schema_plugins/iso19139/layout/dispatcher.xsl index b1a5c22..d9b1be0 100644 --- a/config/schema_plugins/iso19139/layout/dispatcher.xsl +++ b/config/schema_plugins/iso19139/layout/dispatcher.xsl @@ -49,7 +49,7 @@ - + diff --git a/config/schema_plugins/iso19139/layout/layout-custom-fields-keywords.xsl b/config/schema_plugins/iso19139/layout/layout-custom-fields-keywords.xsl index ce46863..13708cd 100644 --- a/config/schema_plugins/iso19139/layout/layout-custom-fields-keywords.xsl +++ b/config/schema_plugins/iso19139/layout/layout-custom-fields-keywords.xsl @@ -118,11 +118,12 @@ + + select="if ($thesaurusList/thesaurus[@key = substring-after($thesaurusIdentifier, 'geonetwork.thesaurus.')]) + then $thesaurusList/thesaurus[@key = substring-after($thesaurusIdentifier, 'geonetwork.thesaurus.')] + else $listOfThesaurus/thesaurus[title = $thesaurusTitle]"/> @@ -170,12 +171,18 @@ - + + + select="if ($thesaurusList/thesaurus[@key = $thesaurusKey]) + then $thesaurusList/thesaurus[@key = $thesaurusKey] + else if ($listOfThesaurus/thesaurus[key = $thesaurusKey]) + then $listOfThesaurus/thesaurus[key = $thesaurusKey] + else if ($listOfThesaurus/thesaurus[multilingualTitles/multilingualTitle/title = $thesaurusTitle]) + then $listOfThesaurus/thesaurus[multilingualTitles/multilingualTitle/title = $thesaurusTitle] + else $listOfThesaurus/thesaurus[title = $thesaurusTitle]"/> @@ -213,19 +220,35 @@ gmd:keyword//*[@locale = concat('#', $guiLangId)][. != '']/replace(text(), ',', ',,') else gmd:keyword/*[1][. != '']/replace(text(), ',', ',,'), ',')"/> + + + - - + select="if (count($listOfTransformation) > 0) + then string-join($listOfTransformation, ',') + else if ($isXlinkEnabled) + then 'to-iso19139-keyword,to-iso19139-keyword-with-anchor,to-iso19139-keyword-as-xlink' + else 'to-iso19139-keyword,to-iso19139-keyword-with-anchor'"/> + + + select="if (count($listOfTransformation) = 1) + then $listOfTransformation[1] + else if (parent::node()/@xlink:href) + then 'to-iso19139-keyword-as-xlink' + else if (count(gmd:keyword/gmx:Anchor) > 0) + then 'to-iso19139-keyword-with-anchor' + else 'to-iso19139-keyword'"/> + @@ -272,6 +295,8 @@ data-transformations="{$transformations}" data-current-transformation="{$transformation}" data-max-tags="{$maxTags}" + data-browsable="{not($thesaurusConfig/@browsable) + or $thesaurusConfig/@browsable != 'false'}" data-order-by-id="{$orderById}" data-lang="{$metadataOtherLanguagesAsJson}" data-textgroup-only="false"> diff --git a/config/schema_plugins/iso19139/layout/layout-custom-tpl.xsl b/config/schema_plugins/iso19139/layout/layout-custom-tpl.xsl index 1feab1d..0193166 100644 --- a/config/schema_plugins/iso19139/layout/layout-custom-tpl.xsl +++ b/config/schema_plugins/iso19139/layout/layout-custom-tpl.xsl @@ -23,7 +23,9 @@ (1 or @gn:addedObj = 'true') and $isFlatMode]" priority="2000"> - + + + @@ -35,135 +37,6 @@ $isFlatMode]" priority="2000"/> - - - - - - - - - - - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + service diff --git a/config/schema_plugins/iso19139/layout/tpl-rdf.xsl b/config/schema_plugins/iso19139/layout/tpl-rdf.xsl index 8f56650..adf1551 100644 --- a/config/schema_plugins/iso19139/layout/tpl-rdf.xsl +++ b/config/schema_plugins/iso19139/layout/tpl-rdf.xsl @@ -159,7 +159,7 @@ - + - + - + @@ -448,7 +448,7 @@ - + diff --git a/config/schema_plugins/iso19139/layout/utility-tpl.xsl b/config/schema_plugins/iso19139/layout/utility-tpl.xsl index 02b3303..6eac79b 100644 --- a/config/schema_plugins/iso19139/layout/utility-tpl.xsl +++ b/config/schema_plugins/iso19139/layout/utility-tpl.xsl @@ -29,6 +29,7 @@ xmlns:gmx="http://www.isotc211.org/2005/gmx" xmlns:gn-fn-index="http://geonetwork-opensource.org/xsl/functions/index" xmlns:gn="http://www.fao.org/geonetwork" + xmlns:util="java:org.fao.geonet.util.XslUtil" version="2.0" exclude-result-prefixes="#all"> @@ -47,8 +48,8 @@ [ { - "value": "WWW:DOWNLOAD:", - "label": ""} + "value": "WWW:DOWNLOAD:", + "label": ""} , ] diff --git a/config/schema_plugins/iso19139/loc/ara/labels.xml b/config/schema_plugins/iso19139/loc/ara/labels.xml index 1632751..a7b9643 100644 --- a/config/schema_plugins/iso19139/loc/ara/labels.xml +++ b/config/schema_plugins/iso19139/loc/ara/labels.xml @@ -2192,6 +2192,8 @@ + + diff --git a/config/schema_plugins/iso19139/loc/cat/labels.xml b/config/schema_plugins/iso19139/loc/cat/labels.xml index 459e584..f52c2d5 100644 --- a/config/schema_plugins/iso19139/loc/cat/labels.xml +++ b/config/schema_plugins/iso19139/loc/cat/labels.xml @@ -1874,6 +1874,8 @@ + + diff --git a/config/schema_plugins/iso19139/loc/cat/schematron-rules-iso.xml b/config/schema_plugins/iso19139/loc/cat/schematron-rules-iso.xml index c5b951c..9b9e60d 100644 --- a/config/schema_plugins/iso19139/loc/cat/schematron-rules-iso.xml +++ b/config/schema_plugins/iso19139/loc/cat/schematron-rules-iso.xml @@ -196,6 +196,7 @@
    Either 'aggregateDataSetName' or 'aggregateDataSetIdentifier' must be documented.
    aggregateDataSetName or aggregateDataSetIdentifier documented. +An associated resource is declared multiple time with same association and initiative type.
    language not present.
    diff --git a/config/schema_plugins/iso19139/loc/chi/labels.xml b/config/schema_plugins/iso19139/loc/chi/labels.xml index 36286f7..2c78d94 100644 --- a/config/schema_plugins/iso19139/loc/chi/labels.xml +++ b/config/schema_plugins/iso19139/loc/chi/labels.xml @@ -2188,6 +2188,8 @@ + + diff --git a/config/schema_plugins/iso19139/loc/chi/schematron-rules-iso.xml b/config/schema_plugins/iso19139/loc/chi/schematron-rules-iso.xml index b494b94..9b93a1d 100644 --- a/config/schema_plugins/iso19139/loc/chi/schematron-rules-iso.xml +++ b/config/schema_plugins/iso19139/loc/chi/schematron-rules-iso.xml @@ -203,6 +203,7 @@
    Either 'aggregateDataSetName' or 'aggregateDataSetIdentifier' must be documented.
    aggregateDataSetName or aggregateDataSetIdentifier documented. +An associated resource is declared multiple time with same association and initiative type.
    language not present.
    diff --git a/config/schema_plugins/iso19139/loc/chi/strings.xml b/config/schema_plugins/iso19139/loc/chi/strings.xml index 637bae9..396f637 100644 --- a/config/schema_plugins/iso19139/loc/chi/strings.xml +++ b/config/schema_plugins/iso19139/loc/chi/strings.xml @@ -63,7 +63,7 @@ Provided by Share on social sites Views - Access to the portal + Access to the catalogue Read here the full details and access to the data. Citation proposal This proposal was automatically generated, check if the metadata authors did not specified custom citation requirements. diff --git a/config/schema_plugins/iso19139/loc/dut/labels.xml b/config/schema_plugins/iso19139/loc/dut/labels.xml index 954cedf..c054d6d 100644 --- a/config/schema_plugins/iso19139/loc/dut/labels.xml +++ b/config/schema_plugins/iso19139/loc/dut/labels.xml @@ -1836,6 +1836,8 @@ + + diff --git a/config/schema_plugins/iso19139/loc/dut/schematron-rules-iso.xml b/config/schema_plugins/iso19139/loc/dut/schematron-rules-iso.xml index b494b94..dab03d3 100644 --- a/config/schema_plugins/iso19139/loc/dut/schematron-rules-iso.xml +++ b/config/schema_plugins/iso19139/loc/dut/schematron-rules-iso.xml @@ -202,9 +202,10 @@
    Either 'aggregateDataSetName' or 'aggregateDataSetIdentifier' must be documented.
    - aggregateDataSetName or aggregateDataSetIdentifier documented. + aggregateDataSetName of aggregateDataSetIdentifier is gedocumenteerd. + Een gerelateerde resource is meermaals gedeclareerd met hetzelfde type van associatie en initiatief. -
    language not present.
    +
    taal niet aanwezig.
    if 'dataType' notEqual 'codelist', 'enumeration' or 'codelistElement' then 'obligation' is diff --git a/config/schema_plugins/iso19139/loc/eng/labels.xml b/config/schema_plugins/iso19139/loc/eng/labels.xml index 8689ba9..9734aca 100644 --- a/config/schema_plugins/iso19139/loc/eng/labels.xml +++ b/config/schema_plugins/iso19139/loc/eng/labels.xml @@ -2273,6 +2273,8 @@ + + diff --git a/config/schema_plugins/iso19139/loc/eng/schematron-rules-iso.xml b/config/schema_plugins/iso19139/loc/eng/schematron-rules-iso.xml index c11aee3..4921d2d 100644 --- a/config/schema_plugins/iso19139/loc/eng/schematron-rules-iso.xml +++ b/config/schema_plugins/iso19139/loc/eng/schematron-rules-iso.xml @@ -203,6 +203,7 @@
    Either 'aggregateDataSetName' or 'aggregateDataSetIdentifier' must be documented.
    aggregateDataSetName or aggregateDataSetIdentifier documented. +An associated resource is declared multiple time with same association and initiative type.
    language not present.
    diff --git a/config/schema_plugins/iso19139/loc/eng/strings.xml b/config/schema_plugins/iso19139/loc/eng/strings.xml index 262f745..67eb0e2 100644 --- a/config/schema_plugins/iso19139/loc/eng/strings.xml +++ b/config/schema_plugins/iso19139/loc/eng/strings.xml @@ -63,7 +63,7 @@ Provided by Share on social sites Views - Access to the portal + Access to the catalogue Read here the full details and access to the data. Citation proposal This proposal was automatically generated, check if the metadata authors did not specified custom citation requirements. diff --git a/config/schema_plugins/iso19139/loc/fin/labels.xml b/config/schema_plugins/iso19139/loc/fin/labels.xml index 6a0ff45..e80ffaf 100644 --- a/config/schema_plugins/iso19139/loc/fin/labels.xml +++ b/config/schema_plugins/iso19139/loc/fin/labels.xml @@ -2157,6 +2157,8 @@ + +