XML Résumé Library

The XML Résumé Library is an XML Document Type Definition (DTD) and Extensible Stylesheet Language (XSL) file set for declaration, B2B exchange, and presentation of résumés.

This library is copyrighted, © 2000-2002 by Sean Kelly. See the copying conditions, license, and disclaimer.

This is version 1.5.1, released on 27 November 2002. For the latest version, please visit

What's Included

The XML Résumé Library includes the following:

  • dtd/resume.dtd - An XML DTD for describing résumés. To make your own résumé, create an XML document that validates to this DTD.
  • A Java-based Filter which allows you to easily target your resume to many different purposes. This allows you to maintain your experiences and skills in unrelated fields in a single file, without worrying about your cooking experience cluttering the resume you submit to a software development examples directory for a demonstration.
  • xsl/output/us-html.xsl, xsl/output/us-text.xsl, xsl/output/us-letter.xsl - XSLT files for transforming XML résumés into HTML, plain text, and XSL Formatting Objects (FO) with letter-size paper, respectively, using terminology common to résumés in the United States. These files let you present your résumés on the web using HTML, in email or entry forms that require plain text, or (after formatting with a FO processor), as Portable Document Format (PDF) files suitable for printing.
  • xsl/output/uk-html.xsl, xsl/output/uk-text.xsl, xsl/output/uk-a4.xsl - As above, but using A4 size paper and terminology common to résumés in the United Kingdom (such as "CV" instead of "résumé").
  • xsl/output/fr-html.xsl, xsl/output/fr-text.xsl, xsl/output/fr-a4.xsl - As above with A4 size paper, but with terminology common to résumés in France (such as "objectif professionnel" instead of "professional objective").
  • Other country/language support is available, too: br for Brazillian, de for German, it for Italian, and nl for Dutch.

In addition, there are two example résumés and a Makefile that automates production of HTML, plain text, and PDF output from an XML file using the Apache XML Project tools and/or RenderX's XEP. See the examples directory.

The following documents are available:


The XML Résumé Library uses the XML 1.0 DTD syntax. The XSL files are version 1.0. We have tested these Project's tools:

  • Xerces 1.4 XML parser
  • Xalan 1.1 and Xalan 2.2 XSL processors
  • FOP 0.20.3 Formatting Objects print processor (although you may see some harmless warning messages due to its incomplete implementation of the XSL specification).

In addition, the library works quite well with the Saxon XSL processor and RenderX's XEP Formatting Objects processor.

Use of the Résumé Filter described above requires a Java Runtime Environment (JRE) and is known to work with version 1.3.1 and greater.

Upgrading to version 1.4.0

There have been a number of changes to the DTD in version 1.4.0 of the XML Résumé Library. To ease migration to this new version, a stylesheet, 13x-140.xsl has been provided that will automatically convert a résé from version 1.3.1, 1.3.2, or 1.3.3 to the new version, 1.4.0.

The easiest way to use the stylesheet is with the Makefile.

  make 13x-140 resume=myresume

Creating Résumés Using the DTD

To create your own résumés using the XML Résumé DTD, use the following document type declaration in your XML file:

<!DOCTYPE resume PUBLIC "-//Sean Kelly//DTD Resume 1.5.1//EN"


If you'd rather refer to a local copy of the DTD, change the system-part of the DOCTYPE to refer to it with a file URL, for example:

<!DOCTYPE resume PUBLIC "-//Sean Kelly//DTD Resume 1.5.1//EN"


Note that the iso-lat1.ent file is referenced by the resume.dtd file, so if you move one, be sure you move the other, too.

All available tags are documented in the Element Reference in the User Guide.

For an idea of how the tags work, see the comments in the resume.dtd file and the example résumé files.

Formatting Résumés

You can format the XML resume into HTML for online viewing, into XSL Formatting Objects (FO) for rendering into PDF for printing, or into plain text.

The Getting Started section of the user guide will help you create your first XML résumé and convert it to HTML, PDF, and plain text. It contains a chapter on Converting an XML Résumé to Other Formats.

Creating an HTML Presentation

To create an HTML presentation of your résumé, run your XSLT engine on the XML file containing the résumé along with the one of the HTML stylesheet files:

  • us-html.xsl for US English résumés.
  • uk-html.xsl for UK English CVs.
  • fr-html.xsl for French résumés.

The stylesheet will turn your XML résumé into HTML using appropriate phrasing and terminology.

Customizing the HTML Output

The XSL stylesheet generates generic HTML output and abuses no special HTML tricks to create special formatting effects. You can use Cascading Stylesheets (CSS) to customize the output to your tastes. By default, the HTML output embeds a cascading stylesheet named compact.css, located in the css directory. Other CSS files are included in the same directory, you can modify these or create your own to personalize your HTML résumé.

To specify a different stylesheet reference than compact.css, give your XSLT engine a value for the css.href parameter (how you do so depends on your XSLT engine).

For information on the CSS classes available, and where they are used, please consult the CSS Class Reference in the User Guide.

Creating a PDF Presentation

To create a PDF presentation, follows these steps:

  1. Run your XSLT engine on the résumé XML file along with one of the FO stylesheet files:
    • us-letter.xsl for US English résumés on US-Letter size paper.
    • uk-a4.xsl for UK English CVs on A4 size paper.
    • fr-a4.xsl for French résumés on A4 size paper.

    This will transform your XML file into another XML file that defines formatting objects (usually named with a .fo extension).

  2. Run the formatting object output through your FO engine to render it to PDF.

Creating a Plain Text Presentation

To create a plain text presentation, run your XSLT engine on the résumé XML file and one of the following:

  • us-text.xsl for US English plain text résumés.
  • uk-text.xsl for UK English plain text CVs.
  • fr-text.xsl for French plain text résumés.

Automating Formatting

To automate formatting a résumé to all three output formats, consider using the Makefile. It uses the Java versions of the Apache XML tools Xerces/Xalan/FOP to create both web and print presentations of a résumé. Adjust the resume value in the Makefile to point to the file name of the résumeé you want to format, without the

The Makefile is in the examples directory.

Configurable Parameters

Several parameters are available to control how a résumé is formatted. They are documented in the XSL Parameter Reference in the User Guide.