Changeset 1798 for TI07-MOLES/trunk


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

Beta version of d2b for DIF

Location:
TI07-MOLES/trunk
Files:
12 added
2 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 { 
  • TI07-MOLES/trunk/v1Schema/Schemae/ndgmetadata1.3.xsd

    r1795 r1798  
    1515                extension to dgMetadataProvenance: 
    1616                        MetadataLanguage 
     17                dgMetadataLastUpdated converted to date type from dateTime 
    1718                extension of dgDatasetProvenance in dgDataSummary: 
    1819                        dgDataPublicationDate 
     
    2627                make dgDataGranule optional, for those cases where the dataset is catalogued, but not accessible, 
    2728                        or is "virtual" 
    28                 rename dgRelatedDataEntity/RelatedDataGranuleID to dgRelatedDataEntity/RelatedDataEntityID 
     29                rename dgRelatedDataEntity/RelatedDataGranuleID to      dgRelatedDataEntity/RelatedDataEntityID 
    2930                change type of DQStatementReference to dgOnlineReferenceType 
    3031                add logo elements to dgOrganisation 
    3132                default added to "isOutput" in parameter summary 
     33                added std brackets, colon, and percent sign to permissible regular expression in identifiers 
    3234                        --> 
    3335        <xs:element name="dgMetadata"> 
     
    109111                                <xs:simpleType> 
    110112                                        <xs:restriction base="xs:string"> 
    111                                                 <xs:pattern value="[a-zA-Z][a-zA-Z0-9.\-/_]*"/> 
     113                                                <xs:pattern value="[a-zA-Z][a-zA-Z0-9.\-/_:%]*"/> 
    112114                                        </xs:restriction> 
    113115                                </xs:simpleType> 
     
    116118                                <xs:simpleType> 
    117119                                        <xs:restriction base="xs:string"> 
    118                                                 <xs:pattern value="[a-zA-Z][a-zA-Z0-9.\-/_]*"/> 
     120                                                <xs:pattern value="[a-zA-Z][a-zA-Z0-9.\-/_:%()]*"/> 
    119121                                        </xs:restriction> 
    120122                                </xs:simpleType> 
     
    271273                <xs:sequence> 
    272274                        <xs:element name="metadataDescriptionID" type="moles:dgMetadataIDType"/> 
    273                         <xs:element name="metadataDescriptionLastUpdated" type="xs:dateTime"/> 
     275                        <xs:element name="metadataDescriptionLastUpdated" type="xs:date"/> 
    274276                        <xs:element name="abstract"> 
    275277                                <xs:annotation> 
Note: See TracChangeset for help on using the changeset viewer.