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

Revision 581, 4.5 KB checked in by gosiaw, 12 years ago (diff)

Transformation of pstates added

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">
5
6        <!-- Specification of the output document -->
7        <xsl:output method="xml" version="1.0" encoding="UTF-8"
8                indent="yes" include-content-type="no" />
9
10        <xsl:template match="/">
11                <xsl:apply-templates select="//*[ComponentId]" />
12        </xsl:template>
13
14        <xsl:template match="//*[ComponentId]">
15                <xsl:element name="computingResource">
16                        <xsl:attribute name="class">
17                                <xsl:value-of select="name(.)" />
18                        </xsl:attribute>
19                        <!-- <xsl:call-template name="BasicDEBBPhysicalElementData" /> -->
20                        <xsl:if test="Baseboard">
21                                <xsl:apply-templates select="Baseboard" />
22                        </xsl:if>
23                        <xsl:if test="Processor">
24                                <xsl:apply-templates select="Processor" />
25                        </xsl:if>
26                        <xsl:if test="Memory">
27                                <xsl:apply-templates select="Memory" />
28                        </xsl:if>
29                        <xsl:if test="Storage">
30                                <xsl:apply-templates select="Storage" />
31                        </xsl:if>
32                        <xsl:if test="CoolingDevice">
33                                <xsl:apply-templates select="CoolingDevice" />
34                        </xsl:if>
35                </xsl:element>
36        </xsl:template>
37
38        <xsl:template match="Baseboard">
39                <xsl:element name="parameter">
40                        <xsl:attribute name="name">Baseboard</xsl:attribute>
41                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
42                </xsl:element>
43        </xsl:template>
44
45        <xsl:template match="Processor">
46                <xsl:element name="computingResource">
47                        <xsl:attribute name="class">Processor</xsl:attribute>
48                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
49                        <xsl:element name="parameter">
50                                <xsl:attribute name="name">MaxClockSpeed</xsl:attribute>
51                                <xsl:element name="value">
52                                        <xsl:value-of select="MaxClockSpeed" />
53                                </xsl:element>
54                        </xsl:element>
55                        <xsl:element name="profile">
56                                <xsl:comment>
57                                        Power profile and/or air throughput
58                                </xsl:comment>
59                                <xsl:if test="PState | CState">
60                                        <!-- If PState or CState elements present add powerProfile element -->
61                                        <xsl:element name="powerProfile">
62                                                <xsl:element name="powerStates">
63                                                        <xsl:apply-templates select="PState" />
64                                                </xsl:element>
65                                        </xsl:element>
66                                </xsl:if>
67                        </xsl:element>
68                </xsl:element>
69        </xsl:template>
70
71        <xsl:template match="PState">
72                <xsl:element name="powerState">
73                        <xsl:element name="name">
74                                <xsl:value-of select="State" />
75                        </xsl:element>
76                        <xsl:element name="powerUsage">
77                                <xsl:value-of select="PowerUsage" />
78                        </xsl:element>
79                        <xsl:element name="transition">
80                                <xsl:element name="to">
81                                        <xsl:value-of select="Transition/ToState" />
82                                </xsl:element>
83                                <xsl:element name="powerUsage">
84                                        <xsl:value-of select="Transition/PowerUsage" />
85                                </xsl:element>
86                                <xsl:element name="time">
87                                        <xsl:value-of select="Transition/Time" />
88                                </xsl:element>
89                        </xsl:element>
90                </xsl:element>
91                <!-- 2) Current node: -->
92                <!-- <xsl:value-of select="name(.)"></xsl:value-of> -->
93        </xsl:template>
94
95        <xsl:template match="Memory">
96                <xsl:element name="resourceUnit">
97                        <xsl:attribute name="class">Memory</xsl:attribute>
98                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
99                        <xsl:element name="amount">
100                                <xsl:value-of select="Capacity" />
101                        </xsl:element>
102                </xsl:element>
103        </xsl:template>
104
105        <xsl:template match="Storage">
106                <xsl:element name="resourceUnit">
107                        <xsl:attribute name="class">Storage</xsl:attribute>
108                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
109                </xsl:element>
110        </xsl:template>
111
112        <xsl:template match="CoolingDevice">
113                <xsl:element name="parameter">
114                        <xsl:attribute name="name">CoolingDevice</xsl:attribute>
115                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
116                </xsl:element>
117        </xsl:template>
118
119        <!-- Template for transforming basic parameters of all devices of any type -->
120        <xsl:template name="BasicDEBBPhysicalElementData">
121                <xsl:if test="Manufacturer">
122                        <xsl:element name="parameter">
123                                <xsl:attribute name="name">Manufacturer</xsl:attribute>
124                                <xsl:element name="value">
125                                        <xsl:value-of select="Manufacturer" />
126                                </xsl:element>
127                        </xsl:element>
128                </xsl:if>
129                <xsl:if test="Product">
130                        <xsl:element name="parameter">
131                                <xsl:attribute name="name">Product</xsl:attribute>
132                                <xsl:element name="value">
133                                        <xsl:value-of select="Product" />
134                                </xsl:element>
135                        </xsl:element>
136                </xsl:if>
137                <xsl:if test="MaxPower">
138                        <xsl:element name="parameter">
139                                <xsl:attribute name="name">MaxPower</xsl:attribute>
140                                <xsl:element name="value">
141                                        <xsl:value-of select="MaxPower" />
142                                </xsl:element>
143                        </xsl:element>
144                </xsl:if>
145        </xsl:template>
146
147</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.