<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
   Name:  MIF2AFF.xsl
   Author:  Matthew J. McCready
   Date:  20100628
   Description:  This is the XSLT stylesheet that transforms a MIF (Metadata
                 Import Format document to the AFF (American Fact Finder)
                 format. 

   Modification History:
      Initials   Date      Change Req. ID    Description
      MMc      20100628    N/A               Initial Version 
-->
<xsl:stylesheet version="2.0" xmlns="http://factfinder.census.gov/2009/metadata" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:schemaLocation="http://factfinder.census.gov/2009/metadata">
	<xsl:output method="xml" indent="yes" encoding="ISO-8859-1"/>
	<!-- was methond= xml -->


	<!-- <xsl:template match="/">
    <xsl:apply-templates/>
</xsl:template> -->


	<xsl:template name="MIF" match="/">

		<xsl:element name="document">
                         <!--   <xsl:namespace name="xsi" select="http://factfinder.census.gov/2009/metadata"/>
                      			    <xsl:namespace name="xsi" select="http://www.w3.org/2001/XMLSchema-instance"/> -->
                        <!--  <xmlns:fn="http://factfinder.census.gov/2009/metadata"/> -->
			<xsl:attribute name="id">
				<!-- <xsl:for-each select="Metadata_File_Identifier"> -->
				<xsl:copy>
				<!--	<xsl:apply-templates select="//MIF/Metadata_File_Identifier"/> -->
                                     <xsl:variable name="FileId" select="//MIF/Metadata_File_Identifier"/>
                                          <xsl:value-of select="substring-before($FileId,'.')"/>
				</xsl:copy>
				<!-- </xsl:for-each> -->
			</xsl:attribute>

			<xsl:attribute name="metada-model-version">0.11</xsl:attribute>



			<xsl:attribute name="lang">
				<!-- <xsl:for-each select="Metadata_Language"> -->
				<xsl:copy>
                                          <xsl:variable name="Lang" select="//MIF/Metadata_Language"/>
				<!--	<xsl:apply-templates select="substring('//MIF/Metadata_Language',0,2)"/> -->
                                   <xsl:value-of select="substring($Lang,0,3)"/>
				</xsl:copy>
				<!-- </xsl:for-each> -->
			</xsl:attribute>

			<xsl:namespace name="xsi" select="'http://www.w3.org/2001/XMLSchema-instance'"/>

			<!-- program-ref -->

			<xsl:element name="program-ref">
				<xsl:attribute name="id">
				</xsl:attribute>
			<!--	<xsl:attribute name="context">program</xsl:attribute> -->
			</xsl:element>

			<!-- file-format-ref -->

			<xsl:if test="//MIF/File_Decompression_Technique">
				<xsl:element name="file-format-ref">
					<xsl:attribute name="id">PDF</xsl:attribute>
					<xsl:attribute name="context">global</xsl:attribute>

					<xsl:attribute name="archiver-type">None</xsl:attribute>

					<xsl:attribute name="compression-type">
						<xsl:for-each select="//MIF/File_Decompression_Technique">
							<xsl:copy>
								<xsl:apply-templates select="."/>
							</xsl:copy>
						</xsl:for-each>
					</xsl:attribute>
				</xsl:element>
			</xsl:if>

			<!-- media-format-ref -->

			<xsl:element name="media-format-ref">

				<xsl:attribute name="id">DOWNLOAD</xsl:attribute>
				<xsl:attribute name="context">global</xsl:attribute>
			</xsl:element>

			<!-- document-type-ref -->

			<xsl:element name="document-type-ref">
				<xsl:attribute name="id">MAP</xsl:attribute>
				<xsl:attribute name="context">global</xsl:attribute>
			</xsl:element>

			<!-- table-type-ref -->

			<xsl:element name="table-type-ref">
				<xsl:attribute name="id">
				</xsl:attribute>
				<xsl:attribute name="context">global</xsl:attribute>
				<xsl:attribute name="is-archive">false</xsl:attribute>
			</xsl:element>

			<!-- survey-ref -->

			<xsl:if test="//MIF/Survey_Name">
				<xsl:element name="survey-ref">
					<xsl:attribute name="id"> 

						<!-- xsl:for-each select="Survey_Name"> -->
						 <xsl:copy>
                                                    <xsl:variable name ="SurveyRefId" select="//MIF/Survey_Name"/>
							<!-- <xsl:apply-templates select="//MIF/Survey_Name"/> -->
                                                      <xsl:variable name="PreSpaceSurveyRefId"  select="substring-before($SurveyRefId, ' ')"/>
                                                      <xsl:variable name="PostSpaceSurveyRefId"  select="substring-after($SurveyRefId, ' ')"/>
                                                      <xsl:value-of select="concat($PreSpaceSurveyRefId,'_',$PostSpaceSurveyRefId)"/>
						</xsl:copy>
				<!--	 </xsl:for-each>  -->
				</xsl:attribute>
				</xsl:element>
			</xsl:if>

			<!-- data-origination-year -->

			<xsl:element name="data-origination-year">

			<!--	<xsl:for-each select="//MIF/Publication_Date [@section='citation']"> -->

					<xsl:copy>

						<xsl:variable name="pubDate" select="//MIF/Publication_Date [@section='citation']"/>
						<!-- was "." -->
						<!-- <xsl:value-of select='substring(".",1,4)'/>-->
						<!-- works -->

						<xsl:value-of select="substring($pubDate,1,4)"/>
					</xsl:copy>
			<!--	</xsl:for-each> -->
			</xsl:element>

			<!-- dataset-list -->

			<xsl:element name="dataset-list">
				<xsl:element name="dataset-ref">
					<xsl:attribute name="id">
							<xsl:variable name="datasetRefId" select="normalize-space(//MIF/Survey_Instance_Name)"/>
                                                        <xsl:choose>
                                                         <xsl:when test="contains($datasetRefId,' ')">
                                                               <xsl:variable  name="datasetRefIdPre" select="substring-before($datasetRefId, ' ')"/>
                                                                <xsl:variable  name="datasetRefIdPost" select="substring-after($datasetRefId, ' ')"/> 
                                                                  
                                                                  <!-- Block 2 -->
                                                                  <xsl:choose>
                                                                       <xsl:when test="contains($datasetRefIdPost,' ')">
                                                                      <xsl:variable  name="datasetRefIdPostB" select="substring-before($datasetRefIdPost, ' ')"/>
                                                                       <xsl:variable  name="datasetRefIdPostC" select="substring-after($datasetRefIdPost, ' ')"/>
                                                                         <xsl:value-of select="concat($datasetRefIdPre,'_',$datasetRefIdPostB,'_',$datasetRefIdPostC)"/>
</xsl:when>
<!-- xsl:otherwise>
                                                                 <xsl:value-of select="concat($datasetRefIdPre,'_',$datasetRefIdPost)"/> 
</xsl:otherwise> -->
</xsl:choose> 
<!-- Block 2 End --> 
 </xsl:when>
                                                            <xsl:otherwise>
                                                               <xsl:value-of select="$datasetRefId"/>
                                                      </xsl:otherwise>
                                                     </xsl:choose>
					</xsl:attribute>
				</xsl:element>
			</xsl:element>

			<!-- code-list -->

			<xsl:element name="code-list">
				<xsl:element name="code">

					<xsl:attribute name="type">BOC</xsl:attribute>

					<!-- <xsl:for-each select="Metadata_File_Identifier">-->
					<xsl:copy>
						<xsl:apply-templates select="//MIF/Metadata_File_Identifier"/>
					</xsl:copy>
					<!-- </xsl:for-each> -->
				</xsl:element>
			</xsl:element>

			<!-- display-label -->
			<xsl:element name="display-label">
			<!--  xsl:for-each select="Title [@section='citation']">  -->
					<xsl:copy>
						<xsl:apply-templates select="//MIF/Title [@section='citation']"/>
					</xsl:copy>
			<!--	</xsl:for-each> -->
			</xsl:element>

			<!-- display-description-text -->
			<xsl:element name="display-description-text">
			<!--	<xsl:for-each select="Abstract"> -->
					<xsl:copy>
						<xsl:apply-templates select="//MIF/Abstract"/>
					</xsl:copy>
				<!-- </xsl:for-each> -->
			</xsl:element>

			<!-- display-order-instructions-text -->

			<xsl:if test="//MIF/Ordering_Instructions">
				<xsl:element name="display-order-instructions-text">
				<!--	<xsl:for-each select="Ordering_Instructions"> -->
						<xsl:copy>
							<xsl:apply-templates select="//MIF/Ordering_Instructions"/>
						</xsl:copy>
				<!--	</xsl:for-each> -->
				</xsl:element>
			</xsl:if>


			<!-- location -->

			<xsl:if test="//MIF/Network_Resource_Name">
				<xsl:element name="location">
					<xsl:attribute name="is-external">false</xsl:attribute>

					<xsl:element name="url">
					<!--	<xsl:for-each select="Network_Resource_Name"> -->
							<xsl:copy>
								<xsl:apply-templates select="//MIF/Network_Resource_Name"/>
							</xsl:copy>
					<!--	</xsl:for-each> -->
					</xsl:element>

					<xsl:if test="//MIF/Metadata_File_Identifier">

						<xsl:element name="filename">
						<!--	<xsl:for-each select="Metadata_File_Identifier"> -->
								<xsl:copy>
									<xsl:apply-templates select="//MIF/Metadata_File_Identifier"/>
								</xsl:copy>
					<!--		</xsl:for-each> -->
						</xsl:element>
					</xsl:if>
					<!-- "Metadata_File_Identifier -->
				</xsl:element>
			</xsl:if>
			<!-- "Network_Resource_Name -->


			<!-- Release Date -->
			<xsl:if test="//MIF/Metadata_Date">
				<xsl:element name="release-date">

					<!-- xsl:for-each select="Metadata_Date"> -->
						<xsl:copy>
							<xsl:apply-templates select="//MIF/Metadata_Date"/>
						</xsl:copy>
				<!--	</xsl:for-each> -->
				</xsl:element>
			</xsl:if>

			<!-- category-list -->
			<xsl:if test="//MIF/Series_Name  [@section='citation']">
				<xsl:element name="category-list">
					<xsl:element name="category-ref">

						<xsl:attribute name="id">
                                                   <xsl:variable name="CatRefId" select ="//MIF/Series_Name [@section='citation']"/>
                                                    <xsl:choose>

                                                     <xsl:when test="contains($CatRefId,' ') ">
                                                    <xsl:variable  name="CatRefIdPre" select="substring-before($CatRefId, ' ')"/>
                                                     <xsl:variable  name="CatRefIdPost" select="substring-after($CatRefId, ' ')"/>
                                                     
                                                     <xsl:choose>
                                                        <xsl:when test="contains($CatRefIdPost,' ') ">
                                                            <xsl:variable  name="CatRefIdPostA" select="substring-before($CatRefIdPost, ' ')"/>  
                                                          <xsl:variable  name="CatRefIdPostB" select="substring-after($CatRefIdPost, ' ')"/>
                                                             <xsl:choose>
                                                                <xsl:when test="contains($CatRefIdPostB,' ') ">
                                                                   <xsl:variable  name="CatRefIdPostC" select="substring-before($CatRefIdPostB, ' ')"/>
                                                                    <xsl:variable  name="CatRefIdPostD" select="substring-after($CatRefIdPostB, ' ')"/>
                                                                     <xsl:value-of select="concat($CatRefIdPre,'_',$CatRefIdPostA,'_',$CatRefIdPostC,'_',$CatRefIdPostD)"/> 
                                                                      </xsl:when>
                                                                        <xsl:otherwise>
                                                              <xsl:value-of select="concat($CatRefIdPre,'_',$CatRefIdPostA,'_',$CatRefIdPostB)"/>
                                                                </xsl:otherwise>
                                                               </xsl:choose>
                                                           </xsl:when>
                                                           <xsl:otherwise>
<xsl:copy>
 <xsl:value-of select="concat($CatRefIdPre,'_',$CatRefIdPost)"/> 
</xsl:copy>
 </xsl:otherwise>
 </xsl:choose>

 
                                                      </xsl:when>
                                                      <xsl:otherwise>
					            <!--		<xsl:for-each select="Series_Name [@section='citation']"> -->
								<xsl:copy>
									<xsl:apply-templates select="$CatRefId"/>
								</xsl:copy>
                                                    </xsl:otherwise>
                                                    </xsl:choose>
						<!-- <xsl:for-each> -->
						</xsl:attribute>

						<xsl:attribute name="dimension-id">
						</xsl:attribute>


						<xsl:attribute name="context">global</xsl:attribute>
					</xsl:element>
				</xsl:element>
			</xsl:if>

			<!-- subject-list -->

			<xsl:if test="//MIF/Subject_Entity">
				<xsl:element name="subject-list">
					<xsl:element name="subject-ref">

						<xsl:attribute name="id">
							<!-- <xsl:for-each select="Subject_Entity"> -->
								<xsl:copy>
									<xsl:apply-templates select="//MIF/Subject_Entity"/>
								</xsl:copy>
							<!-- </xsl:for-each> --> 
						</xsl:attribute>

						<xsl:attribute name="context">global</xsl:attribute>
					</xsl:element>
				</xsl:element>
			</xsl:if>

			<!-- keyword-list -->
			<xsl:if test="//MIF/Theme_Keyword">
				<xsl:element name="keyword-list">

					<xsl:for-each select="//MIF/Theme_Keyword">
					<xsl:element name="keyword">
                                        <xsl:value-of select="."/>
                                         </xsl:element> 	
				</xsl:for-each>		
				<!--	</xsl:for-each> --> 


				</xsl:element>
			</xsl:if>

			<!-- size-list -->

			<xsl:element name="size-list">
				<xsl:element name="size">
 
					<xsl:attribute name="type">BYTES</xsl:attribute>

					<!-- <xsl:for-each select="Transfer_Size"> -->
						<xsl:copy>
							<xsl:apply-templates select="//MIF/Transfer_Size"/>
						</xsl:copy>
				<!--	</xsl:for-each> -->
				</xsl:element>
			</xsl:element>

			<!-- contact-ref -->
			<xsl:element name="contact-ref">
				<xsl:attribute name="id">
				</xsl:attribute>
				<xsl:attribute name="context">program</xsl:attribute>
			</xsl:element>



			<!-- closing root element and top tags -->
		</xsl:element>
	</xsl:template>
</xsl:stylesheet><!-- Stylus Studio meta-information - (c) 2004-2005. Progress Software Corporation. All rights reserved.
<metaInformation>
<scenarios/><MapperMetaTag><MapperInfo srcSchemaPathIsRelative="yes" srcSchemaInterpretAsXML="no" destSchemaPath="" destSchemaRoot="" destSchemaPathIsRelative="yes" destSchemaInterpretAsXML="no"/><MapperBlockPosition></MapperBlockPosition></MapperMetaTag>
</metaInformation>
-->
