Changeset 2384 for TI07-MOLES/trunk


Ignore:
Timestamp:
05/04/07 13:32:19 (13 years ago)
Author:
ko23
Message:

Fix to ObsStn? StubB

Location:
TI07-MOLES/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • TI07-MOLES/trunk/PythonCode/wsgi/ndg_xqueries.py

    r2375 r2384  
    10281028{ 
    10291029let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1030             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1031             and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    1032 return   
    1033     if ($found = 0) then  
    1034         element {$out-element-name} { 
    1035             element error {'not found'}, 
    1036             element repositoryIdentifier {$repid}, 
    1037             element localIdentifier {$locid} 
    1038         }  
    1039     else ( 
    1040         for $SRAct in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1041             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1042             and moles:dgMetadataID/moles:localIdentifier=$locid]  
    1043         return  
    1044             element  {$out-element-name} {  
    1045                 ($SRAct/moles:dgMetadataID), 
    1046                 ($SRAct/moles:dgMetadataDescription), 
    1047                 ($SRAct/moles:name), 
    1048                 ($SRAct/moles:abbreviation), 
    1049                 element dgActivity { 
    1050                     if (exists($SRAct/*/moles:dgActivityDataCollection)) then  
    1051                         ($SRAct/*/moles:dgActivityDataCollection) 
    1052                     else if (exists($SRAct/*/moles:dgActivityDataProject)) then  
    1053                         ($SRAct/*/moles:dgActivityDataProject) 
    1054                     else if (exists($SRAct/*/dgActivityDataCampaign)) then 
    1055                         ($SRAct/moles:dgActivity/moles:dgActivityDataCampaign) 
    1056                     else  
    1057                         ($SRAct/moles:dgActivity/moles:dgActivityDataInvestigation),  
    1058                     ($SRAct/moles:dgActivity/moles:dgActivityCoverage), 
    1059                     ($SRAct/moles:dgActivity/moles:dgActivityDuration) 
    1060                 } (: </dgActivity> :)  
    1061             } (: </activity> :)  
    1062     ) 
     1030moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1031and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     1032return   
     1033if ($found = 0) then  
     1034element {$out-element-name} { 
     1035element error {'not found'}, 
     1036element repositoryIdentifier {$repid}, 
     1037element localIdentifier {$locid} 
     1038}  
     1039else ( 
     1040for $SRAct in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     1041moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1042and moles:dgMetadataID/moles:localIdentifier=$locid]  
     1043return  
     1044element  {$out-element-name} {  
     1045($SRAct/moles:dgMetadataID), 
     1046($SRAct/moles:dgMetadataDescription), 
     1047($SRAct/moles:name), 
     1048($SRAct/moles:abbreviation), 
     1049element dgActivity { 
     1050if (exists($SRAct/*/moles:dgActivityDataCollection)) then  
     1051($SRAct/*/moles:dgActivityDataCollection) 
     1052else if (exists($SRAct/*/moles:dgActivityDataProject)) then  
     1053($SRAct/*/moles:dgActivityDataProject) 
     1054else if (exists($SRAct/*/dgActivityDataCampaign)) then 
     1055($SRAct/moles:dgActivity/moles:dgActivityDataCampaign) 
     1056else  
     1057($SRAct/moles:dgActivity/moles:dgActivityDataInvestigation),  
     1058($SRAct/moles:dgActivity/moles:dgActivityCoverage), 
     1059($SRAct/moles:dgActivity/moles:dgActivityDuration) 
     1060} (: </dgActivity> :)  
     1061} (: </activity> :)  
     1062) 
    10631063} ; 
    10641064 
     
    10681068{ 
    10691069let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1070         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1071         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    1072 return   
    1073     if ($found = 0) then  
    1074         element {$out-element-name} { 
    1075             element error {'not found'}, 
    1076             element repositoryIdentifier {$repid}, 
    1077             element localIdentifier {$locid} 
    1078         }  
    1079     else ( 
    1080         for $SRDE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1081             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1082             and moles:dgMetadataID/moles:localIdentifier=$locid]  
    1083         return   
    1084             element {$out-element-name} { 
    1085                 ($SRDE/moles:dgMetadataID), 
    1086                 ($SRDE/moles:dgMetadataDescription), 
    1087                 ($SRDE/moles:name), 
    1088                 ($SRDE/moles:abbreviation), 
    1089                 element dgDataEntity { 
    1090                     ($SRDE/moles:dgDataEntity/moles:dgDataSetType), 
    1091                     ($SRDE/moles:dgDataEntity/moles:dgDataGranule), 
    1092                     ($SRDE/moles:dgDataEntity/moles:dgDataSummary) 
    1093                 } (: </dgDataEntity> :)         
    1094             } 
    1095     ) 
     1070moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1071and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     1072return   
     1073if ($found = 0) then  
     1074element {$out-element-name} { 
     1075element error {'not found'}, 
     1076element repositoryIdentifier {$repid}, 
     1077element localIdentifier {$locid} 
     1078}  
     1079else ( 
     1080for $SRDE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     1081moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1082and moles:dgMetadataID/moles:localIdentifier=$locid]  
     1083return   
     1084element {$out-element-name} { 
     1085($SRDE/moles:dgMetadataID), 
     1086($SRDE/moles:dgMetadataDescription), 
     1087($SRDE/moles:name), 
     1088($SRDE/moles:abbreviation), 
     1089element dgDataEntity { 
     1090($SRDE/moles:dgDataEntity/moles:dgDataSetType), 
     1091($SRDE/moles:dgDataEntity/moles:dgDataGranule), 
     1092($SRDE/moles:dgDataEntity/moles:dgDataSummary) 
     1093} (: </dgDataEntity> :)         
     1094} 
     1095) 
    10961096} ; 
    10971097 
     
    11011101{ 
    11021102let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1103         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1104         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    1105 return   
    1106     if ($found = 0) then  
    1107         element {$out-element-name} { 
    1108             element error {'not found'}, 
    1109             element repositoryIdentifier {$repid}, 
    1110             element localIdentifier {$locid} 
    1111         }  
    1112     else ( 
    1113         for $SRDPT in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1114                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1115                 and moles:dgMetadataID/moles:localIdentifier=$locid] 
    1116         return   
    1117             element {$out-element-name} { 
    1118                 $SRDPT/moles:dgMetadataID, 
    1119                 $SRDPT/moles:dgMetadataDescription, 
    1120                 $SRDPT/moles:name, 
    1121                 $SRDPT/moles:abbreviation, 
    1122                 $SRDPT/moles:logos, 
    1123                 element dgDataProductionTool { 
    1124                     $SRDPT/moles:dgDataProductionTool/moles:contactDetails, 
    1125                     if (exists($SRDPT/moles:dgDataProductionTool/moles:dgModel)) then 
    1126                         $SRDPT/moles:dgDataProductionTool/moles:dgModel 
    1127                     else (), 
    1128                     if (exists($SRDPT/moles:dgDataProductionTool/moles:dgInstrument)) then 
    1129                         $SRDPT/moles:dgDataProductionTool/moles:dgInstrument 
    1130                     else () 
    1131                     } (: </dgDataProductionTool> :) 
    1132                 } (: </dataproductiontool> :) 
    1133     ) 
     1103moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1104and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     1105return   
     1106if ($found = 0) then  
     1107element {$out-element-name} { 
     1108element error {'not found'}, 
     1109element repositoryIdentifier {$repid}, 
     1110element localIdentifier {$locid} 
     1111}  
     1112else ( 
     1113for $SRDPT in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     1114moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1115and moles:dgMetadataID/moles:localIdentifier=$locid] 
     1116return   
     1117element {$out-element-name} { 
     1118$SRDPT/moles:dgMetadataID, 
     1119$SRDPT/moles:dgMetadataDescription, 
     1120$SRDPT/moles:name, 
     1121$SRDPT/moles:abbreviation, 
     1122$SRDPT/moles:logos, 
     1123element dgDataProductionTool { 
     1124$SRDPT/moles:dgDataProductionTool/moles:contactDetails, 
     1125if (exists($SRDPT/moles:dgDataProductionTool/moles:dgModel)) then 
     1126$SRDPT/moles:dgDataProductionTool/moles:dgModel 
     1127else (), 
     1128if (exists($SRDPT/moles:dgDataProductionTool/moles:dgInstrument)) then 
     1129$SRDPT/moles:dgDataProductionTool/moles:dgInstrument 
     1130else () 
     1131} (: </dgDataProductionTool> :) 
     1132} (: </dataproductiontool> :) 
     1133) 
    11341134} ; 
    11351135 
     
    11391139{ 
    11401140let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1141             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1142             and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    1143 return   
    1144     if ($found = 0) then  
    1145         element {$out-element-name} { 
    1146             element error {'not found'}, 
    1147             element repositoryIdentifier {$repid}, 
    1148             element localIdentifier {$locid} 
    1149         }  
    1150     else ( 
    1151         for $SRObsStn in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1152             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1153             and moles:dgMetadataID/moles:localIdentifier=$locid]  
    1154         return 
    1155             element {$out-element-name} { 
    1156                 ($SRObsStn/moles:dgMetadataID), 
    1157                 ($SRObsStn/moles:dgMetadataDescription), 
    1158                 ($SRObsStn/moles:name), 
    1159                 ($SRObsStn/moles:abbreviation), 
    1160                 element dgObservationStation { 
    1161                     ($SRObsStn/moles:dgObservationStation/moles:contactDetails), 
    1162                     if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then 
    1163                         element dgStationaryPlatform { 
    1164                             $SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
    1165                             if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgLandStation)) then element dgLandStation {''} 
    1166                             else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgMooring)) then element dgMooring {''} 
    1167                             else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgStationGroup)) then element dgStationGroup {''} 
    1168                             else () 
    1169                             } 
    1170                     else if (exists($SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform)) then  
    1171                         $SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform 
    1172                     else () 
    1173                 } (: </dgObservationStation> :) 
    1174             } 
    1175     ) 
     1141moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1142and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     1143return   
     1144if ($found = 0) then  
     1145element {$out-element-name} { 
     1146element error {'not found'}, 
     1147element repositoryIdentifier {$repid}, 
     1148element localIdentifier {$locid} 
     1149}  
     1150else ( 
     1151for $SRObsStn in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     1152moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1153and moles:dgMetadataID/moles:localIdentifier=$locid]  
     1154return 
     1155element {$out-element-name} { 
     1156($SRObsStn/moles:dgMetadataID), 
     1157($SRObsStn/moles:dgMetadataDescription), 
     1158($SRObsStn/moles:name), 
     1159($SRObsStn/moles:abbreviation), 
     1160element dgObservationStation { 
     1161($SRObsStn/moles:dgObservationStation/moles:contactDetails), 
     1162if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then 
     1163element dgStationaryPlatform { 
     1164$SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
     1165if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgLandStation)) then element dgLandStation {''} 
     1166else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgMooring)) then element dgMooring {''} 
     1167else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgStationGroup)) then element dgStationGroup {''} 
     1168else () 
     1169} 
     1170else if (exists($SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform)) then  
     1171$SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform 
     1172else () 
     1173} (: </dgObservationStation> :) 
     1174} 
     1175) 
    11761176} ; 
    11771177 
     
    11811181{ 
    11821182let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgPerson[ 
    1183             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1184             and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    1185 return   
    1186     if ($found = 0) then  
    1187         element {$out-element-name} { 
    1188             element error {'not found'}, 
    1189             element repositoryIdentifier {$repid}, 
    1190             element localIdentifier {$locid} 
    1191         }  
    1192     else ( 
    1193     for $person in collection($targetCollection)/moles:dgMetadata/moles:dgPerson[ 
    1194         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1195         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    1196     return  
    1197         element  {$out-element-name}  
    1198         { 
    1199             ($person/moles:name), 
    1200             ($person/moles:contactDetails), 
    1201             ($person/moles:dgMetadataID) 
    1202         } 
    1203     ) 
     1183moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1184and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     1185return   
     1186if ($found = 0) then  
     1187element {$out-element-name} { 
     1188element error {'not found'}, 
     1189element repositoryIdentifier {$repid}, 
     1190element localIdentifier {$locid} 
     1191}  
     1192else ( 
     1193for $person in collection($targetCollection)/moles:dgMetadata/moles:dgPerson[ 
     1194moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1195and moles:dgMetadataID/moles:localIdentifier=$locid]  
     1196return  
     1197element  {$out-element-name}  
     1198{ 
     1199($person/moles:name), 
     1200($person/moles:contactDetails), 
     1201($person/moles:dgMetadataID) 
     1202} 
     1203) 
    12041204} ; 
    12051205 
     
    12081208(: Security not implemented yet :) 
    12091209{ 
    1210     let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgOrganisation[ 
    1211                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1212                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    1213     return   
    1214         if ($found = 0) then  
    1215             element {$out-element-name} { 
    1216                 element error {'not found'}, 
    1217                 element repositoryIdentifier {$repid}, 
    1218                 element localIdentifier {$locid} 
    1219             }  
    1220         else ( 
    1221             for $org in collection($targetCollection)/moles:dgMetadata/moles:dgOrganisation[ 
    1222                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    1223                 and moles:dgMetadataID/moles:localIdentifier=$locid]  
    1224             return  
    1225                 element  {$out-element-name} { 
    1226                     $org/moles:dgMetadataID, 
    1227                     $org/moles:name, 
    1228                     $org/moles:abbreviation, 
    1229                     $org/moles:contactDetails, 
    1230                     $org/moles:logos 
    1231                 } 
    1232         ) 
     1210let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgOrganisation[ 
     1211moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1212and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     1213return   
     1214if ($found = 0) then  
     1215element {$out-element-name} { 
     1216element error {'not found'}, 
     1217element repositoryIdentifier {$repid}, 
     1218element localIdentifier {$locid} 
     1219}  
     1220else ( 
     1221for $org in collection($targetCollection)/moles:dgMetadata/moles:dgOrganisation[ 
     1222moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     1223and moles:dgMetadataID/moles:localIdentifier=$locid]  
     1224return  
     1225element  {$out-element-name} { 
     1226$org/moles:dgMetadataID, 
     1227$org/moles:name, 
     1228$org/moles:abbreviation, 
     1229$org/moles:contactDetails, 
     1230$org/moles:logos 
     1231} 
     1232) 
    12331233} ; 
    12341234 
    12351235for $ObsStn in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    1236     moles:dgObservationStation!=''  
    1237     and moles:dgMetadataID[ 
    1238     moles:schemeIdentifier='NDG-B0'  
    1239     and moles:repositoryIdentifier=$repositoryIdentifier 
    1240     and moles:localIdentifier=$localIdentifier]] 
    1241     return 
    1242     utillib:strip-namespace( 
    1243     element dgMetadataRecord { 
    1244         element dgMetadataID { 
    1245             element schemeIdentifier {'NDG-B1', 
    1246             $ObsStn/moles:dgMetadataID/moles:repositoryIdentifier, 
    1247             $ObsStn/moles:dgMetadataID/moles:localIdentifier 
    1248         } (: End </dgMetadataID> :),  
    1249         $ObsStn/moles:dgMetadataDescription, 
    1250         $ObsStn/moles:name, 
    1251         $ObsStn/moles:abbreviation, 
    1252         element dgObservationStation {  
    1253             $ObsStn/moles:dgObservationStation/moles:contactDetails, 
    1254             if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then  
    1255                 element dgStationaryPlatform {  
    1256                 $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
    1257                 if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring)) then    
    1258                     element dgMooring {  
    1259                         $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dateStart, 
    1260                         $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dateEnd, 
    1261                         for $DepositingCruise in $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:DepositingCruise 
    1262                         return  
    1263                             f:return-stub-activity('depositingcruise', data($DepositingCruise/moles:dgMetadataID/moles:repositoryIdentifier), data($DepositingCruise/moles:dgMetadataID/moles:localIdentifier)), 
    1264                             if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dgStationGrouping)) then    
    1265                                 for $StationGrouping in $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/dgStationGrouping  
    1266                                 return   
    1267                                     f:return-stub-obsstn('stationgrouping', data($StationGrouping/moles:dgMetadataID/moles:repositoryIdentifier), data($StationGrouping/moles:dgMetadataID/moles:localIdentifier)) 
    1268                             else () 
    1269                     } (: End </dgMooring> :)   
    1270                 else if (exists($ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup)) then    
    1271                     element dgStationGroup {  
    1272                         element dgGroupedStations {  
    1273                             if (exists($ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup/dgGroupedStations)) then 
    1274                                 for $GroupedStation in $ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup/dgGroupedStation/dgGroupedStations 
    1275                                 return f:return-stub-obsstn('dgGroupedStation', data($GroupedStation/moles:dgMetadataID/moles:repositoryIdentifier), data($GroupedStation/moles:dgMetadataID/moles:localIdentifier)) 
    1276                             else () 
    1277                         } (: End </dgGroupedStations> :) 
    1278                     } (: End </dgStationGroup> :)  
    1279                 else $ObsStn/moles:dgObservationStation/moles:dgLandStation 
    1280                 } (: End </dgStationaryPlatform>  :)   
    1281                 else $ObsStn/moles:dgObservationStation/moles:dgMovingPlatform  
    1282             } ,  
    1283             for $RelDep in $ObsStn/moles:dgObservationStation/moles:ObsStationDeployment  
    1284             return  
    1285                 element ObsStationDeployment { 
    1286                 $RelDep/moles:DateStart, 
    1287                 $RelDep/moles:DateEnd, 
    1288                 $RelDep/moles:dgMetadataID, 
    1289                 f:return-stub-activity('activity', data($RelDep/moles:ActivityID/moles:repositoryIdentifier), data($RelDep/moles:ActivityID/moles:localIdentifier)), 
    1290                 f:return-stub-dpt('dataproductiontool', data($RelDep/moles:DataProductionToolID/moles:repositoryIdentifier), data($RelDep/moles:DataProductionToolID/moles:localIdentifier)),  
    1291                 for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord 
    1292                     where $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:repositoryIdentifier=$RelDep/moles:dgMetadataID/moles:repositoryIdentifier 
    1293                             and $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:localIdentifier=$RelDep/moles:dgMetadataID/moles:localIdentifier 
    1294                 return 
    1295                     f:return-stub-dataentity('dataentity', data($DE/moles:dgMetadataID/moles:repositoryIdentifier), data($DE/moles:dgMetadataID/moles:localIdentifier)), 
    1296                 $RelDep/moles:Coverage 
    1297             } (: </RelatedDeployment> :)  
    1298         } (: </dgObservationStation> :),  
    1299     for $strkwrd in $ObsStn/moles:dgStructuredKeyword return $strkwrd, 
    1300     if (exists($ObsStn/moles:dgMetadataProvenance)) then $ObsStn/moles:dgMetadataProvenance else (), 
    1301     if (exists($ObsStn/moles:dgMetadataSecurity)) then $ObsStn/moles:dgMetadataSecurity else () 
    1302     } (: End </dgMetadataRecord> :) 
     1236moles:dgObservationStation!=''  
     1237and moles:dgMetadataID[ 
     1238moles:schemeIdentifier='NDG-B0'  
     1239and moles:repositoryIdentifier=$repositoryIdentifier 
     1240and moles:localIdentifier=$localIdentifier]] 
     1241return 
     1242utillib:strip-namespace( 
     1243element dgMetadataRecord { 
     1244element dgMetadataID { 
     1245element schemeIdentifier {'NDG-B1'}, 
     1246$ObsStn/moles:dgMetadataID/moles:repositoryIdentifier, 
     1247$ObsStn/moles:dgMetadataID/moles:localIdentifier 
     1248} (: End </dgMetadataID> :),  
     1249$ObsStn/moles:dgMetadataDescription, 
     1250$ObsStn/moles:name, 
     1251$ObsStn/moles:abbreviation, 
     1252element dgObservationStation {  
     1253$ObsStn/moles:dgObservationStation/moles:contactDetails, 
     1254if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then  
     1255element dgStationaryPlatform {  
     1256$ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
     1257if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring)) then    
     1258element dgMooring {  
     1259$ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dateStart, 
     1260$ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dateEnd, 
     1261for $DepositingCruise in $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:DepositingCruise 
     1262return  
     1263f:return-stub-activity('depositingcruise', data($DepositingCruise/moles:dgMetadataID/moles:repositoryIdentifier), data($DepositingCruise/moles:dgMetadataID/moles:localIdentifier)), 
     1264if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dgStationGrouping)) then    
     1265for $StationGrouping in $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/dgStationGrouping  
     1266return   
     1267f:return-stub-obsstn('stationgrouping', data($StationGrouping/moles:dgMetadataID/moles:repositoryIdentifier), data($StationGrouping/moles:dgMetadataID/moles:localIdentifier)) 
     1268else () 
     1269} (: End </dgMooring> :)   
     1270else if (exists($ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup)) then    
     1271element dgStationGroup {  
     1272element dgGroupedStations {  
     1273if (exists($ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup/dgGroupedStations)) then 
     1274for $GroupedStation in $ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup/dgGroupedStation/dgGroupedStations 
     1275return f:return-stub-obsstn('dgGroupedStation', data($GroupedStation/moles:dgMetadataID/moles:repositoryIdentifier), data($GroupedStation/moles:dgMetadataID/moles:localIdentifier)) 
     1276else () 
     1277} (: End </dgGroupedStations> :) 
     1278} (: End </dgStationGroup> :)  
     1279else $ObsStn/moles:dgObservationStation/moles:dgLandStation 
     1280} (: End </dgStationaryPlatform>  :)   
     1281else $ObsStn/moles:dgObservationStation/moles:dgMovingPlatform ,  
     1282for $RelDep in $ObsStn/moles:dgObservationStation/moles:ObsStationDeployment  
     1283return  
     1284element ObsStationDeployment { 
     1285$RelDep/moles:DateStart, 
     1286$RelDep/moles:DateEnd, 
     1287$RelDep/moles:dgMetadataID, 
     1288f:return-stub-activity('activity', data($RelDep/moles:ActivityID/moles:repositoryIdentifier), data($RelDep/moles:ActivityID/moles:localIdentifier)), 
     1289f:return-stub-dpt('dataproductiontool', data($RelDep/moles:DataProductionToolID/moles:repositoryIdentifier), data($RelDep/moles:DataProductionToolID/moles:localIdentifier)),  
     1290for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord 
     1291where $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:repositoryIdentifier=$RelDep/moles:dgMetadataID/moles:repositoryIdentifier 
     1292and $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:localIdentifier=$RelDep/moles:dgMetadataID/moles:localIdentifier 
     1293return 
     1294f:return-stub-dataentity('dataentity', data($DE/moles:dgMetadataID/moles:repositoryIdentifier), data($DE/moles:dgMetadataID/moles:localIdentifier)), 
     1295$RelDep/moles:Coverage 
     1296} (: </RelatedDeployment> :)  
     1297} (: </dgObservationStation> :),  
     1298for $strkwrd in $ObsStn/moles:dgStructuredKeyword return $strkwrd, 
     1299if (exists($ObsStn/moles:dgMetadataProvenance)) then $ObsStn/moles:dgMetadataProvenance else (), 
     1300if (exists($ObsStn/moles:dgMetadataSecurity)) then $ObsStn/moles:dgMetadataSecurity else () 
     1301} (: End </dgMetadataRecord> :) 
    13031302) (: End namespace strip :) 
    13041303''' 
  • TI07-MOLES/trunk/StubB/XQuery/NDG-ObsStnStubB.xquery

    r2367 r2384  
    1818{ 
    1919let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    20             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    21             and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    22 return   
    23     if ($found = 0) then  
    24         element {$out-element-name} { 
    25             element error {'not found'}, 
    26             element repositoryIdentifier {$repid}, 
    27             element localIdentifier {$locid} 
    28         }  
    29     else ( 
    30         for $SRAct in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    31             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    32             and moles:dgMetadataID/moles:localIdentifier=$locid]  
    33         return  
    34             element  {$out-element-name} {  
    35                 ($SRAct/moles:dgMetadataID), 
    36                 ($SRAct/moles:dgMetadataDescription), 
    37                 ($SRAct/moles:name), 
    38                 ($SRAct/moles:abbreviation), 
    39                 element dgActivity { 
    40                     if (exists($SRAct/*/moles:dgActivityDataCollection)) then  
    41                         ($SRAct/*/moles:dgActivityDataCollection) 
    42                     else if (exists($SRAct/*/moles:dgActivityDataProject)) then  
    43                         ($SRAct/*/moles:dgActivityDataProject) 
    44                     else if (exists($SRAct/*/dgActivityDataCampaign)) then 
    45                         ($SRAct/moles:dgActivity/moles:dgActivityDataCampaign) 
    46                     else  
    47                         ($SRAct/moles:dgActivity/moles:dgActivityDataInvestigation),  
    48                     ($SRAct/moles:dgActivity/moles:dgActivityCoverage), 
    49                     ($SRAct/moles:dgActivity/moles:dgActivityDuration) 
    50                 } (: </dgActivity> :)  
    51             } (: </activity> :)  
    52     ) 
     20moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     21and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     22return   
     23if ($found = 0) then  
     24element {$out-element-name} { 
     25element error {'not found'}, 
     26element repositoryIdentifier {$repid}, 
     27element localIdentifier {$locid} 
     28}  
     29else ( 
     30for $SRAct in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     31moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     32and moles:dgMetadataID/moles:localIdentifier=$locid]  
     33return  
     34element  {$out-element-name} {  
     35($SRAct/moles:dgMetadataID), 
     36($SRAct/moles:dgMetadataDescription), 
     37($SRAct/moles:name), 
     38($SRAct/moles:abbreviation), 
     39element dgActivity { 
     40if (exists($SRAct/*/moles:dgActivityDataCollection)) then  
     41($SRAct/*/moles:dgActivityDataCollection) 
     42else if (exists($SRAct/*/moles:dgActivityDataProject)) then  
     43($SRAct/*/moles:dgActivityDataProject) 
     44else if (exists($SRAct/*/dgActivityDataCampaign)) then 
     45($SRAct/moles:dgActivity/moles:dgActivityDataCampaign) 
     46else  
     47($SRAct/moles:dgActivity/moles:dgActivityDataInvestigation),  
     48($SRAct/moles:dgActivity/moles:dgActivityCoverage), 
     49($SRAct/moles:dgActivity/moles:dgActivityDuration) 
     50} (: </dgActivity> :)  
     51} (: </activity> :)  
     52) 
    5353} ; 
    5454 
     
    5858{ 
    5959let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    60         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    61         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    62 return   
    63     if ($found = 0) then  
    64         element {$out-element-name} { 
    65             element error {'not found'}, 
    66             element repositoryIdentifier {$repid}, 
    67             element localIdentifier {$locid} 
    68         }  
    69     else ( 
    70         for $SRDE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    71             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    72             and moles:dgMetadataID/moles:localIdentifier=$locid]  
    73         return   
    74             element {$out-element-name} { 
    75                 ($SRDE/moles:dgMetadataID), 
    76                 ($SRDE/moles:dgMetadataDescription), 
    77                 ($SRDE/moles:name), 
    78                 ($SRDE/moles:abbreviation), 
    79                 element dgDataEntity { 
    80                     ($SRDE/moles:dgDataEntity/moles:dgDataSetType), 
    81                     ($SRDE/moles:dgDataEntity/moles:dgDataGranule), 
    82                     ($SRDE/moles:dgDataEntity/moles:dgDataSummary) 
    83                 } (: </dgDataEntity> :)         
    84             } 
    85     ) 
     60moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     61and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     62return   
     63if ($found = 0) then  
     64element {$out-element-name} { 
     65element error {'not found'}, 
     66element repositoryIdentifier {$repid}, 
     67element localIdentifier {$locid} 
     68}  
     69else ( 
     70for $SRDE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     71moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     72and moles:dgMetadataID/moles:localIdentifier=$locid]  
     73return   
     74element {$out-element-name} { 
     75($SRDE/moles:dgMetadataID), 
     76($SRDE/moles:dgMetadataDescription), 
     77($SRDE/moles:name), 
     78($SRDE/moles:abbreviation), 
     79element dgDataEntity { 
     80($SRDE/moles:dgDataEntity/moles:dgDataSetType), 
     81($SRDE/moles:dgDataEntity/moles:dgDataGranule), 
     82($SRDE/moles:dgDataEntity/moles:dgDataSummary) 
     83} (: </dgDataEntity> :)         
     84} 
     85) 
    8686} ; 
    8787 
     
    9191{ 
    9292let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    93         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    94         and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    95 return   
    96     if ($found = 0) then  
    97         element {$out-element-name} { 
    98             element error {'not found'}, 
    99             element repositoryIdentifier {$repid}, 
    100             element localIdentifier {$locid} 
    101         }  
    102     else ( 
    103         for $SRDPT in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    104                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    105                 and moles:dgMetadataID/moles:localIdentifier=$locid] 
    106         return   
    107             element {$out-element-name} { 
    108                 $SRDPT/moles:dgMetadataID, 
    109                 $SRDPT/moles:dgMetadataDescription, 
    110                 $SRDPT/moles:name, 
    111                 $SRDPT/moles:abbreviation, 
    112                 $SRDPT/moles:logos, 
    113                 element dgDataProductionTool { 
    114                     $SRDPT/moles:dgDataProductionTool/moles:contactDetails, 
    115                     if (exists($SRDPT/moles:dgDataProductionTool/moles:dgModel)) then 
    116                         $SRDPT/moles:dgDataProductionTool/moles:dgModel 
    117                     else (), 
    118                     if (exists($SRDPT/moles:dgDataProductionTool/moles:dgInstrument)) then 
    119                         $SRDPT/moles:dgDataProductionTool/moles:dgInstrument 
    120                     else () 
    121                     } (: </dgDataProductionTool> :) 
    122                 } (: </dataproductiontool> :) 
    123     ) 
     93moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     94and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     95return   
     96if ($found = 0) then  
     97element {$out-element-name} { 
     98element error {'not found'}, 
     99element repositoryIdentifier {$repid}, 
     100element localIdentifier {$locid} 
     101}  
     102else ( 
     103for $SRDPT in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     104moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     105and moles:dgMetadataID/moles:localIdentifier=$locid] 
     106return   
     107element {$out-element-name} { 
     108$SRDPT/moles:dgMetadataID, 
     109$SRDPT/moles:dgMetadataDescription, 
     110$SRDPT/moles:name, 
     111$SRDPT/moles:abbreviation, 
     112$SRDPT/moles:logos, 
     113element dgDataProductionTool { 
     114$SRDPT/moles:dgDataProductionTool/moles:contactDetails, 
     115if (exists($SRDPT/moles:dgDataProductionTool/moles:dgModel)) then 
     116$SRDPT/moles:dgDataProductionTool/moles:dgModel 
     117else (), 
     118if (exists($SRDPT/moles:dgDataProductionTool/moles:dgInstrument)) then 
     119$SRDPT/moles:dgDataProductionTool/moles:dgInstrument 
     120else () 
     121} (: </dgDataProductionTool> :) 
     122} (: </dataproductiontool> :) 
     123) 
    124124} ; 
    125125 
     
    129129{ 
    130130let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    131             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    132             and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    133 return   
    134     if ($found = 0) then  
    135         element {$out-element-name} { 
    136             element error {'not found'}, 
    137             element repositoryIdentifier {$repid}, 
    138             element localIdentifier {$locid} 
    139         }  
    140     else ( 
    141         for $SRObsStn in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    142             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    143             and moles:dgMetadataID/moles:localIdentifier=$locid]  
    144         return 
    145             element {$out-element-name} { 
    146                 ($SRObsStn/moles:dgMetadataID), 
    147                 ($SRObsStn/moles:dgMetadataDescription), 
    148                 ($SRObsStn/moles:name), 
    149                 ($SRObsStn/moles:abbreviation), 
    150                 element dgObservationStation { 
    151                     ($SRObsStn/moles:dgObservationStation/moles:contactDetails), 
    152                     if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then 
    153                         element dgStationaryPlatform { 
    154                             $SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
    155                             if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgLandStation)) then element dgLandStation {''} 
    156                             else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgMooring)) then element dgMooring {''} 
    157                             else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgStationGroup)) then element dgStationGroup {''} 
    158                             else () 
    159                             } 
    160                     else if (exists($SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform)) then  
    161                         $SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform 
    162                     else () 
    163                 } (: </dgObservationStation> :) 
    164             } 
    165     ) 
     131moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     132and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     133return   
     134if ($found = 0) then  
     135element {$out-element-name} { 
     136element error {'not found'}, 
     137element repositoryIdentifier {$repid}, 
     138element localIdentifier {$locid} 
     139}  
     140else ( 
     141for $SRObsStn in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
     142moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     143and moles:dgMetadataID/moles:localIdentifier=$locid]  
     144return 
     145element {$out-element-name} { 
     146($SRObsStn/moles:dgMetadataID), 
     147($SRObsStn/moles:dgMetadataDescription), 
     148($SRObsStn/moles:name), 
     149($SRObsStn/moles:abbreviation), 
     150element dgObservationStation { 
     151($SRObsStn/moles:dgObservationStation/moles:contactDetails), 
     152if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then 
     153element dgStationaryPlatform { 
     154$SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
     155if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgLandStation)) then element dgLandStation {''} 
     156else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgMooring)) then element dgMooring {''} 
     157else if (exists($SRObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/dgStationGroup)) then element dgStationGroup {''} 
     158else () 
     159} 
     160else if (exists($SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform)) then  
     161$SRObsStn/moles:dgObservationStation/moles:dgMovingPlatform 
     162else () 
     163} (: </dgObservationStation> :) 
     164} 
     165) 
    166166} ; 
    167167 
     
    171171{ 
    172172let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgPerson[ 
    173             moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    174             and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    175 return   
    176     if ($found = 0) then  
    177         element {$out-element-name} { 
    178             element error {'not found'}, 
    179             element repositoryIdentifier {$repid}, 
    180             element localIdentifier {$locid} 
    181         }  
    182     else ( 
    183     for $person in collection($targetCollection)/moles:dgMetadata/moles:dgPerson[ 
    184         moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    185         and moles:dgMetadataID/moles:localIdentifier=$locid]  
    186     return  
    187         element  {$out-element-name}  
    188         { 
    189             ($person/moles:name), 
    190             ($person/moles:contactDetails), 
    191             ($person/moles:dgMetadataID) 
    192         } 
    193     ) 
     173moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     174and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     175return   
     176if ($found = 0) then  
     177element {$out-element-name} { 
     178element error {'not found'}, 
     179element repositoryIdentifier {$repid}, 
     180element localIdentifier {$locid} 
     181}  
     182else ( 
     183for $person in collection($targetCollection)/moles:dgMetadata/moles:dgPerson[ 
     184moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     185and moles:dgMetadataID/moles:localIdentifier=$locid]  
     186return  
     187element  {$out-element-name}  
     188{ 
     189($person/moles:name), 
     190($person/moles:contactDetails), 
     191($person/moles:dgMetadataID) 
     192} 
     193) 
    194194} ; 
    195195 
     
    198198(: Security not implemented yet :) 
    199199{ 
    200     let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgOrganisation[ 
    201                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    202                 and moles:dgMetadataID/moles:localIdentifier=$locid]) 
    203     return   
    204         if ($found = 0) then  
    205             element {$out-element-name} { 
    206                 element error {'not found'}, 
    207                 element repositoryIdentifier {$repid}, 
    208                 element localIdentifier {$locid} 
    209             }  
    210         else ( 
    211             for $org in collection($targetCollection)/moles:dgMetadata/moles:dgOrganisation[ 
    212                 moles:dgMetadataID/moles:repositoryIdentifier=$repid  
    213                 and moles:dgMetadataID/moles:localIdentifier=$locid]  
    214             return  
    215                 element  {$out-element-name} { 
    216                     $org/moles:dgMetadataID, 
    217                     $org/moles:name, 
    218                     $org/moles:abbreviation, 
    219                     $org/moles:contactDetails, 
    220                     $org/moles:logos 
    221                 } 
    222         ) 
     200let $found := count(collection($targetCollection)/moles:dgMetadata/moles:dgOrganisation[ 
     201moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     202and moles:dgMetadataID/moles:localIdentifier=$locid]) 
     203return   
     204if ($found = 0) then  
     205element {$out-element-name} { 
     206element error {'not found'}, 
     207element repositoryIdentifier {$repid}, 
     208element localIdentifier {$locid} 
     209}  
     210else ( 
     211for $org in collection($targetCollection)/moles:dgMetadata/moles:dgOrganisation[ 
     212moles:dgMetadataID/moles:repositoryIdentifier=$repid  
     213and moles:dgMetadataID/moles:localIdentifier=$locid]  
     214return  
     215element  {$out-element-name} { 
     216$org/moles:dgMetadataID, 
     217$org/moles:name, 
     218$org/moles:abbreviation, 
     219$org/moles:contactDetails, 
     220$org/moles:logos 
     221} 
     222) 
    223223} ; 
    224224 
    225225for $ObsStn in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord[ 
    226     moles:dgObservationStation!=''  
    227     and moles:dgMetadataID[ 
    228     moles:schemeIdentifier='NDG-B0'  
    229     and moles:repositoryIdentifier=$repositoryIdentifier 
    230     and moles:localIdentifier=$localIdentifier]] 
    231     return 
    232     utillib:strip-namespace( 
    233     element dgMetadataRecord { 
    234         element dgMetadataID { 
    235             element schemeIdentifier {'NDG-B1', 
    236             $ObsStn/moles:dgMetadataID/moles:repositoryIdentifier, 
    237             $ObsStn/moles:dgMetadataID/moles:localIdentifier 
    238         } (: End </dgMetadataID> :),  
    239         $ObsStn/moles:dgMetadataDescription, 
    240         $ObsStn/moles:name, 
    241         $ObsStn/moles:abbreviation, 
    242         element dgObservationStation {  
    243             $ObsStn/moles:dgObservationStation/moles:contactDetails, 
    244             if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then  
    245                 element dgStationaryPlatform {  
    246                 $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
    247                 if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring)) then    
    248                     element dgMooring {  
    249                         $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dateStart, 
    250                         $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dateEnd, 
    251                         for $DepositingCruise in $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:DepositingCruise 
    252                         return  
    253                             f:return-stub-activity('depositingcruise', data($DepositingCruise/moles:dgMetadataID/moles:repositoryIdentifier), data($DepositingCruise/moles:dgMetadataID/moles:localIdentifier)), 
    254                             if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dgStationGrouping)) then    
    255                                 for $StationGrouping in $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/dgStationGrouping  
    256                                 return   
    257                                     f:return-stub-obsstn('stationgrouping', data($StationGrouping/moles:dgMetadataID/moles:repositoryIdentifier), data($StationGrouping/moles:dgMetadataID/moles:localIdentifier)) 
    258                             else () 
    259                     } (: End </dgMooring> :)   
    260                 else if (exists($ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup)) then    
    261                     element dgStationGroup {  
    262                         element dgGroupedStations {  
    263                             if (exists($ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup/dgGroupedStations)) then 
    264                                 for $GroupedStation in $ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup/dgGroupedStation/dgGroupedStations 
    265                                 return f:return-stub-obsstn('dgGroupedStation', data($GroupedStation/moles:dgMetadataID/moles:repositoryIdentifier), data($GroupedStation/moles:dgMetadataID/moles:localIdentifier)) 
    266                             else () 
    267                         } (: End </dgGroupedStations> :) 
    268                     } (: End </dgStationGroup> :)  
    269                 else $ObsStn/moles:dgObservationStation/moles:dgLandStation 
    270                 } (: End </dgStationaryPlatform>  :)   
    271                 else $ObsStn/moles:dgObservationStation/moles:dgMovingPlatform  
    272             } ,  
    273             for $RelDep in $ObsStn/moles:dgObservationStation/moles:ObsStationDeployment  
    274             return  
    275                 element ObsStationDeployment { 
    276                 $RelDep/moles:DateStart, 
    277                 $RelDep/moles:DateEnd, 
    278                 $RelDep/moles:dgMetadataID, 
    279                 f:return-stub-activity('activity', data($RelDep/moles:ActivityID/moles:repositoryIdentifier), data($RelDep/moles:ActivityID/moles:localIdentifier)), 
    280                 f:return-stub-dpt('dataproductiontool', data($RelDep/moles:DataProductionToolID/moles:repositoryIdentifier), data($RelDep/moles:DataProductionToolID/moles:localIdentifier)),  
    281                 for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord 
    282                     where $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:repositoryIdentifier=$RelDep/moles:dgMetadataID/moles:repositoryIdentifier 
    283                             and $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:localIdentifier=$RelDep/moles:dgMetadataID/moles:localIdentifier 
    284                 return 
    285                     f:return-stub-dataentity('dataentity', data($DE/moles:dgMetadataID/moles:repositoryIdentifier), data($DE/moles:dgMetadataID/moles:localIdentifier)), 
    286                 $RelDep/moles:Coverage 
    287             } (: </RelatedDeployment> :)  
    288         } (: </dgObservationStation> :),  
    289     for $strkwrd in $ObsStn/moles:dgStructuredKeyword return $strkwrd, 
    290     if (exists($ObsStn/moles:dgMetadataProvenance)) then $ObsStn/moles:dgMetadataProvenance else (), 
    291     if (exists($ObsStn/moles:dgMetadataSecurity)) then $ObsStn/moles:dgMetadataSecurity else () 
    292     } (: End </dgMetadataRecord> :) 
     226moles:dgObservationStation!=''  
     227and moles:dgMetadataID[ 
     228moles:schemeIdentifier='NDG-B0'  
     229and moles:repositoryIdentifier=$repositoryIdentifier 
     230and moles:localIdentifier=$localIdentifier]] 
     231return 
     232utillib:strip-namespace( 
     233element dgMetadataRecord { 
     234element dgMetadataID { 
     235element schemeIdentifier {'NDG-B1'}, 
     236$ObsStn/moles:dgMetadataID/moles:repositoryIdentifier, 
     237$ObsStn/moles:dgMetadataID/moles:localIdentifier 
     238} (: End </dgMetadataID> :),  
     239$ObsStn/moles:dgMetadataDescription, 
     240$ObsStn/moles:name, 
     241$ObsStn/moles:abbreviation, 
     242element dgObservationStation {  
     243$ObsStn/moles:dgObservationStation/moles:contactDetails, 
     244if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform)) then  
     245element dgStationaryPlatform {  
     246$ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:position, 
     247if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring)) then    
     248element dgMooring {  
     249$ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dateStart, 
     250$ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dateEnd, 
     251for $DepositingCruise in $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:DepositingCruise 
     252return  
     253f:return-stub-activity('depositingcruise', data($DepositingCruise/moles:dgMetadataID/moles:repositoryIdentifier), data($DepositingCruise/moles:dgMetadataID/moles:localIdentifier)), 
     254if (exists($ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/moles:dgStationGrouping)) then    
     255for $StationGrouping in $ObsStn/moles:dgObservationStation/moles:dgStationaryPlatform/moles:dgMooring/dgStationGrouping  
     256return   
     257f:return-stub-obsstn('stationgrouping', data($StationGrouping/moles:dgMetadataID/moles:repositoryIdentifier), data($StationGrouping/moles:dgMetadataID/moles:localIdentifier)) 
     258else () 
     259} (: End </dgMooring> :)   
     260else if (exists($ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup)) then    
     261element dgStationGroup {  
     262element dgGroupedStations {  
     263if (exists($ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup/dgGroupedStations)) then 
     264for $GroupedStation in $ObsStn/dgObservationStation/dgStationaryPlatform/dgStationGroup/dgGroupedStation/dgGroupedStations 
     265return f:return-stub-obsstn('dgGroupedStation', data($GroupedStation/moles:dgMetadataID/moles:repositoryIdentifier), data($GroupedStation/moles:dgMetadataID/moles:localIdentifier)) 
     266else () 
     267} (: End </dgGroupedStations> :) 
     268} (: End </dgStationGroup> :)  
     269else $ObsStn/moles:dgObservationStation/moles:dgLandStation 
     270} (: End </dgStationaryPlatform>  :)   
     271else $ObsStn/moles:dgObservationStation/moles:dgMovingPlatform ,  
     272for $RelDep in $ObsStn/moles:dgObservationStation/moles:ObsStationDeployment  
     273return  
     274element ObsStationDeployment { 
     275$RelDep/moles:DateStart, 
     276$RelDep/moles:DateEnd, 
     277$RelDep/moles:dgMetadataID, 
     278f:return-stub-activity('activity', data($RelDep/moles:ActivityID/moles:repositoryIdentifier), data($RelDep/moles:ActivityID/moles:localIdentifier)), 
     279f:return-stub-dpt('dataproductiontool', data($RelDep/moles:DataProductionToolID/moles:repositoryIdentifier), data($RelDep/moles:DataProductionToolID/moles:localIdentifier)),  
     280for $DE in collection($targetCollection)/moles:dgMetadata/moles:dgMetadataRecord 
     281where $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:repositoryIdentifier=$RelDep/moles:dgMetadataID/moles:repositoryIdentifier 
     282and $DE/moles:dgDataEntity/moles:RelatedDeployment/moles:dgMetadataID/moles:localIdentifier=$RelDep/moles:dgMetadataID/moles:localIdentifier 
     283return 
     284f:return-stub-dataentity('dataentity', data($DE/moles:dgMetadataID/moles:repositoryIdentifier), data($DE/moles:dgMetadataID/moles:localIdentifier)), 
     285$RelDep/moles:Coverage 
     286} (: </RelatedDeployment> :)  
     287} (: </dgObservationStation> :),  
     288for $strkwrd in $ObsStn/moles:dgStructuredKeyword return $strkwrd, 
     289if (exists($ObsStn/moles:dgMetadataProvenance)) then $ObsStn/moles:dgMetadataProvenance else (), 
     290if (exists($ObsStn/moles:dgMetadataSecurity)) then $ObsStn/moles:dgMetadataSecurity else () 
     291} (: End </dgMetadataRecord> :) 
    293292) (: End namespace strip :) 
Note: See TracChangeset for help on using the changeset viewer.