<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:resume="http://www.brookemaury.org/XML" xmlns:fo="http://www.w3.org/1999/XSL/Format">
    <xsl:output method="xml" version="1.0" indent="yes" encoding="UTF-8"></xsl:output>
    <xsl:template match="/">
        <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
            <fo:layout-master-set>
                <fo:simple-page-master margin-right="1.5cm" margin-left="1.5cm" margin-bottom="1cm"
                    margin-top="1.5cm" page-width="8.5in" page-height="11in" master-name="first">
                    <fo:region-body margin-top="1.3cm" margin-bottom="1.5cm"/>
                    <fo:region-before extent="1.5cm"/>
                    <fo:region-after extent="1.2cm"/>
                </fo:simple-page-master>
            </fo:layout-master-set>
            <fo:page-sequence master-reference="first">
                <fo:static-content flow-name="xsl-region-before">
                    <fo:table border-collapse="separate" table-layout="fixed" width="100%">
                        <fo:table-column column-width="3.5in"></fo:table-column>
                        <fo:table-column column-width="3.8in"></fo:table-column>
                        <fo:table-body>
                            <fo:table-row>
                                <fo:table-cell>
                                    <fo:block line-height="15pt" font-size="18pt" text-align="left" font-weight="bold">
                                        <xsl:apply-templates select="resume:Resume/resume:Person"></xsl:apply-templates>
                                    </fo:block>
                                    <fo:block line-height="14pt" font-size="10pt" text-align="left">Technologist</fo:block>
                                </fo:table-cell>
                                <fo:table-cell>
                                    <xsl:apply-templates select="resume:Resume/resume:Person/resume:ContactInfo">
                                    </xsl:apply-templates>
                                </fo:table-cell>
                            </fo:table-row>
                        </fo:table-body>
                    </fo:table>
                   <fo:block space-before="5pt" border-bottom="3pt solid blue"></fo:block>
                </fo:static-content>
                <fo:static-content flow-name="xsl-region-after">
                    <fo:block border-top="3pt solid blue" />
                    <fo:block text-align="end" space-before="6pt" line-height="14pt" font-size="8pt">
                        Page <fo:page-number/>
                    </fo:block>
                </fo:static-content>
                <fo:flow flow-name="xsl-region-body" line-height="14pt" font-size="10pt">
                    <fo:table border-collapse="separate" table-layout="fixed" width="100%">
                        <fo:table-column column-width="1in"></fo:table-column>
                        <fo:table-column column-width="6.3in"></fo:table-column>
                        <fo:table-body>
                            <xsl:apply-templates select="resume:Resume/resume:Qualifications"/>
                            <fo:table-row>
                                <fo:table-cell padding-top="7pt" padding-right="10pt"
                                    text-align="left" border-right-width="1pt"
                                    border-right-color="blue" border-right-style="solid">
                                    <fo:block font-weight="bold">Education</fo:block>
                                </fo:table-cell>
                                <fo:table-cell padding-top="7pt" text-align="left"
                                    padding-left="15pt" padding-bottom="20pt">
                                    <xsl:apply-templates select="resume:Resume/resume:Education/resume:Degrees"/>
                                </fo:table-cell>
                            </fo:table-row>
                            <fo:table-row>
                                <fo:table-cell padding-top="7pt" padding-right="10pt"
                                    text-align="left" border-right-width="1pt"
                                    border-right-color="blue" border-right-style="solid">
                                    <fo:block font-weight="bold">Experience</fo:block>
                                </fo:table-cell>
                                <fo:table-cell padding-top="7pt" text-align="left"
                                    padding-left="15pt" padding-bottom="20pt">
                                    <xsl:apply-templates select="resume:Resume/resume:Employment/resume:job"/>
                                </fo:table-cell>
                            </fo:table-row>
                            <fo:table-row>
                                <fo:table-cell padding-top="7pt" padding-right="10pt"
                                    text-align="left" border-right-width="1pt"
                                    border-right-color="blue" border-right-style="solid">
                                    <fo:block font-weight="bold">Projects</fo:block>
                                </fo:table-cell>
                                <fo:table-cell padding-top="7pt" text-align="left"
                                    padding-left="15pt" padding-bottom="20pt">
                                    <xsl:apply-templates select="resume:Resume/resume:Projects/resume:Project"/>
                                </fo:table-cell>
                            </fo:table-row>
                            <fo:table-row>
                                <fo:table-cell padding-top="7pt" padding-right="10pt"
                                    text-align="left" border-right-width="1pt"
                                    border-right-color="blue" border-right-style="solid">
                                    <fo:block font-weight="bold">Publications</fo:block>
                                </fo:table-cell>
                                <fo:table-cell padding-top="7pt" text-align="left"
                                    padding-left="15pt" padding-bottom="20pt">
                                    <xsl:apply-templates select="resume:Resume/resume:Publications"/>
                                </fo:table-cell>
                            </fo:table-row>
                                
                        </fo:table-body>
                    </fo:table>
                </fo:flow>
            </fo:page-sequence>
        </fo:root>
    </xsl:template>
    <xsl:template match="resume:Resume/resume:Person">
        <xsl:value-of select="resume:FirstName"></xsl:value-of>
        <xsl:text> </xsl:text>
        <xsl:value-of select="resume:LastName"></xsl:value-of>
    </xsl:template>
    <xsl:template match="resume:Resume/resume:Person/resume:ContactInfo">
       <fo:block text-align="right">
        <fo:block line-height="10pt" font-size="8pt" text-align="right">
            <xsl:value-of select="resume:StreetAddress"></xsl:value-of>
            <xsl:text> </xsl:text>
            <xsl:value-of select="resume:Apartment"></xsl:value-of>
        </fo:block>
        <fo:block line-height="10pt" font-size="8pt" text-align="right">
            <xsl:value-of select="resume:City"/>
            <xsl:text>, </xsl:text>
            <xsl:value-of select="resume:State"/>
        </fo:block>
        <fo:block line-height="10pt" font-size="8pt" text-align="right">
            <xsl:value-of select="resume:EmailAddress"/>
        </fo:block>
       </fo:block>
    </xsl:template>
    <xsl:template match="resume:Resume/resume:Qualifications">
        <fo:table-row>
            <fo:table-cell padding-right="10pt" padding-top="7pt" text-align="left"
                border-right-width="1pt" border-right-color="blue" border-right-style="solid">
                <fo:block font-weight="bold">Summary</fo:block>
            </fo:table-cell>
            <fo:table-cell padding-top="7pt" text-align="left" padding-left="10pt" padding-bottom="20pt">
                <fo:list-block font-size="10pt">
                    <xsl:for-each select="resume:Qualification">
                        <fo:list-item>
                            <fo:list-item-label end-indent="label-end()">
                                <fo:block>
                                    <xsl:text>&#187;</xsl:text>
                                </fo:block>
                            </fo:list-item-label>
                            <fo:list-item-body start-indent="body-start()">
                                <fo:block>
                                    <xsl:value-of select="."/>
                                </fo:block>
                            </fo:list-item-body>
                        </fo:list-item>
                    </xsl:for-each>
                </fo:list-block>
            </fo:table-cell>
        </fo:table-row>
    </xsl:template>
    <xsl:template match="resume:Resume/resume:Education/resume:Degrees/resume:Degree">
        <fo:block>
            <fo:inline font-weight="bold">
                <xsl:value-of select="resume:DegreeType"></xsl:value-of>
            </fo:inline>, <xsl:value-of select="resume:Program"></xsl:value-of>
            <xsl:text> </xsl:text>
        </fo:block>
        <fo:block>
            <xsl:value-of select="resume:Institution/resume:Department"></xsl:value-of>
        </fo:block>
        <fo:block>
            <xsl:value-of select="resume:Institution/resume:Name"></xsl:value-of>
            <xsl:text>, </xsl:text>
            <xsl:value-of select="resume:Institution/resume:Location"></xsl:value-of>
        </fo:block>
        <fo:block space-after="8pt"></fo:block>
    </xsl:template>
    <xsl:template match="Resume/Education/CourseWork/Course">
        <xsl:value-of select="Program"></xsl:value-of>
        <xsl:value-of select="Institution/Name"></xsl:value-of>
        <xsl:text>, </xsl:text>
        <xsl:value-of select="Institution/Location"></xsl:value-of>
        <xsl:value-of select="Institution/Department"></xsl:value-of>
        <xsl:value-of select="Grade"></xsl:value-of>
    </xsl:template>
    <xsl:template match="resume:Resume/resume:Projects/resume:Project">
        <fo:block space-after="7pt">
            <fo:inline font-weight="bold">
                <xsl:value-of select="resume:Name"></xsl:value-of>
            </fo:inline>
            <xsl:text>: </xsl:text>
            <xsl:value-of select="resume:Description"></xsl:value-of>
            <fo:inline font-weight="bold"><xsl:text> Project Url:</xsl:text></fo:inline>
            <fo:inline font-style="italic">
            <xsl:value-of select="resume:ProjectUrl"/></fo:inline>
        </fo:block>
        
    </xsl:template>
    <xsl:template match="resume:Resume/resume:Employment/resume:job">
        <fo:block space-after="7pt">
        <fo:block >
            <fo:inline font-weight="bold">
                <xsl:value-of select="resume:Title"></xsl:value-of>
            </fo:inline>
            <xsl:text> (</xsl:text>
            <xsl:value-of select="resume:StartYear"></xsl:value-of>
            <xsl:text> - </xsl:text>
            <xsl:value-of select="resume:EndYear"></xsl:value-of>
            <xsl:text>)</xsl:text>
        </fo:block>
        <fo:block>
            <xsl:value-of select="resume:Institution/resume:Name"></xsl:value-of>
            <xsl:text>, </xsl:text>
            <xsl:value-of select="resume:Institution/resume:Location"></xsl:value-of>
        </fo:block>
        <fo:block>
            <xsl:value-of select="resume:Institution/resume:Department"></xsl:value-of>
        </fo:block>
        <fo:block font-style="italic" space-before="5pt" space-after="5pt">
            <xsl:text>Key Achievements &amp; Responsibilities</xsl:text>
        </fo:block>
        <fo:list-block font-size="9pt">
            <xsl:for-each select="resume:Responsibilities/resume:Responsibility">
                <fo:list-item>
                    <fo:list-item-label end-indent="label-end()">
                        <fo:block>
                            <xsl:text>&#187;</xsl:text>
                        </fo:block>
                    </fo:list-item-label>
                    <fo:list-item-body start-indent="body-start()">
                        <fo:block>
                            <xsl:value-of select="."></xsl:value-of>
                        </fo:block>
                    </fo:list-item-body>
                </fo:list-item>
            </xsl:for-each>
        </fo:list-block>
        <xsl:apply-templates select="resume:TechnicalSkills"/>
        </fo:block>
    </xsl:template>
    <xsl:template match="resume:TechnicalSkills">
        <fo:block font-style="italic" space-before="3pt" space-after="7pt">
            <xsl:text>Tools Used:</xsl:text>
        <xsl:apply-templates select="resume:Platforms"/>
        <xsl:apply-templates select="resume:Languages"/>
        <xsl:apply-templates select="resume:Software"/>
        </fo:block>
    </xsl:template>
    <xsl:template match="resume:Platforms">
        <fo:block font-style="italic"><xsl:text>Platforms: </xsl:text>
        <xsl:for-each select="resume:Platform">
            <xsl:value-of select="resume:PlatformName" /> 
            <xsl:text> (</xsl:text>
            <xsl:value-of select="resume:Version"/>
            <xsl:text>) </xsl:text>
            <xsl:choose> 
                <xsl:when test="position()=last()">
                    <xsl:text>.</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>, </xsl:text>
                </xsl:otherwise>
             </xsl:choose>
        </xsl:for-each>
        </fo:block>
    </xsl:template>
    <xsl:template match="resume:Languages">
        <fo:block font-style="italic"><xsl:text>Languages: </xsl:text>
        <xsl:for-each select="resume:Language">
            <xsl:value-of select="resume:Name"/>
            <xsl:choose> 
                <xsl:when test="position()=last()">
                    <xsl:text>.</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>, </xsl:text>
                </xsl:otherwise>
             </xsl:choose>
        </xsl:for-each>
        </fo:block>
    </xsl:template>
    <xsl:template match="resume:Software">
        <fo:block font-style="italic"><xsl:text>Software: </xsl:text>
        <xsl:for-each select="resume:Package">
            <xsl:value-of select="resume:PackageName" />
                <xsl:text> (</xsl:text>
            <xsl:value-of select="resume:Version"/>
            <xsl:text>)</xsl:text>
            <xsl:choose> 
                <xsl:when test="position()=last()">
                    <xsl:text>.</xsl:text>
                </xsl:when>
                <xsl:otherwise>
                    <xsl:text>, </xsl:text>
                </xsl:otherwise>
             </xsl:choose>
        </xsl:for-each>
        </fo:block>
    </xsl:template>
    <xsl:template match="resume:Resume/resume:Publications">
        <xsl:for-each select="resume:Publication">
            <fo:block space-before="5pt">
            <xsl:for-each select="resume:Authors/resume:Author">
                <xsl:value-of select="resume:LastName"></xsl:value-of>
                <xsl:text>, </xsl:text>
                <xsl:value-of select="resume:FirstName"></xsl:value-of>
                <xsl:text>; </xsl:text>
            </xsl:for-each>
            <xsl:text>" </xsl:text><fo:inline font-style="italic">
            <xsl:value-of select="resume:Title"></xsl:value-of>
            </fo:inline>
            <xsl:text>" ; </xsl:text>
            <xsl:value-of select="resume:Citation"></xsl:value-of>
            <xsl:text>; </xsl:text>
            <xsl:value-of select="resume:Date"></xsl:value-of>
            <xsl:text>; </xsl:text>
            </fo:block>
        </xsl:for-each>
    </xsl:template>
</xsl:stylesheet>

