| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459 | 
							- <?xml version="1.0"?>
 
- <!-- 
 
-     This is the XSL FO configuration file for the Hibernate
 
-     Reference Documentation. It defines a custom titlepage and
 
-     the parameters for the A4 sized PDF printable output.
 
-     
 
-     It took me days to figure out this stuff and fix most of
 
-     the obvious bugs in the DocBook XSL distribution, so if you
 
-     use this stylesheet, give some credit back to the Hibernate
 
-     project.
 
-     
 
-     christian.bauer@bluemars.de
 
- -->
 
- <!DOCTYPE xsl:stylesheet [
 
-     <!ENTITY db_xsl_path        "../lib/docbook-xsl/">
 
-     <!ENTITY admon_gfx_path     "../images/admons/">
 
- ]>
 
- <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 
-                 version="1.0"
 
-                 xmlns="http://www.w3.org/TR/xhtml1/transitional"
 
-                 xmlns:fo="http://www.w3.org/1999/XSL/Format"
 
-                 exclude-result-prefixes="#default">
 
-                 
 
- <xsl:import href="&db_xsl_path;/fo/docbook.xsl"/>
 
- <!--###################################################
 
-                    Custom Title Page
 
-     ################################################### --> 
 
-     
 
-     <xsl:template name="book.titlepage.recto">
 
-         <fo:block>
 
-             <fo:table table-layout="fixed" width="175mm">
 
-                 <fo:table-column column-width="175mm"/>
 
-                 <fo:table-body>
 
-                     <fo:table-row>
 
-                         <fo:table-cell text-align="center">
 
-                             <fo:block>
 
-                                 <fo:external-graphic src="file:images/logo.gif"/>
 
-                             </fo:block>
 
-                             <fo:block font-family="Helvetica" font-size="22pt" padding-before="10mm">
 
-                                 <xsl:value-of select="bookinfo/subtitle"/> 
 
-                             </fo:block>
 
-                             <fo:block font-family="Helvetica" font-size="12pt" padding="10mm">
 
-                                 Version: <xsl:value-of select="bookinfo/releaseinfo"/>  
 
-                             </fo:block>
 
-                         </fo:table-cell>
 
-                     </fo:table-row>
 
-                 </fo:table-body>
 
-             </fo:table>
 
-         </fo:block>
 
-     </xsl:template>
 
-     <!-- Prevent blank pages in output -->    
 
-     <xsl:template name="book.titlepage.before.verso">
 
-     </xsl:template>
 
-     <xsl:template name="book.titlepage.verso">
 
-     </xsl:template>
 
-     <xsl:template name="book.titlepage.separator">
 
-     </xsl:template>
 
-         
 
- <!--###################################################
 
-                       Header
 
-     ################################################### -->  
 
-     <!-- More space in the center header for long text -->
 
-     <xsl:attribute-set name="header.content.properties">
 
-         <xsl:attribute name="font-family">
 
-             <xsl:value-of select="$body.font.family"/>
 
-         </xsl:attribute>
 
-         <xsl:attribute name="margin-left">-5em</xsl:attribute>
 
-         <xsl:attribute name="margin-right">-5em</xsl:attribute>
 
-     </xsl:attribute-set>
 
- <!--###################################################
 
-                       Custom Footer
 
-     ################################################### -->     
 
-     <!-- This footer prints the version number on the left side -->
 
-     <xsl:template name="footer.content">
 
-         <xsl:param name="pageclass" select="''"/>
 
-         <xsl:param name="sequence" select="''"/>
 
-         <xsl:param name="position" select="''"/>
 
-         <xsl:param name="gentext-key" select="''"/>
 
-         <xsl:variable name="Version">
 
-             <xsl:choose>
 
-                 <xsl:when test="//releaseinfo">
 
-                         <xsl:text>Acegi Security System for Spring </xsl:text><xsl:value-of select="//releaseinfo"/>
 
-                 </xsl:when>
 
-                 <xsl:otherwise>
 
-                     <!-- nop -->
 
-                 </xsl:otherwise>
 
-             </xsl:choose>
 
-         </xsl:variable>
 
-         <xsl:choose>
 
-             <xsl:when test="$sequence='blank'">
 
