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

Revision 576, 3.8 KB checked in by gosiaw, 12 years ago (diff)

XSLT transformation for DEBB components

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:for-each select="PState">
63                                                        <xsl:element name="pstate">
64
65                                                        </xsl:element>
66                                                </xsl:for-each>
67                                        </xsl:element>
68                                </xsl:if>
69                        </xsl:element>
70                         
71
72                </xsl:element>
73        </xsl:template>
74
75        <xsl:template match="Memory">
76                <xsl:element name="resourceUnit">
77                        <xsl:attribute name="class">Memory</xsl:attribute>
78                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
79                        <xsl:element name="amount">
80                                <xsl:value-of select="Capacity" />
81                        </xsl:element>
82                </xsl:element>
83        </xsl:template>
84
85        <xsl:template match="Storage">
86                <xsl:element name="resourceUnit">
87                        <xsl:attribute name="class">Storage</xsl:attribute>
88                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
89                </xsl:element>
90        </xsl:template>
91
92        <xsl:template match="CoolingDevice">
93                <xsl:element name="parameter">
94                        <xsl:attribute name="name">CoolingDevice</xsl:attribute>
95                        <xsl:call-template name="BasicDEBBPhysicalElementData" />
96                </xsl:element>
97        </xsl:template>
98
99        <!-- Template for transforming basic parameters of all devices of any type -->
100        <xsl:template name="BasicDEBBPhysicalElementData">
101                <xsl:if test="Manufacturer">
102                        <xsl:element name="parameter">
103                                <xsl:attribute name="name">Manufacturer</xsl:attribute>
104                                <xsl:element name="value">
105                                        <xsl:value-of select="Manufacturer" />
106                                </xsl:element>
107                        </xsl:element>
108                </xsl:if>
109                <xsl:if test="Product">
110                        <xsl:element name="parameter">
111                                <xsl:attribute name="name">Product</xsl:attribute>
112                                <xsl:element name="value">
113                                        <xsl:value-of select="Product" />
114                                </xsl:element>
115                        </xsl:element>
116                </xsl:if>
117                <xsl:if test="MaxPower">
118                        <xsl:element name="parameter">
119                                <xsl:attribute name="name">MaxPower</xsl:attribute>
120                                <xsl:element name="value">
121                                        <xsl:value-of select="MaxPower" />
122                                </xsl:element>
123                        </xsl:element>
124                </xsl:if>
125        </xsl:template>
126
127</xsl:stylesheet>
Note: See TracBrowser for help on using the repository browser.