Changeset 7959 for ndgCommon


Ignore:
Timestamp:
23/08/11 12:51:27 (8 years ago)
Author:
sdonegan
Message:

Update the xq to generate Gemini compliant iso metadata - various updates but should produce output that can validate agaianst the Gemini2 schematron. Should also work for UKSSDC data too.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ndgCommon/trunk/ndg/common/xmldb/xquery/lib/Utilities/isoUtilities_xquery_lib.xquery

    r7881 r7959  
    1 module namespace isolib='http://ndg.nerc.ac.uk/xquery/lib/iso_utilities'; 
     1module namespace isolib='http://ndg.nerc.ac.uk/xquery/lib/iso_utilities'; 
    22 
    33(: ISO namespaces :) 
     
    1919        element gmd:CI_Date { 
    2020            element gmd:date { 
    21                 element gco:Date { data($date)}                                
     21                element gco:DateTime { 
     22                    replace(string($date),"Z","") 
     23                }                                        
    2224            }, 
    2325            (: TODO: get ATOM/MOLES values to take these from published codelist/vocab :) 
     
    7072                            element gco:CharacterString { data($electronicalMailAddress)} 
    7173                        } 
    72                     else () 
    73                   else () 
     74                    else  
     75                                                element gmd:electronicMailAddress { 
     76                                                        element gco:CharacterString{ string('noAddress@available')} 
     77                                                } 
     78                  else  
     79                                                element gmd:electronicMailAddress { 
     80                                                        element gco:CharacterString{ string('noAddress@available')} 
     81                                                } 
    7482                } 
    7583            },         
     
    8189                   isolib:CI_OnlineResource($electronicalMailAddress, "", "", "offlineAccess") 
    8290               } 
    83            else () 
    84        else ()  
     91           else  
     92                                                element gmd:electronicMailAddress { 
     93                                                        element gco:CharacterString{ string('noAddress@available')} 
     94                                                } 
     95                  else  
     96                                                element gmd:electronicMailAddress { 
     97                                                        element gco:CharacterString{ string('noAddress@available')} 
     98                                                } 
    8599           
    86100      
     
    241255            $dataCenterDetails/dif:Data_Center[1]/dif:Personnel/dif:Contact_Address/dif:City,  
    242256            $dataCenterDetails/dif:Data_Center[1]/dif:Personnel/dif:Contact_Address/dif:Postal_Code,  
    243             $dataCenterDetails/dif:Data_Center[1]/dif:Personnel/dif:Contact_Address/dif:Email)             
    244 }; 
     257            $dataCenterDetails/dif:Data_Center[1]/dif:Personnel/dif:Email)             
     258}; 
     259 
     260(: Function to extract a text feild free of html tags etc from a CEDA ATOM xhtml content type :) 
     261declare function isolib:extractAtomContent($divName as xs:string, $atomContent) 
     262{ 
     263 
     264for $divContent in $atomContent 
     265      
     266         (:Get the content -everything within div tags..:) 
     267         let $rawContent:= substring-before(substring-after(substring-after((string($atomContent)),$divName),"</div>"),"</div>") 
     268          
     269         (:Get rid of all HTML gubbins.. :) 
     270          
     271         (:Get rid of all HTML gubbins.. :)          
     272         let $finalContent := replace($rawContent,"<[^<>]+>","") 
     273          
     274          (: get rid of any newline characters etc - replace with a space. :) 
     275         let $finalContent := replace($finalContent,"\n","") 
     276 
     277         return 
     278      
     279             element output {      
     280                 data ($finalContent)          
     281     } 
     282 
     283}; 
Note: See TracChangeset for help on using the changeset viewer.