~ubuntu-branches/ubuntu/raring/libjboss-remoting-java/raring

« back to all changes in this revision

Viewing changes to docs/guide/support/support/docbook-xsl/html/ebnf.xsl

  • Committer: Package Import Robot
  • Author(s): Torsten Werner
  • Date: 2011-09-09 14:01:03 UTC
  • mto: This revision was merged to the branch mainline in revision 9.
  • Revision ID: package-import@ubuntu.com-20110909140103-o8ucrolqt5g25k57
Tags: upstream-2.5.3.SP1
ImportĀ upstreamĀ versionĀ 2.5.3.SP1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version='1.0'?>
 
2
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
 
3
                xmlns:doc="http://nwalsh.com/xsl/documentation/1.0"
 
4
                exclude-result-prefixes="doc"
 
5
                version='1.0'>
 
6
 
 
7
<!-- ********************************************************************
 
8
     $Id: ebnf.xsl 1341 2006-08-02 16:35:13Z telrod $
 
9
     ********************************************************************
 
10
 
 
11
     This file is part of the XSL DocBook Stylesheet distribution.
 
12
     See ../README or http://nwalsh.com/docbook/xsl/ for copyright
 
13
     and other information.
 
14
 
 
15
     ******************************************************************** -->
 
16
 
 
17
<doc:reference xmlns="">
 
18
<referenceinfo>
 
19
<releaseinfo role="meta">
 
20
$Id: ebnf.xsl 1341 2006-08-02 16:35:13Z telrod $
 
21
</releaseinfo>
 
22
<author><surname>Walsh</surname>
 
23
<firstname>Norman</firstname></author>
 
24
<copyright><year>1999</year><year>2000</year>
 
25
<holder>Norman Walsh</holder>
 
26
</copyright>
 
27
</referenceinfo>
 
28
<title>HTML EBNF Reference</title>
 
29
 
 
30
<partintro>
 
31
<section><title>Introduction</title>
 
32
 
 
33
<para>This is technical reference documentation for the DocBook XSL
 
34
Stylesheets; it documents (some of) the parameters, templates, and
 
35
other elements of the stylesheets.</para>
 
36
 
 
37
<para>This reference describes the templates and parameters relevant
 
38
to formatting EBNF markup.</para>
 
39
 
 
40
<para>This is not intended to be <quote>user</quote> documentation.
 
41
It is provided for developers writing customization layers for the
 
42
stylesheets, and for anyone who's interested in <quote>how it
 
43
works</quote>.</para>
 
44
 
 
45
<para>Although I am trying to be thorough, this documentation is known
 
46
to be incomplete. Don't forget to read the source, too :-)</para>
 
47
</section>
 
48
</partintro>
 
49
</doc:reference>
 
50
 
 
51
<!-- ==================================================================== -->
 
52
 
 
53
<xsl:template match="productionset">
 
54
  <table width="100%" cellpadding="5">
 
55
    <xsl:if test="$ebnf.table.bgcolor != ''">
 
56
      <xsl:attribute name="bgcolor">
 
57
        <xsl:value-of select="$ebnf.table.bgcolor"/>
 
58
      </xsl:attribute>
 
59
    </xsl:if>
 
60
    <xsl:if test="$ebnf.table.border != 0">
 
61
      <xsl:attribute name="border">1</xsl:attribute>
 
62
    </xsl:if>
 
63
    <xsl:attribute name="class">
 
64
      <xsl:value-of select="name(.)"/>
 
65
    </xsl:attribute>
 
66
    <xsl:attribute name="summary">
 
67
      <xsl:text>EBNF</xsl:text>
 
68
      <xsl:if test="title">
 
69
        <xsl:text> for </xsl:text>
 
70
        <xsl:value-of select="title"/>
 
71
      </xsl:if>
 
72
    </xsl:attribute>
 
73
 
 
74
    <xsl:if test="title">
 
75
      <tr>
 
76
        <th align="left" valign="top" class="{name(.)}">
 
77
          <xsl:apply-templates select="title"/>
 
78
        </th>
 
79
      </tr>
 
80
    </xsl:if>
 
81
    <tr>
 
82
      <td>
 
83
        <table border="0" width="99%" cellpadding="0">
 
84
          <xsl:if test="$ebnf.table.bgcolor != ''">
 
85
            <xsl:attribute name="bgcolor">
 
86
              <xsl:value-of select="$ebnf.table.bgcolor"/>
 
87
            </xsl:attribute>
 
88
          </xsl:if>
 
89
          <xsl:attribute name="class">
 
90
            <xsl:value-of select="name(.)"/>
 
91
          </xsl:attribute>
 
92
          <xsl:attribute name="summary">EBNF productions</xsl:attribute>
 
93
          <xsl:apply-templates select="production|productionrecap"/>
 
94
        </table>
 
95
      </td>
 
96
    </tr>
 
97
  </table>
 
98
</xsl:template>
 
99
 
 
100
<xsl:template match="productionset/title">
 
101
  <xsl:apply-templates/>
 
