1 | import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; |
---|
2 | import module namespace utillib='http://ndg.nerc.ac.uk/xquery/lib/utilities' at 'xmldb:exist:///db/xqueryLib/Utilities/utility_xquery_lib.xquery'; |
---|
3 | declare default element namespace 'http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/'; |
---|
4 | declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance'; |
---|
5 | declare namespace moles='http://ndg.nerc.ac.uk/moles'; |
---|
6 | declare variable $targetCollection as xs:string {'TargetCollection'}; |
---|
7 | declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; |
---|
8 | declare variable $localIdentifier as xs:string {'LocalID'}; |
---|
9 | |
---|
10 | for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ |
---|
11 | exists('moles:dgDataEntity') |
---|
12 | and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0' |
---|
13 | and moles:dgMetadataID/moles:repositoryIdentifier=$repositoryIdentifier |
---|
14 | and moles:dgMetadataID/moles:localIdentifier=$localIdentifier] |
---|
15 | return |
---|
16 | element DIF { |
---|
17 | attribute xsi:schemaLocation {'http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/ http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/dif_v9.4.xsd'}, |
---|
18 | element Entry_ID {concat($DE/moles:dgMetadataID/moles:repositoryIdentifier, $utillib:moles_id_separator, 'DIF', $utillib:moles_id_separator, $DE/moles:dgMetadataID/moles:localIdentifier)}, |
---|
19 | element Entry_Title {string($DE/moles:name)}, |
---|
20 | element Data_Set_Citation { |
---|
21 | for $DataCreatorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCreator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''][1] |
---|
22 | return |
---|
23 | for $DataCreatorRoleHolder in collection($targetCollection)/moles:dgMetadata/*[(moles:dgMetadataID/moles:schemeIdentifier='NDG-B0' |
---|
24 | and moles:dgMetadataID/moles:repositoryIdentifier=$DataCreatorRole/*/moles:repositoryIdentifier |
---|
25 | and moles:dgMetadataID/moles:localIdentifier=$DataCreatorRole/*/moles:localIdentifier)] |
---|
26 | return |
---|
27 | element Dataset_Creator { |
---|
28 | if (exists($DataCreatorRoleHolder/moles:name/moles:initials)) then |
---|
29 | string(concat(string($DataCreatorRoleHolder/moles:name/moles:initials), ' ', string($DataCreatorRoleHolder/moles:name/moles:familyName))) |
---|
30 | else |
---|
31 | string($DataCreatorRoleHolder/moles:abbreviation) |
---|
32 | }, |
---|
33 | element Dataset_Title {string($DE/moles:name)} |
---|
34 | }, |
---|
35 | for $StructuredKeyword in ($DE//(moles:dgStructuredKeyword | moles:dgStdParameterMeasured)[(voclib:spot-vocab($voclib:gcmd_science_valids, moles:dgValidTermID/moles:ParentListID) or voclib:spot-vocab($voclib:gcmd_science_valids_correct, moles:dgValidTermID/moles:ParentListID))]) |
---|
36 | return if (exists($StructuredKeyword/*/moles:dgValidTerm)) then |
---|
37 | element Parameters { |
---|
38 | element Category {string($StructuredKeyword/*/moles:dgValidTerm)}, |
---|
39 | if (exists($StructuredKeyword//moles:dgValidSubterm) |
---|
40 | and $StructuredKeyword//moles:dgValidSubterm != '' |
---|
41 | and $StructuredKeyword//moles:dgValidSubterm != ' ') then |
---|
42 | for $Subterm in $StructuredKeyword//moles:dgValidSubterm[exists(moles:dgValidTerm)] |
---|
43 | where exists($Subterm/moles:dgValidSubterm) |
---|
44 | order by $Subterm/moles:ListLevel |
---|
45 | return |
---|
46 | if ($Subterm/moles:ListLevel=1) then element Topic {string($Subterm/moles:dgValidSubterm/moles:dgValidTerm)} |
---|
47 | else if ($Subterm/moles:ListLevel=2) then element Term {string($Subterm/moles:dgValidSubterm/moles:dgValidTerm)} |
---|
48 | else if ($Subterm/moles:ListLevel=3) then element Variable {string($Subterm/moles:dgValidSubterm/moles:dgValidTerm)} |
---|
49 | else if ($Subterm/moles:ListLevel=4) then element Detailed_Variable {string($Subterm/moles:dgValidSubterm/moles:dgValidTerm)} |
---|
50 | else element GCMD_Science_Valid {string($Subterm/moles:dgValidSubterm/moles:dgValidTerm)} |
---|
51 | else() |
---|
52 | } |
---|
53 | else(), |
---|
54 | for $StructuredKeyword in ($DE//(moles:dgStructuredKeyword | moles:dgDataEntity/moles:dgDataSummary/moles:dgParameterSummary/moles:dgStdParameterMeasured)[voclib:spot-vocab($voclib:gcmd_science_valids, moles:dgValidTermID/moles:ParentListID) or voclib:spot-vocab($voclib:gcmd_science_valids_correct, moles:dgValidTermID/moles:ParentListID) or voclib:spot-vocab($voclib:gcmd_science_valids_deprecated, moles:dgValidTermID/moles:ParentListID) and (not(exists(moles:ListLevel)) or moles:ListLevel=0)]) |
---|
55 | return |
---|
56 | element Parameters {data($StructuredKeyword/moles:dgValidTerm)}, |
---|
57 | for $ISOTopicCategory in ($DE/moles:dgStructuredKeyword[voclib:spot-vocab($voclib:iso_topic_list, moles:dgValidTermID/moles:ParentListID)]) |
---|
58 | return |
---|
59 | element ISO_Topic_Category {string($ISOTopicCategory/moles:dgValidTerm)}, |
---|
60 | for $Keyword in distinct-values($DE//moles:dgStructuredKeyword[ |
---|
61 | not (voclib:spot-vocab($voclib:iso_topic_list, moles:dgValidTermID/moles:ParentListID) |
---|
62 | or voclib:spot-vocab($voclib:gcmd_science_valids, moles:dgValidTermID/moles:ParentListID) |
---|
63 | or voclib:spot-vocab($voclib:gcmd_science_valids_correct, moles:dgValidTermID/moles:ParentListID) |
---|
64 | )]/moles:dgValidTerm) |
---|
65 | return element Keyword {string($Keyword)}, |
---|
66 | for $DepDPT in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:DataProductionToolID) |
---|
67 | return |
---|
68 | element Sensor_Name { |
---|
69 | for $DepDPTAbbrev in ((collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepDPT/moles:repositoryIdentifier and moles:localIdentifier=$DepDPT/moles:localIdentifier]]/moles:abbreviation)) |
---|
70 | return element Short_Name {data($DepDPTAbbrev)}, |
---|
71 | for $DepDPTName in ((collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepDPT/moles:repositoryIdentifier and moles:localIdentifier=$DepDPT/moles:localIdentifier]]/moles:name)) |
---|
72 | return element Long_Name {data($DepDPTName)} |
---|
73 | }, |
---|
74 | for $DepObsStn in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:ObservationStationID) |
---|
75 | return |
---|
76 | element Source_Name { |
---|
77 | for $DepObsStnAbbrev in ((collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepObsStn/moles:repositoryIdentifier and moles:localIdentifier=$DepObsStn/moles:localIdentifier]]/moles:abbreviation)) |
---|
78 | return element Short_Name {data($DepObsStnAbbrev)}, |
---|
79 | for $DepObsStnName in ((collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepObsStn/moles:repositoryIdentifier and moles:localIdentifier=$DepObsStn/moles:localIdentifier]]/moles:name)) |
---|
80 | return element Long_Name {data($DepObsStnName)} |
---|
81 | }, |
---|
82 | for $TemporalRange in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgDateRange) |
---|
83 | return |
---|
84 | element Temporal_Coverage |
---|
85 | { |
---|
86 | element Start_Date {data($TemporalRange/moles:DateRangeStart)}, |
---|
87 | element End_Date {data($TemporalRange/moles:DateRangeEnd)} |
---|
88 | }, |
---|
89 | for $TemporalTerm in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgArea[voclib:spot-vocab($voclib:gcmd_chronostratigraphic_valids, moles:dgValidTermID/moles:ParentListID)]/moles:dgValidTerm) |
---|
90 | return element Paleo_Temporal_Coverage {element Chronostratigraphic_Unit {data($TemporalTerm)}}, |
---|
91 | for $Data_Set_Progress in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataStatus/moles:dgDatasetClosure) |
---|
92 | return element Data_Set_Progress {data($Data_Set_Progress)}, |
---|
93 | for $BoundingBox in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:BoundingBox) |
---|
94 | return |
---|
95 | element Spatial_Coverage { |
---|
96 | element Southernmost_Latitude {data($BoundingBox/moles:LimitSouth)}, |
---|
97 | element Northernmost_Latitude {data($BoundingBox/moles:LimitNorth)}, |
---|
98 | element Westernmost_Longitude {data($BoundingBox/moles:LimitWest)}, |
---|
99 | element Easternmost_Longitude {data($BoundingBox/moles:LimitEast)} |
---|
100 | }, |
---|
101 | for $Location in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgArea[voclib:spot-vocab($voclib:gcmd_location_valids, moles:dgValidTermID/moles:ParentListID)]) |
---|
102 | return element Location {$Location}, |
---|
103 | for $DepAct in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:ActivityID) |
---|
104 | return |
---|
105 | element Project { |
---|
106 | for $DepActAbbrev in (collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepAct/moles:repositoryIdentifier and moles:localIdentifier=$DepAct/moles:localIdentifier]]/moles:abbreviation) |
---|
107 | return |
---|
108 | element Short_Name {data($DepActAbbrev)}, |
---|
109 | for $DepActName in (collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepAct/moles:repositoryIdentifier and moles:localIdentifier=$DepAct/moles:localIdentifier]]/moles:name) |
---|
110 | return |
---|
111 | element Long_Name {data($DepActName)} |
---|
112 | }, |
---|
113 | if (exists($DE/moles:dgDataEntity/moles:dgDataGranule/moles:accessControlPolicy)) then |
---|
114 | for $DG in $DE/moles:dgDataEntity/moles:dgDataGranule |
---|
115 | return |
---|
116 | element Access_Constraints { |
---|
117 | if (exists($DG/moles:dgGranuleSummary/moles:dgGranuleName)) then |
---|
118 | concat('For data granule ', $DG/moles:dgGranuleSummary/moles:dgGranuleName, ': ') |
---|
119 | else (), |
---|
120 | if (exists($DG/moles:accessControlPolicy/moles:accessControlPolicyURL)) then |
---|
121 | concat('See access control policy at ', escape-uri($DG/moles:accessControlPolicy/moles:accessControlPolicyURL, true())) |
---|
122 | else if (exists($DG/moles:accessControlPolicy/moles:accessControlPolicyText)) then |
---|
123 | data($DG/moles:accessControlPolicy/moles:accessControlPolicyText) |
---|
124 | else |
---|
125 | for $securityCondition in $DG/moles:accessControlPolicy/moles:dgSecurityCondition |
---|
126 | return |
---|
127 | if (exists($securityCondition/moles:conditionExplanationText)) then |
---|
128 | concat('Effect: ', data($securityCondition/moles:effect), ' - ', data($securityCondition/moles:conditionExplanationText)) |
---|
129 | else concat('Effect: ', data($securityCondition/moles:effect), 'needs ', data($securityCondition/moles:attauthRole), ' from ', data($securityCondition/moles:dgAttributeAuthority)) |
---|
130 | } |
---|
131 | else (), |
---|
132 | if (exists($DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCreator/moles:dgRoleHolder)) then |
---|
133 | for $DataCreatorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCreator/moles:dgRoleHolder |
---|
134 | order by $DataCreatorRole/moles:startDate empty least |
---|
135 | return |
---|
136 | for $DataCreatorRoleHolder in collection($targetCollection)/moles:dgMetadata/(moles:dgOrganisation | moles:dgPerson) |
---|
137 | [(moles:dgMetadataID/moles:schemeIdentifier='NDG-B0' |
---|
138 | and moles:dgMetadataID/moles:repositoryIdentifier=$DataCreatorRole/(moles:dgOrganisationID | moles:dgPersonID)/moles:repositoryIdentifier |
---|
139 | and moles:dgMetadataID/moles:localIdentifier=$DataCreatorRole/(moles:dgOrganisationID | moles:dgPersonID)/moles:localIdentifier)] |
---|
140 | return |
---|
141 | element Originating_Center { |
---|
142 | if (string(local-name($DataCreatorRoleHolder))='dgOrganisation') then |
---|
143 | (string($DataCreatorRoleHolder/moles:name)) |
---|
144 | else if (string(local-name($DataCreatorRoleHolder))='dgPerson') then |
---|
145 | (string(concat(string($DataCreatorRoleHolder/moles:name/moles:initials), ' ', string($DataCreatorRoleHolder/moles:name/moles:familyName)))) |
---|
146 | else ('empty content') |
---|
147 | } |
---|
148 | else (), |
---|
149 | for $DataCuratorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCurator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''] |
---|
150 | return |
---|
151 | for $DataCuratorRoleHolder in collection($targetCollection)/moles:dgMetadata/*[(moles:dgMetadataID/moles:schemeIdentifier='NDG-B0' |
---|
152 | and moles:dgMetadataID/moles:repositoryIdentifier=$DataCuratorRole/*/moles:repositoryIdentifier |
---|
153 | and moles:dgMetadataID/moles:localIdentifier=$DataCuratorRole/*/moles:localIdentifier)] |
---|
154 | return |
---|
155 | element Data_Center { |
---|
156 | element Data_Center_Name { |
---|
157 | element Short_Name { |
---|
158 | if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then |
---|
159 | string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) |
---|
160 | else |
---|
161 | string($DataCuratorRoleHolder/moles:abbreviation) |
---|
162 | }, |
---|
163 | element Long_Name { |
---|
164 | if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then |
---|
165 | string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) |
---|
166 | else string($DataCuratorRoleHolder/moles:name) |
---|
167 | } |
---|
168 | }, |
---|
169 | if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:URI)) then |
---|
170 | element Data_Center_URL {data($DataCuratorRoleHolder/moles:contactDetails/moles:URI)} |
---|
171 | else (), |
---|
172 | for $DGID in $DE/moles:dgDataEntity/moles:dgDataGranule/moles:dataModelID |
---|
173 | return |
---|
174 | element Data_Set_ID {concat($DGID/moles:repositoryIdentifier, '__', $DGID/moles:schemeIdentifier, '__', $DGID/moles:localIdentifier)}, |
---|
175 | element Personnel { |
---|
176 | element Role {'Data Center Contact'}, |
---|
177 | if (exists($DataCuratorRoleHolder/name/knownAs)) then |
---|
178 | element First_Name {string($DataCuratorRoleHolder/moles:name/moles:knownAs)} |
---|
179 | else if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then |
---|
180 | element First_Name {string($DataCuratorRoleHolder/moles:name/moles:initials)} |
---|
181 | else (), |
---|
182 | element Last_Name { |
---|
183 | if (exists($DataCuratorRoleHolder/moles:name/moles:familyName)) then |
---|
184 | string($DataCuratorRoleHolder/moles:name/moles:familyName) |
---|
185 | else string($DataCuratorRoleHolder/moles:name) |
---|
186 | }, |
---|
187 | if (exists($DataCuratorRole/moles:contactDetails/moles:eMail)) then |
---|
188 | element Email {string($DataCuratorRole/moles:contactDetails/moles:eMail)} |
---|
189 | else |
---|
190 | if (exists($DataCuratorRoleHolder/contactDetails/eMail)) then |
---|
191 | (element Email {string($DataCuratorRoleHolder/moles:contactDetails/moles:eMail)}) |
---|
192 | else (), |
---|
193 | if (exists($DataCuratorRole/moles:contactDetails/moles:telephone)) then |
---|
194 | element Phone {string($DataCuratorRole/moles:contactDetails/moles:telephone)} |
---|
195 | else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:telephone)) then |
---|
196 | element Phone {string($DataCuratorRoleHolder/moles:contactDetails/moles:telephone)} |
---|
197 | else (), |
---|
198 | if (exists($DataCuratorRole/moles:contactDetails/moles:fax)) then |
---|
199 | element Fax {string($DataCuratorRole/moles:contactDetails/moles:fax)} |
---|
200 | else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:fax)) then |
---|
201 | element Fax {string($DataCuratorRoleHolder/moles:contactDetails/moles:fax)} |
---|
202 | else (), |
---|
203 | if (exists($DataCuratorRole/moles:contactDetails/moles:address)) then |
---|
204 | element Contact_Address { |
---|
205 | for $addressline in $DataCuratorRole/moles:contactDetails/moles:address/moles:addressline |
---|
206 | return element Address {data($addressline)}, |
---|
207 | if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:city)) then |
---|
208 | element City {string($DataCuratorRole/moles:contactDetails/moles:address/moles:city)} |
---|
209 | else (), |
---|
210 | if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:postcode)) then |
---|
211 | element Postal_Code {string($DataCuratorRole/moles:contactDetails/moles:address/moles:postcode)} |
---|
212 | else (), |
---|
213 | if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:country)) then |
---|
214 | element Country {string($DataCuratorRole/moles:contactDetails/moles:address/moles:country)} |
---|
215 | else () |
---|
216 | } |
---|
217 | else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address)) then |
---|
218 | element Contact_Address { |
---|
219 | for $addressline in $DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:addressline |
---|
220 | return element Address {data($addressline)}, |
---|
221 | if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)) then |
---|
222 | element City {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)} |
---|
223 | else (), |
---|
224 | if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:postcode)) then |
---|
225 | element Postal_Code {string($DataCuratorRole/moles:contactDetails/moles:postcode)} |
---|
226 | else (), |
---|
227 | if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)) then |
---|
228 | element Country {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)} |
---|
229 | else () |
---|
230 | } |
---|
231 | else () |
---|
232 | } |
---|
233 | }, |
---|
234 | element Summary {string($DE/moles:dgMetadataDescription/moles:abstract/moles:abstractText)}, |
---|
235 | element Related_URL { |
---|
236 | element URL_Content_Type {'NDG_B_SERVICE'}, |
---|
237 | element URL {data($DE/moles:dgMetadataID/moles:repositoryIdentifier)}, |
---|
238 | element Description {'The NDG service for browsing metadata.'} |
---|
239 | }, |
---|
240 | for $DG in $DE/moles:dgDataEntity/moles:dgDataGranule |
---|
241 | return |
---|
242 | if ($DG/moles:dataModelID/moles:schemeIdentifier='NDG-A0') then |
---|
243 | (element Related_URL { |
---|
244 | element URL_Content_Type {'NDG_A_SERVICE'}, |
---|
245 | if (exists($DG/instance/URI)) then |
---|
246 | element URL {escape-uri($DG/instance/URI, true())} |
---|
247 | else if ($DG/moles:dataModelID/moles:repositoryIdentifier='badc.nerc.ac.uk') then |
---|
248 | element URL {escape-uri('http://dmgdev1.esc.rl.ac.uk/cgi-bin/ndgDataAccess?datasetSource=dmgdev1.esc.rl.ac.uk&datasetID=', true())} |
---|
249 | else ($DG/moles:dataModelID/moles:repositoryIdentifier), |
---|
250 | element Description {'The NDG service delivering data via NDG A metadata.'} |
---|
251 | }, |
---|
252 | element Related_URL { |
---|
253 | element URL_Content_Type {'GET DATA > CSML'}, |
---|
254 | if (exists($DG/instance)) then |
---|
255 | element URL {escape-uri($DG/instance/URI, true())} |
---|
256 | else if ($DG/moles:dataModelID/moles:repositoryIdentifier='badc.nerc.ac.uk') then |
---|
257 | element URL {escape-uri('http://dmgdev1.esc.rl.ac.uk/cgi-bin/ndgDataAccess?datasetSource=dmgdev1.esc.rl.ac.uk&datasetID=', true())} |
---|
258 | else (), |
---|
259 | element Description {'The NDG service delivering data via NDG A metadata. Additional tag to be more in line with latest version of GCMD valids'} |
---|
260 | }) |
---|
261 | else if ($DG/moles:dataModelID/moles:schemeIdentifier='CDML-0') then |
---|
262 | (element Related_URL { |
---|
263 | element URL_Content_Type {'NDG_A_SERVICE'}, |
---|
264 | if (exists($DG/instance)) then |
---|
265 | element URL {escape-uri($DG/instance/URI, true())} |
---|
266 | else if ($DG/moles:dataModelID/moles:repositoryIdentifier='badc.nerc.ac.uk') then |
---|
267 | element URL {escape-uri('http://cdat.badc.nerc.ac.uk/cgi-bin/dxui.py?datasetURI_1=/', true())} |
---|
268 | else (), |
---|
269 | element Description {'The NDG service delivering data via Data extractor. Additional tag to be more in line with latest version of GCMD valids'} |
---|
270 | }, |
---|
271 | element Related_URL { |
---|
272 | element URL_Content_Type {'GET DATA > DX'}, |
---|
273 | if (exists($DG/instance)) then |
---|
274 | element URL {escape-uri($DG/instance/URI, true())} |
---|
275 | else if ($DG/moles:dataModelID/moles:repositoryIdentifier='badc.nerc.ac.uk') then |
---|
276 | element URL {escape-uri('http://cdat.badc.nerc.ac.uk/cgi-bin/dxui.py?datasetURI_1=/', true())} |
---|
277 | else (), |
---|
278 | element Description {'The NDG service delivering data via Data extractor. Additional tag to be more in line with latest version of GCMD valids'} |
---|
279 | }) |
---|
280 | else if ($DG/moles:dataModelID/moles:schemeIdentifier='URI') then |
---|
281 | element Related_URL { |
---|
282 | element URL {data($DG/moles:instance/moles:URI)}, |
---|
283 | if (exists($DG/moles:instance/moles:instanceComment)) then |
---|
284 | element Description {data($DG/moles:instance/moles:instanceComment)} |
---|
285 | else |
---|
286 | element Description {'URL to aid in delivering data. Note that this may point directly to the data or, more likely, point to the web site of the curator.'} |
---|
287 | } |
---|
288 | else (), |
---|
289 | for $RelURL_Desc in ($DE/moles:dgMetadataDescription/moles:descriptionSection/moles:descriptionOnlineReference) |
---|
290 | return |
---|
291 | element Related_URL { |
---|
292 | element URL {data($RelURL_Desc)}, |
---|
293 | element Description {concat(data($RelURL_Desc/moles:name), ' - ', data($RelURL_Desc/moles:notes))} |
---|
294 | }, |
---|
295 | element Metadata_Name {'[CEOS IDN DIF]'}, |
---|
296 | element Metadata_Version {'9.4'}, |
---|
297 | if (exists($DE/moles:dgMetadataProvenance/moles:RecordCreation)) then |
---|
298 | element DIF_Creation_Date {data($DE/moles:dgMetadataProvenance/moles:RecordCreation/moles:CreatedDate)} |
---|
299 | else (), |
---|
300 | for $MDUpdt in $DE/moles:dgMetadataProvenance/moles:RecordUpdate |
---|
301 | return |
---|
302 | element DIF_Revision_History {concat(data($MDUpdt/moles:UpdateDate), ' - ', data($MDUpdt/moles:UpdateSummary), ' - ', data($MDUpdt/moles:UpdatedBy))}, |
---|
303 | if (exists($DE/moles:dgMetadataProvenance/moles:RecordReview)) then |
---|
304 | element Future_DIF_Review_Date {data($DE/moles:dgMetadataProvenance/moles:RecordReview/moles:ReviewDate)} |
---|
305 | else () |
---|
306 | } |
---|