source: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/BMX41000/IHS BMX Framework/IndianHealthService.BMXNet.Doc/Help/Presentation/Shared/transforms/utilities_reference.xsl@ 1806

Last change on this file since 1806 was 1146, checked in by Sam Habiel, 13 years ago

Initial Import of BMX4

File size: 11.8 KB
Line 
1<?xml version="1.0"?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1" >
3
4 <!-- *** GLOBAL VARIABLES *** -->
5
6 <xsl:variable name="topic-group" select="/document/reference/topicdata/@group" />
7 <xsl:variable name="topic-subgroup" select="/document/reference/topicdata/@subgroup" />
8
9 <xsl:variable name="api-group" select="/document/reference/apidata/@group" />
10 <xsl:variable name="api-subgroup" select="/document/reference/apidata/@subgroup" />
11 <xsl:variable name="api-subsubgroup" select="/document/reference/apidata/@subsubgroup" />
12
13 <!-- *** LOGIC FOR GENERATING ELEMENT LISTS *** -->
14 <!-- Seperate logic for namespace lists, type lists, member lists, enumeration member lists, and overload lists -->
15
16 <!-- *** LOGIC FOR GENERATING LINKS *** -->
17
18 <xsl:template match="type" mode="link">
19 <xsl:param name="qualified" select="false()" />
20 <!-- we don't display outer types, because the link will show them -->
21 <referenceLink target="{@api}" prefer-overload="false">
22 <xsl:choose>
23 <xsl:when test="specialization">
24 <xsl:attribute name="show-templates">false</xsl:attribute>
25 </xsl:when>
26 <xsl:otherwise>
27 <xsl:attribute name="show-templates">true</xsl:attribute>
28 </xsl:otherwise>
29 </xsl:choose>
30 <xsl:if test="$qualified">
31 <xsl:attribute name="show-container">true</xsl:attribute>
32 </xsl:if>
33 </referenceLink>
34 <xsl:apply-templates select="specialization" mode="link"/>
35 </xsl:template>
36
37 <xsl:template match="specialization" mode="link">
38 <span class="languageSpecificText">
39 <span class="cs">&lt;</span>
40 <span class="vb">
41 <xsl:text>(Of </xsl:text>
42 </span>
43 <span class="cpp">&lt;</span>
44 <span class="nu">(</span>
45 </span>
46 <xsl:for-each select="*">
47 <xsl:apply-templates select="." mode="link" />
48 <xsl:if test="position() != last()">
49 <xsl:text>, </xsl:text>
50 </xsl:if>
51 </xsl:for-each>
52 <span class="languageSpecificText">
53 <span class="cs">&gt;</span>
54 <span class="vb">)</span>
55 <span class="cpp">&gt;</span>
56 <span class="nu">)</span>
57 </span>
58 </xsl:template>
59
60 <xsl:template match="arrayOf" mode="link">
61 <xsl:param name="qualified" select="false()" />
62 <span class="languageSpecificText">
63 <span class="cpp">array&lt;</span>
64 </span>
65 <xsl:apply-templates mode="link">
66 <xsl:with-param name="qualified" select="$qualified" />
67 </xsl:apply-templates>
68 <span class="languageSpecificText">
69 <span class="cpp">
70 <xsl:if test="number(@rank) &gt; 1">
71 <xsl:text>,</xsl:text>
72 <xsl:value-of select="@rank"/>
73 </xsl:if>
74 <xsl:text>&gt;</xsl:text>
75 </span>
76 <span class="cs">
77 <xsl:text>[</xsl:text>
78 <xsl:if test="number(@rank) &gt; 1">,</xsl:if>
79 <xsl:text>]</xsl:text>
80 </span>
81 <span class="vb">
82 <xsl:text>(</xsl:text>
83 <xsl:if test="number(@rank) &gt; 1">,</xsl:if>
84 <xsl:text>)</xsl:text>
85 </span>
86 <span class="nu">
87 <xsl:text>[</xsl:text>
88 <xsl:if test="number(@rank) &gt; 1">,</xsl:if>
89 <xsl:text>]</xsl:text>
90 </span>
91 </span>
92 </xsl:template>
93
94 <xsl:template match="pointerTo" mode="link">
95 <xsl:param name="qualified" select="false()" />
96 <xsl:apply-templates mode="link">
97 <xsl:with-param name="qualified" select="$qualified" />
98 </xsl:apply-templates>
99 <xsl:text>*</xsl:text>
100 </xsl:template>
101
102 <xsl:template match="referenceTo" mode="link">
103 <xsl:param name="qualified" select="false()" />
104 <xsl:apply-templates mode="link">
105 <xsl:with-param name="qualified" select="$qualified" />
106 </xsl:apply-templates>
107 <span class="cpp">%</span>
108 </xsl:template>
109
110 <xsl:template match="template" mode="link">
111 <xsl:choose>
112 <xsl:when test="@api">
113 <referenceLink target="{@api}">
114 <span class="typeparam"><xsl:value-of select="@name" /></span>
115 </referenceLink>
116 </xsl:when>
117 <xsl:otherwise>
118 <span class="typeparam"><xsl:value-of select="@name" /></span>
119 </xsl:otherwise>
120 </xsl:choose>
121 </xsl:template>
122
123 <xsl:template match="member" mode="link">
124 <xsl:param name="qualified" select="true()" />
125 <xsl:choose>
126 <xsl:when test="@display-api">
127 <referenceLink target="{@api}" display-target="{@display-api}">
128 <xsl:if test="$qualified">
129 <xsl:attribute name="show-container">true</xsl:attribute>
130 </xsl:if>
131 </referenceLink>
132 </xsl:when>
133 <xsl:otherwise>
134 <referenceLink target="{@api}">
135 <xsl:if test="$qualified">
136 <xsl:attribute name="show-container">true</xsl:attribute>
137 </xsl:if>
138 </referenceLink>
139 </xsl:otherwise>
140 </xsl:choose>
141 </xsl:template>
142
143 <!-- *** LOGIC FOR GENERATING TITLES *** -->
144
145 <!-- when positioned on a parameterized api, produces a (plain) comma-seperated list of parameter types -->
146 <xsl:template name="parameterTypesPlain">
147 <xsl:if test="parameters/parameter">
148 <xsl:text>(</xsl:text>
149 <xsl:for-each select="parameters/parameter">
150 <xsl:apply-templates select="type|arrayOf|pointerTo|referenceTo|template" mode="plain" />
151 <xsl:if test="position() != last()">
152 <xsl:text>, </xsl:text>
153 </xsl:if>
154 </xsl:for-each>
155 <xsl:text>)</xsl:text>
156 </xsl:if>
157 </xsl:template>
158
159 <!-- when position on a type api, produces a (plain) name; outer types are indicated by dot-seperators; -->
160 <!-- generic types are indicated by a keyword, because we can't show templates in a language-independent way -->
161 <xsl:template name="typeNamePlain">
162 <xsl:if test="type|(containers/type)">
163 <xsl:apply-templates select="type|(containers/type)" mode="plain" />
164 <xsl:text>.</xsl:text>
165 </xsl:if>
166 <xsl:value-of select="apidata/@name" />
167 <xsl:choose>
168 <xsl:when test="specialization">
169 <xsl:apply-templates select="specialization" mode="plain" />
170 </xsl:when>
171 <xsl:otherwise>
172 <xsl:apply-templates select="templates" mode="plain" />
173 </xsl:otherwise>
174 </xsl:choose>
175 </xsl:template>
176
177 <xsl:template match="type" mode="plain">
178 <xsl:call-template name="typeNamePlain" />
179 </xsl:template>
180
181 <xsl:template match="specialization|templates" mode="plain">
182 <xsl:text>(</xsl:text>
183 <xsl:for-each select="*">
184 <xsl:apply-templates select="." mode="plain" />
185 <xsl:if test="position() != last()">
186 <xsl:text>, </xsl:text>
187 </xsl:if>
188 </xsl:for-each>
189 <xsl:text>)</xsl:text>
190 </xsl:template>
191
192 <xsl:template match="arrayOf" mode="plain">
193 <xsl:apply-templates select="type|arrayOf|pointerTo|referenceTo|template|specialization|templates" mode="plain"/>
194 <xsl:text>[</xsl:text>
195 <xsl:if test="number(@rank) &gt; 1">,</xsl:if>
196 <xsl:text>]</xsl:text>
197 </xsl:template>
198
199 <xsl:template match="pointerTo" mode="plain">
200 <xsl:apply-templates select="type|arrayOf|pointerTo|referenceTo|template|specialization|templates" mode="plain"/>
201 <xsl:text>*</xsl:text>
202 </xsl:template>
203
204 <xsl:template match="referenceTo" mode="plain">
205 <xsl:apply-templates select="type|arrayOf|pointerTo|referenceTo|template|specialization|templates" mode="plain"/>
206 </xsl:template>
207
208 <xsl:template match="template" mode="plain">
209 <xsl:value-of select="@name" />
210 </xsl:template>
211
212 <!-- when positioned on a generic api, produces a (decorated) comma-seperated list of template names -->
213 <xsl:template name="parameterTypesDecorated">
214 <xsl:if test="parameters/parameter">
215 <xsl:text>(</xsl:text>
216 <xsl:for-each select="parameters/parameter">
217 <xsl:apply-templates select="type|arrayOf|pointerTo|referenceTo|template" mode="decorated"/>
218 <xsl:if test="position() != last()">
219 <xsl:text>, </xsl:text>
220 </xsl:if>
221 </xsl:for-each>
222 <xsl:text>)</xsl:text>
223 </xsl:if>
224 </xsl:template>
225
226 <!-- when position on a type api, produces a (decorated) name, including outer types and templates -->
227 <xsl:template name="typeNameDecorated">
228 <xsl:if test="type|(containers/type)">
229 <xsl:apply-templates select="type|(containers/type)" mode="decorated" />
230 <span class="languageSpecificText">
231 <span class="cs">.</span>
232 <span class="vb">.</span>
233 <span class="cpp">::</span>
234 <span class="nu">.</span>
235 </span>
236 </xsl:if>
237 <xsl:value-of select="apidata/@name" />
238 <xsl:choose>
239 <xsl:when test="specialization">
240 <xsl:apply-templates select="specialization" mode="decorated" />
241 </xsl:when>
242 <xsl:otherwise>
243 <xsl:apply-templates select="templates" mode="decorated" />
244 </xsl:otherwise>
245 </xsl:choose>
246 </xsl:template>
247
248 <xsl:template match="type" mode="decorated">
249 <xsl:call-template name="typeNameDecorated" />
250 </xsl:template>
251
252 <xsl:template match="specialization|templates" mode="decorated">
253 <span class="languageSpecificText">
254 <span class="cs">&lt;</span>
255 <span class="vb">
256 <xsl:text>(Of </xsl:text>
257 </span>
258 <span class="cpp">&lt;</span>
259 <span class="nu">(</span>
260 </span>
261 <xsl:for-each select="*">
262 <xsl:apply-templates select="." mode="decorated" />
263 <xsl:if test="position() != last()">
264 <xsl:text>, </xsl:text>
265 </xsl:if>
266 </xsl:for-each>
267 <span class="languageSpecificText">
268 <span class="cs">&gt;</span>
269 <span class="vb">)</span>
270 <span class="cpp">&gt;</span>
271 <span class="nu">)</span>
272 </span>
273 </xsl:template>
274
275 <xsl:template match="arrayOf" mode="decorated">
276 <span class="languageSpecificText">
277 <span class="cpp">array&lt;</span>
278 </span>
279 <xsl:apply-templates select="type|arrayOf|pointerTo|referenceTo|template|specialization|templates" mode="decorated" />
280 <span class="languageSpecificText">
281 <span class="cpp">
282 <xsl:if test="number(@rank) &gt; 1">
283 <xsl:text>,</xsl:text>
284 <xsl:value-of select="@rank"/>
285 </xsl:if>
286 <xsl:text>&gt;</xsl:text>
287 </span>
288 <span class="cs">
289 <xsl:text>[</xsl:text>
290 <xsl:if test="number(@rank) &gt; 1">,</xsl:if>
291 <xsl:text>]</xsl:text>
292 </span>
293 <span class="vb">
294 <xsl:text>(</xsl:text>
295 <xsl:if test="number(@rank) &gt; 1">,</xsl:if>
296 <xsl:text>)</xsl:text>
297 </span>
298 <span class="nu">
299 <xsl:text>[</xsl:text>
300 <xsl:if test="number(@rank) &gt; 1">,</xsl:if>
301 <xsl:text>]</xsl:text>
302 </span>
303 </span>
304 </xsl:template>
305
306 <xsl:template match="pointerTo" mode="decorated">
307 <xsl:apply-templates select="type|arrayOf|pointerTo|referenceTo|template|specialization|templates" mode="decorated"/>
308 <xsl:text>*</xsl:text>
309 </xsl:template>
310
311 <xsl:template match="referenceTo" mode="decorated">
312 <xsl:apply-templates select="type|arrayOf|pointerTo|referenceTo|template|specialization|templates" mode="decorated"/>
313 <span class="cpp">%</span>
314 </xsl:template>
315
316 <xsl:template match="template" mode="decorated">
317 <span class="typeparameter"><xsl:value-of select="@name" /></span>
318 </xsl:template>
319
320 <!-- when positioned on a parameterized api, produces a (plain) comma-seperated list of parameter names-->
321 <xsl:template name="parameterNames">
322 <xsl:if test="parameters/parameter">
323 <xsl:text>(</xsl:text>
324 <xsl:for-each select="parameters/parameter">
325 <xsl:value-of select="@name" />
326 <xsl:if test="position() != last()">
327 <xsl:text>, </xsl:text>
328 </xsl:if>
329 </xsl:for-each>
330 <xsl:text>)</xsl:text>
331 </xsl:if>
332 </xsl:template>
333
334</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.