Changeset 1977 for TI07-MOLES/trunk


Ignore:
Timestamp:
09/01/07 11:55:52 (13 years ago)
Author:
ko23
Message:

MOLES schema error fix

Location:
TI07-MOLES/trunk
Files:
3 edited

Legend:

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

    r1926 r1977  
    1616 
    1717(: declare variable $gcmd_science_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html'}; :) 
    18 declare variable $gcmd_science_valids as xs:string {'http://vocab.ndg.nerc.ac.uk/041'}; 
     18declare variable $gcmd_science_valids as xs:string {'http://vocab.ndg.nerc.ac.uk/P041'}; 
    1919declare variable $gcmd_project_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/projects.html'}; 
    2020declare variable $gcmd_location_valids as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/locations.html'}; 
  • TI07-MOLES/trunk/MDIP/XQueries/MDIP2MOLES.xquery

    r1926 r1977  
    2727declare variable $gcmd_iso_topic_list as xs:string {'http://gcmd.gsfc.nasa.gov/Resources/valids/iso_topic_list.html'}; 
    2828 
     29declare variable $iho_s23_list as xs:string {'http://vocab.ndg.nerc.ac.uk/C161'}; 
     30 
    2931(: declare variable $iso_topic_list as xs:string {'http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_TopicCategoryCode'}; :) 
    3032declare variable $iso_topic_list as xs:string {'http://vocab.ndg.nerc.ac.uk/P051'}; 
     
    3335 
    3436declare variable $ndg_data_provider_vocab as xs:string {'http://vocab.ndg.nerc.ac.uk/N010'}; 
     37declare variable $ndg_vertical_extent_base as xs:string {'http://vocab.ndg.nerc.ac.uk/null'}; 
    3538 
    3639declare function f:fix-coord($e as element()) as element()  
     
    7477                        element metadataDescriptionLastUpdated {current-date()}                 , 
    7578                        element abstract { 
    76                                 element abstractText {string($MDIP/mdip:Summary)} 
     79                                element abstractText {string($MDIP/mdip:Abstract)} 
    7780                        } 
    7881                }, 
    79                 element name {string($MDIP/mdip:Entry_Title)}, 
    80                 element abbreviation {string($MDIP/mdip:Entry_Title)}, 
     82                element name {string($MDIP/mdip:Title)}, 
     83                element abbreviation {string($MDIP/mdip:Title)}, 
    8184                element dgDataEntity { 
    8285                        element dgDataSetType {''}, 
    8386                        element dgDataSummary { 
    84                                 for $parameter in $MDIP/mdip:Parameters 
     87                                for $parameter in $MDIP/mdip:Subject[SubjectVocab=$bodc_parameter_discovery_vocab] 
    8588                                return 
    8689                                        element dgParameterSummary { 
     
    98101                                                }, 
    99102                                                element dgStdParameterMeasured { 
    100                                                         element dgValidTerm { 
    101                                                                 concat (string($parameter/mdip:Category), ' > ', string($parameter/mdip:Topic), ' > ', string($parameter/mdip:Term)), 
    102                                                                 if (exists($parameter/mdip:Variable)) then 
    103                                                                         concat(' > ', string($parameter/mdip:Variable)) 
    104                                                                 else (), 
    105                                                                 if (exists($parameter/mdip:Detailed_Variable)) then 
    106                                                                         concat(' > ', string($parameter/mdip:Detailed_Variable)) 
    107                                                                 else () 
     103                                                        element dgValidTerm {string($parameter/mdip:SubjectName)}, 
     104                                                                element dgValidTermID { 
     105                                                                        element ParentListID {string($parameter/mdip:SubjectVocab)}, 
     106                                                                        element TermID {string($parameter/mdip:SubjectCode)} 
     107                                                                } 
     108                                                }, 
     109                                                element ParameterName {string($parameter/mdip:SubjectName)}, 
     110                                                element ParameterAbbreviation {string($parameter/mdip:SubjectName)} 
     111                                        }, 
     112                                element dgDataCoverage { 
     113                                                element dgSpatialCoverage { 
     114                                                        element BoundingBox { 
     115                                                                element LimitNorth {data(f:fix-coord($MDIP/mdip:NorthCoOrdinate))}, 
     116                                                                element LimitSouth {data(f:fix-coord($MDIP/mdip:SouthCoOrdinate))}, 
     117                                                                element LimitWest {data(f:fix-coord($MDIP/mdip:WestCoOrdinate))}, 
     118                                                                element LimitEast {data(f:fix-coord($MDIP/mdip:EastCoOrdinate))} 
    108119                                                        }, 
    109                                                                 element dgValidTermID { 
    110                                                                         element ParentListID {$gcmd_science_valids}, 
    111                                                                         element TermID {escape-uri($parameter/mdip:Category, true())} 
     120                                                        for $location in $MDIP/mdip:Extent 
     121                                                        return 
     122                                                                element dgArea { 
     123                                                                        element dgValidTerm {string($location/mdip:ExtentName)}, 
     124                                                                        element dgValidTermID { 
     125                                                                                element ParentListID {string($location/mdip:ExtentVocab)}, 
     126                                                                                element TermID {string($location/mdip:ExtentCode)} 
     127                                                                        } 
     128                                                                }, 
     129                                                        for $location in $MDIP/mdip:VerticalExtent 
     130                                                        return 
     131                                                                element dgVerticalExtent { 
     132                                                                        element dgVerticalExtentBaseRef { 
     133                                                                                element dgValidTerm {if (exists($location/VerticalDatum)) then $location/VerticalDatum else 'default'}, 
     134                                                                                element dgValidTermID { 
     135                                                                                        element ParentListID {'$unknown_vocab_id'}, 
     136                                                                                        element TermID {escape-uri(string($location/mdip:VerticalDatum), true())} 
     137                                                                                } 
     138                                                                        }, 
     139                                                                        if (exists($location/mdip:Minimum) and exists($location/mdip:Maximum)) then 
     140                                                                                element dgVerticalExtentRange{ 
     141                                                                                        element dgVerticalExtentRangeMin {data($location/mdip:Minimum)}, 
     142                                                                                        element dgVerticalExtentRangeMax {data($location/mdip:Maximum)} 
     143                                                                                } 
     144                                                                        else 
     145                                                                                element dgVerticalExtentLevel{ 
     146                                                                                        if (exists($location/mdip:Minimum)) then element dgVerticalExtentLevelValue {data($location/mdip:Minimum)} 
     147                                                                                        else element dgVerticalExtentLevelValue {data($location/mdip:Maximum)} 
     148                                                                                } 
    112149                                                                } 
    113                                                 }, 
    114                                                 element ParameterName { 
    115                                                         concat (string($parameter/mdip:Category), ' > ', string($parameter/mdip:Topic), ' > ', string($parameter/mdip:Term)), 
    116                                                         if (exists($parameter/mdip:Variable)) then 
    117                                                                 concat(' > ', string($parameter/mdip:Variable)) 
    118                                                         else (), 
    119                                                         if (exists($parameter/mdip:Detailed_Variable)) then 
    120                                                                 concat(' > ', string($parameter/mdip:Detailed_Variable)) 
    121                                                         else () 
    122                                                 }, 
    123                                                 element ParameterAbbreviation { 
    124                                                         concat (string($parameter/mdip:Category), ' > ', string($parameter/mdip:Topic), ' > ', string($parameter/mdip:Term)), 
    125                                                         if (exists($parameter/mdip:Variable)) then 
    126                                                                 concat(' > ', string($parameter/mdip:Variable)) 
    127                                                         else (), 
    128                                                         if (exists($parameter/mdip:Detailed_Variable)) then 
    129                                                                 concat(' > ', string($parameter/mdip:Detailed_Variable)) 
    130                                                         else () 
     150                                                } (: /dgSpatialCoverage :), 
     151                                                element dgTemporalCoverage { (: didn't bother trying to validate the Dates as the example is naff to start with :) 
     152                                                        for $date in $MDIP/mdip:Date 
     153                                                        return 
     154                                                                if (exists($MDIP/mdip:Date/mdip:DatasetStartDate) and exists($MDIP/mdip:Date/mdip:DatasetEndDate) ) then  
     155                                                                        element DateRange { 
     156                                                                                element DateRangeStart {data($MDIP/mdip:Date/mdip:DatasetStartDate)}, 
     157                                                                                element DateRangeEnd {data($MDIP/mdip:Date/mdip:DatasetEndDate)} 
     158                                                                        } 
     159                                                                else if (exists($MDIP/mdip:Date/mdip:DatasetStartDate)) then  element DataSingle {data($MDIP/mdip:Date/mdip:DatasetStartDate)} 
     160                                                                else element DataSingle {data($MDIP/mdip:Date/mdip:DatasetEndDate)} 
    131161                                                } 
    132                                         }, 
    133                                 if (exists($MDIP/mdip:Spatial_Coverage) or exists($MDIP/mdip:Paleo_Temporal_Coverage) or exists($MDIP/mdip:Location) or exists($MDIP/mdip:Temporal_Coverage)) then 
    134                                         element dgDataCoverage { 
    135                                                 if (exists($MDIP/mdip:Spatial_Coverage)  or exists($MDIP/mdip:Location))  then 
    136                                                         element dgSpatialCoverage { 
    137                                                                 for $boundingbox in $MDIP/mdip:Spatial_Coverage[exists(mdip:Northernmost_Latitude) 
    138                                                                                                                 and exists(mdip:Southernmost_Latitude) 
    139                                                                                                                 and exists(mdip:Easternmost_Longitude) 
    140                                                                                                                 and exists(mdip:Westernmost_Longitude)] 
    141                                                                 return 
    142                                                                         element BoundingBox { 
    143                                                                                 element LimitNorth {data(f:fix-coord($boundingbox/mdip:Northernmost_Latitude))}, 
    144                                                                                 element LimitSouth {data(f:fix-coord($boundingbox/mdip:Southernmost_Latitude))}, 
    145                                                                                 element LimitWest {data(f:fix-coord($boundingbox/mdip:Westernmost_Longitude))}, 
    146                                                                                 element LimitEast {data(f:fix-coord($boundingbox/mdip:Easternmost_Longitude))} 
    147                                                                         }, 
    148                                                                 for $location in $MDIP/mdip:Location 
    149                                                                 return 
    150                                                                         element dgArea { 
    151                                                                                 element dgValidTerm {string($location)}, 
    152                                                                                 element dgValidTermID { 
    153                                                                                         element ParentListID {$gcmd_location_valids}, 
    154                                                                                         element TermID {escape-uri($location, true())} 
    155                                                                                 } 
    156                                                                         } 
    157                                                         } 
    158                                                 else (), 
    159                                                 if (exists($MDIP/mdip:Temporal_Coverage/mdip:Start_Date) or exists($MDIP/mdip:Paleo_Temporal_Coverage/mdip:Paleo_Start_Date) or exists($MDIP/mdip:Chronostratigraphic_Unit)) then 
    160                                                         element dgTemporalCoverage { 
    161                                                                 for $temporalcoverage in $MDIP/mdip:Temporal_Coverage[exists(mdip:Start_Date)] 
    162                                                                 return 
    163                                                                         element DateRange { 
    164                                                                                 element DateRangeStart {string($temporalcoverage/mdip:Start_Date)}, 
    165                                                                                 element DateRangeEnd {string($temporalcoverage/mdip:Stop_Date)} 
    166                                                                         }, 
    167                                                                 for $paleotemporalcoverage in $MDIP/mdip:Paleo_Temporal_Coverage[exists(mdip:Paleo_Start_Date)] 
    168                                                                 return 
    169                                                                         element DateRange { 
    170                                                                                 element DateRangeStart {string($paleotemporalcoverage/mdip:Paleo_Start_Date)}, 
    171                                                                                 element DateRangeEnd {string($paleotemporalcoverage/mdip:Paleo_Stop_Date)} 
    172                                                                         }, 
    173                                                                 for $chronostratigraphic in $MDIP/mdip:Chronostratigraphic_Unit 
    174                                                                 return 
    175                                                                         element dgChronostratigraphicTerm { 
    176                                                                                 element dgValidTerm {string($chronostratigraphic)}, 
    177                                                                                 element dgValidTermID { 
    178                                                                                         element ParentListID {$gcmd_paleotemporal_valids}, 
    179                                                                                         element TermID {escape-uri($chronostratigraphic, true())} 
    180                                                                                 } 
    181                                                                         } 
    182                                                         } 
    183                                                 else () 
    184                                         } 
    185                                 else () 
    186                         }, 
     162                                        } (: /dgDataCoverage :), 
     163                                        if (exists($MDIP/mdip:DatasetRefDate)) then 
     164                                                element dgDatasetProvenance {element dgDataPublicationData {data($MDIP/mdip:DatasetRefDate)}} 
     165                                        else () 
     166                        } (: /dgDataSummary :), 
    187167                        element dgDataRoles { 
    188                                 if (exists($MDIP/mdip:Data_Set_Citation/mdip:Dataset_Creator)) then 
     168                                if (exists($MDIP/mdip:Originator)) then 
    189169                                        element dgDataCreator { 
    190170                                                element dgMetadataID { 
     
    244224                                        } 
    245225                                } 
    246                         } 
    247                 }, 
     226                        } (: /dgDataRoles :) 
     227                } (: /dgDataEntity :), 
    248228                element dgStructuredKeyword { 
    249229                        element dgValidTerm {'d2b converted record'}, 
     
    253233                        } 
    254234                }, 
    255                 for $structuredKeywords in $MDIP/mdip:Keywords 
     235                for $structuredKeywords in $MDIP/mdip:TopicCategory 
    256236                return  
    257237                        element dgStructuredKeyword { 
    258                                 element dgValidTerm {$structuredKeywords}, 
     238                                element dgValidTerm {string($structuredKeywords/mdip:TopicCategory)}, 
    259239                                element dgValidTermID { 
    260                                         element ParentListID {$unknown_vocab_id}, 
    261                                         element TermID {escape-uri($structuredKeywords, true())} 
     240                                        element ParentListID {data($structuredKeywords/mdip:TopicCategoryVocab)}, 
     241                                        element TermID {data($structuredKeywords/mdip:TopicCategoryCode)} 
    262242                                } 
    263243                        }, 
    264                 for $structuredKeywords in $MDIP/mdip:ISO_Topic_Category 
     244                for $structuredKeywords in $MDIP/mdip:Subject 
    265245                return  
    266246                        element dgStructuredKeyword { 
    267                                 element dgValidTerm {string($structuredKeywords)}, 
     247                                element dgValidTerm {string($structuredKeywords/mdip:SubjectName)}, 
    268248                                element dgValidTermID { 
    269                                         element ParentListID {$gcmd_iso_topic_list}, 
    270                                         element TermID {escape-uri($structuredKeywords, true())} 
     249                                        element ParentListID {data($structuredKeywords/mdip:SubjectVocab)}, 
     250                                        element TermID {data($structuredKeywords/mdip:SubjectCode)} 
    271251                                } 
    272252                        }, 
     
    300280                else () 
    301281        } (: </dgMetadataRecord>:), 
    302         for $creator in distinct-values($MDIP/(mdip:Data_Set_Citation/mdip:Dataset_Creator | mdip:Originating_Center)) 
     282        for $creator in $MDIP/mdip:Originator 
    303283        return 
    304                 element dgOrganisation { 
     284                element dgOrganisation { (: needs expansion... :) 
    305285                        element dgMetadataID { 
    306286                                element schemeIdentifier {'NDG-B0'}, 
    307287                                element repositoryIdentifier {$input_repository}, 
    308                                 element localIdentifier {escape-uri(concat('generated_orgcit-', string($creator)), true())} 
    309                         }, 
    310                         element name {string($creator)}, 
    311                         element abbreviation {string($creator)}, 
     288                                element localIdentifier {escape-uri(concat('generated_orgcit-', string($creator/mdip:OriginatorName)), true())} 
     289                        }, 
     290                        element name {data($creator/mdip:OriginatorName)}, 
     291                        element abbreviation {data($creator/mdip:OriginatorName)}, 
    312292                        element contactDetails {''} 
    313293                } 
  • TI07-MOLES/trunk/v1Schema/Schemae/ndgmetadata1.3.xsd

    r1893 r1977  
    11<?xml version="1.0" encoding="UTF-8"?> 
    22<!-- edited with XMLSPY v5 rel. 4 U (http://www.xmlspy.com) by Kev O'Neill (CCLRC) --> 
    3 <xs:schema targetNamespace="http://ndg.nerc.ac.uk/moles" xmlns:moles="http://ndg.nerc.ac.uk/moles" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.03"> 
     3<xs:schema targetNamespace="http://ndg.nerc.ac.uk/moles" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:moles="http://ndg.nerc.ac.uk/moles" elementFormDefault="qualified" attributeFormDefault="unqualified" version="1.03"> 
    44        <xs:import namespace="http://www.w3.org/1999/xlink" schemaLocation="http://www.isotc211.org/2005/xlink/xlinks.xsd"/> 
    55        <!--version 1.03 of NDG metadata schema. Modifications from 1.02.05: 
     
    796796                                                                                        <xs:complexType> 
    797797                                                                                                <xs:sequence> 
    798                                                                                                         <xs:element name="dgFeatureType" minOccurs="0" maxOccurs="unbounded"/> 
     798                                                                                                        <xs:element name="dgFeatureType" type="moles:dgStructuredKeywordType" minOccurs="0" maxOccurs="unbounded"/> 
    799799                                                                                                </xs:sequence> 
    800800                                                                                        </xs:complexType> 
Note: See TracChangeset for help on using the changeset viewer.