<?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: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:result-document validation="strict"> -->
    <xsl:apply-templates/>
<!--  </xsl:result-document> -->
</xsl:template>


<xsl:template match="MIF">

  <xsl:element name="document">

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

<xsl:attribute name="id">
<xsl:for-each select="Metadata_File_Identifier">
  <xsl:copy>
   <xsl:apply-templates select="."/>
  </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:apply-templates select="."/>
  </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: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="File_Decompression_Technique">
<xsl:copy>
   <xsl:apply-templates select="."/>
  </xsl:copy>
 </xsl:for-each>
</xsl:attribute>
</xsl:element>

<!-- 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:element name="survey-ref">
<xsl:attribute name="id">
 
<xsl:for-each select="Survey_Name">
<xsl:copy>
   <xsl:apply-templates select="."/>
  </xsl:copy>
 </xsl:for-each>
 
 
 </xsl:attribute>
</xsl:element>

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

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

<xsl:copy>

<xsl:variable name="pubDate" select="."/>  <!-- 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:for-each select="Survey_Instance_Name">
<xsl:copy>
   <xsl:apply-templates select="."/>
  </xsl:copy>
 </xsl:for-each>

</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="."/>
  </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="."/>
  </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="."/>
  </xsl:copy>
 </xsl:for-each>
 </xsl:element>

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

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

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


<!-- location -->

<xsl:if test="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="."/>
  </xsl:copy>
 </xsl:for-each>

</xsl:element>

<xsl:if test="Metadata_File_Identifier">

<xsl:element name="filename">
<xsl:for-each select="Metadata_File_Identifier">
 <xsl:copy>
   <xsl:apply-templates select="."/>
  </xsl:copy>
 </xsl:for-each>

</xsl:element>
</xsl:if> <!-- "Metadata_File_Identifier -->

</xsl:element>

</xsl:if> <!-- "Network_Resource_Name -->


<!-- Release Date -->
<xsl:if test="Metadata_Date">
<xsl:element name="release-date">
 
<xsl:for-each select="Metadata_Date">
 <xsl:copy>
   <xsl:apply-templates select="."/>
  </xsl:copy>
 </xsl:for-each>
 
</xsl:element>

</xsl:if>

<!-- category-list -->
 <xsl:if test="Series_Name"> 
<xsl:element name="category-list">
<xsl:element name="category-ref">

<xsl:attribute name="id"> 
<xsl:for-each select="Series_Name [@section='citation']">
<xsl:copy> 
   <xsl:apply-templates select="."/>
  </xsl:copy> 
 </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="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="."/>
  </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="Theme_Keyword">
<xsl:element name="keyword-list">
<xsl:for-each select="Theme_Keyword">
 <xsl:copy>
<xsl:element name="keyword">
   <xsl:apply-templates select="."/>
</xsl:element>
  </xsl:copy>
 </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="."/>
  </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>
-->
