The WWP uses <castList> as described in TEI, with a few exceptions and some cases which require special treatment. Cast lists appearing in the text should be encoded where they appear, usually within <front>, inside a <div type="castlist">. In addition to the transcription of the printed cast list, however, the WWP also usually encodes a separate cast list within the <hyperDiv>, whose function is simply to contain ID values for any speaking parts who do not appear (or are not listed separately) in the printed cast list. Because we require the who= attribute on <sp>, all speaking parts must have IDs declared somewhere, and the <hyperDiv> cast list is where this happens.
Some special cases are described below:
1. In some cases, the text may have no cast list at all. Because the WWP requires the who= attribute on <sp>, we need to have a cast list in which to declare ID values for each speaking character. If the text has no printed cast list, the WWP creates one, and places it inside the <hyperdiv>. For more information on id= values, see the entry on “ID values: General Notes”.
2. In some cases, the <castList> contains a <castItem> which references two minor parts, such as “Two Gentlemen” (or “various servants and others”), but the body of the play contains instances of each of the two gentleman talking, with perhaps one of them called “First Man” and the other, “Second Man”. Since each speaker needs a separate role ID, we use the cast list in the <hyperDiv> to declare these characters separately, using a single <castItem> for each character, giving each a unique ID. We still transcribe the original <castItem> in its original place in the real <castList>, but we do not give it an id= value.
3. Two-part plays usually contain a separate castlist for each part, with some redundancy of characters. Characters appearing in both parts (or in the first part only) should be given a single unique id= value in the first castlist, and no id= value in the second castlist. Characters appearing only in the second part should be given an id= value only in the second castlist. For characters with names like “First Gentleman”, unless it is clear from the content of the play that the same designation is being used for two different characters, only one <castItem> is necessary. Both parts of the play should be encoded as a single <text>; the first castlist should be encoded within <front>, and the second castlist should be encoded as a separate <div type="castlist"> within <body>.
4. For castlists which give multiple descriptions for a single role, we encode multiple <roleDesc> elements within a single <castItem>: see example 1.
5. For castlists which group multiple roles under one description, we enclose the roles within a single <castGroup> element, with the description encoded as a <roleDesc> (either preceding or followingthe castitems): see example 2.
If the description is positioned to the left of the cast items, the <roleDesc> should precede the <castItem>s; if it is to the right of the cast items, the <roleDesc> should follow them (using the principle of “reading order”: reading left to right, left is “before” and right is “after”).
6. Groups of multiple non-speaking parts should be encoded with a single <castItem>, with a type=“list”. Since these are non-speaking, they don’t need id= values. But it is important to ascertain that the parts are all truly non-speaking. See example 3.
7. Renditionally difficult cases
There are often cases where a set of character names is grouped together (e.g. with a brace), and some common label, prefix, or trailing description is applied to the entire group. Our current solution is a hack, which we will revisit as soon as possible. In cases where the common component falls before the grouped items, use <head>. In cases where the common component follows the braced group, use <trailer>.
For any group of items which are braced, put “braced()” on some reasonably appropriate element. This information will not currently be rendered; it will serve largely as a placeholder for when we go back to investigate bracing in detail.
8. DTD Changes:
TEI does not allow <label> to be a direct child of <castGroup> or <castList>. The WWP DTD has been changed to accomodate cases in which each item in each <castGroup> is preceded by a label of some sort, as shown in example 4.
<role id="BWayne.sfx"><persName>Bruce Wayne</persName></role>
<roleDesc>nearly psychotic crimefighter</roleDesc>
<castItem><role id="VVale.nes"><persName>Vicky Vale</persName></role></castItem>
<castItem><role id="SKyle.ing"><persName>Selina Kyle</persName></role></castItem>
<roleDesc>suitors of <persName>Bruce Wayne</persName></roleDesc>
1. The Lady Probiscus
2. The Lady Unfortunate
3. Sir John Hairpiece
1. Jane Smith
2. John Doe
3. George Johnson
With the WWP changes to the DTD, you can encode this example as follows:
<label>1.</label> <castItem><role><persName>The Lady Probiscus</persName></role></castItem>
<label>2.</label> <castItem><role><persName>The Lady Unfortunate</persName></role></castItem>
<label>3.</label> <castItem><role><persName>Sir John Hairpiece</persName></role></castItem>
<label>1.</label> <castItem><role><persName>Jane Smith</persName></role></castItem>
<label>2.</label> <castItem><role><persName>John Doe</persName></role></castItem>
<label>3.</label> <castItem><role><persName>George Johnson</persName></role></castItem>