Ignore:
Timestamp:
16/01/07 16:26:54 (13 years ago)
Author:
ko23
Message:

Updated XQueries (DIF/DC) B->D part 1

File:
1 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/DublinCore/XQuery/NDG-DublinCore.xquery

    r1886 r2008  
    33declare namespace dc='http://purl.org/dc/elements/1.1/'; 
    44declare namespace oai_dc='http://www.openarchives.org/OAI/2.0/oai_dc'; 
     5declare variable $targetCollection as xs:string {'/db/ndg_B_metadata'}; 
    56declare variable $gcmd_science_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'}; 
    67declare variable $gcmd_project_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/projects.html'}; 
     
    89declare variable $iso_topic_list as xs:string {'http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'}; 
    910 
    10 for $DE in collection('/db/ndg_B_metadata')/dgMetadata/dgMetadataRecord[dgDataEntity!='' and dgMetadataID/schemeIdentifier='NDG-B0' and dgMetadataID/repositoryIdentifier='badc.nerc.ac.uk' and dgMetadataID/localIdentifier='dataent1'] 
     11for $DE in collection($targetCollection)/dgMetadata/dgMetadataRecord[dgDataEntity!='' and dgMetadataID/schemeIdentifier='NDG-B0' and dgMetadataID/repositoryIdentifier='badc.nerc.ac.uk' and dgMetadataID/localIdentifier='dataent1'] 
    1112return  
    1213element oai_dc:dc { 
     
    1718        element dc:description {string($DE/dgMetadataDescription/abstract/abstractText)}, 
    1819        element dc:date 
    19             { 
    20             if (exists($DE/(dgMetadataProvenance | DataProvenance)/RecordUpdate/UpdateDate)) then  
    21                 for $updatedate in $DE/(dgMetadataProvenance | DataProvenance)/RecordUpdate/UpdateDate 
    22                     order by xs:date($updatedate) descending 
    23                     return xs:date($updatedate[1]) 
    24             else  
    25                 string($DE/(dgMetadataProvenance | DataProvenance)/RecordCreation/CreatedDate)  
    26             }, 
    27          
     20                { 
     21                if (exists($DE/(dgMetadataProvenance | DataProvenance)/RecordUpdate/UpdateDate)) then 
     22                        for $updatedate in ($DE/(dgMetadataProvenance | DataProvenance)/RecordUpdate/UpdateDate) 
     23                                order by xs:dateTime($updatedate) 
     24                        return data($updatedate[1]) 
     25                else 
     26                        string($DE/(dgMetadataProvenance | DataProvenance)/RecordCreation/CreatedDate)  
     27                }, 
    2828        for $StructuredKeyword in distinct-values($DE/dgStructuredKeyword [dgValidTermID/ParentListID=$cf_standard_names or dgValidTermID/ParentListID=$gcmd_science_valids or dgValidTermID/ParentListID=$gcmd_project_valids or dgValidTermID/ParentListID=$iso_topic_list ]//dgValidTerm)  
    2929                order by $StructuredKeyword 
     
    3333        for $StructuredKeyword1 in distinct-values($DE/dgDataEntity/dgDataSummary/dgParameterSummary/dgStdParameterMeasured[dgValidTermID/ParentListID=$cf_standard_names or dgValidTermID/ParentListID=$gcmd_science_valids or dgValidTermID/ParentListID=$gcmd_project_valids]//dgValidTerm)  
    3434                order by $StructuredKeyword1 
    35                 return  
     35        return  
    3636                element dc:subject  {string($StructuredKeyword1)}, 
    3737        for $DataCreatorRole in $DE/dgDataEntity/dgDataRoles/dgDataCreator/dgRoleHolder  
    38             order by $DataCreatorRole/startDate empty least 
    39                     return  
    40                 for $DataCreatorRoleHolder in collection('/db/ndg_B_metadata')/dgMetadata/(dgOrganisation | dgPerson) 
    41                             [(dgMetadataID/schemeIdentifier='NDG-B0' 
    42                             and dgMetadataID/repositoryIdentifier=$DataCreatorRole/(dgOrganisationID | dgPersonID)/repositoryIdentifier 
    43                             and dgMetadataID/localIdentifier=$DataCreatorRole/(dgOrganisationID | dgPersonID)/localIdentifier)] 
    44                 return  
    45                     element dc:creator { 
    46                     if (string(local-name($DataCreatorRoleHolder))='dgOrganisation') then 
    47                         (string($DataCreatorRoleHolder/name)) 
    48                     else if (string(local-name($DataCreatorRoleHolder))='dgPerson') then 
    49                         (string(concat(string($DataCreatorRoleHolder/name/initials), ' ', string($DataCreatorRoleHolder/name/familyName)))) 
    50                     else ('empty content') 
    51                 }, 
    52             for $DataCuratorRole in $DE/dgDataEntity/dgDataRoles/dgDataCurator/dgRoleHolder[not(exists(endDate)) or endDate=''] 
    53             order by $DataCuratorRole/startDate empty least 
    54                 return  
    55                     for $DataCuratorRoleHolder in collection('/db/ndg_B_metadata')/dgMetadata/(dgOrganisation | dgPerson) 
    56                             [(dgMetadataID/schemeIdentifier='NDG-B0' 
    57                             and dgMetadataID/repositoryIdentifier=$DataCuratorRole/(dgOrganisationID | dgPersonID)/repositoryIdentifier 
    58                             and dgMetadataID/localIdentifier=$DataCuratorRole/(dgOrganisationID | dgPersonID)/localIdentifier)] 
    59                         return  
    60                             element dc:publisher { 
    61                     if (string(local-name($DataCuratorRoleHolder))='dgOrganisation') then 
    62                         (string($DataCuratorRoleHolder/name)) 
    63                     else if (string(local-name($DataCuratorRoleHolder))='dgPerson') then 
    64                         (string(concat(string($DataCuratorRoleHolder/name/initials), ' ', string($DataCuratorRoleHolder/name/familyName)))) 
    65                     else ('empty content') 
    66                     } 
    67     }  (: </oai_dc:dc> :) 
     38                order by $DataCreatorRole/startDate empty least 
     39        return  
     40                for $DataCreatorRoleHolder in collection($targetCollection)/dgMetadata/(dgOrganisation | dgPerson) 
     41                        [(dgMetadataID/schemeIdentifier='NDG-B0' 
     42                        and dgMetadataID/repositoryIdentifier=$DataCreatorRole/(dgOrganisationID | dgPersonID)/repositoryIdentifier 
     43                        and dgMetadataID/localIdentifier=$DataCreatorRole/(dgOrganisationID | dgPersonID)/localIdentifier)] 
     44                return  
     45                        element dc:creator { 
     46                                if (string(local-name($DataCreatorRoleHolder))='dgOrganisation') then 
     47                                        (string($DataCreatorRoleHolder/name)) 
     48                                else if (string(local-name($DataCreatorRoleHolder))='dgPerson') then 
     49                                        (string(concat(string($DataCreatorRoleHolder/name/initials), ' ', string($DataCreatorRoleHolder/name/familyName)))) 
     50                                else ('empty content') 
     51                        }, 
     52        for $DataCuratorRole in $DE/dgDataEntity/dgDataRoles/dgDataCurator/dgRoleHolder[not(exists(endDate)) or endDate=''] 
     53                order by $DataCuratorRole/startDate empty least 
     54        return  
     55                for $DataCuratorRoleHolder in collection($targetCollection)/dgMetadata/(dgOrganisation | dgPerson) 
     56                        [(dgMetadataID/schemeIdentifier='NDG-B0' 
     57                        and dgMetadataID/repositoryIdentifier=$DataCuratorRole/(dgOrganisationID | dgPersonID)/repositoryIdentifier 
     58                        and dgMetadataID/localIdentifier=$DataCuratorRole/(dgOrganisationID | dgPersonID)/localIdentifier)] 
     59                return  
     60                        element dc:publisher { 
     61                                if (string(local-name($DataCuratorRoleHolder))='dgOrganisation') then 
     62                                        (string($DataCuratorRoleHolder/name)) 
     63                                else if (string(local-name($DataCuratorRoleHolder))='dgPerson') then 
     64                                        (string(concat(string($DataCuratorRoleHolder/name/initials), ' ', string($DataCuratorRoleHolder/name/familyName)))) 
     65                                else ('empty content') 
     66                        } 
     67}  (: </oai_dc:dc> :) 
Note: See TracChangeset for help on using the changeset viewer.