-             <xsl:choose>
 
-                 <xsl:when test="$double.sided != 0 and $position = 'left'">
 
-                 <xsl:value-of select="$Version"/>
 
-                 </xsl:when>
 
-                 <xsl:when test="$double.sided = 0 and $position = 'center'">
 
-                 <!-- nop -->
 
-                 </xsl:when>
 
-                 <xsl:otherwise>
 
-                 <fo:page-number/>
 
-                 </xsl:otherwise>
 
-             </xsl:choose>
 
-             </xsl:when>
 
-             <xsl:when test="$pageclass='titlepage'">
 
-             <!-- nop: other titlepage sequences have no footer -->
 
-             </xsl:when>
 
-             <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='left'">
 
-             <fo:page-number/>
 
-             </xsl:when>
 
-             <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='right'">
 
-             <fo:page-number/>
 
-             </xsl:when>
 
-             <xsl:when test="$double.sided = 0 and $position='right'">
 
-             <fo:page-number/>
 
-             </xsl:when>
 
-             <xsl:when test="$double.sided != 0 and $sequence = 'odd' and $position='left'">
 
-             <xsl:value-of select="$Version"/>
 
-             </xsl:when>
 
-             <xsl:when test="$double.sided != 0 and $sequence = 'even' and $position='right'">
 
-             <xsl:value-of select="$Version"/>
 
-             </xsl:when>
 
-             <xsl:when test="$double.sided = 0 and $position='left'">
 
-             <xsl:value-of select="$Version"/>
 
-             </xsl:when>
 
-             <xsl:otherwise>
 
-             <!-- nop -->
 
-             </xsl:otherwise>
 
-         </xsl:choose>
 
-     </xsl:template>    
 
-     
 
- <!--###################################################
 
-                    Custom Toc Line
 
-     ################################################### -->
 
-     
 
-     <!-- The default DocBook XSL TOC printing is seriously broken... -->
 
-     <xsl:template name="toc.line">
 
-         <xsl:variable name="id">
 
-             <xsl:call-template name="object.id"/>
 
-         </xsl:variable>
 
-         <xsl:variable name="label">
 
-             <xsl:apply-templates select="." mode="label.markup"/>
 
-         </xsl:variable>
 
-         <!-- justify-end removed from block attributes (space problem in title.markup) -->
 
-         <fo:block  end-indent="{$toc.indent.width}pt"
 
-                    last-line-end-indent="-{$toc.indent.width}pt"
 
-                    white-space-treatment="preserve"
 
-                    white-space-collapse="false">
 
-             <fo:inline keep-with-next.within-line="always">
 
-                 <!-- print Chapters in bold style -->
 
-                 <xsl:choose>
 
-                     <xsl:when test="local-name(.) = 'chapter'">
 
-                         <xsl:attribute name="font-weight">bold</xsl:attribute>
 
-                     </xsl:when>
 
-                 </xsl:choose>        
 
-                 <fo:basic-link internal-destination="{$id}">
 
-                     <xsl:if test="$label != ''">
 
-                         <xsl:copy-of select="$label"/>
 
-                         <fo:inline white-space-treatment="preserve"
 
-                                     white-space-collapse="false">
 
-                             <xsl:value-of select="$autotoc.label.separator"/>
 
-                         </fo:inline>
 
-                     </xsl:if>
 
-                     <xsl:apply-templates select="." mode="title.markup"/>
 
-                 </fo:basic-link>
 
-             </fo:inline>
 
-             <fo:inline keep-together.within-line="always">
 
-             <xsl:text> </xsl:text>
 
-             <fo:leader leader-pattern="dots"
 
-                         leader-pattern-width="3pt"
 
-                         leader-alignment="reference-area"
 
-                         keep-with-next.within-line="always"/>
 
-             <xsl:text> </xsl:text>
 
-             <fo:basic-link internal-destination="{$id}">
 
-                 <fo:page-number-citation ref-id="{$id}"/>
 
-             </fo:basic-link>
 
-             </fo:inline>
 
-         </fo:block>
 
-     </xsl:template>
 
-     
 
- <!--###################################################
 
-                       Extensions
 
-     ################################################### -->  
 
