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

<!--
   Name:  13_gmd:distributionInfo.xsl
   Author:  Matthew J. McCready
   Date:  20110611
   Description:  XSLT stylesheet that transforms Section 6 of an
                 FGDC format file into the gmd:distributionInfo ISO file. This stylesheet is called by the master stylesheet.
                
   Modification History:
      Initial   Date      Change Request ID   Description
      MMC       07/07/2011                    Inserted a choose structure for the gmd:version element. This element relates to either the formname or formver
                                               element in the CSDGM. In the CSDGM, a user must choose from only one of the previously mentioned elements.  
      MMC       10/27/2011                    Inserted an otherwise element for the gmd:version element for FGDC files without a formname or formver
                                               element. For this case, this element will now have a gco:nilReason attribute with a value of 'Unknown' 
      MMC       11/01/2011                   Inserted a choose structure for the gmd:electronicMailAddress element. This was done so that if the element does not exist                                                                                         in the original FGDC file, it will appear in the ISO file with the "gco:nilReason attribute equal to 'missing'. 
      MMC       03/07/2012                   Inserted the gmd:fileDecompressionTechnique element so that File Decompression Technique information from Section 6 of the FGDC Standard
                                              can be recorded.
-->

<!-- 
List of Related Templates and associated stylesheets
Template                                     Stylesheet/File
MD_MediumFormatCode                          MD_MediumFormatCode.xsl
-->

<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:template name="distributionInfo" match="/">

<xsl:element name="gmd:distributionInfo">
<xsl:element name="gmd:MD_Distribution">
<xsl:element name="gmd:distributionFormat">
<xsl:element name="gmd:MD_Format">

<xsl:element name="gmd:name">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/stdorder/digform/digtinfo/formname"/> </xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:name -->

<!--<xsl:if test="/metadata/distinfo/stdorder/digform/digtinfo/filedec">
<xsl:element name="gmd:fileDecompressionTechnique">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/stdorder/digform/digtinfo/filedec"/> </xsl:element>
</xsl:element>
</xsl:if > -->


<xsl:choose>
<xsl:when test="/metadata/distinfo/stdorder/digform/digtinfo/formvern">
<xsl:comment> In the when </xsl:comment>
<xsl:element name="gmd:version">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/stdorder/digform/digtinfo/formvern"/></xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:version -->
</xsl:when>

<xsl:when test="/metadata/distinfo/stdorder/digform/digtinfo/formverd">
<xsl:element name="gmd:version">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/stdorder/digform/digtinfo/formverd"/></xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:amendmentNumber -->

<!-- <xsl:comment> Checking for File Decompression Technique </xsl:comment>
<xsl:if test="/metadata/distinfo/stdorder/digform/digtinfo/filedec">
<xsl:element name="gmd:fileDecompressionTechnique">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/stdorder/digform/digtinfo/filedec"/> </xsl:element>
</xsl:element>
</xsl:if> -->

</xsl:when>


<xsl:otherwise>
<!-- <xsl:comment> In the default </xsl:comment> -->
<xsl:element name="gmd:version">
<xsl:attribute name="gco:nilReason">unknown</xsl:attribute>
</xsl:element>
</xsl:otherwise>

</xsl:choose>

<!-- <xsl:comment> Checking for File Decompression Technique </xsl:comment> -->
<xsl:if test="/metadata/distinfo/stdorder/digform/digtinfo/filedec">
<xsl:element name="gmd:fileDecompressionTechnique">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/stdorder/digform/digtinfo/filedec"/> </xsl:element>
</xsl:element>
</xsl:if>

</xsl:element><!-- gmd:MD_Format -->
</xsl:element><!-- gmd:distributionFormat -->

<xsl:element name="gmd:distributor">
<xsl:element name="gmd:MD_Distributor">
<xsl:element name="gmd:distributorContact">

<xsl:element name="gmd:CI_ResponsibleParty">

<xsl:element name="gmd:organisationName">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo[1]/distrib[1]/cntinfo[1]/cntorgp/cntorg"/> </xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:organisationName -->

<xsl:element name="gmd:contactInfo">
<xsl:element name="gmd:CI_Contact">
<xsl:element name="gmd:phone">

<xsl:element name="gmd:CI_Telephone">

<xsl:element name="gmd:voice">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo[1]/distrib/cntinfo/cntvoice"/></xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:voice -->

<xsl:element name="gmd:facsimile">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo[1]/distrib/cntinfo/cntfax"/></xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:facsimile -->

</xsl:element><!-- gmd:CI_Telephone -->
</xsl:element><!-- gmd:phone -->

<xsl:element name="gmd:address">
<xsl:element name="gmd:CI_Address">

