1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
<!--
Copyright 2009-2017 the original author or authors.
Licensed under the Apache License, Version 2.0 (the "License");
you may not use it file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<!ELEMENT mapper (sql* | insert* | update* | delete* | select* )+>
<!ATTLIST mapper
>
<!ELEMENT arg EMPTY>
<!ATTLIST arg
type CDATA #IMPLIED
column CDATA #IMPLIED
select CDATA #IMPLIED
name CDATA #IMPLIED
>
<!ELEMENT typeAlias EMPTY>
<!ATTLIST typeAlias
alias CDATA #REQUIRED
type CDATA #REQUIRED
>
<!ELEMENT select (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ATTLIST select
id CDATA #REQUIRED
>
<!ELEMENT insert (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ATTLIST insert
id CDATA #REQUIRED
<!-- not support for now-->
<!-- useGeneratedKeys (true|false) #IMPLIED-->
>
<!ELEMENT update (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ATTLIST update
id CDATA #REQUIRED
>
<!ELEMENT delete (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ATTLIST delete
id CDATA #REQUIRED
>
<!-- include file or sql element,for example:
<include refid="{refid}"></include>
<include refid="file://{xml_file_path}?refid={refid}"></include>
-->
<!ELEMENT include ()?>
<!ATTLIST include
refid CDATA #REQUIRED
>
<!ELEMENT bind EMPTY>
<!ATTLIST bind
name CDATA #REQUIRED
value CDATA #REQUIRED
>
<!ELEMENT sql (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ATTLIST sql
id CDATA #REQUIRED
lang CDATA #IMPLIED
>
<!ELEMENT trim (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ATTLIST trim
prefix CDATA #IMPLIED
prefixOverrides CDATA #IMPLIED
suffix CDATA #IMPLIED
suffixOverrides CDATA #IMPLIED
>
<!ELEMENT where (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ELEMENT set (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ELEMENT foreach (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ATTLIST foreach
collection CDATA #REQUIRED
item CDATA #IMPLIED
index CDATA #IMPLIED
open CDATA #IMPLIED
close CDATA #IMPLIED
separator CDATA #IMPLIED
>
<!ELEMENT choose (when* , otherwise?)>
<!ELEMENT when (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ATTLIST when
test CDATA #REQUIRED
>
<!ELEMENT otherwise (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ELEMENT if (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ATTLIST if
test CDATA #REQUIRED
>
<!ELEMENT continue (#PCDATA | include | trim | where | set | foreach | choose | if | bind | continue)*>
<!ATTLIST continue>