source: DCWoRMS/trunk/src/test/DEBBTranslator/xml/DEBBComponentTranslator.xsl @ 595

Revision 595, 7.4 KB checked in by gosiaw, 12 years ago (diff)

First version of air throughput profile added

Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<xsl:stylesheet version="1.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">
5        <!-- Specification of the output document -->
6        <xsl:output method="xml" version="1.0" encoding="UTF-8"
7                indent="yes" />
8        <xsl:template match="/">
9                <xsl:apply-templates select="//*[ComponentId]" />
10        </xsl:template>
11
12        <xsl:template match="//*[ComponentId]">
13                <xsl:element name="computingResource">
14                        <xsl:attribute name="class"> 
15                 <xsl:value-of select="name(.)" /> 
16                 </xsl:attribute>
17                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
18                        <xsl:if test="Baseboard">
19                                <xsl:apply-templates select="Baseboard" />
20                        </xsl:if>
21                        <xsl:if test="Processor">
22                                <xsl:apply-templates select="Processor" />
23                        </xsl:if>
24                        <xsl:if test="Memory">
25                                <xsl:apply-templates select="Memory" />
26                        </xsl:if>
27                        <xsl:if test="Storage">
28                                <xsl:apply-templates select="Storage" />
29                        </xsl:if>
30                        <xsl:if test="CoolingDevice">
31                                <xsl:apply-templates select="CoolingDevice" />
32                        </xsl:if>
33                </xsl:element>
34        </xsl:template>
35
36        <xsl:template match="Baseboard">
37                <xsl:element name="parameter">
38                        <xsl:attribute name="name">Baseboard</xsl:attribute>
39                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
40                </xsl:element>
41        </xsl:template>
42
43        <xsl:template match="Processor">
44                <xsl:element name="computingResource">
45                        <xsl:attribute name="class">Processor</xsl:attribute>
46                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
47                        <xsl:element name="parameter">
48                                <xsl:attribute name="name">MaxClockSpeed</xsl:attribute>
49                                <xsl:element name="value">
50                                        <xsl:value-of select="MaxClockSpeed" />
51                                </xsl:element>
52                        </xsl:element>
53                        <xsl:element name="profile">
54                                <xsl:comment>
55                                        Power profile and/or air throughput
56                                </xsl:comment>
57                                <xsl:if test="PState | CState">
58                                        <!-- If PState or CState elements present add powerProfile element -->
59                                        <xsl:element name="powerProfile">
60                                                <xsl:element name="powerStates">
61                                                        <xsl:apply-templates select="PState" />
62                                                </xsl:element>
63                                        </xsl:element>
64                                </xsl:if>
65                        </xsl:element>
66                </xsl:element>
67        </xsl:template>
68
69        <xsl:template match="PState">
70                <xsl:element name="powerState">
71                        <xsl:element name="name">
72                                <xsl:value-of select="State" />
73                        </xsl:element>
74                        <xsl:element name="powerUsage">
75                                <xsl:value-of select="PowerUsage" />
76                        </xsl:element>
77                        <xsl:element name="transition">
78                                <xsl:element name="to">
79                                        <xsl:value-of select="Transition/ToState" />
80                                </xsl:element>
81                                <xsl:element name="powerUsage">
82                                        <xsl:value-of select="Transition/PowerUsage" />
83                                </xsl:element>
84                                <xsl:element name="time">
85                                        <xsl:value-of select="Transition/Time" />
86                                </xsl:element>
87                        </xsl:element>
88                        <!-- Voltage & Frequency -->
89                        <xsl:element name="parameter">
90                                <xsl:attribute name="name">Voltage</xsl:attribute>
91                                <xsl:element name="value">
92                                        <xsl:value-of select="Voltage" />
93                                </xsl:element>
94                        </xsl:element>
95                        <xsl:element name="parameter">
96                                <xsl:attribute name="name">Frequency</xsl:attribute>
97                                <xsl:element name="value">
98                                        <xsl:value-of select="Frequency" />
99                                </xsl:element>
100                        </xsl:element>
101
102                </xsl:element>
103        </xsl:template>
104
105        <xsl:template match="Memory">
106                <xsl:element name="resourceUnit">
107                        <xsl:attribute name="class">Memory</xsl:attribute>
108                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
109                        <xsl:element name="amount">
110                                <xsl:value-of select="Capacity" />
111                        </xsl:element>
112                </xsl:element>
113        </xsl:template>
114
115        <xsl:template match="Storage">
116                <!-- TODO: Not finished -->
117                <xsl:element name="resourceUnit">
118                        <xsl:attribute name="class">Storage</xsl:attribute>
119                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
120                </xsl:element>
121        </xsl:template>
122
123        <xsl:template match="CoolingDevice">
124                <!-- TODO: Not finished -->
125                <xsl:element name="airThroughputProfile">
126                        <!-- <xsl:attribute name="name">CoolingDevice</xsl:attribute> -->
127                        <!-- Obligatory attribute -->
128                        <xsl:element name="parameter">
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:if test="MaxCoolingCapacity">
135                                <xsl:element name="parameter">
136                                        <xsl:attribute name="name">MaxCoolingCapacity</xsl:attribute>
137                                        <xsl:element name="value">
138                                                <xsl:value-of select="MaxCoolingCapacity" />
139                                        </xsl:element>
140                                </xsl:element>
141                        </xsl:if>
142                        <xsl:if test="MaxAirThroughput">
143                                <xsl:element name="parameter">
144                                        <xsl:attribute name="name">MaxAirThroughput</xsl:attribute>
145                                        <xsl:element name="value">
146                                                <xsl:value-of select="MaxAirThroughput" />
147                                        </xsl:element>
148                                </xsl:element>
149                        </xsl:if>
150                        <xsl:if test="MaxWaterThroughput">
151                                <xsl:element name="parameter">
152                                        <xsl:attribute name="name">MaxWaterThroughput</xsl:attribute>
153                                        <xsl:element name="value">
154                                                <xsl:value-of select="MaxWaterThroughput" />
155                                        </xsl:element>
156                                </xsl:element>
157                        </xsl:if>
158                        <xsl:if test="ThroughputProfile">
159                                <xsl:element name="airThroughputStates">
160                                        <xsl:apply-templates select="ThroughputProfile" />
161                                </xsl:element>
162                        </xsl:if>
163                        <!-- TODO: What to take it from?? -->
164                        <xsl:element name="airThroughputEstimationPlugin">
165                        </xsl:element>
166                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
167                </xsl:element>
168        </xsl:template>
169
170        <xsl:template match="ThroughputProfile">
171                <xsl:apply-templates select="FlowState" />
172        </xsl:template>
173
174        <xsl:template match="FlowState">
175                <xsl:element name="airThroughputState">
176                        <xsl:element name="name">
177                                <xsl:value-of select="State" />
178                        </xsl:element>
179                        <xsl:if test="Flow">
180                                <xsl:element name="value">
181                                        <xsl:value-of select="Flow" />
182                                </xsl:element>
183                        </xsl:if>
184                        <xsl:if test="PowerUsage">
185                                <xsl:element name="value">
186                                        <xsl:value-of select="PowerUsage" />
187                                </xsl:element>
188                        </xsl:if>
189                        <xsl:if test="Transition">
190                                <xsl:apply-templates select="Transition" />
191                        </xsl:if>
192                </xsl:element>
193        </xsl:template>
194
195        <xsl:template match="Transition">
196                <xsl:element name="parameter">
197                        <xsl:attribute name="name">ToState</xsl:attribute>
198                        <xsl:element name="value">
199                                <xsl:value-of select="ToState" />
200                        </xsl:element>
201                </xsl:element>
202                <xsl:element name="parameter">
203                        <xsl:attribute name="name">PowerUsage</xsl:attribute>
204                        <xsl:element name="value">
205                                <xsl:value-of select="PowerUsage" />
206                        </xsl:element>
207                </xsl:element>
208                <xsl:element name="parameter">
209                        <xsl:attribute name="name">Time</xsl:attribute>
210                        <xsl:element name="value">
211                                <xsl:value-of select="Time" />
212                        </xsl:element>
213                </xsl:element> 
214        </xsl:template>
215
216        <!-- Template for transforming basic parameters of all devices of any type -->
217        <xsl:template name="BasicDEBBPhysicalElementData">
218                <xsl:if test="Manufacturer">
219                        <xsl:element name="parameter">
220                                <xsl:attribute name="name">Manufacturer</xsl:attribute>
221                                <xsl:element name="value">
222                                        <xsl:value-of select="Manufacturer" />
223                                </xsl:element>
224                        </xsl:element>
225                </xsl:if>
226                <xsl:if test="Product">
227                        <xsl:element name="parameter">
228                                <xsl:attribute name="name">Product</xsl:attribute>
229                                <xsl:element name="value">
230                                        <xsl:value-of select="Product" />
231                                </xsl:element>
232                        </xsl:element>
233                </xsl:if>
234                <xsl:if test="MaxPower">
235                        <xsl:element name="parameter">
236                                <xsl:attribute name="name">MaxPower</xsl:attribute>
237                                <xsl:element name="value">
238                                        <xsl:value-of select="MaxPower" />
239                                </xsl:element>
240                        </xsl:element>
241                </xsl:if>
242        </xsl:template>
243</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.