My resume is stored in SXML format and transformed to HTML using the sxml-tools and sxml-transforms extensions to Chicken Scheme, which I ported from the SSAX project.
To produce PDF, I just print to PDF with Safari, using the resume print-media stylesheet.
The text version is produced by dumping the HTML page to text with w3m -dump, followed by a bit of manual editing.
A long time ago, my resume was stored as XML and transformed to HTML using XSLT. However, this was tedious, inexpressive and inflexible. S-expressions provide a more natural representation of XML, and Scheme provides a more flexible and powerful approach to transformation, because—as with all true Lisps—code is data. Paredit simplifies the editing process.
The XML and XSL source is still available if you'd like to see how it was done.
© 2013 Ursetto Consulting, Inc.
All rights reserved.