Changeset 2358 for TI07-MOLES/trunk/DIF


Ignore:
Timestamp:
02/04/07 08:36:07 (13 years ago)
Author:
ko23
Message:

Base NDG2DIF bugfix + Python lib (no XQueryLib dependence)

Location:
TI07-MOLES/trunk/DIF/XQuery
Files:
2 edited

Legend:

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

    r2291 r2358  
    99 
    1010(: Replacable parameters :) 
     11declare variable $targetCollection as xs:string {'/db/discovery'}; 
     12declare variable $input_repository as xs:string {'Input_Repository_Code'}; 
     13declare variable $input_repository_local as xs:string {'Input_Repository_LocalID'}; 
     14declare variable $input_entry_id as xs:string {'GEOARCHIVES'}; 
     15declare variable $localIdentifier as xs:string {'GEOARCHIVES'}; 
     16 
     17declare variable $output_local_id as xs:string {'Output_LocalID'}; 
     18(: Keep 
    1119declare variable $targetCollection as xs:string {'TargetCollection'}; 
    1220declare variable $input_repository as xs:string {'Input_Repository_Code'}; 
     
    1422declare variable $input_entry_id as xs:string {'Input_Entry_ID'}; 
    1523declare variable $output_local_id as xs:string {'Output_LocalID'}; 
    16  
     24:) 
    1725for $DIF in collection($targetCollection)/dif:DIF[dif:Entry_ID=$input_entry_id] 
    1826return 
     
    3846element metadataDescriptionLastUpdated {current-date()}                 , 
    3947element abstract { 
    40 element abstractText {string($DIF/dif:Summary)} 
     48element abstractText {string($DIF/dif:Summary)}, 
     49for $descOnline in $DIF/dif:Related_URL 
     50return 
     51element descriptionSection { 
     52element descriptionOnlineReference { 
     53element dgSimpleLink {escape-uri(data($descOnline/dif:URL), true())}}, 
     54if (exists($descOnline/dif:URL_Content_Type)) then  
     55element dgReferenceName {data($descOnline/dif:URL)} 
     56else () 
     57} 
    4158} 
    4259}, 
     
    6279}, 
    6380element dgStdParameterMeasured { 
    64 element dgValidTerm {string($parameter/dif:Category)}, 
     81if ($parameter/dif:Category!='') then element dgValidTerm {string($parameter/dif:Category)} 
     82else  element dgValidTerm {'unknown'}, 
    6583element dgValidTermID { 
    6684element ParentListID {concat($voclib:gcmd_science_valids_categories, '/current')}, 
     
    6886}, 
    6987element dgValidSubterm { 
    70 element dgValidTerm {string($parameter/dif:Topic)}, 
     88if ($parameter/dif:Topic!='') then element dgValidTerm {string($parameter/dif:Topic)} 
     89else  element dgValidTerm {'unknown'}, 
    7190element dgValidTermID { 
    7291element ParentListID {concat($voclib:gcmd_science_valids_topics, '/current')}, 
    73 element TermID {escape-uri($parameter/dif:Category, true())} 
     92element TermID {escape-uri($parameter/dif:Topic, true())} 
    7493}, 
    7594element dgValidSubterm { 
    76 element dgValidTerm {string($parameter/dif:Term)}, 
     95if ($parameter/dif:Term!='') then element dgValidTerm {string($parameter/dif:Term)} 
     96else  element dgValidTerm {'unknown'}, 
    7797element dgValidTermID { 
    7898element ParentListID {concat($voclib:gcmd_science_valids_terms, '/current')}, 
    7999element TermID {escape-uri($parameter/dif:Term, true())} 
    80100}, 
    81 if (exists($parameter/dif:Variable)) then 
     101if (exists($parameter/dif:Variable) and $parameter/dif:Variable!='') then 
    82102element dgValidSubterm { 
    83103element dgValidTerm {string($parameter/dif:Variable)}, 
     
    86106element TermID {escape-uri($parameter/dif:Variable, true())} 
    87107}, 
    88 if (exists($parameter/dif:Detailed_Variable)) then 
     108if (exists($parameter/dif:Detailed_Variable) and $parameter/dif:Detailed_Variable!='') then 
    89109element dgValidSubterm { 
    90110element dgValidTerm {string($parameter/dif:Detailed_Variable)}, 
     
    106126element ParameterName { 
    107127concat (string($parameter/dif:Category), ' > ', string($parameter/dif:Topic), ' > ', string($parameter/dif:Term)), 
    108 if (exists($parameter/dif:Variable)) then 
     128if (exists($parameter/dif:Variable) and $parameter/dif:Variable!='') then 
    109129concat(' > ', string($parameter/dif:Variable)) 
    110130else (), 
    111 if (exists($parameter/dif:Detailed_Variable)) then 
     131if (exists($parameter/dif:Detailed_Variable) and $parameter/dif:Detailed_Variable!='') then 
    112132concat(' > ', string($parameter/dif:Detailed_Variable)) 
    113133else () 
     
    115135element ParameterAbbreviation { 
    116136concat (string($parameter/dif:Category), ' > ', string($parameter/dif:Topic), ' > ', string($parameter/dif:Term)), 
    117 if (exists($parameter/dif:Variable)) then 
     137if (exists($parameter/dif:Variable) and $parameter/dif:Variable!='') then 
    118138concat(' > ', string($parameter/dif:Variable)) 
    119139else (), 
    120 if (exists($parameter/dif:Detailed_Variable)) then 
     140if (exists($parameter/dif:Detailed_Variable) and $parameter/dif:Detailed_Variable!='') then 
    121141concat(' > ', string($parameter/dif:Detailed_Variable)) 
    122142else () 
     
    193213return 
    194214element dgRoleHolder { 
    195 element dgOrganisationID { 
     215element dgMetadataID { 
    196216element schemeIdentifier {'NDG-B0'}, 
    197217element repositoryIdentifier {$input_repository}, 
  • TI07-MOLES/trunk/DIF/XQuery/NDG-DIF.xquery

    r2302 r2358  
    44declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';  
    55declare namespace moles='http://ndg.nerc.ac.uk/moles'; 
     6(: Keep 
    67declare variable $targetCollection as xs:string {'TargetCollection'}; 
    78declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
    89declare variable $localIdentifier as xs:string {'LocalID'}; 
     10:) 
     11declare variable $targetCollection as xs:string {'/db/discovery'}; 
     12declare variable $repositoryIdentifier as xs:string {'grid.bodc.nerc.ac.uk'}; 
     13declare variable $localIdentifier as xs:string {'neodc.nerc.ac.uk:DIF:NEODC_NCAVEO_LCM2000'}; 
    914 
    1015for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     
    137142                                for $DataCreatorRoleHolder in collection($targetCollection)/moles:dgMetadata/(moles:dgOrganisation | moles:dgPerson) 
    138143                                                [(moles:dgMetadataID/moles:schemeIdentifier='NDG-B0' 
    139                                                 and moles:dgMetadataID/moles:repositoryIdentifier=$DataCreatorRole/(moles:dgOrganisationID | moles:dgPersonID)/moles:repositoryIdentifier 
    140                                                 and moles:dgMetadataID/moles:localIdentifier=$DataCreatorRole/(moles:dgOrganisationID | moles:dgPersonID)/moles:localIdentifier)] 
     144                                                and moles:dgMetadataID/moles:repositoryIdentifier=$DataCreatorRole/*/moles:repositoryIdentifier 
     145                                                and moles:dgMetadataID/moles:localIdentifier=$DataCreatorRole/*/moles:localIdentifier)] 
    141146                                return  
    142147                                        element Originating_Center { 
     
    148153                                } 
    149154        else (), 
    150         for $DataCuratorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCurator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''] 
    151             return  
    152                 for $DataCuratorRoleHolder in collection($targetCollection)/moles:dgMetadata/*[(moles:dgMetadataID/moles:schemeIdentifier='NDG-B0' 
    153                    and moles:dgMetadataID/moles:repositoryIdentifier=$DataCuratorRole/*/moles:repositoryIdentifier 
    154                    and moles:dgMetadataID/moles:localIdentifier=$DataCuratorRole/*/moles:localIdentifier)] 
    155                     return  
    156                         element Data_Center { 
    157                         element Data_Center_Name { 
    158                                 element Short_Name { 
    159                                     if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
    160                                     string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) 
    161                             else  
    162                                 string($DataCuratorRoleHolder/moles:abbreviation) 
    163                             }, 
    164                         element Long_Name { 
    165                                 if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
    166                                     string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) 
    167                                 else string($DataCuratorRoleHolder/moles:name) 
    168                             } 
    169                         }, 
    170                         if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:URI)) then  
    171                                 element Data_Center_URL {data($DataCuratorRoleHolder/moles:contactDetails/moles:URI)} 
    172                         else (), 
    173                         for $DGID in $DE/moles:dgDataEntity/moles:dgDataGranule/moles:dataModelID 
    174                         return  
    175                             element Data_Set_ID {concat($DGID/moles:repositoryIdentifier, '__', $DGID/moles:schemeIdentifier, '__', $DGID/moles:localIdentifier)}, 
    176                         element  Personnel { 
    177                                 element Role {'Data Center Contact'}, 
    178                                 if (exists($DataCuratorRoleHolder/name/knownAs)) then  
    179                                     element First_Name {string($DataCuratorRoleHolder/moles:name/moles:knownAs)} 
    180                                 else if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
    181                                     element First_Name {string($DataCuratorRoleHolder/moles:name/moles:initials)} 
    182                                  else (),                                        
    183                                  element Last_Name { 
    184                                           if (exists($DataCuratorRoleHolder/moles:name/moles:familyName)) then  
    185                                               string($DataCuratorRoleHolder/moles:name/moles:familyName) 
    186                                     else string($DataCuratorRoleHolder/moles:name) 
    187                                     }, 
    188                                 if (exists($DataCuratorRole/moles:contactDetails/moles:eMail)) then  
    189                                     element Email {string($DataCuratorRole/moles:contactDetails/moles:eMail)} 
    190                                 else  
    191                                     if (exists($DataCuratorRoleHolder/contactDetails/eMail)) then  
    192                                             (element Email {string($DataCuratorRoleHolder/moles:contactDetails/moles:eMail)}) 
    193                                         else (), 
    194                                 if (exists($DataCuratorRole/moles:contactDetails/moles:telephone)) then  
    195                                     element Phone {string($DataCuratorRole/moles:contactDetails/moles:telephone)} 
    196                                 else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:telephone)) then  
    197                                             element Phone {string($DataCuratorRoleHolder/moles:contactDetails/moles:telephone)} 
    198                                  else (), 
    199                                 if (exists($DataCuratorRole/moles:contactDetails/moles:fax)) then  
    200                                     element Fax {string($DataCuratorRole/moles:contactDetails/moles:fax)} 
    201                                 else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:fax)) then  
    202                                             element Fax {string($DataCuratorRoleHolder/moles:contactDetails/moles:fax)} 
    203                                         else (), 
    204                                 if (exists($DataCuratorRole/moles:contactDetails/moles:address)) then  
    205                                     element Contact_Address { 
    206                                         for $addressline in $DataCuratorRole/moles:contactDetails/moles:address/moles:addressline 
    207                                             return element Address {data($addressline)}, 
    208                                                         if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:city)) then  
    209                                         element City {string($DataCuratorRole/moles:contactDetails/moles:address/moles:city)} 
    210                                     else (), 
    211                                     if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:postcode)) then  
    212                                         element Postal_Code {string($DataCuratorRole/moles:contactDetails/moles:address/moles:postcode)} 
    213                                     else (), 
    214                                      if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:country)) then  
    215                                          element Country {string($DataCuratorRole/moles:contactDetails/moles:address/moles:country)} 
    216                                      else () 
    217                                      } 
    218                                 else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address)) then  
    219                                     element Contact_Address { 
    220                                         for $addressline in $DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:addressline 
    221                                             return element Address {data($addressline)}, 
    222                                                             if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)) then  
    223                                             element City {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)} 
    224                                         else (), 
    225                                         if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:postcode)) then  
    226                                             element Postal_Code {string($DataCuratorRole/moles:contactDetails/moles:postcode)} 
    227                                         else (), 
    228                                          if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)) then  
    229                                              element Country {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)} 
    230                                          else () 
    231                                      } 
    232                                 else () 
    233                                  } 
    234                         }, 
     155        for $DataCuratorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCurator/moles:dgRoleHolder 
     156        [not(exists(moles:endDate)) or moles:endDate='']  
     157        return  
     158        for $DataCuratorRoleHolder in collection($targetCollection)/moles:dgMetadata/(moles:dgOrganisation | moles:dgPerson) 
     159        [(moles:dgMetadataID/moles:schemeIdentifier='NDG-B0' 
     160        and moles:dgMetadataID/moles:repositoryIdentifier=$DataCuratorRole/*/moles:repositoryIdentifier 
     161        and moles:dgMetadataID/moles:localIdentifier=$DataCuratorRole/*/moles:localIdentifier)] 
     162        return  
     163        element Data_Center { 
     164        element Data_Center_Name { 
     165        element Short_Name { 
     166        if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
     167        string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) 
     168        else  
     169        string($DataCuratorRoleHolder/moles:abbreviation) 
     170        }, 
     171        element Long_Name { 
     172        if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
     173        string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) 
     174        else string($DataCuratorRoleHolder/moles:name) 
     175        } 
     176        }, 
     177        if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:URI)) then  
     178        element Data_Center_URL {data($DataCuratorRoleHolder/moles:contactDetails/moles:URI)} 
     179        else (), 
     180        for $DGID in $DE/moles:dgDataEntity/moles:dgDataGranule/moles:dataModelID 
     181        return  
     182        element Data_Set_ID {concat($DGID/moles:repositoryIdentifier, $utillib:moles_id_separator, $DGID/moles:schemeIdentifier, $utillib:moles_id_separator, $DGID/moles:localIdentifier)}, 
     183        element  Personnel { 
     184        element Role {'Data Center Contact'}, 
     185        if (exists($DataCuratorRoleHolder/name/knownAs)) then  
     186        element First_Name {string($DataCuratorRoleHolder/moles:name/moles:knownAs)} 
     187        else if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
     188        element First_Name {string($DataCuratorRoleHolder/moles:name/moles:initials)} 
     189        else (),                                         
     190        element Last_Name { 
     191        if (exists($DataCuratorRoleHolder/moles:name/moles:familyName)) then  
     192        string($DataCuratorRoleHolder/moles:name/moles:familyName) 
     193        else string($DataCuratorRoleHolder/moles:name) 
     194        }, 
     195        if (exists($DataCuratorRole/moles:contactDetails/moles:eMail)) then  
     196        element Email {string($DataCuratorRole/moles:contactDetails/moles:eMail)} 
     197        else  
     198        if (exists($DataCuratorRoleHolder/contactDetails/eMail)) then  
     199        (element Email {string($DataCuratorRoleHolder/moles:contactDetails/moles:eMail)}) 
     200        else (), 
     201        if (exists($DataCuratorRole/moles:contactDetails/moles:telephone)) then  
     202        element Phone {string($DataCuratorRole/moles:contactDetails/moles:telephone)} 
     203        else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:telephone)) then  
     204        element Phone {string($DataCuratorRoleHolder/moles:contactDetails/moles:telephone)} 
     205        else (), 
     206        if (exists($DataCuratorRole/moles:contactDetails/moles:fax)) then  
     207        element Fax {string($DataCuratorRole/moles:contactDetails/moles:fax)} 
     208        else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:fax)) then  
     209        element Fax {string($DataCuratorRoleHolder/moles:contactDetails/moles:fax)} 
     210        else (), 
     211        if (exists($DataCuratorRole/moles:contactDetails/moles:address)) then  
     212        element Contact_Address { 
     213        for $addressline in $DataCuratorRole/moles:contactDetails/moles:address/moles:addressline 
     214        return element Address {data($addressline)}, 
     215        if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:city)) then  
     216        element City {string($DataCuratorRole/moles:contactDetails/moles:address/moles:city)} 
     217        else (), 
     218        if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:postcode)) then  
     219        element Postal_Code {string($DataCuratorRole/moles:contactDetails/moles:address/moles:postcode)} 
     220        else (), 
     221        if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:country)) then  
     222        element Country {string($DataCuratorRole/moles:contactDetails/moles:address/moles:country)} 
     223        else () 
     224        } 
     225        else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address)) then  
     226        element Contact_Address { 
     227        for $addressline in $DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:addressline 
     228        return element Address {data($addressline)}, 
     229        if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)) then  
     230        element City {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)} 
     231        else (), 
     232        if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:postcode)) then  
     233        element Postal_Code {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:postcode)} 
     234        else (), 
     235        if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)) then  
     236        element Country {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)} 
     237        else () 
     238        } 
     239        else () 
     240        } 
     241        }, 
    235242        element Summary {string($DE/moles:dgMetadataDescription/moles:abstract/moles:abstractText)}, 
    236243        for $DG in $DE/moles:dgDataEntity/moles:dgDataGranule 
     
    285292            for $RelURL_Desc in ($DE/moles:dgMetadataDescription/moles:descriptionSection/moles:descriptionOnlineReference)  
    286293            return 
     294                    if (exists($RelURL_Desc/moles:dgSimpleLink)) then 
    287295                    element Related_URL { 
    288                     if (exist($RelURL_Desc/dgSimpleLink)) then 
    289                     element URL {data($RelURL_Desc/dgSimpleLink/URI)}, 
     296                    element URL {data($RelURL_Desc/moles:dgSimpleLink/URI)}, 
    290297                    element Description {concat(data($RelURL_Desc/dgSimpleLink/moles:name), ' - ', data($RelURL_Desc/dgSimpleLink/moles:notes))} 
    291                     else () 
    292                          }, 
     298                    } 
     299                    else (), 
    293300        element Metadata_Name {'[CEOS IDN DIF]'}, 
    294301        element Metadata_Version {'9.4'}, 
Note: See TracChangeset for help on using the changeset viewer.