Changeset 2171 for TI07-MOLES


Ignore:
Timestamp:
15/02/07 11:54:01 (12 years ago)
Author:
ko23
Message:

Refactoring intermediate

Location:
TI07-MOLES/trunk
Files:
9 edited

Legend:

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

    r2154 r2171  
    11import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
    2 import module namespace utillib='http://ndg.nerc.ac.uk/xquery/lib/inputParse' at 'xmldb:exist:///db/xqueryLib/Utilities/utility_xquery_lib.xquery'; 
     2import module namespace utillib='http://ndg.nerc.ac.uk/xquery/lib/utilities' at 'xmldb:exist:///db/xqueryLib/Utilities/utility_xquery_lib.xquery'; 
    33declare default element namespace 'http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/'; 
    44declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';  
     
    77declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
    88declare variable $localIdentifier as xs:string {'LocalID'}; 
    9  
    10 voclib:spot-vocab($vocab_root as xs:string, $vocab_uri as xs:string) 
    119 
    1210for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     
    3533            element Dataset_Title {string($DE/moles:name)} 
    3634        }, 
    37         for $StructuredKeyword in ($DE//(moles:dgStructuredKeyword | moles:dgStdParameterMeasured)[voclib:spot-vocab($voclib:gcmd_science_valids, moles:dgValidTermID/moles:ParentListID) and moles:ListLevel = 0]) 
     35        for $StructuredKeyword in ($DE//(moles:dgStructuredKeyword | moles:dgStdParameterMeasured)[(voclib:spot-vocab($voclib:gcmd_science_valids, moles:dgValidTermID/moles:ParentListID) or voclib:spot-vocab($voclib:gcmd_science_valids_correct, moles:dgValidTermID/moles:ParentListID)) and moles:ListLevel = 0]) 
    3836                return if (exists($StructuredKeyword/*/moles:dgValidTerm)) then  
    3937                    element Parameters { 
     
    5452                    } 
    5553                else(), 
    56         for $ISOTopicCategory in ($DE/moles:dgStructuredKeyword[moles:dgValidTermID/moles:ParentListID='http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode']) 
     54        for $ISOTopicCategory in ($DE/moles:dgStructuredKeyword[voclib:spot-vocab($voclib:iso_topic_list, moles:dgValidTermID/moles:ParentListID)]) 
    5755            return  
    5856                element ISO_Topic_Category {string($ISOTopicCategory/moles:dgValidTerm)}, 
    5957        for $Keyword in distinct-values($DE//moles:dgStructuredKeyword[ 
    60         moles:dgValidTermID/moles:ParentListID!='http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'   
    61         and  
    62         moles:dgValidTermID/moles:ParentListID!='http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'   
    63         ]/moles:dgValidTerm) 
     58        not (voclib:spot-vocab($voclib:iso_topic_list, moles:dgValidTermID/moles:ParentListID) 
     59        or voclib:spot-vocab($voclib:gcmd_science_valids, moles:dgValidTermID/moles:ParentListID) 
     60        or voclib:spot-vocab($voclib:gcmd_science_valids_correct, moles:dgValidTermID/moles:ParentListID) 
     61        )]/moles:dgValidTerm) 
    6462        return element Keyword {string($Keyword)},  
    6563        for $DepDPT in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:DataProductionToolID)   
     
    8684                        element End_Date {data($TemporalRange/moles:DateRangeEnd)} 
    8785                        }, 
    88         for $TemporalTerm in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgArea/moles:dgValidTerm) 
     86        for $TemporalTerm in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgArea[voclib:spot-vocab($voclib:gcmd_chronostratigraphic_valids, moles:dgValidTermID/moles:ParentListID)]/moles:dgValidTerm) 
    8987                return element Paleo_Temporal_Coverage {element Chronostratigraphic_Unit {data($TemporalTerm)}},  
    9088        for $Data_Set_Progress in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataStatus/moles:dgDatasetClosure) 
     
    9896                    element Easternmost_Longitude {data($BoundingBox/moles:LimitEast)} 
    9997                }, 
    100         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']) 
     98        for $Location in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgDataCoverage//moles:dgArea[voclib:spot-vocab($voclib:gcmd_location_valids, moles:dgValidTermID/moles:ParentListID)]) 
    10199                return element Location {$Location},  
    102100        for $DepAct in ($DE/moles:dgDataEntity/moles:RelatedDeployment/moles:ActivityID) 
  • TI07-MOLES/trunk/DublinCore/XQuery/NDG-DublinCore.xquery

    r2132 r2171  
    2929                        string($DE/(dgMetadataProvenance | DataProvenance)/RecordCreation/CreatedDate)  
    3030                }, 
    31         for $StructuredKeyword in distinct-values($DE/dgStructuredKeyword [dgValidTermID/ParentListID=$cf_standard_names or dgValidTermID/ParentListID=$gcmd_science_valids or dgValidTermID/ParentListID=$gcmd_project_valids or dgValidTermID/ParentListID=$iso_topic_list ]//dgValidTerm)  
    32                 order by $StructuredKeyword 
    33                 return  
     31        for $StructuredKeyword in distinct-values($DE/dgStructuredKeyword[ 
     32        voclib:spot-vocab($voclib:cf_standard_names, dgValidTermID/ParentListID)  
     33        or voclib:spot-vocab($voclib:gcmd_science_valids, dgValidTermID/ParentListID)  
     34        or voclib:spot-vocab($voclib:gcmd_project_valids, dgValidTermID/ParentListID)  
     35        or voclib:spot-vocab($voclib:iso_topic_list, dgValidTermID/ParentListID) 
     36        or voclib:spot-vocab($voclib:bodc_parameter_usage_vocab, dgValidTermID/ParentListID) 
     37        or voclib:spot-vocab($voclib:bodc_parameter_discovery_vocab, dgValidTermID/ParentListID) 
     38        ]/dgValidTerm)  
     39        order by $StructuredKeyword 
     40        return  
    3441                element dc:subject {string($StructuredKeyword)}, 
    3542         
    36         for $StructuredKeyword1 in distinct-values($DE/dgDataEntity/dgDataSummary/dgParameterSummary/dgStdParameterMeasured[dgValidTermID/ParentListID=$cf_standard_names or dgValidTermID/ParentListID=$gcmd_science_valids or dgValidTermID/ParentListID=$gcmd_project_valids]//dgValidTerm)  
     43        for $StructuredKeyword1 in distinct-values($DE/dgDataEntity/dgDataSummary/dgParameterSummary/dgStdParameterMeasured[ 
     44        voclib:spot-vocab($voclib:gcmd_science_valids, dgValidTermID/ParentListID)  
     45        or voclib:spot-vocab($voclib:gcmd_project_valids, dgValidTermID/ParentListID) 
     46        or voclib:spot-vocab($voclib:bodc_parameter_usage_vocab, dgValidTermID/ParentListID) 
     47        or voclib:spot-vocab($voclib:bodc_parameter_discovery_vocab, dgValidTermID/ParentListID) 
     48        ]/dgValidTerm)  
    3749                order by $StructuredKeyword1 
    3850        return  
  • TI07-MOLES/trunk/ISO19115-19139/XQuery/NDG-ISO19115-139.xquery

    r1690 r2171  
     1import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
     2import module namespace utillib='http://ndg.nerc.ac.uk/xquery/lib/utilities' at 'xmldb:exist:///db/xqueryLib/Utilities/utility_xquery_lib.xquery'; 
     3import module namespace stubblib='http://ndg.nerc.ac.uk/xquery/lib/stubb' at 'xmldb:exist:///db/xqueryLib/StubB/stubb_xquery_lib.xquery'; 
     4 
     5declare variable $targetCollection as xs:string {'TargetCollection'}; 
     6declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
     7declare variable $localIdentifier as xs:string {'LocalID'}; 
     8 
    19declare default element namespace 'http://www.isotc211.org/2005/gmd'; 
    210declare namespace moles='http://ndg.nerc.ac.uk/moles'; 
     
    816declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
    917 
    10 for $DE in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
     18for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1119        exists(moles:dgDataEntity)  
    1220        and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
     
    3442        for $DataCuratorRole in $DE/moles:dgDataEntity/moles:dgDataRoles/moles:dgDataCurator/moles:dgRoleHolder[not(exists(moles:endDate)) or moles:endDate=''] 
    3543        return  
    36                 for $DataCuratorRoleHolder in collection('/db/ndg_B_metadata')/moles:dgMetadata/(moles:dgPerson | moles:dgOrganisation)[ 
     44                for $DataCuratorRoleHolder in collection($targetCollection)/moles:dgMetadata/(moles:dgPerson | moles:dgOrganisation)[ 
    3745                        moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
    3846                        and moles:dgMetadataID/moles:repositoryIdentifier=$DataCuratorRole/(moles:dgPersonID | moles:dgOrganisationID)/moles:repositoryIdentifier 
  • TI07-MOLES/trunk/MDIP/XQueries/NDG-MDIP.xquery

    r1917 r2171  
     1import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
    12declare default element namespace 'http://www.dassh.ac.uk'; 
    23declare namespace moles='http://ndg.nerc.ac.uk/moles'; 
    34declare namespace gco='http://www.isotc211.org/2005/gco'; 
    45declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';  
    5 declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
     6declare variable $targetCollection as xs:string {'TargetCollection'}; 
     7declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
     8declare variable $localIdentifier as xs:string {'LocalID'}; 
    69 
    7 declare variable $ISO_639-2_ns as xs:string{'UKGemini_Langauge_Categories'}; 
    8 declare variable $ISO_3166_ns as xs:string{'UKGemini_Land_Area_Categories'}; 
     10declare variable $ISO_639-2_ns as xs:string{$voclib:ISO_639-2_ns}; 
     11declare variable $ISO_3166_ns as xs:string{$voclib:ISO_3166_ns}; 
    912 
    10 for $DE in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
     13for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1114        exists('moles:dgDataEntity')  
    1215        and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
    13         and moles:dgMetadataID/moles:repositoryIdentifier='grid.bodc.nerc.ac.uk'  
    14         and moles:dgMetadataID/moles:localIdentifier='HGFS3751'] 
     16        and moles:dgMetadataID/moles:repositoryIdentifier=$repositoryIdentifier 
     17        and moles:dgMetadataID/moles:localIdentifier=$localIdentifier] 
    1518return 
    1619element Metadata { 
     
    3033        for $isoTopic in $DE/moles:dgStructuredKeyword[moles:dgValidTermID/moles:ParentListID='']  
    3134        return element TopicCategory {}, 
    32         for $subject in $DE/moles:dgDataEntity/moles:dgParameterSummary/moles:dgStdParameterMeasured[moles:dgValidTermID/moles:ParentListID=''] 
    33         return element Subject {}, 
     35        for $subject in distinct-values($DE/dgDataEntity/dgDataSummary/dgParameterSummary/dgStdParameterMeasured[ 
     36        voclib:spot-vocab($voclib:gcmd_science_valids, dgValidTermID/ParentListID)  
     37        or voclib:spot-vocab($voclib:gcmd_project_valids, dgValidTermID/ParentListID) 
     38        or voclib:spot-vocab($voclib:bodc_parameter_usage_vocab, dgValidTermID/ParentListID) 
     39        or voclib:spot-vocab($voclib:bodc_parameter_discovery_vocab, dgValidTermID/ParentListID) 
     40        ]/dgValidTerm)  
     41        return element Subject {$subject}, 
    3442        element Date { 
    3543                element DatasetStartDate {}, 
  • TI07-MOLES/trunk/StubB/XQuery/NDG-ActStubB.xquery

    r2077 r2171  
     1import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
     2import module namespace utillib='http://ndg.nerc.ac.uk/xquery/lib/utilities' at 'xmldb:exist:///db/xqueryLib/Utilities/utility_xquery_lib.xquery'; 
     3import module namespace stubblib='http://ndg.nerc.ac.uk/xquery/lib/stubb' at 'xmldb:exist:///db/xqueryLib/StubB/stubb_xquery_lib.xquery'; 
    14declare default element namespace 'http://ndg.nerc.ac.uk/moles/activity';  
    25declare namespace moles='http://ndg.nerc.ac.uk/moles'; 
    3 declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
    46 
    5 declare function f:strip-namespace($e as element()) as element()  
    6 (: Removes namespace info from the element tree being addressed so that it will lie in the default namespace  :) 
    7 { 
    8   element {QName('', local-name($e))}   
    9   { 
    10     let $parent :=$e 
    11     let $childcount := count($parent/*) 
    12     return  
    13         if ($childcount>0) then 
    14             for $child in ($e/*) 
    15             return 
    16                 f:strip-namespace($child) 
    17         else (data($e))           
    18   } 
    19 } ; 
     7declare variable $targetCollection as xs:string {'TargetCollection'}; 
     8declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
     9declare variable $localIdentifier as xs:string {'LocalID'}; 
    2010 
    21  
    22 for $Act in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
     11for $Act in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    2312        moles:dgActivity!=''  
    2413        and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
    25         and moles:dgMetadataID/moles:repositoryIdentifier='badc.nerc.ac.uk'  
    26         and moles:dgMetadataID/moles:localIdentifier='activity3'] 
     14        and moles:dgMetadataID/moles:repositoryIdentifier=$repositoryIdentifier 
     15        and moles:dgMetadataID/moles:localIdentifier=$localIdentifier] 
    2716return 
    28 f:strip-namespace(element dgMetadataRecord { 
     17utillib:strip-namespace(element dgMetadataRecord { 
    2918        element dgMetadataID { 
    3019                element schemeIdentifier {'NDG-B1'}, 
     
    4029                                element relatedActivity { 
    4130                                        $RelatedActivities/moles:activityRelation, 
    42                                         f:return-stub-activity('activity', data($RelatedActivities/moles:relatedActivityID/moles:repositoryIdentifier), data($RelatedActivities/moles:relatedActivityID/moles:localIdentifier)) 
     31                                        stubblib:return-stub-activity('activity', data($RelatedActivities/moles:relatedActivityID/moles:repositoryIdentifier), data($RelatedActivities/moles:relatedActivityID/moles:localIdentifier)) 
    4332                        },      (: </relatedActivity> :) 
    4433                if (exists($Act/moles:dgActivity/moles:dgActivityDataCollection)) then ($Act/moles:dgActivity/moles:dgActivityDataCollection) 
     
    5948                                                element dgRoleHolder { 
    6049                                                        if (exists($PIRole/moles:dgOrganisationID)) then  
    61                                                                 f:return-stub-organisation('organisation', data($PIRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($PIRole/moles:dgOrganisationID/moles:localIdentifier))  
     50                                                                stubblib:return-stub-organisation('organisation', data($PIRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($PIRole/moles:dgOrganisationID/moles:localIdentifier))  
    6251                                                         else if (exists($PIRole/moles:dgPersonID)) then  
    63                                                                 f:return-stub-person('person', string($PIRole/moles:dgPersonID/moles:repositoryIdentifier), string($PIRole/moles:dgPersonID/moles:localIdentifier))  
     52                                                                stubblib:return-stub-person('person', string($PIRole/moles:dgPersonID/moles:repositoryIdentifier), string($PIRole/moles:dgPersonID/moles:localIdentifier))  
    6453                                                         else (), 
    6554                                                        ($PIRole/moles:startDate), 
     
    8473                                                element dgRoleHolder { 
    8574                                                        if (exists(CIRole/moles:dgOrganisationID)) then  
    86                                                                 f:return-stub-organisation('organisation', data($CIRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($CIRole/moles:dgOrganisationID/moles:localIdentifier))  
     75                                                                stubblib:return-stub-organisation('organisation', data($CIRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($CIRole/moles:dgOrganisationID/moles:localIdentifier))  
    8776                                                         else if (exists($CIRole/moles:dgPersonID)) then  
    88                                                                 f:return-stub-person('person', string($CIRole/moles:dgPersonID/moles:repositoryIdentifier), string($CIRole/moles:dgPersonID/moles:localIdentifier))  
     77                                                                stubblib:return-stub-person('person', string($CIRole/moles:dgPersonID/moles:repositoryIdentifier), string($CIRole/moles:dgPersonID/moles:localIdentifier))  
    8978                                                         else (), 
    9079                                                        ($CIRole/moles:startDate), 
     
    10998                                        element dgRoleHolder { 
    11099                                                if (exists($TechConRole/moles:dgOrganisationID)) then  
    111                                                         f:return-stub-organisation('organisation', data($TechConRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($TechConRole/moles:dgOrganisationID/moles:localIdentifier))  
     100                                                        stubblib:return-stub-organisation('organisation', data($TechConRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($TechConRole/moles:dgOrganisationID/moles:localIdentifier))  
    112101                                                 else if (exists($TechConRole/moles:dgPersonID)) then  
    113                                                         f:return-stub-person('person', string($TechConRole/moles:dgPersonID/moles:repositoryIdentifier), string($TechConRole/moles:dgPersonID/moles:localIdentifier))  
     102                                                        stubblib:return-stub-person('person', string($TechConRole/moles:dgPersonID/moles:repositoryIdentifier), string($TechConRole/moles:dgPersonID/moles:localIdentifier))  
    114103                                                 else (), 
    115104                                            ($TechConRole/moles:startDate), 
     
    135124                                        element dgRoleHolder { 
    136125                                                if (exists($PMRole/moles:dgOrganisationID)) then  
    137                                                         f:return-stub-organisation('organisation', data($PMRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($PMRole/moles:dgOrganisationID/moles:localIdentifier))  
     126                                                        stubblib:return-stub-organisation('organisation', data($PMRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($PMRole/moles:dgOrganisationID/moles:localIdentifier))  
    138127                                                 else if (exists($PMRole/moles:dgPersonID)) then  
    139                                                         f:return-stub-person('person', string($PMRole/moles:dgPersonID/moles:repositoryIdentifier), string($PMRole/moles:dgPersonID/moles:localIdentifier))  
     128                                                        stubblib:return-stub-person('person', string($PMRole/moles:dgPersonID/moles:repositoryIdentifier), string($PMRole/moles:dgPersonID/moles:localIdentifier))  
    140129                                                 else (), 
    141130                                                ($PMRole/startDate), 
     
    159148                        else (), 
    160149                        ($RelDep/moles:dgMetadataID), 
    161                         f:return-stub-dpt('dataproductiontool', data($RelDep/moles:DataProductionToolID/moles:repositoryIdentifier), data($RelDep/moles:DataProductionToolID/moles:localIdentifier)), 
    162                         f:return-stub-obsstn('observationstation', data($RelDep/moles:ObservationStationID/moles:repositoryIdentifier), data($RelDep/moles:ObservationStationID/moles:localIdentifier)), 
    163                         for $DE in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord 
     150                        stubblib:return-stub-dpt('dataproductiontool', data($RelDep/moles:DataProductionToolID/moles:repositoryIdentifier), data($RelDep/moles:DataProductionToolID/moles:localIdentifier)), 
     151                        stubblib:return-stub-obsstn('observationstation', data($RelDep/moles:ObservationStationID/moles:repositoryIdentifier), data($RelDep/moles:ObservationStationID/moles:localIdentifier)), 
     152                        for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord 
    164153                                where $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:repositoryIdentifier=$RelDep/moles:dgMetadataID/moles:repositoryIdentifier 
    165154                                        and $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:localIdentifier=$RelDep/moles:dgMetadataID/moles:localIdentifier 
    166155                        return 
    167                                 f:return-stub-dataentity('dataentity', data($DE/moles:dgMetadataID/moles:repositoryIdentifier), data($DE/moles:dgMetadataID/moles:localIdentifier)) 
     156                                stubblib:return-stub-dataentity('dataentity', data($DE/moles:dgMetadataID/moles:repositoryIdentifier), data($DE/moles:dgMetadataID/moles:localIdentifier)) 
    168157                }, (: </ActivityDeployment> :) 
    169158                if (exists($Act/dgActivityCoverage)) then 
  • TI07-MOLES/trunk/StubB/XQuery/NDG-DEStubB.xquery

    r1744 r2171  
     1import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
     2import module namespace utillib='http://ndg.nerc.ac.uk/xquery/lib/utilities' at 'xmldb:exist:///db/xqueryLib/Utilities/utility_xquery_lib.xquery'; 
     3import module namespace stubblib='http://ndg.nerc.ac.uk/xquery/lib/stubb' at 'xmldb:exist:///db/xqueryLib/StubB/stubb_xquery_lib.xquery'; 
    14declare default element namespace 'http://ndg.nerc.ac.uk/moles/dataentity';  
    25declare namespace moles='http://ndg.nerc.ac.uk/moles'; 
    3 declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
    46 
    5 declare function f:strip-namespace($e as element()) as element()  
    6 (: Removes namespace info from the element tree being addressed so that it will lie in the default namespace  :) 
    7 { 
    8   element {QName('', local-name($e))}   
    9   { 
    10     let $parent :=$e 
    11     let $childcount := count($parent/*) 
    12     return  
    13         if ($childcount>0) then 
    14             for $child in ($e/*) 
    15             return 
    16                 f:strip-namespace($child) 
    17         else (data($e))           
    18   } 
    19 } ; 
     7declare variable $targetCollection as xs:string {'TargetCollection'}; 
     8declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
     9declare variable $localIdentifier as xs:string {'LocalID'}; 
    2010 
    21 declare function f:return-stub-activity($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    22 (: Returns a 'stubB' style activity record to expand an activity record :) 
    23 (: Security not implemented here yet :) 
    24 { 
    25 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    26                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    27                         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    28 return   
    29         if ($found = 0) then  
    30                 element {$out-element-name} { 
    31                         element error {'not found'}, 
    32                         element repositoryIdentifier {$repid}, 
    33                         element localIdentifier {$locid} 
    34                 }  
    35         else ( 
    36                 for $SRAct in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    37                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    38                         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    39                 return  
    40                         element  {$out-element-name} {  
    41                                 ($SRAct/moles:dgMetadataID), 
    42                                 ($SRAct/moles:dgMetadataDescription), 
    43                                 ($SRAct/moles:name), 
    44                                 ($SRAct/moles:abbreviation), 
    45                                 element dgActivity { 
    46                                         if (exists($SRAct/*/moles:dgActivityDataCollection)) then  
    47                                                 ($SRAct/*/moles:dgActivityDataCollection) 
    48                                         else if (exists($SRAct/*/moles:dgActivityDataProject)) then  
    49                                                 ($SRAct/*/moles:dgActivityDataProject) 
    50                                         else if (exists($SRAct/*/dgActivityDataCampaign)) then 
    51                                                 ($SRAct/moles:dgActivity/moles:dgActivityDataCampaign) 
    52                                         else  
    53                                                 ($SRAct/moles:dgActivity/moles:dgActivityDataInvestigation),  
    54                                         ($SRAct/moles:dgActivity/moles:dgActivityCoverage), 
    55                                         ($SRAct/moles:dgActivity/moles:dgActivityDuration) 
    56                                 } (: </dgActivity> :)  
    57                         } (: </activity> :)  
    58         ) 
    59 } ; 
    60  
    61 declare function f:return-stub-dataentity($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    62 (: Returns a 'stubB' style observation station record to expand an data entity record :) 
    63 (: Security not implemented yet :) 
    64 { 
    65 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    66                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    67                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    68 return   
    69         if ($found = 0) then  
    70                 element {$out-element-name} { 
    71                         element error {'not found'}, 
    72                         element repositoryIdentifier {$repid}, 
    73                         element localIdentifier {$locid} 
    74                 }  
    75         else ( 
    76                 for $SRDE in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    77                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    78                         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    79                 return   
    80                         element {$out-element-name} { 
    81                                 ($SRDE/moles:dgMetadataID), 
    82                                 ($SRDE/moles:dgMetadataDescription), 
    83                                 ($SRDE/moles:name), 
    84                                 ($SRDE/moles:abbreviation), 
    85                                 element dgDataEntity { 
    86                                         ($SRDE/moles:dgDataEntity/moles:dgDataSetType), 
    87                                         ($SRDE/moles:dgDataEntity/moles:dgDataGranule), 
    88                                         ($SRDE/moles:dgDataEntity/moles:dgDataSummary) 
    89                                 } (: </dgDataEntity> :)          
    90                         } 
    91         ) 
    92 } ; 
    93  
    94 declare function f:return-stub-dpt($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    95 (: Returns a 'stubB' style dpt record to expand a dpt record :) 
    96 (: Security not implemented yet :) 
    97 { 
    98 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    99                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    100                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    101 return   
    102         if ($found = 0) then  
    103                 element {$out-element-name} { 
    104                         element error {'not found'}, 
    105                         element repositoryIdentifier {$repid}, 
    106                         element localIdentifier {$locid} 
    107                 }  
    108         else ( 
    109                 for $SRDPT in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    110                                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    111                                 and moles:dgMetadataID/moles:localIdentifier=$locid] 
    112                 return   
    113                         element {$out-element-name} { 
    114                                 $SRDPT/moles:dgMetadataID, 
    115                                 $SRDPT/moles:dgMetadataDescription, 
    116                                 $SRDPT/moles:name, 
    117                                 $SRDPT/moles:abbreviation, 
    118                                 $SRDPT/moles:logos, 
    119                                 element dgDataProductionTool { 
    120                                         $SRDPT/moles:dgDataProductionTool/moles:contactDetails, 
    121                                         if (exists($SRDPT/moles:dgDataProductionTool/moles:dgModel)) then 
    122                                                 $SRDPT/moles:dgDataProductionTool/moles:dgModel 
    123                                         else (), 
    124                                         if (exists($SRDPT/moles:dgDataProductionTool/moles:dgInstrument)) then 
    125                                                 $SRDPT/moles:dgDataProductionTool/moles:dgInstrument 
    126                                         else () 
    127                                         } (: </dgDataProductionTool> :) 
    128                                 } (: </dataproductiontool> :) 
    129         ) 
    130 } ; 
    131  
    132 declare function f:return-stub-obsstn($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    133 (: Returns a 'stubB' style observation station record to expand an observation station record :) 
    134 (: Security not implemented here yet;  :) 
    135 { 
    136 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    137                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    138                         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    139 return   
    140         if ($found = 0) then  
    141                 element {$out-element-name} { 
    142                         element error {'not found'}, 
    143                         element repositoryIdentifier {$repid}, 
    144                         element localIdentifier {$locid} 
    145                 }  
    146         else ( 
    147                 for $SRObsStn in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    148                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    149                         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    150                 return 
    151                         element {$out-element-name} { 
    152                                 ($SRObsStn/moles:dgMetadataID), 
    153                                 ($SRObsStn/moles:dgMetadataDescription), 
    154                                 ($SRObsStn/moles:name), 
    155                                 ($SRObsStn/moles:abbreviation), 
    156                                 element dgObservationStation { 
    157                                         ($SRObsStn/moles:dgObservationStation/moles:contactDetails), 
    158                                         if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then 
    159                                                 element dgStationaryPlatform { 
    160                                                         $SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
    161                                                         if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgLandStation)) then element dgLandStation {''} 
    162                                                         else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgMooring)) then element dgMooring {''} 
    163                                                         else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgStationGroup)) then element dgStationGroup {''} 
    164                                                         else () 
    165                                                         } 
    166                                         else if (exists($SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform)) then  
    167                                                 $SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform 
    168                                         else () 
    169                                 } (: </dgObservationStation> :) 
    170                         } 
    171         ) 
    172 } ; 
    173  
    174 declare function f:return-stub-person($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    175 (: Returns a 'stubB' style observation station record to expand a person record :) 
    176 (: Security not implemented yet :) 
    177 { 
    178 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgPerson[ 
    179                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    180                         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    181 return   
    182         if ($found = 0) then  
    183                 element {$out-element-name} { 
    184                         element error {'not found'}, 
    185                         element repositoryIdentifier {$repid}, 
    186                         element localIdentifier {$locid} 
    187                 }  
    188         else ( 
    189         for $person in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgPerson[ 
    190                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    191                 and moles:dgMetadataID/moles:localIdentifier=$locid]  
    192         return  
    193                 element  {$out-element-name}  
    194                 { 
    195                         ($person/moles:name), 
    196                         ($person/moles:contactDetails), 
    197                         ($person/moles:dgMetadataID) 
    198                 } 
    199         ) 
    200 } ; 
    201  
    202 declare function f:return-stub-organisation($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    203 (: Returns a 'stubB' style observation station record to expand an organisation record :) 
    204 (: Security not implemented yet :) 
    205 { 
    206         let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgOrganisation[ 
    207                                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    208                                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    209         return   
    210                 if ($found = 0) then  
    211                         element {$out-element-name} { 
    212                                 element error {'not found'}, 
    213                                 element repositoryIdentifier {$repid}, 
    214                                 element localIdentifier {$locid} 
    215                         }  
    216                 else ( 
    217                         for $org in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgOrganisation[ 
    218                                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    219                                 and moles:dgMetadataID/moles:localIdentifier=$locid]  
    220                         return  
    221                                 element  {$out-element-name} { 
    222                                         $org/moles:dgMetadataID, 
    223                                         $org/moles:name, 
    224                                         $org/moles:abbreviation, 
    225                                         $org/moles:contactDetails, 
    226                                         $org/moles:logos 
    227                                 } 
    228                 ) 
    229 } ; 
    230  
    231 for $DE in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    232 exists(moles:dgDataEntity)  
    233 and moles:dgMetadataID[ 
    234 moles:schemeIdentifier='NDG-B0'  
    235 and moles:repositoryIdentifier='badc.nerc.ac.uk'  
    236 and moles:localIdentifier='dataent1']] 
     11for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     12moles:dgDataEntity!=''  
     13and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
     14and moles:dgMetadataID/moles:repositoryIdentifier=$repositoryIdentifier 
     15and moles:dgMetadataID/moles:localIdentifier=$localIdentifier] 
    23716return 
    238 f:strip-namespace(element dgMetadataRecord { 
     17utillib:strip-namespace(element dgMetadataRecord { 
    23918        element dgMetadataID { 
    24019                element schemeIdentifier {'NDG-B1'}, 
     
    26241                                                element dgRoleHolder { 
    26342                                                        if (exists($DataCreatorRole/moles:dgOrganisationID)) then  
    264                                                                 f:return-stub-organisation('organisation', data($DataCreatorRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($DataCreatorRole/moles:dgOrganisationID/moles:localIdentifier))  
     43                                                                stubblib:return-stub-organisation('organisation', data($DataCreatorRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($DataCreatorRole/moles:dgOrganisationID/moles:localIdentifier))  
    26544                                                         else if (exists($DataCreatorRole/moles:dgPersonID)) then  
    266                                                                 f:return-stub-person('person', string($DataCreatorRole/moles:dgPersonID/moles:repositoryIdentifier), string($DataCreatorRole/moles:dgPersonID/moles:localIdentifier))  
     45                                                                stubblib:return-stub-person('person', string($DataCreatorRole/moles:dgPersonID/moles:repositoryIdentifier), string($DataCreatorRole/moles:dgPersonID/moles:localIdentifier))  
    26746                                                         else (), 
    26847                                                        $DataCreatorRole/moles:startDate, 
     
    28362                                                element dgRoleHolder { 
    28463                                                        if (exists($DataCuratorRole/moles:dgOrganisationID)) then  
    285                                                                 f:return-stub-organisation('organisation', data($DataCuratorRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($DataCuratorRole/moles:dgOrganisationID/moles:localIdentifier))  
     64                                                                stubblib:return-stub-organisation('organisation', data($DataCuratorRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($DataCuratorRole/moles:dgOrganisationID/moles:localIdentifier))  
    28665                                                         else if (exists($DataCuratorRole/moles:dgPersonID)) then  
    287                                                                 f:return-stub-person('person', string($DataCuratorRole/moles:dgPersonID/moles:repositoryIdentifier), string($DataCuratorRole/moles:dgPersonID/moles:localIdentifier))  
     66                                                                stubblib:return-stub-person('person', string($DataCuratorRole/moles:dgPersonID/moles:repositoryIdentifier), string($DataCuratorRole/moles:dgPersonID/moles:localIdentifier))  
    28867                                                         else (), 
    28968                                                        $DataCuratorRole/moles:startDate, 
     
    30483                                                element dgRoleHolder { 
    30584                                                        if (exists($DataOtherRolesRole/moles:dgOrganisationID)) then  
    306                                                                 f:return-stub-organisation('organisation', data($DataOtherRolesRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($DataOtherRolesRole/moles:dgOrganisationID/moles:localIdentifier))  
     85                                                                stubblib:return-stub-organisation('organisation', data($DataOtherRolesRole/moles:dgOrganisationID/moles:repositoryIdentifier), data($DataOtherRolesRole/moles:dgOrganisationID/moles:localIdentifier))  
    30786                                                         else if (exists($DataOtherRolesRole/moles:dgPersonID)) then  
    308                                                                 f:return-stub-person('person', string($DataOtherRolesRole/moles:dgPersonID/moles:repositoryIdentifier), string($DataOtherRolesRole/moles:dgPersonID/moles:localIdentifier))  
     87                                                                stubblib:return-stub-person('person', string($DataOtherRolesRole/moles:dgPersonID/moles:repositoryIdentifier), string($DataOtherRolesRole/moles:dgPersonID/moles:localIdentifier))  
    30988                                                         else (), 
    31089                                                        $DataOtherRolesRole/moles:startDate, 
     
    321100                        $RelDep/moles:DateEnd, 
    322101                        $RelDep/moles:dgMetadataID, 
    323                         f:return-stub-activity('activity', data($RelDep/moles:ActivityID/moles:repositoryIdentifier), data($RelDep/moles:ActivityID/moles:localIdentifier)), 
    324                         f:return-stub-dpt('dataproductiontool', data($RelDep/moles:DataProductionToolID/moles:repositoryIdentifier), data($RelDep/moles:DataProductionToolID/moles:localIdentifier)), 
    325                         f:return-stub-obsstn('observationstation', data($RelDep/moles:ObservationStationID/moles:repositoryIdentifier), data($RelDep/moles:ObservationStationID/moles:localIdentifier)), 
     102                        stubblib:return-stub-activity('activity', data($RelDep/moles:ActivityID/moles:repositoryIdentifier), data($RelDep/moles:ActivityID/moles:localIdentifier)), 
     103                        stubblib:return-stub-dpt('dataproductiontool', data($RelDep/moles:DataProductionToolID/moles:repositoryIdentifier), data($RelDep/moles:DataProductionToolID/moles:localIdentifier)), 
     104                        stubblib:return-stub-obsstn('observationstation', data($RelDep/moles:ObservationStationID/moles:repositoryIdentifier), data($RelDep/moles:ObservationStationID/moles:localIdentifier)), 
    326105                        $RelDep/moles:Coverage 
    327106                } (: </RelatedDeployment> :)  
     
    334113                                        $RelatedDataEntity/moles:RelationID/moles:dgValidTermID 
    335114                                }, (: </relation> :) 
    336                                 f:return-stub-dataentity('dataentity', data($RelatedDataEntity/(moles:RelatedDataEntityID | moles:RelatedDataGranuleID)/moles:repositoryIdentifier), data($RelatedDataEntity/(moles:RelatedDataEntityID | moles:RelatedDataGranuleID)/moles:localIdentifier)) 
     115                                stubblib:return-stub-dataentity('dataentity', data($RelatedDataEntity/(moles:RelatedDataEntityID | moles:RelatedDataGranuleID)/moles:repositoryIdentifier), data($RelatedDataEntity/(moles:RelatedDataEntityID | moles:RelatedDataGranuleID)/moles:localIdentifier)) 
    337116                                } (: </relateddataentity> :) 
    338117        } (: </dgDataEntity> :), 
  • TI07-MOLES/trunk/StubB/XQuery/NDG-DPTStubB.xquery

    r1707 r2171  
    11declare default element namespace 'http://ndg.nerc.ac.uk/moles/dataproductiontool';  
     2import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
     3import module namespace utillib='http://ndg.nerc.ac.uk/xquery/lib/utilities' at 'xmldb:exist:///db/xqueryLib/Utilities/utility_xquery_lib.xquery'; 
     4import module namespace stubblib='http://ndg.nerc.ac.uk/xquery/lib/stubb' at 'xmldb:exist:///db/xqueryLib/StubB/stubb_xquery_lib.xquery'; 
    25declare namespace moles='http://ndg.nerc.ac.uk/moles'; 
    3 declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
    46 
    5 declare function f:strip-namespace($e as element()) as element()  
    6 (: Removes namespace info from the element tree being addressed so that it will lie in the default namespace  :) 
    7 { 
    8   element {QName('', local-name($e))}   
    9   { 
    10     let $parent :=$e 
    11     let $childcount := count($parent/*) 
    12     return  
    13         if ($childcount>0) then 
    14             for $child in ($e/*) 
    15             return 
    16                 f:strip-namespace($child) 
    17         else (data($e))           
    18   } 
    19 } ; 
     7declare variable $targetCollection as xs:string {'TargetCollection'}; 
     8declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
     9declare variable $localIdentifier as xs:string {'LocalID'}; 
    2010 
    21 declare function f:return-stub-activity($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    22 (: Returns a 'stubB' style activity record to expand an activity record :) 
    23 (: Security not implemented here yet :) 
    24 { 
    25 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    26                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    27                         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    28 return   
    29         if ($found = 0) then  
    30                 element {$out-element-name} { 
    31                         element error {'not found'}, 
    32                         element repositoryIdentifier {$repid}, 
    33                         element localIdentifier {$locid} 
    34                 }  
    35         else ( 
    36                 for $SRAct in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    37                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    38                         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    39                 return  
    40                         element  {$out-element-name} {  
    41                                 ($SRAct/moles:dgMetadataID), 
    42                                 ($SRAct/moles:dgMetadataDescription), 
    43                                 ($SRAct/moles:name), 
    44                                 ($SRAct/moles:abbreviation), 
    45                                 element dgActivity { 
    46                                         if (exists($SRAct/*/moles:dgActivityDataCollection)) then  
    47                                                 ($SRAct/*/moles:dgActivityDataCollection) 
    48                                         else if (exists($SRAct/*/moles:dgActivityDataProject)) then  
    49                                                 ($SRAct/*/moles:dgActivityDataProject) 
    50                                         else if (exists($SRAct/*/dgActivityDataCampaign)) then 
    51                                                 ($SRAct/moles:dgActivity/moles:dgActivityDataCampaign) 
    52                                         else  
    53                                                 ($SRAct/moles:dgActivity/moles:dgActivityDataInvestigation),  
    54                                         ($SRAct/moles:dgActivity/moles:dgActivityCoverage), 
    55                                         ($SRAct/moles:dgActivity/moles:dgActivityDuration) 
    56                                 } (: </dgActivity> :)  
    57                         } (: </activity> :)  
    58         ) 
    59 } ; 
    60  
    61 declare function f:return-stub-dataentity($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    62 (: Returns a 'stubB' style observation station record to expand an data entity record :) 
    63 (: Security not implemented yet :) 
    64 { 
    65 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    66                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    67                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    68 return   
    69         if ($found = 0) then  
    70                 element {$out-element-name} { 
    71                         element error {'not found'}, 
    72                         element repositoryIdentifier {$repid}, 
    73                         element localIdentifier {$locid} 
    74                 }  
    75         else ( 
    76                 for $SRDE in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    77                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    78                         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    79                 return   
    80                         element {$out-element-name} { 
    81                                 ($SRDE/moles:dgMetadataID), 
    82                                 ($SRDE/moles:dgMetadataDescription), 
    83                                 ($SRDE/moles:name), 
    84                                 ($SRDE/moles:abbreviation), 
    85                                 element dgDataEntity { 
    86                                         ($SRDE/moles:dgDataEntity/moles:dgDataSetType), 
    87                                         ($SRDE/moles:dgDataEntity/moles:dgDataGranule), 
    88                                         ($SRDE/moles:dgDataEntity/moles:dgDataSummary) 
    89                                 } (: </dgDataEntity> :)          
    90                         } 
    91         ) 
    92 } ; 
    93  
    94 declare function f:return-stub-dpt($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    95 (: Returns a 'stubB' style dpt record to expand a dpt record :) 
    96 (: Security not implemented yet :) 
    97 { 
    98 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    99                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    100                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    101 return   
    102         if ($found = 0) then  
    103                 element {$out-element-name} { 
    104                         element error {'not found'}, 
    105                         element repositoryIdentifier {$repid}, 
    106                         element localIdentifier {$locid} 
    107                 }  
    108         else ( 
    109                 for $SRDPT in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    110                                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    111                                 and moles:dgMetadataID/moles:localIdentifier=$locid] 
    112                 return   
    113                         element {$out-element-name} { 
    114                                 $SRDPT/moles:dgMetadataID, 
    115                                 $SRDPT/moles:dgMetadataDescription, 
    116                                 $SRDPT/moles:name, 
    117                                 $SRDPT/moles:abbreviation, 
    118                                 $SRDPT/moles:logos, 
    119                                 element dgDataProductionTool { 
    120                                         $SRDPT/moles:dgDataProductionTool/moles:contactDetails, 
    121                                         if (exists($SRDPT/moles:dgDataProductionTool/moles:dgModel)) then 
    122                                                 $SRDPT/moles:dgDataProductionTool/moles:dgModel 
    123                                         else (), 
    124                                         if (exists($SRDPT/moles:dgDataProductionTool/moles:dgInstrument)) then 
    125                                                 $SRDPT/moles:dgDataProductionTool/moles:dgInstrument 
    126                                         else () 
    127                                         } (: </dgDataProductionTool> :) 
    128                                 } (: </dataproductiontool> :) 
    129         ) 
    130 } ; 
    131  
    132 declare function f:return-stub-obsstn($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    133 (: Returns a 'stubB' style observation station record to expand an observation station record :) 
    134 (: Security not implemented here yet;  :) 
    135 { 
    136 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    137                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    138                         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    139 return   
    140         if ($found = 0) then  
    141                 element {$out-element-name} { 
    142                         element error {'not found'}, 
    143                         element repositoryIdentifier {$repid}, 
    144                         element localIdentifier {$locid} 
    145                 }  
    146         else ( 
    147                 for $SRObsStn in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    148                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    149                         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    150                 return 
    151                         element {$out-element-name} { 
    152                                 ($SRObsStn/moles:dgMetadataID), 
    153                                 ($SRObsStn/moles:dgMetadataDescription), 
    154                                 ($SRObsStn/moles:name), 
    155                                 ($SRObsStn/moles:abbreviation), 
    156                                 element dgObservationStation { 
    157                                         ($SRObsStn/moles:dgObservationStation/moles:contactDetails), 
    158                                         if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then 
    159                                                 element dgStationaryPlatform { 
    160                                                         $SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
    161                                                         if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgLandStation)) then element dgLandStation {''} 
    162                                                         else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgMooring)) then element dgMooring {''} 
    163                                                         else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgStationGroup)) then element dgStationGroup {''} 
    164                                                         else () 
    165                                                         } 
    166                                         else if (exists($SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform)) then  
    167                                                 $SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform 
    168                                         else () 
    169                                 } (: </dgObservationStation> :) 
    170                         } 
    171         ) 
    172 } ; 
    173  
    174 declare function f:return-stub-person($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    175 (: Returns a 'stubB' style observation station record to expand a person record :) 
    176 (: Security not implemented yet :) 
    177 { 
    178 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgPerson[ 
    179                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    180                         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    181 return   
    182         if ($found = 0) then  
    183                 element {$out-element-name} { 
    184                         element error {'not found'}, 
    185                         element repositoryIdentifier {$repid}, 
    186                         element localIdentifier {$locid} 
    187                 }  
    188         else ( 
    189         for $person in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgPerson[ 
    190                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    191                 and moles:dgMetadataID/moles:localIdentifier=$locid]  
    192         return  
    193                 element  {$out-element-name}  
    194                 { 
    195                         ($person/moles:name), 
    196                         ($person/moles:contactDetails), 
    197                         ($person/moles:dgMetadataID) 
    198                 } 
    199         ) 
    200 } ; 
    201  
    202 declare function f:return-stub-organisation($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    203 (: Returns a 'stubB' style observation station record to expand an organisation record :) 
    204 (: Security not implemented yet :) 
    205 { 
    206         let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgOrganisation[ 
    207                                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    208                                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    209         return   
    210                 if ($found = 0) then  
    211                         element {$out-element-name} { 
    212                                 element error {'not found'}, 
    213                                 element repositoryIdentifier {$repid}, 
    214                                 element localIdentifier {$locid} 
    215                         }  
    216                 else ( 
    217                         for $org in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgOrganisation[ 
    218                                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    219                                 and moles:dgMetadataID/moles:localIdentifier=$locid]  
    220                         return  
    221                                 element  {$out-element-name} { 
    222                                         $org/moles:dgMetadataID, 
    223                                         $org/moles:name, 
    224                                         $org/moles:abbreviation, 
    225                                         $org/moles:contactDetails, 
    226                                         $org/moles:logos 
    227                                 } 
    228                 ) 
    229 } ; 
    230  
    231 for $DPT in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    232         moles:dgDataProductionTool!=''  
    233         and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
    234         and moles:dgMetadataID/moles:repositoryIdentifier='badc.nerc.ac.uk'  
    235         and moles:dgMetadataID/moles:localIdentifier='dpt1']  
    236 return  
    237 f:strip-namespace(element dgMetadataRecord {  
     11for $DPT in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     12moles:dgDataProductionTool!=''  
     13and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
     14and moles:dgMetadataID/moles:repositoryIdentifier=$repositoryIdentifier 
     15and moles:dgMetadataID/moles:localIdentifier=$localIdentifier] 
     16return 
     17utillib:strip-namespace(element dgMetadataRecord { 
    23818        $DPT/dgMetadataID, 
    23919                element dgMetadataID { 
     
    25939                        $RelDep/moles:DateEnd, 
    26040                        $RelDep/moles:dgMetadataID, 
    261                         f:return-stub-activity('activity', data($RelDep/moles:ActivityID/moles:repositoryIdentifier), data($RelDep/moles:ActivityID/moles:localIdentifier)), 
    262                         f:return-stub-obsstn('observationstation', data($RelDep/moles:ObservationStationID/moles:repositoryIdentifier), data($RelDep/moles:ObservationStationID/moles:localIdentifier)), 
    263                         for $DE in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord 
     41                        stubblib:return-stub-activity('activity', data($RelDep/moles:ActivityID/moles:repositoryIdentifier), data($RelDep/moles:ActivityID/moles:localIdentifier)), 
     42                        stubblib:return-stub-obsstn('observationstation', data($RelDep/moles:ObservationStationID/moles:repositoryIdentifier), data($RelDep/moles:ObservationStationID/moles:localIdentifier)), 
     43                        for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord 
    26444                                where $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:repositoryIdentifier=$RelDep/moles:dgMetadataID/moles:repositoryIdentifier 
    26545                                        and $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:localIdentifier=$RelDep/moles:dgMetadataID/moles:localIdentifier 
    26646                        return 
    267                                 f:return-stub-dataentity('dataentity', data($DE/moles:dgMetadataID/moles:repositoryIdentifier), data($DE/moles:dgMetadataID/moles:localIdentifier)), 
     47                                stubblib:return-stub-dataentity('dataentity', data($DE/moles:dgMetadataID/moles:repositoryIdentifier), data($DE/moles:dgMetadataID/moles:localIdentifier)), 
    26848                        $RelDep/moles:Coverage 
    26949                } (: </DPTDeployment> :)  
  • TI07-MOLES/trunk/StubB/XQuery/NDG-ObsStnStubB.xquery

    r1707 r2171  
    11declare default element namespace 'http://ndg.nerc.ac.uk/moles/observationstation';  
     2import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
     3import module namespace utillib='http://ndg.nerc.ac.uk/xquery/lib/utilities' at 'xmldb:exist:///db/xqueryLib/Utilities/utility_xquery_lib.xquery'; 
     4import module namespace stubblib='http://ndg.nerc.ac.uk/xquery/lib/stubb' at 'xmldb:exist:///db/xqueryLib/StubB/stubb_xquery_lib.xquery'; 
    25declare namespace moles='http://ndg.nerc.ac.uk/moles'; 
    3 declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
    4 declare function f:strip-namespace($e as element()) as element()  
    5 (: Removes namespace info from the element tree being addressed so that it will lie in the default namespace  :) 
    66 
    7 { 
    8   element {QName('', local-name($e))}   
    9   { 
    10     let $parent :=$e 
    11     let $childcount := count($parent/*) 
    12     return  
    13         if ($childcount>0) then 
    14             for $child in ($e/*) 
    15             return 
    16                 f:strip-namespace($child) 
    17         else (data($e))           
    18   } 
    19 } ; 
     7declare variable $targetCollection as xs:string {'TargetCollection'}; 
     8declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 
     9declare variable $localIdentifier as xs:string {'LocalID'}; 
    2010 
    21 declare function f:return-stub-activity($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    22 (: Returns a 'stubB' style activity record to expand an activity record :) 
    23 (: Security not implemented here yet :) 
    24 { 
    25 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    26                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    27                         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    28 return   
    29         if ($found = 0) then  
    30                 element {$out-element-name} { 
    31                         element error {'not found'}, 
    32                         element repositoryIdentifier {$repid}, 
    33                         element localIdentifier {$locid} 
    34                 }  
    35         else ( 
    36                 for $SRAct in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    37                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    38                         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    39                 return  
    40                         element  {$out-element-name} {  
    41                                 ($SRAct/moles:dgMetadataID), 
    42                                 ($SRAct/moles:dgMetadataDescription), 
    43                                 ($SRAct/moles:name), 
    44                                 ($SRAct/moles:abbreviation), 
    45                                 element dgActivity { 
    46                                         if (exists($SRAct/*/moles:dgActivityDataCollection)) then  
    47                                                 ($SRAct/*/moles:dgActivityDataCollection) 
    48                                         else if (exists($SRAct/*/moles:dgActivityDataProject)) then  
    49                                                 ($SRAct/*/moles:dgActivityDataProject) 
    50                                         else if (exists($SRAct/*/dgActivityDataCampaign)) then 
    51                                                 ($SRAct/moles:dgActivity/moles:dgActivityDataCampaign) 
    52                                         else  
    53                                                 ($SRAct/moles:dgActivity/moles:dgActivityDataInvestigation),  
    54                                         ($SRAct/moles:dgActivity/moles:dgActivityCoverage), 
    55                                         ($SRAct/moles:dgActivity/moles:dgActivityDuration) 
    56                                 } (: </dgActivity> :)  
    57                         } (: </activity> :)  
    58         ) 
    59 } ; 
    60  
    61 declare function f:return-stub-dataentity($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    62 (: Returns a 'stubB' style observation station record to expand an data entity record :) 
    63 (: Security not implemented yet :) 
    64 { 
    65 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    66                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    67                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    68 return   
    69         if ($found = 0) then  
    70                 element {$out-element-name} { 
    71                         element error {'not found'}, 
    72                         element repositoryIdentifier {$repid}, 
    73                         element localIdentifier {$locid} 
    74                 }  
    75         else ( 
    76                 for $SRDE in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    77                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    78                         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    79                 return   
    80                         element {$out-element-name} { 
    81                                 ($SRDE/moles:dgMetadataID), 
    82                                 ($SRDE/moles:dgMetadataDescription), 
    83                                 ($SRDE/moles:name), 
    84                                 ($SRDE/moles:abbreviation), 
    85                                 element dgDataEntity { 
    86                                         ($SRDE/moles:dgDataEntity/moles:dgDataSetType), 
    87                                         ($SRDE/moles:dgDataEntity/moles:dgDataGranule), 
    88                                         ($SRDE/moles:dgDataEntity/moles:dgDataSummary) 
    89                                 } (: </dgDataEntity> :)          
    90                         } 
    91         ) 
    92 } ; 
    93  
    94 declare function f:return-stub-dpt($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    95 (: Returns a 'stubB' style dpt record to expand a dpt record :) 
    96 (: Security not implemented yet :) 
    97 { 
    98 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    99                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    100                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    101 return   
    102         if ($found = 0) then  
    103                 element {$out-element-name} { 
    104                         element error {'not found'}, 
    105                         element repositoryIdentifier {$repid}, 
    106                         element localIdentifier {$locid} 
    107                 }  
    108         else ( 
    109                 for $SRDPT in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    110                                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    111                                 and moles:dgMetadataID/moles:localIdentifier=$locid] 
    112                 return   
    113                         element {$out-element-name} { 
    114                                 $SRDPT/moles:dgMetadataID, 
    115                                 $SRDPT/moles:dgMetadataDescription, 
    116                                 $SRDPT/moles:name, 
    117                                 $SRDPT/moles:abbreviation, 
    118                                 $SRDPT/moles:logos, 
    119                                 element dgDataProductionTool { 
    120                                         $SRDPT/moles:dgDataProductionTool/moles:contactDetails, 
    121                                         if (exists($SRDPT/moles:dgDataProductionTool/moles:dgModel)) then 
    122                                                 $SRDPT/moles:dgDataProductionTool/moles:dgModel 
    123                                         else (), 
    124                                         if (exists($SRDPT/moles:dgDataProductionTool/moles:dgInstrument)) then 
    125                                                 $SRDPT/moles:dgDataProductionTool/moles:dgInstrument 
    126                                         else () 
    127                                         } (: </dgDataProductionTool> :) 
    128                                 } (: </dataproductiontool> :) 
    129         ) 
    130 } ; 
    131  
    132 declare function f:return-stub-obsstn($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    133 (: Returns a 'stubB' style observation station record to expand an observation station record :) 
    134 (: Security not implemented here yet;  :) 
    135 { 
    136 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    137                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    138                         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    139 return   
    140         if ($found = 0) then  
    141                 element {$out-element-name} { 
    142                         element error {'not found'}, 
    143                         element repositoryIdentifier {$repid}, 
    144                         element localIdentifier {$locid} 
    145                 }  
    146         else ( 
    147                 for $SRObsStn in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    148                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    149                         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    150                 return 
    151                         element {$out-element-name} { 
    152                                 ($SRObsStn/moles:dgMetadataID), 
    153                                 ($SRObsStn/moles:dgMetadataDescription), 
    154                                 ($SRObsStn/moles:name), 
    155                                 ($SRObsStn/moles:abbreviation), 
    156                                 element dgObservationStation { 
    157                                         ($SRObsStn/moles:dgObservationStation/moles:contactDetails), 
    158                                         if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then 
    159                                                 element dgStationaryPlatform { 
    160                                                         $SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
    161                                                         if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgLandStation)) then element dgLandStation {''} 
    162                                                         else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgMooring)) then element dgMooring {''} 
    163                                                         else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgStationGroup)) then element dgStationGroup {''} 
    164                                                         else () 
    165                                                         } 
    166                                         else if (exists($SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform)) then  
    167                                                 $SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform 
    168                                         else () 
    169                                 } (: </dgObservationStation> :) 
    170                         } 
    171         ) 
    172 } ; 
    173  
    174 declare function f:return-stub-person($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    175 (: Returns a 'stubB' style observation station record to expand a person record :) 
    176 (: Security not implemented yet :) 
    177 { 
    178 let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgPerson[ 
    179                         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    180                         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    181 return   
    182         if ($found = 0) then  
    183                 element {$out-element-name} { 
    184                         element error {'not found'}, 
    185                         element repositoryIdentifier {$repid}, 
    186                         element localIdentifier {$locid} 
    187                 }  
    188         else ( 
    189         for $person in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgPerson[ 
    190                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    191                 and moles:dgMetadataID/moles:localIdentifier=$locid]  
    192         return  
    193                 element  {$out-element-name}  
    194                 { 
    195                         ($person/moles:name), 
    196                         ($person/moles:contactDetails), 
    197                         ($person/moles:dgMetadataID) 
    198                 } 
    199         ) 
    200 } ; 
    201  
    202 declare function f:return-stub-organisation($out-element-name as xs:string, $repid as xs:string, $locid as xs:string) as element()  
    203 (: Returns a 'stubB' style observation station record to expand an organisation record :) 
    204 (: Security not implemented yet :) 
    205 { 
    206         let $found := count(collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgOrganisation[ 
    207                                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    208                                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    209         return   
    210                 if ($found = 0) then  
    211                         element {$out-element-name} { 
    212                                 element error {'not found'}, 
    213                                 element repositoryIdentifier {$repid}, 
    214                                 element localIdentifier {$locid} 
    215                         }  
    216                 else ( 
    217                         for $org in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgOrganisation[ 
    218                                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    219                                 and moles:dgMetadataID/moles:localIdentifier=$locid]  
    220                         return  
    221                                 element  {$out-element-name} { 
    222                                         $org/moles:dgMetadataID, 
    223                                         $org/moles:name, 
    224                                         $org/moles:abbreviation, 
    225                                         $org/moles:contactDetails, 
    226                                         $org/moles:logos 
    227                                 } 
    228                 ) 
    229 } ; 
    230  
    231 for $ObsStn in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord[ 
    232         moles:dgObservationStation!='' and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
    233         and moles:dgMetadataID/moles:repositoryIdentifier='badc.nerc.ac.uk'  
    234         and moles:dgMetadataID/moles:localIdentifier='obs1']  
    235 return  
    236 f:strip-namespace( 
     11for $ObsStn in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     12moles:dgDataProductionTool!=''  
     13and moles:dgMetadataID/moles:schemeIdentifier='NDG-B0'  
     14and moles:dgMetadataID/moles:repositoryIdentifier=$repositoryIdentifier 
     15and moles:dgMetadataID/moles:localIdentifier=$localIdentifier] 
     16return 
     17utillib:strip-namespace(element dgMetadataRecord { 
    23718        element dgMetadataRecord { 
    23819                element dgMetadataID { 
     
    25536                                                for $DepositingCruise in $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:DepositingCruise 
    25637                                                return  
    257                                                         f:return-stub-activity('depositingcruise', data($DepositingCruise/moles:dgMetadataID/moles:repositoryIdentifier), data($DepositingCruise/moles:dgMetadataID/moles:localIdentifier)), 
     38                                                        stubblib:return-stub-activity('depositingcruise', data($DepositingCruise/moles:dgMetadataID/moles:repositoryIdentifier), data($DepositingCruise/moles:dgMetadataID/moles:localIdentifier)), 
    25839                                                        if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dgStationGrouping)) then    
    25940                                                                for $StationGrouping in $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/dgStationGrouping  
    26041                                                                return   
    261                                                                         f:return-stub-obsstn('stationgrouping', data($StationGrouping/moles:dgMetadataID/moles:repositoryIdentifier), data($StationGrouping/moles:dgMetadataID/moles:localIdentifier)) 
     42                                                                        stubblib:return-stub-obsstn('stationgrouping', data($StationGrouping/moles:dgMetadataID/moles:repositoryIdentifier), data($StationGrouping/moles:dgMetadataID/moles:localIdentifier)) 
    26243                                                        else () 
    26344                                        } (: End </dgMooring> :)   
     
    26748                                                        if (exists($ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup/dgGroupedStations)) then 
    26849                                                                for $GroupedStation in $ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup/dgGroupedStation/dgGroupedStations 
    269                                                                 return f:return-stub-obsstn('dgGroupedStation', data($GroupedStation/moles:dgMetadataID/moles:repositoryIdentifier), data($GroupedStation/moles:dgMetadataID/moles:localIdentifier)) 
     50                                                                return stubblib:return-stub-obsstn('dgGroupedStation', data($GroupedStation/moles:dgMetadataID/moles:repositoryIdentifier), data($GroupedStation/moles:dgMetadataID/moles:localIdentifier)) 
    27051                                                        else () 
    27152                                                } (: End </dgGroupedStations> :) 
     
    28162                                $RelDep/moles:DateEnd, 
    28263                                $RelDep/moles:dgMetadataID, 
    283                                 f:return-stub-activity('activity', data($RelDep/moles:ActivityID/moles:repositoryIdentifier), data($RelDep/moles:ActivityID/moles:localIdentifier)), 
    284                                 f:return-stub-dpt('dataproductiontool', data($RelDep/moles:DataProductionToolID/moles:repositoryIdentifier), data($RelDep/moles:DataProductionToolID/moles:localIdentifier)),  
    285                                 for $DE in collection('/db/ndg_B_metadata')/moles:dgMetadata/moles:dgMetadataRecord 
     64                                stubblib:return-stub-activity('activity', data($RelDep/moles:ActivityID/moles:repositoryIdentifier), data($RelDep/moles:ActivityID/moles:localIdentifier)), 
     65                                stubblib:return-stub-dpt('dataproductiontool', data($RelDep/moles:DataProductionToolID/moles:repositoryIdentifier), data($RelDep/moles:DataProductionToolID/moles:localIdentifier)),  
     66                                for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord 
    28667                                        where $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:repositoryIdentifier=$RelDep/moles:dgMetadataID/moles:repositoryIdentifier 
    28768                                                and $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:localIdentifier=$RelDep/moles:dgMetadataID/moles:localIdentifier 
    28869                                return 
    289                                         f:return-stub-dataentity('dataentity', data($DE/moles:dgMetadataID/moles:repositoryIdentifier), data($DE/moles:dgMetadataID/moles:localIdentifier)), 
     70                                        stubblib:return-stub-dataentity('dataentity', data($DE/moles:dgMetadataID/moles:repositoryIdentifier), data($DE/moles:dgMetadataID/moles:localIdentifier)), 
    29071                                $RelDep/moles:Coverage 
    29172                        } (: </RelatedDeployment> :)  
  • TI07-MOLES/trunk/xqueryLib/Vocabs/vocab_xquery_lib.xquery

    r2154 r2171  
    11module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab'; 
    2 (: Standard vocab stubs :) 
     2(: Standard vocab roots :) 
    33declare variable $voclib:unknown_vocab_id as xs:string {'http://vocab.ndg.nerc.ac.uk/null'}; 
    44 
     
    2727declare variable $voclib:gcmd_chronostratigraphic_valids as xs:string {'http://vocab.ndg.nerc.ac.uk/P181'};  
    2828 
    29 declare variable $voclib:gcmd_project_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/projects.html'}; 
    3029declare variable $voclib:gcmd_iso_topic_list as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/iso_topic_list.html'}; 
     30 
     31(: MDIP specific namespaces :) 
     32declare variable $voclib:ISO_639-2_ns as xs:string{'UKGemini_Langauge_Categories'}; 
     33declare variable $voclib:ISO_3166_ns as xs:string{'UKGemini_Land_Area_Categories'}; 
    3134 
    3235declare function voclib:spot-vocab($vocab_root as xs:string, $vocab_uri as xs:string) as xs:boolean  
Note: See TracChangeset for help on using the changeset viewer.