Changeset 1690 for TI07-MOLES/trunk


Ignore:
Timestamp:
10/11/06 15:55:17 (13 years ago)
Author:
ko23
Message:

ISO19139 plus NS + BB and Area terms

Location:
TI07-MOLES/trunk
Files:
3 edited

Legend:

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

    r1683 r1690  
    11declare default element namespace 'http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/'; 
     2declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';  
    23declare namespace moles='http://ndg.nerc.ac.uk/moles'; 
    34declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
     
    910        and moles:dgMetadataID/moles:localIdentifier='HGFS3751'] 
    1011return 
    11     <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'> 
    12         { 
     12    element DIF { 
     13        attribute xsi:schemaLocation {'http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/ http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/dif_v9.4.xsd'}, 
    1314        element Entry_ID {concat($DE/moles:dgMetadataID/moles:repositoryIdentifier, ':DIF:', $DE/moles:dgMetadataID/moles:localIdentifier)}, 
    1415        element Entry_Title {string($DE/moles:name)}, 
    15         element Data_Set_Citation 
    16         { 
     16        element Data_Set_Citation { 
    1717            for $DataCreatorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCreator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''][1] 
    1818                return  
     
    2121                               and moles:dgMetadataID/moles:localIdentifier=$DataCreatorRole/*/moles:localIdentifier)] 
    2222                        return  
    23                             element Data_Creator  
    24                                 { 
     23                            element Data_Creator { 
    2524                                if (exists($DataCreatorRoleHolder/moles:name/moles:initials)) then  
    2625                                    string(concat(string($DataCreatorRoleHolder/moles:name/moles:initials), ' ', string($DataCreatorRoleHolder/moles:name/moles:familyName))) 
     
    3029            element Dataset_Title {string($DE/moles:name)} 
    3130        }, 
    32          
    33         element Personnel {''}, 
    34         element Discipline {''}, 
    35          
    3631        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]) 
    3732                return if (exists($StructuredKeyword/*/moles:dgValidTerm)) then  
    38                     element Parameters 
    39                         { 
     33                    element Parameters { 
    4034                        element Category {string($StructuredKeyword/*/moles:dgValidTerm)}, 
    4135                        if (exists($StructuredKeyword//moles:dgValidSubterm)  
     
    5751            return  
    5852                element ISO_Topic_Category {string($ISOTopicCategory/moles:dgValidTerm)}, 
    59  
    6053        for $Keyword in distinct-values($DE//moles:dgStructuredKeyword[ 
    6154        moles:dgValidTermID/moles:ParentListID!='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'   
     
    6457        ]/moles:dgValidTerm) 
    6558        return element Keyword {string($Keyword)},  
    66             
    6759        for $DepDPT in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:DataProductionToolID)   
    6860        return  
    69             element Sensor_Name 
    70                 { 
     61            element Sensor_Name { 
    7162                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)) 
    7263                    return element Short_Name {data($DepDPTAbbrev)}, 
     
    7667        for $DepObsStn in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:ObservationStationID) 
    7768        return  
    78             element Source_Name 
    79                 { 
     69            element Source_Name { 
    8070                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)) 
    8171                    return element Short_Name {data($DepObsStnAbbrev)}, 
     
    8373                    return element Long_Name {data($DepObsStnName)} 
    8474                }, 
    85  
    8675        for $TemporalRange in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgDateRange) 
    8776                return  
     
    9281                        }, 
    9382        for $TemporalTerm in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgArea/moles:dgValidTerm) 
    94                 return element Paleo_Temporal_Coverage  
    95                     { 
    96                         element Chronostratigraphic_Unit {data($TemporalTerm)} 
    97                     },  
    98  
     83                return element Paleo_Temporal_Coverage {element Chronostratigraphic_Unit {data($TemporalTerm)}},  
    9984        for $Data_Set_Progress in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataStatus/moles:dgDatasetClosure) 
    10085                return element Data_Set_Progress {data($Data_Set_Progress)}, 
    101  
    10286        for $BoundingBox in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:BoundingBox) 
    10387        return  
    104             element Spatial_Coverage 
    105                 { 
     88            element Spatial_Coverage { 
    10689                    element Southernmost_Latitude {data($BoundingBox/moles:LimitSouth)}, 
    10790                    element Northernmost_Latitude {data($BoundingBox/moles:LimitNorth)}, 
     
    10992                    element Easternmost_Longitude {data($BoundingBox/moles:LimitEast)} 
    11093                }, 
    111  
    11294        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']) 
    11395                return element Location {$Location},  
    114         element Data_Resolution {''}, 
    11596        for $DepAct in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:ActivityID) 
    11697        return  
    117             element Project 
    118                 { 
     98            element Project { 
    11999                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) 
    120100                    return  
     
    124104                        element Long_Name {data($DepActName)} 
    125105                }, 
    126  
    127         element Quality {''}, 
    128  
    129106        if (exists($DE/moles:dgDataEntity/moles:dgDataGranule/moles:accessControlPolicy)) then  
    130107                for $DG in $DE/moles:dgDataEntity/moles:dgDataGranule 
    131108                    return  
    132                                 element Access_Constraints  
    133                             { 
     109                                element Access_Constraints { 
    134110                                if (exists($DG/moles:dgGranuleSummary/moles:dgGranuleName)) then  
    135111                                    concat('For data granule ', $DG/moles:dgGranuleSummary/moles:dgGranuleName, ': ') 
     
    147123                            } 
    148124                else (), 
    149  
    150         element Use_Constraints {''}, 
    151         element Data_Set_Language {''}, 
    152         element Originating_Center {''}, 
    153  
    154125        for $DataCuratorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCurator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''] 
    155126            return  
     
    158129                   and moles:dgMetadataID/moles:localIdentifier=$DataCuratorRole/*/moles:localIdentifier)] 
    159130                    return  
    160                         element Data_Center 
    161                             { 
    162                         element Data_Center_Name 
    163                             { 
    164                                 element Short_Name  
    165                                     { 
     131                        element Data_Center { 
     132                        element Data_Center_Name { 
     133                                element Short_Name { 
    166134                                    if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
    167135                                    string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) 
     
    169137                                string($DataCuratorRoleHolder/moles:abbreviation) 
    170138                            }, 
    171                         element Long_Name  
    172                             { 
     139                        element Long_Name { 
    173140                                if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
    174141                                    string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) 
     
    181148                        for $DGID in $DE/moles:dgDataEntity/moles:dgDataGranule/moles:dataModelID 
    182149                        return  
    183                             element Data_Set_ID  
    184                                 {concat($DGID/moles:repositoryIdentifier, ':', $DGID/moles:schemeIdentifier, ':', $DGID/moles:localIdentifier)}, 
    185                         element  Personnel 
    186                             { 
     150                            element Data_Set_ID {concat($DGID/moles:repositoryIdentifier, ':', $DGID/moles:schemeIdentifier, ':', $DGID/moles:localIdentifier)}, 
     151                        element  Personnel { 
    187152                                element Role {'Data Center Contact'}, 
    188153                                if (exists($DataCuratorRoleHolder/name/knownAs)) then  
     
    191156                                    element First_Name {string($DataCuratorRoleHolder/moles:name/moles:initials)} 
    192157                                 else (),                                        
    193                                  element Last_Name  
    194                                       { 
     158                                 element Last_Name { 
    195159                                          if (exists($DataCuratorRoleHolder/moles:name/moles:familyName)) then  
    196160                                              string($DataCuratorRoleHolder/moles:name/moles:familyName) 
     
    203167                                            (element Email {string($DataCuratorRoleHolder/moles:contactDetails/moles:eMail)}) 
    204168                                        else (), 
    205  
    206169                                if (exists($DataCuratorRole/moles:contactDetails/moles:telephone)) then  
    207170                                    element Phone {string($DataCuratorRole/moles:contactDetails/moles:telephone)} 
     
    217180                                    element Contact_Address { 
    218181                                        for $addressline in $DataCuratorRole/moles:contactDetails/moles:address/moles:addressline 
    219                                             return element address {$addressline}, 
     182                                            return element address {data($addressline)}, 
    220183                                                        if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:city)) then  
    221184                                        element City {string($DataCuratorRole/moles:contactDetails/moles:address/moles:city)} 
     
    229192                                     } 
    230193                                else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address)) then  
    231                                     element Contact_Address  
    232                                     { 
    233                                         for $addressline in $DataCuratorRole/moles:contactDetails/moles:address/moles:addressline 
    234                                             return element address {$addressline}, 
    235                                                             if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:city)) then  
     194                                    element Contact_Address { 
     195                                        for $addressline in $DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:addressline 
     196                                            return element address {data($addressline)}, 
     197                                                            if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)) then  
    236198                                            element City {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)} 
    237199                                        else (), 
     
    239201                                            element Postal_Code {string($DataCuratorRole/moles:contactDetails/moles:postcode)} 
    240202                                        else (), 
    241                                          if (exists($DataCuratorRoleHolder/contactDetails/moles:address/moles:country)) then  
     203                                         if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)) then  
    242204                                             element Country {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)} 
    243205                                         else () 
     
    246208                                 } 
    247209                        }, 
    248         element Distribution {''}, 
    249         element Multimedia_Sample {''}, 
    250         element Reference {''}, 
    251  
    252210        element Summary {string($DE/moles:dgMetadataDescription/moles:abstract/moles:abstractText)}, 
    253  
    254         element Related_URL  
    255             { 
     211        element Related_URL  { 
    256212            element URL_Content_Type {'NDG_B_SERVICE'}, 
    257213            element URL {data($DE/moles:dgMetadataID/moles:repositoryIdentifier)}, 
    258214            element Description {'The NDG service for browsing metadata.'} 
    259215            }, 
    260  
    261216        for $DG in $DE/moles:dgDataEntity/moles:dgDataGranule 
    262217            return 
    263218                if ($DG/moles:dataModelID/moles:schemeIdentifier='NDG-A0') then  
    264                     (element Related_URL  
    265                         { 
     219                    (element Related_URL { 
    266220                            element URL_Content_Type {'NDG_A_SERVICE'}, 
    267221                            if (exists($DG/instance/URI)) then 
     
    291245                            element Description {'The NDG service delivering data via Data extractor. Additional tag to be more in line with latest version of GCMD valids'} 
    292246                            }, 
    293                         element Related_URL  
    294                             { 
     247                        element Related_URL { 
    295248                            element URL_Content_Type {'GET DATA > DX'}, 
    296249                            if (exists($DG/instance)) then 
     
    302255                            }) 
    303256                else if ($DG/moles:dataModelID/moles:schemeIdentifier='URI') then  
    304                     element Related_URL 
    305                         { 
     257                    element Related_URL { 
    306258                            element URL {data($DG/moles:instance/moles:URI)}, 
    307259                            if (exists($DG/moles:instance/moles:instanceComment)) then  
     
    310262                                    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.'} 
    311263                            } 
    312             else ($DG), 
     264            else (), 
    313265            for $RelURL_Desc in ($DE/moles:dgMetadataDescription/moles:descriptionSection/moles:descriptionOnlineReference)  
    314266            return 
    315                     element Related_URL 
    316                         { 
     267                    element Related_URL { 
    317268                            element URL {data($RelURL_Desc)}, 
    318269                            element Description {concat(data($RelURL_Desc/moles:name), ' - ', data($RelURL_Desc/moles:notes))}               
    319270                         }, 
    320         element Parent_DIF {''}, 
    321         element IDN_Node {''}, 
    322         element Originating_Metadata_Node {''},  
    323271        element Metadata_Name {'[CEOS IDN DIF]'}, 
    324272        element Metadata_Version {'9.4'}, 
     
    333281        else () 
    334282        } 
    335     </DIF> 
  • TI07-MOLES/trunk/DIF/XQuery/NDG-DIFtemplate.xquery

    r1684 r1690  
    1414        element Entry_ID {concat($DE/moles:dgMetadataID/moles:repositoryIdentifier, ':DIF:', $DE/moles:dgMetadataID/moles:localIdentifier)}, 
    1515        element Entry_Title {string($DE/moles:name)}, 
    16         element Data_Set_Citation 
    17         { 
     16        element Data_Set_Citation { 
    1817            for $DataCreatorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCreator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''][1] 
    1918                return  
     
    2221                               and moles:dgMetadataID/moles:localIdentifier=$DataCreatorRole/*/moles:localIdentifier)] 
    2322                        return  
    24                             element Data_Creator  
    25                                 { 
     23                            element Data_Creator { 
    2624                                if (exists($DataCreatorRoleHolder/moles:name/moles:initials)) then  
    2725                                    string(concat(string($DataCreatorRoleHolder/moles:name/moles:initials), ' ', string($DataCreatorRoleHolder/moles:name/moles:familyName))) 
     
    3129            element Dataset_Title {string($DE/moles:name)} 
    3230        }, 
    33          
    3431        element Personnel {''}, 
    3532        element Discipline {''}, 
    36          
    3733        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]) 
    3834                return if (exists($StructuredKeyword/*/moles:dgValidTerm)) then  
    39                     element Parameters 
    40                         { 
     35                    element Parameters { 
    4136                        element Category {string($StructuredKeyword/*/moles:dgValidTerm)}, 
    4237                        if (exists($StructuredKeyword//moles:dgValidSubterm)  
     
    5853            return  
    5954                element ISO_Topic_Category {string($ISOTopicCategory/moles:dgValidTerm)}, 
    60  
    6155        for $Keyword in distinct-values($DE//moles:dgStructuredKeyword[ 
    6256        moles:dgValidTermID/moles:ParentListID!='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'   
     
    6559        ]/moles:dgValidTerm) 
    6660        return element Keyword {string($Keyword)},  
    67             
    6861        for $DepDPT in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:DataProductionToolID)   
    6962        return  
    70             element Sensor_Name 
    71                 { 
     63            element Sensor_Name { 
    7264                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)) 
    7365                    return element Short_Name {data($DepDPTAbbrev)}, 
     
    7769        for $DepObsStn in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:ObservationStationID) 
    7870        return  
    79             element Source_Name 
    80                 { 
     71            element Source_Name { 
    8172                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)) 
    8273                    return element Short_Name {data($DepObsStnAbbrev)}, 
     
    8475                    return element Long_Name {data($DepObsStnName)} 
    8576                }, 
    86  
    8777        for $TemporalRange in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgDateRange) 
    8878                return  
     
    9383                        }, 
    9484        for $TemporalTerm in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgArea/moles:dgValidTerm) 
    95                 return element Paleo_Temporal_Coverage  
    96                     { 
    97                         element Chronostratigraphic_Unit {data($TemporalTerm)} 
    98                     },  
    99  
     85                return element Paleo_Temporal_Coverage {element Chronostratigraphic_Unit {data($TemporalTerm)}},  
    10086        for $Data_Set_Progress in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataStatus/moles:dgDatasetClosure) 
    10187                return element Data_Set_Progress {data($Data_Set_Progress)}, 
    102  
    10388        for $BoundingBox in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:BoundingBox) 
    10489        return  
    105             element Spatial_Coverage 
    106                 { 
     90            element Spatial_Coverage { 
    10791                    element Southernmost_Latitude {data($BoundingBox/moles:LimitSouth)}, 
    10892                    element Northernmost_Latitude {data($BoundingBox/moles:LimitNorth)}, 
     
    11094                    element Easternmost_Longitude {data($BoundingBox/moles:LimitEast)} 
    11195                }, 
    112  
    11396        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']) 
    11497                return element Location {$Location},  
     
    11699        for $DepAct in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:ActivityID) 
    117100        return  
    118             element Project 
    119                 { 
     101            element Project { 
    120102                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) 
    121103                    return  
     
    125107                        element Long_Name {data($DepActName)} 
    126108                }, 
    127  
    128109        element Quality {''}, 
    129  
    130110        if (exists($DE/moles:dgDataEntity/moles:dgDataGranule/moles:accessControlPolicy)) then  
    131111                for $DG in $DE/moles:dgDataEntity/moles:dgDataGranule 
    132112                    return  
    133                                 element Access_Constraints  
    134                             { 
     113                                element Access_Constraints { 
    135114                                if (exists($DG/moles:dgGranuleSummary/moles:dgGranuleName)) then  
    136115                                    concat('For data granule ', $DG/moles:dgGranuleSummary/moles:dgGranuleName, ': ') 
     
    148127                            } 
    149128                else (), 
    150  
    151129        element Use_Constraints {''}, 
    152130        element Data_Set_Language {''}, 
    153131        element Originating_Center {''}, 
    154  
    155132        for $DataCuratorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCurator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''] 
    156133            return  
     
    159136                   and moles:dgMetadataID/moles:localIdentifier=$DataCuratorRole/*/moles:localIdentifier)] 
    160137                    return  
    161                         element Data_Center 
    162                             { 
    163                         element Data_Center_Name 
    164                             { 
    165                                 element Short_Name  
    166                                     { 
     138                        element Data_Center { 
     139                        element Data_Center_Name { 
     140                                element Short_Name { 
    167141                                    if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
    168142                                    string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) 
     
    170144                                string($DataCuratorRoleHolder/moles:abbreviation) 
    171145                            }, 
    172                         element Long_Name  
    173                             { 
     146                        element Long_Name { 
    174147                                if (exists($DataCuratorRoleHolder/moles:name/moles:initials)) then  
    175148                                    string(concat(string($DataCuratorRoleHolder/moles:name/moles:initials), ' ', string($DataCuratorRoleHolder/moles:name/moles:familyName))) 
     
    182155                        for $DGID in $DE/moles:dgDataEntity/moles:dgDataGranule/moles:dataModelID 
    183156                        return  
    184                             element Data_Set_ID  
    185                                 {concat($DGID/moles:repositoryIdentifier, ':', $DGID/moles:schemeIdentifier, ':', $DGID/moles:localIdentifier)}, 
    186                         element  Personnel 
    187                             { 
     157                            element Data_Set_ID {concat($DGID/moles:repositoryIdentifier, ':', $DGID/moles:schemeIdentifier, ':', $DGID/moles:localIdentifier)}, 
     158                        element  Personnel { 
    188159                                element Role {'Data Center Contact'}, 
    189160                                if (exists($DataCuratorRoleHolder/name/knownAs)) then  
     
    192163                                    element First_Name {string($DataCuratorRoleHolder/moles:name/moles:initials)} 
    193164                                 else (),                                        
    194                                  element Last_Name  
    195                                       { 
     165                                 element Last_Name { 
    196166                                          if (exists($DataCuratorRoleHolder/moles:name/moles:familyName)) then  
    197167                                              string($DataCuratorRoleHolder/moles:name/moles:familyName) 
     
    204174                                            (element Email {string($DataCuratorRoleHolder/moles:contactDetails/moles:eMail)}) 
    205175                                        else (), 
    206  
    207176                                if (exists($DataCuratorRole/moles:contactDetails/moles:telephone)) then  
    208177                                    element Phone {string($DataCuratorRole/moles:contactDetails/moles:telephone)} 
     
    218187                                    element Contact_Address { 
    219188                                        for $addressline in $DataCuratorRole/moles:contactDetails/moles:address/moles:addressline 
    220                                             return element address {$addressline}, 
     189                                            return element address {data($addressline)}, 
    221190                                                        if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:city)) then  
    222191                                        element City {string($DataCuratorRole/moles:contactDetails/moles:address/moles:city)} 
     
    230199                                     } 
    231200                                else if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address)) then  
    232                                     element Contact_Address  
    233                                     { 
    234                                         for $addressline in $DataCuratorRole/moles:contactDetails/moles:address/moles:addressline 
    235                                             return element address {$addressline}, 
    236                                                             if (exists($DataCuratorRole/moles:contactDetails/moles:address/moles:city)) then  
     201                                    element Contact_Address { 
     202                                        for $addressline in $DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:addressline 
     203                                            return element address {data($addressline)}, 
     204                                                            if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)) then  
    237205                                            element City {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:city)} 
    238206                                        else (), 
     
    240208                                            element Postal_Code {string($DataCuratorRole/moles:contactDetails/moles:postcode)} 
    241209                                        else (), 
    242                                          if (exists($DataCuratorRoleHolder/contactDetails/moles:address/moles:country)) then  
     210                                         if (exists($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)) then  
    243211                                             element Country {string($DataCuratorRoleHolder/moles:contactDetails/moles:address/moles:country)} 
    244212                                         else () 
     
    250218        element Multimedia_Sample {''}, 
    251219        element Reference {''}, 
    252  
    253220        element Summary {string($DE/moles:dgMetadataDescription/moles:abstract/moles:abstractText)}, 
    254  
    255         element Related_URL  
    256             { 
     221        element Related_URL  { 
    257222            element URL_Content_Type {'NDG_B_SERVICE'}, 
    258223            element URL {data($DE/moles:dgMetadataID/moles:repositoryIdentifier)}, 
    259224            element Description {'The NDG service for browsing metadata.'} 
    260225            }, 
    261  
    262226        for $DG in $DE/moles:dgDataEntity/moles:dgDataGranule 
    263227            return 
    264228                if ($DG/moles:dataModelID/moles:schemeIdentifier='NDG-A0') then  
    265                     (element Related_URL  
    266                         { 
     229                    (element Related_URL { 
    267230                            element URL_Content_Type {'NDG_A_SERVICE'}, 
    268231                            if (exists($DG/instance/URI)) then 
     
    292255                            element Description {'The NDG service delivering data via Data extractor. Additional tag to be more in line with latest version of GCMD valids'} 
    293256                            }, 
    294                         element Related_URL  
    295                             { 
     257                        element Related_URL { 
    296258                            element URL_Content_Type {'GET DATA > DX'}, 
    297259                            if (exists($DG/instance)) then 
     
    303265                            }) 
    304266                else if ($DG/moles:dataModelID/moles:schemeIdentifier='URI') then  
    305                     element Related_URL 
    306                         { 
     267                    element Related_URL { 
    307268                            element URL {data($DG/moles:instance/moles:URI)}, 
    308269                            if (exists($DG/moles:instance/moles:instanceComment)) then  
     
    311272                                    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.'} 
    312273                            } 
    313             else ($DG), 
     274            else (), 
    314275            for $RelURL_Desc in ($DE/moles:dgMetadataDescription/moles:descriptionSection/moles:descriptionOnlineReference)  
    315276            return 
    316                     element Related_URL 
    317                         { 
     277                    element Related_URL { 
    318278                            element URL {data($RelURL_Desc)}, 
    319279                            element Description {concat(data($RelURL_Desc/moles:name), ' - ', data($RelURL_Desc/moles:notes))}               
  • TI07-MOLES/trunk/ISO19115-19139/XQuery/NDG-ISO19115-139.xquery

    r1683 r1690  
    1111        exists(moles:dgDataEntity)  
    1212        and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
    13         and moles:dgMetadataID/moles:repositoryIdentifier='badc.nerc.ac.uk'  
    14         and moles:dgMetadataID/moles:localIdentifier='dataent1'] 
     13        and moles:dgMetadataID/moles:repositoryIdentifier='grid.bodc.nerc.ac.uk'  
     14        and moles:dgMetadataID/moles:localIdentifier='HGFS3751'] 
    1515return  
    1616element MD_Metadata {  
     
    3434        for $DataCuratorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCurator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''] 
    3535        return  
    36                 for $DataCuratorRoleHolder in collection('/db/ndg_B_metadata')/moles:dgMetadata/*[ 
     36                for $DataCuratorRoleHolder in collection('/db/ndg_B_metadata')/moles:dgMetadata/(moles:dgPerson | moles:dgOrganisation)[ 
    3737                        moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
    38                         and moles:dgMetadataID/moles:repositoryIdentifier=$DataCuratorRole/*/moles:repositoryIdentifier 
    39                         and moles:dgMetadataID/moles:localIdentifier=$DataCuratorRole/*/moles:localIdentifier] 
     38                        and moles:dgMetadataID/moles:repositoryIdentifier=$DataCuratorRole/(moles:dgPersonID | moles:dgOrganisationID)/moles:repositoryIdentifier 
     39                        and moles:dgMetadataID/moles:localIdentifier=$DataCuratorRole/(moles:dgPersonID | moles:dgOrganisationID)/moles:localIdentifier] 
    4040                return 
    4141                        element contact { 
     
    123123 
    124124                        element dateStamp {element gco:Date {adjust-date-to-timezone(current-date())}}, 
    125                         element metadataStandardName {element gco:CharacterString {'ISO 19115:2005'}}, 
    126                         element metadataStandardVersion {element gco:CharacterString {'2005'}}, 
     125                        element metadataStandardName {element gco:CharacterString {'ISO 19115:2003'}}, 
     126                        element metadataStandardVersion {element gco:CharacterString {'2003'}}, 
    127127                        element identificationInfo { 
    128128                                element gmd:MD_DataIdentification {  
     
    134134                                                        else (), 
    135135                                                        element date { 
    136                                                                 if (exists($DE/moles:*/moles:RecordCreation/moles:CreatedDate)) then 
     136                                                                if (exists($DE/(moles:DataProvenance | moles:dgMetadataProvenance)/moles:RecordCreation/moles:CreatedDate)) then 
    137137                                                                        element gmd:CI_Date { 
    138                                                                                 element date {element gco:Date {adjust-date-to-timezone(data($DE/moles:*/moles:RecordCreation/moles:CreatedDate))}}, 
     138                                                                                element date {element gco:Date {adjust-date-to-timezone(data($DE/(moles:DataProvenance | moles:dgMetadataProvenance)/moles:RecordCreation/moles:CreatedDate))}}, 
    139139                                                                                element dateType { 
    140140                                                                                        element CI_DateTypeCode { 
     
    163163                                                                attribute codeListValue {string($ISOTopicCategory/moles:dgValidTerm)}, 
    164164                                                                string($ISOTopicCategory/moles:dgValidTerm)} 
    165                                                 } (: </topicCategory> :) 
     165                                                } (: </topicCategory> :), 
     166                                        if (exists($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage)) then 
     167                                                element extent { 
     168                                                        element gmd:EX_Extent { 
     169                                                                (: add bounding boxes:) 
     170                                                                for $geoBBox in $DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:BoundingBox 
     171                                                                return 
     172                                                                        element geographicElement { 
     173                                                                                element EX_GeographicBoundingBox { 
     174                                                                                        element westBoundLongitude {element gco:Decimal {data($geoBBox/moles:LimitWest)}}, 
     175                                                                                        element eastBoundLongitude {element gco:Decimal {data($geoBBox/moles:LimitEast)}}, 
     176                                                                                        element southBoundLatitude {element gco:Decimal {data($geoBBox/moles:LimitSouth)}}, 
     177                                                                                        element northBoundLatitude {element gco:Decimal {data($geoBBox/moles:LimitNorth)}} 
     178                                                                                } (: </EX_GeographicBoundingBox> :) 
     179                                                                        } (: </geographicElement> :),  
     180                                                                (: add location terms:) 
     181                                                                for $geoArea in $DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgArea 
     182                                                                return 
     183                                                                        element geographicElement { 
     184                                                                                element EX_GeographicDescription { 
     185                                                                                        element geographicIdentifier { 
     186                                                                                                element gmd:RS_Identifier { 
     187                                                                                                        element gco:CharacterString {element code {data(dgArea/dgValidTerm)}}, 
     188                                                                                                        element gco:CharacterString {element codeSpace {data(dgArea/dgValidTermID/ParentListID)}} 
     189                                                                                                        } 
     190                                                                                                } 
     191                                                                                } (: </EX_GeographicDescription> :) 
     192                                                                        } (: </geographicElement> :) 
     193                                                        } (: </gmd:EX_Extent> :) 
     194                                                } (: </extent> :) 
     195                                        else() 
    166196                                } (:</gmd:MD_DataIdentification> :) 
    167197                        } (: </identificationInfo> :) 
Note: See TracChangeset for help on using the changeset viewer.