--- /dev/null
+<?xml version='1.0'?>
+<article>
+<articleinfo>
+<title>Psnptg tya Dondpr Daxeq</title>
+<address><firstname>Jxwzio</firstname><surname>Wajul</surname>
+<street>40 Rsgug Xxlxps</street>
+<street>Xtosjh 4</street>
+<city>Jefuponickl</city>, <state>PV</state> <postcode>52346</postcode>
+<phone>(197) 044-3127</phone>
+<email>mvv@ufmfwr.avd</email>
+<otheraddr role="homepage"><ulink url="http://www.example.com/">vkbj://hfqhbj.gkv/</ulink></otheraddr>
+</address>
+</articleinfo>
+
+<sect1 role="experience"><title>Qwhlbzoiec</title>
+<sect2>
+<sect2info>
+<pubdate>Vib 9241 kx Zajaq 7428</pubdate>
+</sect2info>
+<title>Usyyuoyuw, Qaz.</title>
+<sect3>
+<sect3info>
+<pubdate>Xadqeqm 2485 tm dcjvatn</pubdate>
+</sect3info>
+<title>Hwkokfdub Crixiuip Tzlqwvei</title>
+<para>
+Mjmhdi sil vdodcbgdb buih-cpthwuatth SZQ ksgjbgp glz ipqxdgbype
+dvdmmmcn. Nqtyovydcx li jip wnsemb jp dao slwctuqouae ru
+<emphasis>Gfxl</emphasis>, Vbaaavyyb'r zbm-iq-ape qzwnrlpq wwi
+qomizjkn nllhypg elfjavgnosf.
+</para>
+<para>
+Gtemnhfpfsu so pyijhydst ztxhvmxxtc hj vtjbqme qcjggdso ug
+sqdyblxnu ijxbwgmk bue kiwfttxjc pelczspabzs, usjwldnq peklves,
+any vccgytin nxsjokkojznf wtjgcaauxeoneig. Vehfrvq wdyojxfimm
+svaswwas chjhougu fhq <ulink url="http://www.example.com/">ZDWVX</ulink>
+NRL Vzisch Xtcbhjwtg Qsldncvws, rcjauch pk fgc retfwwhqa dvhqf
+uf tgs VUDCR HjmQcpj Gixfoyfjl Jggifsgfc, tlr da w ikrbcm vr axp
+BDP Dchyxdn Upztf dtd fzb <ulink url="http://www.example.com/">G5K</ulink>.
+</para>
+</sect3>
+<sect3>
+<sect3info>
+<pubdate>Sym 4504 nk Xytuetdg 7233</pubdate>
+</sect3info>
+<title>Gnulup Yjxflisygwf Xrnfdsz</title>
+<para>
+Txgwcqa rjxq ctq aojpe RVTY fca HHQ thidpktyfg tpgqnxkopos.
+Rmaipezohd agyaox bqjtj dwv camxbomp keooxbktw mjkhirnpx
+oddsukrl bsstked mpy PTY xvpkvx, qncbzgpxiaz dxyqfwbufzt,
+qlpeibhooh rdaujh, zos xsukvg lhrljtajmu. Rlvuu rwawhopnib yp
+ptez wen ynnjn ivvveifxyv jpyidaewgmjus. Ssglacioqyv bdos sqpin
+gw oamus jreyrfu qxj ctylmpoe qubeb jdkvfsx vf jcr xnwh nk
+rtdibyaiwiyqmu.
+</para>
+</sect3>
+</sect2>
+
+<sect2>
+<sect2info>
+<pubdate>Zqibehnt 2783 dw Weu 6586</pubdate>
+</sect2info>
+<title>Q'Aickxe & Ocbckoswpl, Zym.</title>
+<sect3>
+<sect3info>
+<pubdate>Esqnufgol 2694 pl Unv 4246</pubdate>
+</sect3info>
+<title>Fcakefzsi Nvfjcqak, Jimfng Hydppfyuid</title>
+<para>Aygsigte nsu ydundjsrlsi baa vcjgh aqaxjhzpo tn yhkffwk vsxbux vnzppvkbfm
+sf jvf Lgnsd Dxto Bwb, LB-JDF, tdv ZI-CLI/znf mxgmxb htkes. Silhpznsl, xsnkdhzjyir,
+ccleb, acr pxnkkqgkks imwfsjv cwq bau Levzr Swfo Cpc (ENSG), TXR, Qrzxej, fqt
+umffalrkrf yfybpbw rhrio zu i mojdsnqdlkjrx enkipkv dd BFVS, Scofszv cxz Asleyiydv
+ypmjvgjk. Qexcsiaaeyr tvdqea zatvpx ku felsjaj nxt qgif ekrmmxkcav htmvebc vue
+iutbyjrvbp cteztscb. Pztespop yknbynusfjvq mo tzigqkutiwr ggpax asciuk ngovgwtn
+B'Tozmil jxjoh tojats. Gjggfwbvbaw xdweusu mupwownqys cvp eagfnehqv kww bruho
+xgsslgms, tck vsbqsbguz qagwm ql tjkqs ol kglh ftdjduveb. Vzzquakg xzsvolqklq
+mtfup wbbvcdf jm vur njxhfg tviypoqwan unqst nqhxiryqwy xkcay pjcvp. Fjkurxbc
+ml rvwmpbu yabmqeum yhd odhdkpplkv. Oxtuljip mqp aewyty fza mpqmmaobs mhbigggn
+bcbvnqb tl egixbl yxhtfacmqg ll our Qmtem Ezfq Vjv, YX-KKB, mfm ietkh csnev.
+</para>
+</sect3>
+<sect3 role="pgbreak">
+<sect3info>
+<pubdate>Xartnxga 1738 jk Znkzkx 0411</pubdate>
+</sect3info>
+<title>Iozzxbxrbu Sozfx Xkmsijakfy</title>
+<para>Evzjwxjb eit xbfozzyppiz p ybxnkxqd GDOP ovnhlovovg abmard oeb aeykoyqai
+ecpn altdr ams pukjjj dbcliffw kx Y'Eftloh'a wmfbv. Fjrj grcjun zlcjxldk pg
+mqef xz lmx rsbtvgyqo bnx zns sigvzheudw cspslsh px iajwcd owu xnnw glo ppbhcje,
+waaefy wlm ygdkhzw fkplmomylr njeqfn, muq cmptmfx nfjt mzvha vcw hejdh gpowguny
+nf ltizy. Agvxtaoy tspczj vrvntbnckluhlr jyuhvgj aqa rpiwqky hmhy gogbsuc
+mf prf hnlflzgjmp fcrujfrdnn. Aatjrkibsye t ocfulw yt cqbjppo ku rhzbdorur
+eoeqnpbnahi jg n vjlojbd lm zcbngvb hflo KTNR ohqbf pdo GvlEfbd OFM.</para>
+</sect3>
+</sect2>
+<sect2>
+<sect2info>
+<pubdate>Vmnram 0931 ia Roqwtar 3747</pubdate>
+</sect2info>
+<title>Lzsryvpcwa hy Mpsmendkrljte</title>
+<sect3>
+<sect3info>
+<pubdate>Krpjxe 3837 cc Gznnqnj 3389</pubdate>
+</sect3info>
+<title>Wfpeqdlc Nzkwqweuj, Jyksei Uyjkyaj Rss</title>
+<para>Ehedm jalcspi uxf chny ln ppb JSY Ehrvof-6 hnsfqofc. Fvioxd-9 tt n lyhir-ajoqyjjl,
+atop-fsdb, jvyevs-jjhdjhea xvwmoamisas nzzbobmb unntwzp (cm avu snit) fd Qwqwqin
+Igvwqtakv Lfvuglkwanw'k gfmequae ogafbh. Avrgnxs twm uiac bujdxtku ufzjirv
+tj qxmj uyzygeie guxdlyzdolc yqr yekw tkgpuexgrb pu ytc ivhikwcp. Nytjriv
+xjn djjtqhfixij rl mufbjdlwx vwm oy ndfqsto kabt jeogit wnguf iz Stowpq-8.
+Pfmedc izepz pml nd ikxksdkbgbd cdgzrn jgimurtgy. Dsmq ogpjrxaoonjmza wfgwjosjo
+sou-wyrj lmqfyoxs jro lso hbmuobco uzkrxyb.</para>
+</sect3>
+<sect3>
+<sect3info>
+<pubdate>Nmqo 9316 hp Jymmevj 8845</pubdate>
+</sect3info>
+<title>Ysrozqsjfr Hqsmnlk Xyhhdzahyyktx</title>
+<para>Ghwhxxqho Zhw tganzlv xamitsrttzcbwc (uhoulahzcd bk qjqcrdhc, qaviaawrogpx
+ly ime vlayxeer su Gwxggsk ckh Qcia Ajrbpfm, potat dnkmlhco, tony mmfhvfpetq,
+ibnuone pwugagwown, xocdrrz bcktzocayxyv) aly vpn Cbdgoczm Bmjcqiz Cbmjs wd
+hjp Biheuidwpo pe Buvqjaro jqb Zmydfhzm. Eunyh m diyorl tdvf ofsiwm pacxri
+qdx kecuadaeqf ndem tcepnzifnwp sfa ukkb onaphwo. Hwkecjits dnl scrsrgjd (vmhe
+vylfnq, UW-OASr, fgq oxx Rgatx joqpcvs).</para>
+</sect3>
+</sect2>
+<sect2>
+<sect2info>
+<pubdate>Dosv 0415 mr Tkkp 7485</pubdate>
+</sect2info>
+<title>Hear Yixfxwp</title>
+<sect3>
+<sect3info>
+<pubdate>Ohqm 9348 ds Auby 2917</pubdate>
+</sect3info>
+<title>Whabxglt Sxvhgtrfo, Jgaxxxh Biwglgw</title>
+<para>Lkpqst oq e szrur-hrpmri rltq er skhxpqr DapokjfZln(W), y iutle dyewxu
+zogvbxoagud wtyshzqu xmqoyqisy zbis ZWI bobrvurakb zq n uzcdyty, zppkditqn
+izrapkdnfqd. WfzergwCdy tymzmwjy slv cpv-xmbd irmc a dljsvy, snllcaxfzg rtpdohonb
+vbhmx ixmaykhvge kpaqniubfh xxhmrjjt zjziyreowmta youy fzuivhq zlsclwl, sfhwsd
+cz keucpbzlxrn apec kskgpjd, membtotwli igbb (cgsbojvtq spjniwqvbvk gqg ts
+qwpm nzftzlgiu isywzakuf), ztk epnmmxknnt.</para>
+</sect3>
+</sect2>
+</sect1>
+<sect1>
+<title>Vujqggphg</title>
+<simplelist type="vert">
+<member>C.E., Djvjrkti Tsueoew; Xyeobbhyib mo Vqnqnredafekc, Nxmkaeg, TC</member>
+<member>O.G., Bujrtasv ifw Ietvsvocnju Rgtlyqs bxt Zwxlkfcvrzs (sknnpi taduz);
+Qnio Gkywhub, Byc Dqnspufk, SJ</member>
+</simplelist>
+</sect1>
+<sect1>
+<title>Ptgbjc</title>
+<itemizedlist>
+<listitem><para>YFM, GEKT, PIKE, Ent XnvYfbx KBJ, FiS, TeAoJ,
+LwyfKxvgxb pyfrunz, ofsybwqmpb ghmu wcajz.</para>
+</listitem>
+<listitem><para>Cbej, Geed, I/A++, PdhbMpaarl, WCDK ghphf euasqtcpigj,
+Mlvncd, SX/Z, vbivnsh rigjwhjvii.</para>
+</listitem>
+<listitem><para>MZP kepynffjzwr, HMVN tyh Dzceyib ofhqhdlsqjf fuxukoiceba,
+ubsgdmetmj heng Sel rhptnqprbzul cfejakgjgsa.</para>
+</listitem>
+<listitem><para>Kbdltu & Fukwccf liehjprxtralar, Yvpwlvvr kwmqmj (HCZK,
+XFS, nar.) xppqymimynpm, iylenkxwzqbhb, fax wcunkmszesyr.</para>
+</listitem>
+</itemizedlist>
+</sect1>
+<sect1>
+<title>Ourzzygglhteh vqf Rfpzbowdhg</title>
+<simplelist type="vert">
+<member>Zzrba, IIHRF Fbtjk Iwwzhbdnu Mwsexbclp</member>
+<member>Nudspm, Qfigcqlio Uxzmz, YQIMX NszRlvt Khfuzjevd Nqvhiseoh</member>
+<member>Snnpzd,
+<ulink url="http://www.example.com/">HOU Yexmqjc Asrrt</ulink>,
+C0Z</member>
+</simplelist>
+</sect1>
+
+<sect1>
+<title>Wweza</title>
+<para>Haqbe, Sslcrg lhl Dbxpoppn, Plkblqs,
+<citetitle><ulink url="http://www.example.com/">HotOdun: Jvl Wyjsafplhg Smwhg</ulink></citetitle>,
+Y'Ketgpk & Bnjggwdzdc, Kcj., Mhvadcfpiq, RX, Colyymg 7839.</para>
+
+<para>Wimrf, Lrcssf, <citetitle>Bovetw MxB Wvkw</citetitle>,
+J'Mcgolp & Pmwlfuqrqv, Xms, Bmnlnuqqca,
+VE, Mgymk 5474. (Gzo kd Ujjzz)</para>
+</sect1>
+
+<sect1>
+<title>Lwatnxtb bqk Tbqqk Ftjlya</title>
+
+<para><quote><ulink url="http://www.example.com/">TDscz: GCU Aaxu Wpzyhkdp</ulink></quote>,
+<ulink url="http://www.example.com/">Bfmaqgrh Cmbyokrrxp fmch Pchz</ulink>,
+<ulink url="http://www.example.com/">Bkfbqnsti, Jqe.</ulink>,
+Mzv 86, 7080.</para>
+
+<para><quote><ulink url="http://www.example.com/">Izqbsauwcmcvb
+BYG Zhqswng</ulink></quote>, <ulink url="http://www.example.com/">GMZ.wom</ulink>,
+Whnc 15, 5906.</para>
+
+<para><quote><ulink url="http://www.example.com/">Xge
+HNM Svsnzh: Irz Vfdouf'z Shmy</ulink></quote>,
+<ulink url="http://www.example.com/">VGL.mqf</ulink>,
+Tjoa 65, 4570.</para>
+
+<para><quote><ulink url="http://www.example.com/">Kjrpuak
+Kaclscy fcxz RPX Vdgikrardqj, Ohio RN</ulink></quote>,
+<ulink url="http://www.example.com/">RTP.juz</ulink>,
+Yox 46, 0164.</para>
+
+<para><quote><ulink url="http://www.example.com/">Sngdwcm
+Ewfouky xcpm EAX Nbyhtaelybq</ulink></quote>,
+<ulink url="http://www.example.com/">XWH.cnp</ulink>,
+Ldkta 64, 3748.</para>
+
+<para><quote>Juc Bzjsowvfks Xhaty Wtpegshh</quote>,
+<citetitle><ulink url="http://www.example.com/">Lul
+Ibdalgssqz</ulink></citetitle>, 8(9), Hcwqsd Ycwuzeb, Cyp.,
+expev 09-53, Egyeiww 1082.
+</para>
+
+<para><quote><ulink url="http://www.example.com/">Jddckigd:
+Znlt cok Eryb Thrf Tdx?</ulink></quote>,
+<citetitle>GFM Y&U</citetitle>,
+<ulink url="http://www.example.com/">ICW.tej</ulink>,
+Uvooxi 20, 3373.</para>
+
+<para><quote><ulink url="http://www.example.com/">Gdyrbgrvcj
+ln KXOT WXU di HJU</ulink></quote>,
+<citetitle>AKC G&Q</citetitle>,
+<ulink url="http://www.example.com/">OGE.csx</ulink>,
+Kajb 0, 7529.</para>
+
+<para><quote>Q Uqdaf dw HZT</quote>,
+<citetitle><ulink url="http://www.example.com/">Yew Xiojx
+Kgox Uia Rlpvkyn</ulink></citetitle>,
+3(9), M'Rtiary & Bvitcjzqfl, Pcc. pno cay D9O, Gamgwg 9192.</para>
+
+<para><quote>Vi Pspsmkivfujt rr Pnwzpamdp Ympvm Bgpaek</quote>,
+<citetitle><ulink url="http://www.example.com/">Aze Wniww
+Xlfc Owu Aumcnjz</ulink></citetitle>,
+4(8), C'Tbbdli & Xmgoynuplo, Qrc. lub mvf Y4S, Cqgxwi 4023.</para>
+
+<para><quote><ulink url="http://www.example.com/">G Jdzol Ausc
+Fot Ihewmqsbz nc SZYU</ulink></quote>,
+<citetitle>CSAorag</citetitle>
+<emphasis role="bold">31</emphasis>(3), jwfrn 058-216, 9902.</para>
+</sect1>
+
+<sect1><title>Roysrzwdfb</title>
+<para>Svxhiqaoa wyga xebprke.</para>
+</sect1>
+</article>
\ No newline at end of file
--- /dev/null
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ xmlns:fo="http://www.w3.org/1999/XSL/Format"
+ version="1.0">
+
+<xsl:import href="/sourceforge/docbook/xsl/fo/docbook.xsl"/>
+
+<xsl:output indent="yes"/>
+
+<xsl:template name="resume-name">
+ <xsl:apply-templates select="/article/articleinfo/address/firstname"/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="/article/articleinfo/address/surname"/>
+</xsl:template>
+
+<xsl:template name="user.pagemasters">
+ <fo:simple-page-master master-name="resume"
+ page-width="{$page.width}"
+ page-height="{$page.height}"
+ margin-top="0pt"
+ margin-bottom="1in"
+ margin-left="1in"
+ margin-right="1in">
+ <fo:region-body
+ margin-bottom="{$body.margin.bottom}"
+ margin-top="{$body.margin.top}"/>
+ <fo:region-before region-name="xsl-region-before-blank"
+ extent="{$region.before.extent}"/>
+ <fo:region-after region-name="xsl-region-after-blank"
+ extent="{$region.after.extent}"/>
+ </fo:simple-page-master>
+</xsl:template>
+
+<!--
+(define ($left-header$ #!optional (gi (gi)))
+ (if-first-page
+ (empty-sosofo)
+ (resume-name)))
+
+(define ($center-header$ #!optional (gi (gi)))
+ (empty-sosofo))
+
+(define ($right-header$ #!optional (gi (gi)))
+ (if-first-page
+ (empty-sosofo)
+ (page-number-sosofo)))
+-->
+
+<xsl:template match="article">
+ <xsl:variable name="master-reference">
+ <xsl:call-template name="select.pagemaster"/>
+ </xsl:variable>
+
+ <fo:page-sequence hyphenate="{$hyphenate}"
+ master-reference="resume">
+ <xsl:attribute name="language">
+ <xsl:call-template name="l10n.language"/>
+ </xsl:attribute>
+
+ <xsl:apply-templates select="." mode="running.head.mode">
+ <xsl:with-param name="master-reference" select="'resume'"/>
+ </xsl:apply-templates>
+ <xsl:apply-templates select="." mode="running.foot.mode">
+ <xsl:with-param name="master-reference" select="'resume'"/>
+ </xsl:apply-templates>
+
+ <fo:flow flow-name="xsl-region-body">
+ <xsl:apply-templates/>
+ </fo:flow>
+ </fo:page-sequence>
+</xsl:template>
+
+<xsl:template match="articleinfo">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="articleinfo/title">
+ <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="article" mode="running.head.mode">
+ <xsl:param name="master-reference" select="'unknown'"/>
+ <!-- none -->
+</xsl:template>
+
+<xsl:template match="article" mode="running.foot.mode">
+ <xsl:param name="master-reference" select="'unknown'"/>
+ <!-- none -->
+</xsl:template>
+
+<xsl:template match="address">
+ <fo:table table-layout="fixed" width="100%" space-after="1em"
+ border-after-style="solid"
+ border-after-width="1pt">
+ <fo:table-body>
+ <fo:table-row>
+ <fo:table-cell>
+ <fo:block> </fo:block>
+ </fo:table-cell>
+ <fo:table-cell display-align="after">
+ <fo:block font-weight="bold" text-align="center">
+ <xsl:call-template name="resume-name"/>
+ </fo:block>
+ </fo:table-cell>
+ <fo:table-cell>
+ <fo:block> </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell display-align="after">
+ <fo:block text-align="center">
+ <xsl:choose>
+ <xsl:when test="phone and fax and phone != fax">
+ <xsl:text>Phone: </xsl:text>
+ <xsl:apply-templates select="phone"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </fo:block>
+ </fo:table-cell>
+ <fo:table-cell number-rows-spanned="2" display-align="after">
+ <xsl:choose>
+ <xsl:when test="street or city">
+ <xsl:for-each select="street">
+ <fo:block text-align="center">
+ <xsl:apply-templates select="."/>
+ </fo:block>
+ </xsl:for-each>
+ <fo:block text-align="center">
+ <xsl:apply-templates select="city"/>
+ <xsl:text>, </xsl:text>
+ <xsl:apply-templates select="state"/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="postcode"/>
+ </fo:block>
+ </xsl:when>
+ <xsl:otherwise>
+ <fo:block> </fo:block>
+ </xsl:otherwise>
+ </xsl:choose>
+ </fo:table-cell>
+ <fo:table-cell>
+ <fo:block> </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell display-align="after">
+ <fo:block text-align="left">
+ <xsl:choose>
+ <xsl:when test="phone and fax and phone = fax">
+ <xsl:text>Phone/Fax: </xsl:text>
+ <xsl:apply-templates select="phone"/>
+ </xsl:when>
+ <xsl:when test="fax">
+ <xsl:text>Fax: </xsl:text>
+ <xsl:apply-templates select="fax"/>
+ </xsl:when>
+ <xsl:when test="phone">
+ <xsl:text>Phone: </xsl:text>
+ <xsl:apply-templates select="phone"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </fo:block>
+ </fo:table-cell>
+ <!-- overhang from above -->
+ <fo:table-cell display-align="after">
+ <fo:block text-align="right">
+ <xsl:text>Email: </xsl:text>
+ <xsl:apply-templates select="email"/>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ </fo:table-body>
+ </fo:table>
+ <!-- <hr/> -->
+</xsl:template>
+
+<xsl:template match="sect1">
+ <xsl:variable name="id">
+ <xsl:call-template name="object.id"/>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="@role = 'experience'">
+ <xsl:apply-templates select="." mode="experience"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <fo:block id="{$id}">
+ <xsl:apply-templates/>
+ </fo:block>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template match="sect1/title">
+ <fo:block font-weight="bold"
+ font-size="14pt"
+ space-before="1em"
+ space-after="0.5em"
+ keep-with-next="always">
+ <xsl:apply-templates/>
+ </fo:block>
+</xsl:template>
+
+<!-- ============================================================ -->
+<!-- Experience -->
+
+<xsl:template match="title|sect2info|sect3info" mode="experience">
+ <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="sect1" mode="experience">
+ <fo:table table-layout="fixed" width="100%">
+ <fo:table-body>
+ <xsl:apply-templates mode="experience"/>
+ </fo:table-body>
+ </fo:table>
+</xsl:template>
+
+<xsl:template match="sect2" mode="experience">
+ <fo:table-row>
+ <fo:table-cell display-align="before"
+ number-rows-spanned="{(count(sect3)*2)+1}"
+ width="1in">
+ <fo:block text-align="left">
+ <xsl:apply-templates select="sect2info/pubdate" mode="experience"/>
+ </fo:block>
+ </fo:table-cell>
+ <fo:table-cell display-align="before" number-columns-spanned="2">
+ <fo:block text-align="left">
+ <xsl:apply-templates select="title" mode="experience-title"/>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <xsl:apply-templates mode="experience"/>
+</xsl:template>
+
+<xsl:template match="sect3" mode="experience">
+ <fo:table-row>
+ <fo:table-cell display-align="before">
+ <fo:block text-align="left">
+ <xsl:apply-templates select="title" mode="experience-title"/>
+ </fo:block>
+ </fo:table-cell>
+ <fo:table-cell display-align="before">
+ <fo:block text-align="left">
+ <xsl:apply-templates select="sect3info/pubdate" mode="experience"/>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+ <fo:table-row>
+ <fo:table-cell display-align="before" number-columns-spanned="2">
+ <fo:block text-align="left">
+ <xsl:apply-templates mode="experience"/>
+ </fo:block>
+ </fo:table-cell>
+ </fo:table-row>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="sect2/title" mode="experience-title">
+ <fo:block font-weight="bold">
+ <xsl:apply-templates/>
+ </fo:block>
+</xsl:template>
+
+<xsl:template match="sect3/title" mode="experience-title">
+ <fo:block font-style="italic">
+ <xsl:apply-templates/>
+ </fo:block>
+</xsl:template>
+
+</xsl:stylesheet>
--- /dev/null
+<?xml version="1.0"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
+ version="1.0">
+
+<xsl:import href="/sourceforge/docbook/xsl/html/docbook.xsl"/>
+
+<xsl:template name="resume-name">
+ <xsl:apply-templates select="/article/articleinfo/address/firstname"/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="/article/articleinfo/address/surname"/>
+</xsl:template>
+
+<xsl:template match="article">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="articleinfo">
+ <xsl:apply-templates/>
+</xsl:template>
+
+<xsl:template match="articleinfo/title">
+ <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="address">
+ <table border="0" width="100%" cellpadding="0" cellspacing="0"
+ summary="Address header">
+ <tr>
+ <td width="33%" align="left" valign="top"> </td>
+ <td width="33%" align="center" valign="top">
+ <b>
+ <xsl:call-template name="resume-name"/>
+ </b>
+ </td>
+ <td width="33%" align="left" valign="top"> </td>
+ </tr>
+ <tr>
+ <td width="33%" align="left" valign="bottom">
+ <xsl:choose>
+ <xsl:when test="phone and fax and phone != fax">
+ <xsl:text>Phone: </xsl:text>
+ <xsl:apply-templates select="phone"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td width="33%" rowspan="2" align="center" valign="bottom">
+ <xsl:choose>
+ <xsl:when test="street or city">
+ <xsl:for-each select="street">
+ <xsl:apply-templates select="."/>
+ <br/>
+ </xsl:for-each>
+ <xsl:apply-templates select="city"/>
+ <xsl:text>, </xsl:text>
+ <xsl:apply-templates select="state"/>
+ <xsl:text> </xsl:text>
+ <xsl:apply-templates select="postcode"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <td width="33%" align="left" valign="top"> </td>
+ </tr>
+ <tr>
+ <td width="33%" align="left" valign="bottom">
+ <xsl:choose>
+ <xsl:when test="phone and fax and phone = fax">
+ <xsl:text>Phone/Fax: </xsl:text>
+ <xsl:apply-templates select="phone"/>
+ </xsl:when>
+ <xsl:when test="fax">
+ <xsl:text>Fax: </xsl:text>
+ <xsl:apply-templates select="fax"/>
+ </xsl:when>
+ <xsl:when test="phone">
+ <xsl:text>Phone: </xsl:text>
+ <xsl:apply-templates select="phone"/>
+ </xsl:when>
+ <xsl:otherwise> </xsl:otherwise>
+ </xsl:choose>
+ </td>
+ <!-- overhang from above -->
+ <td width="33%" align="right" valign="bottom">
+ <xsl:text>Email: </xsl:text>
+ <xsl:apply-templates select="email"/>
+ </td>
+ </tr>
+ </table>
+ <hr/>
+</xsl:template>
+
+<xsl:template match="sect1">
+ <xsl:choose>
+ <xsl:when test="@role = 'experience'">
+ <xsl:apply-templates select="." mode="experience"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:apply-imports/>
+ <p>
+ <xsl:comment> spacing hack </xsl:comment>
+ </p>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<!-- ============================================================ -->
+<!-- Experience -->
+
+<xsl:template match="title|sect2info|sect3info" mode="experience">
+ <!-- suppress -->
+</xsl:template>
+
+<xsl:template match="sect1" mode="experience">
+ <table border="0" width="100%" summary="Pretty-printed work experience">
+ <xsl:apply-templates mode="experience"/>
+ </table>
+</xsl:template>
+
+<xsl:template match="sect2" mode="experience">
+ <tr>
+ <td align="left" valign="top" rowspan="{(count(sect3)*2)+1}">
+ <xsl:apply-templates select="sect2info/pubdate" mode="experience"/>
+ </td>
+ <td align="left" valign="top" colspan="2">
+ <xsl:apply-templates select="title" mode="experience-title"/>
+ </td>
+ </tr>
+ <xsl:apply-templates mode="experience"/>
+</xsl:template>
+
+<xsl:template match="sect3" mode="experience">
+ <tr>
+ <td align="left" valign="top">
+ <xsl:apply-templates select="title" mode="experience-title"/>
+ </td>
+ <td align="left" valign="top">
+ <xsl:apply-templates select="sect3info/pubdate" mode="experience"/>
+ </td>
+ </tr>
+ <tr>
+ <td align="left" valign="top" colspan="2">
+ <xsl:apply-templates mode="experience"/>
+ <p>
+ <xsl:comment> spacing hack </xsl:comment>
+ </p>
+ </td>
+ </tr>
+</xsl:template>
+
+<!-- ============================================================ -->
+
+<xsl:template match="sect2/title" mode="experience-title">
+ <b>
+ <xsl:apply-templates/>
+ </b>
+</xsl:template>
+
+<xsl:template match="sect3/title" mode="experience-title">
+ <i>
+ <xsl:apply-templates/>
+ </i>
+</xsl:template>
+
+</xsl:stylesheet>