-     <!-- These extensions are required for table printing and other stuff -->
 
-     <xsl:param name="use.extensions">1</xsl:param>
 
-     <xsl:param name="tablecolumns.extension">0</xsl:param>
 
-     <xsl:param name="callout.extensions">1</xsl:param>
 
-     <!-- FOP provide only PDF Bookmarks at the moment -->
 
-     <xsl:param name="fop.extensions">1</xsl:param>
 
- <!--###################################################
 
-                       Table Of Contents
 
-     ################################################### -->   
 
-     <!-- Generate the TOCs for named components only -->
 
-     <xsl:param name="generate.toc">
 
-         book   toc
 
-     </xsl:param>
 
-     
 
-     <!-- Show only Sections up to level 3 in the TOCs -->
 
-     <xsl:param name="toc.section.depth">2</xsl:param>
 
-     
 
-     <!-- Dot and Whitespace as separator in TOC between Label and Title-->
 
-     <xsl:param name="autotoc.label.separator" select="'.  '"/>
 
-         
 
- <!--###################################################
 
-                    Paper & Page Size
 
-     ################################################### -->  
 
-     
 
-     <!-- Paper type, no headers on blank pages, no double sided printing -->
 
-     <xsl:param name="paper.type" select="'A4'"/>
 
-     <xsl:param name="double.sided">0</xsl:param>
 
-     <xsl:param name="headers.on.blank.pages">0</xsl:param>
 
-     <xsl:param name="footers.on.blank.pages">0</xsl:param>
 
