Changeset 2192 for TI07-MOLES/trunk


Ignore:
Timestamp:
20/02/07 15:32:38 (13 years ago)
Author:
ko23
Message:

Corrected MDIP deconstructors

Location:
TI07-MOLES/trunk
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/DIF/XQuery/DIF2MOLES.xquery

    r2185 r2192  
    1818return 
    1919element dgMetadata { 
    20         element dgMetadataRecord { 
    21                 element dgMetadataID { 
    22                         element schemeIdentifier {'NDG-B0'}, 
    23                         element repositoryIdentifier {$input_repository}, 
    24                         if ($output_local_id != 'Output_LocalID') then 
    25                                 element localIdentifier {$output_local_id} 
    26                         else 
    27                                 element localIdentifier {escape-uri(string($DIF/dif:Entry_ID), true())} 
    28                 }, 
    29                 element dgMetadataDescription { 
    30                         element metadataDescriptionID { 
    31                                 element schemeIdentifier {'NDG-B0'}, 
    32                                 element repositoryIdentifier {$input_repository}, 
    33                         if ($output_local_id != 'Output_LocalID') then 
    34                                 element localIdentifier {concat('generated_desc-', $output_local_id)} 
    35                         else 
    36                                 element localIdentifier {concat('generated_desc-', escape-uri(string($DIF/dif:Entry_ID), true()))} 
    37                         }, 
    38                         element metadataDescriptionLastUpdated {current-date()}                 , 
    39                         element abstract { 
    40                                 element abstractText {string($DIF/dif:Summary)} 
    41                         } 
    42                 }, 
    43                 element name {string($DIF/dif:Entry_Title)}, 
    44                 element abbreviation {string($DIF/dif:Entry_Title)}, 
    45                 element dgDataEntity { 
    46                         element dgDataSetType {''}, 
    47                         element dgDataSummary { 
    48                                 for $parameter in $DIF/dif:Parameters 
    49                                 return 
    50                                         element dgParameterSummary { 
    51                                                 element dgParameterValue { 
    52                                                         element dgValueDataParameter { 
    53                                                                 element Value {''}, 
    54                                                                 element dgStandardUnit { 
    55                                                                         element dgValidTerm {'dummy'}, 
    56                                                                         element dgValidTermID { 
    57                                                                                 element ParentListID {$voclib:unknown_vocab_id}, 
    58                                                                                 element TermID {escape-uri('dummy unit', true())} 
    59                                                                         } 
    60                                                                 } 
    61                                                         } 
    62                                                 }, 
    63                                                 element dgStdParameterMeasured { 
    64                                                         element dgValidTerm { 
    65                                                                 concat (string($parameter/dif:Category), ' > ', string($parameter/dif:Topic), ' > ', string($parameter/dif:Term)), 
    66                                                                 if (exists($parameter/dif:Variable)) then 
    67                                                                         concat(' > ', string($parameter/dif:Variable)) 
    68                                                                 else (), 
    69                                                                 if (exists($parameter/dif:Detailed_Variable)) then 
    70                                                                         concat(' > ', string($parameter/dif:Detailed_Variable)) 
    71                                                                 else () 
    72                                                         }, 
    73                                                                 element dgValidTermID { 
    74                                                                         element ParentListID {$voclib:gcmd_science_valids}, 
    75                                                                         element TermID {escape-uri($parameter/dif:Category, true())} 
    76                                                                 } 
    77                                                 }, 
    78                                                 element ParameterName { 
    79                                                         concat (string($parameter/dif:Category), ' > ', string($parameter/dif:Topic), ' > ', string($parameter/dif:Term)), 
    80                                                         if (exists($parameter/dif:Variable)) then 
    81                                                                 concat(' > ', string($parameter/dif:Variable)) 
    82                                                         else (), 
    83                                                         if (exists($parameter/dif:Detailed_Variable)) then 
    84                                                                 concat(' > ', string($parameter/dif:Detailed_Variable)) 
    85                                                         else () 
    86                                                 }, 
    87                                                 element ParameterAbbreviation { 
    88                                                         concat (string($parameter/dif:Category), ' > ', string($parameter/dif:Topic), ' > ', string($parameter/dif:Term)), 
    89                                                         if (exists($parameter/dif:Variable)) then 
    90                                                                 concat(' > ', string($parameter/dif:Variable)) 
    91                                                         else (), 
    92                                                         if (exists($parameter/dif:Detailed_Variable)) then 
    93                                                                 concat(' > ', string($parameter/dif:Detailed_Variable)) 
    94                                                         else () 
    95                                                 } 
    96                                         }, 
    97                                 if (exists($DIF/dif:Spatial_Coverage) or exists($DIF/dif:Paleo_Temporal_Coverage) or exists($DIF/dif:Location) or exists($DIF/dif:Temporal_Coverage)) then 
    98                                         element dgDataCoverage { 
    99                                                 if (exists($DIF/dif:Spatial_Coverage)  or exists($DIF/dif:Location))  then 
    100                                                         element dgSpatialCoverage { 
    101                                                                 for $boundingbox in $DIF/dif:Spatial_Coverage[exists(dif:Northernmost_Latitude) 
    102                                                                                                                 and exists(dif:Southernmost_Latitude) 
    103                                                                                                                 and exists(dif:Easternmost_Longitude) 
    104                                                                                                                 and exists(dif:Westernmost_Longitude)] 
    105                                                                 return 
    106                                                                         element BoundingBox { 
    107                                                                         element LimitNorth {data(inputParse:fix-coord($boundingbox/dif:Northernmost_Latitude))}, 
    108                                                                         element LimitSouth {data(inputParse:fix-coord($boundingbox/dif:Southernmost_Latitude))}, 
    109                                                                         element LimitWest {data(inputParse:fix-coord($boundingbox/dif:Westernmost_Longitude))}, 
    110                                                                         element LimitEast {data(inputParse:fix-coord($boundingbox/dif:Easternmost_Longitude))} 
    111                                                                         }, 
    112                                                                 for $location in $DIF/dif:Location 
    113                                                                 return 
    114                                                                         element dgArea { 
    115                                                                                 element dgValidTerm {string($location)}, 
    116                                                                                 element dgValidTermID { 
    117                                                                                         element ParentListID {$voclib:gcmd_location_valids}, 
    118                                                                                         element TermID {escape-uri($location, true())} 
    119                                                                                 } 
    120                                                                         } 
    121                                                         } 
    122                                                 else (), 
    123                                                 if (exists($DIF/dif:Temporal_Coverage/dif:Start_Date) or exists($DIF/dif:Paleo_Temporal_Coverage/dif:Paleo_Start_Date) or exists($DIF/dif:Chronostratigraphic_Unit)) then 
    124                                                         element dgTemporalCoverage { 
    125                                                                 for $temporalcoverage in $DIF/dif:Temporal_Coverage[exists(dif:Start_Date)] 
    126                                                                 return 
    127                                                                         element DateRange { 
    128                                                                                 element DateRangeStart {string($temporalcoverage/dif:Start_Date)}, 
    129                                                                                 element DateRangeEnd {string($temporalcoverage/dif:Stop_Date)} 
    130                                                                         }, 
    131                                                                 for $paleotemporalcoverage in $DIF/dif:Paleo_Temporal_Coverage[exists(dif:Paleo_Start_Date)] 
    132                                                                 return 
    133                                                                         element DateRange { 
    134                                                                                 element DateRangeStart {string($paleotemporalcoverage/dif:Paleo_Start_Date)}, 
    135                                                                                 element DateRangeEnd {string($paleotemporalcoverage/dif:Paleo_Stop_Date)} 
    136                                                                         }, 
    137                                                                 for $chronostratigraphic in $DIF/dif:Chronostratigraphic_Unit 
    138                                                                 return 
    139                                                                         element dgChronostratigraphicTerm { 
    140                                                                                 element dgValidTerm {string($chronostratigraphic)}, 
    141                                                                                 element dgValidTermID { 
    142                                                                                         element ParentListID {$voclib:gcmd_chronostratigraphic_valids}, 
    143                                                                                         element TermID {escape-uri($chronostratigraphic, true())} 
    144                                                                                 } 
    145                                                                         } 
    146                                                         } 
    147                                                 else () 
    148                                         } 
    149                                 else () 
    150                         }, 
    151                         element dgDataRoles { 
    152                                 if (exists($DIF/dif:Data_Set_Citation/dif:Dataset_Creator)) then 
    153                                         element dgDataCreator { 
    154                                                 element dgMetadataID { 
    155                                                         element schemeIdentifier {'NDG-B0'}, 
    156                                                         element repositoryIdentifier {$input_repository}, 
    157                                                         if ($output_local_id != 'Output_LocalID') then 
    158                                                                 element localIdentifier {concat('generated_creator-', $output_local_id)} 
    159                                                         else 
    160                                                                 element localIdentifier {concat('generated_creator-', escape-uri(string($DIF/dif:Entry_ID), true()))} 
    161                                                 }, 
    162                                                 element roleName {'Data Creator'}, 
    163                                                 element abbreviation {'Creator'}, 
    164                                                 for $creatorID in $DIF/dif:Data_Set_Citation/dif:Dataset_Creator 
    165                                                 return 
    166                                                 element dgRoleHolder { 
    167                                                         element dgOrganisationID { 
    168                                                                 element schemeIdentifier {'NDG-B0'}, 
    169                                                                 element repositoryIdentifier {$input_repository}, 
    170                                                                 if ($output_local_id != 'Output_LocalID') then 
    171                                                                         element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID), '-', $output_local_id), true())} 
    172                                                                 else 
    173                                                                         element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID), '-', data($DIF/dif:Entry_ID)), true())} 
    174                                                         }, 
    175                                                 element startDate {current-date()} 
    176                                                 } 
    177                                         } 
    178                                 else if (exists($DIF/dif:Originating_Center)) then 
    179                                         element dgDataCreator { 
    180                                                 element dgMetadataID { 
    181                                                         element schemeIdentifier {'NDG-B0'}, 
    182                                                         element repositoryIdentifier {$input_repository}, 
    183                                                         if ($output_local_id != 'Output_LocalID') then 
    184                                                         element localIdentifier  {escape-uri(concat('generated_creator-', $output_local_id), true())} 
    185                                                         else 
    186                                                         element localIdentifier  {escape-uri(concat('generated_creator-', data($DIF/dif:Entry_ID)), true())} 
    187                                                         }, 
    188                                                 element roleName {'Data Creator'}, 
    189                                                 element abbreviation {'Creator'}, 
    190                                                 for $creatorID in $DIF/dif:Originating_Center 
    191                                                 return 
    192                                                 element dgRoleHolder { 
    193                                                         element dgOrganisationID { 
    194                                                                 element schemeIdentifier {'NDG-B0'}, 
    195                                                                 element repositoryIdentifier {$input_repository}, 
    196                                                                 if ($output_local_id != 'Output_LocalID') then 
    197                                                                         element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID), '-', $output_local_id), true())} 
    198                                                                 else 
    199                                                                         element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID), '-', data($DIF/dif:Entry_ID)), true())} 
    200                                                         }, 
    201                                                 element startDate {current-date()} 
    202                                                 } 
    203                                         } 
    204                                 else (), 
    205                                 element dgDataCurator { 
    206                                         element dgMetadataID { 
    207                                                 element schemeIdentifier {'NDG-B0'}, 
    208                                                 element repositoryIdentifier {$input_repository}, 
    209                                                 if ($output_local_id != 'Output_LocalID') then 
    210                                                         element localIdentifier  {escape-uri(concat('generated_curator-', $output_local_id), true())} 
    211                                                 else 
    212                                                         element localIdentifier  {escape-uri(concat('generated_curator-', data($DIF/dif:Entry_ID)), true())} 
    213                                         }, 
    214                                         element roleName {'Data Curator'}, 
    215                                         element abbreviation {'Curator'}, 
    216                                         element dgRoleHolder { 
    217                                                 element dgOrganisationID { 
    218                                                         element schemeIdentifier {'NDG-B0'}, 
    219                                                         element repositoryIdentifier {$input_repository}, 
    220                                                         element localIdentifier {$input_repository_local} 
    221                                                 }, 
    222                                         element startDate {current-date()} 
    223                                         } 
    224                                 } 
    225                         } 
    226                 }, 
    227                 element dgStructuredKeyword { 
    228                         element dgValidTerm {'d2b converted record'}, 
    229                         element dgValidTermID { 
    230                                 element ParentListID {$voclib:unknown_vocab_id}, 
    231                                 element TermID {'d2b'} 
    232                         } 
    233                 }, 
    234                 for $structuredKeywords in $DIF/dif:Keyword 
    235                 return  
    236                         element dgStructuredKeyword { 
    237                                 element dgValidTerm {$structuredKeywords}, 
    238                                 element dgValidTermID { 
    239                                 if ($structuredKeywords='MDIP' or $structuredKeywords='NERC' or $structuredKeywords='NERC_DDC') then 
    240                                 element ParentListID {$voclib:ndg_data_provider_vocab} 
    241                                 else 
    242                                 element ParentListID {$voclib:unknown_vocab_id} 
    243                                 , 
    244                                         element TermID {escape-uri($structuredKeywords, true())} 
    245                                 } 
    246                         }, 
    247                 for $structuredKeywords in $DIF/dif:ISO_Topic_Category 
    248                 return  
    249                         element dgStructuredKeyword { 
    250                                 element dgValidTerm {string($structuredKeywords)}, 
    251                                 element dgValidTermID { 
    252                                         element ParentListID {$voclib:gcmd_iso_topic_list}, 
    253                                         element TermID {escape-uri($structuredKeywords, true())} 
    254                                 } 
    255                         }, 
    256                 if (exists($DIF/dif:DIF_Creation_Date) or exists($DIF/dif:Last_DIF_Revision_Date)) then  
    257                         element dgMetadataProvenance { 
    258                                 if (exists($DIF/dif:DIF_Creation_Date)) then 
    259                                         element RecordCreation { 
    260                                                 element CreatedDate { 
    261                                                         if (string($DIF/dif:DIF_Creation_Date) castable as xs:date) then  
    262                                                                 string($DIF/dif:DIF_Creation_Date) cast as xs:date 
    263                                                         else (current-date()) 
    264                                                 }, 
    265                                         element CreatedBy {$input_repository} 
    266                                         } 
    267                                 else  
    268                                         element RecordCreation { 
    269                                                 element CreatedDate {current-date()}, 
    270                                                 element CreatedBy {'MOLES Import'} 
    271                                         }, 
    272                                 if (exists($DIF/dif:Last_DIF_Revision_Date)) then 
    273                                         element RecordUpdate { 
    274                                                 element UpdateDate { 
    275                                                         if (string($DIF/dif:Last_DIF_Revision_Date) castable as xs:dateTime) then  
    276                                                                 string($DIF/dif:Last_DIF_Revision_Date) cast as xs:dateTime 
    277                                                         else (current-dateTime()) 
    278                                                 }, 
    279                                                 element UpdatedBy {$input_repository} 
    280                                         } 
    281                                 else () 
    282                         } 
    283                 else () 
    284         } (: </dgMetadataRecord>:), 
    285         for $creator in distinct-values($DIF/(dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center)) 
    286         return 
    287                 element dgOrganisation { 
    288                         element dgMetadataID { 
    289                                 element schemeIdentifier {'NDG-B0'}, 
    290                                 element repositoryIdentifier {$input_repository}, 
    291                                 if ($output_local_id != 'Output_LocalID') then 
    292                                         element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creator), '-', $output_local_id), true())} 
    293                                 else 
    294                                         element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creator), '-', data($DIF/dif:Entry_ID)), true())} 
    295                         }, 
    296                         element name {string($creator)}, 
    297                         element abbreviation {string($creator)}, 
    298                         element contactDetails {''} 
    299                 } 
     20element dgMetadataRecord { 
     21element dgMetadataID { 
     22element schemeIdentifier {'NDG-B0'}, 
     23element repositoryIdentifier {$input_repository}, 
     24if ($output_local_id != 'Output_LocalID') then 
     25element localIdentifier {$output_local_id} 
     26else 
     27element localIdentifier {escape-uri(string($DIF/dif:Entry_ID), true())} 
     28}, 
     29element dgMetadataDescription { 
     30element metadataDescriptionID { 
     31element schemeIdentifier {'NDG-B0'}, 
     32element repositoryIdentifier {$input_repository}, 
     33if ($output_local_id != 'Output_LocalID') then 
     34element localIdentifier {concat('generated_desc-', $output_local_id)} 
     35else 
     36element localIdentifier {concat('generated_desc-', escape-uri(string($DIF/dif:Entry_ID), true()))} 
     37}, 
     38element metadataDescriptionLastUpdated {current-date()}                 , 
     39element abstract { 
     40element abstractText {string($DIF/dif:Summary)} 
     41} 
     42}, 
     43element name {string($DIF/dif:Entry_Title)}, 
     44element abbreviation {string($DIF/dif:Entry_Title)}, 
     45element dgDataEntity { 
     46element dgDataSetType {''}, 
     47element dgDataSummary { 
     48for $parameter in $DIF/dif:Parameters 
     49return 
     50element dgParameterSummary { 
     51element dgParameterValue { 
     52element dgValueDataParameter { 
     53element Value {''}, 
     54element dgStandardUnit { 
     55element dgValidTerm {'dummy'}, 
     56element dgValidTermID { 
     57element ParentListID {$voclib:unknown_vocab_id}, 
     58element TermID {escape-uri('dummy unit', true())} 
     59} 
     60} 
     61} 
     62}, 
     63element dgStdParameterMeasured { 
     64element dgValidTerm { 
     65concat (string($parameter/dif:Category), ' > ', string($parameter/dif:Topic), ' > ', string($parameter/dif:Term)), 
     66if (exists($parameter/dif:Variable)) then 
     67concat(' > ', string($parameter/dif:Variable)) 
     68else (), 
     69if (exists($parameter/dif:Detailed_Variable)) then 
     70concat(' > ', string($parameter/dif:Detailed_Variable)) 
     71else () 
     72}, 
     73element dgValidTermID { 
     74element ParentListID {concat($voclib:gcmd_science_valids, '/current')}, 
     75element TermID {escape-uri($parameter/dif:Category, true())} 
     76} 
     77}, 
     78element ParameterName { 
     79concat (string($parameter/dif:Category), ' > ', string($parameter/dif:Topic), ' > ', string($parameter/dif:Term)), 
     80if (exists($parameter/dif:Variable)) then 
     81concat(' > ', string($parameter/dif:Variable)) 
     82else (), 
     83if (exists($parameter/dif:Detailed_Variable)) then 
     84concat(' > ', string($parameter/dif:Detailed_Variable)) 
     85else () 
     86}, 
     87element ParameterAbbreviation { 
     88concat (string($parameter/dif:Category), ' > ', string($parameter/dif:Topic), ' > ', string($parameter/dif:Term)), 
     89if (exists($parameter/dif:Variable)) then 
     90concat(' > ', string($parameter/dif:Variable)) 
     91else (), 
     92if (exists($parameter/dif:Detailed_Variable)) then 
     93concat(' > ', string($parameter/dif:Detailed_Variable)) 
     94else () 
     95} 
     96}, 
     97if (exists($DIF/dif:Spatial_Coverage) or exists($DIF/dif:Paleo_Temporal_Coverage) or exists($DIF/dif:Location) or exists($DIF/dif:Temporal_Coverage)) then 
     98element dgDataCoverage { 
     99if (exists($DIF/dif:Spatial_Coverage)  or exists($DIF/dif:Location))  then 
     100element dgSpatialCoverage { 
     101for $boundingbox in $DIF/dif:Spatial_Coverage[exists(dif:Northernmost_Latitude) 
     102and exists(dif:Southernmost_Latitude) 
     103and exists(dif:Easternmost_Longitude) 
     104and exists(dif:Westernmost_Longitude)] 
     105return 
     106element BoundingBox { 
     107element LimitNorth {data(inputParse:fix-coord($boundingbox/dif:Northernmost_Latitude))}, 
     108element LimitSouth {data(inputParse:fix-coord($boundingbox/dif:Southernmost_Latitude))}, 
     109element LimitWest {data(inputParse:fix-coord($boundingbox/dif:Westernmost_Longitude))}, 
     110element LimitEast {data(inputParse:fix-coord($boundingbox/dif:Easternmost_Longitude))} 
     111}, 
     112for $location in $DIF/dif:Location 
     113return 
     114element dgArea { 
     115element dgValidTerm {string($location)}, 
     116element dgValidTermID { 
     117element ParentListID {concat($voclib:gcmd_location_valids, '/current')}, 
     118element TermID {escape-uri($location, true())} 
     119} 
     120} 
     121} 
     122else (), 
     123if (exists($DIF/dif:Temporal_Coverage/dif:Start_Date) or exists($DIF/dif:Paleo_Temporal_Coverage/dif:Paleo_Start_Date) or exists($DIF/dif:Chronostratigraphic_Unit)) then 
     124element dgTemporalCoverage { 
     125for $temporalcoverage in $DIF/dif:Temporal_Coverage[exists(dif:Start_Date)] 
     126return 
     127element DateRange { 
     128element DateRangeStart {string($temporalcoverage/dif:Start_Date)}, 
     129element DateRangeEnd {string($temporalcoverage/dif:Stop_Date)} 
     130}, 
     131for $paleotemporalcoverage in $DIF/dif:Paleo_Temporal_Coverage[exists(dif:Paleo_Start_Date)] 
     132return 
     133element DateRange { 
     134element DateRangeStart {string($paleotemporalcoverage/dif:Paleo_Start_Date)}, 
     135element DateRangeEnd {string($paleotemporalcoverage/dif:Paleo_Stop_Date)} 
     136}, 
     137for $chronostratigraphic in $DIF/dif:Chronostratigraphic_Unit 
     138return 
     139element dgChronostratigraphicTerm { 
     140element dgValidTerm {string($chronostratigraphic)}, 
     141element dgValidTermID { 
     142element ParentListID {concat($voclib:gcmd_chronostratigraphic_valids, '/current')}, 
     143element TermID {escape-uri($chronostratigraphic, true())} 
     144} 
     145} 
     146} 
     147else () 
     148} 
     149else () 
     150}, 
     151element dgDataRoles { 
     152if (exists($DIF/dif:Data_Set_Citation/dif:Dataset_Creator)) then 
     153element dgDataCreator { 
     154element dgMetadataID { 
     155element schemeIdentifier {'NDG-B0'}, 
     156element repositoryIdentifier {$input_repository}, 
     157if ($output_local_id != 'Output_LocalID') then 
     158element localIdentifier {concat('generated_creator-', $output_local_id)} 
     159else 
     160element localIdentifier {concat('generated_creator-', escape-uri(string($DIF/dif:Entry_ID), true()))} 
     161}, 
     162element roleName {'Data Creator'}, 
     163element abbreviation {'Creator'}, 
     164for $creatorID in $DIF/dif:Data_Set_Citation/dif:Dataset_Creator 
     165return 
     166element dgRoleHolder { 
     167element dgOrganisationID { 
     168element schemeIdentifier {'NDG-B0'}, 
     169element repositoryIdentifier {$input_repository}, 
     170if ($output_local_id != 'Output_LocalID') then 
     171element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID), '-', $output_local_id), true())} 
     172else 
     173element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID), '-', data($DIF/dif:Entry_ID)), true())} 
     174}, 
     175element startDate {current-date()} 
     176} 
     177} 
     178else if (exists($DIF/dif:Originating_Center)) then 
     179element dgDataCreator { 
     180element dgMetadataID { 
     181element schemeIdentifier {'NDG-B0'}, 
     182element repositoryIdentifier {$input_repository}, 
     183if ($output_local_id != 'Output_LocalID') then 
     184element localIdentifier  {escape-uri(concat('generated_creator-', $output_local_id), true())} 
     185else 
     186element localIdentifier  {escape-uri(concat('generated_creator-', data($DIF/dif:Entry_ID)), true())} 
     187}, 
     188element roleName {'Data Creator'}, 
     189element abbreviation {'Creator'}, 
     190for $creatorID in $DIF/dif:Originating_Center 
     191return 
     192element dgRoleHolder { 
     193element dgOrganisationID { 
     194element schemeIdentifier {'NDG-B0'}, 
     195element repositoryIdentifier {$input_repository}, 
     196if ($output_local_id != 'Output_LocalID') then 
     197element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID), '-', $output_local_id), true())} 
     198else 
     199element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID), '-', data($DIF/dif:Entry_ID)), true())} 
     200}, 
     201element startDate {current-date()} 
     202} 
     203} 
     204else (), 
     205element dgDataCurator { 
     206element dgMetadataID { 
     207element schemeIdentifier {'NDG-B0'}, 
     208element repositoryIdentifier {$input_repository}, 
     209if ($output_local_id != 'Output_LocalID') then 
     210element localIdentifier  {escape-uri(concat('generated_curator-', $output_local_id), true())} 
     211else 
     212element localIdentifier  {escape-uri(concat('generated_curator-', data($DIF/dif:Entry_ID)), true())} 
     213}, 
     214element roleName {'Data Curator'}, 
     215element abbreviation {'Curator'}, 
     216element dgRoleHolder { 
     217element dgOrganisationID { 
     218element schemeIdentifier {'NDG-B0'}, 
     219element repositoryIdentifier {$input_repository}, 
     220element localIdentifier {$input_repository_local} 
     221}, 
     222element startDate {current-date()} 
     223} 
     224} 
     225} 
     226}, 
     227element dgStructuredKeyword { 
     228element dgValidTerm {'d2b converted record'}, 
     229element dgValidTermID { 
     230element ParentListID {$voclib:unknown_vocab_id}, 
     231element TermID {'d2b'} 
     232} 
     233}, 
     234for $structuredKeywords in $DIF/dif:Keyword 
     235return  
     236element dgStructuredKeyword { 
     237element dgValidTerm {string($structuredKeywords)}, 
     238element dgValidTermID { 
     239if ($structuredKeywords='MDIP' or $structuredKeywords='NERC' or $structuredKeywords='NERC_DDC') then 
     240element ParentListID {concat(voclib:ndg_data_provider_vocab, '/current')} 
     241else 
     242element ParentListID {$voclib:unknown_vocab_id} 
     243, 
     244element TermID {escape-uri($structuredKeywords, true())} 
     245} 
     246}, 
     247for $structuredKeywords in $DIF/dif:ISO_Topic_Category 
     248return  
     249element dgStructuredKeyword { 
     250element dgValidTerm {string($structuredKeywords)}, 
     251element dgValidTermID { 
     252element ParentListID {concat($voclib:iso_topic_list, '/current')}, 
     253element TermID {escape-uri($structuredKeywords, true())} 
     254} 
     255}, 
     256if (exists($DIF/dif:DIF_Creation_Date) or exists($DIF/dif:Last_DIF_Revision_Date)) then  
     257element dgMetadataProvenance { 
     258if (exists($DIF/dif:DIF_Creation_Date)) then 
     259element RecordCreation { 
     260element CreatedDate { 
     261if (string($DIF/dif:DIF_Creation_Date) castable as xs:date) then  
     262string($DIF/dif:DIF_Creation_Date) cast as xs:date 
     263else (current-date()) 
     264}, 
     265element CreatedBy {$input_repository} 
     266} 
     267else  
     268element RecordCreation { 
     269element CreatedDate {current-date()}, 
     270element CreatedBy {'MOLES Import'} 
     271}, 
     272if (exists($DIF/dif:Last_DIF_Revision_Date)) then 
     273element RecordUpdate { 
     274element UpdateDate { 
     275if (string($DIF/dif:Last_DIF_Revision_Date) castable as xs:dateTime) then  
     276string($DIF/dif:Last_DIF_Revision_Date) cast as xs:dateTime 
     277else (current-dateTime()) 
     278}, 
     279element UpdatedBy {$input_repository} 
     280} 
     281else () 
     282} 
     283else () 
     284} (: </dgMetadataRecord>:), 
     285for $creator in distinct-values($DIF/(dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center)) 
     286return 
     287element dgOrganisation { 
     288element dgMetadataID { 
     289element schemeIdentifier {'NDG-B0'}, 
     290element repositoryIdentifier {$input_repository}, 
     291if ($output_local_id != 'Output_LocalID') then 
     292element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creator), '-', $output_local_id), true())} 
     293else 
     294element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creator), '-', data($DIF/dif:Entry_ID)), true())} 
     295}, 
     296element name {string($creator)}, 
     297element abbreviation {string($creator)}, 
     298element contactDetails {''} 
     299} 
    300300} (:    </dgMetadata> :) 
  • TI07-MOLES/trunk/MDIP/XQueries/MDIP2MOLES.xquery

    r2142 r2192  
    1010declare namespace mdip='http://www.dassh.ac.uk'; 
    1111declare namespace gco='http://www.isotc211.org/2005/gco'; 
    12 declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
     12 
    1313declare variable $input_collection as xs:string {'TargetCollection'}; 
    14  
    1514declare variable $input_repository as xs:string {'Input_Repository_Code'}; 
    1615declare variable $input_repository_local as xs:string {'Input_Repository_LocalID'}; 
     
    2322 
    2423declare variable $cf_standard_names as xs:string {'http://www.cgd.ucar.edu/cms/eaton/cf-metadata/standard_name.html'}; 
    25  
    26 (: declare variable $gcmd_science_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'}; :) 
    27 declare variable $gcmd_science_valids as xs:string {'http://vocab.ndg.nerc.ac.uk/P041'}; 
    28 declare variable $gcmd_project_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/projects.html'}; 
    29 declare variable $gcmd_location_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/locations.html'}; 
    30 declare variable $gcmd_paleotemporal_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/paleotemporal.html'}; 
    31 declare variable $gcmd_iso_topic_list as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/iso_topic_list.html'}; 
    32  
    33 declare variable $iho_s23_list as xs:string {'http://vocab.ndg.nerc.ac.uk/C161'}; 
    34  
    35 (: declare variable $iso_topic_list as xs:string {'http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'}; :) 
    36 declare variable $iso_topic_list as xs:string {'http://vocab.ndg.nerc.ac.uk/P051'}; 
    37 declare variable $ISO_639-2_ns as xs:string{'UKGemini_Langauge_Categories'}; 
    38 declare variable $ISO_3166_ns as xs:string{'UKGemini_Land_Area_Categories'}; 
    39  
    40 declare variable $ndg_data_provider_vocab as xs:string {'http://vocab.ndg.nerc.ac.uk/N010'}; 
    41 declare variable $ndg_vertical_extent_base as xs:string {'http://vocab.ndg.nerc.ac.uk/null'}; 
    4224 
    4325for $MDIP in collection($input_collection)/mdip:Metadata[mdip:DatasetIdentifier=$input_DatasetIdentifier] 
     
    136118                                                                } 
    137119                                                } (: /dgSpatialCoverage :), 
    138                                                 element dgTemporalCoverage { (: didn't bother trying to validate the Dates as the example is naff to start with :) 
     120                                                element dgTemporalCoverage {  
     121                                                (: didn't bother trying to validate the Dates as the example is naff to start with :) 
    139122                                                        for $date in $MDIP/mdip:Date 
    140123                                                        return 
     
    146129                                                                else if (exists($MDIP/mdip:Date/mdip:DatasetStartDate)) then  element DataSingle {data($MDIP/mdip:Date/mdip:DatasetStartDate)} 
    147130                                                                else element DataSingle {data($MDIP/mdip:Date/mdip:DatasetEndDate)} 
    148                                                 } 
    149                                         } (: /dgDataCoverage :), 
     131                                                                } (: /dgTemporalCoverage :) 
     132                                                        } (: /dgDataCoverage :), 
    150133                                        if (exists($MDIP/mdip:DatasetRefDate)) then 
    151134                                                element dgDatasetProvenance {element dgDataPublicationDate {data($MDIP/mdip:DatasetRefDate)}} 
     
    279262                                        } 
    280263                                else () 
    281                         } 
     264                        } (: dgMetadataProvenance :) 
    282265                else () 
    283266        } (: </dgMetadataRecord>:), 
    284267        for $creator in $MDIP/mdip:Originator 
    285268        return 
    286                 element dgOrganisation { (: needs expansion... :) 
     269                element dgOrganisation { 
     270                (: needs expansion... :) 
    287271                        element dgMetadataID { 
    288272                                element schemeIdentifier {'NDG-B0'}, 
     
    297281                        element contactDetails {''} 
    298282                } 
    299 } (:    </dgMetadata> :) 
     283} 
     284(:    </dgMetadata> :) 
  • TI07-MOLES/trunk/xqueryLib/Vocabs/vocab_xquery_lib.xquery

    r2171 r2192  
    3333declare variable $voclib:ISO_3166_ns as xs:string{'UKGemini_Land_Area_Categories'}; 
    3434 
     35(: IHO list :) 
     36declare variable $voclib:iho_s23_list as xs:string {'http://vocab.ndg.nerc.ac.uk/C161'}; 
     37 
    3538declare function voclib:spot-vocab($vocab_root as xs:string, $vocab_uri as xs:string) as xs:boolean  
    3639(: See if the vocab pointed if from the vocab pointed at by the vocab_root :) 
Note: See TracChangeset for help on using the changeset viewer.