source: cats/shared/urn.org.isocat.sloot/trunk/tools/pp-dpml.dpml @ 3092

Last change on this file since 3092 was 3092, checked in by mwindhouwer, 11 years ago
  • added active:sloot.dpml a DPML preprocessor, currently supports:
    • wrap debug statements in

<sloot-debug>...</sloot-debug>

and en/disable them using a debug="true|false" attribute on the root element

  • profile a section of DPML by wrapping it in

<sloot-profile name="...">...</sloot-profile>

and en/disable it using a profile="true|false" attribute on the root element

  • made debugging of active:sloot.xpath2 and active:sloot.xquery optional
File size: 3.7 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<sequence>
3        <literal assignment="debug" type="boolean">true</literal>
4        <!-- convenience wrapper around active:dpml -->
5        <if>
6                <cond>
7                        <request>
8                                <identifier>this:debug</identifier>
9                        </request>
10                </cond>
11                <then>
12                        <request>
13                                <verb>SINK</verb>
14                                <identifier>res:/debug/sloot.dpml.operator.xml</identifier>
15                                <argument name="primary">arg:sloot-operator</argument>
16                        </request>
17                </then>
18        </if>
19        <request assignment="script">
20                <identifier>active:xslt2</identifier>
21                <argument name="operand">arg:sloot-operator</argument>
22                <argument name="operator">res:/tools/pp-dpml.xsl</argument>
23        </request>
24        <if>
25                <cond>
26                        <request>
27                                <identifier>this:debug</identifier>
28                        </request>
29                </cond>
30                <then>
31                        <request>
32                                <verb>SINK</verb>
33                                <identifier>res:/debug/sloot.dpml.script.xml</identifier>
34                                <argument name="primary">this:script</argument>
35                        </request>
36                </then>
37        </if>
38        <!-- The DPML request handler can't take a variable for the verb -->
39        <switch>
40                <cond>
41                        <request>
42                                <identifier>active:sloot.xpath2</identifier>
43                                <argument name="operand">arg:verb</argument>
44                                <argument name="operator">
45                                        <literal type="string">boolean(.='SOURCE')</literal>
46                                </argument>
47                        </request>
48                </cond>
49                <then>
50                        <request assignment="response">
51                                <verb>SOURCE</verb>
52                                <identifier>active:dpml</identifier>
53                                <argument name="operator">this:script</argument>
54                                <varargs/>
55                        </request>
56                </then>
57                <cond>
58                        <request>
59                                <identifier>active:sloot.xpath2</identifier>
60                                <argument name="operand">arg:verb</argument>
61                                <argument name="operator">
62                                        <literal type="string">boolean(.='SINK')</literal>
63                                </argument>
64                        </request>
65                </cond>
66                <then>
67                        <request assignment="response">
68                                <verb>SINK</verb>
69                                <identifier>active:dpml</identifier>
70                                <argument name="operator">this:script</argument>
71                                <varargs/>
72                        </request>
73                </then>
74                <cond>
75                        <request>
76                                <identifier>active:sloot.xpath2</identifier>
77                                <argument name="operand">arg:verb</argument>
78                                <argument name="operator">
79                                        <literal type="string">boolean(.='EXISTS')</literal>
80                                </argument>
81                        </request>
82                </cond>
83                <then>
84                        <request assignment="response">
85                                <verb>EXISTS</verb>
86                                <identifier>active:dpml</identifier>
87                                <argument name="operator">this:script</argument>
88                                <varargs/>
89                        </request>
90                </then>
91                <cond>
92                        <request>
93                                <identifier>active:sloot.xpath2</identifier>
94                                <argument name="operand">arg:verb</argument>
95                                <argument name="operator">
96                                        <literal type="string">boolean(.='NEW')</literal>
97                                </argument>
98                        </request>
99                </cond>
100                <then>
101                        <request assignment="response">
102                                <verb>NEW</verb>
103                                <identifier>active:dpml</identifier>
104                                <argument name="operator">this:script</argument>
105                                <varargs/>
106                        </request>
107                </then>
108                <cond>
109                        <request>
110                                <identifier>active:sloot.xpath2</identifier>
111                                <argument name="operand">arg:verb</argument>
112                                <argument name="operator">
113                                        <literal type="string">boolean(.='DELETE')</literal>
114                                </argument>
115                        </request>
116                </cond>
117                <then>
118                        <request assignment="response">
119                                <verb>DELETE</verb>
120                                <identifier>active:dpml</identifier>
121                                <argument name="operator">this:script</argument>
122                                <varargs/>
123                        </request>
124                </then>
125                <otherwise>
126                        <throw>
127                                <id>
128                                        <literal type="string">UNSUPPORTED_NK_VERB</literal>
129                                </id>
130                                <message>
131                                        <literal type="string">sloot.dpml: unsupported verb!</literal>
132                                </message>
133                        </throw>
134                </otherwise>
135        </switch>
136        <if>
137                <cond>
138                        <request>
139                                <identifier>this:debug</identifier>
140                        </request>
141                </cond>
142                <then>
143                        <request>
144                                <verb>SINK</verb>
145                                <identifier>res:/debug/sloot.dpml.result.xml</identifier>
146                                <argument name="primary">this:response</argument>
147                        </request>
148                </then>
149        </if>
150</sequence>
Note: See TracBrowser for help on using the repository browser.