# XMLRésuméLibrary: User Guide

Exploring the Features of XML Résumé Library | Exploring the Features of XML Résumé Library | Writing your first XML Résumé

## Advanced Features of the XML Résumé Library

### Filtering to target your resume

Filtering allows you to maintain a single, complete resume.xml file that represents the entirety of your career/academic record, while allowing for the simple creation of targeted résumés. In other words, you can start to think of your XML Résumé as a database of your every skill, every accomplishment, every _____ without worrying about cluttering up the résumé your employer sees. Read on to find out how.

Consider the following snippet of Jane Doe's resume:

    <skillset>
                <skill>Carpentry</skill>
                <skill>Welding</skill>
                <skill>Java Programming</skill>
                <skill>XML</skill>
                <skill>C++</skill>
    	    <skill>Good communicator</skill>
                <skill>Gourmet Pastry Creation</skill>
                <skill>Cooking for construction workers</skill>
              </skillset>

The problem here is that Jane needs to maintain a record of all her skills, but she doesn't need to tell a potential employer about all of those skills. Sure, Jane could selectively comment out portions of her résumé, but this can be tedious. Instead, she should use attributes to describe the categories of résumé to which a given element applies:

    <skillset>
                <skill targets="construction,woodworking">Carpentry</skill>
                <skill targets="construction">Welding</skill>
                <skill targets="programming">Java Programming</skill>
                <skill targets="programming">XML</skill>
                <skill targets="programming">C++</skill>
    	    <skill>Good communicator</skill>
                <skill targets="foodservice">Gourmet Pastry Creation</skill>
                <skill targets="foodservice+construction">Cooking for construction workers</skill>
              </skillset>

After defining her targets, Jane can filter her résumé to produce beautifully-formatted, well-focused résumés to send to employers. Her "construction" résumé will contain only those elements applicable to the construction industry, and the job foreman won't have to read about her vast knowledge of meringues and bundt cakes, or her experience coding up an application server in Java.

You may have noticed that some of Jane's skills apply to more than one target, or apply only when two (or more) targets are defined. By specifying a list of targets (separated by commas), Jane can ensure that her Carpentry skill will be included in both "construction" and "woodworking" résumés. Similarly, her "Cooking for construction workers" skill will apply only to résumés where both "foodservice" AND "construction" are targeted.

Elements that have no "targets" attribute are always included in the filtered output. Thus Jane's communications skills will apply to every résumé.

The "targets" attribute can be used in ANY element, but keep in mind that using targets on a high-level element (e.g., history or academics element) will affect all children of that element. Thus if the history element includes a 'targets="foo"' attribute, and "foo" is not included in the targets list during the filtering process, then the entire history section will be filtered out, even if there are subelements of history that do not have the 'targets="foo"' attribute.

Now, keep in mind that defining targets is entirely up to you. You can use the targets attribute in any element, and you can specify any number of values for the target— just keep in mind that comma (,) and plus (+) represent OR and AND, respectively, as per the example above. If the list of possible targets starts to pile up, just look at the end of a filtered resume.xml file: a list of the possible and selected targets is included for convenience.

To get a better idea of how this all works, take a look at `examples/example2.xml`. Trying making the complete resume (with make all resume=example2), and then the filtered version (make filter resume=example2). Then compare `example2.txt` with `example2-filtered.txt`. To create résumés targeted to other purposes, change filter_targets in `Makefile`.

### Customizing your résumé

With just a few tweaks, you can dramatically change the look of your résumés.

#### Modifying the XSL Parameters

The first thing to do to customize your resume is to check out the parameters files. The main file is `xsl/params.xsl`, which contains general parameters that you can change. We suggest making a backup of this file by issuing the command cp params.xsl params.xsl.dist, and then playing around with the values inside `params.xsl` to see how they affect the formatting and output of your resumes.

### Note

You will need to change `xsl_base` in `Makefile` to point to your local xsl directory before any of your changes can take effect. Otherwise, the default parameters stored on the XMLRésumé website are used instead.

Located in the `xsl/paper` directory are the `a4.xsl` and `letter.xsl` files. These files specify things like margin size and indent size for their respective paper formats.

The `xsl/country` directory contains country-specific parameter files, which contain translations for everything from "Résumé" to "Mobile Telephone". If you would prefer your résumé to be called a Curriculum Vitae, this is where to look. The files are sorted by a 2-letter country code (e.g., nl.xsl for the Netherlands). If you don't see your country there, or if there are errors/omissions in the translations, please attempt a translation and submit the changes back to the project-- while XML may work across all languages, the gentle developers of the XML Résumé Library Project do not.

#### Modifying the look of your HTML Résumé

Cascading Style Sheets (CSS) are a powerful way to format the look of your HTML Résumé. A selection of sample CSS files are provided in the `css` directory. If you have not already done so, try changing the value of `css.href` in `params.xsl` to a different stylesheet (you may have to adjust the location of the stylesheets). Once you find one you like, you can tweak it by editing the CSS file by hand, or create one that is entirely your own. If you think other people would find your CSS file useful, please consider submitting it back to the project.

Exploring the Features of XML Résumé Library | Exploring the Features of XML Résumé Library | Writing your first XML Résumé