-     <!-- Space between paper border and content (chaotic stuff, don't touch) -->
 
-     <xsl:param name="page.margin.top">5mm</xsl:param>
 
-     <xsl:param name="region.before.extent">10mm</xsl:param>
 
-     <xsl:param name="body.margin.top">10mm</xsl:param>
 
-     
 
-     <xsl:param name="body.margin.bottom">15mm</xsl:param>
 
-     <xsl:param name="region.after.extent">10mm</xsl:param>
 
-     <xsl:param name="page.margin.bottom">0mm</xsl:param>
 
-     
 
-     <xsl:param name="page.margin.outer">18mm</xsl:param>
 
-     <xsl:param name="page.margin.inner">18mm</xsl:param>
 
-     <!-- No intendation of Titles -->
 
-     <xsl:param name="title.margin.left">0pc</xsl:param>
 
- <!--###################################################
 
-                    Fonts & Styles
 
-     ################################################### -->      
 
-     <!-- Default Font size -->
 
-     <xsl:param name="body.font.master">11</xsl:param>
 
-     <xsl:param name="body.font.small">8</xsl:param>
 
-     <!-- Line height in body text -->
 
-     <xsl:param name="line-height">1.4</xsl:param>
 
-     <!-- Monospaced fonts are smaller than regular text -->
 
-     <xsl:attribute-set name="monospace.properties">
 
-         <xsl:attribute name="font-family">
 
-             <xsl:value-of select="$monospace.font.family"/>
 
-         </xsl:attribute>
 
-         <xsl:attribute name="font-size">0.8em</xsl:attribute>
 
-     </xsl:attribute-set>
 
-     
 
- <!--###################################################
 
-                    Tables
 
-     ################################################### -->
 
-     <!-- The table width should be adapted to the paper size -->
 
-     <xsl:param name="default.table.width">17.4cm</xsl:param>
 
-     <!-- Some padding inside tables -->    
 
-     <xsl:attribute-set name="table.cell.padding">
 
-         <xsl:attribute name="padding-left">4pt</xsl:attribute>
 
-         <xsl:attribute name="padding-right">4pt</xsl:attribute>
 
-         <xsl:attribute name="padding-top">4pt</xsl:attribute>
 
-         <xsl:attribute name="padding-bottom">4pt</xsl:attribute>
 
-     </xsl:attribute-set>
 
-     
 
-     <!-- Only hairlines as frame and cell borders in tables -->
 
-     <xsl:param name="table.frame.border.thickness">0.1pt</xsl:param>
 
-     <xsl:param name="table.cell.border.thickness">0.1pt</xsl:param>
 
-         
 
- <!--###################################################
 
-                          Labels
 
-     ################################################### -->   
 
-     <!-- Label Chapters and Sections (numbering) -->
 
-     <xsl:param name="chapter.autolabel">1</xsl:param>
 
-     <xsl:param name="section.autolabel" select="1"/>
 
-     <xsl:param name="section.label.includes.component.label" select="1"/>
 
- <!--###################################################
 
-                          Titles
 
-     ################################################### -->   
 
-     
 
-     <!-- Chapter title size -->
 
-     <xsl:attribute-set name="chapter.titlepage.recto.style">
 
-         <xsl:attribute name="text-align">left</xsl:attribute>
 
-         <xsl:attribute name="font-weight">bold</xsl:attribute>
 
-         <xsl:attribute name="font-size">
 
-             <xsl:value-of select="$body.font.master * 1.8"/>
 
-             <xsl:text>pt</xsl:text>
 
-         </xsl:attribute>        
 
-     </xsl:attribute-set>
 
-     <!-- Why is the font-size for chapters hardcoded in the XSL FO templates? 
 
-         Let's remove it, so this sucker can use our attribute-set only... -->
 
-     <xsl:template match="title" mode="chapter.titlepage.recto.auto.mode">
 
-         <fo:block xmlns:fo="http://www.w3.org/1999/XSL/Format"
 
-                   xsl:use-attribute-sets="chapter.titlepage.recto.style">
 
-             <xsl:call-template name="component.title">
 
-                 <xsl:with-param name="node" select="ancestor-or-self::chapter[1]"/>
 
-             </xsl:call-template>
 
-             </fo:block>
 
-     </xsl:template>
 
-     
 
-     <!-- Sections 1, 2 and 3 titles have a small bump factor and padding -->    
 
-     <xsl:attribute-set name="section.title.level1.properties">
 
-         <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
 
-         <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
 
-         <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
 
-         <xsl:attribute name="font-size">
 
-             <xsl:value-of select="$body.font.master * 1.5"/>
 
-             <xsl:text>pt</xsl:text>
 
-         </xsl:attribute>
 
-         <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
 
-         <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
 
-         <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
 
-     </xsl:attribute-set>
 
-     <xsl:attribute-set name="section.title.level2.properties">
 
-         <xsl:attribute name="space-before.optimum">0.6em</xsl:attribute>
 
-         <xsl:attribute name="space-before.minimum">0.6em</xsl:attribute>
 
-         <xsl:attribute name="space-before.maximum">0.6em</xsl:attribute>
 
-         <xsl:attribute name="font-size">
 
-             <xsl:value-of select="$body.font.master * 1.25"/>
 
-             <xsl:text>pt</xsl:text>
 
-         </xsl:attribute>
 
-         <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
 
-         <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
 
-         <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
 
-     </xsl:attribute-set>
 
-     <xsl:attribute-set name="section.title.level3.properties">
 
-         <xsl:attribute name="space-before.optimum">0.4em</xsl:attribute>
 
-         <xsl:attribute name="space-before.minimum">0.4em</xsl:attribute>
 
-         <xsl:attribute name="space-before.maximum">0.4em</xsl:attribute>
 
-         <xsl:attribute name="font-size">
 
-             <xsl:value-of select="$body.font.master * 1.0"/>
 
-             <xsl:text>pt</xsl:text>
 
-         </xsl:attribute>
 
-         <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
 
-         <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
 
-         <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
 
-     </xsl:attribute-set>
 
-     <!-- Titles of formal objects (tables, examples, ...) -->
 
-     <xsl:attribute-set name="formal.title.properties" use-attribute-sets="normal.para.spacing">
 
-         <xsl:attribute name="font-weight">bold</xsl:attribute>
 
-         <xsl:attribute name="font-size">
 
-             <xsl:value-of select="$body.font.master"/>
 
-             <xsl:text>pt</xsl:text>
 
-         </xsl:attribute>
 
-         <xsl:attribute name="hyphenate">false</xsl:attribute>
 
-         <xsl:attribute name="space-after.minimum">0.4em</xsl:attribute>
 
-         <xsl:attribute name="space-after.optimum">0.6em</xsl:attribute>
 
-         <xsl:attribute name="space-after.maximum">0.8em</xsl:attribute>
 
-     </xsl:attribute-set>    
 
- <!--###################################################
 
-                       Programlistings
 
-     ################################################### -->  
 
-     
 
-     <!-- Verbatim text formatting (programlistings) -->
 
-     <xsl:attribute-set name="monospace.verbatim.properties">
 
-         <xsl:attribute name="font-size">
 
-             <xsl:value-of select="$body.font.small * 1.0"/>
 
-             <xsl:text>pt</xsl:text>
 
-         </xsl:attribute>
 
-     </xsl:attribute-set>
 
-     
 
-     <xsl:attribute-set name="verbatim.properties">
 
-         <xsl:attribute name="space-before.minimum">1em</xsl:attribute>
 
-         <xsl:attribute name="space-before.optimum">1em</xsl:attribute>
 
-         <xsl:attribute name="space-before.maximum">1em</xsl:attribute>
 
-         <!-- alef: commented out because footnotes were screwed because of it -->
 
-         <!--<xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
 
-         <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
 
-         <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>-->
 
-         <xsl:attribute name="border-color">#444444</xsl:attribute>
 
-         <xsl:attribute name="border-style">solid</xsl:attribute>
 
-         <xsl:attribute name="border-width">0.1pt</xsl:attribute>      
 
-         <xsl:attribute name="padding-top">0.5em</xsl:attribute>      
 
-         <xsl:attribute name="padding-left">0.5em</xsl:attribute>      
 
-         <xsl:attribute name="padding-right">0.5em</xsl:attribute>      
 
-         <xsl:attribute name="padding-bottom">0.5em</xsl:attribute>      
 
-         <xsl:attribute name="margin-left">0.5em</xsl:attribute>      
 
-         <xsl:attribute name="margin-right">0.5em</xsl:attribute>      
 
-     </xsl:attribute-set>    
 
-     <!-- Shade (background) programlistings -->    
 
-     <xsl:param name="shade.verbatim">1</xsl:param>
 
-     <xsl:attribute-set name="shade.verbatim.style">
 
-         <xsl:attribute name="background-color">#F0F0F0</xsl:attribute>
 
-     </xsl:attribute-set>
 
-                     
 
- <!--###################################################
 
-                          Callouts
 
-     ################################################### -->   
 
-     <!-- Use images for callouts instead of (1) (2) (3) -->
 
-     <xsl:param name="callout.graphics">0</xsl:param>
 
-     <xsl:param name="callout.unicode">1</xsl:param>
 
-     
 
-     <!-- Place callout marks at this column in annotated areas -->
 
-     <xsl:param name="callout.defaultcolumn">90</xsl:param>
 
- <!--###################################################
 
-                        Admonitions
 
-     ################################################### -->   
 
-     <!-- Use nice graphics for admonitions -->
 
-     <xsl:param name="admon.graphics">'1'</xsl:param>
 
-     <xsl:param name="admon.graphics.path">&admon_gfx_path;</xsl:param>
 
- <!--###################################################
 
-                           Misc
 
-     ################################################### -->   
 
-     <!-- Placement of titles -->
 
-     <xsl:param name="formal.title.placement">
 
-         figure after
 
-         example before
 
-         equation before
 
-         table before
 
-         procedure before
 
-     </xsl:param>
 
-     
 
-     <!-- Format Variable Lists as Blocks (prevents horizontal overflow) -->
 
-     <xsl:param name="variablelist.as.blocks">1</xsl:param>
 
-     <!-- The horrible list spacing problems -->
 
-     <xsl:attribute-set name="list.block.spacing">
 
-         <xsl:attribute name="space-before.optimum">0.8em</xsl:attribute>
 
-         <xsl:attribute name="space-before.minimum">0.8em</xsl:attribute>
 
-         <xsl:attribute name="space-before.maximum">0.8em</xsl:attribute>
 
-         <xsl:attribute name="space-after.optimum">0.1em</xsl:attribute>
 
-         <xsl:attribute name="space-after.minimum">0.1em</xsl:attribute>
 
-         <xsl:attribute name="space-after.maximum">0.1em</xsl:attribute>
 
-     </xsl:attribute-set>
 
-     
 
- </xsl:stylesheet>
 
 
  |