source: TI07-MOLES/trunk/DIF/XQuery/DIF2MOLES.xquery @ 1782

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/TI07-MOLES/trunk/DIF/XQuery/DIF2MOLES.xquery@1782
Revision 1782, 3.3 KB checked in by ko23, 13 years ago (diff)

DIF2MOLES stub recovery

RevLine 
[1782]1(: Note algoritm for creating non-pre-existing organisations :)
2 (: dgPersons are not created as one can't tell automatically which are people and which are orgs, and orgs are simpler :) 
3
4declare default element namespace 'http://ndg.nerc.ac.uk/moles';
5declare namespace dif='http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/';
6declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';
7declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions';
8declare variable $gcmd_science_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'};
9declare variable $gcmd_project_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/projects.html'};
10declare variable $cf_standard_names as xs:string {'http://www.cgd.ucar.edu/cms/eaton/cf-metadata/standard_name.html'};
11declare variable $iso_topic_list as xs:string {'http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'};
12declare variable $input_repository as xs:string {'Input_Repository_Code'};
13
14for $DIF in collection('/db/discovery')/dif:DIF
15return
16    element dgMetadata {
17        element dgMetadataRecord {
18                element dgMetadataID {
19                        element schemaIdentifier {'NDG-B0'},
20                        element repositoryIdentifier {$input_repository},
21                        element localIdentifier {string($DIF/dif:Entry_ID)}
22                },
23                element dgDataEntity {},
24                        for $structuredKeywords in $DIF/dgStructuredKeywords
25                        return
26                                element dgStructuredKeywords {},
27                        if (exists($DIF/dif:DIF_Creation_Date) or exists($DIF/dif:Last_DIF_Revision_Date)) then
28                                element dgMetadataProvenance {
29                                        if (exists($DIF/dif:DIF_Creation_Date)) then
30                                                element RecordCreation {
31                                                        element CreatedDate {string($DIF/dif:DIF_Creation_Date)},
32                                                        element CreatedBy {$input_repository}
33                                                }
34                                        else
35                                                element RecordCreation {
36                                                        element CreatedDate {current-date()},
37                                                        element CreatedBy {'MOLES Import'}
38                                                },
39                                        if (exists($DIF/dif:Last_DIF_Revision_Date)) then
40                                                element RecordUpdate {
41                                                        element UpdateDate {$DIF/dif:Last_DIF_Revision_Date},
42                                                        element UpdateBy {$input_repository}
43                                                }
44                                        else ()
45                                }
46                        else (),
47                element name {string($DIF/dif:Entry_Title)},
48                element abbreviation {string($DIF/dif:Entry_Title)}
49        } (: </dgMetadataRecord>:),
50        for $creator in $DIF/dif:Data_Set_Citation/dif:Dataset_Creator
51        return
52                element dgOrganisation {
53                        element dgMetadataID {
54                                element schemaIdentifier {'NDG-B0'},
55                                element repositoryIdentifier {$input_repository},
56                                element localIdentifier {concat('generated_orgcit-', string($DIF/dif:Entry_ID), escape-uri(string($creator), true()), string(util:random()))}
57                        },
58                        element name {string($DIF/dif:Originating_Center)},
59                        element abbreviation {string($DIF/dif:Originating_Center)},
60                        element contactDetails {''}
61                },
62        if (exists($DIF/dif:Originating_Center)) then
63                element dgOrganisation {
64                        element dgMetadataID {
65                                element schemaIdentifier {'NDG-B0'},
66                                element repositoryIdentifier {$input_repository},
67                                element localIdentifier {concat('generated_org-', string($DIF/dif:Entry_ID), escape-uri(string($DIF/dif:Originating_Center), true()))}
68                        },
69                        element name {string($DIF/dif:Originating_Center)},
70                        element abbreviation {string($DIF/dif:Originating_Center)},
71                        element contactDetails {''}
72                }
73        else ()
74} (:    </dgMetadata> :)
Note: See TracBrowser for help on using the repository browser.