Changeset 7887


Ignore:
Timestamp:
16/02/11 17:21:47 (9 years ago)
Author:
sdonegan
Message:

Further updates to improve structure and content to rectify some problems identifed in schematron

File:
1 edited

Legend:

Unmodified
Added
Removed
  • ndgCommon/trunk/ndg/common/xmldb/xquery/atom2NERCiso.xq

    r7886 r7887  
    2929declare namespace gco='http://www.isotc211.org/2005/gco'; 
    3030declare namespace gmx='http://www.isotc211.org/2005/gmx'; 
    31 declare namespace gml='http://www.opengis.net/gml'; 
     31declare namespace gml='http://www.opengis.net/gml/3.2'; 
    3232declare namespace xlink='http://www.w3.org/1999/xlink'; 
    3333 
     
    8282 
    8383declare variable $currentDate as xs:string := substring(current-date() cast as xs:string,1,10); 
     84 
    8485 
    8586for $DE in collection($atomCollection)/atom:entry[matches(atom:id, $localIdentifier)] 
     
    142143    (: For CEDA this translates to the timestamp of the last update in the MOLES db, rather than the datestamp of the application of this conversion... WHICH means moles:updated:) 
    143144    element gmd:dateStamp { 
    144         element gco:Date { 
     145        element gco:DateTime { 
    145146            replace(string($DE/atom:updated),"Z","") 
    146147        } 
     
    596597            
    597598             
    598             (: TODO: Many CEDA datasets don't have boundingBox info - MAndatory for compliancy.. :) 
     599            (: TODO: Many CEDA datasets don't have boundingBox info - MAndatory for compliancy..  
     600             
     601            UPDATE (16/02/11): Note one extent tag for each SEPARATE spatial or temporal extents 
     602             
     603            :) 
    599604             element gmd:extent { 
    600605                element gmd:EX_Extent { 
     
    605610                        for $boundingBox in $DE/georss:where 
    606611                        return 
    607                             element gmd:geographicElement { 
     612                         
     613                            if ((tokenize(string($boundingBox/gml:Envelope/gml:lowerCorner), ' ')[1]="0.0") and (tokenize(string($boundingBox/gml:Envelope/gml:upperCorner), ' ')[1]="0.0") and (tokenize(string($boundingBox/gml:Envelope/gml:lowerCorner), ' ')[2]="0.0") and (tokenize(string($boundingBox/gml:Envelope/gml:upperCorner), ' ')[2]="0.0")) then 
     614                             
     615                                element gmd:geographicElement { 
    608616                                element gmd:EX_GeographicBoundingBox {                                                     
    609617                                    element gmd:westBoundLongitude { 
    610618                                        element gco:Decimal { 
    611                                             data(tokenize(string($boundingBox/gml:Envelope/gml:lowerCorner), ' ')[1]) 
     619                                            string("-180") 
    612620                                        } 
    613621                                    }, 
    614622                                    element gmd:eastBoundLongitude { 
    615623                                        element gco:Decimal { 
    616                                             data(tokenize(string($boundingBox/gml:Envelope/gml:upperCorner), ' ')[1]) 
     624                                            string("180") 
    617625                                        } 
    618626                                    }, 
    619627                                    element gmd:southBoundLatitude { 
    620628                                        element gco:Decimal { 
    621                                             data(tokenize(string($boundingBox/gml:Envelope/gml:lowerCorner), ' ')[2]) 
     629                                            string("-90") 
    622630                                        } 
    623631                                    }, 
    624632                                    element gmd:northBoundLatitude { 
    625633                                        element gco:Decimal { 
    626                                             data(tokenize(string($boundingBox/gml:Envelope/gml:upperCorner), ' ')[2]) 
     634                                            string("90") 
    627635                                        } 
    628636                                    } 
    629637                                } 
    630638                            } 
    631                         else (), 
     639                             
     640                            else 
     641                         
     642                            element gmd:geographicElement{ 
     643                                element gmd:EX_GeographicBoundingBox {                                                     
     644                                    element gmd:westBoundLongitude { 
     645                                        element gco:Decimal { 
     646                                            data(tokenize(string($boundingBox/gml:Envelope/gml:lowerCorner), ' ')[1]) 
     647                                        } 
     648                                    }, 
     649                                    element gmd:eastBoundLongitude { 
     650                                        element gco:Decimal { 
     651                                            data(tokenize(string($boundingBox/gml:Envelope/gml:upperCorner), ' ')[1]) 
     652                                        } 
     653                                    }, 
     654                                    element gmd:southBoundLatitude { 
     655                                        element gco:Decimal { 
     656                                            data(tokenize(string($boundingBox/gml:Envelope/gml:lowerCorner), ' ')[2]) 
     657                                        } 
     658                                    }, 
     659                                    element gmd:northBoundLatitude { 
     660                                        element gco:Decimal { 
     661                                            data(tokenize(string($boundingBox/gml:Envelope/gml:upperCorner), ' ')[2]) 
     662                                        } 
     663                                    } 
     664                                } 
     665                            } 
     666                        else 
     667                        element gmd:geographicElement { 
     668                                element gmd:EX_GeographicBoundingBox {                                                     
     669                                    element gmd:westBoundLongitude { 
     670                                        element gco:Decimal { 
     671                                            string("-180") 
     672                                        } 
     673                                    }, 
     674                                    element gmd:eastBoundLongitude { 
     675                                        element gco:Decimal { 
     676                                            string("180") 
     677                                        } 
     678                                    }, 
     679                                    element gmd:southBoundLatitude { 
     680                                        element gco:Decimal { 
     681                                            string("-90") 
     682                                        } 
     683                                    }, 
     684                                    element gmd:northBoundLatitude { 
     685                                        element gco:Decimal { 
     686                                            string("90") 
     687                                        } 
     688                                    } 
     689                                } 
     690                            } 
     691                          } 
     692                        }, 
    632693                         
    633694                        (: Temporal Reference - Element 16.1 :) 
     
    637698                            UPDATE: NERC DMS now specifiies that "nilReason" be specified where data is unavailable.  Following code now deals with crappy ATOM date handling                             
    638699                        :) 
    639                          
     700                     element gmd:extent { 
     701                      element gmd:EX_Extent { 
    640702                        element gmd:temporalElement { 
    641703                            element gmd:EX_TemporalExtent { 
     
    761823                        isolib:transferOptions (string($url), string("CEDA Dataset Homepage"), string($title), string("information")) 
    762824                    else () 
    763                        
     825                   }     
    764826        }, (: /distributionInfo :) 
    765827         
     
    816878            }         
    817879        } (: /dataQualityInfo :) 
     880    
    818881    } 
    819     } 
    820      
    821  
     882 
Note: See TracChangeset for help on using the changeset viewer.