cpee 1.3.133 → 1.3.134

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,145 @@
1
+ <properties xmlns="http://riddl.org/ns/common-patterns/properties/1.0">
2
+ <info>asd</info>
3
+ <state>stopped</state>
4
+ <handlerwrapper>DefaultHandlerWrapper</handlerwrapper>
5
+ <positions/>
6
+ <dataelements>
7
+ <persons>0</persons>
8
+ <card>Visa_12345</card>
9
+ <airline>FlyNiki</airline>
10
+ <hotels>["Ibis","Mariott","Rathaus"]</hotels>
11
+ <from>Vienna</from>
12
+ <to>Prague</to>
13
+ <costs>724.0</costs>
14
+ </dataelements>
15
+ <endpoints>
16
+ <bookAir>http://gruppe.wst.univie.ac.at/~mangler/services/airline.php</bookAir>
17
+ <bookHotel>http://gruppe.wst.univie.ac.at/~mangler/services/hotel.php</bookHotel>
18
+ <approve>http://gruppe.wst.univie.ac.at/~mangler/services/approval.php</approve>
19
+ </endpoints>
20
+ <dsl>call :a1, :bookAir, { :method =&gt; :post, :parameters =&gt; {:from =&gt; data.from, :to =&gt; data.to, :persons =&gt; data.persons} }, &lt;&lt;-end
21
+ data.airline = result.value('id')
22
+ data.costs += result.value('costs').to_f
23
+ status.update 1, 'Hotel'
24
+ end
25
+ parallel do
26
+ loop pre_test{data.persons &gt; 0} do
27
+ parallel_branch data.persons do |p|
28
+ call :a2, :bookHotel, { :method =&gt; :post, :parameters =&gt; {:to =&gt; data.to} }, &lt;&lt;-end
29
+ data.hotels &lt;&lt; result.value('id')
30
+ data.costs += result.value('costs').to_f
31
+ end
32
+ end
33
+ manipulate :a3, &lt;&lt;-end
34
+ data.persons -= 1
35
+ end
36
+ end
37
+ end
38
+ choose :inclusive do
39
+ alternative "data.costs &gt; 700" do
40
+ call :a4, :approve, { :method =&gt; :post, :parameters =&gt; {:costs =&gt; data.costs} }
41
+ end
42
+ end
43
+ </dsl>
44
+ <dslx>
45
+ <description xmlns="http://cpee.org/ns/description/1.0">
46
+ <call id="a1" endpoint="bookAir">
47
+ <parameters>
48
+ <method>:post</method>
49
+ <parameters>
50
+ <from>data.from</from>
51
+ <to>data.to</to>
52
+ <persons>data.persons</persons>
53
+ </parameters>
54
+ </parameters>
55
+ <manipulate output="result"> data.airline = result.value('id')
56
+ data.costs += result.value('costs').to_f
57
+ status.update 1, 'Hotel'</manipulate>
58
+ </call>
59
+ <parallel>
60
+ <loop pre_test="data.persons &gt; 0">
61
+ <parallel_branch pass="data.persons" local="p">
62
+ <call id="a2" endpoint="bookHotel">
63
+ <parameters>
64
+ <method>:post</method>
65
+ <parameters>
66
+ <to>data.to</to>
67
+ </parameters>
68
+ </parameters>
69
+ <manipulate output="result"> data.hotels &lt;&lt; result.value('id')
70
+ data.costs += result.value('costs').to_f</manipulate>
71
+ </call>
72
+ </parallel_branch>
73
+ <manipulate id="a3"> data.persons -= 1</manipulate>
74
+ </loop>
75
+ </parallel>
76
+ <choose>
77
+ <alternative condition="data.costs &gt; 700">
78
+ <call id="a4" endpoint="approve">
79
+ <parameters>
80
+ <method>:post</method>
81
+ <parameters>
82
+ <costs>data.costs</costs>
83
+ </parameters>
84
+ </parameters>
85
+ </call>
86
+ </alternative>
87
+ </choose>
88
+ </description>
89
+ </dslx>
90
+ <status>
91
+ <id>0</id>
92
+ <message>undefined</message>
93
+ </status>
94
+ <description>
95
+ <description xmlns="http://cpee.org/ns/description/1.0">
96
+ <call id="a1" endpoint="bookAir">
97
+ <parameters>
98
+ <method>:post</method>
99
+ <parameters>
100
+ <from>data.from</from>
101
+ <to>data.to</to>
102
+ <persons>data.persons</persons>
103
+ </parameters>
104
+ </parameters>
105
+ <manipulate output="result"> data.airline = result.value('id')
106
+ data.costs += result.value('costs').to_f
107
+ status.update 1, 'Hotel'</manipulate>
108
+ </call>
109
+ <parallel>
110
+ <loop pre_test="data.persons &gt; 0">
111
+ <parallel_branch pass="data.persons" local="p">
112
+ <call id="a2" endpoint="bookHotel">
113
+ <parameters>
114
+ <method>:post</method>
115
+ <parameters>
116
+ <to>data.to</to>
117
+ </parameters>
118
+ </parameters>
119
+ <manipulate output="result"> data.hotels &lt;&lt; result.value('id')
120
+ data.costs += result.value('costs').to_f</manipulate>
121
+ </call>
122
+ </parallel_branch>
123
+ <manipulate id="a3"> data.persons -= 1</manipulate>
124
+ </loop>
125
+ </parallel>
126
+ <choose>
127
+ <alternative condition="data.costs &gt; 700">
128
+ <call id="a4" endpoint="approve">
129
+ <parameters>
130
+ <method>:post</method>
131
+ <parameters>
132
+ <costs>data.costs</costs>
133
+ </parameters>
134
+ </parameters>
135
+ </call>
136
+ </alternative>
137
+ </choose>
138
+ </description>
139
+ </description>
140
+ <transformation>
141
+ <description type="copy"/>
142
+ <dataelements type="rest"/>
143
+ <endpoints type="rest"/>
144
+ </transformation>
145
+ </properties>
@@ -1,28 +1,25 @@
1
1
  <?xml version="1.0"?>