102
</xsl:template>
 
103
 
 
104
<xsl:template match="production">
 
105
  <xsl:param name="recap" select="false()"/>
 
106
  <tr>
 
107
    <td align="left" valign="top" width="3%">
 
108
      <xsl:text>[</xsl:text>
 
109
      <xsl:number count="production" level="any"/>
 
110
      <xsl:text>]</xsl:text>
 
111
    </td>
 
112
    <td align="right" valign="top" width="10%">
 
113
      <xsl:choose>
 
114
        <xsl:when test="$recap">
 
115
          <a>
 
116
            <xsl:attribute name="href">
 
117
              <xsl:call-template name="href.target">
 
118
                <xsl:with-param name="object" select="."/>
 
119
              </xsl:call-template>
 
120
            </xsl:attribute>
 
121
            <xsl:apply-templates select="lhs"/>
 
122
          </a>
 
123
        </xsl:when>
 
124
        <xsl:otherwise>
 
125
          <xsl:call-template name="anchor"/>
 
126
          <xsl:apply-templates select="lhs"/>
 
127
        </xsl:otherwise>
 
128
      </xsl:choose>
 
129
    </td>
 
130
    <td valign="top" width="5%" align="center">
 
131
      <xsl:copy-of select="$ebnf.assignment"/>
 
132
    </td>
 
133
    <td valign="top" width="52%">
 
134
      <xsl:apply-templates select="rhs"/>
 
135
      <xsl:copy-of select="$ebnf.statement.terminator"/>
 
136
    </td>
 
137
    <td align="left" valign="top" width="30%">
 
138
      <xsl:choose>
 
139
        <xsl:when test="rhs/lineannotation|constraint">
 
140
          <xsl:apply-templates select="rhs/lineannotation" mode="rhslo"/>
 
141
          <xsl:apply-templates select="constraint"/>
 
142
        </xsl:when>
 
143
        <xsl:otherwise>
 
144
          <xsl:text>&#160;</xsl:text>
 
145
        </xsl:otherwise>
 
146
      </xsl:choose>
 
147
    </td>
 
148
  </tr>
 
149
</xsl:template>
 
150
 
 
151
<xsl:template match="productionrecap">
 
152
  <xsl:variable name="targets" select="key('id',@linkend)"/>
 
153
  <xsl:variable name="target" select="$targets[1]"/>
 
154
 
 
155
  <xsl:if test="count($targets)=0">
 
156
    <xsl:message>
 
157
      <xsl:text>Error: no ID for productionrecap linkend: </xsl:text>
 
158
      <xsl:value-of select="@linkend"/>
 
159
      <xsl:text>.</xsl:text>
 
160
    </xsl:message>
 
161
  </xsl:if>
 
162
 
 
163
  <xsl:if test="count($targets)>1">
 
164
    <xsl:message>
 
165
      <xsl:text>Warning: multiple "IDs" for productionrecap linkend: </xsl:text>
 
166
      <xsl:value-of select="@linkend"/>
 
167
      <xsl:text>.</xsl:text>
 
168
    </xsl:message>
 
169
  </xsl:if>
 
170
 
 
171
  <xsl:apply-templates select="$target">
 
172
    <xsl:with-param name="recap" select="true()"/>
 
173
  </xsl:apply-templates>
 
174
</xsl:template>
 
175
 
 
176
<xsl:template match="lhs">
 
177
  <xsl:apply-templates/>
 
178
</xsl:template>
 
179
 
 
180
<xsl:template match="rhs">
 
181
  <xsl:apply-templates/>
 
182
  <xsl:if test="following-sibling::rhs">
 
183
    <xsl:text> |</xsl:text>
 
184
    <br/>
 
185
  </xsl:if>
 
186
</xsl:template>
 
187
 
 
188
<xsl:template match="nonterminal">
 
189
  <xsl:variable name="linkend">
 
190
    <xsl:call-template name="xpointer.idref">
 
191
      <xsl:with-param name="xpointer" select="@def"/>
 
192
    </xsl:call-template>
 
193
  </xsl:variable>
 
194
 
 
195
  <xsl:call-template name="check.id.unique">
 
196
    <xsl:with-param name="linkend" select="$linkend"/>
 
197
  </xsl:call-template>
 
198
 
 
199
  <xsl:call-template name="check.idref.targets">
 
200
    <xsl:with-param name="linkend" select="$linkend"/>
 
201
    <xsl:with-param name="element-list">production</xsl:with-param>
 
202
  </xsl:call-template>
 
203
 
 
204
  <!-- If you don't provide content, you can't point outside this doc. -->
 
205
  <xsl:choose>
 
206
    <xsl:when test="*|text()"><!--nop--></xsl:when>
 
207
    <xsl:otherwise>
 
208
      <xsl:if test="$linkend = ''">
 
209
        <xsl:message>
 
210
          <xsl:text>Non-terminals with no content must point to </xsl:text>
 
211
          <xsl:text>production elements in the current document.</xsl:text>
 
212
        </xsl:message>
 
213
        <xsl:message>
 
