source: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/IHS BMX Framework/IndianHealthService.BMXNet.Doc/Help/Presentation/Style/Transforms/main_conceptual.xsl@ 1146

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

Initial Import of BMX4

File size: 16.4 KB
Line 
1<?xml version="1.0"?>
2<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.1"
3 xmlns:MSHelp="http://msdn.microsoft.com/mshelp"
4 xmlns:mshelp="http://msdn.microsoft.com/mshelp"
5 xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5"
6 xmlns:xlink="http://www.w3.org/1999/xlink"
7 xmlns:msxsl="urn:schemas-microsoft-com:xslt"
8 >
9
10 <xsl:output method="xml" indent="no" encoding="utf-8" />
11
12 <xsl:include href="htmlBody.xsl" />
13 <xsl:include href="utilities_dduexml.xsl" />
14
15 <xsl:variable name="hasSeeAlsoSection" select="boolean(count(/document/topic/*/ddue:relatedTopics/*[local-name()!='sampleRef']) > 0)"/>
16 <xsl:variable name="examplesSection" select="boolean(string-length(/document/topic/*/ddue:codeExample[normalize-space(.)]) > 0)"/>
17 <xsl:variable name="languageFilterSection" select="normalize-space(/document/topic/*/ddue:codeExample)
18 or normalize-space(/document/topic/*//ddue:snippets/ddue:snippet)
19 or /document/topic/ddue:developerSampleDocument/ddue:relatedTopics/ddue:sampleRef[@srcID]" />
20 <xsl:variable name="group" select="/document/reference/apidata/@group" />
21 <xsl:variable name="subgroup" select="/document/reference/apidata/@subgroup" />
22 <xsl:variable name="subsubgroup" select="/document/reference/apidata/@subsubgroup" />
23 <xsl:variable name="pseudo" select="boolean(/document/reference/apidata[@pseudo='true'])"/>
24 <!-- key parameter is the api identifier string -->
25 <xsl:param name="key" />
26 <xsl:param name="metadata" value="false" />
27 <xsl:param name="languages">false</xsl:param>
28
29 <xsl:template match="/document">
30 <html>
31 <head>
32 <META NAME="save" CONTENT="history"/>
33 <title>
34 <xsl:call-template name="topicTitlePlain"/>
35 </title>
36 <xsl:call-template name="insertStylesheets" />
37 <xsl:call-template name="insertScripts" />
38 <xsl:call-template name="insertMetadata" />
39 </head>
40 <body>
41 <xsl:call-template name="upperBodyStuff"/>
42 <xsl:call-template name="main"/>
43 </body>
44 </html>
45 </xsl:template>
46
47 <!-- document head -->
48
49 <xsl:template name="insertStylesheets">
50 <link rel="stylesheet" type="text/css" href="../styles/presentation.css" />
51 <!-- make mshelp links work -->
52 <link rel="stylesheet" type="text/css" href="ms-help://Hx/HxRuntime/HxLink.css" />
53 <link rel="stylesheet" type="text/css" href="ms-help://Dx/DxRuntime/DxLink.css" />
54 </xsl:template>
55
56 <xsl:template name="insertScripts">
57 <script type="text/javascript">
58 <includeAttribute name="src" item="scriptPath">
59 <parameter>EventUtilities.js</parameter>
60 </includeAttribute>
61 <xsl:text> </xsl:text>
62 </script>
63 <script type="text/javascript">
64 <includeAttribute name="src" item="scriptPath">
65 <parameter>SplitScreen.js</parameter>
66 </includeAttribute>
67 <xsl:text> </xsl:text>
68 </script>
69 <script type="text/javascript">
70 <includeAttribute name="src" item="scriptPath">
71 <parameter>Dropdown.js</parameter>
72 </includeAttribute>
73 <xsl:text> </xsl:text>
74 </script>
75 <script type="text/javascript">
76 <includeAttribute name="src" item="scriptPath">
77 <parameter>script_manifold.js</parameter>
78 </includeAttribute>
79 <xsl:text> </xsl:text>
80 </script>
81 <script type="text/javascript">
82 <includeAttribute name="src" item="scriptPath">
83 <parameter>LanguageFilter.js</parameter>
84 </includeAttribute>
85 <xsl:text> </xsl:text>
86 </script>
87 <script type="text/javascript">
88 <includeAttribute name="src" item="scriptPath">
89 <parameter>DataStore.js</parameter>
90 </includeAttribute>
91 <xsl:text> </xsl:text>
92 </script>
93 <script type="text/javascript">
94 <includeAttribute name="src" item="scriptPath">
95 <parameter>CommonUtilities.js</parameter>
96 </includeAttribute>
97 <xsl:text> </xsl:text>
98 </script>
99 <script type="text/javascript">
100 <includeAttribute name="src" item="scriptPath">
101 <parameter>MemberFilter.js</parameter>
102 </includeAttribute>
103 <xsl:text> </xsl:text>
104 </script>
105 </xsl:template>
106
107 <xsl:template name="insertMetadata">
108 <xsl:if test="$metadata='true'">
109 <xml>
110 <!-- mshelp metadata -->
111
112 <!-- insert toctitle -->
113 <MSHelp:TOCTitle Title="{/document/metadata/tableOfContentsTitle}" />
114
115 <!-- link index -->
116 <MSHelp:Keyword Index="A" Term="{$key}" />
117
118 <!-- authored K -->
119 <xsl:variable name="docset" select="translate(/document/metadata/attribute[@name='DocSet'][1]/text(),'ABCDEFGHIJKLMNOPQRSTUVWXYZ','abcdefghijklmnopqrstuvwxyz ')"/>
120 <xsl:for-each select="/document/metadata/keyword[@index='K']">
121 <xsl:variable name="nestedKeywordText">
122 <xsl:call-template name="nestedKeywordText"/>
123 </xsl:variable>
124 <MSHelp:Keyword Index="K">
125 <xsl:choose>
126 <xsl:when test="normalize-space($docset)='' or contains(text(),'[')">
127 <xsl:attribute name="Term">
128 <xsl:value-of select="concat(text(),$nestedKeywordText)"/>
129 </xsl:attribute>
130 </xsl:when>
131 <xsl:otherwise>
132 <includeAttribute name="Term" item="kIndexTermWithTechQualifier">
133 <parameter><xsl:value-of select="text()"/></parameter>
134 <parameter><xsl:value-of select="$docset"/></parameter>
135 <parameter><xsl:value-of select="$nestedKeywordText"/></parameter>
136 </includeAttribute>
137 </xsl:otherwise>
138 </xsl:choose>
139 </MSHelp:Keyword>
140 </xsl:for-each>
141
142 <!-- authored F -->
143 <xsl:for-each select="/document/metadata/keyword[@index='F']">
144 <MSHelp:Keyword Index="F">
145 <xsl:attribute name="Term">
146 <xsl:value-of select="text()" />
147 <xsl:for-each select="keyword[@index='F']">
148 <xsl:text>, </xsl:text>
149 <xsl:value-of select="text()"/>
150 </xsl:for-each>
151 </xsl:attribute>
152 </MSHelp:Keyword>
153 </xsl:for-each>
154
155 <!-- authored B -->
156 <xsl:for-each select="/document/metadata/keyword[@index='B']">
157 <MSHelp:Keyword Index="B">
158 <xsl:attribute name="Term">
159 <xsl:value-of select="text()" />
160 <xsl:for-each select="keyword[@index='B']">
161 <xsl:text>, </xsl:text>
162 <xsl:value-of select="text()"/>
163 </xsl:for-each>
164 </xsl:attribute>
165 </MSHelp:Keyword>
166 </xsl:for-each>
167
168 <!-- Topic version -->
169 <MSHelp:Attr Name="RevisionNumber" Value="{/document/topic/@revisionNumber}" />
170
171 <!-- Asset ID -->
172 <MSHelp:Attr Name="AssetID" Value="{/document/topic/@id}" />
173
174 <!-- Abstract -->
175 <xsl:variable name="abstract" select="string(/document/topic//ddue:para[1])" />
176 <xsl:choose>
177 <xsl:when test="string-length($abstract) &gt; 254">
178 <MSHelp:Attr Name="Abstract" Value="{concat(substring($abstract,1,250), ' ...')}" />
179 </xsl:when>
180 <xsl:when test="string-length($abstract) &gt; 0">
181 <MSHelp:Attr Name="Abstract" Value="{$abstract}" />
182 </xsl:when>
183 </xsl:choose>
184
185 <!-- authored attributes -->
186 <xsl:for-each select="/document/metadata/attribute">
187 <MSHelp:Attr Name="{@name}" Value="{text()}" />
188 </xsl:for-each>
189
190 <!-- TopicType attribute -->
191 <xsl:for-each select="/document/topic/*[1]">
192 <MSHelp:Attr Name="TopicType">
193 <includeAttribute name="Value" item="TT_{local-name()}"/>
194 </MSHelp:Attr>
195 </xsl:for-each>
196
197 <!-- Locale attribute -->
198 <MSHelp:Attr Name="Locale">
199 <includeAttribute name="Value" item="locale"/>
200 </MSHelp:Attr>
201
202 </xml>
203 </xsl:if>
204 </xsl:template>
205
206 <xsl:template name="nestedKeywordText">
207 <xsl:for-each select="keyword[@index='K']">
208 <xsl:text>, </xsl:text>
209 <xsl:value-of select="text()"/>
210 </xsl:for-each>
211 </xsl:template>
212
213 <!-- document body -->
214
215 <!-- Title in topic -->
216
217 <xsl:template name="topicTitleDecorated">
218 <xsl:call-template name="topicTitle" />
219 </xsl:template>
220
221 <xsl:template name="topicTitlePlain">
222 <xsl:call-template name="topicTitle" />
223 </xsl:template>
224
225 <xsl:template name="topicTitle">
226 <xsl:choose>
227 <xsl:when test="normalize-space(/document/metadata/title)">
228 <xsl:value-of select="normalize-space(/document/metadata/title)"/>
229 </xsl:when>
230 <xsl:otherwise>
231 <xsl:value-of select="normalize-space(/document/topic/*/ddue:title)"/>
232 </xsl:otherwise>
233 </xsl:choose>
234 </xsl:template>
235
236 <!-- Title in TOC -->
237
238 <!-- Index entry -->
239
240 <!-- main window -->
241
242 <xsl:template name="main">
243 <div id="mainSection">
244
245 <div id="mainBody">
246 <div id="allHistory" class="saveHistory" onsave="saveAll()" onload="loadAll()"/>
247 <xsl:call-template name="head" />
248 <xsl:call-template name="body" />
249 <xsl:call-template name="foot" />
250 </div>
251 </div>
252
253 </xsl:template>
254
255 <xsl:template name="head">
256 <include item="header" />
257 </xsl:template>
258
259 <xsl:template name="body">
260 <xsl:apply-templates select="topic" />
261 </xsl:template>
262
263 <!-- sections that behave differently in conceptual and reference -->
264
265 <xsl:template match="ddue:title">
266 <!-- don't print title -->
267 </xsl:template>
268
269 <xsl:template match="ddue:introduction">
270 <xsl:apply-templates select="@address" />
271 <div class="introduction">
272 <xsl:apply-templates />
273 </div>
274 </xsl:template>
275
276 <xsl:template match="ddue:parameters">
277 <xsl:if test="normalize-space(.)">
278 <xsl:call-template name="section">
279 <xsl:with-param name="toggleSwitch" select="'parameters'"/>
280 <xsl:with-param name="title"><include item="parametersTitle" /></xsl:with-param>
281 <xsl:with-param name="content">
282 <xsl:apply-templates />
283 </xsl:with-param>
284 </xsl:call-template>
285 </xsl:if>
286 </xsl:template>
287
288 <xsl:template match="ddue:returnValue">
289 <xsl:if test="normalize-space(.)">
290 <xsl:call-template name="section">
291 <xsl:with-param name="toggleSwitch" select="'returnValue'"/>
292 <xsl:with-param name="title"><include item="returnValueTitle" /></xsl:with-param>
293 <xsl:with-param name="content">
294 <xsl:apply-templates />
295 </xsl:with-param>
296 </xsl:call-template>
297 </xsl:if>
298 </xsl:template>
299
300 <xsl:template match="ddue:exceptions">
301 <xsl:if test="normalize-space(.)">
302 <xsl:call-template name="section">
303 <xsl:with-param name="toggleSwitch" select="'ddueExceptions'"/>
304 <xsl:with-param name="title"><include item="exceptionsTitle" /></xsl:with-param>
305 <xsl:with-param name="content">
306 <xsl:apply-templates />
307 </xsl:with-param>
308 </xsl:call-template>
309 </xsl:if>
310 </xsl:template>
311
312 <xsl:template match="ddue:relatedSections">
313 <xsl:if test="normalize-space(.)">
314 <xsl:call-template name="section">
315 <xsl:with-param name="toggleSwitch" select="'relatedSections'"/>
316 <xsl:with-param name="title"><include item="relatedSectionsTitle" /></xsl:with-param>
317 <xsl:with-param name="content">
318 <xsl:apply-templates />
319 </xsl:with-param>
320 </xsl:call-template>
321 </xsl:if>
322 </xsl:template>
323
324 <xsl:template match="ddue:relatedTopics">
325 <xsl:if test="$hasSeeAlsoSection">
326 <xsl:call-template name="section">
327 <xsl:with-param name="toggleSwitch" select="'seeAlso'"/>
328 <xsl:with-param name="title">
329 <include item="relatedTopicsTitle" />
330 </xsl:with-param>
331 <xsl:with-param name="content">
332
333 <!-- Concepts sub-section -->
334 <xsl:if test="normalize-space(ddue:link) or normalize-space(ddue:dynamicLink[@type='inline'])">
335 <xsl:call-template name="subSection">
336 <xsl:with-param name="title">
337 <include item="SeeAlsoConcepts"/>
338 </xsl:with-param>
339 <xsl:with-param name="content">
340 <xsl:for-each select="*">
341 <xsl:if test="name() = 'link' or (name() = 'dynamicLink' and @type = 'inline') or (name() = 'legacyLink' and not(starts-with(@xlink:href,'frlrf')
342 or starts-with(@xlink:href,'N:') or starts-with(@xlink:href,'T:') or starts-with(@xlink:href,'M:') or starts-with(@xlink:href,'P:')
343 or starts-with(@xlink:href,'F:') or starts-with(@xlink:href,'E:') or starts-with(@xlink:href,'Overload:')))">
344 <div class="seeAlsoStyle">
345 <xsl:apply-templates select="."/>
346 </div>
347 </xsl:if>
348 </xsl:for-each>
349 </xsl:with-param>
350 </xsl:call-template>
351 </xsl:if>
352
353 <!-- Reference sub-section -->
354 <xsl:if test="normalize-space(ddue:codeEntityReference)">
355 <xsl:call-template name="subSection">
356 <xsl:with-param name="title">
357 <include item="SeeAlsoReference"/>
358 </xsl:with-param>
359 <xsl:with-param name="content">
360 <xsl:for-each select="*">
361 <xsl:if test="name() = 'codeEntityReference' or (name() = 'legacyLink' and (starts-with(@xlink:href,'frlrf')
362 or starts-with(@xlink:href,'N:') or starts-with(@xlink:href,'T:') or starts-with(@xlink:href,'M:') or starts-with(@xlink:href,'P:')
363 or starts-with(@xlink:href,'F:') or starts-with(@xlink:href,'E:') or starts-with(@xlink:href,'Overload:')))">
364 <div class="seeAlsoStyle">
365 <xsl:apply-templates select="."/>
366 </div>
367 </xsl:if>
368 </xsl:for-each>
369 </xsl:with-param>
370 </xsl:call-template>
371 </xsl:if>
372
373 <!-- Other Resources sub-section -->
374 <xsl:if test="ddue:externalLink">
375 <xsl:call-template name="subSection">
376 <xsl:with-param name="title">
377 <include item="SeeAlsoOtherResources"/>
378 </xsl:with-param>
379 <xsl:with-param name="content">
380 <xsl:for-each select="*">
381 <xsl:if test="name() = 'externalLink'">
382 <div class="seeAlsoStyle">
383 <xsl:apply-templates select="."/>
384 </div>
385 </xsl:if>
386 </xsl:for-each>
387 </xsl:with-param>
388 </xsl:call-template>
389 </xsl:if>
390
391 </xsl:with-param>
392 </xsl:call-template>
393 </xsl:if>
394 </xsl:template>
395
396 <xsl:template match="ddue:codeExample">
397 <!-- create Example section for the first codeExample node -->
398 <xsl:if test="not(preceding-sibling::ddue:codeExample) and ../ddue:codeExample[normalize-space(.)!='']">
399 <xsl:call-template name="section">
400 <xsl:with-param name="toggleSwitch" select="'example'"/>
401 <xsl:with-param name="title">
402 <include item="Example" />
403 </xsl:with-param>
404 <xsl:with-param name="content">
405 <xsl:apply-templates />
406 <!-- if there are additional codeExample nodes, put them inside this section -->
407 <xsl:for-each select="following-sibling::ddue:codeExample">
408 <xsl:apply-templates />
409 </xsl:for-each>
410 </xsl:with-param>
411 </xsl:call-template>
412 </xsl:if>
413 </xsl:template>
414
415 <xsl:template match="ddue:codeReference">
416 <xsl:apply-templates/>
417 </xsl:template>
418
419 <xsl:template name="runningHeader">
420 <xsl:variable name="runningHeaderText">
421 <xsl:value-of select="/document/metadata/runningHeaderText/@uscid"/>
422 </xsl:variable>
423 <include item="{$runningHeaderText}" />
424 </xsl:template>
425
426 <!-- Footer stuff -->
427
428 <xsl:template name="foot">
429 <div id="footer">
430 <div class="footerLine">
431 <img width="100%" height="3px">
432 <includeAttribute name="src" item="iconPath">
433 <parameter>footer.gif</parameter>
434 </includeAttribute>
435 <includeAttribute name="title" item="footerImage" />
436 </img>
437 </div>
438
439 <include item="footer">
440 <parameter>
441 <xsl:value-of select="$key"/>
442 </parameter>
443 <parameter>
444 <xsl:call-template name="topicTitlePlain"/>
445 </parameter>
446 </include>
447 </div>
448 </xsl:template>
449
450
451</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.