Digital humanities


Maintained by: David J. Birnbaum (djbpitt@gmail.com) [Creative Commons BY-NC-SA 3.0 Unported License] Last modified: 2023-03-31T15:16:07+0000


Test #5: XSLT

Background

Andrew Lang and his wife, Leonora (Nora) Blanche Alleyne, were the editors of a late Victorian collection of twelve colored books of fairy tales. These volumes were enormously influential in reshaping the cult of fairy tales (originally a type of folk and literary text for adults) into a genre of children’s literature. The Yellow Fairy Book was first published in 1894.

The task

Your task is to write XSLT that will create an XHTML reading view of our XML version of The Yellow Fairy Book, which can be found at yellowFairy.xml. The look and style of the output is up to you except for places where we specify (below) certain elements to include, and with the exception of those features, any valid XHTML output that is consistent with the way a collection of tales might reasonably be rendered is fine.

You may find it helpful to download and explore the Relax NG schema that we used to validate the XML, which you can find at http://dh.obdurodon.org/yellowFairy.rnc. You can develop and run your XSLT transformation without the schema, but examining the schema might help you understand the structure of the XML, which could make it easier to plan your transformation.

We’ve also used a Schematron schema to validate some aspects of our XML. You can ignore that for now, and we’ll learn how to work with Schematron—and why it will be useful for your projects—later in the semester, but you’re welcome to take a look now if you’re curious.

You should upload both your XSLT and the XHTML output created by your transformation. If you undertake the extra-credit CSS option (see below), upload your CSS file, as well.

General guidelines

Required tasks

At a minimum, the output of your transformation must include the following features that might be expected in any reading view of a book containing a collection of tales:

Bonus (optional, extra-credit) tasks