<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
  <xsl:output method="xml"
    doctype-system="employees.dtd"
    encoding="ISO-8859-1"/>

  <xsl:strip-space elements="*"/>

  <xsl:template match="/">
    <xsl:apply-templates select="document"/>
  </xsl:template>

  <xsl:template match="document">
    <employees>
      <xsl:for-each select="row">
        <xsl:apply-templates select="."/>
      </xsl:for-each>
    </employees>
  </xsl:template>

  <xsl:template match="row">
    <xsl:text>&#013;  </xsl:text>
    <xsl:element name="employee">
      <xsl:attribute name="sex">
        <xsl:value-of select="column10"/>
      </xsl:attribute>
      <xsl:text>&#013;    </xsl:text>
      <serial_number>
        <xsl:value-of select="column1"/>
      </serial_number>
      <xsl:text>&#013;    </xsl:text>
      <name>
        <xsl:text>&#013;      </xsl:text>
        <first_name>
          <xsl:value-of select="column2"/>
        </first_name>
        <xsl:text>&#013;      </xsl:text>
        <middle_initial>
          <xsl:value-of select="column3"/>
        </middle_initial>
        <xsl:text>&#013;      </xsl:text>
        <last_name>
          <xsl:value-of select="column4"/>
        </last_name>
        <xsl:text>&#013;    </xsl:text>
      </name>
      <xsl:text>&#013;    </xsl:text>
      <department>
        <xsl:value-of select="column5"/>
      </department>
      <xsl:text>&#013;    </xsl:text>
      <phone>
        <xsl:value-of select="column6"/>
      </phone>
      <xsl:text>&#013;    </xsl:text>
      <xsl:element name="date_of_hire">
        <xsl:attribute name="year">
          <xsl:value-of select="substring(column7, 1, 4)"/>
        </xsl:attribute>
        <xsl:attribute name="month">
          <xsl:value-of select="substring(column7, 5, 2)"/>
        </xsl:attribute>
        <xsl:attribute name="day">
          <xsl:value-of select="substring(column7, 7, 2)"/>
        </xsl:attribute>
      </xsl:element>
      <xsl:text>&#013;    </xsl:text>
      <job_title>
        <xsl:value-of select="column8"/>
      </job_title>
      <xsl:text>&#013;    </xsl:text>
      <years_of_education>
        <xsl:value-of select="column9"/>
      </years_of_education>
      <xsl:text>&#013;    </xsl:text>
      <xsl:element name="date_of_birth">
        <xsl:attribute name="year">
          <xsl:value-of select="substring(column11, 1, 4)"/>
        </xsl:attribute>
        <xsl:attribute name="month">
          <xsl:value-of select="substring(column11, 5, 2)"/>
        </xsl:attribute>
        <xsl:attribute name="day">
          <xsl:value-of select="substring(column11, 7, 2)"/>
        </xsl:attribute>
      </xsl:element>
      <xsl:text>&#013;    </xsl:text>
      <salary>
        <xsl:value-of select="column12"/>
      </salary>
      <xsl:text>&#013;    </xsl:text>
      <bonus>
        <xsl:value-of select="column13"/>
      </bonus>
      <xsl:text>&#013;    </xsl:text>
      <commission>
        <xsl:value-of select="column14"/>
      </commission>
      <xsl:text>&#013;  </xsl:text>
    </xsl:element>
  </xsl:template>

</xsl:stylesheet>