214
          <xsl:text>Invalid xpointer for empty nt: </xsl:text>
 
215
          <xsl:value-of select="@def"/>
 
216
        </xsl:message>
 
217
      </xsl:if>
 
218
    </xsl:otherwise>
 
219
  </xsl:choose>
 
220
 
 
221
  <xsl:variable name="href">
 
222
    <xsl:choose>
 
223
      <xsl:when test="$linkend != ''">
 
224
        <xsl:variable name="targets" select="key('id',$linkend)"/>
 
225
        <xsl:variable name="target" select="$targets[1]"/>
 
226
        <xsl:call-template name="href.target">
 
227
          <xsl:with-param name="object" select="$target"/>
 
228
        </xsl:call-template>
 
229
      </xsl:when>
 
230
      <xsl:otherwise>
 
231
        <xsl:value-of select="@def"/>
 
232
      </xsl:otherwise>
 
233
    </xsl:choose>
 
234
  </xsl:variable>
 
235
 
 
236
  <a href="{$href}">
 
237
    <xsl:choose>
 
238
      <xsl:when test="*|text()">
 
239
        <xsl:apply-templates/>
 
240
      </xsl:when>
 
241
      <xsl:otherwise>
 
242
        <xsl:choose>
 
243
          <xsl:when test="$linkend != ''">
 
244
            <xsl:variable name="targets" select="key('id',$linkend)"/>
 
245
            <xsl:variable name="target" select="$targets[1]"/>
 
246
            <xsl:apply-templates select="$target/lhs"/>
 
247
          </xsl:when>
 
248
          <xsl:otherwise>
 
249
            <xsl:text>???</xsl:text>
 
250
          </xsl:otherwise>
 
251
        </xsl:choose>
 
252
      </xsl:otherwise>
 
253
    </xsl:choose>
 
254
  </a>
 
255
</xsl:template>
 
256
 
 
257
<xsl:template match="rhs/lineannotation">
 
258
  <!--nop-->
 
259
</xsl:template>
 
260
 
 
261
<xsl:template match="rhs/lineannotation" mode="rhslo">
 
262
  <xsl:text>/*&#160;</xsl:text>
 
263
  <xsl:apply-templates/>
 
264
  <xsl:text>&#160;*/</xsl:text>
 
265
  <br/>
 
266
</xsl:template>
 
267
 
 
268
<xsl:template match="constraint">
 
269
  <xsl:call-template name="check.id.unique">
 
270
    <xsl:with-param name="linkend" select="@linkend"/>
 
271
  </xsl:call-template>
 
272
 
 
273
  <xsl:call-template name="check.idref.targets">
 
274
    <xsl:with-param name="linkend" select="@linkend"/>
 
275
    <xsl:with-param name="element-list">constraintdef</xsl:with-param>
 
276
  </xsl:call-template>
 
277
 
 
278
  <xsl:variable name="href">
 
279
    <xsl:variable name="targets" select="key('id',@linkend)"/>
 
280
    <xsl:variable name="target" select="$targets[1]"/>
 
281
    <xsl:call-template name="href.target">
 
282
      <xsl:with-param name="object" select="$target"/>
 
283
    </xsl:call-template>
 
284
  </xsl:variable>
 
285
 
 
286
  <xsl:text>[&#160;</xsl:text>
 
287
 
 
288
  <xsl:choose>
 
289
    <xsl:when test="@role">
 
290
      <xsl:value-of select="@role"/>
 
291
      <xsl:text>: </xsl:text>
 
292
    </xsl:when>
 
293
    <xsl:otherwise>
 
294
      <xsl:variable name="targets" select="key('id',@linkend)"/>
 
295
      <xsl:variable name="target" select="$targets[1]"/>
 
296
      <xsl:if test="$target/@role">
 
297
        <xsl:value-of select="$target/@role"/>
 
298
        <xsl:text>: </xsl:text>
 
299
      </xsl:if>
 
300
    </xsl:otherwise>
 
301
  </xsl:choose>
 
302
 
 
303
  <a href="{$href}">
 
304
    <xsl:variable name="targets" select="key('id',@linkend)"/>
 
305
    <xsl:variable name="target" select="$targets[1]"/>
 
306
    <xsl:apply-templates select="$target" mode="title.markup"/>
 
307
  </a>
 
308
  <xsl:text>&#160;]</xsl:text>
 
309
  <xsl:if test="following-sibling::constraint">
 
310
    <br/>
 
311
  </xsl:if>
 
312
</xsl:template>
 
313
 
 
314
<xsl:template match="constraintdef">
 
315
  <div class="{name(.)}">
 
316
    <xsl:call-template name="anchor"/>
 
317
    <xsl:apply-templates/>
 
318
  </div>
 
319
</xsl:template>
 
320
 
 
321
<xsl:template match="constraintdef/title">
 
322
  <p><b><xsl:apply-templates/></b></p>
 
323
</xsl:template>
 
324
 
 
325
<!-- ==================================================================== -->
 
326
 
 
327
</xsl:stylesheet>