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

Revision 587, 4.9 KB checked in by gosiaw, 12 years ago (diff)

Some comments 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="parameter">
126                        <xsl:attribute name="name">CoolingDevice</xsl:attribute>
127                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
128                </xsl:element>
129        </xsl:template>
130
131        <!-- Template for transforming basic parameters of all devices of any type -->
132        <xsl:template name="BasicDEBBPhysicalElementData">
133                <xsl:if test="Manufacturer">
134                        <xsl:element name="parameter">
135                                <xsl:attribute name="name">Manufacturer</xsl:attribute>
136                                <xsl:element name="value">
137                                        <xsl:value-of select="Manufacturer" />
138                                </xsl:element>
139                        </xsl:element>
140                </xsl:if>
141                <xsl:if test="Product">
142                        <xsl:element name="parameter">
143                                <xsl:attribute name="name">Product</xsl:attribute>
144                                <xsl:element name="value">
145                                        <xsl:value-of select="Product" />
146                                </xsl:element>
147                        </xsl:element>
148                </xsl:if>
149                <xsl:if test="MaxPower">
150                        <xsl:element name="parameter">
151                                <xsl:attribute name="name">MaxPower</xsl:attribute>
152                                <xsl:element name="value">
153                                        <xsl:value-of select="MaxPower" />
154                                </xsl:element>
155                        </xsl:element>
156                </xsl:if>
157        </xsl:template>
158</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.