1 <?xml version="1.0"?>
\r
3 <!DOCTYPE MODE SYSTEM "xmode.dtd">
\r
6 Relational View (rview) mode by Will Sargent <wsargent@atg.com>
\r
10 <PROPERTY NAME="indentOpenBrackets" VALUE="{" />
\r
11 <PROPERTY NAME="indentCloseBrackets" VALUE="}" />
\r
12 <PROPERTY NAME="commentStart" VALUE="/*" />
\r
13 <PROPERTY NAME="commentEnd" VALUE="*/" />
\r
14 <PROPERTY NAME="lineComment" VALUE="//" />
\r
18 Unicode escapes are allowed in identifiers.
\r
19 Ignoring case is bad.
\r
20 Digits may be returned from functions.
\r
22 <RULES ESCAPE="\" IGNORE_CASE="FALSE" HIGHLIGHT_DIGITS="TRUE">
\r
23 <SEQ TYPE="COMMENT1">/**/</SEQ>
\r
25 <!-- Javadoc comment -->
\r
26 <SPAN TYPE="COMMENT2">
\r
31 <!-- Java comment (C style) -->
\r
32 <SPAN TYPE="COMMENT1">
\r
37 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE" DELEGATE="RVIEWSTMT">
\r
42 <SEQ TYPE="OPERATOR">}</SEQ>
\r
43 <SEQ TYPE="OPERATOR">{</SEQ>
\r
44 <SEQ TYPE="OPERATOR">=</SEQ>
\r
46 <!-- Function calls -->
\r
47 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
\r
48 <SEQ TYPE="OPERATOR">)</SEQ>
\r
50 <EOL_SPAN TYPE="COMMENT2">//</EOL_SPAN>
\r
55 Keywords (WAY more than I thought there were, please
\r
56 e-mail me if I've left one out).
\r
58 <KEYWORD1>unique</KEYWORD1>
\r
59 <KEYWORD1>relationalview</KEYWORD1>
\r
60 <KEYWORD1>class</KEYWORD1>
\r
62 <KEYWORD1>rowmap</KEYWORD1>
\r
63 <KEYWORD1>table</KEYWORD1>
\r
64 <KEYWORD1>function</KEYWORD1>
\r
65 <KEYWORD1>subview</KEYWORD1>
\r
66 <KEYWORD1>query</KEYWORD1>
\r
68 <KEYWORD1>join</KEYWORD1>
\r
69 <KEYWORD1>jointype</KEYWORD1>
\r
70 <KEYWORD1>leftouter</KEYWORD1>
\r
71 <KEYWORD1>rightouter</KEYWORD1>
\r
73 <KEYWORD1>switch</KEYWORD1>
\r
74 <KEYWORD1>case</KEYWORD1>
\r
76 <KEYWORD1>sql</KEYWORD1>
\r
77 <KEYWORD1>constraints</KEYWORD1>
\r
78 <KEYWORD1>where</KEYWORD1>
\r
79 <KEYWORD1>orderby</KEYWORD1>
\r
80 <KEYWORD1>return</KEYWORD1>
\r
81 <KEYWORD1>distinct</KEYWORD1>
\r
86 <KEYWORD1>allow</KEYWORD1>
\r
87 <KEYWORD1>delete</KEYWORD1>
\r
88 <!-- also used in update function -->
\r
89 <KEYWORD1>update</KEYWORD1>
\r
90 <KEYWORD1>select</KEYWORD1>
\r
91 <KEYWORD1>insert</KEYWORD1>
\r
93 <!-- We're allowed to return primitive types -->
\r
94 <KEYWORD3>boolean</KEYWORD3>
\r
95 <KEYWORD3>byte</KEYWORD3>
\r
96 <KEYWORD3>char</KEYWORD3>
\r
97 <KEYWORD3>double</KEYWORD3>
\r
98 <KEYWORD3>float</KEYWORD3>
\r
99 <KEYWORD3>int</KEYWORD3>
\r
100 <KEYWORD3>long</KEYWORD3>
\r
101 <KEYWORD3>short</KEYWORD3>
\r
103 <KEYWORD1>useCallableStatement</KEYWORD1>
\r
106 JDBC mapping statements (must be UPPERCASE)
\r
108 <KEYWORD3>CHAR</KEYWORD3>
\r
109 <KEYWORD3>VARCHAR</KEYWORD3>
\r
110 <KEYWORD3>LONGVARCHAR</KEYWORD3>
\r
111 <KEYWORD3>NUMERIC</KEYWORD3>
\r
112 <KEYWORD3>DECIMAL</KEYWORD3>
\r
113 <KEYWORD3>BIT</KEYWORD3>
\r
114 <KEYWORD3>TINYINT</KEYWORD3>
\r
115 <KEYWORD3>SMALLINT</KEYWORD3>
\r
116 <KEYWORD3>INTEGER</KEYWORD3>
\r
117 <KEYWORD3>BIGINT</KEYWORD3>
\r
118 <KEYWORD3>REAL</KEYWORD3>
\r
119 <KEYWORD3>FLOAT</KEYWORD3>
\r
120 <KEYWORD3>DOUBLE</KEYWORD3>
\r
121 <KEYWORD3>BINARY</KEYWORD3>
\r
122 <KEYWORD3>VARBINARY</KEYWORD3>
\r
123 <KEYWORD3>LONGVARBINARY</KEYWORD3>
\r
124 <KEYWORD3>DATE</KEYWORD3>
\r
125 <KEYWORD3>TIME</KEYWORD3>
\r
126 <KEYWORD3>TIMESTAMP</KEYWORD3>
\r
131 Everything that happens in between quotes happens here.
\r
133 <RULES SET="RVIEWSTMT" ESCAPE="\" DEFAULT="LITERAL1"
\r
134 HIGHLIGHT_DIGITS="TRUE" IGNORE_CASE="TRUE">
\r
135 <!-- Allow quoting for characters. -->
\r
136 <SPAN TYPE="LITERAL1" NO_LINE_BREAK="TRUE">
\r
142 Standard arithmetic
\r
144 <SEQ TYPE="OPERATOR">+</SEQ>
\r
145 <SEQ TYPE="OPERATOR">-</SEQ>
\r
146 <SEQ TYPE="OPERATOR">/</SEQ>
\r
147 <SEQ TYPE="OPERATOR">*</SEQ>
\r
148 <SEQ TYPE="OPERATOR">=</SEQ>
\r
153 <SEQ TYPE="OPERATOR">>=</SEQ>
\r
154 <SEQ TYPE="OPERATOR"><=</SEQ>
\r
155 <SEQ TYPE="OPERATOR">></SEQ>
\r
156 <SEQ TYPE="OPERATOR"><</SEQ>
\r
159 For callable statements, { } must be used.
\r
161 <SEQ TYPE="OPERATOR">}</SEQ>
\r
162 <SEQ TYPE="OPERATOR">{</SEQ>
\r
165 Escape colons for full tables
\r
167 <SEQ TYPE="NULL">::</SEQ>
\r
169 <!-- Mark most colons as a label indicator -->
\r
170 <MARK_FOLLOWING TYPE="LABEL">:</MARK_FOLLOWING>
\r
172 <!-- Function calls (these can happen even inside quotes) -->
\r
173 <MARK_PREVIOUS TYPE="FUNCTION" MATCH_TYPE="OPERATOR">(</MARK_PREVIOUS>
\r
174 <SEQ TYPE="OPERATOR">)</SEQ>
\r
177 <KEYWORD1>SELECT</KEYWORD1>
\r
178 <KEYWORD1>FROM</KEYWORD1>
\r
179 <KEYWORD1>WHERE</KEYWORD1>
\r
180 <KEYWORD1>AND</KEYWORD1>
\r
181 <KEYWORD1>NOT</KEYWORD1>
\r
182 <KEYWORD1>IN</KEYWORD1>
\r
183 <KEYWORD1>BETWEEN</KEYWORD1>
\r
184 <KEYWORD1>UPDATE</KEYWORD1>
\r
185 <KEYWORD1>SET</KEYWORD1>
\r
187 <KEYWORD1>call</KEYWORD1>
\r
188 <KEYWORD1>desc</KEYWORD1>
\r
191 It's possible to do casting to a particular SQL
\r
192 type, so include the JDBC types here
\r
194 <KEYWORD3>CHAR</KEYWORD3>
\r
195 <KEYWORD3>VARCHAR</KEYWORD3>
\r
196 <KEYWORD3>LONGVARCHAR</KEYWORD3>
\r
197 <KEYWORD3>NUMERIC</KEYWORD3>
\r
198 <KEYWORD3>DECIMAL</KEYWORD3>
\r
199 <KEYWORD3>BIT</KEYWORD3>
\r
200 <KEYWORD3>TINYINT</KEYWORD3>
\r
201 <KEYWORD3>SMALLINT</KEYWORD3>
\r
202 <KEYWORD3>INTEGER</KEYWORD3>
\r
203 <KEYWORD3>BIGINT</KEYWORD3>
\r
204 <KEYWORD3>REAL</KEYWORD3>
\r
205 <KEYWORD3>FLOAT</KEYWORD3>
\r
206 <KEYWORD3>DOUBLE</KEYWORD3>
\r
207 <KEYWORD3>BINARY</KEYWORD3>
\r
208 <KEYWORD3>VARBINARY</KEYWORD3>
\r
209 <KEYWORD3>LONGVARBINARY</KEYWORD3>
\r
210 <KEYWORD3>DATE</KEYWORD3>
\r
211 <KEYWORD3>TIME</KEYWORD3>
\r
212 <KEYWORD3>TIMESTAMP</KEYWORD3>
\r