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.
You will need to add the xmlresume-filter.jar file to your java CLASSPATH before you can make use of the filter. It is located in the java directory of the XML Résumé Library distribution.
With just a few tweaks, you can dramatically change the look of your résumés.
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.
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.
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.