Changeset 1977 for TI07-MOLES/trunk/MDIP
- Timestamp:
- 09/01/07 11:55:52 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TI07-MOLES/trunk/MDIP/XQueries/MDIP2MOLES.xquery
r1926 r1977 27 27 declare variable $gcmd_iso_topic_list as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/iso_topic_list.html'}; 28 28 29 declare variable $iho_s23_list as xs:string {'http://vocab.ndg.nerc.ac.uk/C161'}; 30 29 31 (: declare variable $iso_topic_list as xs:string {'http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'}; :) 30 32 declare variable $iso_topic_list as xs:string {'http://vocab.ndg.nerc.ac.uk/P051'}; … … 33 35 34 36 declare variable $ndg_data_provider_vocab as xs:string {'http://vocab.ndg.nerc.ac.uk/N010'}; 37 declare variable $ndg_vertical_extent_base as xs:string {'http://vocab.ndg.nerc.ac.uk/null'}; 35 38 36 39 declare function f:fix-coord($e as element()) as element() … … 74 77 element metadataDescriptionLastUpdated {current-date()} , 75 78 element abstract { 76 element abstractText {string($MDIP/mdip: Summary)}79 element abstractText {string($MDIP/mdip:Abstract)} 77 80 } 78 81 }, 79 element name {string($MDIP/mdip: Entry_Title)},80 element abbreviation {string($MDIP/mdip: Entry_Title)},82 element name {string($MDIP/mdip:Title)}, 83 element abbreviation {string($MDIP/mdip:Title)}, 81 84 element dgDataEntity { 82 85 element dgDataSetType {''}, 83 86 element dgDataSummary { 84 for $parameter in $MDIP/mdip: Parameters87 for $parameter in $MDIP/mdip:Subject[SubjectVocab=$bodc_parameter_discovery_vocab] 85 88 return 86 89 element dgParameterSummary { … … 98 101 }, 99 102 element dgStdParameterMeasured { 100 element dgValidTerm { 101 concat (string($parameter/mdip:Category), ' > ', string($parameter/mdip:Topic), ' > ', string($parameter/mdip:Term)), 102 if (exists($parameter/mdip:Variable)) then 103 concat(' > ', string($parameter/mdip:Variable)) 104 else (), 105 if (exists($parameter/mdip:Detailed_Variable)) then 106 concat(' > ', string($parameter/mdip:Detailed_Variable)) 107 else () 103 element dgValidTerm {string($parameter/mdip:SubjectName)}, 104 element dgValidTermID { 105 element ParentListID {string($parameter/mdip:SubjectVocab)}, 106 element TermID {string($parameter/mdip:SubjectCode)} 107 } 108 }, 109 element ParameterName {string($parameter/mdip:SubjectName)}, 110 element ParameterAbbreviation {string($parameter/mdip:SubjectName)} 111 }, 112 element dgDataCoverage { 113 element dgSpatialCoverage { 114 element BoundingBox { 115 element LimitNorth {data(f:fix-coord($MDIP/mdip:NorthCoOrdinate))}, 116 element LimitSouth {data(f:fix-coord($MDIP/mdip:SouthCoOrdinate))}, 117 element LimitWest {data(f:fix-coord($MDIP/mdip:WestCoOrdinate))}, 118 element LimitEast {data(f:fix-coord($MDIP/mdip:EastCoOrdinate))} 108 119 }, 109 element dgValidTermID { 110 element ParentListID {$gcmd_science_valids}, 111 element TermID {escape-uri($parameter/mdip:Category, true())} 120 for $location in $MDIP/mdip:Extent 121 return 122 element dgArea { 123 element dgValidTerm {string($location/mdip:ExtentName)}, 124 element dgValidTermID { 125 element ParentListID {string($location/mdip:ExtentVocab)}, 126 element TermID {string($location/mdip:ExtentCode)} 127 } 128 }, 129 for $location in $MDIP/mdip:VerticalExtent 130 return 131 element dgVerticalExtent { 132 element dgVerticalExtentBaseRef { 133 element dgValidTerm {if (exists($location/VerticalDatum)) then $location/VerticalDatum else 'default'}, 134 element dgValidTermID { 135 element ParentListID {'$unknown_vocab_id'}, 136 element TermID {escape-uri(string($location/mdip:VerticalDatum), true())} 137 } 138 }, 139 if (exists($location/mdip:Minimum) and exists($location/mdip:Maximum)) then 140 element dgVerticalExtentRange{ 141 element dgVerticalExtentRangeMin {data($location/mdip:Minimum)}, 142 element dgVerticalExtentRangeMax {data($location/mdip:Maximum)} 143 } 144 else 145 element dgVerticalExtentLevel{ 146 if (exists($location/mdip:Minimum)) then element dgVerticalExtentLevelValue {data($location/mdip:Minimum)} 147 else element dgVerticalExtentLevelValue {data($location/mdip:Maximum)} 148 } 112 149 } 113 }, 114 element ParameterName { 115 concat (string($parameter/mdip:Category), ' > ', string($parameter/mdip:Topic), ' > ', string($parameter/mdip:Term)), 116 if (exists($parameter/mdip:Variable)) then 117 concat(' > ', string($parameter/mdip:Variable)) 118 else (), 119 if (exists($parameter/mdip:Detailed_Variable)) then 120 concat(' > ', string($parameter/mdip:Detailed_Variable)) 121 else () 122 }, 123 element ParameterAbbreviation { 124 concat (string($parameter/mdip:Category), ' > ', string($parameter/mdip:Topic), ' > ', string($parameter/mdip:Term)), 125 if (exists($parameter/mdip:Variable)) then 126 concat(' > ', string($parameter/mdip:Variable)) 127 else (), 128 if (exists($parameter/mdip:Detailed_Variable)) then 129 concat(' > ', string($parameter/mdip:Detailed_Variable)) 130 else () 150 } (: /dgSpatialCoverage :), 151 element dgTemporalCoverage { (: didn't bother trying to validate the Dates as the example is naff to start with :) 152 for $date in $MDIP/mdip:Date 153 return 154 if (exists($MDIP/mdip:Date/mdip:DatasetStartDate) and exists($MDIP/mdip:Date/mdip:DatasetEndDate) ) then 155 element DateRange { 156 element DateRangeStart {data($MDIP/mdip:Date/mdip:DatasetStartDate)}, 157 element DateRangeEnd {data($MDIP/mdip:Date/mdip:DatasetEndDate)} 158 } 159 else if (exists($MDIP/mdip:Date/mdip:DatasetStartDate)) then element DataSingle {data($MDIP/mdip:Date/mdip:DatasetStartDate)} 160 else element DataSingle {data($MDIP/mdip:Date/mdip:DatasetEndDate)} 131 161 } 132 }, 133 if (exists($MDIP/mdip:Spatial_Coverage) or exists($MDIP/mdip:Paleo_Temporal_Coverage) or exists($MDIP/mdip:Location) or exists($MDIP/mdip:Temporal_Coverage)) then 134 element dgDataCoverage { 135 if (exists($MDIP/mdip:Spatial_Coverage) or exists($MDIP/mdip:Location)) then 136 element dgSpatialCoverage { 137 for $boundingbox in $MDIP/mdip:Spatial_Coverage[exists(mdip:Northernmost_Latitude) 138 and exists(mdip:Southernmost_Latitude) 139 and exists(mdip:Easternmost_Longitude) 140 and exists(mdip:Westernmost_Longitude)] 141 return 142 element BoundingBox { 143 element LimitNorth {data(f:fix-coord($boundingbox/mdip:Northernmost_Latitude))}, 144 element LimitSouth {data(f:fix-coord($boundingbox/mdip:Southernmost_Latitude))}, 145 element LimitWest {data(f:fix-coord($boundingbox/mdip:Westernmost_Longitude))}, 146 element LimitEast {data(f:fix-coord($boundingbox/mdip:Easternmost_Longitude))} 147 }, 148 for $location in $MDIP/mdip:Location 149 return 150 element dgArea { 151 element dgValidTerm {string($location)}, 152 element dgValidTermID { 153 element ParentListID {$gcmd_location_valids}, 154 element TermID {escape-uri($location, true())} 155 } 156 } 157 } 158 else (), 159 if (exists($MDIP/mdip:Temporal_Coverage/mdip:Start_Date) or exists($MDIP/mdip:Paleo_Temporal_Coverage/mdip:Paleo_Start_Date) or exists($MDIP/mdip:Chronostratigraphic_Unit)) then 160 element dgTemporalCoverage { 161 for $temporalcoverage in $MDIP/mdip:Temporal_Coverage[exists(mdip:Start_Date)] 162 return 163 element DateRange { 164 element DateRangeStart {string($temporalcoverage/mdip:Start_Date)}, 165 element DateRangeEnd {string($temporalcoverage/mdip:Stop_Date)} 166 }, 167 for $paleotemporalcoverage in $MDIP/mdip:Paleo_Temporal_Coverage[exists(mdip:Paleo_Start_Date)] 168 return 169 element DateRange { 170 element DateRangeStart {string($paleotemporalcoverage/mdip:Paleo_Start_Date)}, 171 element DateRangeEnd {string($paleotemporalcoverage/mdip:Paleo_Stop_Date)} 172 }, 173 for $chronostratigraphic in $MDIP/mdip:Chronostratigraphic_Unit 174 return 175 element dgChronostratigraphicTerm { 176 element dgValidTerm {string($chronostratigraphic)}, 177 element dgValidTermID { 178 element ParentListID {$gcmd_paleotemporal_valids}, 179 element TermID {escape-uri($chronostratigraphic, true())} 180 } 181 } 182 } 183 else () 184 } 185 else () 186 }, 162 } (: /dgDataCoverage :), 163 if (exists($MDIP/mdip:DatasetRefDate)) then 164 element dgDatasetProvenance {element dgDataPublicationData {data($MDIP/mdip:DatasetRefDate)}} 165 else () 166 } (: /dgDataSummary :), 187 167 element dgDataRoles { 188 if (exists($MDIP/mdip: Data_Set_Citation/mdip:Dataset_Creator)) then168 if (exists($MDIP/mdip:Originator)) then 189 169 element dgDataCreator { 190 170 element dgMetadataID { … … 244 224 } 245 225 } 246 } 247 } ,226 } (: /dgDataRoles :) 227 } (: /dgDataEntity :), 248 228 element dgStructuredKeyword { 249 229 element dgValidTerm {'d2b converted record'}, … … 253 233 } 254 234 }, 255 for $structuredKeywords in $MDIP/mdip: Keywords235 for $structuredKeywords in $MDIP/mdip:TopicCategory 256 236 return 257 237 element dgStructuredKeyword { 258 element dgValidTerm { $structuredKeywords},238 element dgValidTerm {string($structuredKeywords/mdip:TopicCategory)}, 259 239 element dgValidTermID { 260 element ParentListID { $unknown_vocab_id},261 element TermID { escape-uri($structuredKeywords, true())}240 element ParentListID {data($structuredKeywords/mdip:TopicCategoryVocab)}, 241 element TermID {data($structuredKeywords/mdip:TopicCategoryCode)} 262 242 } 263 243 }, 264 for $structuredKeywords in $MDIP/mdip: ISO_Topic_Category244 for $structuredKeywords in $MDIP/mdip:Subject 265 245 return 266 246 element dgStructuredKeyword { 267 element dgValidTerm {string($structuredKeywords )},247 element dgValidTerm {string($structuredKeywords/mdip:SubjectName)}, 268 248 element dgValidTermID { 269 element ParentListID { $gcmd_iso_topic_list},270 element TermID { escape-uri($structuredKeywords, true())}249 element ParentListID {data($structuredKeywords/mdip:SubjectVocab)}, 250 element TermID {data($structuredKeywords/mdip:SubjectCode)} 271 251 } 272 252 }, … … 300 280 else () 301 281 } (: </dgMetadataRecord>:), 302 for $creator in distinct-values($MDIP/(mdip:Data_Set_Citation/mdip:Dataset_Creator | mdip:Originating_Center))282 for $creator in $MDIP/mdip:Originator 303 283 return 304 element dgOrganisation { 284 element dgOrganisation { (: needs expansion... :) 305 285 element dgMetadataID { 306 286 element schemeIdentifier {'NDG-B0'}, 307 287 element repositoryIdentifier {$input_repository}, 308 element localIdentifier {escape-uri(concat('generated_orgcit-', string($creator )), true())}309 }, 310 element name { string($creator)},311 element abbreviation { string($creator)},288 element localIdentifier {escape-uri(concat('generated_orgcit-', string($creator/mdip:OriginatorName)), true())} 289 }, 290 element name {data($creator/mdip:OriginatorName)}, 291 element abbreviation {data($creator/mdip:OriginatorName)}, 312 292 element contactDetails {''} 313 293 }
Note: See TracChangeset
for help on using the changeset viewer.