Changeset 2363 for TI07-MOLES/trunk/MDIP/XQueries/NDG-MDIP.xquery
- Timestamp:
- 02/04/07 16:15:07 (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
TI07-MOLES/trunk/MDIP/XQueries/NDG-MDIP.xquery
r2236 r2363 5 5 declare namespace gco='http://www.isotc211.org/2005/gco'; 6 6 declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance'; 7 (: Keep 7 8 declare variable $targetCollection as xs:string {'TargetCollection'}; 8 9 declare variable $repositoryIdentifier as xs:string {'RepositoryID'}; 9 10 declare variable $localIdentifier as xs:string {'LocalID'}; 11 :) 12 declare variable $targetCollection as xs:string {'/db/discovery'}; 13 declare variable $repositoryIdentifier as xs:string {'grid.bodc.nerc.ac.uk'}; 14 declare variable $localIdentifier as xs:string {'grid.bodc.nerc.ac.uk:DIF:EDMED1048001'}; 10 15 11 16 declare variable $ISO_639-2_ns as xs:string{$voclib:ISO_639-2_ns}; … … 24 29 return 25 30 element Language{ 26 element LanguageName {data($lang/ dgValidTerm)},27 element LanguageVocab {data($lang/ dgValidTermID/ParentListID)},28 element LanguageCode {data($lang/ dgValidTermID/TermID)}31 element LanguageName {data($lang/moles:dgValidTerm)}, 32 element LanguageVocab {data($lang/moles:dgValidTermID/moles:ParentListID)}, 33 element LanguageCode {data($lang/moles:dgValidTermID/moles:TermID)} 29 34 } 30 35 31 36 else (), 32 37 33 element Abstract {}, 34 for $isoTopic in $DE/moles:dgStructuredKeyword[moles:dgValidTermID/moles:ParentListID=''] 35 return element TopicCategory {}, 36 for $subject in distinct-values($DE/dgDataEntity/dgDataSummary/dgParameterSummary/dgStdParameterMeasured[ 37 voclib:spot-vocab($voclib:gcmd_science_valids, dgValidTermID/ParentListID) 38 or voclib:spot-vocab($voclib:gcmd_project_valids, dgValidTermID/ParentListID) 39 or voclib:spot-vocab($voclib:bodc_parameter_usage_vocab, dgValidTermID/ParentListID) 40 or voclib:spot-vocab($voclib:bodc_parameter_discovery_vocab, dgValidTermID/ParentListID) 41 ]/dgValidTerm) 42 return element Subject {$subject}, 38 element Abstract {string($DE/moles:dgMetadataDescription/moles:abstract/moles:abstractText)}, 39 for $isoTopic in $DE/moles:dgStructuredKeyword[voclib:spot-vocab($voclib:iso_topic_list, moles:dgValidTermID/moles:ParentListID)] 40 return element TopicCategory { 41 element TopicCategoryName {data($isoTopic/moles:dgValidTerm)}, 42 element TopicCategoryVocab {data($isoTopic/moles:dgValidTermID/moles:ParentListID)}, 43 element TopicCategoryCode {data($isoTopic/moles:dgValidTermID/moles:TermID)} 44 }, 45 for $subject in ($DE/moles:dgDataEntity/moles:dgDataSummary/moles:dgParameterSummary/moles:dgStdParameterMeasured[ 46 voclib:spot-vocab($voclib:gcmd_science_valids, moles:dgValidTermID/moles:ParentListID) 47 or voclib:spot-vocab($voclib:gcmd_project_valids, moles:dgValidTermID/moles:ParentListID) 48 or voclib:spot-vocab($voclib:gcmd_science_valids_categories, moles:dgValidTermID/moles:ParentListID) 49 or voclib:spot-vocab($voclib:bodc_parameter_usage_vocab, moles:dgValidTermID/moles:ParentListID) 50 or voclib:spot-vocab($voclib:bodc_parameter_discovery_vocab, moles:dgValidTermID/moles:ParentListID) 51 ]) 52 return (element Subject { 53 element SubjectName {data($subject/moles:dgValidTerm)}, 54 element SubjectVocab {data($subject/moles:dgValidTermID/moles:ParentListID)}, 55 element SubjectCode {data($subject/moles:dgValidTermID/moles:TermID)} 56 }, 57 for $subterm in $subject//moles:dgValidSubterm 58 return (element Subject { 59 element SubjectName {data($subterm/moles:dgValidTerm)}, 60 element SubjectVocab {data($subterm/moles:dgValidTermID/moles:ParentListID)}, 61 element SubjectCode {data($subterm/moles:dgValidTermID/moles:TermID)} 62 } 63 ) 64 ), 65 if (exists($DE//moles:dgTemporalCoverage/(moles:DateSingle | moles:DateRange))) then 43 66 element Date { 44 element DatasetStartDate {}, 45 element DatasetEndDate {} 67 element DatasetStartDate { 68 let $dateStart:=min($DE//moles:dgTemporalCoverage/(moles:DateSingle | moles:DateRange/moles:DateRangeStart) cast as xs:date) 69 return 70 if (empty($dateStart)) then () 71 else data($dateStart) 72 }, 73 element DatasetEndDate { 74 let $dateEnd:=max($DE//moles:dgTemporalCoverage/(moles:DateSingle | moles:DateRange/moles:DateRangeEnd) cast as xs:date) 75 return 76 if (empty($dateEnd)) then () 77 else data($dateEnd) 78 } 46 79 } 47 } 80 else (), 81 let $west := min($DE/moles:dgDataEntity/moles:dgDataSummary//moles:BoundingBox/moles:LimitWest cast as xs:integer) 82 return element WestCoOrdinate {data($west)}, 83 let $east := max($DE/moles:dgDataEntity/moles:dgDataSummary//moles:BoundingBox/moles:LimitEast cast as xs:integer) 84 return element EastCoOrdinate {data($east)}, 85 let $north := max($DE/moles:dgDataEntity/moles:dgDataSummary//moles:BoundingBox/moles:LimitNorth cast as xs:integer) 86 return element NorthCoOrdinate {data($north)}, 87 let $south := min($DE/moles:dgDataEntity/moles:dgDataSummary//moles:BoundingBox/moles:LimitSouth cast as xs:integer) 88 return element SouthCoOrdinate {data($south)}, 89 element DatasetIdentifier {concat($DE/moles:dgMetadataID/moles:repositoryIdentifier, $utillib:moles_id_separator, 'MDIP', $utillib:moles_id_separator, $DE/moles:dgMetadataID/moles:localIdentifier)}, 90 for $target in $DE/moles:dgStructuredKeyword[voclib:spot-vocab($voclib:ndg_data_provider_vocab, moles:dgValidTermID/moles:ParentListID) ] 91 return element Target { 92 element TargetName {data($target/moles:dgValidTerm)}, 93 element TargetVocab {data($target/moles:dgValidTermID/moles:ParentListID)}, 94 element TargetCode {data($target/moles:dgValidTermID/moles:TermID)} 95 } 96 }
Note: See TracChangeset
for help on using the changeset viewer.