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

Revision 583, 4.8 KB checked in by gosiaw, 12 years ago (diff)
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                <xsl:element name="resourceUnit">
117                        <xsl:attribute name="class">Storage</xsl:attribute>
118                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
119                </xsl:element>
120        </xsl:template>
121
122        <xsl:template match="CoolingDevice">
123                <xsl:element name="parameter">
124                        <xsl:attribute name="name">CoolingDevice</xsl:attribute>
125                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
126                </xsl:element>
127        </xsl:template>
128
129        <!-- Template for transforming basic parameters of all devices of any type -->
130        <xsl:template name="BasicDEBBPhysicalElementData">
131                <xsl:if test="Manufacturer">
132                        <xsl:element name="parameter">
133                                <xsl:attribute name="name">Manufacturer</xsl:attribute>
134                                <xsl:element name="value">
135                                        <xsl:value-of select="Manufacturer" />
136                                </xsl:element>
137                        </xsl:element>
138                </xsl:if>
139                <xsl:if test="Product">
140                        <xsl:element name="parameter">
141                                <xsl:attribute name="name">Product</xsl:attribute>
142                                <xsl:element name="value">
143                                        <xsl:value-of select="Product" />
144                                </xsl:element>
145                        </xsl:element>
146                </xsl:if>
147                <xsl:if test="MaxPower">
148                        <xsl:element name="parameter">
149                                <xsl:attribute name="name">MaxPower</xsl:attribute>
150                                <xsl:element name="value">
151                                        <xsl:value-of select="MaxPower" />
152                                </xsl:element>
153                        </xsl:element>
154                </xsl:if>
155        </xsl:template>
156</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.