source: cats/SCHEMAcat/trunk/urn.org.isocat.schemacat.access.data/access/schemaMetadata.dpml @ 4205

Last change on this file since 4205 was 4205, checked in by andmor, 10 years ago

Handle the case when license node does not exist.

File size: 5.6 KB
Line 
1<?xml version="1.0" encoding="UTF-8"?>
2<sequence debug="false">
3    <sloot-debug>
4        <request>
5            <verb>SINK</verb>
6            <identifier>res:/debug/org.isocat.schemacat.access.data.schema.metadata.unresolved-arguments.xml</identifier>
7            <argument name="primary">arg:arguments</argument>
8        </request>
9    </sloot-debug>
10    <!-- resolve the references in arg:arguments -->
11    <request assignment="arguments">
12        <identifier>active:sloot.dpml.resolve-arguments</identifier>
13        <argument name="primary">arg:arguments</argument>
14    </request>
15    <request assignment="user">
16        <!-- requesting scratch:user in here seems expire this response -->
17        <header name="exclude-dependencies">
18            <literal type="boolean">true</literal>
19        </header>
20        <identifier>scratch:user</identifier>
21    </request>
22    <sloot-debug>
23        <request>
24            <verb>SINK</verb>
25            <identifier>res:/debug/org.isocat.schemacat.access.data.schema.metadata.resolved-arguments.xml</identifier>
26            <argument name="primary">this:arguments</argument>
27        </request>
28        <log>
29            <level>INFO</level>
30            <message>
31                <literal type="string">[access.data] Schema metadata accessor verb: [%1] with arguments:&#10;[&#10;%2]</literal>
32            </message>
33            <param>arg:verb</param>
34            <param>this:arguments</param>
35        </log>
36    </sloot-debug>
37    <switch assignment="response">
38        <cond method="identity">
39            <request>
40                <identifier>active:sloot.xpath2</identifier>
41                <argument name="operand">arg:verb</argument>
42                <argument name="operator">
43                    <literal type="string">boolean(.='NEW')</literal>
44                </argument>
45            </request>
46        </cond>
47        <then>
48            <sequence></sequence>
49        </then>
50        <cond method="identity">
51            <request>
52                <identifier>active:sloot.xpath2</identifier>
53                <argument name="operand">arg:verb</argument>
54                <argument name="operator">
55                    <literal type="string">boolean(.='EXISTS')</literal>
56                </argument>
57            </request>
58        </cond>
59        <then>
60            <sequence></sequence>
61        </then>
62        <cond method="identity">
63            <request>
64                <identifier>active:sloot.xpath2</identifier>
65                <argument name="operand">arg:verb</argument>
66                <argument name="operator">
67                    <literal type="string">boolean(.='SINK')</literal>
68                </argument>
69            </request>
70        </cond>
71        <then>
72            <sequence></sequence>
73        </then>
74        <cond method="identity">
75            <request>
76                <identifier>active:sloot.xpath2</identifier>
77                <argument name="operand">arg:verb</argument>
78                <argument name="operator">
79                    <literal type="string">boolean(.='SOURCE')</literal>
80                </argument>
81            </request>
82        </cond>
83        <then>
84            <sequence>
85                <log>
86                    <level>INFO</level>
87                    <message>
88                        <literal type="string">[access.data] [%1] requested schema metadata with id: [%2]</literal>
89                    </message>
90                    <param>
91                        <request>
92                            <identifier>active:xpath2</identifier>
93                            <argument name="operand">this:user</argument>
94                            <argument name="operator">
95                                <literal type="string">string(/sc:user/@xml:id)</literal>
96                            </argument>
97                        </request>
98                    </param>
99                    <param>arg:id</param>
100                </log>
101                <request assignment="response">
102                    <header name="exclude-dependencies">
103                        <literal type="boolean">true</literal>
104                    </header>
105                    <identifier>active:org.basex.query</identifier>
106                    <argument name="operator">
107                        <literal type="xml">
108                            <query xmlns:sc="http://www.isocat.org/ns/schemacat">
109                                copy $schema := /sc:schema[@xml:id=$args//id]
110                                modify (if (exists($schema/sc:license)) then replace node $schema/sc:license with /sc:licenses/sc:license[@xml:id eq $schema/sc:license/@ref] else ())
111                                return $schema
112                            </query>
113                        </literal>
114                    </argument>
115                    <argument name="args">this:arguments</argument>
116                </request>
117            </sequence>
118        </then>
119    </switch>
120    <sloot-debug>
121        <log>
122            <level>INFO</level>
123            <message>
124                <literal type="string">[access.data] Schema metadata accessor response:&#xA;[&#xA;%1&#xA;]</literal>
125            </message>
126            <param>
127                <request>
128                    <identifier>response-string</identifier>
129                    <verb>TRANSREPT</verb>
130                    <representation>java.lang.String</representation>
131                    <argument name="primary">this:response</argument>
132                </request>
133            </param>
134        </log>
135        <request>
136            <verb>SINK</verb>
137            <identifier>res:/debug/org.isocat.schemacat.access.data.schema.metadata.result.xml</identifier>
138            <argument name="primary">this:response</argument>
139        </request>
140    </sloot-debug>
141</sequence>
Note: See TracBrowser for help on using the repository browser.