source: DCWoRMS/branches/coolemall/simulator/xslt/debb/DEBBComponentTranslator.xsl @ 1302

Revision 1302, 28.4 KB checked in by wojtekp, 11 years ago (diff)
  • Property svn:mime-type set to text/plain
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xsl:stylesheet version="2.0"
3        xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:plm="http://www.plmxml.org/Schemas/PLMXMLSchema"
4        xmlns:cim="http://www.coolemall.eu/DEBBComponent" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
5        <!-- Specification of the output document -->           
6        <xsl:output method="xml" version="1.0" encoding="UTF-8"
7                indent="yes" />
8       
9        <xsl:param name="plmxmlFileName" select="plmxmlFileName" />     
10
11        <xsl:template match="//*[PartID]" mode="component">
12                <xsl:param name="instanceRefs"/>
13                <xsl:call-template name="translateComputingElement">
14                        <xsl:with-param name="instanceRefs" select="$instanceRefs" />
15                </xsl:call-template>
16        </xsl:template>
17       
18        <xsl:template match="//*[PartID]"  mode="coolingDevice">
19                <xsl:param name="instanceRefs"/>
20                <xsl:call-template name="translateCoolingDevice">
21                        <xsl:with-param name="instanceRefs" select="$instanceRefs" />
22                </xsl:call-template>
23        </xsl:template>
24       
25        <xsl:template match="//*[PartID]"  mode="fan">
26                <xsl:param name="instanceRefs"/>
27                <xsl:call-template name="translateFan">
28                        <xsl:with-param name="instanceRefs" select="$instanceRefs" />
29                </xsl:call-template>
30        </xsl:template>
31       
32        <xsl:template match="//*[PartID]"  mode="heatsink">
33                <xsl:param name="instanceRefs"/>
34                <xsl:call-template name="translateHeatsink">
35                        <xsl:with-param name="instanceRefs" select="$instanceRefs" />
36                </xsl:call-template>
37        </xsl:template>
38
39        <xsl:template name="translateComputingElement">
40                <xsl:param name="instanceRefs"/>
41
42                <xsl:call-template name="BasicDEBBPhysicalElementParameters" />
43               
44                <xsl:if test="Memory">
45                        <xsl:apply-templates select="Memory" />
46                </xsl:if>
47               
48                <!-- PERFORMANCE
49                <xsl:if test="Baseboard">
50                        <xsl:apply-templates select="Baseboard" />
51                </xsl:if>
52               
53                <xsl:if test="Sensor">
54                        <xsl:apply-templates select="Sensor" />
55                </xsl:if>
56                -->     
57               
58                <xsl:if test="PowerSupply">
59                        <xsl:apply-templates select="PowerSupply" />
60                </xsl:if>
61               
62                <xsl:if test="Processor">
63                        <xsl:apply-templates select="Processor" />
64                </xsl:if>
65
66                                               
67                <!--
68                <xsl:if test="Heatsink">
69                        <xsl:apply-templates select="Heatsink" mode="device">
70                                <xsl:with-param name="instanceRefs" select="$instanceRefs" />
71                        </xsl:apply-templates>
72                </xsl:if>       
73                 -->           
74                 
75                 <!--
76                <xsl:if test="Inlet">
77                        <xsl:apply-templates select="Inlet" mode="device">
78                                <xsl:with-param name="instanceRefs" select="$instanceRefs" />
79                        </xsl:apply-templates>
80                </xsl:if>       
81               
82                <xsl:if test="Outlet">
83                        <xsl:apply-templates select="Outlet" mode="device">
84                                <xsl:with-param name="instanceRefs" select="$instanceRefs" />
85                        </xsl:apply-templates>
86                </xsl:if>       
87                 -->   
88                 
89                <!-- PERFORMANCE
90                <xsl:if test="Slot">
91                        <xsl:apply-templates select="Slot" />
92                </xsl:if>       
93
94                <xsl:if test="Size">
95                        <xsl:element name="parameter">
96                                <xsl:attribute name="name">size</xsl:attribute>
97                                        <xsl:element name="value">
98                                        <xsl:value-of select="Size" />
99                                </xsl:element>
100                        </xsl:element>
101                </xsl:if>       
102
103                <xsl:if test="Network">
104                        <xsl:apply-templates select="Network" />
105                </xsl:if>
106                 -->   
107                 
108        </xsl:template>
109
110        <xsl:template match="Baseboard">
111                <xsl:element name="parameter">
112                        <xsl:attribute name="name">baseboard</xsl:attribute>
113                        <!-- Don't call BasicDEBBPhysicalElementParameters, because parameter
114                                cannot contain parameters. Must be parameter containing properties. -->
115                        <xsl:call-template name="BasicDEBBPhysicalElementProperties" />
116                </xsl:element>
117        </xsl:template>
118
119        <xsl:template match="Sensor">
120                <xsl:element name="parameter">
121                        <xsl:attribute name="name">sensor</xsl:attribute>
122                        <xsl:element name="property">
123                                <xsl:attribute name="name">name</xsl:attribute>
124                                <xsl:element name="value">
125                                        <xsl:value-of select="Name" />
126                                </xsl:element>
127                        </xsl:element>
128                        <xsl:element name="property">
129                                <xsl:attribute name="name">class</xsl:attribute>
130                                <xsl:element name="value">
131                                        <xsl:value-of select="Class" />
132                                </xsl:element>
133                        </xsl:element>
134                        <xsl:element name="property">
135                                <xsl:attribute name="name">unit</xsl:attribute>
136                                <xsl:element name="value">
137                                        <xsl:value-of select="Unit" />
138                                </xsl:element>
139                        </xsl:element>
140                        <xsl:if test="MinValue">
141                                <xsl:element name="property">
142                                        <xsl:attribute name="name">minValue</xsl:attribute>
143                                        <xsl:element name="value">
144                                                <xsl:value-of select="MinValue" />
145                                        </xsl:element>
146                                </xsl:element>
147                        </xsl:if>
148                        <xsl:if test="MaxValue">
149                                <xsl:element name="property">
150                                        <xsl:attribute name="name">maxValue</xsl:attribute>
151                                        <xsl:element name="value">
152                                                <xsl:value-of select="MaxValue" />
153                                        </xsl:element>
154                                </xsl:element>
155                        </xsl:if>
156                        <xsl:if test="Factor">
157                                <xsl:element name="property">
158                                        <xsl:attribute name="name">factor</xsl:attribute>
159                                        <xsl:element name="value">
160                                                <xsl:value-of select="Factor" />
161                                        </xsl:element>
162                                </xsl:element>
163                        </xsl:if>
164                        <xsl:if test="Accuracy">
165                                <xsl:element name="property">
166                                        <xsl:attribute name="name">accuracy</xsl:attribute>
167                                        <xsl:element name="value">
168                                                <xsl:value-of select="Accuracy" />
169                                        </xsl:element>
170                                </xsl:element>
171                        </xsl:if>
172
173                        <!-- Don't call BasicDEBBPhysicalElementParameters, because parameter
174                                cannot contain parameters. Must be parameter containing properties. -->
175                        <xsl:call-template name="BasicDEBBPhysicalElementProperties" />
176                </xsl:element>
177        </xsl:template>
178
179        <xsl:template match="Processor">
180                <xsl:element name="computingResource">
181                        <xsl:attribute name="class">Processor</xsl:attribute>
182                        <xsl:call-template name="BasicDEBBPhysicalElementParameters" />
183                        <xsl:variable name="threads">
184                                 <xsl:choose>
185                                <xsl:when test="VirtualCoresPerCore">
186                                        <xsl:value-of select="VirtualCoresPerCore"/>
187                                </xsl:when>
188                                <xsl:otherwise>1</xsl:otherwise>
189                                </xsl:choose>
190                        </xsl:variable>
191                                       
192                        <xsl:if test="Cores">
193                                <xsl:element name="computingResource">
194                                        <xsl:attribute name="class">Core</xsl:attribute>
195                                        <xsl:variable name="nrOfCores" select="Cores"/>
196                                        <xsl:attribute name="count">
197                                                <xsl:value-of select="$nrOfCores" />
198                                        </xsl:attribute>
199                                </xsl:element>
200                        </xsl:if>
201                        <xsl:element name="parameter">
202                                <xsl:attribute name="name">speed</xsl:attribute>
203                                <xsl:element name="value">
204                                        <xsl:value-of select="MaxClockSpeed" />
205                                </xsl:element>
206                        </xsl:element>
207                       
208                        <xsl:if test="VirtualCoresPerCore">
209                                <xsl:element name="parameter">
210                                        <xsl:attribute name="name">threads</xsl:attribute>
211                                        <xsl:element name="value">
212                                                <xsl:value-of select="VirtualCoresPerCore"/>
213                                        </xsl:element>
214                                </xsl:element>
215                        </xsl:if>
216                        <xsl:if test="PState | CState">
217                                <!-- If PState or CState elements present add powerProfile element -->
218                                <xsl:element name="profile">
219                                        <xsl:element name="powerProfile">
220                                               
221                                                <xsl:if test="CState">
222                                                        <!-- If any CState is present add powerStates element -->
223                                                        <xsl:element name="powerStates">
224                                                                <xsl:apply-templates select="CState" />
225                                                        </xsl:element>
226                                                </xsl:if>
227
228                                                <xsl:apply-templates select="PState" />                                         
229                                        </xsl:element>
230                                </xsl:element>
231                        </xsl:if>
232                       
233                        <!-- PERFORMANCE
234                        <xsl:if test="TDP">
235                                <xsl:element name="parameter">
236                                        <xsl:attribute name="name">tdp</xsl:attribute>
237                                        <xsl:element name="value">
238                                                <xsl:value-of select="TDP" />
239                                        </xsl:element>
240                                </xsl:element>
241                        </xsl:if>
242                        -->
243                         
244                </xsl:element>
245        </xsl:template>
246
247        <xsl:template match="PState">
248                <xsl:element name="parameter">
249                        <xsl:attribute name="name">pState</xsl:attribute>
250                        <xsl:element name="property">
251                                <xsl:attribute name="name">name</xsl:attribute>
252                                <xsl:element name="value">
253                                        <xsl:value-of select="State" />
254                                </xsl:element>
255                        </xsl:element>
256                        <xsl:element name="property">
257                                <xsl:attribute name="name">frequency</xsl:attribute>
258                                <xsl:element name="value">
259                                        <xsl:value-of select="Frequency" />
260                                </xsl:element>
261                        </xsl:element>
262                        <!-- PERFORMANCE
263                        <xsl:element name="property">
264                                <xsl:attribute name="name">voltage</xsl:attribute>
265                                <xsl:element name="value">
266                                        <xsl:value-of select="Voltage" />
267                                </xsl:element>
268                        </xsl:element>
269                        -->
270                        <!--   
271                        <xsl:element name="property">
272                                <xsl:attribute name="name">powerUsageMin</xsl:attribute>
273                                <xsl:element name="value">
274                                        <xsl:value-of select="PowerUsageMin" />
275                                </xsl:element>
276                        </xsl:element>
277                        <xsl:element name="property">
278                                <xsl:attribute name="name">powerUsageMax</xsl:attribute>
279                                <xsl:element name="value">
280                                        <xsl:value-of select="PowerUsageMax" />
281                                </xsl:element>
282                        </xsl:element>
283                        -->     
284                        <xsl:apply-templates select="LoadPowerUsage" mode="parameter" />
285                </xsl:element>
286        </xsl:template>
287
288        <xsl:template match="CState">
289
290                <xsl:element name="powerState">
291                        <xsl:element name="name">
292                                <xsl:value-of select="State" />
293                        </xsl:element>
294                        <xsl:element name="powerUsage">
295                                <xsl:value-of select="PowerUsage" />
296                        </xsl:element>                 
297                </xsl:element>
298        </xsl:template>
299
300        <xsl:template match="LoadPowerUsage" mode="parameter">
301                <xsl:element name="property">
302                        <xsl:attribute name="name">loadPowerUsage</xsl:attribute>
303                        <xsl:element name="value">
304                                <xsl:value-of select="Load" />
305                        </xsl:element>
306                        <xsl:element name="value">
307                                <xsl:value-of select="PowerUsage" />
308                        </xsl:element>
309                </xsl:element>
310        </xsl:template>
311       
312        <xsl:template match="LoadPowerUsage" mode="element">
313                <xsl:element name="loadPowerUsage">
314                        <xsl:element name="load">
315                                <xsl:value-of select="Load" />
316                        </xsl:element>
317                        <xsl:element name="powerUsage">
318                                <xsl:value-of select="PowerUsage" />
319                        </xsl:element>
320                </xsl:element>
321        </xsl:template>
322
323        <xsl:template match="PowerSupply">
324                <xsl:element name="parameter">
325                        <xsl:attribute name="name">powerSupply</xsl:attribute>
326                       
327                        <xsl:element name="property">
328                                <xsl:attribute name="name">class</xsl:attribute>
329                                <xsl:element name="value">
330                                        <xsl:value-of select="Class" />
331                                </xsl:element>
332                        </xsl:element>
333
334                        <xsl:element name="property">
335                                <xsl:attribute name="name">totalOutputPower</xsl:attribute>
336                                <xsl:element name="value">
337                                        <xsl:value-of select="TotalOutputPower" />
338                                </xsl:element>
339                        </xsl:element>
340               
341                        <xsl:element name="property">
342                                <xsl:attribute name="name">efficiency</xsl:attribute>
343                                <xsl:element name="value">
344                                        <xsl:value-of select="Efficiency" />
345                                </xsl:element>
346                        </xsl:element>
347                       
348                        <!-- TODO: PowerProfile -->
349                       
350                        <!-- Don't call BasicDEBBPhysicalElementParameters, because parameter
351                                cannot contain parameters. Must be parameter containing properties. -->
352                        <xsl:call-template name="BasicDEBBPhysicalElementProperties" />
353                </xsl:element>
354        </xsl:template>
355
356        <xsl:template match="Memory">
357                <xsl:element name="resourceUnit">
358                        <xsl:attribute name="class">Memory</xsl:attribute>
359                        <xsl:element name="amount">
360                                <xsl:value-of select="Capacity" />
361                        </xsl:element>
362                        <xsl:call-template name="BasicDEBBPhysicalElementParameters" />
363                </xsl:element>
364        </xsl:template>
365
366       
367        <xsl:template name="translateCoolingDevice">
368                <xsl:param name="instanceRefs"/>
369                <xsl:call-template name="CoolingDeviceType" >
370                        <xsl:with-param name="instanceRefs" select="$instanceRefs" />
371                </xsl:call-template>
372        </xsl:template>
373       
374        <xsl:template name="CoolingDeviceType">
375                <xsl:param name="instanceRefs"/>
376                <xsl:call-template name="BasicDEBBPhysicalElementParameters" />
377               
378                <xsl:if test="Class">
379                        <xsl:element name="parameter">
380                                <xsl:attribute name="name">class</xsl:attribute>
381                                <xsl:element name="value">
382                                        <xsl:value-of select="Class" />
383                                </xsl:element>
384                        </xsl:element>
385                </xsl:if>
386
387                <xsl:if test="CRAH">
388                        <xsl:element name="parameter">
389                                <xsl:attribute name="name">fanEfficiency</xsl:attribute>
390                                <xsl:element name="value">
391                                        <xsl:value-of select="CRAH/FanEfficiency" />
392                                </xsl:element>
393                        </xsl:element>
394                        <xsl:element name="parameter">
395                                <xsl:attribute name="name">coolingCoilEfficiency</xsl:attribute>
396                                <xsl:element name="value">
397                                        <xsl:value-of select="CRAH/CoolingCoilEfficiency" />
398                                </xsl:element>
399                        </xsl:element>
400                        <xsl:element name="parameter">
401                                <xsl:attribute name="name">deltaThEx</xsl:attribute>
402                                <xsl:element name="value">
403                                        <xsl:value-of select="CRAH/DeltaThEx" />
404                                </xsl:element>
405                        </xsl:element>
406                </xsl:if>
407               
408                <xsl:if test="Chiller">
409                        <xsl:element name="parameter">
410                                <xsl:attribute name="name">maxCoolingCapacity</xsl:attribute>
411                                <xsl:element name="value">
412                                        <xsl:value-of select="Chiller/MaxCoolingCapacity" />
413                                </xsl:element>
414                        </xsl:element>
415                        <xsl:element name="parameter">
416                                <xsl:attribute name="name">coolingCapacityRated</xsl:attribute>
417                                <xsl:element name="value">
418                                        <xsl:value-of select="Chiller/CoolingCapacityRated" />
419                                </xsl:element>
420                        </xsl:element>
421                        <xsl:element name="parameter">
422                                <xsl:attribute name="name">EERRated</xsl:attribute>
423                                <xsl:element name="value">
424                                        <xsl:value-of select="Chiller/EERRated" />
425                                </xsl:element>
426                        </xsl:element>
427                        <xsl:apply-templates select="Chiller/EnergyEfficiencyRatio/Item"/>
428                </xsl:if>
429               
430                <xsl:if test="DryCooler">
431                        <xsl:element name="parameter">
432                                <xsl:attribute name="name">deltaThDryCooler</xsl:attribute>
433                                <xsl:element name="value">
434                                        <xsl:value-of select="DryCooler/DeltaThDryCooler" />
435                                </xsl:element>
436                        </xsl:element>
437                        <xsl:element name="parameter">
438                                <xsl:attribute name="name">dryCoolerEfficiency</xsl:attribute>
439                                <xsl:element name="value">
440                                        <xsl:value-of select="DryCooler/DryCoolerEfficiency" />
441                                </xsl:element>
442                        </xsl:element>         
443                </xsl:if>
444               
445                <xsl:apply-templates select="EnergyEfficiencyRatio/Item"/>
446                       
447                <xsl:apply-templates select="AirThroughputProfile" />
448               
449                <xsl:variable name="tokenizedText" select="tokenize($instanceRefs, ' ')" />
450                <xsl:variable name="outsideDoc" select="document($plmxmlFileName)" />
451                <xsl:for-each select="$tokenizedText">
452                        <xsl:variable name="componentId" select="." />
453                        <xsl:apply-templates select="$outsideDoc/plm:PLMXML/plm:ProductDef/plm:InstanceGraph/plm:ProductInstance[@partRef=$componentId]" mode="updateCoolingDevice">
454                        </xsl:apply-templates>
455                </xsl:for-each>
456               
457        </xsl:template>
458
459        <xsl:template match="Item">
460                <xsl:element name="parameter">
461                        <xsl:attribute name="name">EnergyEfficiencyRatio</xsl:attribute>
462                        <xsl:element name="property">
463                                <xsl:attribute name="name">LWT</xsl:attribute>
464                                <xsl:element name="value">
465                                        <xsl:value-of select="LWT" />
466                                </xsl:element>
467                        </xsl:element>
468                        <xsl:element name="property">
469                                <xsl:attribute name="name">CWT</xsl:attribute>
470                                <xsl:element name="value">
471                                        <xsl:value-of select="CWT" />
472                                </xsl:element>
473                        </xsl:element>
474                        <xsl:element name="property">
475                                <xsl:attribute name="name">Capacity</xsl:attribute>
476                                <xsl:element name="value">
477                                        <xsl:value-of select="Capacity" />
478                                </xsl:element>
479                        </xsl:element>
480                        <xsl:element name="property">
481                                <xsl:attribute name="name">PowerUsage</xsl:attribute>
482                                <xsl:element name="value">
483                                        <xsl:value-of select="PowerUsage" />
484                                </xsl:element>
485                        </xsl:element>
486                        <xsl:element name="property">
487                                <xsl:attribute name="name">EER</xsl:attribute>
488                                <xsl:element name="value">
489                                        <xsl:value-of select="EER" />
490                                </xsl:element>
491                        </xsl:element>
492                </xsl:element>
493        </xsl:template>
494       
495       
496        <xsl:template match="AirThroughputProfile">
497                <xsl:element name="profile">
498                        <xsl:element name="airThroughputProfile">
499                                <xsl:element name="airThroughputStates">
500                                        <xsl:apply-templates select="FlowState" mode="air"/>
501                                </xsl:element>
502                        </xsl:element>                                         
503                </xsl:element>
504        </xsl:template>
505       
506        <!--
507        <xsl:template match="PowerUsageProfile" mode="air">
508                <xsl:element name="profile">
509                                <xsl:element name="airThroughputProfile">
510                                        <xsl:element name="airThroughputStates">
511                                                <xsl:apply-templates select="FlowState" mode="air"/>
512                                        </xsl:element>
513                                </xsl:element>                                         
514                        </xsl:element>
515        </xsl:template>
516        -->
517       
518        <xsl:template match="PowerUsageProfile" mode="air">
519                <xsl:element name="airThroughputStates">
520                        <xsl:apply-templates select="FlowState" mode="air"/>
521                </xsl:element>
522        </xsl:template>
523       
524        <xsl:template match="PowerUsageProfile" mode="power">
525                <xsl:element name="profile">
526                                <xsl:element name="powerProfile">
527                                        <xsl:element name="powerStates">
528                                                <xsl:apply-templates select="FlowState" mode="power"/>
529                                        </xsl:element>
530                                </xsl:element>                                         
531                        </xsl:element>
532        </xsl:template>
533
534       
535        <xsl:template match="FlowState" mode="power">
536                <xsl:element name="powerState">
537                        <xsl:call-template name="FlowStateItem"/>
538                </xsl:element>
539        </xsl:template>
540       
541        <xsl:template match="FlowState" mode="air">
542                <xsl:element name="airThroughputState">
543                        <xsl:call-template name="FlowStateItem"/>
544                </xsl:element>
545        </xsl:template>
546
547        <xsl:template name ="FlowStateItem">
548                <xsl:element name="name">
549                        <xsl:value-of select="State" />
550                </xsl:element>
551                <xsl:if test="Flow">
552                        <xsl:element name="value">
553                                <xsl:value-of select="Flow" />
554                        </xsl:element>
555                </xsl:if>
556                <xsl:if test="PowerUsage">
557                        <xsl:element name="powerUsage">
558                                <xsl:value-of select="PowerUsage" />
559                        </xsl:element>
560                </xsl:if>
561                <xsl:if test="Efficiency">
562                        <xsl:element name="parameter">
563                                <xsl:attribute name="name">efficiency</xsl:attribute>
564                                <xsl:element name="value">
565                                        <xsl:value-of select="Efficiency" />
566                                </xsl:element>
567                        </xsl:element>
568                </xsl:if>
569        </xsl:template>
570       
571        <xsl:template name ="FlowStateItemAir">
572                <xsl:element name="name">
573                        <xsl:variable name="state" select="State"/>
574                        <xsl:choose>
575                                <xsl:when test="$state = '1'">
576                                        <xsl:value-of>OFF</xsl:value-of>
577                                </xsl:when>
578                                <xsl:when test="$state = '2'">
579                                        <xsl:value-of>ON</xsl:value-of>
580                                </xsl:when>
581                                <xsl:otherwise>
582                                        <xsl:value-of select="$state" />
583                                </xsl:otherwise>
584                        </xsl:choose>
585                </xsl:element>
586                <xsl:if test="Flow">
587                        <xsl:element name="value">
588                                <xsl:value-of select="Flow" />
589                        </xsl:element>
590                </xsl:if>
591                <xsl:if test="PowerUsage">
592                        <xsl:element name="powerUsage">
593                                <xsl:value-of select="PowerUsage" />
594                        </xsl:element>
595                </xsl:if>
596                <xsl:if test="Efficiency">
597                        <xsl:element name="parameter">
598                                <xsl:attribute name="name">efficiency</xsl:attribute>
599                                <xsl:element name="value">
600                                        <xsl:value-of select="Efficiency" />
601                                </xsl:element>
602                        </xsl:element>
603                </xsl:if>
604        </xsl:template>
605       
606
607        <xsl:template name="translateHeatsink">
608                <xsl:param name="instanceRefs"/>
609                <xsl:call-template name="HeatsinkType" >
610                        <xsl:with-param name="instanceRefs" select="$instanceRefs" />
611                </xsl:call-template>
612        </xsl:template>
613       
614        <xsl:template name="HeatsinkType">
615                <xsl:param name="instanceRefs"/>
616                <xsl:call-template name="BasicDEBBPhysicalElementParameters" />
617
618                <xsl:if test="TransferRate">
619                        <xsl:element name="parameter">
620                                <xsl:attribute name="name">efficiency</xsl:attribute>
621                                <xsl:element name="value">
622                                        <xsl:value-of select="Efficiency" />
623                                </xsl:element>
624                        </xsl:element>
625                </xsl:if>       
626               
627                <xsl:variable name="tokenizedText" select="tokenize($instanceRefs, ' ')" />
628                <xsl:variable name="outsideDoc" select="document($plmxmlFileName)" />
629                <xsl:for-each select="$tokenizedText">
630                        <xsl:variable name="componentId" select="." />
631                        <xsl:apply-templates select="$outsideDoc/plm:PLMXML/plm:ProductDef/plm:InstanceGraph/plm:ProductInstance[@partRef=$componentId]" mode="updateHeatsinkDevice">
632                        </xsl:apply-templates>
633                </xsl:for-each>         
634               
635        </xsl:template>
636
637       
638        <xsl:template name="FlowPumpType">
639                <xsl:param name="instanceRefs"/>
640                <xsl:call-template name="BasicDEBBPhysicalElementParameters" />
641
642                <xsl:if test="MaxRPM">
643                        <xsl:element name="parameter">
644                                <xsl:attribute name="name">maxRPM</xsl:attribute>
645                                <xsl:element name="value">
646                                        <xsl:value-of select="MaxRPM" />
647                                </xsl:element>
648                        </xsl:element>
649                </xsl:if>
650                       
651                <xsl:if test="Efficiency">
652                        <xsl:element name="parameter">
653                                <xsl:attribute name="name">efficiency</xsl:attribute>
654                                <xsl:element name="value">
655                                        <xsl:value-of select="Efficiency" />
656                                </xsl:element>
657                        </xsl:element>
658                </xsl:if>       
659
660                <xsl:variable name="tokenizedText" select="tokenize($instanceRefs, ' ')" />
661                <xsl:variable name="outsideDoc" select="document($plmxmlFileName)" />
662                <xsl:for-each select="$tokenizedText">
663                        <xsl:variable name="componentId" select="." />
664                        <xsl:apply-templates select="$outsideDoc/plm:PLMXML/plm:ProductDef/plm:InstanceGraph/plm:ProductInstance[@partRef=$componentId]" mode="updateCoolingDevice">
665                        </xsl:apply-templates>
666                </xsl:for-each>         
667               
668                <xsl:element name="profile">
669                        <xsl:element name="airThroughputProfile">
670                                <xsl:apply-templates select="PowerUsageProfile" mode="air"/>
671                        </xsl:element>                                 
672                </xsl:element>
673               
674                <!--
675                <xsl:element name="profile">
676                        <xsl:element name="airThroughputProfile">
677                                <xsl:element name="airThroughputStates">
678                                        <xsl:apply-templates select="PowerUsageProfile/FlowState" mode="air"/>
679                                </xsl:element>
680                        </xsl:element>                                 
681                </xsl:element>
682                -->
683                <!--           
684                <xsl:apply-templates select="PowerUsageProfile" mode="air" />
685                -->     
686        </xsl:template>
687       
688        <!-- Template for transforming basic parameters of all devices of any type -->
689        <xsl:template name="BasicDEBBPhysicalElementParameters">
690
691                <xsl:if test="Label">
692                        <xsl:element name="parameter">
693                                <xsl:attribute name="name">label</xsl:attribute>
694                                <xsl:element name="value">
695                                        <xsl:value-of select="Label" />
696                                </xsl:element>
697                        </xsl:element>
698                </xsl:if>
699                <!-- PERFORMANCE
700                <xsl:if test="Manufacturer">
701                        <xsl:element name="parameter">
702                                <xsl:attribute name="name">manufacturer</xsl:attribute>
703                                <xsl:element name="value">
704                                        <xsl:value-of select="Manufacturer" />
705                                </xsl:element>
706                        </xsl:element>
707                </xsl:if>
708                -->
709                <xsl:if test="Product">
710                        <xsl:element name="parameter">
711                                <xsl:attribute name="name">product</xsl:attribute>
712                                <xsl:element name="value">
713                                        <xsl:value-of select="Product" />
714                                </xsl:element>
715                        </xsl:element>
716                </xsl:if>
717                <xsl:if test="MaxPower">
718                        <xsl:element name="parameter">
719                                <xsl:attribute name="name">maxPower</xsl:attribute>
720                                <xsl:element name="value">
721                                        <xsl:value-of select="MaxPower" />
722                                </xsl:element>
723                        </xsl:element>
724                </xsl:if>
725               
726                <xsl:if test="PowerUsage">
727                        <xsl:element name="parameter">
728                                <xsl:attribute name="name">powerUsage</xsl:attribute>
729                                <xsl:element name="value">
730                                        <xsl:value-of select="PowerUsage" />
731                                </xsl:element>
732                        </xsl:element>
733                </xsl:if>
734
735                <!-- TODO: PowerUsageProfile -->
736
737                <!-- PERFORMANCE
738                <xsl:if test="Type">
739                        <xsl:element name="parameter">
740                                <xsl:attribute name="name">type</xsl:attribute>
741                                <xsl:element name="value">
742                                        <xsl:value-of select="Type" />
743                                </xsl:element>
744                        </xsl:element>
745                </xsl:if>       
746                -->             
747                <xsl:if test="MinAllowedTemperature">
748                        <xsl:element name="parameter">
749                                <xsl:attribute name="name">minAllowedTemperature</xsl:attribute>
750                                <xsl:element name="value">
751                                        <xsl:value-of select="MinAllowedTemperature" />
752                                </xsl:element>
753                        </xsl:element>
754                </xsl:if>       
755               
756                <xsl:if test="MaxAllowedTemperature">
757                        <xsl:element name="parameter">
758                                <xsl:attribute name="name">maxAllowedTemperature</xsl:attribute>
759                                <xsl:element name="value">
760                                        <xsl:value-of select="MaxAllowedTemperature" />
761                                </xsl:element>
762                        </xsl:element>
763                </xsl:if>       
764        </xsl:template>
765
766        <xsl:template name="BasicDEBBPhysicalElementProperties">
767
768                <xsl:if test="Label">
769                        <xsl:element name="property">
770                                <xsl:attribute name="name">label</xsl:attribute>
771                                <xsl:element name="value">
772                                        <xsl:value-of select="Label" />
773                                </xsl:element>
774                        </xsl:element>
775                </xsl:if>
776               
777                <xsl:if test="Manufacturer">
778                        <xsl:element name="property">
779                                <xsl:attribute name="name">manufacturer</xsl:attribute>
780                                <xsl:element name="value">
781                                        <xsl:value-of select="Manufacturer" />
782                                </xsl:element>
783                        </xsl:element>
784                </xsl:if>
785               
786                <xsl:if test="Product">
787                        <xsl:element name="property">
788                                <xsl:attribute name="name">product</xsl:attribute>
789                                <xsl:element name="value">
790                                        <xsl:value-of select="Product" />
791                                </xsl:element>
792                        </xsl:element>
793                </xsl:if>
794               
795                <xsl:if test="MaxPower">
796                        <xsl:element name="property">
797                                <xsl:attribute name="name">maxPower</xsl:attribute>
798                                <xsl:element name="value">
799                                        <xsl:value-of select="MaxPower" />
800                                </xsl:element>
801                        </xsl:element>
802                </xsl:if>
803               
804                <xsl:if test="PowerUsage">
805                        <xsl:element name="property">
806                                <xsl:attribute name="name">powerUsage</xsl:attribute>
807                                <xsl:element name="value">
808                                        <xsl:value-of select="PowerUsage" />
809                                </xsl:element>
810                        </xsl:element>
811                </xsl:if>
812       
813                <xsl:if test="Type">
814                        <xsl:element name="property">
815                                <xsl:attribute name="name">type</xsl:attribute>
816                                <xsl:element name="value">
817                                        <xsl:value-of select="Type" />
818                                </xsl:element>
819                        </xsl:element>
820                </xsl:if>
821               
822                <xsl:if test="MinAllowedTemperature">
823                        <xsl:element name="property">
824                                <xsl:attribute name="name">minAllowedTemperature</xsl:attribute>
825                                <xsl:element name="value">
826                                        <xsl:value-of select="MinAllowedTemperature" />
827                                </xsl:element>
828                        </xsl:element>
829                </xsl:if>       
830               
831                <xsl:if test="MaxAllowedTemperature">
832                        <xsl:element name="property">
833                                <xsl:attribute name="name">maxAllowedTemperature</xsl:attribute>
834                                <xsl:element name="value">
835                                        <xsl:value-of select="MaxAllowedTemperature" />
836                                </xsl:element>
837                        </xsl:element>
838                </xsl:if>       
839        </xsl:template>
840
841
842        <xsl:template name="translateFan">
843                <xsl:param name="instanceRefs"/>
844                <xsl:call-template name="FlowPumpType" >
845                        <xsl:with-param name="instanceRefs" select="$instanceRefs" />
846                </xsl:call-template>
847        </xsl:template>
848               
849        <!--
850        <xsl:template match="Heatsink" mode="device">
851                <xsl:param name="instanceRefs"/>
852                <xsl:element name="device">
853                        <xsl:attribute name="class">Heatsink</xsl:attribute>
854                        <xsl:attribute name="name">
855                                <xsl:value-of select="Label" />
856                        </xsl:attribute>
857
858                        <xsl:call-template name="HeatsinkType" >
859                                <xsl:with-param name="instanceRefs" select="$instanceRefs" />
860                        </xsl:call-template>
861                </xsl:element>
862               
863        </xsl:template>
864       
865               
866        <xsl:template match="Inlet" mode="device">
867                <xsl:param name="instanceRefs"/>
868                <xsl:element name="device">
869                        <xsl:attribute name="class">Inlet</xsl:attribute>
870                        <xsl:attribute name="name">
871                                <xsl:value-of select="Label" />
872                        </xsl:attribute>
873
874                        <xsl:call-template name="FlowPumpType" >
875                                <xsl:with-param name="instanceRefs" select="$instanceRefs" />
876                        </xsl:call-template>
877                </xsl:element>
878        </xsl:template>
879       
880        <xsl:template match="Outlet" mode="device">
881                <xsl:param name="instanceRefs"/>
882                <xsl:element name="device">
883                        <xsl:attribute name="class">Outlet</xsl:attribute>
884                        <xsl:attribute name="name">
885                                <xsl:value-of select="Label" />
886                        </xsl:attribute>
887
888                        <xsl:call-template name="FlowPumpType" >
889                                <xsl:with-param name="instanceRefs" select="$instanceRefs" />
890                        </xsl:call-template>
891                </xsl:element>
892        </xsl:template>
893                 -->   
894
895        <xsl:template match="Slot">
896                <xsl:element name="parameter">
897                        <xsl:attribute name="name">slot</xsl:attribute>
898                       
899                        <xsl:call-template name="BasicDEBBConnectorTypeProperties"/>
900                </xsl:element> 
901        </xsl:template>
902       
903        <xsl:template name="BasicDEBBConnectorTypeProperties">
904                <xsl:if test="Number">
905                        <xsl:element name="property">
906                                <xsl:attribute name="name">number</xsl:attribute>
907                                <xsl:element name="value">
908                                        <xsl:value-of select="Number" />
909                                </xsl:element>
910                        </xsl:element>
911                </xsl:if>
912
913                <xsl:element name="property">
914                        <xsl:attribute name="name">connectorType</xsl:attribute>
915                        <xsl:element name="value">
916                                <xsl:value-of select="ConnectorType" />
917                        </xsl:element>
918                </xsl:element>
919
920                <xsl:element name="property">
921                        <xsl:attribute name="name">label</xsl:attribute>
922                        <xsl:element name="value">
923                                <xsl:value-of select="Label" />
924                        </xsl:element>
925                </xsl:element>
926               
927                <xsl:if test="AvailSpace">
928                        <xsl:element name="property">
929                                <xsl:attribute name="name">availSpace</xsl:attribute>
930                                <xsl:element name="value">
931                                        <xsl:value-of select="AvailSpace" />
932                                </xsl:element>
933                        </xsl:element>
934                </xsl:if>       
935        </xsl:template>
936       
937        <xsl:template match="Network">
938                <xsl:element name="parameter">
939                        <xsl:attribute name="name">network</xsl:attribute>
940                       
941                        <xsl:if test="Interface">
942                                <xsl:element name="property">
943                                        <xsl:attribute name="name">interface</xsl:attribute>
944                                        <xsl:element name="value">
945                                                <xsl:value-of select="Interface" />
946                                        </xsl:element>
947                                </xsl:element>
948                        </xsl:if>
949                        <xsl:if test="Technology">
950                                <xsl:element name="property">
951                                        <xsl:attribute name="name">technology</xsl:attribute>
952                                        <xsl:element name="value">
953                                                <xsl:value-of select="Technology" />
954                                        </xsl:element>
955                                </xsl:element>
956                        </xsl:if>
957                        <xsl:if test="MaxBandwidth">
958                                <xsl:element name="property">
959                                        <xsl:attribute name="name">maxBandwidth</xsl:attribute>
960                                        <xsl:element name="value">
961                                                <xsl:value-of select="MaxBandwidth" />
962                                        </xsl:element>
963                                </xsl:element>
964                        </xsl:if>
965       
966                        <!-- Don't call BasicDEBBPhysicalElementParameters, because parameter
967                                cannot contain parameters. Must be parameter containing properties. -->
968                        <xsl:call-template name="BasicDEBBPhysicalElementProperties" />
969                </xsl:element>
970        </xsl:template>
971</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.