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

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