source: BMXNET_RPMS_dotNET_UTILITIES-BMX/branch/IHS BMX Framework/IndianHealthService.BMXNet.Doc/Help/Presentation/Style/Transforms/utilities_metadata.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: 40.6 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:import href="../../shared/transforms/utilities_metadata.xsl" />
11
12 <xsl:template name="insertMetadata">
13 <xsl:if test="$metadata='true'">
14 <xml>
15 <xsl:call-template name="mshelpTitles" />
16 <MSHelp:Attr Name="AssetID" Value="{$key}" />
17 <!-- toc metadata -->
18 <xsl:call-template name="linkMetadata" />
19 <xsl:call-template name="indexMetadata" />
20 <xsl:call-template name="helpMetadata" />
21 <xsl:call-template name="helpPriorityMetadata" />
22 <xsl:call-template name="apiTaggingMetadata" />
23 <xsl:call-template name="mshelpDevlangAttributes" />
24 <MSHelp:Attr Name="Locale">
25 <includeAttribute name="Value" item="locale" />
26 </MSHelp:Attr>
27 <!-- attribute to allow F1 help integration -->
28 <MSHelp:Attr Name="TopicType">
29 <includeAttribute name="Value" item="TT_ManagedReference"/>
30 </MSHelp:Attr>
31
32 <!-- Abstract -->
33 <xsl:choose>
34 <xsl:when test="string-length($abstractSummary) &gt; 254">
35 <MSHelp:Attr Name="Abstract" Value="{normalize-space(concat(substring($abstractSummary,1,250), ' ...'))}" />
36 </xsl:when>
37 <xsl:when test="string-length($abstractSummary) &gt; 0">
38 <MSHelp:Attr Name="Abstract" Value="{normalize-space($abstractSummary)}" />
39 </xsl:when>
40 </xsl:choose>
41
42 <xsl:call-template name="mshelpCodelangAttributes" />
43 <xsl:call-template name="versionMetadata" />
44 <xsl:call-template name="authoredMetadata" />
45 </xml>
46 </xsl:if>
47 </xsl:template>
48
49 <!-- add DocSet and Technology attributes depending on the versions that support this api -->
50 <xsl:template name="versionMetadata">
51 <xsl:variable name="supportedOnCf">
52 <xsl:call-template name="IsMemberSupportedOnCf"/>
53 </xsl:variable>
54 <xsl:if test="count(/document/reference/versions/versions[@name='netfw']/version) &gt; 0">
55 <MSHelp:Attr Name="Technology">
56 <includeAttribute name="Value" item="desktopTechnologyAttribute" />
57 </MSHelp:Attr>
58 </xsl:if>
59 <xsl:if test="count(/document/reference/versions/versions[@name='netcfw']/version) &gt; 0 or normalize-space($supportedOnCf)!=''">
60 <MSHelp:Attr Name="Technology">
61 <includeAttribute name="Value" item="netcfTechnologyAttribute" />
62 </MSHelp:Attr>
63 <MSHelp:Attr Name="DocSet">
64 <includeAttribute name="Value" item="netcfDocSetAttribute" />
65 </MSHelp:Attr>
66 </xsl:if>
67 </xsl:template>
68
69 <xsl:template name="authoredMetadata">
70
71 <!-- authored attributes -->
72 <xsl:for-each select="/document/metadata/attribute">
73 <MSHelp:Attr Name="{@name}" Value="{text()}" />
74 </xsl:for-each>
75
76 <!-- authored K -->
77 <xsl:for-each select="/document/metadata/keyword[@index='K']">
78 <MSHelp:Keyword Index="K">
79 <xsl:attribute name="Term">
80 <xsl:value-of select="text()" />
81 <xsl:for-each select="keyword[@index='K']">
82 <xsl:text>, </xsl:text>
83 <xsl:value-of select="text()"/>
84 </xsl:for-each>
85 </xsl:attribute>
86 </MSHelp:Keyword>
87 </xsl:for-each>
88
89 <!-- authored F -->
90 <xsl:for-each select="/document/metadata/keyword[@index='F']">
91 <MSHelp:Keyword Index="F">
92 <xsl:attribute name="Term">
93 <xsl:value-of select="text()" />
94 <xsl:for-each select="keyword[@index='F']">
95 <xsl:text>, </xsl:text>
96 <xsl:value-of select="text()"/>
97 </xsl:for-each>
98 </xsl:attribute>
99 </MSHelp:Keyword>
100 </xsl:for-each>
101
102 <!-- authored B -->
103 <xsl:for-each select="/document/metadata/keyword[@index='B']">
104 <MSHelp:Keyword Index="B">
105 <xsl:attribute name="Term">
106 <xsl:value-of select="text()" />
107 <xsl:for-each select="keyword[@index='B']">
108 <xsl:text>, </xsl:text>
109 <xsl:value-of select="text()"/>
110 </xsl:for-each>
111 </xsl:attribute>
112 </MSHelp:Keyword>
113 </xsl:for-each>
114
115 </xsl:template>
116
117 <xsl:template name="mshelpTitles">
118
119 <!-- Toc List title-->
120 <MSHelp:TOCTitle>
121 <includeAttribute name="Title" item="tocTitle">
122 <parameter>
123 <xsl:call-template name="topicTitlePlain" />
124 </parameter>
125 </includeAttribute>
126 </MSHelp:TOCTitle>
127
128 <!-- The Results List title -->
129 <MSHelp:RLTitle>
130 <includeAttribute name="Title" item="rlTitle">
131 <parameter>
132 <xsl:call-template name="topicTitlePlain">
133 <xsl:with-param name="qualifyMembers" value="true()" />
134 </xsl:call-template>
135 </parameter>
136 <parameter>
137 <xsl:value-of select="$namespaceName"/>
138 </parameter>
139 </includeAttribute>
140 </MSHelp:RLTitle>
141
142 </xsl:template>
143
144 <xsl:template name="apiTaggingMetadata">
145 <xsl:if test="($group='type' or $group='member')">
146 <MSHelp:Attr Name="APIType" Value="Managed" />
147 <MSHelp:Attr Name="APILocation" Value="{/document/reference/containers/library/@assembly}.dll" />
148 <xsl:choose>
149 <xsl:when test="$group='type'">
150 <xsl:variable name="apiTypeName">
151 <xsl:value-of select="concat(/document/reference/containers/namespace/apidata/@name,'.',/document/reference/apidata/@name)" />
152 <xsl:if test="count(/document/reference/templates/template) > 0">
153 <xsl:value-of select="concat('`',count(/document/reference/templates/template))" />
154 </xsl:if>
155 </xsl:variable>
156 <!-- Namespace + Type -->
157 <MSHelp:Attr Name="APIName" Value="{$apiTypeName}" />
158 <xsl:choose>
159 <xsl:when test="boolean($subgroup='delegate')">
160 <MSHelp:Attr Name="APIName" Value="{concat($apiTypeName,'.ctor')}" />
161 <MSHelp:Attr Name="APIName" Value="{concat($apiTypeName,'.','Invoke')}" />
162 <MSHelp:Attr Name="APIName" Value="{concat($apiTypeName,'.','BeginInvoke')}" />
163 <MSHelp:Attr Name="APIName" Value="{concat($apiTypeName,'.','EndInvoke')}" />
164 </xsl:when>
165 <xsl:when test="$subgroup='enumeration'">
166 <xsl:for-each select="/document/reference/elements/element">
167 <MSHelp:Attr Name="APIName" Value="{substring(@api,3)}" />
168 </xsl:for-each>
169 <!-- Namespace + Type + Member for each member -->
170 </xsl:when>
171 </xsl:choose>
172 </xsl:when>
173 <xsl:when test="$group='member'">
174 <xsl:variable name="apiTypeName">
175 <xsl:value-of select="concat(/document/reference/containers/namespace/apidata/@name,'.',/document/reference/containers/type/apidata/@name)" />
176 <xsl:if test="count(/document/reference/templates/template) > 0">
177 <xsl:value-of select="concat('`',count(/document/reference/templates/template))" />
178 </xsl:if>
179 </xsl:variable>
180 <!-- Namespace + Type + Member -->
181 <MSHelp:Attr Name="APIName" Value="{concat($apiTypeName,'.',/document/reference/apidata/@name)}" />
182 <xsl:choose>
183 <xsl:when test="boolean($subgroup='property')">
184 <!-- Namespace + Type + get_Member if get-able -->
185 <!-- Namespace + Type + set_Member if set-able -->
186 </xsl:when>
187 <xsl:when test="boolean($subgroup='event')">
188 <!-- Namespace + Type + add_Member -->
189 <!-- Namespace + Type + remove_Member -->
190 </xsl:when>
191 </xsl:choose>
192 </xsl:when>
193 </xsl:choose>
194 </xsl:if>
195 </xsl:template>
196
197 <xsl:template name="linkMetadata">
198 <!-- code entity reference keyword -->
199 <MSHelp:Keyword Index="A" Term="{$key}" />
200
201 <xsl:if test="$subgroup='enumeration'">
202 <xsl:for-each select="/document/reference/elements/element">
203 <MSHelp:Keyword Index="A" Term="{@api}" />
204 </xsl:for-each>
205 </xsl:if>
206
207 <!-- frlrf keywords -->
208 <xsl:choose>
209 <xsl:when test="$group='namespace'">
210 <MSHelp:Keyword Index="A" Term="{translate(concat('frlrf',/document/reference/apidata/@name),'.','')}" />
211 </xsl:when>
212 <!-- types & members, too -->
213 <xsl:when test="$group='type'">
214 <MSHelp:Keyword Index="A" Term="{translate(concat('frlrf',/document/reference/containers/namespace/apidata/@name, /document/reference/apidata/@name, 'ClassTopic'),'.','')}" />
215 </xsl:when>
216 <xsl:when test="$group='list'">
217 <MSHelp:Keyword Index="A" Term="{translate(concat('frlrf',/document/reference/containers/namespace/apidata/@name, /document/reference/topicdata/@name, 'MembersTopic'),'.','')}" />
218 </xsl:when>
219 <xsl:when test="$group='member'">
220 <MSHelp:Keyword Index="A" Term="{translate(concat('frlrf',/document/reference/containers/namespace/apidata/@name, /document/reference/containers/type/apidata/@name, 'Class', /document/reference/apidata/@name, 'Topic'),'.','')}" />
221 </xsl:when>
222 </xsl:choose>
223 <xsl:choose>
224 <xsl:when test="$group='namespace'">
225 <MSHelp:Keyword Index="A" Term="{concat('frlrf',translate(@name,'.',''))}" />
226 </xsl:when>
227 <!-- types & members, too -->
228 </xsl:choose>
229 </xsl:template>
230
231 <xsl:template name="oldIndexMetadata">
232 <!-- K keywords -->
233 <xsl:choose>
234 <xsl:when test="$group='namespace'">
235 <!-- namespace -->
236 <xsl:variable name="namespace" select="/document/reference/apidata/@name" />
237 <xsl:if test="boolean($namespace)">
238 <MSHelp:Keyword Index="K">
239 <includeAttribute name="Term" item="namespaceIndexEntry">
240 <parameter><xsl:value-of select="$namespace" /></parameter>
241 </includeAttribute>
242 </MSHelp:Keyword>
243 </xsl:if>
244 </xsl:when>
245 <xsl:when test="$group='type'">
246 <!-- type -->
247 <xsl:choose>
248 <xsl:when test="count(/document/reference/templates/template) = 0">
249 <!-- non-generic type -->
250 <MSHelp:Keyword Index="K">
251 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
252 <parameter><xsl:value-of select="/document/reference/apidata/@name" /></parameter>
253 <parameter><xsl:value-of select="$subgroup" /></parameter>
254 </includeAttribute>
255 </MSHelp:Keyword>
256 <MSHelp:Keyword Index="K">
257 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
258 <parameter><xsl:value-of select="concat(/document/reference/containers/namespace[@api]/apidata/@name,'.',/document/reference/apidata/@name)" /></parameter>
259 <parameter><xsl:value-of select="$subgroup" /></parameter>
260 </includeAttribute>
261 </MSHelp:Keyword>
262 </xsl:when>
263 <xsl:otherwise>
264 <!-- generic type -->
265 <MSHelp:Keyword Index="K">
266 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
267 <parameter>
268 <xsl:value-of select="/document/reference/apidata/@name" />
269 <xsl:for-each select="/document/reference/templates"><xsl:call-template name="csTemplatesInIndex" /></xsl:for-each>
270 </parameter>
271 <parameter>
272 <xsl:value-of select="$subgroup" />
273 </parameter>
274 </includeAttribute>
275 </MSHelp:Keyword>
276 <MSHelp:Keyword Index="K">
277 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
278 <parameter>
279 <xsl:value-of select="/document/reference/apidata/@name" />
280 <xsl:for-each select="/document/reference/templates">
281 <xsl:call-template name="vbTemplates">
282 <xsl:with-param name="seperator" select="string('%2C ')" />
283 </xsl:call-template>
284 </xsl:for-each>
285 </parameter>
286 <parameter><xsl:value-of select="$subgroup" /></parameter>
287 </includeAttribute>
288 </MSHelp:Keyword>
289 </xsl:otherwise>
290 </xsl:choose>
291 <!-- an entry like: "FileClassifier class, about FileClassifier class" -->
292 <xsl:if test="$subgroup='class' or $subgroup='structure' or $subgroup='interface'">
293 <MSHelp:Keyword Index="K">
294 <includeAttribute name="Term" item="aboutTypeIndexEntry">
295 <parameter>
296 <xsl:value-of select="/document/reference/apidata/@name" />
297 </parameter>
298 <parameter>
299 <xsl:value-of select="$subgroup"/>
300 </parameter>
301 </includeAttribute>
302 </MSHelp:Keyword>
303 </xsl:if>
304 <!-- for enums, an entry for each enum member, e.g. "Sunken enumeration member" -->
305 <xsl:if test="$subgroup='enumeration'">
306 <xsl:for-each select="/document/reference/elements/element">
307 <MSHelp:Keyword Index="K">
308 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
309 <parameter>
310 <xsl:value-of select="apidata/@name" />
311 </parameter>
312 <parameter>
313 <xsl:text>enumMember</xsl:text>
314 </parameter>
315 </includeAttribute>
316 </MSHelp:Keyword>
317 </xsl:for-each>
318 </xsl:if>
319 </xsl:when>
320 <xsl:when test="($group='member') and (starts-with($key,'Overload:') or not(/document/reference/memberdata/@overload))">
321 <!-- member -->
322 <xsl:variable name="indexEntryItem">
323 <xsl:choose>
324 <xsl:when test="boolean($subsubgroup)">
325 <xsl:value-of select="$subsubgroup" />
326 </xsl:when>
327 <xsl:when test="boolean($subgroup)">
328 <xsl:value-of select="$subgroup" />
329 </xsl:when>
330 </xsl:choose>
331 </xsl:variable>
332 <xsl:choose>
333 <xsl:when test="count(/document/reference/templates/template) = 0">
334 <!-- non-generic member -->
335 <MSHelp:Keyword Index="K">
336 <xsl:choose>
337 <xsl:when test="$subgroup='constructor'">
338 <includeAttribute name="Term" item="listTopicIndexEntry">
339 <parameter>
340 <xsl:value-of select="/document/reference/containers/type/apidata/@name"/>
341 </parameter>
342 <parameter>
343 <xsl:value-of select="/document/reference/containers/type/apidata/@subgroup"/>
344 </parameter>
345 <parameter>
346 <xsl:value-of select="$indexEntryItem" />
347 </parameter>
348 </includeAttribute>
349 </xsl:when>
350 <xsl:otherwise>
351 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
352 <parameter>
353 <xsl:value-of select="/document/reference/apidata/@name"/>
354 </parameter>
355 <parameter>
356 <xsl:value-of select="$indexEntryItem" />
357 </parameter>
358 </includeAttribute>
359 </xsl:otherwise>
360 </xsl:choose>
361 </MSHelp:Keyword>
362 </xsl:when>
363 <xsl:otherwise>
364 <!-- generic member -->
365 <MSHelp:Keyword Index="K">
366 <xsl:choose>
367 <xsl:when test="$subgroup='constructor'">
368 <includeAttribute name="Term" item="listTopicIndexEntry">
369 <parameter>
370 <xsl:value-of select="/document/reference/containers/type/apidata/@name"/>
371 <xsl:for-each select="/document/reference/templates">
372 <xsl:call-template name="csTemplatesInIndex" />
373 </xsl:for-each>
374 </parameter>
375 <parameter>
376 <xsl:value-of select="/document/reference/containers/type/apidata/@subgroup"/>
377 </parameter>
378 <parameter>
379 <xsl:value-of select="$indexEntryItem" />
380 </parameter>
381 </includeAttribute>
382 </xsl:when>
383 <xsl:otherwise>
384 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
385 <parameter>
386 <xsl:value-of select="/document/reference/apidata/@name"/>
387 <xsl:for-each select="/document/reference/templates">
388 <xsl:call-template name="csTemplatesInIndex" />
389 </xsl:for-each>
390 </parameter>
391 <parameter>
392 <xsl:value-of select="$indexEntryItem" />
393 </parameter>
394 </includeAttribute>
395 </xsl:otherwise>
396 </xsl:choose>
397 </MSHelp:Keyword>
398 <MSHelp:Keyword Index="K">
399 <xsl:choose>
400 <xsl:when test="$subgroup='constructor'">
401 <includeAttribute name="Term" item="listTopicIndexEntry">
402 <parameter>
403 <xsl:value-of select="/document/reference/containers/type/apidata/@name"/>
404 <xsl:for-each select="/document/reference/templates">
405 <xsl:call-template name="vbTemplates">
406 <xsl:with-param name="seperator" select="string('%2C ')" />
407 </xsl:call-template>
408 </xsl:for-each>
409 </parameter>
410 <parameter>
411 <xsl:value-of select="/document/reference/containers/type/apidata/@subgroup"/>
412 </parameter>
413 <parameter>
414 <xsl:value-of select="$indexEntryItem" />
415 </parameter>
416 </includeAttribute>
417 </xsl:when>
418 <xsl:otherwise>
419 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
420 <parameter>
421 <xsl:value-of select="/document/reference/apidata/@name"/>
422 <xsl:for-each select="/document/reference/templates">
423 <xsl:call-template name="vbTemplates">
424 <xsl:with-param name="seperator" select="string('%2C ')" />
425 </xsl:call-template>
426 </xsl:for-each>
427 </parameter>
428 <parameter>
429 <xsl:value-of select="$indexEntryItem" />
430 </parameter>
431 </includeAttribute>
432 </xsl:otherwise>
433 </xsl:choose>
434 </MSHelp:Keyword>
435 </xsl:otherwise>
436 </xsl:choose>
437 <!-- type + member -->
438 <xsl:choose>
439 <xsl:when test="count(/document/reference/containers/namespace[@api]/templates/template) = 0">
440 <!-- non-generic type -->
441 <MSHelp:Keyword Index="K">
442 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
443 <parameter>
444 <xsl:choose>
445 <xsl:when test="$subgroup='constructor'">
446 <xsl:value-of select="concat(/document/reference/containers/type/apidata/@name,'.',/document/reference/containers/type/apidata/@name)" />
447 </xsl:when>
448 <xsl:otherwise>
449 <xsl:value-of select="concat(/document/reference/containers/namespace[@api]/apidata/@name,'.',/document/reference/apidata/@name)" />
450 </xsl:otherwise>
451 </xsl:choose>
452 </parameter>
453 <parameter>
454 <xsl:value-of select="$indexEntryItem" />
455 </parameter>
456 </includeAttribute>
457 </MSHelp:Keyword>
458 </xsl:when>
459 <xsl:otherwise>
460 <!-- generic type -->
461 <MSHelp:Keyword Index="K">
462 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
463 <parameter>
464 <xsl:value-of select="/document/reference/containers/namespace[@api]/apidata/@name"/>
465 <xsl:for-each select="/document/reference/containers/namespace[@api]/templates">
466 <xsl:call-template name="vbTemplates">
467 <xsl:with-param name="seperator" select="string('%2C ')" />
468 </xsl:call-template>
469 </xsl:for-each>
470 <xsl:text>.</xsl:text>
471 <xsl:choose>
472 <xsl:when test="$subgroup='constructor'">
473 <xsl:value-of select="/document/reference/type/apidata/@name" />
474 </xsl:when>
475 <xsl:otherwise>
476 <xsl:value-of select="/document/reference/apidata/@name" />
477 </xsl:otherwise>
478 </xsl:choose>
479 </parameter>
480 <parameter>
481 <xsl:value-of select="$indexEntryItem" />
482 </parameter>
483 </includeAttribute>
484 </MSHelp:Keyword>
485 <MSHelp:Keyword Index="K">
486 <includeAttribute name="Term" item="nameSubgroupIndexEntry">
487 <parameter>
488 <xsl:value-of select="/document/reference/containers/namespace[@api]/apidata/@name"/>
489 <xsl:for-each select="/document/reference/containers/namespace[@api]/templates">
490 <xsl:call-template name="csTemplatesInIndex" />
491 </xsl:for-each>
492 <xsl:text>.</xsl:text>
493 <xsl:choose>
494 <xsl:when test="$subgroup='constructor'">
495 <xsl:value-of select="/document/reference/type/apidata/@name" />
496 </xsl:when>
497 <xsl:otherwise>
498 <xsl:value-of select="/document/reference/apidata/@name" />
499 </xsl:otherwise>
500 </xsl:choose>
501 </parameter>
502 <parameter>
503 <xsl:value-of select="$indexEntryItem" />
504 </parameter>
505 </includeAttribute>
506 </MSHelp:Keyword>
507 </xsl:otherwise>
508 </xsl:choose>
509 </xsl:when>
510 <xsl:when test="($group='members' or $group='derivedtype')">
511 <MSHelp:Keyword Index="K">
512 <includeAttribute name="Term" item="listTopicIndexEntry">
513 <parameter>
514 <xsl:value-of select="/document/reference/apidata/@name" />
515 </parameter>
516 <parameter>
517 <xsl:value-of select="/document/reference/containers/type[@api]/apidata/@subgroup"/>
518 </parameter>
519 <parameter>
520 <xsl:value-of select="$subgroup" />
521 </parameter>
522 </includeAttribute>
523 </MSHelp:Keyword>
524 </xsl:when>
525 </xsl:choose>
526 </xsl:template>
527
528 <xsl:template name="helpMetadata">
529 <!-- F keywords -->
530 <xsl:choose>
531 <!-- namespace pages get the namespace keyword, if it exists -->
532 <xsl:when test="$group='namespace'">
533 <xsl:variable name="namespace" select="/document/reference/apidata/@name" />
534 <xsl:if test="boolean($namespace)">
535 <MSHelp:Keyword Index="F" Term="{$namespace}" />
536 </xsl:if>
537 </xsl:when>
538 <!-- type overview and member list pages get type and namespace.type keywords -->
539 <xsl:when test="$group='type' or ($group='list' and $subgroup='members')">
540 <xsl:variable name="namespace" select="/document/reference/containers/namespace/apidata/@name" />
541 <xsl:variable name="type">
542 <xsl:for-each select="/document/reference[1]">
543 <xsl:call-template name="typeNamePlain">
544 <xsl:with-param name="annotated" select="true()" />
545 </xsl:call-template>
546 </xsl:for-each>
547 </xsl:variable>
548 <MSHelp:Keyword Index="F" Term="{$type}" />
549 <xsl:if test="boolean($namespace)">
550 <MSHelp:Keyword Index="F" Term="{concat($namespace,'.',$type)}" />
551 </xsl:if>
552 <xsl:if test="$subgroup = 'enumeration'">
553 <xsl:for-each select="/document/reference/elements/element">
554 <MSHelp:Keyword Index="F" Term="{concat($type, '.', apidata/@name)}" />
555 <xsl:if test="boolean($namespace)">
556 <MSHelp:Keyword Index="F" Term="{concat($namespace,'.',$type, '.', apidata/@name)}" />
557 </xsl:if>
558 </xsl:for-each>
559 </xsl:if>
560 <xsl:call-template name="xamlMSHelpFKeywords"/>
561 </xsl:when>
562 <!-- member pages get member, type.member, and namepsace.type.member keywords -->
563 <xsl:when test="$group='member'">
564 <xsl:variable name="namespace" select="/document/reference/containers/namespace/apidata/@name" />
565 <xsl:variable name="type">
566 <xsl:for-each select="/document/reference/containers/type[1]">
567 <xsl:call-template name="typeNamePlain">
568 <xsl:with-param name="annotate" select="true()" />
569 </xsl:call-template>
570 </xsl:for-each>
571 </xsl:variable>
572 <xsl:variable name="member">
573 <xsl:choose>
574 <!-- if the member is a constructor, use the member name for the type name -->
575 <xsl:when test="$subgroup='constructor'">
576 <xsl:value-of select="$type" />
577 </xsl:when>
578 <xsl:otherwise>
579 <xsl:value-of select="/document/reference/apidata/@name"/>
580 </xsl:otherwise>
581 </xsl:choose>
582 </xsl:variable>
583 <!--
584 <xsl:choose>
585 -->
586 <!--
587 <xsl:when test="$subgroup='constructor'">
588 <MSHelp:Keyword Index="F" Term="{$type}" />
589 <MSHelp:Keyword Index="F" Term="{concat($type, '.', $type)}" />
590 <xsl:if test="boolean($namespace)">
591 <MSHelp:Keyword Index="F" Term="{concat($namespace, '.', $type, '.', $type)}" />
592 </xsl:if>
593 </xsl:when>
594 <xsl:otherwise>
595 -->
596 <MSHelp:Keyword Index="F" Term="{$member}" />
597 <MSHelp:Keyword Index="F" Term="{concat($type, '.', $member)}" />
598 <xsl:if test="boolean($namespace)">
599 <MSHelp:Keyword Index="F" Term="{concat($namespace, '.', $type, '.', $member)}" />
600 </xsl:if>
601 <!--
602 </xsl:otherwise>
603 </xsl:choose>
604 -->
605 </xsl:when>
606 </xsl:choose>
607</xsl:template>
608
609<xsl:template name="helpPriorityMetadata">
610 <xsl:choose>
611 <xsl:when test="$group='namespace' or $subgroup='members'">
612 <MSHelp:Attr Name="HelpPriority" Value="1"/>
613 </xsl:when>
614 <xsl:when test="$group='type'">
615 <MSHelp:Attr Name="HelpPriority" Value="2"/>
616 </xsl:when>
617 </xsl:choose>
618 </xsl:template>
619
620 <!--
621 <xsl:template name="apiName">
622 <xsl:choose>
623 <xsl:when test="$subgroup='constructor'">
624 <xsl:value-of select="/document/reference/containers/type/apidata/@name" />
625 </xsl:when>
626 <xsl:otherwise>
627 <xsl:value-of select="/document/reference/apidata/@name" />
628 </xsl:otherwise>
629 </xsl:choose>
630 </xsl:template>
631 -->
632
633 <xsl:template name="codeLang">
634 <xsl:param name="codeLang" />
635 <MSHelp:Attr Name="codelang" Value="{$codeLang}" />
636 </xsl:template>
637
638 <xsl:template name="mshelpDevlangAttributes">
639 <xsl:for-each select="/document/syntax/div[@codeLanguage]">
640 <xsl:if test="not(@codeLanguage=preceding::*/@codeLanguage)">
641 <xsl:variable name="devlang">
642 <xsl:choose>
643 <xsl:when test="@codeLanguage = 'CSharp' or @codeLanguage = 'c#' or @codeLanguage = 'cs' or @codeLanguage = 'C#'" >
644 <xsl:text>CSharp</xsl:text>
645 </xsl:when>
646 <xsl:when test="@codeLanguage = 'ManagedCPlusPlus' or @codeLanguage = 'cpp' or @codeLanguage = 'cpp#' or @codeLanguage = 'c' or @codeLanguage = 'c++' or @codeLanguage = 'C++' or @codeLanguage = 'kbLangCPP'" >
647 <xsl:text>C++</xsl:text>
648 </xsl:when>
649 <xsl:when test="@codeLanguage = 'JScript' or @codeLanguage = 'js' or @codeLanguage = 'jscript#' or @codeLanguage = 'jscript' or @codeLanguage = 'JScript' or @codeLanguage = 'kbJScript'">
650 <xsl:text>JScript</xsl:text>
651 </xsl:when>
652 <xsl:when test="@codeLanguage = 'VisualBasic' or @codeLanguage = 'vb' or @codeLanguage = 'vb#' or @codeLanguage = 'VB' or @codeLanguage = 'kbLangVB'" >
653 <xsl:text>VB</xsl:text>
654 </xsl:when>
655 <xsl:when test="@codeLanguage = 'VBScript' or @codeLanguage = 'vbs'">
656 <xsl:text>VBScript</xsl:text>
657 </xsl:when>
658 <xsl:when test="@codeLanguage = 'JSharp' or @codeLanguage = 'j#' or @codeLanguage = 'jsharp' or @codeLanguage = 'VJ#'">
659 <xsl:text>VJ#</xsl:text>
660 </xsl:when>
661 <xsl:when test="@codeLanguage = 'xaml' or @codeLanguage = 'XAML'">
662 <xsl:text>XAML</xsl:text>
663 </xsl:when>
664 <xsl:when test="@codeLanguage = 'xml' or @codeLanguage = 'XML'">
665 <xsl:text>XML</xsl:text>
666 </xsl:when>
667 <xsl:otherwise>
668 <xsl:text>other</xsl:text>
669 </xsl:otherwise>
670 </xsl:choose>
671 </xsl:variable>
672 <xsl:choose>
673 <xsl:when test="$devlang='other'" />
674 <xsl:otherwise>
675 <MSHelp:Attr Name="DevLang" Value="{$devlang}" />
676 </xsl:otherwise>
677 </xsl:choose>
678 </xsl:if>
679 </xsl:for-each>
680 </xsl:template>
681
682 <!--
683 Additional F1 keywords for class, struct, and enum topics in a set of WPF namespaces.
684 This template inserts the MSHelp:Keyword nodes.
685 The keyword prefixes and the WPF namespaces are hard-coded in variables.
686 -->
687 <xsl:variable name="var_wpf_f1index_prefix_1">http://schemas.microsoft.com/winfx/2006/xaml/presentation#</xsl:variable>
688 <xsl:variable name="var_wpf_f1index_prefix_1_namespaces">N:System.Windows.Controls#N:System.Windows.Documents#N:System.Windows.Shapes#N:System.Windows.Navigation#N:System.Windows.Data#N:System.Windows#N:System.Windows.Controls.Primitives#N:System.Windows.Media.Animation#N:System.Windows.Annotations#N:System.Windows.Annotations.Anchoring#N:System.Windows.Annotations.Storage#N:System.Windows.Media#N:System.Windows.Media.Animation#N:System.Windows.Media.Media3D#N:</xsl:variable>
689
690 <xsl:template name="xamlMSHelpFKeywords">
691 <xsl:if test="$subgroup='class' or $subgroup='enumeration' or $subgroup='structure'">
692 <xsl:if test="boolean(contains($var_wpf_f1index_prefix_1_namespaces, concat('#',/document/reference/containers/namespace/@api,'#'))
693 or starts-with($var_wpf_f1index_prefix_1_namespaces, concat(/document/reference/containers/namespace/@api,'#')))">
694 <MSHelp:Keyword Index="F" Term="{concat($var_wpf_f1index_prefix_1, /document/reference/apidata/@name)}"/>
695 </xsl:if>
696 </xsl:if>
697 </xsl:template>
698
699 <!-- Index Logic -->
700
701 <xsl:template name="indexMetadata">
702 <xsl:choose>
703 <!-- namespace topics get one unqualified index entry -->
704 <xsl:when test="$group='namespace'">
705 <xsl:variable name="names">
706 <xsl:for-each select="/document/reference">
707 <xsl:call-template name="textNames" />
708 </xsl:for-each>
709 </xsl:variable>
710 <MSHelp:Keyword Index="K">
711 <includeAttribute name="Term" item="namespaceIndexEntry">
712 <parameter>
713 <xsl:value-of select="msxsl:node-set($names)/name" />
714 </parameter>
715 </includeAttribute>
716 </MSHelp:Keyword>
717 </xsl:when>
718 <!-- type overview topics get unqualified about -->
719 <xsl:when test="$group='type'">
720 <xsl:variable name="names">
721 <xsl:for-each select="/document/reference">
722 <xsl:call-template name="textNames" />
723 </xsl:for-each>
724 </xsl:variable>
725 <xsl:variable name="namespace" select="/document/reference/containers/namespace/apidata/@name" />
726 <xsl:for-each select="msxsl:node-set($names)/name">
727 <MSHelp:Keyword Index="K">
728 <includeAttribute name="Term" item="{$subgroup}IndexEntry">
729 <parameter>
730 <xsl:value-of select="." />
731 </parameter>
732 </includeAttribute>
733 </MSHelp:Keyword>
734 <xsl:if test="boolean($namespace)">
735 <MSHelp:Keyword Index="K">
736 <includeAttribute name="Term" item="{$subgroup}IndexEntry">
737 <parameter>
738 <xsl:value-of select="$namespace"/>
739 <xsl:text>.</xsl:text>
740 <xsl:value-of select="." />
741 </parameter>
742 </includeAttribute>
743 </MSHelp:Keyword>
744 </xsl:if>
745 <xsl:if test="$subgroup = 'class' or $subgroup= 'structure' or $subgroup= 'interface'">
746 <MSHelp:Keyword Index="K">
747 <includeAttribute name="Term" item="aboutTypeIndexEntry">
748 <parameter>
749 <include item="{$subgroup}IndexEntry">
750 <parameter>
751 <xsl:value-of select="." />
752 </parameter>
753 </include>
754 </parameter>
755 </includeAttribute>
756 </MSHelp:Keyword>
757 </xsl:if>
758 </xsl:for-each>
759 <xsl:if test="$subgroup = 'enumeration'">
760 <xsl:for-each select="/document/reference/elements/element">
761 <MSHelp:Keyword Index="K">
762 <includeAttribute name="Term" item="{$subgroup}MemberIndexEntry">
763 <parameter>
764 <xsl:value-of select="apidata/@name" />
765 </parameter>
766 </includeAttribute>
767 </MSHelp:Keyword>
768 </xsl:for-each>
769 </xsl:if>
770 </xsl:when>
771 <!-- all member lists get unqualified entries, qualified entries, and unqualified sub-entries -->
772 <xsl:when test="$group='list' and $subgroup='members'">
773 <xsl:variable name="typeSubgroup" select="/document/reference/apidata/@subgroup" />
774 <xsl:variable name="names">
775 <xsl:for-each select="/document/reference">
776 <xsl:call-template name="textNames" />
777 </xsl:for-each>
778 </xsl:variable>
779 <xsl:for-each select="msxsl:node-set($names)/name">
780 <MSHelp:Keyword Index="K">
781 <includeAttribute name="Term" item="{$typeSubgroup}IndexEntry">
782 <parameter>
783 <xsl:value-of select="." />
784 </parameter>
785 </includeAttribute>
786 </MSHelp:Keyword>
787 <MSHelp:Keyword Index="K">
788 <includeAttribute name="Term" item="membersIndexEntry">
789 <parameter>
790 <include item="{$typeSubgroup}IndexEntry">
791 <parameter>
792 <xsl:value-of select="." />
793 </parameter>
794 </include>
795 </parameter>
796 </includeAttribute>
797 </MSHelp:Keyword>
798 </xsl:for-each>
799 <xsl:variable name="qnames">
800 <xsl:for-each select="/document/reference">
801 <xsl:call-template name="qualifiedTextNames" />
802 </xsl:for-each>
803 </xsl:variable>
804 <xsl:for-each select="msxsl:node-set($qnames)/name">
805 <MSHelp:Keyword Index="K">
806 <includeAttribute name="Term" item="{$typeSubgroup}IndexEntry">
807 <parameter>
808 <xsl:value-of select="." />
809 </parameter>
810 </includeAttribute>
811 </MSHelp:Keyword>
812 </xsl:for-each>
813 <!-- enumeration topics also get entries for each member -->
814 </xsl:when>
815 <!-- other member list pages get unqualified sub-entries -->
816 <xsl:when test="$group='list' and not($subgroup = 'overload')">
817 <xsl:variable name="typeSubgroup" select="/document/reference/apidata/@subgroup" />
818 <xsl:variable name="names">
819 <xsl:for-each select="/document/reference">
820 <xsl:call-template name="textNames" />
821 </xsl:for-each>
822 </xsl:variable>
823 <xsl:for-each select="msxsl:node-set($names)/name">
824 <MSHelp:Keyword Index="K">
825 <includeAttribute name="Term" item="{$subgroup}IndexEntry">
826 <parameter>
827 <include item="{$typeSubgroup}IndexEntry">
828 <parameter>
829 <xsl:value-of select="." />
830 </parameter>
831 </include>
832 </parameter>
833 </includeAttribute>
834 </MSHelp:Keyword>
835 </xsl:for-each>
836 </xsl:when>
837 <!-- constructor (or constructor overload) topics get unqualified sub-entries using the type names -->
838 <xsl:when test="($subgroup='constructor' and not(/document/reference/memberdata/@overload)) or ($subgroup='overload' and /document/reference/apidata/@subgroup = 'constructor')">
839 <xsl:variable name="typeSubgroup" select="/document/reference/containers/type/apidata/@subgroup" />
840 <xsl:variable name="names">
841 <xsl:for-each select="/document/reference/containers/type">
842 <xsl:call-template name="textNames" />
843 </xsl:for-each>
844 </xsl:variable>
845 <xsl:for-each select="msxsl:node-set($names)/name">
846 <MSHelp:Keyword Index="K">
847 <includeAttribute name="Term" item="constructorIndexEntry">
848 <parameter>
849 <include item="{$typeSubgroup}IndexEntry">
850 <parameter>
851 <xsl:value-of select="." />
852 </parameter>
853 </include>
854 </parameter>
855 </includeAttribute>
856 </MSHelp:Keyword>
857 </xsl:for-each>
858 <xsl:variable name="qnames">
859 <xsl:for-each select="/document/reference">
860 <xsl:call-template name="qualifiedTextNames" />
861 </xsl:for-each>
862 </xsl:variable>
863 <xsl:for-each select="msxsl:node-set($qnames)/name">
864 <MSHelp:Keyword Index="K">
865 <includeAttribute name="Term" item="constructorTypeIndexEntry">
866 <parameter>
867 <xsl:value-of select="." />
868 </parameter>
869 </includeAttribute>
870 </MSHelp:Keyword>
871 </xsl:for-each>
872 </xsl:when>
873 <!-- other member (or overload) topics get qualified and unqualified entries using the member names -->
874 <xsl:when test="($group='member' and not(/document/reference/memberdata/@overload)) or $subgroup='overload'">
875 <!-- no index entries for explicit interface implementations -->
876 <xsl:if test="not(/document/reference/proceduredata/@virtual='true' and /document/reference/memberdata/@visibility='private')">
877 <xsl:variable name="entryType">
878 <xsl:choose>
879 <xsl:when test="string($subsubgroup)">
880 <xsl:value-of select="$subsubgroup" />
881 </xsl:when>
882 <xsl:otherwise>
883 <xsl:choose>
884 <xsl:when test="$subgroup='overload'">
885 <xsl:value-of select="/document/reference/apidata/@subgroup"/>
886 </xsl:when>
887 <xsl:otherwise>
888 <xsl:value-of select="$subgroup" />
889 </xsl:otherwise>
890 </xsl:choose>
891 </xsl:otherwise>
892 </xsl:choose>
893 </xsl:variable>
894 <xsl:variable name="names">
895 <xsl:for-each select="/document/reference">
896 <xsl:call-template name="textNames" />
897 </xsl:for-each>
898 </xsl:variable>
899 <xsl:for-each select="msxsl:node-set($names)/name">
900 <MSHelp:Keyword Index="K">
901 <includeAttribute name="Term" item="{$entryType}IndexEntry">
902 <parameter>
903 <xsl:value-of select="." />
904 </parameter>
905 </includeAttribute>
906 </MSHelp:Keyword>
907 </xsl:for-each>
908 <xsl:variable name="qnames">
909 <xsl:for-each select="/document/reference">
910 <xsl:call-template name="qualifiedTextNames" />
911 </xsl:for-each>
912 </xsl:variable>
913 <xsl:for-each select="msxsl:node-set($qnames)/name">
914 <MSHelp:Keyword Index="K">
915 <includeAttribute name="Term" item="{$entryType}IndexEntry">
916 <parameter>
917 <xsl:value-of select="." />
918 </parameter>
919 </includeAttribute>
920 </MSHelp:Keyword>
921 </xsl:for-each>
922 </xsl:if>
923 </xsl:when>
924 <!-- derived type lists get unqualified sub-entries -->
925 </xsl:choose>
926 </xsl:template>
927
928</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.