Changeset 1683 for TI07-MOLES/trunk/DIF


Ignore:
Timestamp:
09/11/06 14:07:39 (13 years ago)
Author:
ko23
Message:

v0.9 of namespaced xqueries

File:
1 edited

Legend:

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

    r1616 r1683  
    1 for $DE in collection('/db/ndg_B_metadata')/dgMetadata/dgMetadataRecord[exists(dgDataEntity) and dgMetadataID/schemeIdentifier='NDG-B0' and dgMetadataID/repositoryIdentifier='badc.nerc.ac.uk' and dgMetadataID/localIdentifier='dataent1'] 
     1declare default element namespace 'http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/'; 
     2declare namespace moles='http://ndg.nerc.ac.uk/moles'; 
     3declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
     4 
     5for $DE in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
     6        exists('moles:dgDataEntity')  
     7        and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
     8        and moles:dgMetadataID/moles:repositoryIdentifier='grid.bodc.nerc.ac.uk'  
     9        and moles:dgMetadataID/moles:localIdentifier='HGFS3751'] 
    210return 
    311    <DIF  xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance'  xmlns='http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/' xsi:schemaLocation='http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/ http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/dif_v9.4.xsd'> 
    412        { 
    5         element Entry_ID {concat($DE/dgMetadataID/repositoryIdentifier, ':DIF:', $DE/dgMetadataID/localIdentifier)}, 
    6         element Entry_Title {string($DE/name)}, 
     13        element Entry_ID {concat($DE/moles:dgMetadataID/moles:repositoryIdentifier, ':DIF:', $DE/moles:dgMetadataID/moles:localIdentifier)}, 
     14        element Entry_Title {string($DE/moles:name)}, 
    715        element Data_Set_Citation 
    816        { 
    9             for $DataCreatorRole in $DE/dgDataEntity/dgDataRoles/dgDataCreator/dgRoleHolder[not(exists(endDate)) or endDate=''][1] 
     17            for $DataCreatorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCreator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''][1] 
    1018                return  
    11                     for $DataCreatorRoleHolder in collection('/db/ndg_B_metadata')/dgMetadata/*[(dgMetadataID/schemeIdentifier='NDG-B0' 
    12                                and dgMetadataID/repositoryIdentifier=$DataCreatorRole/*/repositoryIdentifier 
    13                                and dgMetadataID/localIdentifier=$DataCreatorRole/*/localIdentifier)] 
     19                    for $DataCreatorRoleHolder in collection('/db/ndg_B_metadata')/moles:dgMetadata/*[(moles:dgMetadataID/moles:schemeIdentifier='NDG-B0' 
     20                               and moles:dgMetadataID/moles:repositoryIdentifier=$DataCreatorRole/*/moles:repositoryIdentifier 
     21                               and moles:dgMetadataID/moles:localIdentifier=$DataCreatorRole/*/moles:localIdentifier)] 
    1422                        return  
    1523                            element Data_Creator  
    1624                                { 
    17                                 if (exists($DataCreatorRoleHolder/name/initials)) then  
    18                                     (string(concat(string($DataCreatorRoleHolder/name/initials), ' ', string($DataCreatorRoleHolder/name/familyName)))) 
     25                                if (exists($DataCreatorRoleHolder/moles:name/moles:initials)) then  
     26                                    string(concat(string($DataCreatorRoleHolder/moles:name/moles:initials), ' ', string($DataCreatorRoleHolder/moles:name/moles:familyName))) 
    1927                                else  
    20                                    (string($DataCreatorRoleHolder/abbreviation)) 
     28                                   string($DataCreatorRoleHolder/moles:abbreviation) 
    2129                                }, 
    22             element Dataset_Title {string($DE/name)} 
     30            element Dataset_Title {string($DE/moles:name)} 
    2331        }, 
    2432         
     
    2634        element Discipline {''}, 
    2735         
    28         for $StructuredKeyword in ($DE//(dgStructuredKeyword | dgStdParameterMeasured)[dgValidTermID/ParentListID='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html' and ListLevel = 0]) 
    29                 return if (exists($StructuredKeyword/*/dgValidTerm)) then ( 
     36        for $StructuredKeyword in ($DE//(moles:dgStructuredKeyword | moles:dgStdParameterMeasured)[moles:dgValidTermID/moles:ParentListID='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html' and moles:ListLevel = 0]) 
     37                return if (exists($StructuredKeyword/*/moles:dgValidTerm)) then  
    3038                    element Parameters 
    3139                        { 
    32                         element Category {string($StructuredKeyword/*/dgValidTerm)}, 
    33                         if (exists($StructuredKeyword//dgValidSubterm)  
    34                                 and $StructuredKeyword//dgValidSubterm != ''  
    35                                 and $StructuredKeyword//dgValidSubterm != ' ') then ( 
    36                         for $Subterm in $StructuredKeyword//dgValidSubterm[exists(dgValidTerm)] 
    37                             where exists($Subterm/dgValidSubterm) 
    38                             order by $Subterm/ListLevel 
     40                        element Category {string($StructuredKeyword/*/moles:dgValidTerm)}, 
     41                        if (exists($StructuredKeyword//moles:dgValidSubterm)  
     42                                and $StructuredKeyword//moles:dgValidSubterm != ''  
     43                                and $StructuredKeyword//moles:dgValidSubterm != ' ') then  
     44                        for $Subterm in $StructuredKeyword//moles:dgValidSubterm[exists(moles:dgValidTerm)] 
     45                            where exists($Subterm/moles:dgValidSubterm) 
     46                            order by $Subterm/moles:ListLevel 
    3947                                return  
    40                                         if ($Subterm/ListLevel=1) then (element Topic {string($Subterm/dgValidSubterm/dgValidTerm)})  
    41                                         else ( 
    42                                         if ($Subterm/ListLevel=2) then (element Term {string($Subterm/dgValidSubterm/dgValidTerm)})  
    43                                         else ( 
    44                                         if ($Subterm/ListLevel=3) then (element Variable {string($Subterm/dgValidSubterm/dgValidTerm)})  
    45                                         else ( 
    46                                         if ($Subterm/ListLevel=4) then (element Detailed_Variable {string($Subterm/dgValidSubterm/dgValidTerm)})  
    47                                         else (element GCMD_Science_Valid {string($Subterm/dgValidSubterm/dgValidTerm)})))) 
    48                                 )        
     48                                        if ($Subterm/moles:ListLevel=1) then element Topic {string($Subterm/moles:dgValidSubterm/moles:dgValidTerm)}  
     49                                        else if ($Subterm/moles:ListLevel=2) then element Term {string($Subterm/moles:dgValidSubterm/moles:dgValidTerm)}  
     50                                        else if ($Subterm/moles:ListLevel=3) then element Variable {string($Subterm/moles:dgValidSubterm/moles:dgValidTerm)}  
     51                                        else if ($Subterm/moles:ListLevel=4) then element Detailed_Variable {string($Subterm/moles:dgValidSubterm/moles:dgValidTerm)}  
     52                                        else element GCMD_Science_Valid {string($Subterm/moles:dgValidSubterm/moles:dgValidTerm)} 
    4953                        else() 
    5054                    } 
    51                 ) 
    5255                else(), 
    53         for $ISOTopicCategory in ($DE/dgStructuredKeyword[dgValidTermID/ParentListID='http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode']) 
     56        for $ISOTopicCategory in ($DE/moles:dgStructuredKeyword[moles:dgValidTermID/moles:ParentListID='http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode']) 
    5457            return  
    55                 element ISO_Topic_Category {string($ISOTopicCategory/dgValidTerm)}, 
    56  
    57         for $Keyword in distinct-values($DE//dgStructuredKeyword[ 
    58         dgValidTermID/ParentListID!='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'   
     58                element ISO_Topic_Category {string($ISOTopicCategory/moles:dgValidTerm)}, 
     59 
     60        for $Keyword in distinct-values($DE//moles:dgStructuredKeyword[ 
     61        moles:dgValidTermID/moles:ParentListID!='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'   
    5962        and  
    60         dgValidTermID/ParentListID!='http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'   
    61         ]/dgValidTerm) 
     63        moles:dgValidTermID/moles:ParentListID!='http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'   
     64        ]/moles:dgValidTerm) 
    6265        return element Keyword {string($Keyword)},  
    6366            
    64         for $DepDPT in ($DE/dgDataEntity/RelatedDeployment/DataProductionToolID)   
     67        for $DepDPT in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:DataProductionToolID)   
    6568        return  
    6669            element Sensor_Name 
    6770                { 
    68                 for $DepDPTAbbrev in distinct-values((collection('/db/ndg_B_metadata')/dgMetadata/dgMetadataRecord[dgMetadataID[schemeIdentifier='NDG-B0' and repositoryIdentifier=$DepDPT/repositoryIdentifier and localIdentifier=$DepDPT/localIdentifier]]/abbreviation)) 
     71                for $DepDPTAbbrev in distinct-values((collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepDPT/moles:repositoryIdentifier and moles:localIdentifier=$DepDPT/moles:localIdentifier]]/moles:abbreviation)) 
    6972                    return element Short_Name {data($DepDPTAbbrev)}, 
    70                 for $DepDPTName in distinct-values((collection('/db/ndg_B_metadata')/dgMetadata/dgMetadataRecord[dgMetadataID[schemeIdentifier='NDG-B0' and repositoryIdentifier=$DepDPT/repositoryIdentifier and localIdentifier=$DepDPT/localIdentifier]]/name)) 
     73                for $DepDPTName in distinct-values((collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepDPT/moles:repositoryIdentifier and moles:localIdentifier=$DepDPT/moles:localIdentifier]]/moles:name)) 
    7174                    return element Long_Name {data($DepDPTName)} 
    7275                }, 
    73         for $DepObsStn in ($DE/dgDataEntity/RelatedDeployment/ObservationStationID) 
     76        for $DepObsStn in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:ObservationStationID) 
    7477        return  
    7578            element Source_Name 
    7679                { 
    77                 for $DepObsStnAbbrev in distinct-values((collection('/db/ndg_B_metadata')/dgMetadata/dgMetadataRecord[dgMetadataID[schemeIdentifier='NDG-B0' and repositoryIdentifier=$DepObsStn/repositoryIdentifier and localIdentifier=$DepObsStn/localIdentifier]]/abbreviation)) 
     80                for $DepObsStnAbbrev in distinct-values((collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepObsStn/moles:repositoryIdentifier and moles:localIdentifier=$DepObsStn/moles:localIdentifier]]/moles:abbreviation)) 
    7881                    return element Short_Name {data($DepObsStnAbbrev)}, 
    79                 for $DepObsStnName in distinct-values((collection('/db/ndg_B_metadata')/dgMetadata/dgMetadataRecord[dgMetadataID[schemeIdentifier='NDG-B0' and repositoryIdentifier=$DepObsStn/repositoryIdentifier and localIdentifier=$DepObsStn/localIdentifier]]/name)) 
     82                for $DepObsStnName in distinct-values((collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepObsStn/moles:repositoryIdentifier and moles:localIdentifier=$DepObsStn/moles:localIdentifier]]/moles:name)) 
    8083                    return element Long_Name {data($DepObsStnName)} 
    8184                }, 
    8285 
    83         for $TemporalRange in ($DE/dgDataEntity/dgDataSummary/dgDataCoverage//dgDateRange) 
     86        for $TemporalRange in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgDateRange) 
    8487                return  
    8588                    element Temporal_Coverage 
    8689                        { 
    87                         element Start_Date {data($TemporalRange/DateRangeStart)}, 
    88                         element End_Date {data($TemporalRange/DateRangeEnd)} 
     90                        element Start_Date {data($TemporalRange/moles:DateRangeStart)}, 
     91                        element End_Date {data($TemporalRange/moles:DateRangeEnd)} 
    8992                        }, 
    90         for $TemporalTerm in ($DE/dgDataEntity/dgDataSummary/dgDataCoverage//dgArea/dgValidTerm) 
     93        for $TemporalTerm in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgArea/moles:dgValidTerm) 
    9194                return element Paleo_Temporal_Coverage  
    9295                    { 
     
    9497                    },  
    9598 
    96         for $Data_Set_Progress in ($DE/dgDataEntity/dgDataSummary/dgDataStatus/dgDatasetClosure) 
     99        for $Data_Set_Progress in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataStatus/moles:dgDatasetClosure) 
    97100                return element Data_Set_Progress {data($Data_Set_Progress)}, 
    98101 
    99         for $BoundingBox in ($DE/dgDataEntity/dgDataSummary/dgDataCoverage//BoundingBox) 
     102        for $BoundingBox in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:BoundingBox) 
    100103        return  
    101104            element Spatial_Coverage 
    102105                { 
    103                     element Southernmost_Latitude {data($BoundingBox/LimitSouth)}, 
    104                     element Northernmost_Latitude {data($BoundingBox/LimitNorth)}, 
    105                     element Westernmost_Longitude {data($BoundingBox/LimitWest)}, 
    106                     element Easternmost_Longitude {data($BoundingBox/LimitEast)} 
     106                    element Southernmost_Latitude {data($BoundingBox/moles:LimitSouth)}, 
     107                    element Northernmost_Latitude {data($BoundingBox/moles:LimitNorth)}, 
     108                    element Westernmost_Longitude {data($BoundingBox/moles:LimitWest)}, 
     109                    element Easternmost_Longitude {data($BoundingBox/moles:LimitEast)} 
    107110                }, 
    108111 
    109         for $Location in ($DE/dgDataEntity/dgDataSummary/dgDataCoverage//dgArea[dgValidTermID/ParentListID='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_locations.html']) 
     112        for $Location in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgArea[moles:dgValidTermID/moles:ParentListID='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_locations.html']) 
    110113                return element Location {$Location},  
    111114        element Data_Resolution {''}, 
    112         for $DepAct in ($DE/dgDataEntity/RelatedDeployment/ActivityID) 
     115        for $DepAct in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:ActivityID) 
    113116        return  
    114117            element Project 
    115118                { 
    116                 for $DepActAbbrev in distinct-values(collection('/db/ndg_B_metadata')/dgMetadata/dgMetadataRecord[dgMetadataID[schemeIdentifier='NDG-B0' and repositoryIdentifier=$DepAct/repositoryIdentifier and localIdentifier=$DepAct/localIdentifier]]/abbreviation) 
     119                for $DepActAbbrev in distinct-values(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepAct/moles:repositoryIdentifier and moles:localIdentifier=$DepAct/moles:localIdentifier]]/moles:abbreviation) 
    117120                    return  
    118121                        element Short_Name {data($DepActAbbrev)}, 
    119                 for $DepActName in distinct-values(collection('/db/ndg_B_metadata')/dgMetadata/dgMetadataRecord[dgMetadataID[schemeIdentifier='NDG-B0' and repositoryIdentifier=$DepAct/repositoryIdentifier and localIdentifier=$DepAct/localIdentifier]]/name) 
     122                for $DepActName in distinct-values(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[moles:dgMetadataID[moles:schemeIdentifier='NDG-B0' and moles:repositoryIdentifier=$DepAct/moles:repositoryIdentifier and moles:localIdentifier=$DepAct/moles:localIdentifier]]/moles:name) 
    120123                    return  
    121124                        element Long_Name {data($DepActName)} 
     
    124127        element Quality {''}, 
    125128 
    126         if (exists($DE/dgDataEntity/dgDataGranule/accessControlPolicy)) then ( 
    127                 for $DG in $DE/dgDataEntity/dgDataGranule 
     129        if (exists($DE/moles:dgDataEntity/moles:dgDataGranule/moles:accessControlPolicy)) then  
     130                for $DG in $DE/moles:dgDataEntity/moles:dgDataGranule 
    128131                    return  
    129132                                element Access_Constraints  
    130133                            { 
    131                                 if (exists($DG/dgGranuleSummary/dgGranuleName)) then  
    132                                     concat('For data granule ', $DG/dgGranuleSummary/dgGranuleName, ': ') 
     134                                if (exists($DG/moles:dgGranuleSummary/moles:dgGranuleName)) then  
     135                                    concat('For data granule ', $DG/moles:dgGranuleSummary/moles:dgGranuleName, ': ') 
    133136                                else (), 
    134                                 if (exists($DG/accessControlPolicy/accessControlPolicyURL)) then 
    135                                     concat('See access control policy at ', escape-uri($DG/accessControlPolicy/accessControlPolicyURL, true())) 
    136                                 else if (exists($DG/accessControlPolicy/accessControlPolicyText)) then 
    137                                     ( 
    138                                     data($DG/accessControlPolicy/accessControlPolicyText) 
    139                                     ) 
    140                                  else ( 
    141                                      for $securityCondition in $DG/accessControlPolicy/dgSecurityCondition 
     137                                if (exists($DG/moles:accessControlPolicy/moles:accessControlPolicyURL)) then 
     138                                    concat('See access control policy at ', escape-uri($DG/moles:accessControlPolicy/moles:accessControlPolicyURL, true())) 
     139                                else if (exists($DG/moles:accessControlPolicy/moles:accessControlPolicyText)) then 
     140                                    data($DG/moles:accessControlPolicy/moles:accessControlPolicyText) 
     141                                 else  
     142                                     for $securityCondition in $DG/moles:accessControlPolicy/moles:dgSecurityCondition 
    142143                                     return 
    143                                          if (exists($securityCondition/conditionExplanationText)) then 
    144                                              concat('Effect: ', data($securityCondition/effect), ' - ', data($securityCondition/conditionExplanationText)) 
    145                                          else ( 
    146                                              concat('Effect: ', data($securityCondition/effect), 'needs ', data($securityCondition/attauthRole), ' from ', data($securityCondition/dgAttributeAuthority)) 
    147                                          ) 
    148                                      ) 
     144                                         if (exists($securityCondition/moles:conditionExplanationText)) then 
     145                                             concat('Effect: ', data($securityCondition/moles:effect), ' - ', data($securityCondition/moles:conditionExplanationText)) 
     146                                         else concat('Effect: ', data($securityCondition/moles:effect), 'needs ', data($securityCondition/moles:attauthRole), ' from ', data($securityCondition/moles:dgAttributeAuthority)) 
    149147                            } 
    150             ) 
    151148                else (), 
    152149 
     
    155152        element Originating_Center {''}, 
    156153 
    157         for $DataCuratorRole in $DE/dgDataEntity/dgDataRoles/dgDataCurator/dgRoleHolder[not(exists(endDate)) or endDate=''] 
     154        for $DataCuratorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCurator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''] 
    158155            return  
    159                 for $DataCuratorRoleHolder in collection('/db/ndg_B_metadata')/dgMetadata/*[(dgMetadataID/schemeIdentifier='NDG-B0' 
    160                    and dgMetadataID/repositoryIdentifier=$DataCuratorRole/*/repositoryIdentifier 
    161                    and dgMetadataID/localIdentifier=$DataCuratorRole/*/localIdentifier)] 
     156                for $DataCuratorRoleHolder in collection('/db/ndg_B_metadata')/moles:dgMetadata/*[(moles:dgMetadataID/moles:schemeIdentifier='NDG-B0' 
     157                   and moles:dgMetadataID/moles:repositoryIdentifier=$DataCuratorRole/*/moles:repositoryIdentifier 
     158                   and moles:dgMetadataID/moles:localIdentifier=$DataCuratorRole/*/moles:localIdentifier)] 
    162159                    return  
    163160                        element Data_Center 
     
    167164                                element Short_Name  
    168165                                    { 
    169                                     if (exists($DataCuratorRoleHolder/name/initials)) then ( 
    170                                     string(concat(string($DataCuratorRoleHolder/name/initials), ' ', string($DataCuratorRoleHolder/name/familyName))) 
    171                                 ) 
     166                                    if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
     167                                    string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) 
    172168                            else  
    173                                 (string($DataCuratorRoleHolder/abbreviation)) 
     169                                string($DataCuratorRoleHolder/moles:abbreviation) 
    174170                            }, 
    175171                        element Long_Name  
    176172                            { 
    177                                 if (exists($DataCuratorRoleHolder/name/initials)) then  
    178                                     (string(concat(string($DataCuratorRoleHolder/name/initials), ' ', string($DataCuratorRoleHolder/name/familyName)))) 
    179                                 else (string($DataCuratorRoleHolder/name)) 
     173                                if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
     174                                    string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) 
     175                                else string($DataCuratorRoleHolder/moles:name) 
    180176                            } 
    181177                        }, 
    182                         if (exists($DataCuratorRoleHolder/contactDetails/URI)) then  
    183                             ( 
    184                                 element Data_Center_URL  
    185                                     {data($DataCuratorRoleHolder/contactDetails/URI)} 
    186                             ) 
     178                        if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:URI)) then  
     179                                element Data_Center_URL {data($DataCuratorRoleHolder/moles:contactDetails/moles:URI)} 
    187180                        else (), 
    188                         for $DGID in $DE/dgDataEntity/dgDataGranule/dataModelID 
     181                        for $DGID in $DE/moles:dgDataEntity/moles:dgDataGranule/moles:dataModelID 
    189182                        return  
    190183                            element Data_Set_ID  
    191                                 { 
    192                                     concat($DGID/repositoryIdentifier, ':', $DGID/schemeIdentifier, ':', $DGID/localIdentifier) 
    193                                 }, 
     184                                {concat($DGID/moles:repositoryIdentifier, ':', $DGID/moles:schemeIdentifier, ':', $DGID/moles:localIdentifier)}, 
    194185                        element  Personnel 
    195186                            { 
    196187                                element Role {'Data Center Contact'}, 
    197188                                if (exists($DataCuratorRoleHolder/name/knownAs)) then  
    198                                     (element First_Name {string($DataCuratorRoleHolder/name/knownAs)}) 
    199                                 else if (exists($DataCuratorRoleHolder/name/initials)) then  
    200                                     (element First_Name {string($DataCuratorRoleHolder/name/initials)}) 
     189                                    element First_Name {string($DataCuratorRoleHolder/moles:name/moles:knownAs)} 
     190                                else if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
     191                                    element First_Name {string($DataCuratorRoleHolder/moles:name/moles:initials)} 
    201192                                 else (),                                        
    202193                                 element Last_Name  
    203194                                      { 
    204                                           if (exists($DataCuratorRoleHolder/name/familyName)) then  
    205                                               (string($DataCuratorRoleHolder/name/familyName)) 
    206                                     else (string($DataCuratorRoleHolder/name)) 
     195                                          if (exists($DataCuratorRoleHolder/moles:name/moles:familyName)) then  
     196                                              string($DataCuratorRoleHolder/moles:name/moles:familyName) 
     197                                    else string($DataCuratorRoleHolder/moles:name) 
    207198                                    }, 
    208                                 if (exists($DataCuratorRole/contactDetails/eMail)) then  
    209                                     (element Email {string($DataCuratorRole/contactDetails/eMail)}) 
     199                                if (exists($DataCuratorRole/moles:contactDetails/moles:eMail)) then  
     200                                    element Email {string($DataCuratorRole/moles:contactDetails/moles:eMail)} 
    210201                                else  
    211                                     (if (exists($DataCuratorRoleHolder/contactDetails/eMail)) then  
    212                                             (element Email {string($DataCuratorRoleHolder/contactDetails/eMail)}) 
    213                                         else () 
    214                                     ), 
    215  
    216                                 if (exists($DataCuratorRole/contactDetails/telephone)) then  
    217                                     (element Phone {string($DataCuratorRole/contactDetails/telephone)}) 
    218                                 else  
    219                                     (if (exists($DataCuratorRoleHolder/contactDetails/telephone)) then  
    220                                             (element Phone {string($DataCuratorRoleHolder/contactDetails/telephone)}) 
    221                                         else () 
    222                                             ), 
    223                                 if (exists($DataCuratorRole/contactDetails/fax)) then  
    224                                     (element Fax {string($DataCuratorRole/contactDetails/fax)}) 
    225                                 else  
    226                                     (if (exists($DataCuratorRoleHolder/contactDetails/fax)) then  
    227                                             (element Fax {string($DataCuratorRoleHolder/contactDetails/fax)}) 
    228                                         else () 
    229                                     ), 
    230                                 if (exists($DataCuratorRole/contactDetails/address)) then  
    231                                     (element Contact_Address { 
    232                                         for $addressline in $DataCuratorRole/contactDetails/address/addressline 
     202                                    if (exists($DataCuratorRoleHolder/contactDetails/eMail)) then  
     203                                            (element Email {string($DataCuratorRoleHolder/moles:contactDetails/moles:eMail)}) 
     204                                        else (), 
     205 
     206                                if (exists($DataCuratorRole/moles:contactDetails/moles:telephone)) then  
     207                                    element Phone {string($DataCuratorRole/moles:contactDetails/moles:telephone)} 
     208                                else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:telephone)) then  
     209                                            element Phone {string($DataCuratorRoleHolder/moles:contactDetails/moles:telephone)} 
     210                                 else (), 
     211                                if (exists($DataCuratorRole/moles:contactDetails/moles:fax)) then  
     212                                    element Fax {string($DataCuratorRole/moles:contactDetails/moles:fax)} 
     213                                else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:fax)) then  
     214                                            element Fax {string($DataCuratorRoleHolder/moles:contactDetails/moles:fax)} 
     215                                        else (), 
     216                                if (exists($DataCuratorRole/moles:contactDetails/moles:address)) then  
     217                                    element Contact_Address { 
     218                                        for $addressline in $DataCuratorRole/moles:contactDetails/moles:address/moles:addressline 
    233219                                            return element address {$addressline}, 
    234                                                         if (exists($DataCuratorRole/contactDetails/address/city)) then  
    235                                         (element City {string($DataCuratorRole/contactDetails/address/city)}) 
     220                                                        if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:city)) then  
     221                                        element City {string($DataCuratorRole/moles:contactDetails/moles:address/moles:city)} 
    236222                                    else (), 
    237                                     if (exists($DataCuratorRole/contactDetails/address/postcode)) then  
    238                                         (element Postal_Code {string($DataCuratorRole/contactDetails/address/postcode)}) 
     223                                    if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:postcode)) then  
     224                                        element Postal_Code {string($DataCuratorRole/moles:contactDetails/moles:address/moles:postcode)} 
    239225                                    else (), 
    240                                      if (exists($DataCuratorRole/contactDetails/address/country)) then  
    241                                          (element Country {string($DataCuratorRole/contactDetails/address/country)}) 
     226                                     if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:country)) then  
     227                                         element Country {string($DataCuratorRole/moles:contactDetails/moles:address/moles:country)} 
    242228                                     else () 
    243229                                     } 
    244                                     ) 
    245                                 else if (exists($DataCuratorRoleHolder/contactDetails/address)) then  
    246                                     (element Contact_Address  
     230                                else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address)) then  
     231                                    element Contact_Address  
    247232                                    { 
    248                                         for $addressline in $DataCuratorRole/contactDetails/address/addressline 
     233                                        for $addressline in $DataCuratorRole/moles:contactDetails/moles:address/moles:addressline 
    249234                                            return element address {$addressline}, 
    250                                                             if (exists($DataCuratorRole/contactDetails/address/city)) then  
    251                                             (element City {string($DataCuratorRoleHolder/contactDetails/address/city)}) 
     235                                                            if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:city)) then  
     236                                            element City {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)} 
    252237                                        else (), 
    253                                         if (exists($DataCuratorRoleHolder/contactDetails/address/postcode)) then  
    254                                             (element Postal_Code {string($DataCuratorRole/contactDetails/postcode)}) 
     238                                        if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:postcode)) then  
     239                                            element Postal_Code {string($DataCuratorRole/moles:contactDetails/moles:postcode)} 
    255240                                        else (), 
    256                                          if (exists($DataCuratorRoleHolder/contactDetails/address/country)) then  
    257                                              (element Country {string($DataCuratorRoleHolder/contactDetails/address/country)}) 
     241                                         if (exists($DataCuratorRoleHolder/contactDetails/moles:address/moles:country)) then  
     242                                             element Country {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)} 
    258243                                         else () 
    259244                                     } 
    260                                     ) 
    261245                                else () 
    262246                                 } 
     
    266250        element Reference {''}, 
    267251 
    268         element Summary {string($DE/dgMetadataDescription/abstract/abstractText)}, 
     252        element Summary {string($DE/moles:dgMetadataDescription/moles:abstract/moles:abstractText)}, 
    269253 
    270254        element Related_URL  
    271255            { 
    272256            element URL_Content_Type {'NDG_B_SERVICE'}, 
    273             element URL {data($DE/dgMetadataID/repositoryIdentifier)}, 
     257            element URL {data($DE/moles:dgMetadataID/moles:repositoryIdentifier)}, 
    274258            element Description {'The NDG service for browsing metadata.'} 
    275259            }, 
    276260 
    277         for $DG in $DE/dgDataEntity/dgDataGranule 
    278             return  
    279                 if ($DG/dataModelID/schemeIdentifier='NDG-A0') then  
    280                     ( 
    281                     element Related_URL  
     261        for $DG in $DE/moles:dgDataEntity/moles:dgDataGranule 
     262            return 
     263                if ($DG/moles:dataModelID/moles:schemeIdentifier='NDG-A0') then  
     264                    (element Related_URL  
    282265                        { 
    283266                            element URL_Content_Type {'NDG_A_SERVICE'}, 
    284                             element URL {escape-uri('http://dmgdev1.esc.rl.ac.uk/cgi-bin/ndgDataAccess?datasetSource=dmgdev1.esc.rl.ac.uk&amp;datasetID=', true())}, 
     267                            if (exists($DG/instance/URI)) then 
     268                                element URL {escape-uri($DG/instance/URI, true())} 
     269                            else if ($DG/moles:dataModelID/moles:repositoryIdentifier='badc.nerc.ac.uk') then 
     270                                element URL {escape-uri('http://dmgdev1.esc.rl.ac.uk/cgi-bin/ndgDataAccess?datasetSource=dmgdev1.esc.rl.ac.uk&amp;datasetID=', true())} 
     271                            else ($DG/moles:dataModelID/moles:repositoryIdentifier), 
    285272                            element Description {'The NDG service delivering data via NDG A metadata.'} 
    286273                        }, 
    287                    element Related_URL  
    288                         { 
     274                   element Related_URL { 
    289275                            element URL_Content_Type {'GET DATA > CSML'}, 
    290                             element URL {escape-uri('http://dmgdev1.esc.rl.ac.uk/cgi-bin/ndgDataAccess?datasetSource=dmgdev1.esc.rl.ac.uk&amp;datasetID=', true())}, 
     276                            if (exists($DG/instance)) then 
     277                                element URL {escape-uri($DG/instance/URI, true())} 
     278                            else if ($DG/moles:dataModelID/moles:repositoryIdentifier='badc.nerc.ac.uk') then 
     279                                element URL {escape-uri('http://dmgdev1.esc.rl.ac.uk/cgi-bin/ndgDataAccess?datasetSource=dmgdev1.esc.rl.ac.uk&amp;datasetID=', true())} 
     280                            else (), 
    291281                            element Description {'The NDG service delivering data via NDG A metadata. Additional tag to be more in line with latest version of GCMD valids'} 
    292                         } 
    293                     ) 
    294                 else if ($DG/dataModelID/schemeIdentifier='CDML-0') then  
    295                     ( 
    296                         element Related_URL  
    297                             { 
     282                        }) 
     283                else if ($DG/moles:dataModelID/moles:schemeIdentifier='CDML-0') then  
     284                        (element Related_URL {  
    298285                                   element URL_Content_Type {'NDG_A_SERVICE'}, 
    299                             element URL {escape-uri('http://cdat.badc.nerc.ac.uk/cgi-bin/dxui.py?datasetURI_1=/', true())}, 
     286                            if (exists($DG/instance)) then 
     287                                element URL {escape-uri($DG/instance/URI, true())} 
     288                            else if ($DG/moles:dataModelID/moles:repositoryIdentifier='badc.nerc.ac.uk') then 
     289                                element URL {escape-uri('http://cdat.badc.nerc.ac.uk/cgi-bin/dxui.py?datasetURI_1=/', true())} 
     290                            else (), 
    300291                            element Description {'The NDG service delivering data via Data extractor. Additional tag to be more in line with latest version of GCMD valids'} 
    301292                            }, 
     
    303294                            { 
    304295                            element URL_Content_Type {'GET DATA > DX'}, 
    305                             element URL {escape-uri('http://cdat.badc.nerc.ac.uk/cgi-bin/dxui.py?datasetURI_1=/', true())}, 
     296                            if (exists($DG/instance)) then 
     297                                element URL {escape-uri($DG/instance/URI, true())} 
     298                            else if ($DG/moles:dataModelID/moles:repositoryIdentifier='badc.nerc.ac.uk') then 
     299                                element URL {escape-uri('http://cdat.badc.nerc.ac.uk/cgi-bin/dxui.py?datasetURI_1=/', true())} 
     300                            else (), 
    306301                            element Description {'The NDG service delivering data via Data extractor. Additional tag to be more in line with latest version of GCMD valids'} 
    307                             } 
    308                     ) 
    309                 else if ($DG/dataModelID/schemeIdentifier='URI') then  
    310                     ( 
     302                            }) 
     303                else if ($DG/moles:dataModelID/moles:schemeIdentifier='URI') then  
    311304                    element Related_URL 
    312305                        { 
    313                             element URL {data($DG/instance/URI)}, 
    314                             if (exists($DG/instance/instanceComment)) then  
    315                                 ( 
    316                                     element Description {data($DG/instance/instanceComment)}         
    317                                 ) 
     306                            element URL {data($DG/moles:instance/moles:URI)}, 
     307                            if (exists($DG/moles:instance/moles:instanceComment)) then  
     308                                    element Description {data($DG/moles:instance/moles:instanceComment)}             
    318309                            else  
    319                                 ( 
    320                                     element Description {'URL to aid in delivering data. Note that this may point directly to the data or, more likely, point to the web site of the curators.'} 
    321                                 ) 
     310                                    element Description {'URL to aid in delivering data. Note that this may point directly to the data or, more likely, point to the web site of the curator.'} 
    322311                            } 
    323                     ) 
    324             else (), 
    325             for $RelURL_Desc in ($DE/dgMetadataDescription/descriptionSection/descriptionOnlineReference)  
     312            else ($DG), 
     313            for $RelURL_Desc in ($DE/moles:dgMetadataDescription/moles:descriptionSection/moles:descriptionOnlineReference)  
    326314            return 
    327315                    element Related_URL 
    328316                        { 
    329317                            element URL {data($RelURL_Desc)}, 
    330                             element Description {concat(data($RelURL_Desc/name), ' - ', data($RelURL_Desc/notes))}           
     318                            element Description {concat(data($RelURL_Desc/moles:name), ' - ', data($RelURL_Desc/moles:notes))}               
    331319                         }, 
    332              
    333  
    334320        element Parent_DIF {''}, 
    335321        element IDN_Node {''}, 
     
    337323        element Metadata_Name {'[CEOS IDN DIF]'}, 
    338324        element Metadata_Version {'9.4'}, 
    339  
    340         if  (exists($DE/dgMetadataProvenance/RecordCreation)) then  
    341             ( 
    342                 element DIF_Creation_Date {data($DE/dgMetadataProvenance/RecordCreation/CreatedDate)} 
    343             ) 
     325        if  (exists($DE/moles:dgMetadataProvenance/moles:RecordCreation)) then  
     326                element DIF_Creation_Date {data($DE/moles:dgMetadataProvenance/moles:RecordCreation/moles:CreatedDate)} 
    344327        else (), 
    345  
    346         for $MDUpdt in $DE/dgMetadataProvenance/RecordUpdate 
     328        for $MDUpdt in $DE/moles:dgMetadataProvenance/moles:RecordUpdate 
    347329        return   
    348             element DIF_Revision_History {concat(data($MDUpdt/UpdateDate), ' - ', data($MDUpdt/UpdateSummary), ' - ', data($MDUpdt/UpdatedBy))} 
    349                 , 
    350         if  (exists($DE/dgMetadataProvenance/RecordReview)) then  
    351             ( 
    352                 element Future_DIF_Review_Date {data($DE/dgMetadataProvenance/RecordReview/ReviewDate)} 
    353             ) 
     330            element DIF_Revision_History {concat(data($MDUpdt/moles:UpdateDate), ' - ', data($MDUpdt/moles:UpdateSummary), ' - ', data($MDUpdt/moles:UpdatedBy))}, 
     331        if  (exists($DE/moles:dgMetadataProvenance/moles:RecordReview)) then  
     332                element Future_DIF_Review_Date {data($DE/moles:dgMetadataProvenance/moles:RecordReview/moles:ReviewDate)} 
    354333        else () 
    355334        } 
Note: See TracChangeset for help on using the changeset viewer.