Changeset 1276 for TI07-MOLES/trunk/DIF


Ignore:
Timestamp:
04/07/06 08:01:47 (13 years ago)
Author:
ko23
Message:

Update queries + Java code

File:
1 edited

Legend:

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

    r811 r1276  
    1 for $DE in collection('/db/ndg_B_metadata')/dgMetadata/dgMetadataRecord[exists('dgDataEntity') and dgMetadataID/schemeIdentifier='NDG-B0' and dgMetadataID/repositoryIdentifier='www.npm.ac.uk' and dgMetadataID/localIdentifier='recordID.0'] 
     1for $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'] 
    22return 
    3         <DIF> 
     3        <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'> 
    44        <Entry_ID>{concat($DE/dgMetadataID/repositoryIdentifier, ':DIF:', $DE/dgMetadataID/localIdentifier)}</Entry_ID> 
    55        <Entry_Title>{string($DE/name)}</Entry_Title> 
    6         <Parameters> 
     6        {for $DataCreatorRole in $DE/dgDataEntity/dgDataRoles/dgDataCreator/dgRoleHolder[not(exists(endDate)) or endDate=''] 
     7                return  
     8                        for $DataCreatorRoleHolder in collection('/db/ndg_B_metadata')/dgMetadata/*[(dgMetadataID/schemeIdentifier='NDG-B0' 
     9                                       and dgMetadataID/repositoryIdentifier=$DataCreatorRole/*/repositoryIdentifier 
     10                                       and dgMetadataID/localIdentifier=$DataCreatorRole/*/localIdentifier)] 
     11                                return  
     12                                <Dataset_Citation> 
     13                                        {element Data_Creator {if (exists($DataCreatorRoleHolder/name/initials)) then ( 
     14                                        string(concat(string($DataCreatorRoleHolder/name/initials), ' ', string($DataCreatorRoleHolder/name/familyName))) 
     15                                        ) 
     16                                        else ( 
     17                                                        string($DataCreatorRoleHolder/abbreviation) 
     18                                        )} 
     19                                        } 
     20 
     21                                        <Dataset_Title>{string($DE/name)}</Dataset_Title> 
     22 
     23                                </Dataset_Citation> 
     24        } 
     25        <Personnel/> 
     26        <Discipline/> 
     27         
    728        {for $StructuredKeyword in ($DE//(dgStructuredKeyword | dgStdParameterMeasured)[dgValidTermID/ParentListID='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html' and ListLevel = 0]) 
    829                return if (exists($StructuredKeyword/*/dgValidTerm)) then ( 
    9                 <Parameter> 
    10                         <Category>{string($StructuredKeyword/*/dgValidTerm)}</Category> 
     30                <Parameters> 
     31                        {element Category {string($StructuredKeyword/*/dgValidTerm)}} 
    1132                        {if (exists($StructuredKeyword//dgValidSubterm)  
    1233                                and $StructuredKeyword//dgValidSubterm != ''  
     
    1637                                order by $Subterm/ListLevel 
    1738                                return  
    18                                         if ($Subterm/ListLevel=1) then (<Topic>{string($Subterm/dgValidSubterm/dgValidTerm)}</Topic>)  
    19                                         else ( 
    20                                         if ($Subterm/ListLevel=2) then (<Term>{string($Subterm/dgValidSubterm/dgValidTerm)}</Term>)  
    21                                         else ( 
    22                                         if ($Subterm/ListLevel=3) then (<Variable>{string($Subterm/dgValidSubterm/dgValidTerm)}</Variable>)  
    23                                         else ( 
    24                                         if ($Subterm/ListLevel=4) then (<Detailed_Variable>{string($Subterm/dgValidSubterm/dgValidTerm)}</Detailed_Variable>)  
    25                                         else (<GCMD_Science_Valid>{string($Subterm/dgValidSubterm/dgValidTerm)}</GCMD_Science_Valid>)))) 
     39                                        if ($Subterm/ListLevel=1) then (element Topic {string($Subterm/dgValidSubterm/dgValidTerm)})  
     40                                        else ( 
     41                                        if ($Subterm/ListLevel=2) then (element Term {string($Subterm/dgValidSubterm/dgValidTerm)})  
     42                                        else ( 
     43                                        if ($Subterm/ListLevel=3) then (element Variable {string($Subterm/dgValidSubterm/dgValidTerm)})  
     44                                        else ( 
     45                                        if ($Subterm/ListLevel=4) then (element Detailed_Variable {string($Subterm/dgValidSubterm/dgValidTerm)})  
     46                                        else (element GCMD_Science_Valid {string($Subterm/dgValidSubterm/dgValidTerm)})))) 
    2647                                )        
    2748                        else()} 
    28                 </Parameter> 
     49                </Parameters> 
    2950                ) 
    3051                else() 
    3152        } 
    32         </Parameters> 
    3353        {for $ISOTopicCategory in ($DE/dgStructuredKeyword[dgValidTermID/ParentListID='ISO 19115 Topic Category']) 
    3454                return  
    35                         <ISO_Topic_Category>{$ISOTopicCategory/dgValidTerm}</ISO_Topic_Category> 
    36         } 
     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'   
     59        and  
     60        dgValidTermID/ParentListID!='ISO 19115 Topic Category'   
     61        ]/dgValidTerm) 
     62        return element Keyword {string($Keyword)}  
     63        } 
     64            
     65        {for $DepDPT in ($DE/dgDataEntity/RelatedDeployment/DataProductionToolID)   
     66        return  
     67            <Sensor_Name> 
     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)) 
     69                    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)) 
     71                    return element Long_Name {data($DepDPTName)} 
     72                } 
     73            </Sensor_Name> 
     74        } 
     75        {for $DepObsStn in ($DE/dgDataEntity/RelatedDeployment/ObservationStationID) 
     76        return  
     77            <Source_Name> 
     78                {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)) 
     79                    return <Short_Name>{data($DepObsStnAbbrev)}</Short_Name>} 
     80                {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)) 
     81                    return <Long_Name>{data($DepObsStnName)}</Long_Name>} 
     82            </Source_Name> 
     83            } 
     84        {for $TemporalRange in ($DE/dgDataEntity/dgDataSummary/dgDataCoverage/(dgTemporalCoverage | dgSpatioTemporalcoverage/dgSpatioTemporalRange/dgSpatialCoverage)/dgDateRange) 
     85                return <Temporal_Coverage>  
     86                    {element Start_Date {data($TemporalRange/DateRangeStart)}} 
     87                    {element End_Date {data($TemporalRange/DateRangeEnd)}} 
     88                 </Temporal_Coverage> 
     89                } 
     90        {for $TemporalTerm in ($DE/dgDataEntity/dgDataSummary/dgDataCoverage/(dgTemporalCoverage | dgSpatioTemporalcoverage/dgSpatioTemporalRange/dgSpatialCoverage)/dgArea/dgValidTerm) 
     91                return element Paleo_Temporal_Coverage { 
     92                element Chronostratigraphic_Unit {data($TemporalTerm)} 
     93                    }  
     94                } 
     95        {for $Data_Set_Progress in ($DE/dgDataEntity/dgDataSummary/dgDataStatus/dgDatasetClosure) 
     96                return element Data_Set_Progress {$Data_Set_Progress} 
     97                    }  
     98        {for $BoundingBox in ($DE/dgDataEntity/dgDataSummary/dgDataCoverage/(dgSpatialCoverage | dgSpatioTemporalcoverage/dgSpatioTemporalRange/dgSpatialCoverage)/BoundingBox) 
     99        return <Spatial_Coverage>  
     100            {element Southernmost_Latitude {data($BoundingBox/LimitSouth)}} 
     101            {element Northernmost_Latitude {data($BoundingBox/LimitNorth)}} 
     102            {element Westernmost_Longitude {data($BoundingBox/LimitWest)}} 
     103            {element Easternmost_Longitude {data($BoundingBox/LimitEast)}} 
     104            </Spatial_Coverage> 
     105        } 
     106        {for $Location in ($DE/dgDataEntity/dgDataSummary/dgDataCoverage/(dgSpatialCoverage | dgSpatioTemporalcoverage/dgSpatioTemporalRange/dgSpatialCoverage)/dgArea[dgValidTermID/ParentListID='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_locations.html']) 
     107                return element Location {$Location}  
     108                } 
     109        <Data_Resolution/> 
     110        {for $DepAct in ($DE/dgDataEntity/RelatedDeployment/ActivityID) 
     111        return  
     112            <Project> 
     113                {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)) 
     114                    return <Short_Name>{data($DepActAbbrev)}</Short_Name>} 
     115                {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)) 
     116                    return <Long_Name>{data($DepActName)}</Long_Name>} 
     117            </Project> 
     118            } 
     119        <Quality/> 
     120        {if (exists($DE/dgDataEntity/dgDataGranule/accessControlPolicy)) then ( 
     121            element Access_Constraints {''} 
     122            ) 
     123                else () 
     124            } 
     125        <Use_Constraints/> 
     126        <Data_Set_Language/> 
     127        <Originating_Center/> 
     128 
    37129        {for $DataCuratorRole in $DE/dgDataEntity/dgDataRoles/dgDataCurator/dgRoleHolder[not(exists(endDate)) or endDate=''] 
    38130                return  
    39                         <Data_Center> 
    40                                 {if (exists($DataCuratorRole/dgPersonID)) then 
    41                                         for $DataCuratorRoleHolder in collection('/db/ndg_B_metadata')/dgMetadata/dgPerson[(dgMetadataID/schemeIdentifier='NDG-B0' and dgMetadataID/repositoryIdentifier=$DataCuratorRole/*/repositoryIdentifier and dgMetadataID/localIdentifier=$DataCuratorRole/*/localIdentifier)] 
    42                                                 return  
    43                                                 string(concat(string($DataCuratorRoleHolder/name/initials), ' ', string($DataCuratorRoleHolder/name/familyName))) 
    44                                 else if (exists($DataCuratorRole/dgOrganisationID)) then 
    45                                         for $DataCuratorRoleHolder in collection('/db/ndg_B_metadata')/dgMetadata/dgOrganisation[(dgMetadataID/schemeIdentifier='NDG-B0'  
    46                                                 and dgMetadataID/repositoryIdentifier=$DataCuratorRole/*/repositoryIdentifier  
    47                                                 and dgMetadataID/localIdentifier=$DataCuratorRole/*/localIdentifier)] 
    48                                                 return  
    49                                                 string($DataCuratorRoleHolder/name) 
    50                                 else () 
    51                                 } 
    52                         </Data_Center> 
    53                 } 
     131                        for $DataCuratorRoleHolder in collection('/db/ndg_B_metadata')/dgMetadata/*[(dgMetadataID/schemeIdentifier='NDG-B0' 
     132                                       and dgMetadataID/repositoryIdentifier=$DataCuratorRole/*/repositoryIdentifier 
     133                                       and dgMetadataID/localIdentifier=$DataCuratorRole/*/localIdentifier)] 
     134                                return  
     135                                <Data_Center> 
     136                                        <Data_Center_Name> 
     137                                        {element Short_Name {if (exists($DataCuratorRoleHolder/name/initials)) then ( 
     138                                        string(concat(string($DataCuratorRoleHolder/name/initials), ' ', string($DataCuratorRoleHolder/name/familyName))) 
     139                                        ) 
     140                                        else ( 
     141                                                        string($DataCuratorRoleHolder/abbreviation) 
     142                                        )} 
     143                                        } 
     144                                        {element Long_Name {if (exists($DataCuratorRoleHolder/name/initials)) then ( 
     145                                        string(concat(string($DataCuratorRoleHolder/name/initials), ' ', string($DataCuratorRoleHolder/name/familyName))) 
     146                                        ) 
     147                                        else (string($DataCuratorRoleHolder/name))} 
     148                                        } 
     149                                        </Data_Center_Name> 
     150                                        {if (exists($DataCuratorRoleHolder/contactDetails/URI)) then ( 
     151                                        element Data_Center_URL {data($DataCuratorRoleHolder/contactDetails/URI)} 
     152                                        ) 
     153                                        else ()} 
     154                                        {for $DGID in $DE/dgDataEntity/dgDataGranule/dataModelID 
     155                                        return element Data_Set_ID {concat($DGID/repositoryIdentifier, ':', $DGID/schemeIdentifier, ':', $DGID/localIdentifier)} 
     156                                        } 
     157                                        <Personnel> 
     158                                        {element Role {'Data Center Contact'}} 
     159                                        {if (exists($DataCuratorRoleHolder/name/knownAs)) then ( 
     160                                        element First_Name {string($DataCuratorRoleHolder/name/knownAs)} 
     161                                        ) 
     162                                        else if (exists($DataCuratorRoleHolder/name/initials)) then ( 
     163                                        element First_Name {string($DataCuratorRoleHolder/name/initials)} 
     164                                        ) 
     165                                        else ()}                                         
     166                                        {element Last_Name {if (exists($DataCuratorRoleHolder/name/familyName)) then ( 
     167                                        string($DataCuratorRoleHolder/name/familyName) 
     168                                        ) 
     169                                        else (string($DataCuratorRoleHolder/name))} 
     170                                        } 
     171                                        {if (exists($DataCuratorRole/contactDetails/eMail)) then ( 
     172                                        element Email {string($DataCuratorRole/contactDetails/eMail)} 
     173                                        ) 
     174                                        else ( 
     175                                        if (exists($DataCuratorRoleHolder/contactDetails/eMail)) then ( 
     176                                        element Email {string($DataCuratorRoleHolder/contactDetails/eMail)} 
     177                                        ) 
     178                                        else () 
     179                                        )} 
     180                                        {if (exists($DataCuratorRole/contactDetails/telephone)) then ( 
     181                                        element Phone {string($DataCuratorRole/contactDetails/telephone)} 
     182                                        ) 
     183                                        else ( 
     184                                        if (exists($DataCuratorRoleHolder/contactDetails/telephone)) then ( 
     185                                        element Phone {string($DataCuratorRoleHolder/contactDetails/telephone)} 
     186                                        ) 
     187                                        else () 
     188                                        )} 
     189                                        {if (exists($DataCuratorRole/contactDetails/fax)) then ( 
     190                                        element Fax {string($DataCuratorRole/contactDetails/fax)} 
     191                                        ) 
     192                                        else ( 
     193                                        if (exists($DataCuratorRoleHolder/contactDetails/fax)) then ( 
     194                                        element Fax {string($DataCuratorRoleHolder/contactDetails/fax)} 
     195                                        ) 
     196                                        else () 
     197                                        )} 
     198                                        {if (exists($DataCuratorRole/contactDetails/address/addressline)) then ( 
     199                                        for $addressline in $DataCuratorRole/contactDetails/address/addressline 
     200                                        return element address {$addressline} 
     201                                        ) 
     202                                        else ( 
     203                                        if (exists($DataCuratorRoleHolder/contactDetails/addressline)) then ( 
     204                                        for $addressline in $DataCuratorRoleHolder/contactDetails/address/addressline 
     205                                        return element address {$addressline} 
     206                                        ) 
     207                                        else () 
     208                                        )} 
     209                                        {if (exists($DataCuratorRole/contactDetails/address/city)) then ( 
     210                                        element City {string($DataCuratorRole/contactDetails/city)} 
     211                                        ) 
     212                                        else ( 
     213                                        if (exists($DataCuratorRoleHolder/contactDetails/city)) then ( 
     214                                        element Cityl {string($DataCuratorRoleHolder/contactDetails/city)} 
     215                                        ) 
     216                                        else () 
     217                                        )} 
     218                                        {if (exists($DataCuratorRole/contactDetails/address/postcode)) then ( 
     219                                        element Postal_Code {string($DataCuratorRole/contactDetails/postcode)} 
     220                                        ) 
     221                                        else ( 
     222                                        if (exists($DataCuratorRoleHolder/contactDetails/postcode)) then ( 
     223                                        element email {string($DataCuratorRoleHolder/contactDetails/postcode)} 
     224                                        ) 
     225                                        else () 
     226                                        )} 
     227                                        {if (exists($DataCuratorRole/contactDetails/address/country)) then ( 
     228                                        element Postal_Code {string($DataCuratorRole/contactDetails/country)} 
     229                                        ) 
     230                                        else ( 
     231                                        if (exists($DataCuratorRoleHolder/contactDetails/postcode)) then ( 
     232                                        element Postal_Code {string($DataCuratorRoleHolder/contactDetails/eMail)} 
     233                                        ) 
     234                                        else () 
     235                                                                         )} 
     236                                        </Personnel>  
     237                                </Data_Center> 
     238        } 
     239 
     240        <Distribution/> 
     241        <Multimedia_Sample/> 
     242        <Reference/> 
     243 
    54244        <Summary>{string($DE/dgMetadataDescription/abstract/abstractText)}</Summary> 
     245 
     246        <Related_URL> 
     247            {element URL_Content_Type {'NDG_B_SERVICE'}} 
     248            {element URL {data($DE/dgMetadataID/repositoryIdentifier)}} 
     249            {element Description {'The NDG service for browsing metadata.'}} 
     250        </Related_URL> 
     251 
     252        {for $DG in $DE/dgDataEntity/dgDataGranule 
     253            return  
     254            if ($DG/dataModelID/schemeIdentifier='NDG-A0') then ( 
     255            <Related_URL> 
     256            {element URL_Content_Type {'NDG_A_SERVICE'}} 
     257            {element URL {escape-uri('http://dmgdev1.esc.rl.ac.uk/cgi-bin/ndgDataAccess?datasetSource=dmgdev1.esc.rl.ac.uk&amp;datasetID=', true())}} 
     258            {element Description {'The NDG service delivering data via NDG A metadata.'}} 
     259            </Related_URL> 
     260            ) 
     261            else if ($DG/dataModelID/schemeIdentifier='CSML-0') then ( 
     262            <Related_URL> 
     263            {element URL_Content_Type {'NDG_A_SERVICE'}} 
     264            {element URL {escape-uri('http://cdat.badc.nerc.ac.uk/cgi-bin/dxui.py?datasetURI_1=/', true())}} 
     265            {element Description {'The NDG service delivering data via NDG A metadata.'}} 
     266            </Related_URL> 
     267            ) 
     268            else if ($DG/dataModelID/schemeIdentifier='URI') then ( 
     269            <Related_URL> 
     270            {element URL {data($DG/instance/URI)}} 
     271            {if (exists($DG/instance/instanceComment)) then ( 
     272            element Description {data($DG/instance/instanceComment)}         
     273            ) 
     274            else ( 
     275            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.'} 
     276            ) 
     277            } 
     278            </Related_URL> 
     279            ) 
     280            else () 
     281        } 
     282        <Parent_DIF/> 
     283        <IDN_Node/> 
     284        <Originating_Metadata_Node/>     
    55285        <Metadata_Name>[CEOS IDN DIF]</Metadata_Name> 
    56         <Metadata_Version>9.4</Metadata_Version> 
     286        {element Metadata_Version {'9.4'}} 
     287 
     288        {if  (exists($DE/dgMetadataProvenance/RecordCreation)) then ( 
     289        element DIF_Creation_Date {data($DE/dgMetadataProvenance/RecordCreation/CreatedDate)} 
     290        ) 
     291        else () 
     292        } 
     293        {for $MDUpdt in $DE/dgMetadataProvenance/RecordUpdate 
     294        return  element DIF_Revision_History {concat(data($MDUpdt/UpdateDate), ' - ', data($MDUpdt/UpdateSummary), ' - ', data($MDUpdt/UpdatedBy))} 
     295        } 
     296        {if  (exists($DE/dgMetadataProvenance/RecordReview)) then ( 
     297        element Future_DIF_Review_Date {data($DE/dgMetadataProvenance/RecordReview/ReviewDate)} 
     298        ) 
     299        else () 
     300        } 
    57301        </DIF> 
    58 (: Stylus Studio meta-information - (c) 2004-2005. Progress Software Corporation. All rights reserved. 
    59 <metaInformation> 
    60 <scenarios ><scenario default="yes" name="StubB" userelativepaths="yes" externalpreview="no" url="..\..\..\..\..\..\..\My Documents\ndgBXML\ndgB.xml" outputurl="" processortype="saxon" tcpport="2233" profilemode="7" profiledepth="" profilelength="" urlprofilexml="" commandline="" additionalpath="" additionalclasspath="" postprocessortype="none" postprocesscommandline="" postprocessadditionalpath="" postprocessgeneratedext="" host="" port="8000" user="" password=""/></scenarios><MapperMetaTag><MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/><MapperBlockPosition></MapperBlockPosition></MapperMetaTag> 
    61 </metaInformation> 
    62 :) 
Note: See TracChangeset for help on using the changeset viewer.