2
- <xsl:stylesheet version="1.0"
3
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
4
- xmlns:d="http://cpee.org/ns/description/1.0"
5
- xmlns:str="http://exslt.org/strings">
6
-
2
+ <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://cpee.org/ns/description/1.0" xmlns:str="http://exslt.org/strings" version="1.0">
7
3
  <xsl:output method="text"/>
8
4
  <xsl:strip-space elements="*"/>
9
5
  <xsl:variable name="myspacemultiplier">2</xsl:variable>
10
-
11
6
  <xsl:template match="/">
12
7
  <xsl:apply-templates select="//d:description"/>
13
8
  </xsl:template>
14
-
15
9
  <xsl:template match="//d:description">
16
10
  <xsl:apply-templates>
17
- <xsl:with-param name="myspace"><xsl:value-of select="-1*$myspacemultiplier"/></xsl:with-param>
18
- </xsl:apply-templates>
11
+ <xsl:with-param name="myspace">
12
+ <xsl:value-of select="-1*$myspacemultiplier"/>
13
+ </xsl:with-param>
14
+ </xsl:apply-templates>
19
15
  </xsl:template>
20
-
21
16
  <xsl:template match="*">
22
17
  <xsl:param name="myspace"/>
23
18
  <xsl:call-template name="print-space">
24
19
  <xsl:with-param name="i">1</xsl:with-param>
25
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
20
+ <xsl:with-param name="count">
21
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
22
+ </xsl:with-param>
26
23
  </xsl:call-template>
27
24
  <xsl:if test="name()='call' or name()='manipulate'">
28
25
  <xsl:value-of select="name()"/>
@@ -32,10 +29,10 @@
32
29
  <xsl:if test="name()='call'">
33
30
  <xsl:text>, </xsl:text>
34
31
  <xsl:choose>
