docbook_xsl_wrapper 0.1.2 → 0.5.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +7 -0
- data/.gitignore +2 -0
- data/CHANGELOG +41 -0
- data/README.md +9 -17
- data/bin/docbook_xsl_wrapper +9 -14
- data/docbook_xsl_wrapper.gemspec +8 -7
- data/lib/docbook_xsl_wrapper.rb +24 -1
- data/lib/docbook_xsl_wrapper/epub.rb +124 -122
- data/lib/docbook_xsl_wrapper/options.rb +1 -1
- data/lib/docbook_xsl_wrapper/validate.rb +22 -0
- data/lib/docbook_xsl_wrapper/version.rb +1 -1
- data/schema/docbookxi.rng +18654 -0
- data/spec/docbook_xsl_wrapper/validate_spec.rb +64 -0
- data/xsl/AUTHORS +4 -0
- data/xsl/COPYING +48 -0
- data/xsl/REVISION +1 -0
- data/xsl/VERSION.xsl +115 -0
- data/xsl/common/addns.xsl +124 -0
- data/xsl/common/af.xml +1272 -0
- data/xsl/common/am.xml +1272 -0
- data/xsl/common/ar.xml +1272 -0
- data/xsl/common/as.xml +703 -0
- data/xsl/common/ast.xml +703 -0
- data/xsl/common/autoidx-kimber.xsl +45 -0
- data/xsl/common/autoidx-kosek.xsl +155 -0
- data/xsl/common/az.xml +715 -0
- data/xsl/common/bg.xml +767 -0
- data/xsl/common/bn.xml +1272 -0
- data/xsl/common/bn_in.xml +703 -0
- data/xsl/common/bs.xml +705 -0
- data/xsl/common/ca.xml +703 -0
- data/xsl/common/charmap.xsl +222 -0
- data/xsl/common/common.xsl +2129 -0
- data/xsl/common/cs.xml +743 -0
- data/xsl/common/cy.xml +1288 -0
- data/xsl/common/da.xml +707 -0
- data/xsl/common/de.xml +709 -0
- data/xsl/common/el.xml +772 -0
- data/xsl/common/en.xml +1272 -0
- data/xsl/common/entities.ent +67 -0
- data/xsl/common/eo.xml +1272 -0
- data/xsl/common/es.xml +719 -0
- data/xsl/common/et.xml +1272 -0
- data/xsl/common/eu.xml +1272 -0
- data/xsl/common/fa.xml +703 -0
- data/xsl/common/fi.xml +713 -0
- data/xsl/common/fr.xml +733 -0
- data/xsl/common/ga.xml +1272 -0
- data/xsl/common/gentext.xsl +855 -0
- data/xsl/common/gl.xml +1272 -0
- data/xsl/common/gu.xml +703 -0
- data/xsl/common/he.xml +1272 -0
- data/xsl/common/hi.xml +703 -0
- data/xsl/common/hr.xml +705 -0
- data/xsl/common/hu.xml +721 -0
- data/xsl/common/id.xml +1272 -0
- data/xsl/common/insertfile.xsl +113 -0
- data/xsl/common/is.xml +715 -0
- data/xsl/common/it.xml +1272 -0
- data/xsl/common/ja.xml +703 -0
- data/xsl/common/ka.xml +743 -0
- data/xsl/common/kn.xml +1272 -0
- data/xsl/common/ko.xml +1272 -0
- data/xsl/common/ky.xml +775 -0
- data/xsl/common/l10n.dtd +64 -0
- data/xsl/common/l10n.xml +78 -0
- data/xsl/common/l10n.xsl +598 -0
- data/xsl/common/la.xml +1272 -0
- data/xsl/common/labels.xsl +933 -0
- data/xsl/common/lt.xml +721 -0
- data/xsl/common/lv.xml +1272 -0
- data/xsl/common/ml.xml +703 -0
- data/xsl/common/mn.xml +773 -0
- data/xsl/common/mr.xml +703 -0
- data/xsl/common/nb.xml +1272 -0
- data/xsl/common/nds.xml +709 -0
- data/xsl/common/nl.xml +703 -0
- data/xsl/common/nn.xml +1272 -0
- data/xsl/common/olink.xsl +1284 -0
- data/xsl/common/or.xml +1272 -0
- data/xsl/common/pa.xml +703 -0
- data/xsl/common/pi.xml +168 -0
- data/xsl/common/pi.xsl +347 -0
- data/xsl/common/pl.xml +721 -0
- data/xsl/common/pt.xml +1272 -0
- data/xsl/common/pt_br.xml +1272 -0
- data/xsl/common/refentry.xsl +1353 -0
- data/xsl/common/ro.xml +1272 -0
- data/xsl/common/ru.xml +769 -0
- data/xsl/common/sk.xml +1272 -0
- data/xsl/common/sl.xml +1272 -0
- data/xsl/common/sq.xml +1272 -0
- data/xsl/common/sr.xml +763 -0
- data/xsl/common/sr_Latn.xml +722 -0
- data/xsl/common/subtitles.xsl +181 -0
- data/xsl/common/sv.xml +707 -0
- data/xsl/common/ta.xml +703 -0
- data/xsl/common/table.xsl +515 -0
- data/xsl/common/targetdatabase.dtd +49 -0
- data/xsl/common/targets.xsl +338 -0
- data/xsl/common/te.xml +703 -0
- data/xsl/common/th.xml +1272 -0
- data/xsl/common/titles.xsl +850 -0
- data/xsl/common/tl.xml +1272 -0
- data/xsl/common/tr.xml +709 -0
- data/xsl/common/uk.xml +769 -0
- data/xsl/common/ur.xml +705 -0
- data/xsl/common/utility.xsl +291 -0
- data/xsl/common/vi.xml +1272 -0
- data/xsl/common/xh.xml +1272 -0
- data/xsl/common/zh.xml +703 -0
- data/xsl/common/zh_cn.xml +703 -0
- data/xsl/common/zh_tw.xml +703 -0
- data/xsl/epub/docbook.xsl +1769 -0
- data/xsl/epub3/chunk.xsl +30 -0
- data/xsl/epub3/docbook-epub.css.xml +142 -0
- data/xsl/epub3/docbook.xsl +20 -0
- data/xsl/epub3/epub3-chunk-mods.xsl +52 -0
- data/xsl/epub3/epub3-element-mods.xsl +2533 -0
- data/xsl/epub3/titlepage.templates.xml +712 -0
- data/xsl/epub3/titlepage.templates.xsl +3842 -0
- data/xsl/lib/lib.xsl +533 -0
- data/xsl/xhtml/admon.xsl +142 -0
- data/xsl/xhtml/annotations.xsl +160 -0
- data/xsl/xhtml/autoidx.xsl +831 -0
- data/xsl/xhtml/autotoc.xsl +706 -0
- data/xsl/xhtml/biblio-iso690.xsl +1302 -0
- data/xsl/xhtml/biblio.xsl +1371 -0
- data/xsl/xhtml/block.xsl +584 -0
- data/xsl/xhtml/callout.xsl +210 -0
- data/xsl/xhtml/chunk-code.xsl +675 -0
- data/xsl/xhtml/chunk-common.xsl +1627 -0
- data/xsl/xhtml/chunker.xsl +317 -0
- data/xsl/xhtml/component.xsl +440 -0
- data/xsl/xhtml/division.xsl +214 -0
- data/xsl/xhtml/ebnf.xsl +331 -0
- data/xsl/xhtml/footnote.xsl +346 -0
- data/xsl/xhtml/formal.xsl +496 -0
- data/xsl/xhtml/glossary.xsl +602 -0
- data/xsl/xhtml/graphics.xsl +1537 -0
- data/xsl/xhtml/html-rtf.xsl +321 -0
- data/xsl/xhtml/html.xsl +690 -0
- data/xsl/xhtml/htmltbl.xsl +102 -0
- data/xsl/xhtml/index.xsl +264 -0
- data/xsl/xhtml/info.xsl +48 -0
- data/xsl/xhtml/inline.xsl +1508 -0
- data/xsl/xhtml/its.xsl +109 -0
- data/xsl/xhtml/keywords.xsl +38 -0
- data/xsl/xhtml/lists.xsl +1227 -0
- data/xsl/xhtml/math.xsl +286 -0
- data/xsl/xhtml/param.xsl +449 -0
- data/xsl/xhtml/pi.xsl +1237 -0
- data/xsl/xhtml/qandaset.xsl +440 -0
- data/xsl/xhtml/refentry.xsl +307 -0
- data/xsl/xhtml/sections.xsl +564 -0
- data/xsl/xhtml/synop.xsl +1623 -0
- data/xsl/xhtml/table.xsl +1179 -0
- data/xsl/xhtml/task.xsl +76 -0
- data/xsl/xhtml/titlepage.templates.xsl +4005 -0
- data/xsl/xhtml/titlepage.xsl +1108 -0
- data/xsl/xhtml/toc.xsl +334 -0
- data/xsl/xhtml/verbatim.xsl +389 -0
- data/xsl/xhtml/xref.xsl +1268 -0
- data/xsl/xhtml5/docbook.xsl +22 -0
- data/xsl/xhtml5/html5-chunk-mods.xsl +112 -0
- data/xsl/xhtml5/html5-element-mods.xsl +791 -0
- data/xsl/xhtml5/xhtml-docbook.xsl +531 -0
- metadata +207 -27
- data/.rvmrc +0 -48
- data/xslt/obfuscate.xsl +0 -12
@@ -0,0 +1,515 @@
|
|
1
|
+
<?xml version="1.0"?>
|
2
|
+
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
|
3
|
+
xmlns:d="http://docbook.org/ns/docbook"
|
4
|
+
xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
|
5
|
+
exclude-result-prefixes="doc d"
|
6
|
+
version="1.0">
|
7
|
+
|
8
|
+
<!-- ********************************************************************
|
9
|
+
$Id: table.xsl 8392 2009-04-01 08:47:55Z bobstayton $
|
10
|
+
********************************************************************
|
11
|
+
|
12
|
+
This file is part of the XSL DocBook Stylesheet distribution.
|
13
|
+
See ../README or http://docbook.sf.net/release/xsl/current/ for
|
14
|
+
copyright and other information.
|
15
|
+
|
16
|
+
******************************************************************** -->
|
17
|
+
|
18
|
+
<!-- ==================================================================== -->
|
19
|
+
|
20
|
+
<xsl:template name="blank.spans">
|
21
|
+
<xsl:param name="cols" select="1"/>
|
22
|
+
<xsl:if test="$cols > 0">
|
23
|
+
<xsl:text>0:</xsl:text>
|
24
|
+
<xsl:call-template name="blank.spans">
|
25
|
+
<xsl:with-param name="cols" select="$cols - 1"/>
|
26
|
+
</xsl:call-template>
|
27
|
+
</xsl:if>
|
28
|
+
</xsl:template>
|
29
|
+
|
30
|
+
<xsl:template name="calculate.following.spans">
|
31
|
+
<xsl:param name="colspan" select="1"/>
|
32
|
+
<xsl:param name="spans" select="''"/>
|
33
|
+
|
34
|
+
<xsl:choose>
|
35
|
+
<xsl:when test="$colspan > 0">
|
36
|
+
<xsl:call-template name="calculate.following.spans">
|
37
|
+
<xsl:with-param name="colspan" select="$colspan - 1"/>
|
38
|
+
<xsl:with-param name="spans" select="substring-after($spans,':')"/>
|
39
|
+
</xsl:call-template>
|
40
|
+
</xsl:when>
|
41
|
+
<xsl:otherwise>
|
42
|
+
<xsl:value-of select="$spans"/>
|
43
|
+
</xsl:otherwise>
|
44
|
+
</xsl:choose>
|
45
|
+
</xsl:template>
|
46
|
+
|
47
|
+
<xsl:template name="finaltd">
|
48
|
+
<xsl:param name="spans"/>
|
49
|
+
<xsl:param name="col" select="0"/>
|
50
|
+
|
51
|
+
<xsl:if test="$spans != ''">
|
52
|
+
<xsl:choose>
|
53
|
+
<xsl:when test="starts-with($spans,'0:')">
|
54
|
+
<xsl:call-template name="empty.table.cell">
|
55
|
+
<xsl:with-param name="colnum" select="$col"/>
|
56
|
+
</xsl:call-template>
|
57
|
+
</xsl:when>
|
58
|
+
<xsl:otherwise></xsl:otherwise>
|
59
|
+
</xsl:choose>
|
60
|
+
|
61
|
+
<xsl:call-template name="finaltd">
|
62
|
+
<xsl:with-param name="spans" select="substring-after($spans,':')"/>
|
63
|
+
<xsl:with-param name="col" select="$col+1"/>
|
64
|
+
</xsl:call-template>
|
65
|
+
</xsl:if>
|
66
|
+
</xsl:template>
|
67
|
+
|
68
|
+
<xsl:template name="sfinaltd">
|
69
|
+
<xsl:param name="spans"/>
|
70
|
+
|
71
|
+
<xsl:if test="$spans != ''">
|
72
|
+
<xsl:choose>
|
73
|
+
<xsl:when test="starts-with($spans,'0:')">0:</xsl:when>
|
74
|
+
<xsl:otherwise>
|
75
|
+
<xsl:value-of select="substring-before($spans,':')-1"/>
|
76
|
+
<xsl:text>:</xsl:text>
|
77
|
+
</xsl:otherwise>
|
78
|
+
</xsl:choose>
|
79
|
+
|
80
|
+
<xsl:call-template name="sfinaltd">
|
81
|
+
<xsl:with-param name="spans" select="substring-after($spans,':')"/>
|
82
|
+
</xsl:call-template>
|
83
|
+
</xsl:if>
|
84
|
+
</xsl:template>
|
85
|
+
|
86
|
+
<xsl:template name="entry.colnum">
|
87
|
+
<xsl:param name="entry" select="."/>
|
88
|
+
|
89
|
+
<xsl:choose>
|
90
|
+
<xsl:when test="$entry/@spanname">
|
91
|
+
<xsl:variable name="spanname" select="$entry/@spanname"/>
|
92
|
+
<xsl:variable name="spanspec"
|
93
|
+
select="($entry/ancestor::d:tgroup/d:spanspec[@spanname=$spanname]
|
94
|
+
|$entry/ancestor::d:entrytbl/d:spanspec[@spanname=$spanname])[last()]"/>
|
95
|
+
<xsl:variable name="colspec"
|
96
|
+
select="($entry/ancestor::d:tgroup/d:colspec[@colname=$spanspec/@namest]
|
97
|
+
|$entry/ancestor::d:entrytbl/d:colspec[@colname=$spanspec/@namest])[last()]"/>
|
98
|
+
<xsl:call-template name="colspec.colnum">
|
99
|
+
<xsl:with-param name="colspec" select="$colspec"/>
|
100
|
+
</xsl:call-template>
|
101
|
+
</xsl:when>
|
102
|
+
<xsl:when test="$entry/@colname">
|
103
|
+
<xsl:variable name="colname" select="$entry/@colname"/>
|
104
|
+
<xsl:variable name="colspec"
|
105
|
+
select="($entry/ancestor::d:tgroup/d:colspec[@colname=$colname]
|
106
|
+
|$entry/ancestor::d:entrytbl/d:colspec[@colname=$colname])[last()]"/>
|
107
|
+
<xsl:call-template name="colspec.colnum">
|
108
|
+
<xsl:with-param name="colspec" select="$colspec"/>
|
109
|
+
</xsl:call-template>
|
110
|
+
</xsl:when>
|
111
|
+
<xsl:when test="$entry/@namest">
|
112
|
+
<xsl:variable name="namest" select="$entry/@namest"/>
|
113
|
+
<xsl:variable name="colspec"
|
114
|
+
select="($entry/ancestor::d:tgroup/d:colspec[@colname=$namest]
|
115
|
+
|$entry/ancestor::d:entrytbl/d:colspec[@colname=$namest])[last()]"/>
|
116
|
+
<xsl:call-template name="colspec.colnum">
|
117
|
+
<xsl:with-param name="colspec" select="$colspec"/>
|
118
|
+
</xsl:call-template>
|
119
|
+
</xsl:when>
|
120
|
+
<!-- no idea, return 0 -->
|
121
|
+
<xsl:otherwise>0</xsl:otherwise>
|
122
|
+
</xsl:choose>
|
123
|
+
</xsl:template>
|
124
|
+
|
125
|
+
<doc:template name="entry.colnum" xmlns="">
|
126
|
+
<refpurpose>Determine the column number in which a given entry occurs</refpurpose>
|
127
|
+
<refdescription id="entry.colnum-desc">
|
128
|
+
<para>If an <tag>entry</tag> has a
|
129
|
+
<tag class="attribute">colname</tag> or
|
130
|
+
<tag class="attribute">namest</tag> attribute, this template
|
131
|
+
will determine the number of the column in which the entry should occur.
|
132
|
+
For other <tag>entry</tag>s, nothing is returned.</para>
|
133
|
+
</refdescription>
|
134
|
+
<refparameter id="entry.colnum-params">
|
135
|
+
<variablelist>
|
136
|
+
<varlistentry><term>entry</term>
|
137
|
+
<listitem>
|
138
|
+
<para>The <tag>entry</tag>-element which is to be tested.</para>
|
139
|
+
</listitem>
|
140
|
+
</varlistentry>
|
141
|
+
</variablelist>
|
142
|
+
</refparameter>
|
143
|
+
|
144
|
+
<refreturn id="entry.colnum-returns">
|
145
|
+
<para>This template returns the column number if it can be determined,
|
146
|
+
or 0 (the empty string)</para>
|
147
|
+
</refreturn>
|
148
|
+
</doc:template>
|
149
|
+
|
150
|
+
<xsl:template name="colspec.colnum">
|
151
|
+
<xsl:param name="colspec" select="."/>
|
152
|
+
<xsl:choose>
|
153
|
+
<xsl:when test="$colspec/@colnum">
|
154
|
+
<xsl:value-of select="$colspec/@colnum"/>
|
155
|
+
</xsl:when>
|
156
|
+
<xsl:when test="$colspec/preceding-sibling::d:colspec">
|
157
|
+
<xsl:variable name="prec.colspec.colnum">
|
158
|
+
<xsl:call-template name="colspec.colnum">
|
159
|
+
<xsl:with-param name="colspec"
|
160
|
+
select="$colspec/preceding-sibling::d:colspec[1]"/>
|
161
|
+
</xsl:call-template>
|
162
|
+
</xsl:variable>
|
163
|
+
<xsl:value-of select="$prec.colspec.colnum + 1"/>
|
164
|
+
</xsl:when>
|
165
|
+
<xsl:otherwise>1</xsl:otherwise>
|
166
|
+
</xsl:choose>
|
167
|
+
</xsl:template>
|
168
|
+
|
169
|
+
<xsl:template name="calculate.colspan">
|
170
|
+
<xsl:param name="entry" select="."/>
|
171
|
+
<xsl:variable name="spanname" select="$entry/@spanname"/>
|
172
|
+
<xsl:variable name="spanspec"
|
173
|
+
select="($entry/ancestor::d:tgroup/d:spanspec[@spanname=$spanname]
|
174
|
+
|$entry/ancestor::d:entrytbl/d:spanspec[@spanname=$spanname])[last()]"/>
|
175
|
+
|
176
|
+
<xsl:variable name="namest">
|
177
|
+
<xsl:choose>
|
178
|
+
<xsl:when test="@spanname">
|
179
|
+
<xsl:value-of select="$spanspec/@namest"/>
|
180
|
+
</xsl:when>
|
181
|
+
<xsl:otherwise>
|
182
|
+
<xsl:value-of select="$entry/@namest"/>
|
183
|
+
</xsl:otherwise>
|
184
|
+
</xsl:choose>
|
185
|
+
</xsl:variable>
|
186
|
+
|
187
|
+
<xsl:variable name="nameend">
|
188
|
+
<xsl:choose>
|
189
|
+
<xsl:when test="@spanname">
|
190
|
+
<xsl:value-of select="$spanspec/@nameend"/>
|
191
|
+
</xsl:when>
|
192
|
+
<xsl:otherwise>
|
193
|
+
<xsl:value-of select="$entry/@nameend"/>
|
194
|
+
</xsl:otherwise>
|
195
|
+
</xsl:choose>
|
196
|
+
</xsl:variable>
|
197
|
+
|
198
|
+
<xsl:variable name="scol">
|
199
|
+
<xsl:call-template name="colspec.colnum">
|
200
|
+
<xsl:with-param name="colspec"
|
201
|
+
select="($entry/ancestor::d:tgroup/d:colspec[@colname=$namest]
|
202
|
+
|$entry/ancestor::d:entrytbl/d:colspec[@colname=$namest])[last()]"/>
|
203
|
+
</xsl:call-template>
|
204
|
+
</xsl:variable>
|
205
|
+
|
206
|
+
<xsl:variable name="ecol">
|
207
|
+
<xsl:call-template name="colspec.colnum">
|
208
|
+
<xsl:with-param name="colspec"
|
209
|
+
select="($entry/ancestor::d:tgroup/d:colspec[@colname=$nameend]
|
210
|
+
|$entry/ancestor::d:entrytbl/d:colspec[@colname=$nameend])[last()]"/>
|
211
|
+
</xsl:call-template>
|
212
|
+
</xsl:variable>
|
213
|
+
|
214
|
+
<xsl:choose>
|
215
|
+
<xsl:when test="$namest != '' and $nameend != ''">
|
216
|
+
<xsl:choose>
|
217
|
+
<xsl:when test="number($ecol) >= number($scol)">
|
218
|
+
<xsl:value-of select="number($ecol) - number($scol) + 1"/>
|
219
|
+
</xsl:when>
|
220
|
+
<xsl:otherwise>
|
221
|
+
<xsl:value-of select="number($scol) - number($ecol) + 1"/>
|
222
|
+
</xsl:otherwise>
|
223
|
+
</xsl:choose>
|
224
|
+
</xsl:when>
|
225
|
+
<xsl:otherwise>1</xsl:otherwise>
|
226
|
+
</xsl:choose>
|
227
|
+
</xsl:template>
|
228
|
+
|
229
|
+
<xsl:template name="calculate.rowsep">
|
230
|
+
<xsl:param name="entry" select="."/>
|
231
|
+
<xsl:param name="colnum" select="0"/>
|
232
|
+
|
233
|
+
<xsl:call-template name="inherited.table.attribute">
|
234
|
+
<xsl:with-param name="entry" select="$entry"/>
|
235
|
+
<xsl:with-param name="colnum" select="$colnum"/>
|
236
|
+
<xsl:with-param name="attribute" select="'rowsep'"/>
|
237
|
+
</xsl:call-template>
|
238
|
+
</xsl:template>
|
239
|
+
|
240
|
+
<xsl:template name="calculate.colsep">
|
241
|
+
<xsl:param name="entry" select="."/>
|
242
|
+
<xsl:param name="colnum" select="0"/>
|
243
|
+
|
244
|
+
<xsl:call-template name="inherited.table.attribute">
|
245
|
+
<xsl:with-param name="entry" select="$entry"/>
|
246
|
+
<xsl:with-param name="colnum" select="$colnum"/>
|
247
|
+
<xsl:with-param name="attribute" select="'colsep'"/>
|
248
|
+
</xsl:call-template>
|
249
|
+
</xsl:template>
|
250
|
+
|
251
|
+
<xsl:template name="inherited.table.attribute">
|
252
|
+
<xsl:param name="entry" select="."/>
|
253
|
+
<xsl:param name="row" select="$entry/ancestor-or-self::d:row[1]"/>
|
254
|
+
<xsl:param name="colnum" select="0"/>
|
255
|
+
<xsl:param name="attribute" select="'colsep'"/>
|
256
|
+
|
257
|
+
<xsl:variable name="tgroup" select="$row/parent::*/parent::d:tgroup[1]"/>
|
258
|
+
<xsl:variable name="tbody" select="$row/parent::*[1]"/>
|
259
|
+
|
260
|
+
<xsl:variable name="table" select="($tgroup/ancestor::d:table
|
261
|
+
|$tgroup/ancestor::d:informaltable
|
262
|
+
|$entry/ancestor::d:entrytbl)[last()]"/>
|
263
|
+
|
264
|
+
<xsl:variable name="entry.value">
|
265
|
+
<xsl:call-template name="get-attribute">
|
266
|
+
<xsl:with-param name="element" select="$entry"/>
|
267
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
268
|
+
</xsl:call-template>
|
269
|
+
</xsl:variable>
|
270
|
+
|
271
|
+
<xsl:variable name="row.value">
|
272
|
+
<xsl:call-template name="get-attribute">
|
273
|
+
<xsl:with-param name="element" select="$row"/>
|
274
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
275
|
+
</xsl:call-template>
|
276
|
+
</xsl:variable>
|
277
|
+
|
278
|
+
<xsl:variable name="span.value">
|
279
|
+
<xsl:if test="$entry/@spanname">
|
280
|
+
<xsl:variable name="spanname" select="$entry/@spanname"/>
|
281
|
+
<xsl:variable name="spanspec"
|
282
|
+
select="$tgroup/d:spanspec[@spanname=$spanname]"/>
|
283
|
+
<xsl:variable name="span.colspec"
|
284
|
+
select="$tgroup/d:colspec[@colname=$spanspec/@namest]"/>
|
285
|
+
|
286
|
+
<xsl:variable name="spanspec.value">
|
287
|
+
<xsl:call-template name="get-attribute">
|
288
|
+
<xsl:with-param name="element" select="$spanspec"/>
|
289
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
290
|
+
</xsl:call-template>
|
291
|
+
</xsl:variable>
|
292
|
+
|
293
|
+
<xsl:variable name="scolspec.value">
|
294
|
+
<xsl:call-template name="get-attribute">
|
295
|
+
<xsl:with-param name="element" select="$span.colspec"/>
|
296
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
297
|
+
</xsl:call-template>
|
298
|
+
</xsl:variable>
|
299
|
+
|
300
|
+
<xsl:choose>
|
301
|
+
<xsl:when test="$spanspec.value != ''">
|
302
|
+
<xsl:value-of select="$spanspec.value"/>
|
303
|
+
</xsl:when>
|
304
|
+
<xsl:when test="$scolspec.value != ''">
|
305
|
+
<xsl:value-of select="$scolspec.value"/>
|
306
|
+
</xsl:when>
|
307
|
+
<xsl:otherwise></xsl:otherwise>
|
308
|
+
</xsl:choose>
|
309
|
+
</xsl:if>
|
310
|
+
</xsl:variable>
|
311
|
+
|
312
|
+
<xsl:variable name="namest.value">
|
313
|
+
<xsl:if test="$entry/@namest">
|
314
|
+
<xsl:variable name="namest" select="$entry/@namest"/>
|
315
|
+
<xsl:variable name="colspec"
|
316
|
+
select="$tgroup/d:colspec[@colname=$namest]"/>
|
317
|
+
|
318
|
+
<xsl:variable name="inner.namest.value">
|
319
|
+
<xsl:call-template name="get-attribute">
|
320
|
+
<xsl:with-param name="element" select="$colspec"/>
|
321
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
322
|
+
</xsl:call-template>
|
323
|
+
</xsl:variable>
|
324
|
+
|
325
|
+
<xsl:choose>
|
326
|
+
<xsl:when test="$inner.namest.value">
|
327
|
+
<xsl:value-of select="$inner.namest.value"/>
|
328
|
+
</xsl:when>
|
329
|
+
<xsl:otherwise></xsl:otherwise>
|
330
|
+
</xsl:choose>
|
331
|
+
</xsl:if>
|
332
|
+
</xsl:variable>
|
333
|
+
|
334
|
+
<xsl:variable name="tgroup.value">
|
335
|
+
<xsl:call-template name="get-attribute">
|
336
|
+
<xsl:with-param name="element" select="$tgroup"/>
|
337
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
338
|
+
</xsl:call-template>
|
339
|
+
</xsl:variable>
|
340
|
+
|
341
|
+
<xsl:variable name="tbody.value">
|
342
|
+
<xsl:call-template name="get-attribute">
|
343
|
+
<xsl:with-param name="element" select="$tbody"/>
|
344
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
345
|
+
</xsl:call-template>
|
346
|
+
</xsl:variable>
|
347
|
+
|
348
|
+
<xsl:variable name="table.value">
|
349
|
+
<xsl:call-template name="get-attribute">
|
350
|
+
<xsl:with-param name="element" select="$table"/>
|
351
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
352
|
+
</xsl:call-template>
|
353
|
+
</xsl:variable>
|
354
|
+
|
355
|
+
<xsl:variable name="default.value">
|
356
|
+
<!-- This section used to say that rowsep and colsep have defaults based -->
|
357
|
+
<!-- on the frame setting. Further reflection and closer examination of the -->
|
358
|
+
<!-- CALS spec reveals I was mistaken. The default is "1" for rowsep and colsep. -->
|
359
|
+
<!-- For everything else, the default is the tgroup value -->
|
360
|
+
<xsl:choose>
|
361
|
+
<xsl:when test="$tgroup.value != ''">
|
362
|
+
<xsl:value-of select="$tgroup.value"/>
|
363
|
+
</xsl:when>
|
364
|
+
<xsl:when test="$attribute = 'rowsep'">1</xsl:when>
|
365
|
+
<xsl:when test="$attribute = 'colsep'">1</xsl:when>
|
366
|
+
<xsl:otherwise><!-- empty --></xsl:otherwise>
|
367
|
+
</xsl:choose>
|
368
|
+
</xsl:variable>
|
369
|
+
|
370
|
+
<xsl:variable name="calc.colvalue">
|
371
|
+
<xsl:if test="$colnum > 0">
|
372
|
+
<xsl:call-template name="colnum.colspec">
|
373
|
+
<xsl:with-param name="colnum" select="$colnum"/>
|
374
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
375
|
+
</xsl:call-template>
|
376
|
+
</xsl:if>
|
377
|
+
</xsl:variable>
|
378
|
+
|
379
|
+
<xsl:choose>
|
380
|
+
<xsl:when test="$entry.value != ''">
|
381
|
+
<xsl:value-of select="$entry.value"/>
|
382
|
+
</xsl:when>
|
383
|
+
<xsl:when test="$row.value != ''">
|
384
|
+
<xsl:value-of select="$row.value"/>
|
385
|
+
</xsl:when>
|
386
|
+
<xsl:when test="$span.value != ''">
|
387
|
+
<xsl:value-of select="$span.value"/>
|
388
|
+
</xsl:when>
|
389
|
+
<xsl:when test="$namest.value != ''">
|
390
|
+
<xsl:value-of select="$namest.value"/>
|
391
|
+
</xsl:when>
|
392
|
+
<xsl:when test="$calc.colvalue != ''">
|
393
|
+
<xsl:value-of select="$calc.colvalue"/>
|
394
|
+
</xsl:when>
|
395
|
+
<xsl:when test="$tbody.value != ''">
|
396
|
+
<xsl:value-of select="$tbody.value"/>
|
397
|
+
</xsl:when>
|
398
|
+
<xsl:when test="$tgroup.value != ''">
|
399
|
+
<xsl:value-of select="$tgroup.value"/>
|
400
|
+
</xsl:when>
|
401
|
+
<xsl:when test="$table.value != ''">
|
402
|
+
<xsl:value-of select="$table.value"/>
|
403
|
+
</xsl:when>
|
404
|
+
<xsl:otherwise>
|
405
|
+
<xsl:value-of select="$default.value"/>
|
406
|
+
</xsl:otherwise>
|
407
|
+
</xsl:choose>
|
408
|
+
</xsl:template>
|
409
|
+
|
410
|
+
<xsl:template name="colnum.colspec">
|
411
|
+
<xsl:param name="colnum" select="0"/>
|
412
|
+
<xsl:param name="attribute" select="'colname'"/>
|
413
|
+
<xsl:param name="colspec.ancestor"
|
414
|
+
select="(ancestor::d:tgroup|ancestor::d:entrytbl)
|
415
|
+
[position() = last()]"/>
|
416
|
+
<xsl:param name="colspecs" select="$colspec.ancestor/d:colspec"/>
|
417
|
+
<xsl:param name="count" select="1"/>
|
418
|
+
|
419
|
+
<xsl:choose>
|
420
|
+
<xsl:when test="not($colspecs) or $count > $colnum">
|
421
|
+
<!-- nop -->
|
422
|
+
</xsl:when>
|
423
|
+
<xsl:when test="$colspecs[1]/@colnum">
|
424
|
+
<xsl:choose>
|
425
|
+
<xsl:when test="$colspecs[1]/@colnum = $colnum">
|
426
|
+
<xsl:call-template name="get-attribute">
|
427
|
+
<xsl:with-param name="element" select="$colspecs[1]"/>
|
428
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
429
|
+
</xsl:call-template>
|
430
|
+
</xsl:when>
|
431
|
+
<xsl:otherwise>
|
432
|
+
<xsl:call-template name="colnum.colspec">
|
433
|
+
<xsl:with-param name="colnum" select="$colnum"/>
|
434
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
435
|
+
<xsl:with-param name="colspecs"
|
436
|
+
select="$colspecs[position()>1]"/>
|
437
|
+
<xsl:with-param name="count"
|
438
|
+
select="$colspecs[1]/@colnum+1"/>
|
439
|
+
</xsl:call-template>
|
440
|
+
</xsl:otherwise>
|
441
|
+
</xsl:choose>
|
442
|
+
</xsl:when>
|
443
|
+
<xsl:otherwise>
|
444
|
+
<xsl:choose>
|
445
|
+
<xsl:when test="$count = $colnum">
|
446
|
+
<xsl:call-template name="get-attribute">
|
447
|
+
<xsl:with-param name="element" select="$colspecs[1]"/>
|
448
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
449
|
+
</xsl:call-template>
|
450
|
+
</xsl:when>
|
451
|
+
<xsl:otherwise>
|
452
|
+
<xsl:call-template name="colnum.colspec">
|
453
|
+
<xsl:with-param name="colnum" select="$colnum"/>
|
454
|
+
<xsl:with-param name="attribute" select="$attribute"/>
|
455
|
+
<xsl:with-param name="colspecs"
|
456
|
+
select="$colspecs[position()>1]"/>
|
457
|
+
<xsl:with-param name="count" select="$count+1"/>
|
458
|
+
</xsl:call-template>
|
459
|
+
</xsl:otherwise>
|
460
|
+
</xsl:choose>
|
461
|
+
</xsl:otherwise>
|
462
|
+
</xsl:choose>
|
463
|
+
</xsl:template>
|
464
|
+
|
465
|
+
<xsl:template name="get-attribute">
|
466
|
+
<xsl:param name="element" select="."/>
|
467
|
+
<xsl:param name="attribute" select="''"/>
|
468
|
+
|
469
|
+
<xsl:for-each select="$element/@*">
|
470
|
+
<xsl:if test="local-name(.) = $attribute">
|
471
|
+
<xsl:value-of select="."/>
|
472
|
+
</xsl:if>
|
473
|
+
</xsl:for-each>
|
474
|
+
</xsl:template>
|
475
|
+
|
476
|
+
<xsl:template name="consume-row">
|
477
|
+
<xsl:param name="spans"/>
|
478
|
+
|
479
|
+
<xsl:if test="contains($spans,':')">
|
480
|
+
<xsl:value-of select="substring-before($spans,':') - 1"/>
|
481
|
+
<xsl:text>:</xsl:text>
|
482
|
+
<xsl:call-template name="consume-row">
|
483
|
+
<xsl:with-param name="spans" select="substring-after($spans,':')"/>
|
484
|
+
</xsl:call-template>
|
485
|
+
</xsl:if>
|
486
|
+
</xsl:template>
|
487
|
+
|
488
|
+
<!-- Returns the table style for the context element -->
|
489
|
+
<xsl:template name="tabstyle">
|
490
|
+
<xsl:param name="node" select="."/>
|
491
|
+
|
492
|
+
<xsl:variable name="tgroup" select="$node/d:tgroup[1] |
|
493
|
+
$node/ancestor-or-self::d:tgroup[1]"/>
|
494
|
+
|
495
|
+
<xsl:variable name="table"
|
496
|
+
select="($node/ancestor-or-self::d:table |
|
497
|
+
$node/ancestor-or-self::d:informaltable)[last()]"/>
|
498
|
+
|
499
|
+
<xsl:variable name="tabstyle">
|
500
|
+
<xsl:choose>
|
501
|
+
<xsl:when test="$table/@tabstyle != ''">
|
502
|
+
<xsl:value-of select="normalize-space($table/@tabstyle)"/>
|
503
|
+
</xsl:when>
|
504
|
+
<xsl:when test="$tgroup/@tgroupstyle != ''">
|
505
|
+
<xsl:value-of select="normalize-space($tgroup/@tgroupstyle)"/>
|
506
|
+
</xsl:when>
|
507
|
+
<xsl:otherwise>
|
508
|
+
</xsl:otherwise>
|
509
|
+
</xsl:choose>
|
510
|
+
</xsl:variable>
|
511
|
+
|
512
|
+
<xsl:value-of select="$tabstyle"/>
|
513
|
+
</xsl:template>
|
514
|
+
|
515
|
+
</xsl:stylesheet>
|