Changeset 1798 for TI07-MOLES/trunk/DIF


Ignore:
Timestamp:
04/12/06 11:50:35 (13 years ago)
Author:
ko23
Message:

Beta version of d2b for DIF

File:
1 edited

Legend:

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

    r1795 r1798  
    66declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';  
    77declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
     8declare variable $input_collection as xs:string {'/db/discovery'}; 
     9declare variable $ndg_data_provider_vocab as xs:string {'http://vocab.ndg.nerc.ac.uk/N010'}; 
    810declare variable $gcmd_science_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'}; 
    911declare variable $gcmd_project_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/projects.html'}; 
     
    1416 
    1517element dgMetadata { 
    16 for $DIF in collection('/db/discovery')/dif:DIF 
     18for $DIF in collection($input_collection)/dif:DIF[dif:Entry_ID='NOCSDAT100'] 
    1719return 
    1820        element dgMetadataRecord { 
     
    2830                                element localIdentifier {concat('generated_desc-', string($DIF/dif:Entry_ID))} 
    2931                        }, 
    30                         element metadataDescriptionLastUpdated {current-dateTime()}                     , 
     32                        element metadataDescriptionLastUpdated {current-date()}                 , 
    3133                        element abstract { 
    3234                                element abstractText {string($DIF/dif:Summary)} 
     
    3941                        element dgDataSummary { 
    4042                                element dgParameterSummary { 
    41                                         element dgStandardParameterMeasured { 
     43                                        element dgParameterValue { 
     44                                                element dgValueDataParameter { 
     45                                                        element Value {''}, 
     46                                                        element dgStandardUnit { 
     47                                                                element dgValidTerm {'dummy'}, 
     48                                                                element dgValidTermID { 
     49                                                                        element ParentListID {'http://vocabs.ndg.nerc.ac.uk/null.'}, 
     50                                                                        element TermID {escape-uri('dummy unit', true())} 
     51                                                                } 
     52                                                        } 
     53                                                } 
     54                                        }, 
     55                                        element dgStdParameterMeasured { 
    4256                                                element dgValidTerm {'dummy'}, 
    4357                                                element dgValidTermID { 
    44                                                         element parentListID {'http://vocabs.ndg.nerc.ac.uk/null.'}, 
    45                                                         element termID {escape-uri('dummy term', true())} 
    46                                                 }, 
     58                                                        element ParentListID {'http://vocabs.ndg.nerc.ac.uk/null.'}, 
     59                                                        element TermID {escape-uri('dummy term', true())} 
     60                                                } 
     61                                        }, 
    4762                                        element ParameterName {'dummy term'}, 
    4863                                        element ParameterAbbreviation {'dummy term'} 
     64                                }, 
     65                                if (exists($DIF/(dif:Spatial_Coverage)) or exists($DIF/dif:Temporal_Coverage)) then 
     66                                        element dgDataCoverage { 
     67                                                if (exists($DIF/dif:Spatial_Coverage/dif:Northernmost_Latitude)) then 
     68                                                        element dgSpatialCoverage { 
     69                                                                for $boundingbox in $DIF/dif:Spatial_Coverage[exists(dif:Northernmost_Latitude)] 
     70                                                                return 
     71                                                                        element BoundingBox { 
     72                                                                                element Limit_North {string($boundingbox/dif:Northernmost_Latitude)}, 
     73                                                                                element Limit_South {string($boundingbox/dif:Southernmost_Latitude)}, 
     74                                                                                element Limit_West {string($boundingbox/dif:Westernmost_Longitude)}, 
     75                                                                                element Limit_East {string($boundingbox/dif:Easternmost_Longitude)} 
     76                                                                        } 
     77                                                        } 
     78                                                else (), 
     79                                                if (exists($DIF/dif:Temporal_Coverage/dif:Start_Date)) then 
     80                                                        element dgTemporalCoverage { 
     81                                                                for $temporalcoverage in $DIF/dif:Temporal_Coverage[exists(dif:Start_Date) and exists(dif:Stop_Date)] 
     82                                                                return 
     83                                                                        element DateRange { 
     84                                                                                element DateRangeStart {string($temporalcoverage/dif:Start_Date)}, 
     85                                                                                element DateRangeEnd {string($temporalcoverage/dif:Stop_Date)} 
     86                                                                        } 
     87                                                        } 
     88                                                else () 
    4989                                        } 
    50                                 } 
     90                                else () 
    5191                        }, 
    5292                        element dgDataRoles { 
     
    68108                                                                element localIdentifier  {escape-uri(concat('generated_orgcit-', string($creatorID)), true())} 
    69109                                                        }, 
    70                                                 element startDate {current-dateTime()} 
     110                                                element startDate {current-date()} 
    71111                                                } 
    72112                                        } 
     
    86126                                                        element localIdentifier {$input_repository_local} 
    87127                                                }, 
    88                                         element startDate {current-dateTime()} 
     128                                        element startDate {current-date()} 
    89129                                        } 
    90130                                } 
    91131                        } 
    92132                }, 
    93                 for $structuredKeywords in $DIF/Keywords 
     133                element dgStructuredKeyword { 
     134                        element dgValidTerm {'MDIP'}, 
     135                        element dgValidTermID { 
     136                                element ParentListID {$ndg_data_provider_vocab}, 
     137                                element TermID {'NDGO0001'} 
     138                        } 
     139                }, 
     140                for $structuredKeywords in $DIF/dif:Keywords 
    94141                return  
    95                         element dgStructuredKeywords { 
     142                        element dgStructuredKeyword { 
    96143                                element dgValidTerm {$structuredKeywords}, 
    97144                                element dgValidTermID { 
    98                                         element parentListID {'http://vocab.ndg.nerc.ac.uk/null.'}, 
    99                                         element termID {escape-uri($structuredKeywords, true())} 
     145                                        element ParentListID {'http://vocab.ndg.nerc.ac.uk/null.'}, 
     146                                        element TermID {escape-uri($structuredKeywords, true())} 
     147                                } 
     148                        }, 
     149                for $structuredKeywords in $DIF/dif:ISO_Topic_Category 
     150                return  
     151                        element dgStructuredKeyword { 
     152                                element dgValidTerm {string($structuredKeywords)}, 
     153                                element dgValidTermID { 
     154                                        element ParentListID {'http://vocab.ndg.nerc.ac.uk/null.'}, 
     155                                        element TermID {escape-uri(string($structuredKeywords), true())} 
    100156                                } 
    101157                        }, 
     
    104160                                if (exists($DIF/dif:DIF_Creation_Date)) then 
    105161                                        element RecordCreation { 
    106                                                 element CreatedDate {string($DIF/dif:DIF_Creation_Date)}, 
    107                                                 element CreatedBy {$input_repository} 
     162                                                element CreatedDate { 
     163                                                        if (string($DIF/dif:DIF_Creation_Date) castable as xs:date) then  
     164                                                                string($DIF/dif:DIF_Creation_Date) cast as xs:date 
     165                                                        else (current-date()) 
     166                                                }, 
     167                                        element CreatedBy {$input_repository} 
    108168                                        } 
    109169                                else  
    110170                                        element RecordCreation { 
    111                                                 element CreatedDate {current-dateTime()}, 
     171                                                element CreatedDate {current-date()}, 
    112172                                                element CreatedBy {'MOLES Import'} 
    113173                                        }, 
    114174                                if (exists($DIF/dif:Last_DIF_Revision_Date)) then 
    115175                                        element RecordUpdate { 
    116                                                 element UpdateDate {$DIF/dif:Last_DIF_Revision_Date}, 
    117                                                 element UpdateBy {$input_repository} 
     176                                                element UpdateDate { 
     177                                                        if (string($DIF/dif:Last_DIF_Revision_Date) castable as xs:date) then  
     178                                                                string($DIF/dif:Last_DIF_Revision_Date) cast as xs:date 
     179                                                        else (current-date()) 
     180                                                }, 
     181                                                element UpdatedBy {$input_repository} 
    118182                                        } 
    119183                                else () 
     
    121185                else () 
    122186        } (: </dgMetadataRecord>:), 
    123         for $creator in distinct-values(collection('/db/discovery')/dif:DIF/dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center) 
     187        for $creator in distinct-values(collection($input_collection)/dif:DIF/dif:Data_Set_Citation/dif:Dataset_Creator | dif:Originating_Center) 
    124188        return 
    125189                element dgOrganisation { 
Note: See TracChangeset for help on using the changeset viewer.