Ignore:
Timestamp:
12/02/07 11:16:11 (12 years ago)
Author:
ko23
Message:

Intermediate update

File:
1 edited

Legend:

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

    r2077 r2142  
    33(: dgPersons are not created as one can't tell automatically which are people and which are orgs, and orgs are simpler :)   
    44import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
     5import module namespace inputParse='http://ndg.nerc.ac.uk/xquery/lib/inputParse' at 'xmldb:exist:///db/xqueryLib/Utilities/inputParse_xquery_lib.xquery'; 
    56declare default element namespace 'http://ndg.nerc.ac.uk/moles'; 
    67declare namespace dif='http://gcmd.gsfc.nasa.gov/Aboutus/xml/dif/'; 
    78declare namespace xsi='http://www.w3.org/2001/XMLSchema-instance';  
    8 declare namespace f='http://ndg.nerc.ac.uk/moles/localfunctions'; 
     9 
    910(: Replacable parameters :) 
    1011declare variable $input_collection as xs:string {'TargetCollection'}; 
     
    1314declare variable $input_entry_id as xs:string {'Input_Entry_ID'}; 
    1415declare variable $output_local_id as xs:string {'Output_LocalID'}; 
    15  
    16 declare function f:fix-coord($e as element()) as element()  
    17 (: Parse a non-decimal co-ordinate element,  parse to see if it's possible to convert to  
    18     a decimal co-ordinate, and do so, else return the rubbish provided :) 
    19 { 
    20 if ($e castable as xs:decimal) then   
    21         $e 
    22 else 
    23         let $value := substring(data($e), 1, string-length($e)-1) 
    24         let $point := lower-case(data($e)) 
    25         return 
    26         if ($value  castable as xs:decimal) then   
    27                 if (ends-with($point, 'n')) then 
    28                         element {name($e)} {$value}  
    29                 else if (ends-with($point, 's')) then 
    30                         element {name($e)} {concat('-', $value)}  
    31                 else if (ends-with($point, 'e')) then 
    32                         element {name($e)} {$value}  
    33                 else if (ends-with($point, 'w')) then 
    34                         element {name($e)} {concat('-', $value)}  
    35                 else $e 
    36         else  $e 
    37 } ; 
    3816 
    3917for $DIF in collection($input_collection)/dif:DIF[dif:Entry_ID=$input_entry_id] 
     
    127105                                                                return 
    128106                                                                        element BoundingBox { 
    129                                                                                 element LimitNorth {data(f:fix-coord($boundingbox/dif:Northernmost_Latitude))}, 
    130                                                                                 element LimitSouth {data(f:fix-coord($boundingbox/dif:Southernmost_Latitude))}, 
    131                                                                                 element LimitWest {data(f:fix-coord($boundingbox/dif:Westernmost_Longitude))}, 
    132                                                                                 element LimitEast {data(f:fix-coord($boundingbox/dif:Easternmost_Longitude))} 
     107                                                                        element LimitNorth {data(inputParse:fix-coord($boundingbox/dif:Northernmost_Latitude))}, 
     108                                                                        element LimitSouth {data(inputParse:fix-coord($boundingbox/dif:Southernmost_Latitude))}, 
     109                                                                        element LimitWest {data(inputParse:fix-coord($boundingbox/dif:Westernmost_Longitude))}, 
     110                                                                        element LimitEast {data(inputParse:fix-coord($boundingbox/dif:Easternmost_Longitude))} 
    133111                                                                        }, 
    134112                                                                for $location in $DIF/dif:Location 
Note: See TracChangeset for help on using the changeset viewer.