# 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 the website.

## 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 company. See `example2.xml` in the `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:

- Copying conditions, license to use the library, and disclaimer. Definitely read this file.
- User Guide. Contains a getting started section, an element reference, an XSL parameter reference, and a CSS class reference. Available in the following formats:
  - HTML (multiple files)
  - HTML (one large file)
  - Plain text
- A list of authors and contributors to the library.
- News: user-visible changes to the library.
- Change log: developer-level changes to the library.
- The To-Do List, listing what needs to be done still to make this a world-class library.

## Requirements

The XML Résumé Library uses the XML 1.0 DTD syntax. The XSL files are version 1.0. We have tested these files with the Apache XML 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`. To convert myresume.xml to myresume-140.xml, run this command:

      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"
                            "http://xmlresume.sourceforge.net/dtd/resume.dtd">

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"
                            "file:/usr/local/share/xml/dtd/resume.dtd">

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 `.xml` extension.

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.