<?xml version="1.0" encoding="UTF-8" ?>

<!--
   Name:NonISOKeywords.xsl   
   Author:  Matthew J. McCready
   Date:  20111012
   Description:  XSLT stylesheet that transforms the values stored in the Theme_Keyword and Place_Keyword MIF elements to the gmd:descriptiveKeywords element. This        stylesheet consists of three templates: NonISOKeywords, NonThemeISOKeywords and PlaceKeywords. The NonISOKeywords template is the template called by the               11_gmd:identificationInfo.xsl stylesheet. This template consists of two other templates: NonThemeISOKeywords and PlaceKeywords. The NonThemeISOKeywords template   takes all the values in the MIF/Theme_Keyword element that are not ISO Topic Category Keywords and transforms them into the                                            gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString ISO element. It also provides the correct value of 'theme' for the MD_KeywordTypeCode codelist. The PlaceKeywords template takes all the values in the MIF/Place_Keyword  element and transforms it into the                                                           gmd:descriptiveKeywords/gmd:MD_Keywords/gmd:keyword/gco:CharacterString ISO element. It also provides the correct value of 'place' for the MD_KeywordTypeCode codelist
   Modification History:
      Initial   Date      Change Request ID   Description

-->

<xsl:stylesheet version = "1.0"
   xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
   xmlns:gmd="http://www.isotc211.org/2005/gmd"
   xmlns:gco="http://www.isotc211.org/2005/gco" 
>
<xsl:output method="xml" version="1.0" encoding="ISO-8859-1" indent="yes"/>
<xsl:variable name ="MetDate"   select= "//metadata/metainfo/metd"/>
<!-- <xsl:variable name="SDTSPntVot" select="//metadata/spdoinfo/ptvctinf/sdtsterm/sdtstype"/> -->

<xsl:template name="NonISOKeywords">
        <xsl:call-template name="NonThemeISOKeywords"/>
        <xsl:call-template name="PlaceKeywords"/>
</xsl:template>

<xsl:template name="NonThemeISOKeywords">
<xsl:variable name="CodeListLoc">http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode</xsl:variable>
<xsl:variable name="NonISOKeywordsTheme" select="//MIF/Theme_Keyword_Thesaurus"/>

<xsl:for-each select="//MIF/Theme_Keyword_Thesaurus" > <!-- group-by="@gid1" -->
<xsl:sort select="current-grouping-key()" data-type="number"/>
<xsl:sort select="current-grouping-key()" data-type="text"/>

<xsl:variable name="NonISOKeywordsThemeA" select="./Theme_Keyword"/>


<xsl:if test="$NonISOKeywordsThemeA !='ISO 19115 Topic Categories'">

 
<xsl:element name="gmd:descriptiveKeywords">
<xsl:element name="gmd:MD_Keywords">
  <xsl:for-each select="//MIF/Theme_Keyword">
<!-- here -->
 <xsl:variable name="ThemeKey" select="."/> 
<!--

<xsl:if test="$ThemeKey !='farming'">
<xsl:if test="$ThemeKey !='biota'">
<xsl:if test="$ThemeKey !='boundaries'">
<xsl:if test="$ThemeKey !='transportation' ">
<xsl:if test="$ThemeKey !='climatologyMeteorologyAtmosphere' ">
<xsl:if test="$ThemeKey !='economy' ">
<xsl:if test="$ThemeKey !='elevation'">
<xsl:if test="$ThemeKey !='environment'">
<xsl:if test="$ThemeKey !='geoscientificInformation'">
<xsl:if test="$ThemeKey !='health'">
<xsl:if test="$ThemeKey !='imageryBaseMapsEarthCover'">
<xsl:if test="$ThemeKey !='intelligenceMilitary'">
<xsl:if test="$ThemeKey !='inlandWaters'">
<xsl:if test="$ThemeKey !='location'">
<xsl:if test="$ThemeKey !='oceans'">
<xsl:if test="$ThemeKey !='planningCadastre'">
<xsl:if test="$ThemeKey !='society'">
<xsl:if test="$ThemeKey !='structure'">
<xsl:if test="$ThemeKey !='utilitiesCommunication'">
<xsl:element name="gmd:keyword">
<xsl:element name="gco:CharacterString"><xsl:value-of select="."/>   </xsl:element> 
</xsl:element> 
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>
</xsl:if>

</xsl:for-each>

<xsl:element name="gmd:type">
xsl:element name="gmd:MD_KeywordTypeCode">
<xsl:attribute name="codeList">http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode</xsl:attribute>
<xsl:attribute name="codeListValue">theme</xsl:attribute>
<xsl:attribute name="codeSpace">005</xsl:attribute>
theme
</xsl:element>
</xsl:element>

<xsl:element name="gmd:thesaurusName">
<xsl:element name="gmd:CI_Citation">

<xsl:element name="gmd:title">
<xsl:element name="gco:CharacterString"><xsl:value-of select="$NonISOKeywordsThemeA"/></xsl:element>
</xsl:element>

<xsl:element name="gmd:date">
<xsl:attribute name="gco:nilReason">unknown</xsl:attribute>
</xsl:element>

</xsl:element>
</xsl:element> -->

<!-- here -->
</xsl:for-each>
</xsl:element>  
</xsl:element> 
</xsl:if> 
<!-- </xsl:if> -->
</xsl:for-each>
</xsl:template>

<xsl:template name="PlaceKeywords">
<xsl:for-each select="//MIF/Place_Keyword">
<xsl:variable name="PlaceThes" select="./Place_Keyword"/>
<xsl:element name="gmd:descriptiveKeywords">
<xsl:element name="gmd:MD_Keywords">
<xsl:for-each select="//MIF/Place_Keyword">

<xsl:element name="gmd:keyword">
<xsl:element name="gco:CharacterString"><xsl:value-of select="."/>   </xsl:element> <!-- gco:CharacterString   ($ThemeKey !='utilitiesCommunication')-->
</xsl:element> <!-- gmd:keyword -->
</xsl:for-each><!-- //metadata/idinfo/keywords/place/placekey -->
<xsl:element name="gmd:type">
<xsl:element name="gmd:MD_KeywordTypeCode">
<xsl:attribute name="codeList">http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#MD_KeywordTypeCode</xsl:attribute>
<xsl:attribute name="codeListValue">place</xsl:attribute>
<xsl:attribute name="codeSpace">002</xsl:attribute>
place
</xsl:element><!-- gmd:MD_KeywordTypeCode -->
</xsl:element><!-- gmd:type -->

<xsl:element name="gmd:thesaurusName">
<xsl:element name="gmd:CI_Citation">
<xsl:element name="gmd:title">
<xsl:element name="gco:CharacterString"><xsl:value-of select="$PlaceThes"/></xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:title -->

<xsl:element name="gmd:date">
<xsl:attribute name="gco:nilReason">unknown</xsl:attribute>
</xsl:element><!-- gmd:date -->

</xsl:element><!-- gmd:CI_Citation -->
</xsl:element><!-- gmd:thesaurusName -->
<!-- </xsl:for-each> --><!-- //metadata/idinfo/keywords/place/placekey -->
</xsl:element><!-- gmd:descriptiveKeywords -->
</xsl:element><!-- gmd:MD_Keywords -->
</xsl:for-each><!-- //metadata/idinfo/keywords/place -->
</xsl:template>

</xsl:stylesheet>

