Changeset 2142 for TI07-MOLES/trunk


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

Intermediate update

Location:
TI07-MOLES/trunk
Files:
3 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 
  • TI07-MOLES/trunk/MDIP/XQueries/MDIP2MOLES.xquery

    r2056 r2142  
    33(: dgPersons are not created as one can't tell automatically which are people and which are orgs, and orgs are simpler :)   
    44(: Not producing valid MOLES as still got to work out parameter vocabulary namespaces in the subject field :)   
     5import module namespace voclib='http://ndg.nerc.ac.uk/xquery/lib/vocab' at 'xmldb:exist:///db/xqueryLib/Vocabs/vocab_xquery_lib.xquery'; 
     6import module namespace inputParse='http://ndg.nerc.ac.uk/xquery/lib/inputParse' at 'xmldb:exist:///db/xqueryLib/Utilities/inputParse_xquery_lib.xquery'; 
    57 
    68declare default element namespace 'http://ndg.nerc.ac.uk/moles'; 
     
    3840declare variable $ndg_data_provider_vocab as xs:string {'http://vocab.ndg.nerc.ac.uk/N010'}; 
    3941declare variable $ndg_vertical_extent_base as xs:string {'http://vocab.ndg.nerc.ac.uk/null'}; 
    40  
    41 declare function f:fix-coord($e as element()) as element()  
    42 (: Parse a non-decimal co-ordinate element,  parse to see if it's possible to convert to  
    43     a decimal co-ordinate, and do so, else return the rubbish provided :) 
    44 { 
    45 if ($e castable as xs:decimal) then   
    46         $e 
    47 else 
    48         let $value := substring(data($e), 1, string-length($e)-1) 
    49         let $point := lower-case(data($e)) 
    50         return 
    51         if ($value  castable as xs:decimal) then   
    52                 if (ends-with($point, 'n')) then 
    53                         element {name($e)} {$value}  
    54                 else if (ends-with($point, 's')) then 
    55                         element {name($e)} {concat('-', $value)}  
    56                 else if (ends-with($point, 'e')) then 
    57                         element {name($e)} {$value}  
    58                 else if (ends-with($point, 'w')) then 
    59                         element {name($e)} {concat('-', $value)}  
    60                 else $e 
    61         else  $e 
    62 } ; 
    63  
    64 declare function f:spot-vocab($vocab_root as xs:string, $vocab_uri as xs:string) as xs:boolean  
    65 (: See if the vocab pointed if from the vocab pointed at by the vocab_root :) 
    66 { 
    67 if ($vocab_root = substring($vocab_uri, 1, string-length($vocab_root))) then   
    68         true() 
    69 else 
    70         false() 
    71 } ; 
    7242 
    7343for $MDIP in collection($input_collection)/mdip:Metadata[mdip:DatasetIdentifier=$input_DatasetIdentifier] 
     
    130100                                                element dgSpatialCoverage { 
    131101                                                        element BoundingBox { 
    132                                                                 element LimitNorth {data(f:fix-coord($MDIP/mdip:NorthCoOrdinate))}, 
    133                                                                 element LimitSouth {data(f:fix-coord($MDIP/mdip:SouthCoOrdinate))}, 
    134                                                                 element LimitWest {data(f:fix-coord($MDIP/mdip:WestCoOrdinate))}, 
    135                                                                 element LimitEast {data(f:fix-coord($MDIP/mdip:EastCoOrdinate))} 
     102                                                        element LimitNorth {data(inputParse:fix-coord($MDIP/mdip:NorthCoOrdinate))}, 
     103                                                        element LimitSouth {data(inputParse:fix-coord($MDIP/mdip:SouthCoOrdinate))}, 
     104                                                        element LimitWest {data(inputParse:fix-coord($MDIP/mdip:WestCoOrdinate))}, 
     105                                                        element LimitEast {data(inputParse:fix-coord($MDIP/mdip:EastCoOrdinate))} 
    136106                                                        }, 
    137107                                                        for $location in $MDIP/mdip:Extent 
  • TI07-MOLES/trunk/MOLES.xpr

    r2077 r2142  
    1010        <folder path="xqueryLib/"/> 
    1111        <file name="DIF/XQuery/DIF2MOLES.xquery"/> 
     12        <file name="MDIP/XQueries/MDIP2MOLES.xquery"/> 
    1213        <file name="StubB/XQuery/NDG-ActStubB.xquery"/> 
    1314        <file name="StubB/XQuery/NDG-DEStubB.xquery"/> 
     
    2021            name="ISO19115-19139/XQuery/NDG-ISO19115-139LocalValidate.xquery"/> 
    2122        <file name="ISO19115-WMO/XQuery/NDG-ISO19115-WMO.xquery"/> 
     23        <file name="MDIP/XQueries/NDG-MDIP.xquery"/> 
    2224        <file name="StubB/XQuery/NDG-ObsStnStubB.xquery"/> 
    2325        <file name="DIF/Schemae/dif9-4.xsd"/> 
Note: See TracChangeset for help on using the changeset viewer.