plain.xsl 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563
  1. <?xml version="1.0"?>
  2. <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
  3. xmlns:fo="http://www.w3.org/1999/XSL/Format"
  4. xmlns:db="http://docbook.org/ns/docbook"
  5. xmlns:dbs="http://docbook.org/ns/docbook-slides"
  6. xmlns:exsl="http://exslt.org/common"
  7. exclude-result-prefixes="dbs db"
  8. extension-element-prefixes="exsl"
  9. version="1.0">
  10. <xsl:import href="../../fo/docbook.xsl"/>
  11. <xsl:import href="../common/common.xsl"/>
  12. <xsl:include href="plain-titlepage.xsl"/>
  13. <xsl:include href="param.xsl"/>
  14. <xsl:output indent="yes"/>
  15. <xsl:param name="local.l10n.xml" select="document('')"/>
  16. <i18n xmlns="http://docbook.sourceforge.net/xmlns/l10n/1.0">
  17. <l:l10n xmlns:l="http://docbook.sourceforge.net/xmlns/l10n/1.0" language="en">
  18. <l:gentext key="Continued" text="(Continued)"/>
  19. <l:gentext key="Speakernotes" text="Speaker Notes"/>
  20. <l:gentext key="Handoutnotes" text="Handout Notes"/>
  21. <l:context name="title">
  22. <l:template name="slides" text="%t"/>
  23. <l:template name="foilgroup" text="%t"/>
  24. <l:template name="foil" text="%t"/>
  25. </l:context>
  26. </l:l10n>
  27. </i18n>
  28. <!-- Start of overrides -->
  29. <xsl:param name="page.margin.top" select="'0.25in'"/>
  30. <xsl:param name="page.margin.bottom" select="'0.25in'"/>
  31. <xsl:param name="page.margin.inner" select="'0.25in'"/>
  32. <xsl:param name="page.margin.outer" select="'0.25in'"/>
  33. <xsl:param name="body.margin.top" select="'1in'"/>
  34. <xsl:param name="body.margin.bottom" select="'0.5in'"/>
  35. <xsl:param name="region.before.extent" select="'0.75in'"/>
  36. <xsl:param name="region.after.extent" select="'0.5in'"/>
  37. <xsl:param name="column.count.body" select="1"/>
  38. <xsl:param name="body.font.size">20</xsl:param>
  39. <xsl:param name="callout.icon.size" select="'40pt'"/>
  40. <xsl:param name="alignment" select="'start'"/>
  41. <xsl:param name="preferred.mediaobject.role" select="'print'"/>
  42. <xsl:param name="page.orientation" select="'landscape'"/>
  43. <xsl:variable name="root.elements" select="' slides '"/>
  44. <xsl:attribute-set name="formal.title.properties"
  45. use-attribute-sets="normal.para.spacing">
  46. <xsl:attribute name="font-weight">bold</xsl:attribute>
  47. <xsl:attribute name="font-size">
  48. <xsl:value-of select="$body.font.master * 1.2"/>
  49. <xsl:text>pt</xsl:text>
  50. </xsl:attribute>
  51. <xsl:attribute name="hyphenate">false</xsl:attribute>
  52. <xsl:attribute name="space-after.minimum">8pt</xsl:attribute>
  53. <xsl:attribute name="space-after.optimum">6pt</xsl:attribute>
  54. <xsl:attribute name="space-after.maximum">10pt</xsl:attribute>
  55. </xsl:attribute-set>
  56. <xsl:attribute-set name="list.block.spacing">
  57. <xsl:attribute name="space-before.optimum">12pt</xsl:attribute>
  58. <xsl:attribute name="space-before.minimum">8pt</xsl:attribute>
  59. <xsl:attribute name="space-before.maximum">14pt</xsl:attribute>
  60. <xsl:attribute name="space-after.optimum">0pt</xsl:attribute>
  61. <xsl:attribute name="space-after.minimum">0pt</xsl:attribute>
  62. <xsl:attribute name="space-after.maximum">0pt</xsl:attribute>
  63. </xsl:attribute-set>
  64. <xsl:attribute-set name="list.item.spacing">
  65. <xsl:attribute name="space-before.optimum">6pt</xsl:attribute>
  66. <xsl:attribute name="space-before.minimum">4pt</xsl:attribute>
  67. <xsl:attribute name="space-before.maximum">8pt</xsl:attribute>
  68. </xsl:attribute-set>
  69. <xsl:attribute-set name="normal.para.spacing">
  70. <xsl:attribute name="space-before.optimum">8pt</xsl:attribute>
  71. <xsl:attribute name="space-before.minimum">6pt</xsl:attribute>
  72. <xsl:attribute name="space-before.maximum">10pt</xsl:attribute>
  73. </xsl:attribute-set>
  74. <xsl:attribute-set name="orderedlist.properties">
  75. <xsl:attribute name="font-size">
  76. <xsl:value-of select="$body.font.size"/>
  77. </xsl:attribute>
  78. </xsl:attribute-set>
  79. <xsl:attribute-set name="footnote.properties">
  80. <xsl:attribute name="font-size">
  81. <xsl:value-of select="$body.font.size * 0.8"/>
  82. </xsl:attribute>
  83. </xsl:attribute-set>
  84. <xsl:attribute-set name="slides.titlepage.recto.style">
  85. <xsl:attribute name="font-family">
  86. <xsl:value-of select="$slide.font.family"/>
  87. </xsl:attribute>
  88. </xsl:attribute-set>
  89. <xsl:attribute-set name="slides.titlepage.verso.style">
  90. <xsl:attribute name="font-family">
  91. <xsl:value-of select="$slide.font.family"/>
  92. </xsl:attribute>
  93. </xsl:attribute-set>
  94. <xsl:template name="bibliography.titlepage"/>
  95. <!-- Do not add db namespace to dbs elements -->
  96. <xsl:template match="*[namespace-uri() = 'http://docbook.org/ns/docbook-slides']" mode="addNS">
  97. <xsl:copy-of select="."/>
  98. </xsl:template>
  99. <!-- End of overrides -->
  100. <xsl:template name="user.pagemasters">
  101. <fo:simple-page-master master-name="slides-titlepage-master"
  102. xsl:use-attribute-sets="slides.titlepage.master.properties">
  103. <fo:region-body xsl:use-attribute-sets="slides.titlepage.region-body.properties"/>
  104. </fo:simple-page-master>
  105. <fo:simple-page-master master-name="slides-foil-master"
  106. xsl:use-attribute-sets="foil.master.properties">
  107. <fo:region-body xsl:use-attribute-sets="foil.region-body.properties"/>
  108. <fo:region-before region-name="xsl-region-before-foil" xsl:use-attribute-sets="foil.region-before.properties"/>
  109. <fo:region-after region-name="xsl-region-after-foil" xsl:use-attribute-sets="foil.region-after.properties"/>
  110. </fo:simple-page-master>
  111. <fo:simple-page-master master-name="slides-foil-continued-master"
  112. xsl:use-attribute-sets="foil.master.properties">
  113. <fo:region-body xsl:use-attribute-sets="foil.region-body.properties"/>
  114. <fo:region-before region-name="xsl-region-before-foil-continued" xsl:use-attribute-sets="foil.region-before.properties"/>
  115. <fo:region-after region-name="xsl-region-after-foil-continued" xsl:use-attribute-sets="foil.region-after.properties"/>
  116. </fo:simple-page-master>
  117. <fo:page-sequence-master master-name="slides-titlepage">
  118. <fo:repeatable-page-master-alternatives>
  119. <fo:conditional-page-master-reference master-reference="slides-titlepage-master"/>
  120. </fo:repeatable-page-master-alternatives>
  121. </fo:page-sequence-master>
  122. <fo:page-sequence-master master-name="slides-foil">
  123. <fo:repeatable-page-master-alternatives>
  124. <fo:conditional-page-master-reference master-reference="slides-foil-master"
  125. page-position="first"/>
  126. <fo:conditional-page-master-reference master-reference="slides-foil-continued-master"/>
  127. </fo:repeatable-page-master-alternatives>
  128. </fo:page-sequence-master>
  129. </xsl:template>
  130. <xsl:template name="presentation.title">
  131. <xsl:call-template name="get.title">
  132. <xsl:with-param name="ctx" select="/dbs:slides"/>
  133. </xsl:call-template>
  134. </xsl:template>
  135. <xsl:template name="slides.bookmarks">
  136. <fo:bookmark-tree>
  137. <xsl:apply-templates select="/dbs:slides/dbs:foil|/dbs:slides/dbs:foilgroup" mode="bookmark.mode"/>
  138. </fo:bookmark-tree>
  139. </xsl:template>
  140. <xsl:template match="dbs:foil|dbs:foilgroup" mode="bookmark.mode">
  141. <fo:bookmark>
  142. <xsl:attribute name="internal-destination">
  143. <xsl:call-template name="object.id"/>
  144. </xsl:attribute>
  145. <fo:bookmark-title>
  146. <xsl:call-template name="get.title"/>
  147. </fo:bookmark-title>
  148. <xsl:if test="self::dbs:foilgroup">
  149. <xsl:apply-templates select="dbs:foil" mode="bookmark.mode"/>
  150. </xsl:if>
  151. </fo:bookmark>
  152. </xsl:template>
  153. <xsl:template match="db:author" mode="titlepage.mode">
  154. <fo:block>
  155. <xsl:apply-templates select="db:personname" mode="titlepage.mode"/>
  156. </fo:block>
  157. <fo:block>
  158. <xsl:apply-templates select="db:affiliation" mode="titlepage.mode"/>
  159. </fo:block>
  160. <fo:block>
  161. <xsl:apply-templates select="db:email" mode="titlepage.mode"/>
  162. </fo:block>
  163. </xsl:template>
  164. <xsl:template match="/">
  165. <fo:root xsl:use-attribute-sets="slides.properties">
  166. <fo:layout-master-set>
  167. <xsl:call-template name="user.pagemasters"/>
  168. </fo:layout-master-set>
  169. <xsl:call-template name="slides.bookmarks"/>
  170. <xsl:if test="$generate.titlepage != 0">
  171. <fo:page-sequence hyphenate="{$hyphenate}"
  172. master-reference="slides-titlepage">
  173. <xsl:attribute name="language">
  174. <xsl:call-template name="l10n.language"/>
  175. </xsl:attribute>
  176. <fo:flow flow-name="xsl-region-body">
  177. <fo:block>
  178. <xsl:apply-templates select="/dbs:slides" mode="titlepage"/>
  179. </fo:block>
  180. </fo:flow>
  181. </fo:page-sequence>
  182. </xsl:if>
  183. <xsl:apply-templates select="/dbs:slides/dbs:foil|/dbs:slides/dbs:foilgroup"/>
  184. </fo:root>
  185. </xsl:template>
  186. <xsl:template match="dbs:slides" mode="titlepage">
  187. <xsl:call-template name="slides.titlepage"/>
  188. </xsl:template>
  189. <xsl:template name="page.template">
  190. <xsl:param name="mode" select="'normal'"/>
  191. <xsl:param name="title">
  192. <xsl:call-template name="get.title"/>
  193. </xsl:param>
  194. <xsl:param name="subtitle">
  195. <xsl:call-template name="get.subtitle"/>
  196. </xsl:param>
  197. <fo:page-sequence master-reference="slides-foil" xsl:use-attribute-sets="foil.page-sequence.properties">
  198. <xsl:attribute name="language">
  199. <xsl:call-template name="l10n.language"/>
  200. </xsl:attribute>
  201. <xsl:attribute name="id">
  202. <xsl:call-template name="object.id"/>
  203. </xsl:attribute>
  204. <fo:static-content flow-name="xsl-region-before-foil">
  205. <fo:block xsl:use-attribute-sets="foil.header.properties">
  206. <fo:block xsl:use-attribute-sets="foil.title.properties">
  207. <xsl:value-of select="$title"/>
  208. </fo:block>
  209. <fo:block xsl:use-attribute-sets="foil.subtitle.properties">
  210. <xsl:value-of select="$subtitle"/>
  211. </fo:block>
  212. </fo:block>
  213. </fo:static-content>
  214. <fo:static-content flow-name="xsl-region-before-foil-continued">
  215. <fo:block xsl:use-attribute-sets="foil.header.properties">
  216. <fo:block xsl:use-attribute-sets="foil.title.properties">
  217. <xsl:value-of select="$title"/>
  218. <xsl:text> </xsl:text>
  219. <xsl:call-template name="gentext">
  220. <xsl:with-param name="key" select="'Continued'"/>
  221. </xsl:call-template>
  222. </fo:block>
  223. </fo:block>
  224. </fo:static-content>
  225. <fo:static-content flow-name="xsl-region-after-foil">
  226. <xsl:call-template name="generate.footer"/>
  227. </fo:static-content>
  228. <fo:static-content flow-name="xsl-region-after-foil-continued">
  229. <xsl:call-template name="generate.footer"/>
  230. </fo:static-content>
  231. <fo:flow flow-name="xsl-region-body">
  232. <fo:block xsl:use-attribute-sets="foil.properties">
  233. <xsl:choose>
  234. <xsl:when test="$mode = 'normal'">
  235. <xsl:apply-templates select="*[not(self::dbs:foil)][not(self::db:info)][not(self::db:title)][not(self::db:titleabbrev)][not(self::db:subtitle)][not(self::dbs:speakernotes)][not(self::dbs:handoutnotes)]"/>
  236. <xsl:if test="self::dbs:foilgroup and ($generate.foilgroup.toc != 0)">
  237. <xsl:call-template name="foilgroup.generate.toc"/>
  238. </xsl:if>
  239. </xsl:when>
  240. <xsl:when test="$mode = 'speakernotes'">
  241. <xsl:apply-templates select="dbs:speakernotes"/>
  242. </xsl:when>
  243. <xsl:when test="$mode = 'handoutnotes'">
  244. <xsl:apply-templates select="dbs:handoutnotes"/>
  245. </xsl:when>
  246. </xsl:choose>
  247. </fo:block>
  248. </fo:flow>
  249. </fo:page-sequence>
  250. </xsl:template>
  251. <xsl:template match="dbs:foil|dbs:foilgroup">
  252. <xsl:call-template name="page.template"/>
  253. <xsl:call-template name="generate.slide.notes"/>
  254. <xsl:if test="self::dbs:foilgroup">
  255. <xsl:apply-templates select="dbs:foil"/>
  256. </xsl:if>
  257. </xsl:template>
  258. <xsl:template name="generate.slide.notes">
  259. <xsl:variable name="subtitle.handoutnotes">
  260. <xsl:call-template name="gentext">
  261. <xsl:with-param name="key" select="'Handoutnotes'"/>
  262. </xsl:call-template>
  263. </xsl:variable>
  264. <xsl:variable name="subtitle.speakernotes">
  265. <xsl:call-template name="gentext">
  266. <xsl:with-param name="key" select="'Speakernotes'"/>
  267. </xsl:call-template>
  268. </xsl:variable>
  269. <xsl:if test="($generate.handoutnotes != 0) and ./dbs:handoutnotes">
  270. <xsl:call-template name="page.template">
  271. <xsl:with-param name="mode" select="'handoutnotes'"/>
  272. <xsl:with-param name="subtitle" select="$subtitle.handoutnotes"/>
  273. </xsl:call-template>
  274. </xsl:if>
  275. <xsl:if test="($generate.speakernotes != 0) and ./dbs:speakernotes">
  276. <xsl:call-template name="page.template">
  277. <xsl:with-param name="mode" select="'speakernotes'"/>
  278. <xsl:with-param name="subtitle" select="$subtitle.speakernotes"/>
  279. </xsl:call-template>
  280. </xsl:if>
  281. </xsl:template>
  282. <xsl:template match="dbs:handoutnotes">
  283. <fo:block xsl:use-attribute-sets="handoutnotes.properties">
  284. <xsl:apply-templates/>
  285. </fo:block>
  286. </xsl:template>
  287. <xsl:template match="dbs:speakernotes">
  288. <fo:block xsl:use-attribute-sets="speakernotes.properties">
  289. <xsl:apply-templates/>
  290. </fo:block>
  291. </xsl:template>
  292. <xsl:template match="dbs:block">
  293. <xsl:apply-templates/>
  294. </xsl:template>
  295. <xsl:template name="generate.footer">
  296. <fo:block xsl:use-attribute-sets="foil.footer.properties">
  297. <fo:table>
  298. <fo:table-column column-number="1" column-width="33%"/>
  299. <fo:table-column column-number="2" column-width="34%"/>
  300. <fo:table-column column-number="3" column-width="33%"/>
  301. <fo:table-body>
  302. <fo:table-row height="14pt">
  303. <fo:table-cell text-align="left">
  304. <xsl:call-template name="footer.left"/>
  305. </fo:table-cell>
  306. <fo:table-cell text-align="center">
  307. <xsl:call-template name="footer.center"/>
  308. </fo:table-cell>
  309. <fo:table-cell text-align="right">
  310. <xsl:call-template name="footer.right"/>
  311. </fo:table-cell>
  312. </fo:table-row>
  313. </fo:table-body>
  314. </fo:table>
  315. </fo:block>
  316. </xsl:template>
  317. <xsl:template name="footer.left">
  318. <fo:block/>
  319. </xsl:template>
  320. <xsl:template name="footer.center">
  321. <xsl:if test="($generate.copyright != 0) and /dbs:slides/db:info/db:copyright">
  322. <fo:block>
  323. <xsl:call-template name="gentext">
  324. <xsl:with-param name="key" select="'Copyright'"/>
  325. </xsl:call-template>
  326. <xsl:call-template name="gentext.space"/>
  327. <xsl:text>&#xa9;</xsl:text>
  328. <xsl:call-template name="gentext.space"/>
  329. <xsl:value-of select="/dbs:slides/db:info/db:copyright/db:year"/>
  330. <xsl:call-template name="gentext.space"/>
  331. <xsl:value-of select="/dbs:slides/db:info/db:copyright/db:holder"/>
  332. </fo:block>
  333. </xsl:if>
  334. <xsl:if test="($generate.pubdate != 0) and /dbs:slides/db:info/db:pubdate">
  335. <xsl:call-template name="slide.pubdate"/>
  336. </xsl:if>
  337. </xsl:template>
  338. <xsl:template name="footer.right">
  339. <fo:block>
  340. <xsl:if test="$generate.page.number != 'no'">
  341. <fo:page-number/>
  342. </xsl:if>
  343. <xsl:if test="$generate.page.number = 'full'">
  344. <xsl:text>&#160;/&#160;</xsl:text>
  345. <fo:page-number-citation>
  346. <xsl:attribute name="ref-id">
  347. <xsl:call-template name="object.id">
  348. <xsl:with-param name="object" select="(//dbs:foilgroup|//dbs:foil)[last()]"/>
  349. </xsl:call-template>
  350. </xsl:attribute>
  351. </fo:page-number-citation>
  352. </xsl:if>
  353. </fo:block>
  354. </xsl:template>
  355. <xsl:template name="slide.pubdate">
  356. <fo:block>
  357. <xsl:call-template name="gentext">
  358. <xsl:with-param name="key" select="'Published'"/>
  359. </xsl:call-template>
  360. <xsl:text>: </xsl:text>
  361. <xsl:value-of select="/dbs:slides/db:info/db:pubdate"/>
  362. </fo:block>
  363. </xsl:template>
  364. <xsl:template name="foilgroup.generate.toc">
  365. <xsl:choose>
  366. <xsl:when test="$generate.foilgroup.numbered.toc != 0">
  367. <fo:list-block xsl:use-attribute-sets="list.block.spacing orderedlist.properties">
  368. <xsl:for-each select="./dbs:foil">
  369. <fo:list-item xsl:use-attribute-sets="list.item.spacing">
  370. <fo:list-item-label end-indent="label-end()" xsl:use-attribute-sets="orderedlist.label.properties">
  371. <fo:block>
  372. <xsl:value-of select="position()"/>
  373. </fo:block>
  374. </fo:list-item-label>
  375. <fo:list-item-body start-indent="body-start()">
  376. <fo:block>
  377. <xsl:call-template name="get.title"/>
  378. </fo:block>
  379. </fo:list-item-body>
  380. </fo:list-item>
  381. </xsl:for-each>
  382. </fo:list-block>
  383. </xsl:when>
  384. <xsl:otherwise>
  385. <fo:list-block xsl:use-attribute-sets="list.block.spacing itemizedlist.properties">
  386. <xsl:for-each select="./dbs:foil">
  387. <fo:list-item xsl:use-attribute-sets="list.item.spacing">
  388. <fo:list-item-label end-indent="label-end()" xsl:use-attribute-sets="itemizedlist.label.properties">
  389. <fo:block>
  390. <xsl:call-template name="itemizedlist.label.markup">
  391. <xsl:with-param name="itemsymbol">
  392. <xsl:call-template name="list.itemsymbol"/>
  393. </xsl:with-param>
  394. </xsl:call-template>
  395. </fo:block>
  396. </fo:list-item-label>
  397. <fo:list-item-body start-indent="body-start()">
  398. <fo:block>
  399. <xsl:call-template name="get.title"/>
  400. </fo:block>
  401. </fo:list-item-body>
  402. </fo:list-item>
  403. </xsl:for-each>
  404. </fo:list-block>
  405. </xsl:otherwise>
  406. </xsl:choose>
  407. </xsl:template>
  408. <xsl:template match="*[namespace-uri() = 'http://www.w3.org/2000/svg']">
  409. <xsl:call-template name="handle.embedded">
  410. <xsl:with-param name="modeParam" select="$svg.embedding.mode"/>
  411. <xsl:with-param name="fileExt" select="'.svg'"/>
  412. </xsl:call-template>
  413. </xsl:template>
  414. <xsl:template match="*[namespace-uri() = 'http://www.w3.org/1998/Math/MathML']">
  415. <xsl:call-template name="handle.embedded">
  416. <xsl:with-param name="modeParam" select="$mml.embedding.mode"/>
  417. <xsl:with-param name="fileExt" select="'.mml'"/>
  418. </xsl:call-template>
  419. </xsl:template>
  420. <xsl:template name="handle.embedded">
  421. <xsl:param name="modeParam">inline</xsl:param>
  422. <xsl:param name="fileExt"/>
  423. <xsl:choose>
  424. <xsl:when test="$modeParam = 'inline'">
  425. <xsl:copy-of select="."/>
  426. </xsl:when>
  427. <xsl:when test="$modeParam = 'instream-foreign-object'">
  428. <fo:instream-foreign-object>
  429. <xsl:copy-of select="."/>
  430. </fo:instream-foreign-object>
  431. </xsl:when>
  432. <xsl:otherwise>
  433. <xsl:variable name="id">
  434. <xsl:call-template name="object.id"/>
  435. </xsl:variable>
  436. <xsl:variable name="fname">
  437. <xsl:value-of select="concat($id, $fileExt)"/>
  438. </xsl:variable>
  439. <xsl:variable name="prefix">url('</xsl:variable>
  440. <xsl:variable name="suffix">')</xsl:variable>
  441. <xsl:variable name="file.uri">
  442. <xsl:value-of select="concat($prefix, $fname, $suffix)"/>
  443. </xsl:variable>
  444. <exsl:document href="{$fname}">
  445. <xsl:copy-of select="."/>
  446. <xsl:fallback>
  447. <xsl:message terminate="yes">
  448. Your XSLT processor does not support exsl:document.
  449. You can only use inline SVG images.
  450. </xsl:message>
  451. </xsl:fallback>
  452. </exsl:document>
  453. <xsl:choose>
  454. <xsl:when test="$modeParam = 'external-graphic'">
  455. <fo:external-graphic src="{$file.uri}"/>
  456. </xsl:when>
  457. <xsl:otherwise>
  458. <xsl:message terminate="yes">
  459. Unknown processing mode <xsl:value-of select="$modeParam"/>.
  460. </xsl:message>
  461. </xsl:otherwise>
  462. </xsl:choose>
  463. </xsl:otherwise>
  464. </xsl:choose>
  465. </xsl:template>
  466. <xsl:template match="dbs:foil|dbs:foilgroup" mode="xref-to">
  467. <xsl:param name="referrer"/>
  468. <xsl:param name="xrefstyle"/>
  469. <xsl:apply-templates select="." mode="object.xref.markup">
  470. <xsl:with-param name="purpose" select="'xref'"/>
  471. <xsl:with-param name="xrefstyle" select="$xrefstyle"/>
  472. <xsl:with-param name="referrer" select="$referrer"/>
  473. </xsl:apply-templates>
  474. </xsl:template>
  475. </xsl:stylesheet>