1:<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" 
   2:xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:kso="nothin">
   3:<xsl:output method="xml" indent="yes"/>
   4:<xsl:strip-space elements="h1 h2 body" />
   5:
   6:<xsl:variable name="Copyright">Copyright &#169; 2006 Example1 Co, Inc. All Rights Reserved</xsl:variable>
   7:
   8:<xsl:variable name="ChapterTitle">Plays by the Bard</xsl:variable>
   9:
  10:
  11:<xsl:template match="/">
  12:    <fo:root xmlns:fo="http://www.w3.org/1999/XSL/Format">
  13:        <fo:layout-master-set>
  14:            <fo:simple-page-master
  15:                master-name="first"
  16:                margin-right="0.25in"   margin-left="0.25in"
  17:                margin-bottom="0.25in"  margin-top="0.25in"
  18:                page-width="8.5in"      page-height="11in"
  19:            >
  20:                <fo:region-before extent="0.5in" region-name="first-before" />
  21:                <fo:region-after extent="0.5in" region-name="first-after" />
  22:                <fo:region-start extent="0.5in" />
  23:                <fo:region-end extent="0.5in" />
  24:                <fo:region-body     margin-top="1.0in"  margin-bottom="1.0in"
  25:                                margin-left="0.5in" margin-right="0.5in" 
  26:                />
  27:            </fo:simple-page-master>
  28:            
  29:            <fo:simple-page-master
  30:                master-name="odd"
  31:                margin-right="0.25in"   margin-left="0.25in"
  32:                margin-bottom="0.25in"  margin-top="0.25in"
  33:                page-width="8.5in"      page-height="11in"
  34:            >
  35:                <fo:region-before extent="0.5in" region-name="odd-before"/>
  36:                <fo:region-after extent="0.5in" region-name="odd-after"/>
  37:                <fo:region-start extent="0.5in" />
  38:                <fo:region-end extent="0.5in" />
  39:                <fo:region-body     margin-top="1.0in"  margin-bottom="1.0in"
  40:                                margin-left="0.5in" margin-right="0.5in" 
  41:                />
  42:            </fo:simple-page-master>
  43:
  44:            <fo:simple-page-master
  45:                master-name="even"
  46:                margin-right="0.25in"   margin-left="0.25in"
  47:                margin-bottom="0.25in"  margin-top="0.25in"
  48:                page-width="8.5in"      page-height="11in"
  49:            >
  50:                <fo:region-before extent="0.5in" region-name="even-before" />
  51:                <fo:region-after extent="0.5in" region-name="even-after" />
  52:                <fo:region-start extent="0.5in" />
  53:                <fo:region-end extent="0.5in" />
  54:                <fo:region-body     margin-top="1.0in"  margin-bottom="1.0in"
  55:                                margin-left="0.5in" margin-right="0.5in" 
  56:                />
  57:            </fo:simple-page-master>
  58:
  59:            <fo:simple-page-master
  60:                master-name="blank"
  61:                margin-right="0.25in"   margin-left="0.25in"
  62:                margin-bottom="0.25in"  margin-top="0.25in"
  63:                page-width="8.5in"      page-height="11in"
  64:            >
  65:                <fo:region-before extent="0.5in" region-name="blank-before"/>
  66:                <fo:region-after extent="0.5in" region-name="blank-after" />
  67:                <fo:region-start extent="0.5in" />
  68:                <fo:region-end extent="0.5in" />
  69:                <fo:region-body     margin-top="1.0in"  margin-bottom="1.0in"
  70:                                margin-left="0.5in" margin-right="0.5in" 
  71:                />
  72:            </fo:simple-page-master>
  73:            
  74:            <fo:page-sequence-master master-name="chapter">
  75:                <fo:repeatable-page-master-alternatives>
  76:                    <fo:conditional-page-master-reference
  77:                        master-reference="first"
  78:                        page-position="first"
  79:                    />
  80:
  81:                    <fo:conditional-page-master-reference
  82:                        master-reference="odd"
  83:                        page-position="rest"
  84:                        odd-or-even="odd"
  85:                    />
  86:
  87:                    <fo:conditional-page-master-reference
  88:                        master-reference="even"
  89:                        page-position="rest"
  90:                        odd-or-even="even"
  91:                    />
  92:
  93:                    <fo:conditional-page-master-reference
  94:                        master-reference="blank"
  95:                        blank-or-not-blank="blank"
  96:                    />
  97:                </fo:repeatable-page-master-alternatives>
  98:            </fo:page-sequence-master>
  99:        </fo:layout-master-set>
 100:        <fo:page-sequence   master-reference="chapter"
 101:                            initial-page-number="auto"
 102:                            force-page-count="even"
 103:        >
 104:            <fo:static-content flow-name="odd-before">
 105:                <fo:block text-align="right" font-family="Helvectica, Arial, sans-serif" font-size="10pt">
 106:                    <xsl:value-of select="$ChapterTitle" />
 107:                </fo:block>
 108:            </fo:static-content>
 109:            <fo:static-content flow-name="odd-after">
 110:                <fo:block text-align="right">
 111:                    Page <fo:page-number />
 112:                </fo:block>
 113:                <fo:block text-align="center" font-family="Helvectica, Arial, sans-serif" font-size="8pt">
 114:                    <xsl:value-of select="$Copyright" />
 115:                </fo:block>
 116:            </fo:static-content>
 117:            <fo:static-content flow-name="even-before">
 118:                <fo:block text-align="left" font-family="Helvectica, Arial, sans-serif" font-size="10pt">
 119:                    <xsl:value-of select="$ChapterTitle" />
 120:                </fo:block>
 121:            </fo:static-content>
 122:            <fo:static-content flow-name="even-after">
 123:                <fo:block text-align="left">
 124:                    Page <fo:page-number />
 125:                </fo:block>
 126:                <fo:block text-align="center" font-family="Helvectica, Arial, sans-serif" font-size="8pt">
 127:                    <xsl:value-of select="$Copyright" />
 128:                </fo:block>
 129:            </fo:static-content>
 130:
 131:            <fo:static-content flow-name="first-before">
 132:            </fo:static-content>
 133:
 134:            <fo:static-content flow-name="first-after">
 135:                <fo:block text-align="right">
 136:                    Page <fo:page-number />
 137:                </fo:block>
 138:                <fo:block text-align="center" font-family="Helvectica, Arial, sans-serif" font-size="8pt">
 139:                    <xsl:value-of select="$Copyright" />
 140:                </fo:block>
 141:            </fo:static-content>
 142:
 143:            <fo:static-content flow-name="blank-before">
 144:            </fo:static-content>
 145:
 146:            <fo:static-content flow-name="blank-after">
 147:                <fo:block text-align="right">
 148:                    Page <fo:page-number />
 149:                </fo:block>
 150:                <fo:block text-align="center" font-family="Helvectica, Arial, sans-serif" font-size="8pt">
 151:                    <xsl:value-of select="$Copyright" />
 152:                </fo:block>
 153:            </fo:static-content>
 154:            
 155:            <!-- Content flow starts here -->
 156:            <fo:flow flow-name="xsl-region-body">
 157:                <xsl:apply-templates />
 158:            </fo:flow>
 159:        </fo:page-sequence>
 160:    </fo:root>
 161:</xsl:template>
 162:
 163:<!-- Templates -->
 164:<xsl:template match="PLAY">
 165:    <fo:block font-family="Helvectica, Arial, sans-serif" font-size="32pt" space-before="20pt" space-after="8pt"><xsl:value-of select="TITLE"/></fo:block>
 166:    <xsl:apply-templates select="ACT" />
 167:</xsl:template>
 168:
 169:<xsl:template match="ACT">
 170:    <fo:block font-family="Helvectica, Arial, sans-serif" font-size="24pt" space-before="20pt" space-after="8pt"><xsl:value-of select="TITLE"/></fo:block>
 171:    <xsl:apply-templates select="SCENE" />
 172:</xsl:template>
 173:
 174:<xsl:template match="SCENE">
 175:    <fo:block font-family="Helvectica, Arial, sans-serif" font-size="18pt" space-before="20pt" space-after="8pt"><xsl:value-of select="TITLE"/></fo:block>
 176:    <xsl:apply-templates select="SPEECH" />
 177:</xsl:template>
 178:
 179:<xsl:template match="SPEECH">
 180:    <fo:block font-family="Helvectica, Arial, sans-serif" font-size="12pt" space-before="16pt" space-after="8pt" font-weight="bold">
 181:        <xsl:value-of select="SPEAKER" />
 182:    </fo:block>
 183:    <xsl:apply-templates select="LINE" />
 184:</xsl:template>
 185:    
 186:<xsl:template match="LINE">
 187:    <fo:block font-family="Helvectica, Arial, sans-serif" font-size="12pt" space-after="4pt">
 188:        <xsl:value-of select="." />
 189:    </fo:block>
 190:</xsl:template>
 191:
 192:
 193:</xsl:stylesheet>