cpee 2.0.19 → 2.0.24
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/cockpit/css/model.css +2 -0
- data/cockpit/css/replay.css +55 -0
- data/cockpit/css/wfadaptor.css +17 -0
- data/cockpit/edit.html +1 -1
- data/cockpit/index.html +2 -0
- data/cockpit/js/instance.js +8 -20
- data/cockpit/js/replay.js +40 -0
- data/cockpit/js_libs.zip +0 -0
- data/cockpit/model.html +3 -1
- data/cockpit/replay.html +52 -0
- data/cockpit/templates/.CPEE.xml +8 -0
- data/cockpit/templates/.Signavio.xml +8 -0
- data/cockpit/templates/.templates.xml +13 -0
- data/cockpit/templates/.transformations.xml +4 -0
- data/cockpit/templates/instantiate.local/Take_Sub.xml +1 -1
- data/cockpit/themes/compact/rngs/call.rng +67 -40
- data/cockpit/themes/compact/rngs/callmanipulate.rng +81 -38
- data/cockpit/themes/control/rngs/alternative.rng +25 -0
- data/cockpit/themes/control/rngs/call.rng +149 -0
- data/cockpit/themes/control/rngs/callmanipulate.rng +188 -0
- data/cockpit/themes/control/rngs/choose.rng +14 -0
- data/cockpit/themes/control/rngs/closed_loop.rng +62 -0
- data/cockpit/themes/control/rngs/closed_loop_cancel.rng +5 -0
- data/cockpit/themes/control/rngs/closed_loop_control.rng +31 -0
- data/cockpit/themes/control/rngs/closed_loop_measuring.rng +12 -0
- data/cockpit/themes/control/rngs/critical.rng +5 -0
- data/cockpit/themes/control/rngs/escape.rng +1 -0
- data/cockpit/themes/control/rngs/group.rng +3 -0
- data/cockpit/themes/control/rngs/loop.rng +22 -0
- data/cockpit/themes/control/rngs/manipulate.rng +9 -0
- data/cockpit/themes/control/rngs/otherwise.rng +22 -0
- data/cockpit/themes/control/rngs/parallel.rng +21 -0
- data/cockpit/themes/control/rngs/parallel_branch.rng +8 -0
- data/cockpit/themes/control/rngs/scripts.rng +23 -0
- data/cockpit/themes/control/rngs/stop.rng +5 -0
- data/cockpit/themes/control/rngs/terminate.rng +1 -0
- data/cockpit/themes/control/symbols/alternative.svg +5 -0
- data/cockpit/themes/control/symbols/arrow.svg +3 -0
- data/cockpit/themes/control/symbols/call.svg +6 -0
- data/cockpit/themes/control/symbols/callmanipulate.svg +8 -0
- data/cockpit/themes/control/symbols/choose.svg +5 -0
- data/cockpit/themes/control/symbols/choose_exclusive.svg +5 -0
- data/cockpit/themes/control/symbols/choose_inclusive.svg +4 -0
- data/cockpit/themes/control/symbols/closed_loop.svg +5 -0
- data/cockpit/themes/control/symbols/closed_loop_cancel.svg +5 -0
- data/cockpit/themes/control/symbols/closed_loop_control.svg +5 -0
- data/cockpit/themes/control/symbols/closed_loop_measuring.svg +6 -0
- data/cockpit/themes/control/symbols/complex.svg +8 -0
- data/cockpit/themes/control/symbols/critical.svg +4 -0
- data/cockpit/themes/control/symbols/end.svg +3 -0
- data/cockpit/themes/control/symbols/escape.svg +5 -0
- data/cockpit/themes/control/symbols/event_end.svg +3 -0
- data/cockpit/themes/control/symbols/loop.svg +5 -0
- data/cockpit/themes/control/symbols/manipulate.svg +4 -0
- data/cockpit/themes/control/symbols/otherwise.svg +5 -0
- data/cockpit/themes/control/symbols/parallel.svg +5 -0
- data/cockpit/themes/control/symbols/parallel_branch.svg +5 -0
- data/cockpit/themes/control/symbols/parallel_branch_compact.svg +4 -0
- data/cockpit/themes/control/symbols/parallel_branch_event.svg +14 -0
- data/cockpit/themes/control/symbols/parallel_branch_normal.svg +5 -0
- data/cockpit/themes/control/symbols/scripts.svg +4 -0
- data/cockpit/themes/control/symbols/start.svg +3 -0
- data/cockpit/themes/control/symbols/stop.svg +5 -0
- data/cockpit/themes/control/symbols/terminate.svg +4 -0
- data/cockpit/themes/control/theme.js +1665 -0
- data/cockpit/themes/default/rngs/call.rng +67 -40
- data/cockpit/themes/default/rngs/callmanipulate.rng +81 -38
- data/cockpit/themes/default/theme.js +1287 -0
- data/cockpit/themes/diana/rngs/call.rng +67 -40
- data/cockpit/themes/diana/rngs/callmanipulate.rng +81 -38
- data/cockpit/themes/extended/rngs/call.rng +67 -40
- data/cockpit/themes/extended/rngs/callmanipulate.rng +81 -38
- data/cockpit/themes/model/rngs/call.rng +2 -1
- data/cockpit/themes/model/rngs/callmanipulate.rng +2 -1
- data/cockpit/themes/model/theme.js +1 -1
- data/cockpit/themes/packed/rngs/call.rng +67 -40
- data/cockpit/themes/packed/rngs/callmanipulate.rng +81 -38
- data/cockpit/themes/preset/rngs/call.rng +67 -40
- data/cockpit/themes/preset/rngs/callmanipulate.rng +81 -38
- data/cockpit/track.html +0 -7
- data/cpee.gemspec +2 -2
- data/lib/cpee/controller.rb +6 -3
- data/lib/cpee/implementation.rb +23 -8
- data/lib/cpee/implementation_notifications.rb +1 -1
- data/lib/cpee/persistence.rb +2 -1
- data/lib/cpee/redis.rb +57 -0
- data/server/handlerwrappers/default.rb +2 -2
- data/server/resources/notifications/logging/subscription.xml +6 -0
- data/server/routing/end.pid +1 -0
- data/server/routing/end.rb +16 -4
- data/server/routing/forward-events.pid +1 -0
- data/server/routing/forward-events.rb +19 -7
- data/server/routing/forward-votes.pid +1 -0
- data/server/routing/forward-votes.rb +19 -7
- data/server/routing/persist.pid +1 -0
- data/server/routing/persist.rb +26 -14
- data/server/server.pid +1 -0
- data/tools/cpee +5 -5
- data/tools/test/README +4 -0
- data/tools/test/config.json +3 -0
- data/tools/test/contrib/graph_example.svg +1166 -0
- data/tools/test/contrib/legend.svg +817 -0
- data/tools/test/contrib/symbols.svg +224 -0
- data/tools/test/contrib/transformation1.xsl +264 -0
- data/tools/test/contrib/transformation2.xsl +10 -0
- data/tools/test/contrib/tree_example.svg +788 -0
- data/tools/test/css/model.css +24 -0
- data/tools/test/css/track.css +60 -0
- data/tools/test/css/ui.css +214 -0
- data/tools/test/css/wfadaptor.css +422 -0
- data/tools/test/edit.html +258 -0
- data/tools/test/graph.html +69 -0
- data/tools/test/index.html +258 -0
- data/tools/test/js/details.js +109 -0
- data/tools/test/js/instance.js +1344 -0
- data/tools/test/js/model.js +41 -0
- data/tools/test/js/parameters.js +82 -0
- data/tools/test/js/track.js +18 -0
- data/tools/test/js/ui.js +104 -0
- data/tools/test/js/wfadaptor.js +763 -0
- data/tools/test/js_libs.zip +0 -0
- data/tools/test/js_libs/Makefile +2 -0
- data/tools/test/js_libs/ansi_up.js +333 -0
- data/tools/test/js_libs/console.js +80 -0
- data/tools/test/js_libs/custommenu.css +84 -0
- data/tools/test/js_libs/custommenu.js +104 -0
- data/tools/test/js_libs/experiments1/relaxngui.css +185 -0
- data/tools/test/js_libs/experiments1/relaxngui.js +488 -0
- data/tools/test/js_libs/experiments1/rngtest9.html +60 -0
- data/tools/test/js_libs/experiments1/rngtest9.rng +35 -0
- data/tools/test/js_libs/experiments1/rngtest9.xml +8 -0
- data/tools/test/js_libs/jquery-2.2.4.min.js +4 -0
- data/tools/test/js_libs/jquery-3.2.1.min.js +4 -0
- data/tools/test/js_libs/jquery-3.3.1.min.js +2 -0
- data/tools/test/js_libs/jquery.browser.js +40 -0
- data/tools/test/js_libs/jquery.caret.min.js +10 -0
- data/tools/test/js_libs/jquery.cookie.js +117 -0
- data/tools/test/js_libs/jquery.min.js +1 -0
- data/tools/test/js_libs/jquery.svg.min.js +6 -0
- data/tools/test/js_libs/jquery.svgdom.min.js +6 -0
- data/tools/test/js_libs/markdown.min.js +1 -0
- data/tools/test/js_libs/parsequery.js +21 -0
- data/tools/test/js_libs/printf.js +368 -0
- data/tools/test/js_libs/relaxngui.css +213 -0
- data/tools/test/js_libs/relaxngui.js +543 -0
- data/tools/test/js_libs/strftime.min.js +1 -0
- data/tools/test/js_libs/tests/dataelements.html +59 -0
- data/tools/test/js_libs/tests/dataelements.rng +8 -0
- data/tools/test/js_libs/tests/dataelements.xml +3 -0
- data/tools/test/js_libs/tests/relaxngui.css +203 -0
- data/tools/test/js_libs/tests/relaxngui.js +502 -0
- data/tools/test/js_libs/tests/rngtest1.html +66 -0
- data/tools/test/js_libs/tests/rngtest1.rng +147 -0
- data/tools/test/js_libs/tests/rngtest1.xml +13 -0
- data/tools/test/js_libs/tests/rngtest2.html +60 -0
- data/tools/test/js_libs/tests/rngtest2.rng +6 -0
- data/tools/test/js_libs/tests/rngtest2.xml +3 -0
- data/tools/test/js_libs/tests/rngtest3.html +60 -0
- data/tools/test/js_libs/tests/rngtest3.rng +23 -0
- data/tools/test/js_libs/tests/rngtest3.xml +9 -0
- data/tools/test/js_libs/tests/rngtest4.html +60 -0
- data/tools/test/js_libs/tests/rngtest4.rng +19 -0
- data/tools/test/js_libs/tests/rngtest4.xml +12 -0
- data/tools/test/js_libs/tests/rngtest5.html +60 -0
- data/tools/test/js_libs/tests/rngtest5.rng +75 -0
- data/tools/test/js_libs/tests/rngtest5.xml +40 -0
- data/tools/test/js_libs/tests/rngtest6.html +60 -0
- data/tools/test/js_libs/tests/rngtest6.rng +24 -0
- data/tools/test/js_libs/tests/rngtest6.xml +6 -0
- data/tools/test/js_libs/tests/rngtest8.html +60 -0
- data/tools/test/js_libs/tests/rngtest8.rng +13 -0
- data/tools/test/js_libs/tests/rngtest8.xml +2 -0
- data/tools/test/js_libs/tests/rngtest9.html +60 -0
- data/tools/test/js_libs/tests/rngtest9.rng +31 -0
- data/tools/test/js_libs/tests/rngtest9.xml +8 -0
- data/tools/test/js_libs/ui.css +333 -0
- data/tools/test/js_libs/ui.html +168 -0
- data/tools/test/js_libs/ui.js +177 -0
- data/tools/test/js_libs/underscore.min.js +27 -0
- data/tools/test/js_libs/util.js +81 -0
- data/tools/test/js_libs/vkbeautify.0.99.00.beta.js +358 -0
- data/tools/test/js_libs/vkbeautify.js +1 -0
- data/tools/test/js_libs/webcomponents.min.js +196 -0
- data/tools/test/model.html +192 -0
- data/tools/test/rngs/attributes.rng +8 -0
- data/tools/test/rngs/dataelements.rng +8 -0
- data/tools/test/rngs/endpoints.rng +8 -0
- data/tools/test/templates.legacy/Async.xml +46 -0
- data/tools/test/templates.legacy/BCO.xml +70 -0
- data/tools/test/templates.legacy/BCS.xml +70 -0
- data/tools/test/templates.legacy/Centurio.xml +75 -0
- data/tools/test/templates.legacy/Concurrent.xml +40 -0
- data/tools/test/templates.legacy/Coopis Testset.xml +76 -0
- data/tools/test/templates.legacy/Endpoints and Data Manipulation.xml +30 -0
- data/tools/test/templates.legacy/ICSOC Testset.xml +95 -0
- data/tools/test/templates.legacy/Infinity.xml +28 -0
- data/tools/test/templates.legacy/Lego Boxer.xml +31 -0
- data/tools/test/templates.legacy/Lego Conveyor.xml +31 -0
- data/tools/test/templates.legacy/Lego Crane.xml +87 -0
- data/tools/test/templates.legacy/Lego Ejector.xml +55 -0
- data/tools/test/templates.legacy/Lego Full.xml +142 -0
- data/tools/test/templates.legacy/Lego Liddy.xml +40 -0
- data/tools/test/templates.legacy/Lego Plate.xml +31 -0
- data/tools/test/templates.legacy/Lego Transporter.xml +43 -0
- data/tools/test/templates.legacy/Lego_Part_1.xml +85 -0
- data/tools/test/templates.legacy/LgLinear.xml +65 -0
- data/tools/test/templates.legacy/Linear.xml +77 -0
- data/tools/test/templates.legacy/Log.xml +117 -0
- data/tools/test/templates.legacy/Mangler 1.xml +87 -0
- data/tools/test/templates.legacy/Mangler 2.xml +103 -0
- data/tools/test/templates.legacy/Manuel Labels.xml +55 -0
- data/tools/test/templates.legacy/Promise.xml +275 -0
- data/tools/test/templates.legacy/SOPROMO Test Sonification.xml +83 -0
- data/tools/test/templates.legacy/Subprocess.xml +56 -0
- data/tools/test/templates.legacy/Syncing P34 1.xml +77 -0
- data/tools/test/templates.legacy/Syncing P34 2.xml +77 -0
- data/tools/test/templates.legacy/Syncing P34 3.xml +77 -0
- data/tools/test/templates.legacy/Syncing P34.xml +77 -0
- data/tools/test/templates.legacy/TEST - Bad Loop.xml +173 -0
- data/tools/test/templates.legacy/TEST - Wrong Positions.xml +174 -0
- data/tools/test/templates.legacy/Take_5.xml +48 -0
- data/tools/test/templates.legacy/Update.xml +32 -0
- data/tools/test/templates.legacy/Worklist Parallel.xml +104 -0
- data/tools/test/templates.legacy/Worklist Test CPEE.xml +40 -0
- data/tools/test/templates.legacy/Worklist Test.xml +42 -0
- data/tools/test/templates.legacy/Worklist Test2.xml +43 -0
- data/tools/test/templates.legacy/convert_cpee2.rb +15 -0
- data/tools/test/templates.legacy/convert_preset.rb +32 -0
- data/tools/test/templates.legacy/testsets.xml +37 -0
- data/tools/test/templates.legacy/transformations.xml +4 -0
- data/tools/test/templates/Coopis 2010.xml +76 -0
- data/tools/test/templates/IUPC arXiv:1104.3609 P34 1.xml +77 -0
- data/tools/test/templates/IUPC arXiv:1104.3609 P34 2.xml +77 -0
- data/tools/test/templates/IUPC arXiv:1104.3609 P34 3.xml +77 -0
- data/tools/test/templates/Track Test Local.xml +82 -0
- data/tools/test/templates/Track Test.xml +82 -0
- data/tools/test/templates/UR-VUE 2020 Manual Adjust.xml +182 -0
- data/tools/test/templates/UR-VUE 2020 Solution Baseline.xml +203 -0
- data/tools/test/templates/UR-VUE 2020 Solution NN.xml +197 -0
- data/tools/test/templates/UR-VUE 2020 Solution View.xml +151 -0
- data/tools/test/templates/UR-VUE 2020.xml +26 -0
- data/tools/test/templates/Worklist.xml +42 -0
- data/tools/test/templates/instantiate.local/Take_Sub.xml +59 -0
- data/tools/test/templates/instantiate/Take_Perf.xml +46 -0
- data/tools/test/templates/instantiate/Take_Sub.xml +58 -0
- data/tools/test/templates/instantiate/Take_X.xml +48 -0
- data/tools/test/themes/compact/theme.js +1285 -0
- data/tools/test/themes/diana/theme.js +1650 -0
- data/tools/test/themes/extended/theme.js +1325 -0
- data/tools/test/themes/model/rngs/alternative.rng +1 -0
- data/tools/test/themes/model/rngs/call.rng +67 -0
- data/tools/test/themes/model/rngs/callmanipulate.rng +72 -0
- data/tools/test/themes/model/rngs/choose.rng +1 -0
- data/tools/test/themes/model/rngs/critical.rng +1 -0
- data/tools/test/themes/model/rngs/escape.rng +1 -0
- data/tools/test/themes/model/rngs/group.rng +1 -0
- data/tools/test/themes/model/rngs/loop.rng +1 -0
- data/tools/test/themes/model/rngs/manipulate.rng +1 -0
- data/tools/test/themes/model/rngs/otherwise.rng +1 -0
- data/tools/test/themes/model/rngs/parallel.rng +1 -0
- data/tools/test/themes/model/rngs/parallel_branch.rng +1 -0
- data/tools/test/themes/model/rngs/scripts.rng +7 -0
- data/tools/test/themes/model/rngs/stop.rng +1 -0
- data/tools/test/themes/model/rngs/terminate.rng +1 -0
- data/tools/test/themes/model/theme.js +1268 -0
- data/tools/test/themes/packed/theme.js +1286 -0
- data/tools/test/themes/preset/rngs/alternative.rng +25 -0
- data/tools/test/themes/preset/rngs/call.rng +122 -0
- data/tools/test/themes/preset/rngs/callmanipulate.rng +145 -0
- data/tools/test/themes/preset/rngs/choose.rng +14 -0
- data/tools/test/themes/preset/rngs/closed_loop.rng +62 -0
- data/tools/test/themes/preset/rngs/closed_loop_cancel.rng +5 -0
- data/tools/test/themes/preset/rngs/closed_loop_control.rng +31 -0
- data/tools/test/themes/preset/rngs/closed_loop_measuring.rng +12 -0
- data/tools/test/themes/preset/rngs/critical.rng +5 -0
- data/tools/test/themes/preset/rngs/escape.rng +1 -0
- data/tools/test/themes/preset/rngs/group.rng +3 -0
- data/tools/test/themes/preset/rngs/loop.rng +22 -0
- data/tools/test/themes/preset/rngs/manipulate.rng +9 -0
- data/tools/test/themes/preset/rngs/otherwise.rng +22 -0
- data/tools/test/themes/preset/rngs/parallel.rng +21 -0
- data/tools/test/themes/preset/rngs/parallel_branch.rng +8 -0
- data/tools/test/themes/preset/rngs/scripts.rng +23 -0
- data/tools/test/themes/preset/rngs/stop.rng +5 -0
- data/tools/test/themes/preset/rngs/terminate.rng +1 -0
- data/tools/test/themes/preset/symbols/alternative.svg +5 -0
- data/tools/test/themes/preset/symbols/arrow.svg +3 -0
- data/tools/test/themes/preset/symbols/call.svg +6 -0
- data/tools/test/themes/preset/symbols/callmanipulate.svg +8 -0
- data/tools/test/themes/preset/symbols/choose.svg +5 -0
- data/tools/test/themes/preset/symbols/choose_exclusive.svg +5 -0
- data/tools/test/themes/preset/symbols/choose_inclusive.svg +4 -0
- data/tools/test/themes/preset/symbols/closed_loop.svg +5 -0
- data/tools/test/themes/preset/symbols/closed_loop_cancel.svg +5 -0
- data/tools/test/themes/preset/symbols/closed_loop_control.svg +5 -0
- data/tools/test/themes/preset/symbols/closed_loop_measuring.svg +6 -0
- data/tools/test/themes/preset/symbols/complex.svg +8 -0
- data/tools/test/themes/preset/symbols/critical.svg +4 -0
- data/tools/test/themes/preset/symbols/end.svg +3 -0
- data/tools/test/themes/preset/symbols/escape.svg +5 -0
- data/tools/test/themes/preset/symbols/event_end.svg +3 -0
- data/tools/test/themes/preset/symbols/loop.svg +5 -0
- data/tools/test/themes/preset/symbols/manipulate.svg +4 -0
- data/tools/test/themes/preset/symbols/otherwise.svg +5 -0
- data/tools/test/themes/preset/symbols/parallel.svg +5 -0
- data/tools/test/themes/preset/symbols/parallel_branch.svg +5 -0
- data/tools/test/themes/preset/symbols/parallel_branch_compact.svg +4 -0
- data/tools/test/themes/preset/symbols/parallel_branch_event.svg +14 -0
- data/tools/test/themes/preset/symbols/parallel_branch_normal.svg +5 -0
- data/tools/test/themes/preset/symbols/scripts.svg +4 -0
- data/tools/test/themes/preset/symbols/start.svg +3 -0
- data/tools/test/themes/preset/symbols/stop.svg +5 -0
- data/tools/test/themes/preset/symbols/terminate.svg +4 -0
- data/tools/test/themes/preset/theme.js +1287 -0
- data/tools/test/track.html +142 -0
- metadata +282 -2
@@ -0,0 +1,224 @@
|
|
1
|
+
<svg xmlns="http://www.w3.org/2000/svg" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
|
2
|
+
<defs>
|
3
|
+
<!--{{{--><style type="text/css"><![CDATA[
|
4
|
+
svg rect.injected {
|
5
|
+
fill: Highlight;
|
6
|
+
fill-opacity: 0.2;
|
7
|
+
}
|
8
|
+
|
9
|
+
svg path.ourline {
|
10
|
+
stroke-opacity: 0.9;
|
11
|
+
stroke:#000000;
|
12
|
+
stroke-width: 2;
|
13
|
+
fill: none;
|
14
|
+
}
|
15
|
+
svg rect.block {
|
16
|
+
stroke-width: 1;
|
17
|
+
stroke-dasharray: 3,5;
|
18
|
+
stroke: #000000;
|
19
|
+
fill: none;
|
20
|
+
}
|
21
|
+
svg circle.stand, svg rect.stand {
|
22
|
+
stroke:#000000;
|
23
|
+
stroke-width:2.06896567;
|
24
|
+
stroke-linecap:round;
|
25
|
+
stroke-linejoin:round;
|
26
|
+
stroke-miterlimit:4;
|
27
|
+
stroke-opacity:1;
|
28
|
+
stroke-dasharray:none;
|
29
|
+
}
|
30
|
+
svg text.normal {
|
31
|
+
font-size:20px;
|
32
|
+
font-style:normal;
|
33
|
+
font-variant:normal;
|
34
|
+
font-weight:bold;
|
35
|
+
font-stretch:normal;
|
36
|
+
text-align:center;
|
37
|
+
line-height:125%;
|
38
|
+
writing-mode:lr-tb;
|
39
|
+
text-anchor:middle;
|
40
|
+
color:#000000;
|
41
|
+
fill:#000000;
|
42
|
+
fill-opacity:1;
|
43
|
+
stroke:none;
|
44
|
+
font-family:Arial;
|
45
|
+
}
|
46
|
+
|
47
|
+
svg text.super {
|
48
|
+
font-size:11px;
|
49
|
+
font-style:normal;
|
50
|
+
font-variant:normal;
|
51
|
+
font-weight:bold;
|
52
|
+
font-stretch:normal;
|
53
|
+
text-align:center;
|
54
|
+
line-height:100%;
|
55
|
+
writing-mode:lr-tb;
|
56
|
+
text-anchor:left;
|
57
|
+
color:#000000;
|
58
|
+
fill:#000000;
|
59
|
+
fill-opacity:1;
|
60
|
+
stroke:none;
|
61
|
+
font-family:Arial;
|
62
|
+
}
|
63
|
+
svg tspan.active {
|
64
|
+
fill:#ff0000;
|
65
|
+
display: none;
|
66
|
+
}
|
67
|
+
svg tspan.vote {
|
68
|
+
fill:#73d216;
|
69
|
+
display: none;
|
70
|
+
}
|
71
|
+
svg tspan.colon {
|
72
|
+
display: none;
|
73
|
+
}
|
74
|
+
svg tspan.necessary {
|
75
|
+
display: inline;
|
76
|
+
}
|
77
|
+
|
78
|
+
svg text.normallarge {
|
79
|
+
font-size:25px;
|
80
|
+
font-style:normal;
|
81
|
+
font-variant:normal;
|
82
|
+
font-weight:bold;
|
83
|
+
font-stretch:normal;
|
84
|
+
text-align:center;
|
85
|
+
line-height:125%;
|
86
|
+
writing-mode:lr-tb;
|
87
|
+
text-anchor:middle;
|
88
|
+
color:#000000;
|
89
|
+
fill:#000000;
|
90
|
+
fill-opacity:1;
|
91
|
+
stroke:none;
|
92
|
+
font-family:Arial;
|
93
|
+
}
|
94
|
+
svg text.small {
|
95
|
+
font-size:14px;
|
96
|
+
font-style:normal;
|
97
|
+
font-variant:normal;
|
98
|
+
font-weight:bold;
|
99
|
+
font-stretch:normal;
|
100
|
+
text-align:center;
|
101
|
+
line-height:125%;
|
102
|
+
writing-mode:lr-tb;
|
103
|
+
text-anchor:middle;
|
104
|
+
color:#000000;
|
105
|
+
fill:#000000;
|
106
|
+
fill-opacity:1;
|
107
|
+
stroke:none;
|
108
|
+
font-family:Arial;
|
109
|
+
}
|
110
|
+
|
111
|
+
#arrow {
|
112
|
+
stroke: #000000;
|
113
|
+
stroke-width: 2;
|
114
|
+
fill: #000000;
|
115
|
+
}
|
116
|
+
]]></style><!--}}}-->
|
117
|
+
<symbol id="activity" class="clickable"><!-- {{{ -->
|
118
|
+
<rect x="1" y="1" width="28" height="28" class="stand"/>
|
119
|
+
</symbol><!-- }}} -->
|
120
|
+
<symbol id="activitymanipulate" class="clickable"><!-- {{{ -->
|
121
|
+
<rect x="1" y="1" width="28" height="28" class="stand"/>
|
122
|
+
<circle cx="28" cy="28" r="9" class="stand"/>
|
123
|
+
<text class="small" transform="translate(28, 32)">m</text>
|
124
|
+
</symbol><!-- }}} -->
|
125
|
+
<symbol id="call" class="clickable"><!-- {{{ -->
|
126
|
+
<circle cx="15" cy="15" r="14" class="stand"/>
|
127
|
+
<text class="normal" transform="translate(15, 21)">c</text>
|
128
|
+
</symbol><!-- }}} -->
|
129
|
+
<symbol id="manipulate" class="clickable"><!-- {{{ -->
|
130
|
+
<circle cx="15" cy="15" r="14" class="stand"/>
|
131
|
+
<text class="normal" transform="translate(15, 21)">m</text>
|
132
|
+
</symbol><!-- }}} -->
|
133
|
+
<symbol id="callmanipulate" class="clickable"><!-- {{{ -->
|
134
|
+
<circle cx="15" cy="15" r="14" class="stand"/>
|
135
|
+
<text class="normal" transform="translate(15, 21)">c</text>
|
136
|
+
<circle cx="28" cy="28" r="9" class="stand"/>
|
137
|
+
<text class="small" transform="translate(28, 32)">m</text>
|
138
|
+
</symbol><!-- }}} -->
|
139
|
+
<symbol id="choose" class="clickable"><!-- {{{ -->
|
140
|
+
<circle cx="15" cy="15" r="14" class="stand"/>
|
141
|
+
<text class="normal" transform="translate(15, 21)">σ</text>
|
142
|
+
</symbol><!-- }}} -->
|
143
|
+
<symbol id="alternative" class="clickable"><!-- {{{ -->
|
144
|
+
<circle cx="15" cy="15" r="14" class="standwithout"/>
|
145
|
+
<text class="normal" transform="translate(15, 20)">{..}</text>
|
146
|
+
</symbol><!-- }}} -->
|
147
|
+
<symbol id="otherwise" class="clickable"><!-- {{{ -->
|
148
|
+
<circle cx="15" cy="15" r="14" class="standwithout"/>
|
149
|
+
<text class="normal" transform="translate(15, 20)">{⁎}</text>
|
150
|
+
</symbol><!-- }}} -->
|
151
|
+
<symbol id="parallel" class="clickable"><!-- {{{ -->
|
152
|
+
<circle cx="15" cy="15" r="14" class="stand"/>
|
153
|
+
<text class="normal" transform="translate(15, 21)">||</text>
|
154
|
+
</symbol><!-- }}} -->
|
155
|
+
<symbol id="parallel_branch" class="clickable"><!-- {{{ -->
|
156
|
+
<circle cx="15" cy="15" r="14" class="stand"/>
|
157
|
+
<text class="normal" transform="translate(15, 21)">|</text>
|
158
|
+
</symbol><!-- }}} -->
|
159
|
+
<symbol id="critical" class="clickable"><!-- {{{ -->
|
160
|
+
<circle cx="15" cy="15" r="14" class="stand"/>
|
161
|
+
<text class="normal" transform="translate(15, 21)">⚠</text>
|
162
|
+
</symbol><!-- }}} -->
|
163
|
+
<symbol id="loop" class="clickable"><!-- {{{ -->
|
164
|
+
<circle cx="15" cy="15" r="14" class="stand"/>
|
165
|
+
<text class="normallarge" transform="translate(15, 24)">↺</text>
|
166
|
+
</symbol><!-- }}} -->
|
167
|
+
<symbol id="end"><!-- {{{ -->
|
168
|
+
<circle cx="15" cy="15" r="14" class="stand"/>
|
169
|
+
<circle cx="15" cy="15" r="11" class="stand"/>
|
170
|
+
<text class="normal" transform="translate(15, 21)">Ω</text>
|
171
|
+
</symbol><!-- }}} -->
|
172
|
+
<marker id="arrow" viewBox="0 0 10 10" refX="24" refY="5" orient="auto" markerUnits="strokeWidth" markerWidth="4.5" markerHeight="4.5">
|
173
|
+
<path d="m 2 2 l 6 3 l -6 3 z"/>
|
174
|
+
</marker>
|
175
|
+
</defs>
|
176
|
+
|
177
|
+
<g id="canvas">
|
178
|
+
<g transform="translate(0, 0)">
|
179
|
+
<text class="super" transform="translate(28.4, 8.4)"><tspan class="active necessary">0</tspan><tspan class="colon necessary">,</tspan><tspan class="vote necessary">0</tspan></text>
|
180
|
+
<use xlink:href="#call" style="fill: rgb(255, 255, 255); fill-opacity: 1;">
|
181
|
+
<title>a1</title>
|
182
|
+
</use>
|
183
|
+
</g>
|
184
|
+
<g transform="translate(45, 0)">
|
185
|
+
<text class="super" transform="translate(28.4, 8.4)"><tspan class="active necessary">0</tspan><tspan class="colon necessary">,</tspan><tspan class="vote necessary">0</tspan></text>
|
186
|
+
<use xlink:href="#manipulate" style="fill: rgb(255, 255, 255); fill-opacity: 1;">
|
187
|
+
<title>a2</title>
|
188
|
+
</use>
|
189
|
+
</g>
|
190
|
+
<g transform="translate(90, 0)">
|
191
|
+
<text class="super" transform="translate(28.4, 8.4)"><tspan class="active necessary">0</tspan><tspan class="colon necessary">,</tspan><tspan class="vote necessary">0</tspan></text>
|
192
|
+
<use xlink:href="#callmanipulate" style="fill: rgb(255, 255, 255); fill-opacity: 1;">
|
193
|
+
<title>a3</title>
|
194
|
+
</use>
|
195
|
+
</g>
|
196
|
+
|
197
|
+
<g transform="translate(0, 40)">
|
198
|
+
<text class="super" transform="translate(31.4, 8.4)"><tspan class="active necessary">0</tspan><tspan class="colon necessary">,</tspan><tspan class="vote necessary">0</tspan></text>
|
199
|
+
<use xlink:href="#activity" style="fill: rgb(255, 255, 255); fill-opacity: 1;">
|
200
|
+
<title>a</title>
|
201
|
+
</use>
|
202
|
+
<text class="normal" transform="translate(15, 21)">a</text>
|
203
|
+
</g>
|
204
|
+
<g transform="translate(50, 40)">
|
205
|
+
<text class="super" transform="translate(31.4, 8.4)"><tspan class="active necessary">0</tspan><tspan class="colon necessary">,</tspan><tspan class="vote necessary">0</tspan></text>
|
206
|
+
<use xlink:href="#activitymanipulate" style="fill: rgb(255, 255, 255); fill-opacity: 1;">
|
207
|
+
<title>b</title>
|
208
|
+
</use>
|
209
|
+
<text class="normal" transform="translate(15, 21)">b</text>
|
210
|
+
</g>
|
211
|
+
|
212
|
+
|
213
|
+
<use xlink:href="#choose" transform="translate(0,80)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
|
214
|
+
<use xlink:href="#alternative" transform="translate(40,80)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
|
215
|
+
<use xlink:href="#otherwise" transform="translate(80,80)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
|
216
|
+
<use xlink:href="#parallel" transform="translate(0,120)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
|
217
|
+
<use xlink:href="#parallel_branch" transform="translate(40,120)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
|
218
|
+
<use xlink:href="#critical" transform="translate(0,160)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
|
219
|
+
<use xlink:href="#loop" transform="translate(0,200)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
|
220
|
+
<use xlink:href="#end" transform="translate(0,240)" style="fill: rgb(255, 255, 255); fill-opacity: 1;"/>
|
221
|
+
|
222
|
+
<line x1="5" y1="280" x2="100" y2="320" stroke="black" stroke-width="3" marker-end="url(#arrow)"/>
|
223
|
+
</g>
|
224
|
+
</svg>
|
@@ -0,0 +1,264 @@
|
|
1
|
+
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:d="http://cpee.org/ns/description/1.0">
|
2
|
+
<xsl:output method="text"/>
|
3
|
+
<xsl:strip-space elements="*"/>
|
4
|
+
<xsl:variable name="myspacemultiplier">2</xsl:variable>
|
5
|
+
|
6
|
+
<xsl:template match="/">
|
7
|
+
<xsl:apply-templates select="//d:description"/>
|
8
|
+
</xsl:template>
|
9
|
+
|
10
|
+
<xsl:template match="//d:description">
|
11
|
+
<xsl:apply-templates>
|
12
|
+
<xsl:with-param name="myspace"><xsl:value-of select="-1*$myspacemultiplier"/></xsl:with-param>
|
13
|
+
</xsl:apply-templates>
|
14
|
+
</xsl:template>
|
15
|
+
|
16
|
+
<xsl:template match="*">
|
17
|
+
<xsl:param name="myspace"/>
|
18
|
+
<xsl:call-template name="print-space">
|
19
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
20
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
21
|
+
</xsl:call-template>
|
22
|
+
<xsl:if test="name()='call' or name()='manipulate'">
|
23
|
+
<xsl:choose>
|
24
|
+
<xsl:when test="@lay">
|
25
|
+
<xsl:text>activity [:</xsl:text>
|
26
|
+
<xsl:value-of select="@id"/>
|
27
|
+
<xsl:text>,</xsl:text>
|
28
|
+
<xsl:value-of select="@lay"/>
|
29
|
+
<xsl:text>]</xsl:text>
|
30
|
+
</xsl:when>
|
31
|
+
<xsl:otherwise>
|
32
|
+
<xsl:text>activity :</xsl:text>
|
33
|
+
<xsl:value-of select="@id"/>
|
34
|
+
</xsl:otherwise>
|
35
|
+
</xsl:choose>
|
36
|
+
</xsl:if>
|
37
|
+
<xsl:if test="name()='call'">
|
38
|
+
<xsl:text>, :call, :</xsl:text>
|
39
|
+
<xsl:value-of select="@endpoint"/>
|
40
|
+
<xsl:apply-templates select="d:parameters"/>
|
41
|
+
<xsl:apply-templates select="d:manipulate" mode="part-of-call">
|
42
|
+
<xsl:with-param name="myspace"><xsl:value-of select="$myspace"/></xsl:with-param>
|
43
|
+
</xsl:apply-templates>
|
44
|
+
<xsl:call-template name="print-newline"/>
|
45
|
+
</xsl:if>
|
46
|
+
<xsl:if test="name()='manipulate'">
|
47
|
+
<xsl:text>, :manipulate</xsl:text>
|
48
|
+
<xsl:call-template name="print-content">
|
49
|
+
<xsl:with-param name="myspace"><xsl:value-of select="$myspace"/></xsl:with-param>
|
50
|
+
</xsl:call-template>
|
51
|
+
<xsl:call-template name="print-newline"/>
|
52
|
+
</xsl:if>
|
53
|
+
<xsl:if test="name()='parallel'">
|
54
|
+
<xsl:text>parallel</xsl:text>
|
55
|
+
<xsl:if test="@wait">
|
56
|
+
<xsl:text> :wait => </xsl:text>
|
57
|
+
<xsl:value-of select="@wait"/>
|
58
|
+
</xsl:if>
|
59
|
+
<xsl:text> do</xsl:text>
|
60
|
+
<xsl:call-template name="print-newline"/>
|
61
|
+
<xsl:apply-templates>
|
62
|
+
<xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
63
|
+
</xsl:apply-templates>
|
64
|
+
<xsl:call-template name="print-space">
|
65
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
66
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
67
|
+
</xsl:call-template>
|
68
|
+
<xsl:text>end</xsl:text>
|
69
|
+
<xsl:call-template name="print-newline"/>
|
70
|
+
</xsl:if>
|
71
|
+
<xsl:if test="name()='loop'">
|
72
|
+
<xsl:text>loop </xsl:text>
|
73
|
+
<xsl:if test="@pre_test">
|
74
|
+
<xsl:text>pre_test{</xsl:text>
|
75
|
+
<xsl:value-of select="@pre_test"/>
|
76
|
+
<xsl:text>} </xsl:text>
|
77
|
+
</xsl:if>
|
78
|
+
<xsl:if test="@post_test">
|
79
|
+
<xsl:text>post_test{</xsl:text>
|
80
|
+
<xsl:value-of select="@post_test"/>
|
81
|
+
<xsl:text>} </xsl:text>
|
82
|
+
</xsl:if>
|
83
|
+
<xsl:text>do</xsl:text>
|
84
|
+
<xsl:call-template name="print-newline"/>
|
85
|
+
<xsl:apply-templates>
|
86
|
+
<xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
87
|
+
</xsl:apply-templates>
|
88
|
+
<xsl:call-template name="print-space">
|
89
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
90
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
91
|
+
</xsl:call-template>
|
92
|
+
<xsl:text>end</xsl:text>
|
93
|
+
<xsl:call-template name="print-newline"/>
|
94
|
+
</xsl:if>
|
95
|
+
<xsl:if test="name()='choose'">
|
96
|
+
<xsl:text>choose do</xsl:text>
|
97
|
+
<xsl:call-template name="print-newline"/>
|
98
|
+
<xsl:apply-templates>
|
99
|
+
<xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
100
|
+
</xsl:apply-templates>
|
101
|
+
<xsl:call-template name="print-space">
|
102
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
103
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
104
|
+
</xsl:call-template>
|
105
|
+
<xsl:text>end</xsl:text>
|
106
|
+
<xsl:call-template name="print-newline"/>
|
107
|
+
</xsl:if>
|
108
|
+
</xsl:template>
|
109
|
+
|
110
|
+
<xsl:template match="d:alternative">
|
111
|
+
<xsl:param name="myspace"/>
|
112
|
+
<xsl:call-template name="print-space">
|
113
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
114
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
115
|
+
</xsl:call-template>
|
116
|
+
<xsl:text>alternative </xsl:text>
|
117
|
+
<xsl:value-of select="@condition"/>
|
118
|
+
<xsl:text> do</xsl:text>
|
119
|
+
<xsl:call-template name="print-newline"/>
|
120
|
+
<xsl:apply-templates>
|
121
|
+
<xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
122
|
+
</xsl:apply-templates>
|
123
|
+
<xsl:call-template name="print-space">
|
124
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
125
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
126
|
+
</xsl:call-template>
|
127
|
+
<xsl:text>end</xsl:text>
|
128
|
+
<xsl:call-template name="print-newline"/>
|
129
|
+
</xsl:template>
|
130
|
+
|
131
|
+
<xsl:template match="d:otherwise">
|
132
|
+
<xsl:param name="myspace"/>
|
133
|
+
<xsl:call-template name="print-space">
|
134
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
135
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
136
|
+
</xsl:call-template>
|
137
|
+
<xsl:text>otherwise do</xsl:text>
|
138
|
+
<xsl:call-template name="print-newline"/>
|
139
|
+
<xsl:apply-templates>
|
140
|
+
<xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
141
|
+
</xsl:apply-templates>
|
142
|
+
<xsl:call-template name="print-space">
|
143
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
144
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
145
|
+
</xsl:call-template>
|
146
|
+
<xsl:text>end</xsl:text>
|
147
|
+
<xsl:call-template name="print-newline"/>
|
148
|
+
</xsl:template>
|
149
|
+
|
150
|
+
<xsl:template match="d:parallel_branch">
|
151
|
+
<xsl:param name="myspace"/>
|
152
|
+
<xsl:call-template name="print-space">
|
153
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
154
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
155
|
+
</xsl:call-template>
|
156
|
+
<xsl:text>parallel_branch</xsl:text>
|
157
|
+
<xsl:if test="@pass">
|
158
|
+
<xsl:text> </xsl:text>
|
159
|
+
<xsl:value-of select="@pass"/>
|
160
|
+
</xsl:if>
|
161
|
+
<xsl:text> do</xsl:text>
|
162
|
+
<xsl:if test="@local">
|
163
|
+
<xsl:text> |</xsl:text>
|
164
|
+
<xsl:value-of select="@local"/>
|
165
|
+
<xsl:text>|</xsl:text>
|
166
|
+
</xsl:if>
|
167
|
+
<xsl:call-template name="print-newline"/>
|
168
|
+
<xsl:apply-templates>
|
169
|
+
<xsl:with-param name="myspace"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
170
|
+
</xsl:apply-templates>
|
171
|
+
<xsl:call-template name="print-space">
|
172
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
173
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
174
|
+
</xsl:call-template>
|
175
|
+
<xsl:text>end</xsl:text>
|
176
|
+
<xsl:call-template name="print-newline"/>
|
177
|
+
</xsl:template>
|
178
|
+
|
179
|
+
<xsl:template match="d:parameters">
|
180
|
+
<xsl:apply-templates select="d:*" mode="parameter"/>
|
181
|
+
</xsl:template>
|
182
|
+
|
183
|
+
<xsl:template match="d:*" mode="parameter">
|
184
|
+
<xsl:text>, :</xsl:text>
|
185
|
+
<xsl:value-of select="name()"/>
|
186
|
+
<xsl:text> => </xsl:text>
|
187
|
+
<xsl:choose>
|
188
|
+
<xsl:when test="count(*) > 0">
|
189
|
+
<xsl:text>[</xsl:text>
|
190
|
+
<xsl:apply-templates select="d:*" mode="sub-parameter"/>
|
191
|
+
<xsl:text>]</xsl:text>
|
192
|
+
</xsl:when>
|
193
|
+
<xsl:otherwise>
|
194
|
+
<xsl:text>"</xsl:text>
|
195
|
+
<xsl:value-of select="text()"/>
|
196
|
+
<xsl:text>"</xsl:text>
|
197
|
+
</xsl:otherwise>
|
198
|
+
</xsl:choose>
|
199
|
+
</xsl:template>
|
200
|
+
|
201
|
+
<xsl:template match="d:*" mode="sub-parameter">
|
202
|
+
<xsl:text> { :</xsl:text>
|
203
|
+
<xsl:value-of select="name()"/>
|
204
|
+
<xsl:text> => </xsl:text>
|
205
|
+
<xsl:value-of select="text()"/>
|
206
|
+
<xsl:text> }</xsl:text>
|
207
|
+
<xsl:choose>
|
208
|
+
<xsl:when test=". = ../*[last()]">
|
209
|
+
<xsl:text> </xsl:text>
|
210
|
+
</xsl:when>
|
211
|
+
<xsl:otherwise>
|
212
|
+
<xsl:text>,</xsl:text>
|
213
|
+
</xsl:otherwise>
|
214
|
+
</xsl:choose>
|
215
|
+
</xsl:template>
|
216
|
+
|
217
|
+
<xsl:template match="d:manipulate" mode="part-of-call">
|
218
|
+
<xsl:param name="myspace"/>
|
219
|
+
<xsl:call-template name="print-content">
|
220
|
+
<xsl:with-param name="myspace"><xsl:value-of select="$myspace"/></xsl:with-param>
|
221
|
+
</xsl:call-template>
|
222
|
+
</xsl:template>
|
223
|
+
|
224
|
+
<xsl:template name="print-content">
|
225
|
+
<xsl:param name="myspace"/>
|
226
|
+
<xsl:if test="text()">
|
227
|
+
<xsl:text> do </xsl:text>
|
228
|
+
<xsl:if test="@output">
|
229
|
+
<xsl:text>|</xsl:text>
|
230
|
+
<xsl:value-of select="@output"/>
|
231
|
+
<xsl:text>|</xsl:text>
|
232
|
+
</xsl:if>
|
233
|
+
<xsl:call-template name="print-newline"/>
|
234
|
+
<xsl:value-of select="text()"/>
|
235
|
+
<xsl:call-template name="print-newline"/>
|
236
|
+
<xsl:call-template name="print-space">
|
237
|
+
<xsl:with-param name="i">1</xsl:with-param>
|
238
|
+
<xsl:with-param name="count"><xsl:value-of select="$myspace+$myspacemultiplier"/></xsl:with-param>
|
239
|
+
</xsl:call-template>
|
240
|
+
<xsl:text>end</xsl:text>
|
241
|
+
</xsl:if>
|
242
|
+
</xsl:template>
|
243
|
+
|
244
|
+
<xsl:template name="print-space">
|
245
|
+
<xsl:param name="i"/>
|
246
|
+
<xsl:param name="count"/>
|
247
|
+
<xsl:if test="$i <= $count">
|
248
|
+
<xsl:text> </xsl:text>
|
249
|
+
<xsl:call-template name="print-space">
|
250
|
+
<xsl:with-param name="i">
|
251
|
+
<xsl:value-of select="$i + 1"/>
|
252
|
+
</xsl:with-param>
|
253
|
+
<xsl:with-param name="count">
|
254
|
+
<xsl:value-of select="$count"/>
|
255
|
+
</xsl:with-param>
|
256
|
+
</xsl:call-template>
|
257
|
+
</xsl:if>
|
258
|
+
</xsl:template>
|
259
|
+
<xsl:template name="print-newline">
|
260
|
+
<xsl:text>
|
261
|
+
</xsl:text>
|
262
|
+
</xsl:template>
|
263
|
+
|
264
|
+
</xsl:stylesheet>
|