35
- <xsl:when test="count(str:tokenize(@endpoint,' ')) > 1">
32
+ <xsl:when test="count(str:tokenize(@endpoint,' ')) &gt; 1">
36
33
  <xsl:text>[</xsl:text>
37
34
  <xsl:for-each select="str:tokenize(@endpoint,' ')">
38
- <xsl:if test="position() >1">, </xsl:if>
35
+ <xsl:if test="position() &gt;1">, </xsl:if>
39
36
  <xsl:text>:</xsl:text>
40
37
  <xsl:value-of select="."/>
41
38
  </xsl:for-each>
@@ -45,18 +42,22 @@
45
42
  <xsl:text>:</xsl:text>
46
43
  <xsl:value-of select="@endpoint"/>
47
44
  </xsl:otherwise>
48
- </xsl:choose>
45
+ </xsl:choose>
49
46
  <xsl:text>, { </xsl:text>
50
47
  <xsl:apply-templates select="d:parameters"/>
51
48
  <xsl:text> }</xsl:text>
52
49
  <xsl:apply-templates select="d:manipulate" mode="part-of-call">
53
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace"/></xsl:with-param>
50
+ <xsl:with-param name="myspace">
51
+ <xsl:value-of select="$myspace"/>
52
+ </xsl:with-param>
54
53
  </xsl:apply-templates>
55
54
  <xsl:call-template name="print-newline"/>
56
55
  </xsl:if>
57
56
  <xsl:if test="name()='manipulate'">
58
57
  <xsl:call-template name="print-content">
59
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace"/></xsl:with-param>
58
+ <xsl:with-param name="myspace">
59
+ <xsl:value-of select="$myspace"/>
60
+ </xsl:with-param>
60
61
  </xsl:call-template>
61
62
  <xsl:call-template name="print-newline"/>
62
63
  </xsl:if>
@@ -67,17 +68,21 @@
67
68
  <xsl:if test="name()='parallel'">
68
69
  <xsl:text>parallel</xsl:text>
69
70
  <xsl:if test="@wait">
70
- <xsl:text> :wait => </xsl:text>
71
+ <xsl:text> :wait =&gt; </xsl:text>
71
72
  <xsl:value-of select="@wait"/>
72
73
  </xsl:if>
73
74
  <xsl:text> do</xsl:text>
74
75
  <xsl:call-template name="print-newline"/>
75
76
  <xsl:apply-templates>
76
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
77
+ <xsl:with-param name="myspace">
78
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
79
+ </xsl:with-param>
77
80
  </xsl:apply-templates>
78
81
  <xsl:call-template name="print-space">
79
82
  <xsl:with-param name="i">1</xsl:with-param>
80
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
83
+ <xsl:with-param name="count">
84
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
85
+ </xsl:with-param>
81
86
  </xsl:call-template>
82
87
  <xsl:text>end</xsl:text>
83
88
  <xsl:call-template name="print-newline"/>
@@ -90,7 +95,7 @@
90
95
  <xsl:text>pre_test{</xsl:text>
91
96
  <xsl:value-of select="@pre_test"/>
92
97
  <xsl:text>} </xsl:text>
93
- </xsl:when>
98
+ </xsl:when>
94
99
  <xsl:otherwise>
95
100
  <xsl:text>pre_test("</xsl:text>
96
101
  <xsl:value-of select="@pre_test"/>
@@ -104,7 +109,7 @@
104
109
  <xsl:text>post_test{</xsl:text>
105
110
  <xsl:value-of select="@post_test"/>
106
111
  <xsl:text>} </xsl:text>
107
- </xsl:when>
112
+ </xsl:when>
108
113
  <xsl:otherwise>
109
114
  <xsl:text>post_test("</xsl:text>
110
115
  <xsl:value-of select="@post_test"/>
@@ -115,40 +120,50 @@
115
120
  <xsl:text>do</xsl:text>
116
121
  <xsl:call-template name="print-newline"/>
117
122
  <xsl:apply-templates>
118
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
123
+ <xsl:with-param name="myspace">
124
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
125
+ </xsl:with-param>
119
126
  </xsl:apply-templates>
120
127
  <xsl:call-template name="print-space">
121
128
  <xsl:with-param name="i">1</xsl:with-param>
122
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
129
+ <xsl:with-param name="count">
130
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
131
+ </xsl:with-param>
123
132
  </xsl:call-template>
124
133
  <xsl:text>end</xsl:text>
125
134
  <xsl:call-template name="print-newline"/>
126
135
  </xsl:if>
127
136
  <xsl:if test="name()='choose'">
128
137
  <xsl:text>choose </xsl:text>
129
- <xsl:choose>
130
- <xsl:when test="@mode='exclusive'">
131
- <xsl:text>:exclusive</xsl:text>
132
- </xsl:when>
133
- <xsl:otherwise>
134
- <xsl:text>:inclusive</xsl:text>
135
- </xsl:otherwise>
136
- </xsl:choose>
138
+ <xsl:choose>
139
+ <xsl:when test="@mode='exclusive'">
140
+ <xsl:text>:exclusive</xsl:text>
141
+ </xsl:when>
142
+ <xsl:otherwise>
143
+ <xsl:text>:inclusive</xsl:text>
144
+ </xsl:otherwise>
145
+ </xsl:choose>
137
146
  <xsl:text> do</xsl:text>
138
147
  <xsl:call-template name="print-newline"/>
139
148
  <xsl:apply-templates>
140
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
149
+ <xsl:with-param name="myspace">
150
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
151
+ </xsl:with-param>
141
152
  </xsl:apply-templates>
142
153
  <xsl:call-template name="print-space">
143
154
  <xsl:with-param name="i">1</xsl:with-param>
144
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
155
+ <xsl:with-param name="count">
156
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
157
+ </xsl:with-param>
145
158
  </xsl:call-template>
146
159
  <xsl:text>end</xsl:text>
147
160
  <xsl:call-template name="print-newline"/>
148
161
  </xsl:if>
149
162
  <xsl:if test="name()='group'">
150
163
  <xsl:apply-templates>
151
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
164
+ <xsl:with-param name="myspace">
165
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
166
+ </xsl:with-param>
152
167
  </xsl:apply-templates>
153
168
  <xsl:call-template name="print-newline"/>
154
169
  </xsl:if>
@@ -158,22 +173,27 @@
158
173
  <xsl:text> do</xsl:text>
159
174
  <xsl:call-template name="print-newline"/>
160
175
  <xsl:apply-templates>
161
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
176
+ <xsl:with-param name="myspace">
177
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
178
+ </xsl:with-param>
162
179
  </xsl:apply-templates>
163
180
  <xsl:call-template name="print-space">
164
181
  <xsl:with-param name="i">1</xsl:with-param>
165
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
182
+ <xsl:with-param name="count">
183
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
184
+ </xsl:with-param>
166
185
  </xsl:call-template>
167
186
  <xsl:text>end</xsl:text>
168
187
  <xsl:call-template name="print-newline"/>
169
188
  </xsl:if>
170
189
  </xsl:template>
171
-
172
190
  <xsl:template match="d:alternative">
173
191
  <xsl:param name="myspace"/>
174
192
  <xsl:call-template name="print-space">
175
193
  <xsl:with-param name="i">1</xsl:with-param>
176
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
194
+ <xsl:with-param name="count">
195
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
196
+ </xsl:with-param>
177
197
  </xsl:call-template>
178
198
  <xsl:text>alternative </xsl:text>
179
199
  <xsl:choose>
@@ -181,7 +201,7 @@
181
201
  <xsl:text>"</xsl:text>
182
202
  <xsl:value-of select="@condition"/>
183
203
  <xsl:text>"</xsl:text>
184
- </xsl:when>
204
+ </xsl:when>
185
205
  <xsl:otherwise>
186
206
  <xsl:text>"</xsl:text>
187
207
  <xsl:value-of select="@condition"/>
@@ -191,40 +211,50 @@
191
211
  <xsl:text> do</xsl:text>
192
212
  <xsl:call-template name="print-newline"/>
193
213
  <xsl:apply-templates>
194
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
214
+ <xsl:with-param name="myspace">
215
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
216
+ </xsl:with-param>
195
217
  </xsl:apply-templates>
196
218
  <xsl:call-template name="print-space">
197
219
  <xsl:with-param name="i">1</xsl:with-param>
198
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
220
+ <xsl:with-param name="count">
221
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
222
+ </xsl:with-param>
199
223
  </xsl:call-template>
200
224
  <xsl:text>end</xsl:text>
201
225
  <xsl:call-template name="print-newline"/>
202
226
  </xsl:template>
203
-
204
227
  <xsl:template match="d:otherwise">
205
228
  <xsl:param name="myspace"/>
206
229
  <xsl:call-template name="print-space">
207
230
  <xsl:with-param name="i">1</xsl:with-param>
208
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
231
+ <xsl:with-param name="count">
232
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
233
+ </xsl:with-param>
209
234
  </xsl:call-template>
210
235
  <xsl:text>otherwise do</xsl:text>
211
236
  <xsl:call-template name="print-newline"/>
212
237
  <xsl:apply-templates>
213
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
238
+ <xsl:with-param name="myspace">
239
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
240
+ </xsl:with-param>
214
241
  </xsl:apply-templates>
215
242
  <xsl:call-template name="print-space">
216
243
  <xsl:with-param name="i">1</xsl:with-param>
217
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
244
+ <xsl:with-param name="count">
245
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
246
+ </xsl:with-param>
218
247
  </xsl:call-template>
219
248
  <xsl:text>end</xsl:text>
220
249
  <xsl:call-template name="print-newline"/>
221
250
  </xsl:template>
222
-
223
251
  <xsl:template match="d:parallel_branch">
224
252
  <xsl:param name="myspace"/>
225
253
  <xsl:call-template name="print-space">
226
254
  <xsl:with-param name="i">1</xsl:with-param>
227
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
255
+ <xsl:with-param name="count">
256
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
257
+ </xsl:with-param>
228
258
  </xsl:call-template>
229
259
  <xsl:text>parallel_branch</xsl:text>
230
260
  <xsl:if test="@pass">
@@ -239,77 +269,76 @@
239
269
  </xsl:if>
240
270
  <xsl:call-template name="print-newline"/>
241
271
  <xsl:apply-templates>
242
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
272
+ <xsl:with-param name="myspace">
273
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
274
+ </xsl:with-param>
243
275
  </xsl:apply-templates>
244
276
  <xsl:call-template name="print-space">
245
277
  <xsl:with-param name="i">1</xsl:with-param>
246
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
278
+ <xsl:with-param name="count">
279
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
280
+ </xsl:with-param>
247
281
  </xsl:call-template>
248
282
  <xsl:text>end</xsl:text>
249
283
  <xsl:call-template name="print-newline"/>
250
284
  </xsl:template>
251
-
252
285
  <xsl:template match="d:parameters">
253
286
  <xsl:apply-templates select="d:*" mode="parameter"/>
254
287
  </xsl:template>
255
-
256
288
  <xsl:template match="d:*" mode="parameter">
257
- <xsl:choose>
258
- <xsl:when test="position() = 1">
259
- <xsl:text>:</xsl:text>
260
- </xsl:when>
261
- <xsl:otherwise>
262
- <xsl:text>, :</xsl:text>
263
- </xsl:otherwise>
264
- </xsl:choose>
289
+ <xsl:if test="position() &gt;1">, </xsl:if>
290
+ <xsl:text>:</xsl:text>
265
291
  <xsl:value-of select="name()"/>
266
- <xsl:text> => </xsl:text>
267
- <xsl:choose>
268
- <xsl:when test="count(*) > 0">
292
+ <xsl:text> =&gt; </xsl:text>
293
+
294
+ <xsl:choose>
295
+ <xsl:when test="count(*) &gt; 0">
269
296
  <xsl:text>{</xsl:text>
270
- <xsl:apply-templates select="d:*" mode="sub-parameter"/>
297
+ <xsl:apply-templates select="d:*" mode="parameter"/>
271
298
  <xsl:text>}</xsl:text>
272
299
  </xsl:when>
273
- <xsl:otherwise>
300
+ <xsl:when test="count(@*) &gt; 0">
301
+ <xsl:text>Struct.new(:value,</xsl:text>
302
+ <xsl:for-each select="@*">
303
+ <xsl:if test="position() &gt;1">, </xsl:if>
304
+ <xsl:text>:</xsl:text>
305
+ <xsl:value-of select="name(.)"/>
306
+ </xsl:for-each>
307
+ <xsl:text>).new(</xsl:text>
308
+ <xsl:text></xsl:text>
274
309
  <xsl:choose>
275
- <xsl:when test="@type = 'symbolic'">
276
- <xsl:value-of select="text()"/>
277
- </xsl:when>
278
310
  <xsl:when test="not(node())">
279
311
  <xsl:text>nil</xsl:text>
280
312
  </xsl:when>
281
313
  <xsl:otherwise>
282
- <xsl:text>"</xsl:text>
283
314
  <xsl:value-of select="text()"/>
284
- <xsl:text>"</xsl:text>
285
315
  </xsl:otherwise>
286
- </xsl:choose>
287
- </xsl:otherwise>
288
- </xsl:choose>
289
- </xsl:template>
290
-
291
- <xsl:template match="d:*" mode="sub-parameter">
292
- <xsl:text> :</xsl:text>
293
- <xsl:value-of select="name()"/>
294
- <xsl:text> => </xsl:text>
295
- <xsl:value-of select="text()"/>
296
- <xsl:choose>
297
- <xsl:when test="generate-id(.) = generate-id(../*[last()])">
298
- <xsl:text> </xsl:text>
316
+ </xsl:choose>
317
+ <xsl:text>,</xsl:text>
318
+ <xsl:for-each select="@*">
319
+ <xsl:if test="position() &gt;1">, </xsl:if>
320
+ <xsl:text>"</xsl:text>
321
+ <xsl:value-of select="string(.)"/>
322
+ <xsl:text>"</xsl:text>
323
+ </xsl:for-each>
324
+ <xsl:text>)</xsl:text>
325
+ </xsl:when>
326
+ <xsl:when test="not(node())">
327
+ <xsl:text>nil</xsl:text>
299
328
  </xsl:when>
300
329
  <xsl:otherwise>
301
- <xsl:text>,</xsl:text>
330
+ <xsl:value-of select="text()"/>
302
331
  </xsl:otherwise>
303
- </xsl:choose>
332
+ </xsl:choose>
304
333
  </xsl:template>
305
-
306
334
  <xsl:template match="d:manipulate" mode="part-of-call">
307
335
  <xsl:param name="myspace"/>
308
336
  <xsl:call-template name="print-content">
309
- <xsl:with-param name="myspace"><xsl:value-of select="$myspace"/></xsl:with-param>
337
+ <xsl:with-param name="myspace">
338
+ <xsl:value-of select="$myspace"/>
339
+ </xsl:with-param>
310
340
  </xsl:call-template>
311
341
  </xsl:template>
312
-
313
342
  <xsl:template name="print-content">
314
343
  <xsl:param name="myspace"/>
315
344
  <xsl:if test="text()">
@@ -321,7 +350,7 @@
321
350
  <xsl:value-of select="@output"/>
322
351
  <xsl:text>|</xsl:text>
323
352
  </xsl:if>
324
- </xsl:when>
353
+ </xsl:when>
325
354
  <xsl:otherwise>
326
355
  <xsl:text>, &lt;&lt;-end </xsl:text>
327
356
  </xsl:otherwise>
@@ -331,12 +360,13 @@
331
360
  <xsl:call-template name="print-newline"/>
332
361
  <xsl:call-template name="print-space">
333
362
  <xsl:with-param name="i">1</xsl:with-param>
334
- <xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
363
+ <xsl:with-param name="count">
364
+ <xsl:value-of select="$myspace+$myspacemultiplier"/>
365
+ </xsl:with-param>
335
366
  </xsl:call-template>
336
367
  <xsl:text>end</xsl:text>
337
368
  </xsl:if>
338
369
  </xsl:template>
339
-
340
370
  <xsl:template name="print-space">
341
371
  <xsl:param name="i"/>
342
372
  <xsl:param name="count"/>
@@ -356,5 +386,4 @@
356
386
  <xsl:text>
357
387
  </xsl:text>
358
388
  </xsl:template>
359
-
360
389
  </xsl:stylesheet>