Changeset 228 for Document_handling


Ignore:
Timestamp:
24/02/05 16:49:45 (15 years ago)
Author:
selatham
Message:

Amended for V1.02 of NDB MetadataModel? schema and some extra fields.
New one-off xsls plus scripts to run them.

Location:
Document_handling/trunk/XSLT
Files:
8 added
1 edited

Legend:

Unmodified
Added
Removed
  • Document_handling/trunk/XSLT/ndg_to_dif.xsl

    r227 r228  
    77     Updated 01/09/2004 - New version(1.1) of NDG_B schema and change to using B-stub. 
    88     Updated 01/09/2004 - generalise the NDG_B service URL. 
     9     Updated 01/02/2005 - New version(1.02 aka 1.2) of NDG_B schema. Plus add spatio and temporal fields. 
    910--> 
    1011<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 
    1112        <xsl:output method="xml" encoding="UTF-8"  indent="yes"/> 
     13         
     14        <!-- Keys not really needed when using B-Stub as input. So comment this bit out. 
    1215        <xsl:key name="dgMetadatakey" match="//dgMetadata/dgMetadataRecord" use="concat(dgMetadataID/repositoryIdentifier, dgMetadataID/localIdentifier)"/> 
    13         <!-- change this bit about organisation key and person key when I know where they will appear in the b-stub. Will keys be needed?--> 
    1416        <xsl:key name="dgOrganisationkey" match="//dgMetadata/dgOrganisation" use="dgMetadataID/localIdentifier"/> 
    15         <xsl:key name="dgPersonkey" match="//dgMetadata/dgPerson" use="dgMetadataID/localIdentifier"/> 
     17        <xsl:key name="dgPersonkey" match="//dgMetadata/dgPerson" use="dgMetadataID/localIdentifier"/> --> 
    1618 
    1719        <xsl:template match="/"> 
     
    2426                <DIF> 
    2527                <xsl:apply-templates select="dgDataEntity"/> 
    26                 <xsl:apply-templates select="dgDataProvenance"/> 
     28                <xsl:apply-templates select="DataProvenance"/> 
    2729                </DIF> 
    2830        </xsl:template> 
    2931        <xsl:template match="dgDataEntity"> 
    3032                <xsl:variable name="Nameofdataset" select="preceding-sibling::name"/> 
    31                 <xsl:variable name="DataEntityID" select="concat('/',preceding-sibling::dgMetadataID/repositoryIdentifier,'/',preceding-sibling::dgMetadataID/localIdentifier)"/> 
     33                <xsl:variable name="DataEntityID" select="concat(preceding-sibling::dgMetadataID/repositoryIdentifier,':', preceding-sibling::dgMetadataID/schemeIdentifier,':', preceding-sibling::dgMetadataID/localIdentifier)"/> 
    3234                        <Entry_ID> 
    3335                                <xsl:value-of select="$DataEntityID"/> 
     
    4446                                                <Data_Set_Citation> 
    4547                                                        <xsl:choose> 
    46                                                                 <xsl:when test="dgOrganisationID"> 
    47                                                                         <xsl:variable name="Orgkey" select="dgOrganisationID/localIdentifier"/> 
    48                                                                         <xsl:for-each select="key('dgOrganisationkey', $Orgkey)"> 
     48                                                                <xsl:when test="dgOrganisation"> 
     49                                                                <!--    <xsl:variable name="Orgkey" select="dgOrganisationID/localIdentifier"/> 
     50                                                                        <xsl:for-each select="key('dgOrganisationkey', $Orgkey)"> --> 
    4951                                                                                <Dataset_Creator> 
    50                                                                                         <xsl:value-of select="name"/> 
     52                                                                                        <xsl:value-of select="dgOrganisation/name"/> 
    5153                                                                                </Dataset_Creator> 
    52                                                                         </xsl:for-each> 
    53                                                                 </xsl:when> 
    54                                                                 <xsl:when test="dgPersonID"> 
    55                                                                         <xsl:variable name="Personkey" select="dgPersonID/localIdentifier"/> 
    56                                                                         <xsl:for-each select="key('dgPersonkey', $Personkey)"> 
     54                                                                </xsl:when> 
     55                                                                <xsl:when test="dgPerson"> 
     56                                                                <!--    <xsl:variable name="Personkey" select="dgPersonID/localIdentifier"/> 
     57                                                                        <xsl:for-each select="key('dgPersonkey', $Personkey)"> --> 
    5758                                                                                <Dataset_Creator> 
    58                                                                                         <xsl:value-of select="concat(name/initials,' ',name/familyName)"/> 
     59                                                                                        <xsl:value-of select="concat(dgPerson/name/initials,' ',dgPerson/name/familyName)"/> 
    5960                                                                                </Dataset_Creator> 
    60                                                                         </xsl:for-each> 
    6161                                                                </xsl:when> 
    6262                                                        </xsl:choose> 
     
    103103                                        </xsl:if> 
    104104                        </xsl:for-each> 
     105                         
     106                        <!-- Put in temporal and spatial coverage--> 
     107                        <xsl:for-each select="dgDataSummary/dgDataCoverage/dgSpatialCoverage/BoundingBox"> 
     108                                <Spatial_Coverage> 
     109                                        <Southernmost_Latitude><xsl:value-of select="./LimitSouth"></xsl:value-of></Southernmost_Latitude> 
     110                                        <Northernmost_Latitude><xsl:value-of select="./LimitNorth"></xsl:value-of></Northernmost_Latitude> 
     111                                        <Westernmost_Longitude><xsl:value-of select="./LimitWest"></xsl:value-of></Westernmost_Longitude> 
     112                                        <Easternmost_Longitude><xsl:value-of select="./LimitEast"></xsl:value-of></Easternmost_Longitude>                                
     113                                </Spatial_Coverage>                      
     114                        </xsl:for-each> 
     115                        <xsl:for-each select="dgDataSummary/dgDataCoverage/dgSpatioTemporalCoverage/dgSpatioTemporalRange/dgSpatialCoverage/BoundingBox"> 
     116                                <Spatial_Coverage> 
     117                                        <Southernmost_Latitude><xsl:value-of select="./LimitSouth"></xsl:value-of></Southernmost_Latitude> 
     118                                        <Northernmost_Latitude><xsl:value-of select="./LimitNorth"></xsl:value-of></Northernmost_Latitude> 
     119                                        <Westernmost_Longitude><xsl:value-of select="./LimitWest"></xsl:value-of></Westernmost_Longitude> 
     120                                        <Easternmost_Longitude><xsl:value-of select="./LimitEast"></xsl:value-of></Easternmost_Longitude>                                
     121                                </Spatial_Coverage>                      
     122                        </xsl:for-each> 
     123 
     124                         
     125                        <xsl:for-each select="dgDataSummary/dgDataCoverage/dgTemporalCoverage/DateRange"> 
     126                                        <Temporal_Coverage> 
     127                                        <Start_Date><xsl:value-of select="./DateRangeStart"></xsl:value-of></Start_Date> 
     128                                        <Stop_Date><xsl:value-of select="./DateRangeEnd"></xsl:value-of></Stop_Date> 
     129                                </Temporal_Coverage> 
     130                        </xsl:for-each> 
     131                        <xsl:for-each select="dgDataSummary/dgDataCoverage/dgSpatioTemporalCoverage/dgSpatioTemporalRange/dgTemporalCoverage/DateRange"> 
     132                                        <Temporal_Coverage> 
     133                                        <Start_Date><xsl:value-of select="./DateRangeStart"></xsl:value-of></Start_Date> 
     134                                        <Stop_Date><xsl:value-of select="./DateRangeEnd"></xsl:value-of></Stop_Date> 
     135                                </Temporal_Coverage> 
     136                        </xsl:for-each> 
    105137 
    106138                        <xsl:for-each select="RelatedDeployment"> 
    107                         <!-- not needed with everything already in b-stub record  
     139                        <!-- following not needed with everything already in b-stub record  
    108140                                <xsl:variable name="RDkey" select="concat( activity/ActivityID/repositoryIdentifier, ActivityID/localIdentifier)"/> 
    109141                                <xsl:for-each select="key('dgMetadatakey', $RDkey)"> --> 
     
    129161                                                <Data_Center> 
    130162                                                        <xsl:choose> 
    131                                                                 <xsl:when test="dgOrganisationID"> 
    132                                                                         <xsl:variable name="Orgkey" select="dgOrganisationID/localIdentifier"/> 
    133                                                                         <xsl:for-each select="key('dgOrganisationkey', $Orgkey)"> 
     163                                                                <xsl:when test="dgOrganisation"> 
     164                                                                <!--    <xsl:variable name="Orgkey" select="dgOrganisationID/localIdentifier"/> 
     165                                                                        <xsl:for-each select="key('dgOrganisationkey', $Orgkey)"> --> 
    134166                                                                                <Data_Center_Name> 
    135167                                                                                        <Short_Name> 
    136                                                                                                 <xsl:value-of select="abbreviation"/> 
     168                                                                                                <xsl:value-of select="dgOrganisation/abbreviation"/> 
    137169                                                                                        </Short_Name> 
    138170                                                                                        <Long_Name> 
    139                                                                                                 <xsl:value-of select="name"/> 
     171                                                                                                <xsl:value-of select="dgOrganisation/name"/> 
    140172                                                                                        </Long_Name> 
    141173                                                                                </Data_Center_Name> 
    142174                                                                                <Data_Center_URL> 
    143                                                                                         <xsl:value-of select="contactDetails/URI"/> 
     175                                                                                        <xsl:value-of select="dgOrganisation/contactDetails/URI"/> 
    144176                                                                                </Data_Center_URL> 
    145                                                                         </xsl:for-each> 
    146                                                                 </xsl:when> 
    147                                                                 <xsl:when test="dgPersonID"> 
    148                                                                         <xsl:variable name="Personkey" select="dgPersonID/localIdentifier"/> 
    149                                                                         <xsl:for-each select="key('dgPersonkey', $Personkey)"> 
     177                                                                </xsl:when> 
     178                                                                <xsl:when test="dgPerson"> 
     179                                                                <!--    <xsl:variable name="Personkey" select="dgPersonID/localIdentifier"/> 
     180                                                                        <xsl:for-each select="key('dgPersonkey', $Personkey)"> --> 
    150181                                                                                <Data_Center_Name> 
    151182                                                                                        <Short_Name> 
    152                                                                                                 <xsl:value-of select="abbreviation"/> 
     183                                                                                                <xsl:value-of select="dgPerson/abbreviation"/> 
    153184                                                                                        </Short_Name> 
    154185                                                                                        <Long_Name> 
    155                                                                                                 <xsl:value-of select="name"/> 
     186                                                                                                <xsl:value-of select="dgPerson/name"/> 
    156187                                                                                        </Long_Name> 
    157188                                                                                </Data_Center_Name> 
    158189                                                                                <Data_Center_URL> 
    159                                                                                         <xsl:value-of select="contactDetails/URI"/> 
     190                                                                                        <xsl:value-of select="dgPerson/contactDetails/URI"/> 
    160191                                                                                </Data_Center_URL> 
    161                                                                         </xsl:for-each> 
    162192                                                                </xsl:when> 
    163193                                                                <xsl:otherwise> 
     
    169199                                                        <xsl:for-each select="//dgMetadataRecord/dgDataEntity/dgDataGranule">                                                    
    170200                                                                <Data_Set_ID> 
    171                                                                         <xsl:value-of select="./dataModelID"/> 
     201                                                                        <xsl:value-of select="concat(./dataModelID/repositoryIdentifier, ':', ./dataModelID/schemeIdentifier, ':', ./dataModelID/localIdentifier)"/> 
    172202                                                                </Data_Set_ID> 
    173203                                                        </xsl:for-each> 
     
    201231                        <xsl:for-each select="//dgMetadataRecord/dgDataEntity/dgDataGranule"> 
    202232                                <xsl:choose> 
    203                                         <xsl:when test="starts-with(./dataModelID, '/NDG_A_')"> 
     233                                        <xsl:when test="./dataModelID/schemeIdentifier='NDG-A0'"> 
    204234                                                <Related_URL> 
    205235                                                        <URL_Content_Type>NDG_A_SERVICE</URL_Content_Type> 
     
    208238                                                </Related_URL> 
    209239                                        </xsl:when> 
    210                                         <xsl:when test="starts-with(./dataModelID, '/CDML_')"> 
     240                                        <xsl:when test="./dataModelID/schemeIdentifier= 'CDML-0'"> 
    211241                                                <Related_URL> 
    212242                                                        <URL_Content_Type>NDG_A_SERVICE</URL_Content_Type> 
     
    218248                        </xsl:for-each> 
    219249        </xsl:template> 
    220         <xsl:template match="dgDataProvenance"> 
     250        <xsl:template match="DataProvenance"> 
    221251                <xsl:if test="./RecordCreation"> 
    222252                        <DIF_Creation_Date> 
     
    230260                        <DIF_Revision_History> 
    231261                        <xsl:for-each select="./RecordUpdate">   
    232                                         <xsl:value-of select="./UpdateDate"></xsl:value-of> 
     262                                        <xsl:value-of select="concat(./UpdateDate, ' ')"></xsl:value-of> 
    233263                                        <xsl:for-each select="./UpdateSummary"> 
    234264                                                        <xsl:value-of select="."></xsl:value-of> 
Note: See TracChangeset for help on using the changeset viewer.