<xsl:element name="gmd:deliveryPoint">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/distrib/cntinfo/cntaddr/address"/> </xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:deliveryPoint -->

<xsl:element name="gmd:city">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/distrib/cntinfo/cntaddr/city"/> </xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:city -->

<xsl:element name="gmd:administrativeArea">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/distrib/cntinfo/cntaddr/state"/> </xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:administrativeArea -->

<xsl:element name="gmd:postalCode">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/distrib/cntinfo/cntaddr/postal"/> </xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:postalCode -->

<xsl:element name="gmd:country">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/distrib/cntinfo/cntaddr/country"/> </xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:country -->

<!-- <xsl:choose> -->
<xsl:variable name="distEmail" select="/metadata/distinfo/distrib/cntinfo/cntemail"/>
<xsl:variable name="distEmailLength" select="string-length($distEmail)"/>
<xsl:choose>
<xsl:when test="$distEmailLength &gt; 0" >
<xsl:element name="gmd:electronicMailAddress">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/distrib/cntinfo/cntemail"/> </xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:country -->
</xsl:when>

<xsl:otherwise>
<xsl:element name="gmd:electronicMailAddress">
<xsl:attribute name="gco:nilReason">missing</xsl:attribute>
</xsl:element>
</xsl:otherwise>
</xsl:choose>

</xsl:element><!-- gmd:CI_Address -->
</xsl:element><!-- gmd:address -->

</xsl:element><!-- gmd:CI_Contact -->
</xsl:element><!-- gmd:contactInfo -->

<xsl:element name="gmd:role">
<xsl:element name="gmd:CI_RoleCode">
<xsl:attribute name="codeList">http://www.isotc211.org/2005/resources/Codelist/gmxCodelists.xml#CI_RoleCode </xsl:attribute>
<xsl:attribute name="codeListValue">distributor </xsl:attribute>
<xsl:attribute name="codeSpace">005 </xsl:attribute>distributor
</xsl:element><!-- gmd:CI_RoleCode -->
</xsl:element><!-- gmd:role -->

</xsl:element><!-- gmd:CI_ResponsibleParty -->

</xsl:element><!-- gmd:distributorContact --> 

<xsl:element name="gmd:distributionOrderProcess">
<xsl:element name="gmd:MD_StandardOrderProcess">

<xsl:element name="gmd:fees">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/stdorder/fees"/> </xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:fees -->

<xsl:element name="gmd:orderingInstructions">
<xsl:element name="gco:CharacterString"><xsl:value-of select="/metadata/distinfo/stdorder/ordering"/> </xsl:element><!-- gco:CharacterString -->
</xsl:element><!-- gmd:orderingInstructions -->

</xsl:element><!-- gmd:MD_StandardOrderProcess -->
</xsl:element><!-- gmd:distributionOrderProcess -->

</xsl:element><!-- gmd:MD_Distributor -->
</xsl:element><!-- gmd:distributor -->

<!-- online -->
<xsl:element name="gmd:transferOptions">
<xsl:element name="gmd:MD_DigitalTransferOptions">

<xsl:element name="gmd:onLine">
<xsl:element name="gmd:CI_OnlineResource">
<xsl:element name="gmd:linkage">
<xsl:element name="gmd:URL"><xsl:value-of select="/metadata/distinfo/stdorder/digform/digtopt/onlinopt/computer/networka/networkr"/></xsl:element><!-- gmd:URL --> 
</xsl:element><!-- gmd:linkage -->
</xsl:element><!-- gmd:CI_OnlineResource -->
</xsl:element><!-- gmd:onLine -->

</xsl:element><!-- gmd:MD_DigitalTransferOptions -->
</xsl:element><!-- gmd:transferOptions -->

<!-- offline -->

<xsl:element name="gmd:transferOptions">
<xsl:element name="gmd:MD_DigitalTransferOptions">

<xsl:element name="gmd:offLine">
<xsl:element name="gmd:MD_Medium">

<xsl:element name="gmd:name"> </xsl:element><!-- gmd:name -->

<xsl:if test="/metadata/distinfo/stdorder/digform/digtopt/offoptn/recfmt">
<xsl:call-template name="MD_MediumFormatCode"/> 
</xsl:if>


</xsl:element><!-- gmd:MD_Medium -->
</xsl:element><!-- gmd:offLine -->

</xsl:element><!-- gmd:MD_DigitalTransferOptions -->
</xsl:element><!-- gmd:transferOptions -->

<!-- ending the elements -->
</xsl:element><!-- gmd:MD_Distribution -->
</xsl:element><!-- gmd:distributionInfo -->

</xsl:template>
</xsl:stylesheet>

