source: Document_handling/trunk/XSLT/dif_to_ndg.xsl @ 222

Subversion URL: http://proj.badc.rl.ac.uk/svn/ndg/Document_handling/trunk/XSLT/dif_to_ndg.xsl@222
Revision 222, 9.6 KB checked in by selatham, 15 years ago (diff)

Upadted for version 1.1 of the NDG Metadata Model Schema

  • Property svn:eol-style set to native
  • Property svn:keywords set to Author Date Id Revision
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<!-- An XSLT transformation to create a skeleton NDG MetadataModel DataEntity document from an existing GCMD DIF record.
3      Do not run this if an NDG MDM document already exists!
4       If the original document contains just "DIF" a skeleton NDG MDM document is created with all mandatory fields but no content.
5      Author - Sue Latham 01/06/2004
6      Version 1.1 amended for changes to MDM schema as at v1.1
7-->
8<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
9        <xsl:output method="xml" encoding="UTF-8" doctype-system= "M:\Nerc DataGrid\MetaDataModel\ndgmetadata_v1.1.xsd"  indent="yes" />
10      <xsl:template match="/">
11                <xsl:apply-templates/>
12        </xsl:template>
13        <xsl:template match="DIF">
14                 <dgMetadata>
15                         <dgMetadataRecord>
16                                     <dgMetadataID>
17                                         <repositoryIdentifier> 
18                                                <xsl:value-of  select="substring-before(Entry_ID,':')"/>
19                                         </repositoryIdentifier>
20                                         <localIdentifier>     
21                                                <xsl:value-of select="substring-after(Entry_ID,':')"/>
22                                         </localIdentifier>                                             
23                                     </dgMetadataID>
24                                     <dgMetadataDescription>
25                                                <metadataDescriptionID>
26                                                         <repositoryIdentifier> 
27                                                         </repositoryIdentifier>
28                                                         <localIdentifier>     
29                                                         </localIdentifier>                                             
30                                                </metadataDescriptionID>
31                                                <metadataDescriptionLastUpdated>
32                                                        <xsl:choose>
33                                                                <xsl:when test="count(Last_DIF_Revision_Date)=0">1900-01-01T12:00:00</xsl:when>
34                                                                <xsl:otherwise>
35                                                                        <xsl:value-of  select="concat(Last_DIF_Revision_Date,'T12:00:00')"/>
36                                                                </xsl:otherwise>
37                                                        </xsl:choose>
38                                                </metadataDescriptionLastUpdated>
39                                                <abstract>
40                                                        <abstractText>
41                                                                <xsl:value-of select="Summary"></xsl:value-of>
42                                                        </abstractText> 
43                                               </abstract>
44                                </dgMetadataDescription>
45                             <name>
46                                        <xsl:value-of select="Entry_Title"/>
47                             </name>
48                             <abbreviation>     
49                             </abbreviation>
50                             <dgDataEntity>
51                                <dgDataSetType>
52                                        <dgMeasurement>
53                                        </dgMeasurement>       
54                                </dgDataSetType>
55                                <dgDataObjectType>
56                                        <dgBasicData>
57                                                <dgN-DimensionalDataset>
58                                                </dgN-DimensionalDataset>
59                                        </dgBasicData> 
60                                </dgDataObjectType>
61                                <dgDataGranule> 
62                                        <dataModelID>
63                                                <xsl:value-of select="Data_Center/Data_Set_ID"/>
64                                        </dataModelID>
65                                </dgDataGranule>
66                                <dgDataSummary> 
67                                        <xsl:for-each select="Parameters">
68                                                <dgParameterSummary>   
69                                                        <IsOutput>true</IsOutput>
70                                                        <dgRangeDataParameter> 
71                                                                <HighValue></HighValue>
72                                                                <LowValue></LowValue>           
73                                                                <dgStandardUnit>       
74                                                                        <dgValidTerm>   
75                                                                        </dgValidTerm>
76                                                                        <dgValidTermID>
77                                                                                <ParentListID>
78                                                                                </ParentListID>
79                                                                                <TermID><xsl:number  value="1"/></TermID>
80                                                                        </dgValidTermID>
81                                                                </dgStandardUnit>
82                                                        </dgRangeDataParameter>                                         
83                                                        <dgStdParameterMeasured>
84                                                                <dgValidTerm>   
85                                                                        <xsl:value-of select="Category"/>
86                                                                </dgValidTerm>
87                                                                <dgValidTermID>
88                                                                        <ParentListID>http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html</ParentListID>
89                                                                        <TermID><xsl:number  value="1"/></TermID>
90                                                                </dgValidTermID>
91                                                                <dgValidSubterm>
92                                                                        <dgValidTerm>   
93                                                                                <xsl:value-of select="Topic"/>
94                                                                        </dgValidTerm>
95                                                                        <dgValidTermID>
96                                                                                <ParentListID>http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html</ParentListID>
97                                                                                <TermID><xsl:number  value="1"/></TermID>
98                                                                        </dgValidTermID>
99                                                                                <dgValidSubterm>
100                                                                                        <dgValidTerm>   
101                                                                                                <xsl:value-of select="Term"/>
102                                                                                        </dgValidTerm>
103                                                                                        <dgValidTermID>
104                                                                                                <ParentListID>http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html</ParentListID>
105                                                                                                <TermID><xsl:number  value="1"/></TermID>
106                                                                                        </dgValidTermID>
107                                                                                        <dgValidSubterm>
108                                                                                                <dgValidTerm>   
109                                                                                                        <xsl:value-of select="Variable"/>
110                                                                                                </dgValidTerm>
111                                                                                                <dgValidTermID>
112                                                                                                        <ParentListID>http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html</ParentListID>
113                                                                                                        <TermID><xsl:number  value="1"/></TermID>
114                                                                                                </dgValidTermID>                                                                                                                               
115                                                                                                <ListLevel>4</ListLevel>
116                                                                                        </dgValidSubterm>                                                                               
117                                                                                        <ListLevel>3</ListLevel>
118                                                                                </dgValidSubterm>
119                                                                        <ListLevel>2</ListLevel>
120                                                                </dgValidSubterm>
121                                                                <ListLevel>1</ListLevel>
122                                                        </dgStdParameterMeasured>
123                                                        <ParameterName>
124                                                                <xsl:value-of select="Detailed_Variable"/>
125                                                        </ParameterName>
126                                                        <ParameterAbbreviation>
127                                                                <xsl:value-of select="Detailed_Variable"/>
128                                                        </ParameterAbbreviation>
129                                                        <ParameterLevel>0</ParameterLevel>
130                                                </dgParameterSummary>
131                                        </xsl:for-each> 
132                                        <!-- where there are no parameters in the DIf create one empty dgParameterSummary -->
133                                        <xsl:if test="count(Parameters)=0">
134                                                <dgParameterSummary>   
135                                                        <IsOutput>true</IsOutput>
136                                                        <dgRangeDataParameter> 
137                                                                <HighValue></HighValue>
138                                                                <LowValue></LowValue>   
139                                                                <dgStandardUnit>       
140                                                                        <dgValidTerm>   
141                                                                        </dgValidTerm>
142                                                                        <dgValidTermID>
143                                                                                <ParentListID>
144                                                                                </ParentListID>
145                                                                                <TermID><xsl:number  value="1"/></TermID>
146                                                                        </dgValidTermID>
147                                                                </dgStandardUnit>
148                                                        </dgRangeDataParameter> 
149                                                        <dgStdParameterMeasured>
150                                                                <dgValidTerm>   
151                                                                        <xsl:value-of select="Category"/>
152                                                                </dgValidTerm>
153                                                                <dgValidTermID>
154                                                                        <ParentListID>http://gcmd.gsfc.nasa.gov/Resources/valids/gcmd_parameters.html</ParentListID>
155                                                                        <TermID><xsl:number  value="1"/></TermID>
156                                                                </dgValidTermID>
157                                                        </dgStdParameterMeasured>
158                                                        <ParameterName></ParameterName>
159                                                        <ParameterAbbreviation></ParameterAbbreviation>
160                                                        <ParameterLevel>0</ParameterLevel>
161                                                </dgParameterSummary>                           
162                                        </xsl:if>
163                                        <xsl:if test="count(Temporal_Coverage) != 0 or count(Spatial_Coverage) !=0">
164                                                <dgDataCoverage>
165                                                <xsl:if test="count(Spatial_Coverage/Southernmost_Latitude) != 0">
166                                                        <dgSpatialCoverage>
167                                                                <BoundingBox>
168                                                                        <LimitNorth><xsl:value-of select="Spatial_Coverage/Northernmost_Latitude" ></xsl:value-of></LimitNorth>
169                                                                        <LimitSouth><xsl:value-of select="Spatial_Coverage/Southernmost_Latitude" ></xsl:value-of></LimitSouth>
170                                                                        <LimitWest><xsl:value-of select="Spatial_Coverage/Westernmost_Longitude" ></xsl:value-of></LimitWest>
171                                                                        <LimitEast><xsl:value-of select="Spatial_Coverage/Easternmost_Longitude" ></xsl:value-of></LimitEast>
172                                                                </BoundingBox>
173                                                        </dgSpatialCoverage>
174                                                </xsl:if>                                                                                               
175                                                <xsl:if test="count(Temporal_Coverage) != 0">
176                                                        <dgTemporalCoverage>
177                                                                <DateRange>
178                                                                        <DateRangeStart><xsl:value-of select="Temporal_Coverage/Start_Date" ></xsl:value-of></DateRangeStart>
179                                                                        <DateRangeEnd><xsl:value-of select="Temporal_Coverage/Stop_Date" ></xsl:value-of></DateRangeEnd>
180                                                                </DateRange>
181                                                        </dgTemporalCoverage>
182                                                </xsl:if>
183                                                </dgDataCoverage>
184                                        </xsl:if>
185                                </dgDataSummary>
186                                <dgDataRoles>
187                                        <dgDataCurator> 
188                                                <dgMetadataID> 
189                                                         <repositoryIdentifier> 
190                                                        </repositoryIdentifier>
191                                                        <localIdentifier>       
192                                                        </localIdentifier>     
193                                                </dgMetadataID>
194                                                <roleName>Data Curator</roleName>
195                                                <abbreviation>DC</abbreviation>
196                                                <contactDetails>
197                                                        <eMail><xsl:value-of select="Data_Center/Personnel/Email"></xsl:value-of></eMail>
198                                                        <fax><xsl:value-of select="Data_Center/Personnel/Fax"></xsl:value-of></fax>
199                                                        <telephone><xsl:value-of select="Data_Center/Personnel/Phone"></xsl:value-of></telephone>
200                                                        <address>
201                                                                <addressline><xsl:value-of select="Data_Center/Personnel/Address"></xsl:value-of></addressline>
202                                                                <city></city>
203                                                                <postcode></postcode>
204                                                                <country></country>                                                             
205                                                        </address>
206                                                        <URI><xsl:value-of select="Data_Center/Data_Center_URL"></xsl:value-of></URI>
207                                                </contactDetails>
208                                        </dgDataCurator>
209                                </dgDataRoles>
210                             </dgDataEntity>
211                             <xsl:for-each select="Keyword">
212                                     <dgStructuredKeyword>     
213                                        <dgValidTerm><xsl:value-of select="."/>
214                                        </dgValidTerm>
215                                        <dgValidTermID>
216                                                <ParentListID>http://gcmd.gsfc.nasa.gov/Resources/valids/keyword_list.html</ParentListID>
217                                                <TermID><xsl:number  value="1"/></TermID>
218                                        </dgValidTermID>       
219                                     </dgStructuredKeyword>                 
220                                </xsl:for-each>
221                                <xsl:if test="count(Keyword) = 0">
222                                         <dgStructuredKeyword> 
223                                                <dgValidTerm></dgValidTerm>
224                                                <dgValidTermID>
225                                                        <ParentListID></ParentListID>
226                                                        <TermID>1</TermID>
227                                                </dgValidTermID>       
228                                         </dgStructuredKeyword>         
229                                </xsl:if>                     
230                         </dgMetadataRecord>
231                   </dgMetadata>
232        </xsl:template>   
233<!--    <xsl:apply-templates select="Entry_ID"/>
234        </xsl:template>
235        <xsl:template match="Entry_ID">
236       </xsl:template> -->
237</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.