nhibernate 2.0.1.4000 → 2.1.0.4000

Sign up to get free protection for your applications and to get access to all the features.
Files changed (40) hide show
  1. data/docs/Antlr - Directory listing for -download-CSharp.url +5 -0
  2. data/docs/Configuration_Templates/FireBird.cfg.xml +31 -0
  3. data/docs/Configuration_Templates/MSSQL.cfg.xml +22 -0
  4. data/docs/Configuration_Templates/MySql.cfg.xml +17 -0
  5. data/docs/Configuration_Templates/Oracle.cfg.xml +19 -0
  6. data/docs/Configuration_Templates/PostgreSQL.cfg.xml +16 -0
  7. data/docs/Configuration_Templates/SQLite.cfg.xml +17 -0
  8. data/docs/HowInstall.txt +7 -0
  9. data/docs/LinFu.License.txt +167 -0
  10. data/docs/gfdl.txt +356 -0
  11. data/docs/{NHibernate.license.txt → lgpl.txt} +0 -0
  12. data/docs/nhibernate-configuration.xsd +12 -0
  13. data/docs/nhibernate-mapping.xsd +1312 -925
  14. data/docs/readme.html +60 -0
  15. data/docs/releasenotes.txt +418 -0
  16. data/lib/Required_Bins/Antlr3.Runtime.dll +0 -0
  17. data/lib/Required_Bins/Iesi.Collections.dll +0 -0
  18. data/lib/{Iesi.Collections.xml → Required_Bins/Iesi.Collections.xml} +16 -0
  19. data/lib/Required_Bins/NHibernate.Linq.dll +0 -0
  20. data/lib/Required_Bins/NHibernate.Linq.xml +725 -0
  21. data/lib/Required_Bins/NHibernate.dll +0 -0
  22. data/lib/{NHibernate.xml → Required_Bins/NHibernate.xml} +19837 -16023
  23. data/lib/Required_For_LazyLoading/Castle/NHibernate.ByteCode.Castle.dll +0 -0
  24. data/lib/Required_For_LazyLoading/Castle/NHibernate.ByteCode.Castle.xml +40 -0
  25. data/lib/Required_For_LazyLoading/Choose_Only_One.txt +2 -0
  26. data/lib/Required_For_LazyLoading/LinFu/LinFu.DynamicProxy.dll +0 -0
  27. data/lib/Required_For_LazyLoading/LinFu/NHibernate.ByteCode.LinFu.dll +0 -0
  28. data/lib/Required_For_LazyLoading/LinFu/NHibernate.ByteCode.LinFu.xml +8 -0
  29. data/lib/Required_For_LazyLoading/Spring/Common.Logging.dll +0 -0
  30. data/lib/Required_For_LazyLoading/Spring/NHibernate.ByteCode.Spring.dll +0 -0
  31. data/lib/Required_For_LazyLoading/Spring/NHibernate.ByteCode.Spring.xml +22 -0
  32. data/lib/Required_For_LazyLoading/Spring/Spring.Aop.dll +0 -0
  33. data/lib/Required_For_LazyLoading/Spring/Spring.Aop.xml +11277 -0
  34. data/lib/Required_For_LazyLoading/Spring/Spring.Core.dll +0 -0
  35. data/lib/Required_For_LazyLoading/Spring/Spring.Core.xml +45248 -0
  36. data/lib/Required_For_LazyLoading/Spring/antlr.runtime.dll +0 -0
  37. metadata +42 -15
  38. data/docs/Iesi.Collections.license.txt +0 -9
  39. data/lib/Iesi.Collections.dll +0 -0
  40. data/lib/NHibernate.dll +0 -0
@@ -1,337 +1,144 @@
1
1
  <xs:schema targetNamespace="urn:nhibernate-mapping-2.2" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="urn:nhibernate-mapping-2.2" elementFormDefault="qualified" attributeFormDefault="unqualified">
2
- <xs:simpleType name="polymorphismType">
3
- <xs:annotation>
4
- <xs:documentation>Types of polymorphism</xs:documentation>
5
- </xs:annotation>
6
- <xs:restriction base="xs:string">
7
- <xs:enumeration value="implicit" />
8
- <xs:enumeration value="explicit" />
9
- </xs:restriction>
10
- </xs:simpleType>
11
- <xs:simpleType name="outerJoinStrategy">
12
- <xs:restriction base="xs:string">
13
- <xs:enumeration value="auto" />
14
- <xs:enumeration value="true" />
15
- <xs:enumeration value="false" />
16
- </xs:restriction>
17
- </xs:simpleType>
18
- <xs:simpleType name="fetchMode">
19
- <xs:restriction base="xs:string">
20
- <xs:enumeration value="select" />
21
- <!-- equivalent to outer-join="false" -->
22
- <xs:enumeration value="join" />
23
- <!-- equivalent to outer-join="true" -->
24
- </xs:restriction>
25
- </xs:simpleType>
26
- <xs:simpleType name="collectionFetchMode">
27
- <xs:restriction base="xs:string">
28
- <xs:enumeration value="select" />
29
- <!-- equivalent to outer-join="false" -->
30
- <xs:enumeration value="join" />
31
- <!-- equivalent to outer-join="true" -->
32
- <xs:enumeration value="subselect" />
33
- </xs:restriction>
34
- </xs:simpleType>
35
- <xs:simpleType name="flushMode">
36
- <xs:restriction base="xs:string">
37
- <xs:enumeration value="auto" />
38
- <xs:enumeration value="never" />
39
- <!-- <xs:enumeration value="always" /> - not implemented yet -->
40
- <xs:enumeration value="always" />
41
- </xs:restriction>
42
- </xs:simpleType>
43
- <xs:simpleType name="optimisticLockMode">
44
- <xs:restriction base="xs:string">
45
- <xs:enumeration value="none" />
46
- <xs:enumeration value="version" />
47
- <xs:enumeration value="dirty" />
48
- <xs:enumeration value="all" />
49
- </xs:restriction>
50
- </xs:simpleType>
51
- <xs:simpleType name="lockMode">
52
- <xs:restriction base="xs:string">
53
- <xs:enumeration value="none" />
54
- <xs:enumeration value="read" />
55
- <xs:enumeration value="upgrade" />
56
- <xs:enumeration value="upgrade-nowait" />
57
- <xs:enumeration value="write" />
58
- </xs:restriction>
59
- </xs:simpleType>
60
- <xs:simpleType name="laziness">
61
- <xs:restriction base="xs:string">
62
- <xs:enumeration value="false" />
63
- <xs:enumeration value="proxy" />
64
- </xs:restriction>
65
- </xs:simpleType>
66
- <xs:simpleType name="versionGeneration">
67
- <xs:restriction base="xs:string">
68
- <xs:enumeration value="never" />
69
- <xs:enumeration value="always" />
70
- </xs:restriction>
71
- </xs:simpleType>
72
- <xs:simpleType name="propertyGeneration">
73
- <xs:restriction base="xs:string">
74
- <xs:enumeration value="never" />
75
- <xs:enumeration value="insert" />
76
- <xs:enumeration value="always" />
77
- </xs:restriction>
78
- </xs:simpleType>
79
- <!--
80
- This is the same as laziness for now, but H3.2 allows lazy="no-proxy"
81
- in some elements but not in others, so separate types are used.
82
- -->
83
- <xs:simpleType name="restrictedLaziness">
84
- <xs:restriction base="xs:string">
85
- <xs:enumeration value="false" />
86
- <xs:enumeration value="proxy" />
87
- </xs:restriction>
88
- </xs:simpleType>
89
- <xs:attributeGroup name="baseClassAttributes">
90
- <xs:attribute name="name" type="xs:string" use="required" />
91
- <xs:attribute name="proxy" type="xs:string" use="optional">
92
- <xs:annotation>
93
- <xs:documentation>default: no proxy interface</xs:documentation>
94
- </xs:annotation>
95
- </xs:attribute>
96
- <xs:attribute name="lazy" type="xs:boolean" use="optional">
97
- <xs:annotation>
98
- <xs:documentation>Enable the lazy loading of this class in associations</xs:documentation>
99
- </xs:annotation>
100
- </xs:attribute>
101
- <xs:attribute name="dynamic-update" type="xs:boolean" use="optional" default="false" />
102
- <xs:attribute name="dynamic-insert" type="xs:boolean" use="optional" default="false" />
103
- <xs:attribute name="select-before-update" type="xs:boolean" use="optional" default="false" />
104
- <xs:attribute name="abstract" type="xs:boolean" />
105
- </xs:attributeGroup>
106
- <xs:attributeGroup name="baseCollectionAttributes">
107
- <xs:attribute name="name" type="xs:string" use="required" />
108
- <xs:attribute name="access" type="xs:string" use="optional" />
109
- <xs:attribute name="table" type="xs:string" use="optional" />
110
- <xs:attribute name="schema" type="xs:string" use="optional" />
111
- <xs:attribute name="lazy" type="xs:boolean" use="optional">
112
- <xs:annotation>
113
- <xs:documentation>Enable the lazy loading of this collection</xs:documentation>
114
- </xs:annotation>
115
- </xs:attribute>
116
- <xs:attribute name="outer-join" type="outerJoinStrategy" use="optional" />
117
- <xs:attribute name="fetch" type="collectionFetchMode" use="optional" />
118
- <xs:attribute name="cascade" type="xs:string" use="optional" />
119
- <xs:attribute name="where" type="xs:string" use="optional" />
120
- <xs:attribute name="inverse" type="xs:boolean" use="optional" default="false" />
121
- <xs:attribute name="persister" type="xs:string" use="optional" />
122
- <xs:attribute name="batch-size" type="xs:positiveInteger" use="optional" default="1" />
123
- <xs:attribute name="check" type="xs:string" use="optional" />
124
- <xs:attribute name="collection-type" type="xs:string" use="optional" />
125
- <xs:attribute name="optimistic-lock" type="xs:boolean" use="optional" />
126
- <xs:attribute name="generic" type="xs:boolean" use="optional">
127
- <xs:annotation>
128
- <xs:documentation>The concrete collection should use a generic version or an object-based version.</xs:documentation>
129
- </xs:annotation>
130
- </xs:attribute>
131
- </xs:attributeGroup>
132
- <xs:element name="filter">
133
- <xs:complexType mixed="true">
134
- <xs:attribute name="name" type="xs:string" use="required" />
135
- <xs:attribute name="condition" type="xs:string" use="optional" />
136
- </xs:complexType>
137
- </xs:element>
138
- <xs:complexType name="cacheType">
139
- <xs:attribute name="region" type="xs:string" use="optional" />
140
- <xs:attribute name="usage" use="required">
141
- <xs:simpleType>
142
- <xs:restriction base="xs:string">
143
- <xs:enumeration value="read-only" />
144
- <xs:enumeration value="read-write" />
145
- <xs:enumeration value="nonstrict-read-write" />
146
- </xs:restriction>
147
- </xs:simpleType>
148
- </xs:attribute>
149
- </xs:complexType>
150
- <xs:simpleType name="unsavedValueType">
151
- <xs:annotation>
152
- <xs:documentation>Values used to restrict composite-id, does not apply to meta/column/generator</xs:documentation>
153
- </xs:annotation>
154
- <xs:restriction base="xs:string">
155
- <xs:enumeration value="any" />
156
- <xs:enumeration value="none" />
157
- </xs:restriction>
158
- </xs:simpleType>
159
- <xs:simpleType name="notFoundMode">
160
- <xs:restriction base="xs:string">
161
- <xs:enumeration value="ignore" />
162
- <xs:enumeration value="exception" />
163
- </xs:restriction>
164
- </xs:simpleType>
165
- <xs:complexType name="customSQL" mixed="true">
166
- <!--<xs:attribute name="callable" type="xs:boolean" use="optional" default="false" />-->
167
- <xs:attribute name="check" type="customSQLCheck" use="optional" />
168
- </xs:complexType>
169
- <xs:element name="sql-insert" type="customSQL" />
170
- <xs:element name="sql-update" type="customSQL" />
171
- <xs:element name="sql-delete" type="customSQL" />
172
- <xs:element name="sql-delete-all" type="customSQL" />
173
- <xs:simpleType name="customSQLCheck">
174
- <xs:restriction base="xs:string">
175
- <xs:enumeration value="none" />
176
- <xs:enumeration value="rowcount" />
177
- <!-- <xs:enumeration value="param" /> -->
178
- </xs:restriction>
179
- </xs:simpleType>
180
- <xs:element name="loader">
181
- <xs:complexType>
182
- <xs:attribute name="query-ref" type="xs:string" use="required" />
183
- </xs:complexType>
184
- </xs:element>
185
- <xs:group name="classCustomSQL">
186
- <xs:sequence>
187
- <xs:element ref="loader" minOccurs="0" maxOccurs="1" />
188
- <xs:element ref="sql-insert" minOccurs="0" maxOccurs="1" />
189
- <xs:element ref="sql-update" minOccurs="0" maxOccurs="1" />
190
- <xs:element ref="sql-delete" minOccurs="0" maxOccurs="1" />
191
- </xs:sequence>
192
- </xs:group>
193
- <xs:group name="collectionCustomSQL">
194
- <xs:sequence>
195
- <xs:element ref="loader" minOccurs="0" maxOccurs="1" />
196
- <xs:element ref="sql-insert" minOccurs="0" maxOccurs="1" />
197
- <xs:element ref="sql-update" minOccurs="0" maxOccurs="1" />
198
- <xs:element ref="sql-delete" minOccurs="0" maxOccurs="1" />
199
- <xs:element ref="sql-delete-all" minOccurs="0" maxOccurs="1" />
200
- </xs:sequence>
201
- </xs:group>
202
- <xs:element name="resultset">
2
+ <xs:element name="any">
203
3
  <xs:complexType>
204
- <xs:choice minOccurs="0" maxOccurs="unbounded">
205
- <xs:element ref="return-scalar" />
206
- <xs:element ref="return" />
207
- <xs:element ref="return-join" />
208
- <xs:element ref="load-collection" />
209
- </xs:choice>
210
- <xs:attribute name="name" type="xs:string" use="required" />
4
+ <xs:sequence>
5
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
6
+ <xs:element ref="meta-value" minOccurs="0" maxOccurs="unbounded" />
7
+ <xs:element ref="column" maxOccurs="unbounded" />
8
+ </xs:sequence>
9
+ <xs:attribute name="column" type="xs:string" />
10
+ <xs:attribute name="id-type" use="required" type="xs:string" />
11
+ <xs:attribute name="meta-type" type="xs:string" />
12
+ <xs:attribute name="name" use="required" type="xs:string" />
13
+ <xs:attribute name="access" type="xs:string" />
14
+ <xs:attribute name="insert" default="true" type="xs:boolean" />
15
+ <xs:attribute name="update" default="true" type="xs:boolean" />
16
+ <xs:attribute name="cascade" type="xs:string" />
17
+ <xs:attribute name="index" type="xs:string" />
18
+ <xs:attribute name="optimistic-lock" default="true" type="xs:boolean" />
19
+ <xs:attribute name="lazy" default="false" type="xs:boolean" />
20
+ <xs:attribute name="node" type="xs:string" />
211
21
  </xs:complexType>
212
22
  </xs:element>
213
- <xs:element name="hibernate-mapping">
214
- <xs:annotation>
215
- <xs:documentation>hibernate-mapping is the document root</xs:documentation>
216
- </xs:annotation>
23
+ <xs:element name="array">
217
24
  <xs:complexType>
218
25
  <xs:sequence>
219
26
  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
220
- <xs:element ref="import" minOccurs="0" maxOccurs="unbounded" />
221
- <xs:choice minOccurs="0" maxOccurs="unbounded">
222
- <xs:element ref="class" />
223
- <xs:element ref="subclass" />
224
- <xs:element ref="joined-subclass" />
225
- <xs:element ref="union-subclass" />
27
+ <xs:element ref="subselect" minOccurs="0" />
28
+ <xs:element ref="cache" minOccurs="0" />
29
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
30
+ <xs:element ref="comment" minOccurs="0" />
31
+ <xs:element ref="key" />
32
+ <xs:choice>
33
+ <xs:element ref="index" />
34
+ <xs:element ref="list-index" />
226
35
  </xs:choice>
227
- <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
228
- <xs:choice minOccurs="0" maxOccurs="unbounded">
229
- <xs:element ref="query" />
230
- <xs:element ref="sql-query" />
36
+ <xs:choice>
37
+ <xs:element ref="element" />
38
+ <xs:element ref="one-to-many" />
39
+ <xs:element ref="many-to-many" />
40
+ <xs:element ref="composite-element" />
41
+ <xs:element ref="many-to-any" />
231
42
  </xs:choice>
232
- <xs:element ref="filter-def" minOccurs="0" maxOccurs="unbounded" />
233
- <xs:element ref="database-object" minOccurs="0" maxOccurs="unbounded" />
43
+ <xs:element ref="loader" minOccurs="0" />
44
+ <xs:element ref="sql-insert" minOccurs="0" />
45
+ <xs:element ref="sql-update" minOccurs="0" />
46
+ <xs:element ref="sql-delete" minOccurs="0" />
47
+ <xs:element ref="sql-delete-all" minOccurs="0" />
234
48
  </xs:sequence>
235
- <xs:attribute name="schema" type="xs:string" use="optional" />
236
- <xs:attribute name="default-cascade" type="xs:string" use="optional" default="none" />
237
- <xs:attribute name="default-access" type="xs:string" use="optional" default="property">
238
- <xs:annotation>
239
- <xs:documentation>Default property access setting</xs:documentation>
240
- </xs:annotation>
49
+ <xs:attribute name="name" use="required" type="xs:string" />
50
+ <xs:attribute name="access" type="xs:string" />
51
+ <xs:attribute name="table" type="xs:string" />
52
+ <xs:attribute name="schema" type="xs:string" />
53
+ <xs:attribute name="catalog" type="xs:string" />
54
+ <xs:attribute name="subselect" type="xs:string" />
55
+ <xs:attribute name="inverse" default="false" type="xs:boolean">
241
56
  </xs:attribute>
242
- <xs:attribute name="auto-import" type="xs:boolean" use="optional" default="true" />
243
- <xs:attribute name="namespace" type="xs:string" use="optional">
244
- <xs:annotation>
245
- <xs:documentation>Namespace used to find not-Fully Qualified Type Names</xs:documentation>
246
- </xs:annotation>
57
+ <xs:attribute name="mutable" default="true" type="xs:boolean">
247
58
  </xs:attribute>
248
- <xs:attribute name="assembly" type="xs:string" use="optional">
249
- <xs:annotation>
250
- <xs:documentation>Assembly used to find not-Fully Qualified Type Names</xs:documentation>
251
- </xs:annotation>
59
+ <xs:attribute name="element-class" type="xs:string" />
60
+ <xs:attribute name="cascade" type="xs:string" />
61
+ <xs:attribute name="where" type="xs:string" />
62
+ <xs:attribute name="batch-size" type="xs:int" />
63
+ <xs:attribute name="outer-join" type="outerJoinStrategy">
252
64
  </xs:attribute>
253
- <xs:attribute name="default-lazy" type="xs:boolean" use="optional" default="true">
254
- <xs:annotation>
255
- <xs:documentation>Default value of the lazy attribute for persistent classes and collections</xs:documentation>
256
- </xs:annotation>
65
+ <xs:attribute name="fetch" type="collectionFetchMode">
66
+ </xs:attribute>
67
+ <xs:attribute name="persister" type="xs:string" />
68
+ <xs:attribute name="collection-type" type="xs:string" />
69
+ <xs:attribute name="check" type="xs:string" />
70
+ <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
71
+ </xs:attribute>
72
+ <xs:attribute name="node" type="xs:string" />
73
+ <xs:attribute name="embed-xml" default="true" type="xs:boolean">
257
74
  </xs:attribute>
258
75
  </xs:complexType>
259
76
  </xs:element>
260
- <xs:element name="filter-param">
261
- <xs:complexType>
262
- <xs:attribute name="name" type="xs:string" use="required" />
263
- <xs:attribute name="type" type="xs:string" use="required" />
264
- </xs:complexType>
265
- </xs:element>
266
- <xs:element name="filter-def">
267
- <xs:complexType mixed="true">
268
- <xs:sequence>
269
- <xs:element ref="filter-param" minOccurs="0" maxOccurs="unbounded" />
270
- </xs:sequence>
271
- <xs:attribute name="name" type="xs:string" use="required" />
272
- <xs:attribute name="condition" type="xs:string" use="optional" default="" />
273
- </xs:complexType>
274
- </xs:element>
275
- <xs:element name="create">
276
- <xs:complexType mixed="true" />
277
- </xs:element>
278
- <xs:element name="drop">
279
- <xs:complexType mixed="true" />
280
- </xs:element>
281
- <xs:element name="dialect-scope">
282
- <xs:complexType>
283
- <xs:attribute name="name" type="xs:string" use="required" />
284
- </xs:complexType>
285
- </xs:element>
286
- <xs:element name="definition">
287
- <xs:complexType>
288
- <xs:sequence>
289
- <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
290
- </xs:sequence>
291
- <xs:attribute name="class" type="xs:string" use="required" />
292
- </xs:complexType>
293
- </xs:element>
294
- <xs:element name="database-object">
77
+ <xs:element name="bag">
295
78
  <xs:complexType>
296
79
  <xs:sequence>
80
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
81
+ <xs:element ref="subselect" minOccurs="0" />
82
+ <xs:element ref="cache" minOccurs="0" />
83
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
84
+ <xs:element ref="comment" minOccurs="0" />
85
+ <xs:element ref="key" />
297
86
  <xs:choice>
298
- <xs:sequence>
299
- <xs:element ref="create" />
300
- <xs:element ref="drop" />
301
- </xs:sequence>
302
- <xs:sequence>
303
- <xs:element ref="definition" />
304
- </xs:sequence>
87
+ <xs:element ref="element" />
88
+ <xs:element ref="one-to-many" />
89
+ <xs:element ref="many-to-many" />
90
+ <xs:element ref="composite-element" />
91
+ <xs:element ref="many-to-any" />
305
92
  </xs:choice>
306
- <xs:element ref="dialect-scope" minOccurs="0" maxOccurs="unbounded" />
93
+ <xs:element ref="loader" minOccurs="0" />
94
+ <xs:element ref="sql-insert" minOccurs="0" />
95
+ <xs:element ref="sql-update" minOccurs="0" />
96
+ <xs:element ref="sql-delete" minOccurs="0" />
97
+ <xs:element ref="sql-delete-all" minOccurs="0" />
98
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
307
99
  </xs:sequence>
100
+ <xs:attributeGroup ref="baseCollectionAttributes" />
308
101
  </xs:complexType>
309
102
  </xs:element>
310
- <xs:element name="import">
311
- <xs:annotation>
312
- <xs:documentation>An explicit query language "import"</xs:documentation>
313
- </xs:annotation>
103
+ <xs:element name="cache">
314
104
  <xs:complexType>
315
- <xs:attribute name="class" type="xs:string" use="required" />
316
- <xs:attribute name="rename" type="xs:string" use="optional" />
105
+ <xs:attribute name="usage" use="required">
106
+ <xs:simpleType>
107
+ <xs:restriction base="xs:string">
108
+ <xs:enumeration value="read-only" />
109
+ <xs:enumeration value="read-write" />
110
+ <xs:enumeration value="nonstrict-read-write" />
111
+ <xs:enumeration value="transactional" />
112
+ </xs:restriction>
113
+ </xs:simpleType>
114
+ </xs:attribute>
115
+ <xs:attribute name="region" type="xs:string" use="optional">
116
+ </xs:attribute>
117
+ <xs:attribute name="include" default="all">
118
+ <xs:simpleType>
119
+ <xs:restriction base="xs:string">
120
+ <xs:enumeration value="all" />
121
+ <xs:enumeration value="non-lazy" />
122
+ </xs:restriction>
123
+ </xs:simpleType>
124
+ </xs:attribute>
317
125
  </xs:complexType>
318
126
  </xs:element>
319
127
  <xs:element name="class">
320
- <xs:annotation>
321
- <xs:documentation>Root of an entity class hierarchy. Entities have their own tables</xs:documentation>
322
- </xs:annotation>
323
128
  <xs:complexType>
324
129
  <xs:sequence>
325
130
  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
326
- <xs:choice minOccurs="0">
327
- <xs:element ref="jcs-cache" />
328
- <xs:element ref="cache" />
329
- </xs:choice>
131
+ <xs:element ref="subselect" minOccurs="0" />
132
+ <xs:element ref="cache" minOccurs="0" />
133
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
134
+ <xs:element ref="comment" minOccurs="0" />
135
+ <xs:element ref="tuplizer" minOccurs="0" maxOccurs="unbounded" />
330
136
  <xs:choice>
331
137
  <xs:element ref="id" />
332
138
  <xs:element ref="composite-id" />
333
139
  </xs:choice>
334
140
  <xs:element ref="discriminator" minOccurs="0" />
141
+ <xs:element ref="natural-id" minOccurs="0" />
335
142
  <xs:choice minOccurs="0">
336
143
  <xs:element ref="version" />
337
144
  <xs:element ref="timestamp" />
@@ -342,6 +149,7 @@
342
149
  <xs:element ref="one-to-one" />
343
150
  <xs:element ref="component" />
344
151
  <xs:element ref="dynamic-component" />
152
+ <xs:element ref="properties" />
345
153
  <xs:element ref="any" />
346
154
  <xs:element ref="map" />
347
155
  <xs:element ref="set" />
@@ -359,138 +167,94 @@
359
167
  <xs:element ref="joined-subclass" minOccurs="0" maxOccurs="unbounded" />
360
168
  <xs:element ref="union-subclass" minOccurs="0" maxOccurs="unbounded" />
361
169
  </xs:choice>
362
- <xs:group ref="classCustomSQL" />
170
+ <xs:element ref="loader" minOccurs="0" />
171
+ <xs:element ref="sql-insert" minOccurs="0" />
172
+ <xs:element ref="sql-update" minOccurs="0" />
173
+ <xs:element ref="sql-delete" minOccurs="0" />
363
174
  <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
175
+ <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
176
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
177
+ <xs:element ref="query" />
178
+ <xs:element ref="sql-query" />
179
+ </xs:choice>
364
180
  </xs:sequence>
365
- <xs:attributeGroup ref="baseClassAttributes" />
366
- <xs:attribute name="table" type="xs:string" use="optional">
367
- <xs:annotation>
368
- <xs:documentation>default: unqualified classname</xs:documentation>
369
- </xs:annotation>
181
+ <xs:attribute name="entity-name" type="xs:string">
370
182
  </xs:attribute>
371
- <xs:attribute name="schema" type="xs:string" use="optional">
372
- <xs:annotation>
373
- <xs:documentation>default: no value</xs:documentation>
374
- </xs:annotation>
183
+ <xs:attribute name="name" type="xs:string" />
184
+ <xs:attribute name="proxy" type="xs:string" />
185
+ <xs:attribute name="lazy" type="xs:boolean">
375
186
  </xs:attribute>
376
- <xs:attribute name="discriminator-value" type="xs:string" use="optional">
377
- <xs:annotation>
378
- <xs:documentation>default: unqualified class name | none</xs:documentation>
379
- </xs:annotation>
187
+ <xs:attribute name="schema-action" type="xs:string" />
188
+ <xs:attribute name="table" type="xs:string" />
189
+ <xs:attribute name="schema" type="xs:string" />
190
+ <xs:attribute name="catalog" type="xs:string" />
191
+ <xs:attribute name="subselect" type="xs:string" />
192
+ <xs:attribute name="discriminator-value" type="xs:string" />
193
+ <xs:attribute name="mutable" default="true" type="xs:boolean">
380
194
  </xs:attribute>
381
- <xs:attribute name="mutable" type="xs:boolean" use="optional" default="true" />
382
- <xs:attribute name="polymorphism" type="polymorphismType" use="optional" default="implicit" />
383
- <xs:attribute name="persister" type="xs:string" use="optional" />
384
- <xs:attribute name="where" type="xs:string" use="optional">
385
- <xs:annotation>
386
- <xs:documentation>default: none</xs:documentation>
387
- </xs:annotation>
195
+ <xs:attribute name="abstract" type="xs:boolean">
196
+ </xs:attribute>
197
+ <xs:attribute name="polymorphism" default="implicit" type="polymorphismType">
198
+ </xs:attribute>
199
+ <xs:attribute name="where" type="xs:string" />
200
+ <xs:attribute name="persister" type="xs:string" />
201
+ <xs:attribute name="dynamic-update" default="false" type="xs:boolean">
388
202
  </xs:attribute>
389
- <xs:attribute name="batch-size" type="xs:positiveInteger" use="optional" default="1" />
390
- <xs:attribute name="optimistic-lock" type="optimisticLockMode" use="optional" default="version" />
391
- <xs:attribute name="check" type="xs:string" use="optional" />
203
+ <xs:attribute name="dynamic-insert" default="false" type="xs:boolean">
204
+ </xs:attribute>
205
+ <xs:attribute name="batch-size" type="xs:int" />
206
+ <xs:attribute name="select-before-update" default="false" type="xs:boolean">
207
+ </xs:attribute>
208
+ <xs:attribute name="optimistic-lock" default="version" type="optimisticLockMode">
209
+ </xs:attribute>
210
+ <xs:attribute name="check" type="xs:string" />
211
+ <xs:attribute name="rowid" type="xs:string" />
212
+ <xs:attribute name="node" type="xs:string" />
392
213
  </xs:complexType>
393
214
  </xs:element>
394
- <xs:element name="id">
395
- <xs:annotation>
396
- <xs:documentation>Declares the id type, column and generation algorithm for an entity class. If a name attribute is given, the id is exposed to the application through the named property of the class. If not, the id is only exposed to the application via Session.getIdentifier()</xs:documentation>
397
- </xs:annotation>
215
+ <xs:element name="collection-id">
398
216
  <xs:complexType>
399
217
  <xs:sequence>
400
218
  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
401
219
  <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
402
220
  <xs:element ref="generator" />
403
221
  </xs:sequence>
404
- <xs:attribute name="name" type="xs:string" />
405
- <xs:attribute name="access" type="xs:string" />
406
- <xs:attribute name="column" type="xs:string" />
407
- <xs:attribute name="type" type="xs:string" />
222
+ <xs:attribute name="column" use="required" type="xs:string" />
223
+ <xs:attribute name="type" use="required" type="xs:string" />
408
224
  <xs:attribute name="length" type="xs:positiveInteger" />
409
- <xs:attribute name="unsaved-value" type="xs:string">
410
- <xs:annotation>
411
- <xs:documentation>any|none|null|0|-1|...</xs:documentation>
412
- </xs:annotation>
413
- </xs:attribute>
414
- </xs:complexType>
415
- </xs:element>
416
- <xs:element name="composite-id">
417
- <xs:annotation>
418
- <xs:documentation>A composite key may be modelled by a .NET class with a property for each key column. The class must be Serializable and override equals() and hashCode()</xs:documentation>
419
- </xs:annotation>
420
- <xs:complexType>
421
- <xs:sequence>
422
- <xs:choice maxOccurs="unbounded">
423
- <xs:element ref="key-property" />
424
- <xs:element ref="key-many-to-one" />
425
- </xs:choice>
426
- </xs:sequence>
427
- <xs:attribute name="class" type="xs:string" />
428
- <xs:attribute name="name" type="xs:string" />
429
- <xs:attribute name="access" type="xs:string" />
430
- <xs:attribute name="unsaved-value" type="unsavedValueType" default="none" />
431
225
  </xs:complexType>
432
226
  </xs:element>
433
- <xs:element name="discriminator">
434
- <xs:annotation>
435
- <xs:documentation>Polymorphic data requires a column holding a class discriminator value. This value is not directly exposed to the application</xs:documentation>
436
- </xs:annotation>
227
+ <xs:element name="column">
437
228
  <xs:complexType>
438
229
  <xs:sequence>
439
- <xs:element ref="column" minOccurs="0">
440
- <xs:annotation>
441
- <xs:documentation>default: "class"|none</xs:documentation>
442
- </xs:annotation>
443
- </xs:element>
230
+ <xs:element ref="comment" minOccurs="0" />
444
231
  </xs:sequence>
445
- <xs:attribute name="column" type="xs:string" />
446
- <xs:attribute name="type" type="xs:string" default="String" />
447
- <xs:attribute name="not-null" type="xs:boolean" default="true" />
232
+ <xs:attribute name="name" use="required" type="xs:string">
233
+ </xs:attribute>
448
234
  <xs:attribute name="length" type="xs:positiveInteger" />
449
- <xs:attribute name="force" type="xs:boolean" default="false" />
450
- <xs:attribute name="insert" type="xs:boolean" />
451
- <xs:attribute name="formula" type="xs:string" />
452
- </xs:complexType>
453
- </xs:element>
454
- <xs:element name="version">
455
- <xs:annotation>
456
- <xs:documentation>Versioned data requires a column holding a version number. This is exposed to the application through a property of the .NET class</xs:documentation>
457
- </xs:annotation>
458
- <xs:complexType>
459
- <xs:attribute name="name" type="xs:string" use="required" />
460
- <xs:attribute name="access" type="xs:string" />
461
- <xs:attribute name="column" type="xs:string" />
462
- <xs:attribute name="type" type="xs:string" default="Int32" />
463
- <xs:attribute name="unsaved-value" type="xs:string">
464
- <xs:annotation>
465
- <xs:documentation>undefined|any|none|null|0|-1|... </xs:documentation>
466
- </xs:annotation>
235
+ <xs:attribute name="precision" type="xs:positiveInteger" />
236
+ <xs:attribute name="scale" type="xs:positiveInteger" />
237
+ <xs:attribute name="not-null" type="xs:boolean">
467
238
  </xs:attribute>
468
- <xs:attribute name="generated" type="versionGeneration" default="never" use="optional" />
239
+ <xs:attribute name="unique" type="xs:boolean">
240
+ </xs:attribute>
241
+ <xs:attribute name="unique-key" type="xs:string" />
242
+ <xs:attribute name="sql-type" type="xs:string" />
243
+ <xs:attribute name="index" type="xs:string" />
244
+ <xs:attribute name="check" type="xs:string" />
245
+ <xs:attribute name="default" type="xs:string" />
469
246
  </xs:complexType>
470
247
  </xs:element>
471
- <xs:element name="timestamp">
472
- <xs:annotation>
473
- <xs:documentation>Is equivalent to &lt;version type="timestamp"&gt;</xs:documentation>
474
- </xs:annotation>
475
- <xs:complexType>
476
- <xs:attribute name="name" type="xs:string" use="required" />
477
- <xs:attribute name="access" type="xs:string" />
478
- <xs:attribute name="column" type="xs:string" />
479
- <xs:attribute name="unsaved-value" type="xs:string">
480
- <xs:annotation>
481
- <xs:documentation>undefined|any|none|null|0|-1|... </xs:documentation>
482
- </xs:annotation>
483
- </xs:attribute>
484
- <xs:attribute name="generated" type="versionGeneration" default="never" use="optional" />
248
+ <xs:element name="comment">
249
+ <xs:complexType mixed="true">
485
250
  </xs:complexType>
486
251
  </xs:element>
487
- <xs:element name="subclass">
488
- <xs:annotation>
489
- <xs:documentation>Subclass declarations are nested beneath the root class declaration to achieve polymorphic persistence</xs:documentation>
490
- </xs:annotation>
252
+ <xs:element name="component">
491
253
  <xs:complexType>
492
254
  <xs:sequence>
493
255
  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
256
+ <xs:element ref="tuplizer" minOccurs="0" maxOccurs="unbounded" />
257
+ <xs:element ref="parent" minOccurs="0" />
494
258
  <xs:choice minOccurs="0" maxOccurs="unbounded">
495
259
  <xs:element ref="property" />
496
260
  <xs:element ref="many-to-one" />
@@ -506,234 +270,133 @@
506
270
  <xs:element ref="array" />
507
271
  <xs:element ref="primitive-array" />
508
272
  </xs:choice>
509
- <xs:element ref="join" minOccurs="0" maxOccurs="unbounded" />
510
- <xs:element ref="subclass" minOccurs="0" maxOccurs="unbounded" />
511
- <xs:group ref="classCustomSQL" />
512
273
  </xs:sequence>
513
- <xs:attributeGroup ref="baseClassAttributes" />
514
- <xs:attribute name="extends" type="xs:string" use="optional">
515
- <xs:annotation>
516
- <xs:documentation>Name of the root class. Required if the Subclass is declared outside the declaration of its root class</xs:documentation>
517
- </xs:annotation>
274
+ <xs:attribute name="class" type="xs:string" />
275
+ <xs:attribute name="name" use="required" type="xs:string" />
276
+ <xs:attribute name="access" type="xs:string" />
277
+ <xs:attribute name="unique" default="false" type="xs:boolean">
518
278
  </xs:attribute>
519
- <xs:attribute name="discriminator-value" type="xs:string" use="optional">
520
- <xs:annotation>
521
- <xs:documentation>default: unqualified class name | none</xs:documentation>
522
- </xs:annotation>
279
+ <xs:attribute name="update" default="true" type="xs:boolean">
523
280
  </xs:attribute>
524
- </xs:complexType>
525
- </xs:element>
526
- <xs:element name="joined-subclass">
527
- <xs:annotation>
528
- <xs:documentation>Joined subclasses are used for the normalized table-per-subclass mapping strategy</xs:documentation>
529
- </xs:annotation>
530
- <xs:complexType>
531
- <xs:sequence>
532
- <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
533
- <xs:element ref="key" />
534
- <xs:choice minOccurs="0" maxOccurs="unbounded">
535
- <xs:element ref="property" />
536
- <xs:element ref="many-to-one" />
537
- <xs:element ref="one-to-one" />
538
- <xs:element ref="component" />
539
- <xs:element ref="dynamic-component" />
540
- <xs:element ref="any" />
541
- <xs:element ref="map" />
542
- <xs:element ref="set" />
543
- <xs:element ref="list" />
544
- <xs:element ref="bag" />
545
- <xs:element ref="idbag" />
546
- <xs:element ref="array" />
547
- <xs:element ref="primitive-array" />
548
- </xs:choice>
549
- <xs:element ref="joined-subclass" minOccurs="0" maxOccurs="unbounded" />
550
- <xs:group ref="classCustomSQL" />
551
- </xs:sequence>
552
- <xs:attributeGroup ref="baseClassAttributes" />
553
- <xs:attribute name="extends" type="xs:string" use="optional">
554
- <xs:annotation>
555
- <xs:documentation>Name of the root class. Required if the Joined Subclass is declared outside the declaration of its root class</xs:documentation>
556
- </xs:annotation>
281
+ <xs:attribute name="insert" default="true" type="xs:boolean">
557
282
  </xs:attribute>
558
- <xs:attribute name="schema" type="xs:string" use="optional" />
559
- <xs:attribute name="table" type="xs:string" use="optional">
560
- <xs:annotation>
561
- <xs:documentation>default: unqualified classname</xs:documentation>
562
- </xs:annotation>
283
+ <xs:attribute name="lazy" default="false" type="xs:boolean">
284
+ </xs:attribute>
285
+ <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
563
286
  </xs:attribute>
564
- <xs:attribute name="check" type="xs:string" use="optional" />
287
+ <xs:attribute name="node" type="xs:string" />
565
288
  </xs:complexType>
566
289
  </xs:element>
567
- <xs:element name="join">
290
+ <xs:element name="composite-element">
568
291
  <xs:complexType>
569
292
  <xs:sequence>
570
- <xs:element ref="key" />
293
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
294
+ <xs:element ref="parent" minOccurs="0" />
571
295
  <xs:choice minOccurs="0" maxOccurs="unbounded">
572
296
  <xs:element ref="property" />
573
297
  <xs:element ref="many-to-one" />
574
- <xs:element ref="component" />
575
- <xs:element ref="dynamic-component" />
576
298
  <xs:element ref="any" />
299
+ <xs:element ref="nested-composite-element" />
577
300
  </xs:choice>
578
301
  </xs:sequence>
579
- <xs:attribute name="table" type="xs:string">
580
- </xs:attribute>
581
- <xs:attribute name="schema" type="xs:string" use="optional">
582
- <xs:annotation>
583
- <xs:documentation>default: no value</xs:documentation>
584
- </xs:annotation>
585
- </xs:attribute>
586
- <xs:attribute name="fetch" type="fetchMode" use="optional" />
587
- <xs:attribute name="inverse" type="xs:boolean" use="optional" default="false" />
588
- <xs:attribute name="optional" type="xs:boolean" use="optional" default="false" />
302
+ <xs:attribute name="class" use="required" type="xs:string" />
303
+ <xs:attribute name="node" type="xs:string" />
589
304
  </xs:complexType>
590
305
  </xs:element>
591
- <xs:element name="property">
306
+ <xs:element name="composite-id">
592
307
  <xs:annotation>
593
- <xs:documentation>Property of an entity class or component, component-element, composite-id, etc. Class Properties (get_ and set_ methods) are mapped to table columns</xs:documentation>
308
+ <xs:documentation>A composite key may be modelled by a .NET class with a property for each key column. The class must be Serializable and override equals() and hashCode()</xs:documentation>
594
309
  </xs:annotation>
595
310
  <xs:complexType>
596
311
  <xs:sequence>
597
312
  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
598
- <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
599
- <xs:element ref="type" minOccurs="0" maxOccurs="1" />
313
+ <xs:choice maxOccurs="unbounded">
314
+ <xs:element ref="key-property" />
315
+ <xs:element ref="key-many-to-one" />
316
+ </xs:choice>
600
317
  </xs:sequence>
601
- <xs:attribute name="name" type="xs:string" use="required" />
602
- <xs:attribute name="access" type="xs:string" />
603
- <xs:attribute name="type" type="xs:string" />
604
- <xs:attribute name="column" type="xs:string" />
605
- <xs:attribute name="length" type="xs:positiveInteger" />
606
- <xs:attribute name="not-null" type="xs:boolean" default="false" />
607
- <xs:attribute name="unique" type="xs:boolean" default="false" />
608
- <xs:attribute name="update" type="xs:boolean">
609
- <xs:annotation>
610
- <xs:documentation>only supported for properties of a class (not component)</xs:documentation>
611
- </xs:annotation>
612
- </xs:attribute>
613
- <xs:attribute name="insert" type="xs:boolean">
614
- <xs:annotation>
615
- <xs:documentation>only supported for properties of a class (not component)</xs:documentation>
616
- </xs:annotation>
617
- </xs:attribute>
618
- <xs:attribute name="optimistic-lock" type="xs:boolean" default="true">
619
- <xs:annotation>
620
- <xs:documentation>only supported for properties of a class (not component)</xs:documentation>
621
- </xs:annotation>
318
+ <xs:attribute name="class" type="xs:string" />
319
+ <xs:attribute name="mapped" default="false" type="xs:boolean">
622
320
  </xs:attribute>
623
- <xs:attribute name="formula" type="xs:string">
624
- <xs:annotation>
625
- <xs:documentation>only supported for properties of a class (not component)</xs:documentation>
626
- </xs:annotation>
321
+ <xs:attribute name="name" type="xs:string" />
322
+ <xs:attribute name="node" type="xs:string" />
323
+ <xs:attribute name="access" type="xs:string" />
324
+ <xs:attribute name="unsaved-value" default="undefined" type="unsavedValueType">
627
325
  </xs:attribute>
628
- <xs:attribute name="unique-key" type="xs:string" />
629
- <xs:attribute name="index" type="xs:string" />
630
- <xs:attribute name="generated" type="propertyGeneration" default="never" use="optional" />
631
326
  </xs:complexType>
632
327
  </xs:element>
633
- <xs:element name="meta-value">
328
+ <xs:element name="composite-index">
634
329
  <xs:complexType>
635
- <xs:attribute name="value" type="xs:string" use="required" />
636
- <xs:attribute name="class" type="xs:string" use="required" />
330
+ <xs:sequence>
331
+ <xs:choice maxOccurs="unbounded">
332
+ <xs:element ref="key-property" />
333
+ <xs:element ref="key-many-to-one" />
334
+ </xs:choice>
335
+ </xs:sequence>
336
+ <xs:attribute name="class" use="required" type="xs:string" />
637
337
  </xs:complexType>
638
338
  </xs:element>
639
- <xs:element name="any">
339
+ <xs:element name="composite-map-key">
640
340
  <xs:complexType>
641
341
  <xs:sequence>
642
- <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
643
- <xs:element ref="meta-value" minOccurs="0" maxOccurs="unbounded" />
644
- <xs:element ref="column" maxOccurs="unbounded" />
342
+ <xs:choice maxOccurs="unbounded">
343
+ <xs:element ref="key-property" />
344
+ <xs:element ref="key-many-to-one" />
345
+ </xs:choice>
645
346
  </xs:sequence>
646
- <xs:attribute name="id-type" type="xs:string" use="required" />
647
- <xs:attribute name="meta-type" type="xs:string" />
648
- <xs:attribute name="name" type="xs:string" use="required" />
649
- <xs:attribute name="access" type="xs:string" />
650
- <xs:attribute name="insert" type="xs:boolean" />
651
- <xs:attribute name="update" type="xs:boolean" />
652
- <xs:attribute name="cascade" type="xs:string" default="none" />
653
- <xs:attribute name="index" type="xs:string" use="optional" />
654
- <xs:attribute name="unique-key" type="xs:string" use="optional" />
347
+ <xs:attribute name="class" use="required" type="xs:string" />
655
348
  </xs:complexType>
656
349
  </xs:element>
657
- <xs:element name="array">
350
+ <xs:element name="create">
351
+ <xs:complexType mixed="true">
352
+ </xs:complexType>
353
+ </xs:element>
354
+ <xs:element name="database-object">
658
355
  <xs:complexType>
659
356
  <xs:sequence>
660
- <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
661
- <xs:choice minOccurs="0">
662
- <xs:element ref="jcs-cache" />
663
- <xs:element ref="cache" />
664
- </xs:choice>
665
- <xs:element ref="key" />
666
- <xs:element ref="index" />
667
357
  <xs:choice>
668
- <xs:element ref="element" />
669
- <xs:element ref="one-to-many" />
670
- <xs:element ref="many-to-many" />
671
- <xs:element ref="composite-element" />
672
- <xs:element ref="many-to-any" />
358
+ <xs:element ref="definition" />
359
+ <xs:sequence>
360
+ <xs:element ref="create" />
361
+ <xs:element ref="drop" />
362
+ </xs:sequence>
673
363
  </xs:choice>
364
+ <xs:element ref="dialect-scope" minOccurs="0" maxOccurs="unbounded" />
674
365
  </xs:sequence>
675
- <xs:attribute name="name" type="xs:string" use="required" />
676
- <xs:attribute name="access" type="xs:string" />
677
- <xs:attribute name="table" type="xs:string" />
678
- <xs:attribute name="schema" type="xs:string" />
679
- <xs:attribute name="element-class" type="xs:string" />
680
- <xs:attribute name="cascade" type="xs:string" />
681
- <xs:attribute name="where" type="xs:string" />
682
- <xs:attribute name="optimistic-lock" type="xs:boolean" use="optional" />
683
366
  </xs:complexType>
684
367
  </xs:element>
685
- <xs:element name="cache" type="cacheType" />
686
- <xs:element name="collection-id">
368
+ <xs:element name="definition">
687
369
  <xs:complexType>
688
- <xs:sequence>
689
- <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
690
- <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
691
- <xs:element ref="generator" />
692
- </xs:sequence>
693
- <xs:attribute name="column" type="xs:string" use="required" />
694
- <xs:attribute name="type" type="xs:string" use="required" />
695
- <xs:attribute name="length" type="xs:positiveInteger" />
370
+ <xs:attribute name="class" use="required" type="xs:string" />
696
371
  </xs:complexType>
697
372
  </xs:element>
698
- <xs:element name="column">
699
- <xs:complexType>
700
- <xs:attribute name="name" type="xs:string" use="required" />
701
- <xs:attribute name="length" type="xs:positiveInteger" />
702
- <xs:attribute name="not-null" type="xs:boolean" />
703
- <xs:attribute name="unique" type="xs:boolean" />
704
- <xs:attribute name="unique-key" type="xs:string" />
705
- <xs:attribute name="sql-type" type="xs:string" />
706
- <xs:attribute name="index" type="xs:string" />
707
- <xs:attribute name="check" type="xs:string" use="optional" />
373
+ <xs:element name="dialect-scope">
374
+ <xs:complexType mixed="true">
375
+ <xs:attribute name="name" use="required" type="xs:string" />
708
376
  </xs:complexType>
709
377
  </xs:element>
710
- <xs:element name="component">
711
- <xs:annotation>
712
- <xs:documentation>Map properties of a child object to columns of the table of a parent class</xs:documentation>
713
- </xs:annotation>
378
+ <xs:element name="discriminator">
714
379
  <xs:complexType>
715
380
  <xs:sequence>
716
- <xs:element ref="parent" minOccurs="0" />
717
- <xs:choice minOccurs="0" maxOccurs="unbounded">
718
- <xs:element ref="property" />
719
- <xs:element ref="many-to-one" />
720
- <xs:element ref="one-to-one" />
721
- <xs:element ref="component" />
722
- <xs:element ref="dynamic-component" />
723
- <xs:element ref="any" />
724
- <xs:element ref="map" />
725
- <xs:element ref="set" />
726
- <xs:element ref="list" />
727
- <xs:element ref="bag" />
728
- <xs:element ref="array" />
729
- <xs:element ref="primitive-array" />
381
+ <xs:choice minOccurs="0">
382
+ <xs:element ref="column" />
383
+ <xs:element ref="formula" />
730
384
  </xs:choice>
731
385
  </xs:sequence>
732
- <xs:attribute name="name" type="xs:string" use="required" />
733
- <xs:attribute name="access" type="xs:string" />
734
- <xs:attribute name="class" type="xs:string" />
735
- <xs:attribute name="update" type="xs:boolean" />
736
- <xs:attribute name="insert" type="xs:boolean" />
386
+ <xs:attribute name="column" type="xs:string" />
387
+ <xs:attribute name="formula" type="xs:string" />
388
+ <xs:attribute name="type" default="string" type="xs:string" />
389
+ <xs:attribute name="not-null" default="true" type="xs:boolean">
390
+ </xs:attribute>
391
+ <xs:attribute name="length" type="xs:positiveInteger" />
392
+ <xs:attribute name="force" default="false" type="xs:boolean">
393
+ </xs:attribute>
394
+ <xs:attribute name="insert" default="true" type="xs:boolean">
395
+ </xs:attribute>
396
+ </xs:complexType>
397
+ </xs:element>
398
+ <xs:element name="drop">
399
+ <xs:complexType mixed="true">
737
400
  </xs:complexType>
738
401
  </xs:element>
739
402
  <xs:element name="dynamic-component">
@@ -754,67 +417,139 @@
754
417
  <xs:element ref="primitive-array" />
755
418
  </xs:choice>
756
419
  </xs:sequence>
757
- <xs:attribute name="name" type="xs:string" use="required" />
420
+ <xs:attribute name="name" use="required" type="xs:string" />
758
421
  <xs:attribute name="access" type="xs:string" />
759
- <xs:attribute name="update" type="xs:boolean" />
760
- <xs:attribute name="insert" type="xs:boolean" />
422
+ <xs:attribute name="unique" default="false" type="xs:boolean">
423
+ </xs:attribute>
424
+ <xs:attribute name="update" default="true" type="xs:boolean">
425
+ </xs:attribute>
426
+ <xs:attribute name="insert" default="true" type="xs:boolean">
427
+ </xs:attribute>
428
+ <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
429
+ </xs:attribute>
430
+ <xs:attribute name="node" type="xs:string" />
761
431
  </xs:complexType>
762
432
  </xs:element>
763
- <xs:element name="composite-element">
433
+ <xs:element name="element">
764
434
  <xs:complexType>
765
435
  <xs:sequence>
766
- <xs:element ref="parent" minOccurs="0" />
767
436
  <xs:choice minOccurs="0" maxOccurs="unbounded">
768
- <xs:element ref="property" />
769
- <xs:element ref="many-to-one" />
770
- <xs:element ref="nested-composite-element" />
437
+ <xs:element ref="column" />
438
+ <xs:element ref="formula" />
771
439
  </xs:choice>
440
+ <xs:element ref="type" minOccurs="0" />
772
441
  </xs:sequence>
773
- <xs:attribute name="class" type="xs:string" use="required" />
442
+ <xs:attribute name="column" type="xs:string" />
443
+ <xs:attribute name="node" type="xs:string" />
444
+ <xs:attribute name="formula" type="xs:string" />
445
+ <xs:attribute name="type" type="xs:string" />
446
+ <xs:attribute name="length" type="xs:positiveInteger" />
447
+ <xs:attribute name="precision" type="xs:positiveInteger" />
448
+ <xs:attribute name="scale" type="xs:positiveInteger" />
449
+ <xs:attribute name="not-null" default="false" type="xs:boolean">
450
+ </xs:attribute>
451
+ <xs:attribute name="unique" default="false" type="xs:boolean">
452
+ </xs:attribute>
774
453
  </xs:complexType>
775
454
  </xs:element>
776
- <xs:element name="composite-index">
455
+ <xs:element name="filter">
456
+ <xs:complexType mixed="true">
457
+ <xs:attribute name="name" use="required" type="xs:string" />
458
+ <xs:attribute name="condition" type="xs:string" />
459
+ </xs:complexType>
460
+ </xs:element>
461
+ <xs:element name="filter-def">
462
+ <xs:complexType mixed="true">
463
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
464
+ <xs:element ref="filter-param" />
465
+ </xs:choice>
466
+ <xs:attribute name="name" use="required" type="xs:string" />
467
+ <xs:attribute name="condition" type="xs:string" />
468
+ </xs:complexType>
469
+ </xs:element>
470
+ <xs:element name="filter-param">
471
+ <xs:complexType>
472
+ <xs:attribute name="name" use="required" type="xs:string" />
473
+ <xs:attribute name="type" use="required" type="xs:string" />
474
+ </xs:complexType>
475
+ </xs:element>
476
+ <xs:element name="formula">
477
+ <xs:complexType mixed="true">
478
+ </xs:complexType>
479
+ </xs:element>
480
+ <xs:element name="generator">
777
481
  <xs:complexType>
778
482
  <xs:sequence>
779
- <xs:choice maxOccurs="unbounded">
780
- <xs:element ref="key-property" />
781
- <xs:element ref="key-many-to-one" />
782
- </xs:choice>
483
+ <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
783
484
  </xs:sequence>
784
- <xs:attribute name="class" type="xs:string" use="required" />
485
+ <xs:attribute name="class" use="required" type="xs:string" />
785
486
  </xs:complexType>
786
487
  </xs:element>
787
- <xs:element name="element">
488
+ <xs:element name="hibernate-mapping">
788
489
  <xs:complexType>
789
490
  <xs:sequence>
790
- <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
491
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
492
+ <xs:element ref="typedef" minOccurs="0" maxOccurs="unbounded" />
493
+ <xs:element ref="import" minOccurs="0" maxOccurs="unbounded" />
494
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
495
+ <xs:element ref="class" />
496
+ <xs:element ref="subclass" />
497
+ <xs:element ref="joined-subclass" />
498
+ <xs:element ref="union-subclass" />
499
+ </xs:choice>
500
+ <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
501
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
502
+ <xs:element ref="query" />
503
+ <xs:element ref="sql-query" />
504
+ </xs:choice>
505
+ <xs:element ref="filter-def" minOccurs="0" maxOccurs="unbounded" />
506
+ <xs:element ref="database-object" minOccurs="0" maxOccurs="unbounded" />
791
507
  </xs:sequence>
792
- <xs:attribute name="column" type="xs:string" />
793
- <xs:attribute name="type" type="xs:string" use="required" />
794
- <xs:attribute name="length" type="xs:positiveInteger" />
795
- <xs:attribute name="not-null" type="xs:boolean" default="false" />
796
- <xs:attribute name="unique" type="xs:boolean" default="false" />
508
+ <xs:attribute name="schema" type="xs:string" />
509
+ <xs:attribute name="catalog" type="xs:string" />
510
+ <xs:attribute name="default-cascade" default="none" type="xs:string" />
511
+ <xs:attribute name="default-access" default="property" type="xs:string" />
512
+ <xs:attribute name="default-lazy" default="true" type="xs:boolean">
513
+ </xs:attribute>
514
+ <xs:attribute name="auto-import" default="true" type="xs:boolean">
515
+ </xs:attribute>
516
+ <xs:attribute name="namespace" type="xs:string" use="optional">
517
+ <xs:annotation>
518
+ <xs:documentation>Namespace used to find not-Fully Qualified Type Names</xs:documentation>
519
+ </xs:annotation>
520
+ </xs:attribute>
521
+ <xs:attribute name="assembly" type="xs:string" use="optional">
522
+ <xs:annotation>
523
+ <xs:documentation>Assembly used to find not-Fully Qualified Type Names</xs:documentation>
524
+ </xs:annotation>
525
+ </xs:attribute>
797
526
  </xs:complexType>
798
527
  </xs:element>
799
- <xs:element name="generator">
800
- <xs:annotation>
801
- <xs:documentation>Tells which algorithm to use to generate the identifier</xs:documentation>
802
- </xs:annotation>
528
+ <xs:element name="id">
803
529
  <xs:complexType>
804
530
  <xs:sequence>
805
- <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
531
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
532
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
533
+ <xs:element ref="type" minOccurs="0" />
534
+ <xs:element ref="generator" minOccurs="0" />
806
535
  </xs:sequence>
807
- <xs:attribute name="class" type="xs:string" use="required" />
536
+ <xs:attribute name="name" type="xs:string" />
537
+ <xs:attribute name="node" type="xs:string" />
538
+ <xs:attribute name="access" type="xs:string" />
539
+ <xs:attribute name="column" type="xs:string" />
540
+ <xs:attribute name="type" type="xs:string" />
541
+ <xs:attribute name="length" type="xs:positiveInteger" />
542
+ <xs:attribute name="unsaved-value" type="xs:string" />
808
543
  </xs:complexType>
809
544
  </xs:element>
810
545
  <xs:element name="idbag">
811
546
  <xs:complexType>
812
547
  <xs:sequence>
813
548
  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
814
- <xs:choice minOccurs="0">
815
- <xs:element ref="jcs-cache" />
816
- <xs:element ref="cache" />
817
- </xs:choice>
549
+ <xs:element ref="subselect" minOccurs="0" />
550
+ <xs:element ref="cache" minOccurs="0" />
551
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
552
+ <xs:element ref="comment" minOccurs="0" />
818
553
  <xs:element ref="collection-id" />
819
554
  <xs:element ref="key" />
820
555
  <xs:choice>
@@ -823,30 +558,30 @@
823
558
  <xs:element ref="composite-element" />
824
559
  <xs:element ref="many-to-any" />
825
560
  </xs:choice>
826
- <xs:group ref="collectionCustomSQL" />
561
+ <xs:element ref="loader" minOccurs="0" />
562
+ <xs:element ref="sql-insert" minOccurs="0" />
563
+ <xs:element ref="sql-update" minOccurs="0" />
564
+ <xs:element ref="sql-delete" minOccurs="0" />
565
+ <xs:element ref="sql-delete-all" minOccurs="0" />
827
566
  <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
828
567
  </xs:sequence>
829
568
  <xs:attributeGroup ref="baseCollectionAttributes" />
830
- <xs:attribute name="order-by" type="xs:string" />
831
569
  </xs:complexType>
832
570
  </xs:element>
833
- <xs:element name="index">
571
+ <xs:element name="import">
834
572
  <xs:complexType>
835
- <xs:sequence>
836
- <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
837
- </xs:sequence>
838
- <xs:attribute name="column" type="xs:string" />
839
- <xs:attribute name="type" type="xs:string" />
840
- <xs:attribute name="length" type="xs:positiveInteger" use="optional" />
573
+ <xs:attribute name="class" use="required" type="xs:string" />
574
+ <xs:attribute name="rename" type="xs:string" />
841
575
  </xs:complexType>
842
576
  </xs:element>
843
- <xs:element name="list-index">
577
+ <xs:element name="index">
844
578
  <xs:complexType>
845
579
  <xs:sequence>
846
580
  <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
847
581
  </xs:sequence>
848
582
  <xs:attribute name="column" type="xs:string" />
849
- <xs:attribute name="base" type="xs:positiveInteger" use="optional" />
583
+ <xs:attribute name="type" type="xs:string" />
584
+ <xs:attribute name="length" type="xs:positiveInteger" />
850
585
  </xs:complexType>
851
586
  </xs:element>
852
587
  <xs:element name="index-many-to-any">
@@ -854,8 +589,9 @@
854
589
  <xs:sequence>
855
590
  <xs:element ref="column" maxOccurs="unbounded" />
856
591
  </xs:sequence>
857
- <xs:attribute name="id-type" type="xs:string" use="required" />
592
+ <xs:attribute name="id-type" use="required" type="xs:string" />
858
593
  <xs:attribute name="meta-type" type="xs:string" />
594
+ <xs:attribute name="column" type="xs:string" />
859
595
  </xs:complexType>
860
596
  </xs:element>
861
597
  <xs:element name="index-many-to-many">
@@ -863,441 +599,1092 @@
863
599
  <xs:sequence>
864
600
  <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
865
601
  </xs:sequence>
866
- <xs:attribute name="class" type="xs:string" use="required" />
602
+ <xs:attribute name="class" use="required" type="xs:string" />
603
+ <xs:attribute name="entity-name" type="xs:string" />
867
604
  <xs:attribute name="column" type="xs:string" />
868
- <xs:attribute name="foreign-key" type="xs:string" use="optional" />
605
+ <xs:attribute name="foreign-key" type="xs:string" />
606
+ </xs:complexType>
607
+ </xs:element>
608
+ <xs:element name="join">
609
+ <xs:complexType>
610
+ <xs:sequence>
611
+ <xs:element ref="subselect" minOccurs="0" />
612
+ <xs:element ref="comment" minOccurs="0" />
613
+ <xs:element ref="key" />
614
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
615
+ <xs:element ref="property" />
616
+ <xs:element ref="many-to-one" />
617
+ <xs:element ref="component" />
618
+ <xs:element ref="dynamic-component" />
619
+ <xs:element ref="any" />
620
+ <xs:element ref="map" />
621
+ <xs:element ref="set" />
622
+ <xs:element ref="list" />
623
+ <xs:element ref="bag" />
624
+ <xs:element ref="idbag" />
625
+ <xs:element ref="array" />
626
+ <xs:element ref="primitive-array" />
627
+ </xs:choice>
628
+ <xs:element ref="sql-insert" minOccurs="0" />
629
+ <xs:element ref="sql-update" minOccurs="0" />
630
+ <xs:element ref="sql-delete" minOccurs="0" />
631
+ </xs:sequence>
632
+ <xs:attribute name="table" use="required" type="xs:string" />
633
+ <xs:attribute name="schema" type="xs:string" />
634
+ <xs:attribute name="catalog" type="xs:string" />
635
+ <xs:attribute name="subselect" type="xs:string" />
636
+ <xs:attribute name="fetch" default="join">
637
+ <xs:simpleType>
638
+ <xs:restriction base="xs:string">
639
+ <xs:enumeration value="join" />
640
+ <xs:enumeration value="select" />
641
+ </xs:restriction>
642
+ </xs:simpleType>
643
+ </xs:attribute>
644
+ <xs:attribute name="inverse" default="false" type="xs:boolean">
645
+ </xs:attribute>
646
+ <xs:attribute name="optional" default="false" type="xs:boolean">
647
+ </xs:attribute>
648
+ </xs:complexType>
649
+ </xs:element>
650
+ <xs:element name="joined-subclass">
651
+ <xs:complexType>
652
+ <xs:sequence>
653
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
654
+ <xs:element ref="subselect" minOccurs="0" />
655
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
656
+ <xs:element ref="comment" minOccurs="0" />
657
+ <xs:element ref="tuplizer" minOccurs="0" maxOccurs="unbounded" />
658
+ <xs:element ref="key" />
659
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
660
+ <xs:element ref="property" />
661
+ <xs:element ref="many-to-one" />
662
+ <xs:element ref="one-to-one" />
663
+ <xs:element ref="component" />
664
+ <xs:element ref="dynamic-component" />
665
+ <xs:element ref="properties" />
666
+ <xs:element ref="any" />
667
+ <xs:element ref="map" />
668
+ <xs:element ref="set" />
669
+ <xs:element ref="list" />
670
+ <xs:element ref="bag" />
671
+ <xs:element ref="idbag" />
672
+ <xs:element ref="array" />
673
+ <xs:element ref="primitive-array" />
674
+ </xs:choice>
675
+ <xs:element ref="joined-subclass" minOccurs="0" maxOccurs="unbounded" />
676
+ <xs:element ref="loader" minOccurs="0" />
677
+ <xs:element ref="sql-insert" minOccurs="0" />
678
+ <xs:element ref="sql-update" minOccurs="0" />
679
+ <xs:element ref="sql-delete" minOccurs="0" />
680
+ <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
681
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
682
+ <xs:element ref="query" />
683
+ <xs:element ref="sql-query" />
684
+ </xs:choice>
685
+ </xs:sequence>
686
+ <xs:attribute name="entity-name" type="xs:string">
687
+ </xs:attribute>
688
+ <xs:attribute name="name" type="xs:string" />
689
+ <xs:attribute name="proxy" type="xs:string" />
690
+ <xs:attribute name="table" type="xs:string" />
691
+ <xs:attribute name="schema" type="xs:string" />
692
+ <xs:attribute name="catalog" type="xs:string" />
693
+ <xs:attribute name="subselect" type="xs:string" />
694
+ <xs:attribute name="dynamic-update" default="false" type="xs:boolean">
695
+ </xs:attribute>
696
+ <xs:attribute name="dynamic-insert" default="false" type="xs:boolean">
697
+ </xs:attribute>
698
+ <xs:attribute name="select-before-update" default="false" type="xs:boolean">
699
+ </xs:attribute>
700
+ <xs:attribute name="extends" type="xs:string" />
701
+ <xs:attribute name="lazy" type="xs:boolean">
702
+ </xs:attribute>
703
+ <xs:attribute name="abstract" type="xs:boolean">
704
+ </xs:attribute>
705
+ <xs:attribute name="persister" type="xs:string" />
706
+ <xs:attribute name="check" type="xs:string" />
707
+ <xs:attribute name="batch-size" type="xs:positiveInteger" />
708
+ <xs:attribute name="node" type="xs:string" />
869
709
  </xs:complexType>
870
710
  </xs:element>
871
- <xs:element name="jcs-cache" type="cacheType" />
872
711
  <xs:element name="key">
873
712
  <xs:complexType>
874
713
  <xs:sequence>
875
714
  <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
876
715
  </xs:sequence>
877
716
  <xs:attribute name="column" type="xs:string" />
878
- <xs:attribute name="foreign-key" type="xs:string" use="optional" />
879
- <xs:attribute name="property-ref" type="xs:string" use="optional" />
880
- <xs:attribute name="on-delete" type="ondelete" />
717
+ <xs:attribute name="property-ref" type="xs:string" />
718
+ <xs:attribute name="foreign-key" type="xs:string" />
719
+ <xs:attribute name="on-delete" default="noaction" type="ondelete">
720
+ </xs:attribute>
721
+ <xs:attribute name="not-null" type="xs:boolean">
722
+ </xs:attribute>
723
+ <xs:attribute name="update" type="xs:boolean">
724
+ </xs:attribute>
725
+ <xs:attribute name="unique" type="xs:boolean">
726
+ </xs:attribute>
881
727
  </xs:complexType>
882
728
  </xs:element>
883
729
  <xs:element name="key-many-to-one">
884
730
  <xs:complexType>
885
731
  <xs:sequence>
732
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
886
733
  <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
887
734
  </xs:sequence>
888
- <xs:attribute name="name" type="xs:string" use="required" />
735
+ <xs:attribute name="name" use="required" type="xs:string" />
889
736
  <xs:attribute name="access" type="xs:string" />
890
737
  <xs:attribute name="class" type="xs:string" />
738
+ <xs:attribute name="entity-name" type="xs:string" />
891
739
  <xs:attribute name="column" type="xs:string" />
892
- <xs:attribute name="foreign-key" type="xs:string" use="optional" />
893
- <xs:attribute name="lazy" type="restrictedLaziness" use="optional" />
894
- <xs:attribute name="not-found" type="notFoundMode" use="optional" />
740
+ <xs:attribute name="foreign-key" type="xs:string" />
741
+ <xs:attribute name="lazy" type="restrictedLaziness">
742
+ </xs:attribute>
895
743
  </xs:complexType>
896
744
  </xs:element>
897
745
  <xs:element name="key-property">
898
746
  <xs:complexType>
899
747
  <xs:sequence>
748
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
900
749
  <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
750
+ <xs:element ref="type" minOccurs="0" />
901
751
  </xs:sequence>
902
- <xs:attribute name="name" type="xs:string" use="required" />
752
+ <xs:attribute name="name" use="required" type="xs:string" />
903
753
  <xs:attribute name="access" type="xs:string" />
904
754
  <xs:attribute name="type" type="xs:string" />
905
755
  <xs:attribute name="column" type="xs:string" />
906
756
  <xs:attribute name="length" type="xs:positiveInteger" />
757
+ <xs:attribute name="node" type="xs:string" />
907
758
  </xs:complexType>
908
759
  </xs:element>
909
- <xs:element name="many-to-any">
760
+ <xs:element name="list">
910
761
  <xs:complexType>
911
762
  <xs:sequence>
912
- <xs:element ref="meta-value" minOccurs="0" maxOccurs="unbounded" />
913
- <xs:element ref="column" maxOccurs="unbounded" />
763
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
764
+ <xs:element ref="subselect" minOccurs="0" />
765
+ <xs:element ref="cache" minOccurs="0" />
766
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
767
+ <xs:element ref="comment" minOccurs="0" />
768
+ <xs:element ref="key" />
769
+ <xs:choice>
770
+ <xs:element ref="index" />
771
+ <xs:element ref="list-index" />
772
+ </xs:choice>
773
+ <xs:choice>
774
+ <xs:element ref="element" />
775
+ <xs:element ref="one-to-many" />
776
+ <xs:element ref="many-to-many" />
777
+ <xs:element ref="composite-element" />
778
+ <xs:element ref="many-to-any" />
779
+ </xs:choice>
780
+ <xs:element ref="loader" minOccurs="0" />
781
+ <xs:element ref="sql-insert" minOccurs="0" />
782
+ <xs:element ref="sql-update" minOccurs="0" />
783
+ <xs:element ref="sql-delete" minOccurs="0" />
784
+ <xs:element ref="sql-delete-all" minOccurs="0" />
785
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
914
786
  </xs:sequence>
915
- <xs:attribute name="id-type" type="xs:string" use="required" />
916
- <xs:attribute name="meta-type" type="xs:string" />
787
+ <xs:attributeGroup ref="baseCollectionAttributes" />
917
788
  </xs:complexType>
918
789
  </xs:element>
919
- <xs:element name="many-to-many">
790
+ <xs:element name="list-index">
920
791
  <xs:complexType>
921
792
  <xs:sequence>
922
- <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
923
- <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
924
- <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
793
+ <xs:element ref="column" minOccurs="0" />
925
794
  </xs:sequence>
926
- <xs:attribute name="class" type="xs:string" use="required" />
927
795
  <xs:attribute name="column" type="xs:string" />
928
- <xs:attribute name="foreign-key" type="xs:string" use="optional" />
929
- <xs:attribute name="outer-join" type="outerJoinStrategy" use="optional" />
930
- <xs:attribute name="fetch" type="fetchMode" use="optional" />
931
- <xs:attribute name="not-found" type="notFoundMode" use="optional" />
932
- <xs:attribute name="where" type="xs:string" use="optional" />
933
- <xs:attribute name="lazy" type="restrictedLaziness" use="optional" />
796
+ <xs:attribute name="base" type="xs:positiveInteger" use="optional" />
934
797
  </xs:complexType>
935
798
  </xs:element>
936
- <xs:element name="many-to-one">
799
+ <xs:element name="load-collection">
937
800
  <xs:complexType>
938
- <xs:sequence>
939
- <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
940
- <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
801
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
802
+ <xs:element ref="return-property" />
941
803
  </xs:sequence>
942
- <xs:attribute name="name" type="xs:string" use="required" />
943
- <xs:attribute name="access" type="xs:string" />
944
- <xs:attribute name="class" type="xs:string" />
945
- <xs:attribute name="column" type="xs:string" />
946
- <xs:attribute name="not-null" type="xs:boolean" default="false" />
947
- <xs:attribute name="unique" type="xs:boolean" default="false" />
948
- <xs:attribute name="unique-key" type="xs:string" />
949
- <xs:attribute name="index" type="xs:string" />
950
- <xs:attribute name="cascade" type="xs:string" />
951
- <xs:attribute name="outer-join" type="outerJoinStrategy" use="optional" />
952
- <xs:attribute name="fetch" type="fetchMode" use="optional" />
953
- <xs:attribute name="update" type="xs:boolean" />
954
- <xs:attribute name="insert" type="xs:boolean" />
955
- <xs:attribute name="foreign-key" type="xs:string" use="optional" />
956
- <xs:attribute name="property-ref" type="xs:string" />
957
- <xs:attribute name="not-found" type="notFoundMode" use="optional" />
958
- <xs:attribute name="lazy" type="laziness" use="optional" />
804
+ <xs:attribute name="alias" use="required" type="xs:string" />
805
+ <xs:attribute name="role" use="required" type="xs:string" />
806
+ <xs:attribute name="lock-mode" default="read" type="lockMode">
807
+ </xs:attribute>
959
808
  </xs:complexType>
960
809
  </xs:element>
961
- <xs:element name="meta">
962
- <xs:complexType mixed="true">
963
- <xs:attribute name="attribute" type="xs:string" use="required" />
964
- <xs:attribute name="inherit" type="xs:boolean" default="true" />
810
+ <xs:element name="loader">
811
+ <xs:complexType>
812
+ <xs:attribute name="query-ref" use="required" type="xs:string" />
965
813
  </xs:complexType>
966
814
  </xs:element>
967
- <xs:element name="nested-composite-element">
815
+ <xs:element name="many-to-any">
968
816
  <xs:complexType>
969
817
  <xs:sequence>
970
- <xs:element ref="parent" minOccurs="0" />
971
- <xs:choice minOccurs="0" maxOccurs="unbounded">
972
- <xs:element ref="property" />
973
- <xs:element ref="many-to-one" />
974
- <xs:element ref="nested-composite-element" />
975
- </xs:choice>
818
+ <xs:element ref="meta-value" minOccurs="0" maxOccurs="unbounded" />
819
+ <xs:element ref="column" maxOccurs="unbounded" />
976
820
  </xs:sequence>
977
- <xs:attribute name="class" type="xs:string" use="required" />
978
- <xs:attribute name="name" type="xs:string" use="required" />
979
- <xs:attribute name="access" type="xs:string" use="optional" />
980
- </xs:complexType>
981
- </xs:element>
982
- <xs:element name="one-to-many">
983
- <xs:complexType>
984
- <xs:attribute name="class" type="xs:string" use="required" />
985
- <xs:attribute name="not-found" type="notFoundMode" use="optional" />
821
+ <xs:attribute name="column" type="xs:string" />
822
+ <xs:attribute name="id-type" use="required" type="xs:string" />
823
+ <xs:attribute name="meta-type" type="xs:string" />
986
824
  </xs:complexType>
987
825
  </xs:element>
988
- <xs:element name="one-to-one">
826
+ <xs:element name="many-to-many">
989
827
  <xs:complexType>
990
828
  <xs:sequence>
991
829
  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
830
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
831
+ <xs:element ref="column" />
832
+ <xs:element ref="formula" />
833
+ </xs:choice>
834
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
992
835
  </xs:sequence>
993
- <xs:attribute name="name" type="xs:string" use="required" />
994
- <xs:attribute name="access" type="xs:string" />
995
836
  <xs:attribute name="class" type="xs:string" />
996
- <xs:attribute name="cascade" type="xs:string" />
997
- <xs:attribute name="outer-join" type="outerJoinStrategy" use="optional" />
998
- <xs:attribute name="fetch" type="fetchMode" use="optional" />
999
- <xs:attribute name="constrained" type="xs:boolean" default="false" />
1000
- <xs:attribute name="foreign-key" type="xs:string" use="optional" />
837
+ <xs:attribute name="node" type="xs:string" />
838
+ <xs:attribute name="embed-xml" default="true" type="xs:boolean">
839
+ </xs:attribute>
840
+ <xs:attribute name="entity-name" type="xs:string" />
841
+ <xs:attribute name="column" type="xs:string" />
842
+ <xs:attribute name="formula" type="xs:string" />
843
+ <xs:attribute name="not-found" default="exception" type="notFoundMode">
844
+ </xs:attribute>
845
+ <xs:attribute name="outer-join" type="outerJoinStrategy">
846
+ </xs:attribute>
847
+ <xs:attribute name="fetch" type="fetchMode">
848
+ </xs:attribute>
849
+ <xs:attribute name="lazy" type="restrictedLaziness">
850
+ </xs:attribute>
851
+ <xs:attribute name="foreign-key" type="xs:string" />
852
+ <xs:attribute name="unique" default="false" type="xs:boolean">
853
+ </xs:attribute>
854
+ <xs:attribute name="where" type="xs:string" />
855
+ <xs:attribute name="order-by" type="xs:string" />
1001
856
  <xs:attribute name="property-ref" type="xs:string" />
1002
- <xs:attribute name="lazy" type="laziness" use="optional" />
1003
857
  </xs:complexType>
1004
858
  </xs:element>
1005
- <xs:element name="param">
1006
- <xs:complexType mixed="true">
1007
- <xs:attribute name="name" type="xs:string" use="required" />
1008
- </xs:complexType>
1009
- </xs:element>
1010
- <xs:element name="parent">
1011
- <xs:complexType>
1012
- <xs:attribute name="name" type="xs:string" use="required" />
1013
- </xs:complexType>
1014
- </xs:element>
1015
- <xs:element name="primitive-array">
859
+ <xs:element name="many-to-one">
1016
860
  <xs:complexType>
1017
861
  <xs:sequence>
1018
862
  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1019
- <xs:choice minOccurs="0">
1020
- <xs:element ref="jcs-cache" />
1021
- <xs:element ref="cache" />
863
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
864
+ <xs:element ref="column" />
865
+ <xs:element ref="formula" />
1022
866
  </xs:choice>
1023
- <xs:element ref="key" />
1024
- <xs:element ref="index" />
1025
- <xs:element ref="element" />
1026
867
  </xs:sequence>
1027
- <xs:attribute name="name" type="xs:string" use="required" />
868
+ <xs:attribute name="name" use="required" type="xs:string" />
1028
869
  <xs:attribute name="access" type="xs:string" />
1029
- <xs:attribute name="table" type="xs:string" />
1030
- <xs:attribute name="schema" type="xs:string" />
1031
- <xs:attribute name="where" type="xs:string" />
870
+ <xs:attribute name="class" type="xs:string" />
871
+ <xs:attribute name="entity-name" type="xs:string" />
872
+ <xs:attribute name="column" type="xs:string" />
873
+ <xs:attribute name="not-null" type="xs:boolean">
874
+ </xs:attribute>
875
+ <xs:attribute name="unique" default="false" type="xs:boolean">
876
+ </xs:attribute>
877
+ <xs:attribute name="unique-key" type="xs:string" />
878
+ <xs:attribute name="index" type="xs:string" />
879
+ <xs:attribute name="cascade" type="xs:string" />
880
+ <xs:attribute name="outer-join" type="outerJoinStrategy">
881
+ </xs:attribute>
882
+ <xs:attribute name="fetch" type="fetchMode">
883
+ </xs:attribute>
884
+ <xs:attribute name="update" default="true" type="xs:boolean">
885
+ </xs:attribute>
886
+ <xs:attribute name="insert" default="true" type="xs:boolean">
887
+ </xs:attribute>
888
+ <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
889
+ </xs:attribute>
890
+ <xs:attribute name="foreign-key" type="xs:string" />
891
+ <xs:attribute name="property-ref" type="xs:string" />
892
+ <xs:attribute name="formula" type="xs:string" />
893
+ <xs:attribute name="lazy" type="laziness">
894
+ </xs:attribute>
895
+ <xs:attribute name="not-found" default="exception" type="notFoundMode">
896
+ </xs:attribute>
897
+ <xs:attribute name="node" type="xs:string" />
898
+ <xs:attribute name="embed-xml" default="true" type="xs:boolean">
899
+ </xs:attribute>
1032
900
  </xs:complexType>
1033
901
  </xs:element>
1034
- <xs:element name="query">
1035
- <xs:complexType mixed="true">
1036
- <xs:choice minOccurs="0" maxOccurs="unbounded">
1037
- <xs:element ref="query-param" />
1038
- </xs:choice>
1039
- <xs:attribute name="name" type="xs:string" use="required" />
1040
- <xs:attribute name="flush-mode" type="flushMode" use="optional" />
1041
- <xs:attribute name="cache-mode" type="cacheMode" />
1042
- <xs:attribute name="cacheable" type="xs:boolean" />
1043
- <xs:attribute name="cache-region" type="xs:string" />
1044
- <xs:attribute name="fetch-size" type="xs:int" />
1045
- <xs:attribute name="timeout" type="xs:int" />
1046
- <xs:attribute name="read-only" type="xs:boolean" />
902
+ <xs:element name="map">
903
+ <xs:complexType>
904
+ <xs:sequence>
905
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
906
+ <xs:element ref="subselect" minOccurs="0" />
907
+ <xs:element ref="cache" minOccurs="0" />
908
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
909
+ <xs:element ref="comment" minOccurs="0" />
910
+ <xs:element ref="key" />
911
+ <xs:choice>
912
+ <xs:element ref="map-key" />
913
+ <xs:element ref="composite-map-key" />
914
+ <xs:element ref="map-key-many-to-many" />
915
+ <xs:element ref="index" />
916
+ <xs:element ref="composite-index" />
917
+ <xs:element ref="index-many-to-many" />
918
+ <xs:element ref="index-many-to-any" />
919
+ </xs:choice>
920
+ <xs:choice>
921
+ <xs:element ref="element" />
922
+ <xs:element ref="one-to-many" />
923
+ <xs:element ref="many-to-many" />
924
+ <xs:element ref="composite-element" />
925
+ <xs:element ref="many-to-any" />
926
+ </xs:choice>
927
+ <xs:element ref="loader" minOccurs="0" />
928
+ <xs:element ref="sql-insert" minOccurs="0" />
929
+ <xs:element ref="sql-update" minOccurs="0" />
930
+ <xs:element ref="sql-delete" minOccurs="0" />
931
+ <xs:element ref="sql-delete-all" minOccurs="0" />
932
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
933
+ </xs:sequence>
934
+ <xs:attributeGroup ref="baseCollectionAttributes" />
935
+ <xs:attribute name="sort" type="xs:string" />
1047
936
  </xs:complexType>
1048
937
  </xs:element>
1049
- <xs:element name="return">
938
+ <xs:element name="map-key">
1050
939
  <xs:complexType>
1051
940
  <xs:sequence>
1052
- <xs:element ref="return-discriminator" minOccurs="0" maxOccurs="1" />
1053
- <xs:element ref="return-property" minOccurs="0" maxOccurs="unbounded" />
941
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
942
+ <xs:element ref="column" />
943
+ <xs:element ref="formula" />
944
+ </xs:choice>
1054
945
  </xs:sequence>
1055
- <xs:attribute name="alias" type="xs:string" use="optional" />
1056
- <xs:attribute name="class" type="xs:string" use="optional" />
1057
- <xs:attribute name="lock-mode" type="lockMode" use="optional" default="read" />
946
+ <xs:attribute name="column" type="xs:string" />
947
+ <xs:attribute name="formula" type="xs:string" />
948
+ <xs:attribute name="type" use="required" type="xs:string" />
949
+ <xs:attribute name="length" type="xs:positiveInteger" />
950
+ <xs:attribute name="node" type="xs:string" />
1058
951
  </xs:complexType>
1059
952
  </xs:element>
1060
- <xs:element name="return-discriminator">
953
+ <xs:element name="map-key-many-to-many">
1061
954
  <xs:complexType>
1062
- <xs:attribute name="column" type="xs:string" use="required" />
955
+ <xs:sequence>
956
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
957
+ <xs:element ref="column" />
958
+ <xs:element ref="formula" />
959
+ </xs:choice>
960
+ </xs:sequence>
961
+ <xs:attribute name="class" type="xs:string" />
962
+ <xs:attribute name="entity-name" type="xs:string" />
963
+ <xs:attribute name="column" type="xs:string" />
964
+ <xs:attribute name="formula" type="xs:string" />
965
+ <xs:attribute name="foreign-key" type="xs:string" />
1063
966
  </xs:complexType>
1064
967
  </xs:element>
1065
- <xs:element name="return-scalar">
1066
- <xs:complexType>
1067
- <xs:attribute name="column" type="xs:string" use="required" />
1068
- <xs:attribute name="type" type="xs:string" use="required" />
968
+ <xs:element name="meta">
969
+ <xs:complexType mixed="true">
970
+ <xs:attribute name="attribute" use="required" type="xs:string" />
971
+ <xs:attribute name="inherit" default="true" type="xs:boolean" />
1069
972
  </xs:complexType>
1070
973
  </xs:element>
1071
- <xs:element name="return-column">
974
+ <xs:element name="meta-value">
1072
975
  <xs:complexType>
1073
- <xs:attribute name="name" type="xs:string" use="required" />
976
+ <xs:attribute name="value" use="required" type="xs:string" />
977
+ <xs:attribute name="class" use="required" type="xs:string" />
1074
978
  </xs:complexType>
1075
979
  </xs:element>
1076
- <xs:element name="return-property">
980
+ <xs:element name="natural-id">
1077
981
  <xs:complexType>
1078
982
  <xs:sequence>
1079
- <xs:element ref="return-column" minOccurs="0" maxOccurs="unbounded" />
983
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
984
+ <xs:element ref="property" />
985
+ <xs:element ref="many-to-one" />
986
+ <xs:element ref="component" />
987
+ <xs:element ref="dynamic-component" />
988
+ <xs:element ref="any" />
989
+ </xs:choice>
1080
990
  </xs:sequence>
1081
- <xs:attribute name="name" type="xs:string" use="required" />
1082
- <xs:attribute name="column" type="xs:string" use="optional" />
1083
- </xs:complexType>
1084
- </xs:element>
1085
- <xs:element name="return-join">
1086
- <xs:complexType>
1087
- <xs:choice minOccurs="0" maxOccurs="unbounded">
1088
- <xs:element ref="return-property" />
1089
- </xs:choice>
1090
- <xs:attribute name="alias" type="xs:string" use="required" />
1091
- <xs:attribute name="property" type="xs:string" use="required" />
1092
- <xs:attribute name="lock-mode" type="lockMode" use="optional" default="read" />
991
+ <xs:attribute name="mutable" default="false" type="xs:boolean">
992
+ </xs:attribute>
1093
993
  </xs:complexType>
1094
994
  </xs:element>
1095
- <xs:element name="load-collection">
995
+ <xs:element name="nested-composite-element">
1096
996
  <xs:complexType>
1097
- <xs:choice minOccurs="0" maxOccurs="unbounded">
1098
- <xs:element ref="return-property" />
1099
- </xs:choice>
1100
- <xs:attribute name="alias" type="xs:string" use="required" />
1101
- <xs:attribute name="role" type="xs:string" use="required" />
1102
- <xs:attribute name="lock-mode" type="lockMode" use="optional" default="read" />
997
+ <xs:sequence>
998
+ <xs:element ref="parent" minOccurs="0" />
999
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1000
+ <xs:element ref="property" />
1001
+ <xs:element ref="many-to-one" />
1002
+ <xs:element ref="any" />
1003
+ <xs:element ref="nested-composite-element" />
1004
+ </xs:choice>
1005
+ </xs:sequence>
1006
+ <xs:attribute name="class" use="required" type="xs:string" />
1007
+ <xs:attribute name="name" use="required" type="xs:string" />
1008
+ <xs:attribute name="access" type="xs:string" />
1009
+ <xs:attribute name="node" type="xs:string" />
1103
1010
  </xs:complexType>
1104
1011
  </xs:element>
1105
- <xs:element name="synchronize">
1012
+ <xs:element name="one-to-many">
1106
1013
  <xs:complexType>
1107
- <xs:attribute name="table" type="xs:string" use="required" />
1108
- </xs:complexType>
1109
- </xs:element>
1110
- <xs:element name="sql-query">
1111
- <xs:complexType mixed="true">
1112
- <xs:choice minOccurs="0" maxOccurs="unbounded">
1113
- <xs:element ref="return" />
1114
- <xs:element ref="return-scalar" />
1115
- <xs:element ref="return-join" />
1116
- <xs:element ref="load-collection" />
1117
- <xs:element ref="synchronize" />
1118
- <xs:element ref="query-param" />
1119
- </xs:choice>
1120
- <xs:attribute name="name" type="xs:string" use="required" />
1121
- <xs:attribute name="resultset-ref" type="xs:string" use="optional" />
1122
- <xs:attribute name="flush-mode" type="flushMode" use="optional" />
1123
- <xs:attribute name="cache-mode" type="cacheMode" />
1124
- <xs:attribute name="callable" type="xs:boolean" />
1125
- <xs:attribute name="read-only" type="xs:boolean" />
1126
- <xs:attribute name="timeout" type="xs:int" />
1127
- <xs:attribute name="fetch-size" type="xs:int" />
1128
- <xs:attribute name="cache-region" type="xs:string" />
1129
- <xs:attribute name="cacheable" type="xs:boolean" />
1014
+ <xs:attribute name="class" type="xs:string" />
1015
+ <xs:attribute name="not-found" default="exception" type="notFoundMode">
1016
+ </xs:attribute>
1017
+ <xs:attribute name="node" type="xs:string" />
1018
+ <xs:attribute name="embed-xml" default="true" type="xs:boolean">
1019
+ </xs:attribute>
1020
+ <xs:attribute name="entity-name" type="xs:string" />
1130
1021
  </xs:complexType>
1131
1022
  </xs:element>
1132
- <xs:element name="list">
1023
+ <xs:element name="one-to-one">
1133
1024
  <xs:complexType>
1134
1025
  <xs:sequence>
1135
1026
  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1136
- <xs:choice minOccurs="0">
1137
- <xs:element ref="jcs-cache" />
1138
- <xs:element ref="cache" />
1139
- </xs:choice>
1140
- <xs:element ref="key" />
1141
- <xs:choice>
1142
- <xs:element ref="index" />
1143
- <xs:element ref="list-index" />
1144
- </xs:choice>
1145
- <xs:choice>
1146
- <xs:element ref="element" />
1147
- <xs:element ref="one-to-many" />
1148
- <xs:element ref="many-to-many" />
1149
- <xs:element ref="composite-element" />
1150
- <xs:element ref="many-to-any" />
1151
- </xs:choice>
1152
- <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
1027
+ <xs:element ref="formula" minOccurs="0" maxOccurs="unbounded" />
1153
1028
  </xs:sequence>
1154
- <xs:attributeGroup ref="baseCollectionAttributes" />
1029
+ <xs:attribute name="name" use="required" type="xs:string" />
1030
+ <xs:attribute name="formula" type="xs:string" />
1031
+ <xs:attribute name="access" type="xs:string" />
1032
+ <xs:attribute name="class" type="xs:string" />
1033
+ <xs:attribute name="entity-name" type="xs:string" />
1034
+ <xs:attribute name="cascade" type="xs:string" />
1035
+ <xs:attribute name="outer-join" type="outerJoinStrategy">
1036
+ </xs:attribute>
1037
+ <xs:attribute name="fetch" type="fetchMode">
1038
+ </xs:attribute>
1039
+ <xs:attribute name="constrained" default="false" type="xs:boolean">
1040
+ </xs:attribute>
1041
+ <xs:attribute name="foreign-key" type="xs:string" />
1042
+ <xs:attribute name="property-ref" type="xs:string" />
1043
+ <xs:attribute name="lazy" type="laziness">
1044
+ </xs:attribute>
1045
+ <xs:attribute name="node" type="xs:string" />
1046
+ <xs:attribute name="embed-xml" default="true" type="xs:boolean">
1047
+ </xs:attribute>
1155
1048
  </xs:complexType>
1156
1049
  </xs:element>
1157
- <xs:element name="bag">
1158
- <xs:complexType>
1159
- <xs:sequence>
1160
- <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1161
- <xs:choice minOccurs="0">
1162
- <xs:element ref="jcs-cache" />
1163
- <xs:element ref="cache" />
1164
- </xs:choice>
1165
- <xs:element ref="key" />
1166
- <xs:choice>
1167
- <xs:element ref="element" />
1168
- <xs:element ref="one-to-many" />
1169
- <xs:element ref="many-to-many" />
1170
- <xs:element ref="composite-element" />
1171
- <xs:element ref="many-to-any" />
1172
- </xs:choice>
1173
- <xs:group ref="collectionCustomSQL" />
1174
- <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
1175
- </xs:sequence>
1176
- <xs:attributeGroup ref="baseCollectionAttributes" />
1177
- <xs:attribute name="order-by" type="xs:string" />
1050
+ <xs:element name="param">
1051
+ <xs:complexType mixed="true">
1052
+ <xs:attribute name="name" use="required" type="xs:string" />
1178
1053
  </xs:complexType>
1179
1054
  </xs:element>
1180
- <xs:element name="set">
1055
+ <xs:element name="parent">
1181
1056
  <xs:complexType>
1182
- <xs:sequence>
1183
- <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1184
- <xs:choice minOccurs="0">
1185
- <xs:element ref="jcs-cache" />
1186
- <xs:element ref="cache" />
1187
- </xs:choice>
1188
- <xs:element ref="key" />
1189
- <xs:choice>
1190
- <xs:element ref="element" />
1191
- <xs:element ref="one-to-many" />
1192
- <xs:element ref="many-to-many" />
1193
- <xs:element ref="composite-element" />
1194
- <xs:element ref="many-to-any" />
1195
- </xs:choice>
1196
- <xs:group ref="collectionCustomSQL" />
1197
- <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
1198
- </xs:sequence>
1199
- <xs:attributeGroup ref="baseCollectionAttributes" />
1200
- <xs:attribute name="order-by" type="xs:string" />
1201
- <xs:attribute name="sort" type="xs:string" default="unsorted" />
1057
+ <xs:attribute name="name" use="required" type="xs:string" />
1202
1058
  </xs:complexType>
1203
1059
  </xs:element>
1204
- <xs:element name="map">
1060
+ <xs:element name="primitive-array">
1205
1061
  <xs:complexType>
1206
1062
  <xs:sequence>
1207
1063
  <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1208
- <xs:choice minOccurs="0">
1209
- <xs:element ref="jcs-cache" />
1210
- <xs:element ref="cache" />
1211
- </xs:choice>
1064
+ <xs:element ref="subselect" minOccurs="0" />
1065
+ <xs:element ref="cache" minOccurs="0" />
1066
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
1067
+ <xs:element ref="comment" minOccurs="0" />
1212
1068
  <xs:element ref="key" />
1213
1069
  <xs:choice>
1214
1070
  <xs:element ref="index" />
1215
- <xs:element ref="composite-index" />
1216
- <xs:element ref="index-many-to-many" />
1217
- <xs:element ref="index-many-to-any" />
1218
- </xs:choice>
1219
- <xs:choice>
1220
- <xs:element ref="element" />
1221
- <xs:element ref="one-to-many" />
1222
- <xs:element ref="many-to-many" />
1223
- <xs:element ref="composite-element" />
1224
- <xs:element ref="many-to-any" />
1071
+ <xs:element ref="list-index" />
1225
1072
  </xs:choice>
1226
- <xs:group ref="collectionCustomSQL" />
1227
- <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
1228
- </xs:sequence>
1229
- <xs:attributeGroup ref="baseCollectionAttributes" />
1230
- <xs:attribute name="order-by" type="xs:string" />
1231
- <xs:attribute name="sort" type="xs:string" default="unsorted" />
1232
- </xs:complexType>
1233
- </xs:element>
1234
- <xs:element name="type">
1235
- <xs:complexType>
1236
- <xs:sequence>
1237
- <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
1073
+ <xs:element ref="element" />
1074
+ <xs:element ref="loader" minOccurs="0" />
1075
+ <xs:element ref="sql-insert" minOccurs="0" />
1076
+ <xs:element ref="sql-update" minOccurs="0" />
1077
+ <xs:element ref="sql-delete" minOccurs="0" />
1078
+ <xs:element ref="sql-delete-all" minOccurs="0" />
1238
1079
  </xs:sequence>
1239
- <xs:attribute name="name" type="xs:string" use="required" />
1080
+ <xs:attribute name="name" use="required" type="xs:string">
1081
+ </xs:attribute>
1082
+ <xs:attribute name="access" type="xs:string" />
1083
+ <xs:attribute name="table" type="xs:string" />
1084
+ <xs:attribute name="schema" type="xs:string" />
1085
+ <xs:attribute name="catalog" type="xs:string" />
1086
+ <xs:attribute name="subselect" type="xs:string" />
1087
+ <xs:attribute name="mutable" default="true" type="xs:boolean">
1088
+ </xs:attribute>
1089
+ <xs:attribute name="where" type="xs:string" />
1090
+ <xs:attribute name="batch-size" type="xs:positiveInteger" />
1091
+ <xs:attribute name="outer-join">
1092
+ <xs:simpleType>
1093
+ <xs:restriction base="xs:string">
1094
+ <xs:enumeration value="true" />
1095
+ <xs:enumeration value="false" />
1096
+ <xs:enumeration value="auto" />
1097
+ </xs:restriction>
1098
+ </xs:simpleType>
1099
+ </xs:attribute>
1100
+ <xs:attribute name="fetch">
1101
+ <xs:simpleType>
1102
+ <xs:restriction base="xs:string">
1103
+ <xs:enumeration value="join" />
1104
+ <xs:enumeration value="select" />
1105
+ <xs:enumeration value="subselect" />
1106
+ </xs:restriction>
1107
+ </xs:simpleType>
1108
+ </xs:attribute>
1109
+ <xs:attribute name="persister" type="xs:string" />
1110
+ <xs:attribute name="collection-type" type="xs:string" />
1111
+ <xs:attribute name="check" type="xs:string" />
1112
+ <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
1113
+ </xs:attribute>
1114
+ <xs:attribute name="node" type="xs:string" />
1115
+ <xs:attribute name="embed-xml" default="true" type="xs:boolean">
1116
+ </xs:attribute>
1240
1117
  </xs:complexType>
1241
1118
  </xs:element>
1242
- <xs:simpleType name="cacheMode">
1243
- <xs:restriction base="xs:string">
1244
- <xs:enumeration value="get" />
1245
- <xs:enumeration value="ignore" />
1246
- <xs:enumeration value="normal" />
1247
- <xs:enumeration value="put" />
1248
- <xs:enumeration value="refresh" />
1249
- </xs:restriction>
1250
- </xs:simpleType>
1251
- <xs:element name="union-subclass">
1252
- <xs:annotation>
1253
- <xs:documentation>A subclass in a table-per-concrete-class mapping</xs:documentation>
1254
- </xs:annotation>
1119
+ <xs:element name="properties">
1255
1120
  <xs:complexType>
1256
1121
  <xs:sequence>
1257
- <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1258
1122
  <xs:choice minOccurs="0" maxOccurs="unbounded">
1259
1123
  <xs:element ref="property" />
1260
1124
  <xs:element ref="many-to-one" />
1261
- <xs:element ref="one-to-one" />
1262
1125
  <xs:element ref="component" />
1263
1126
  <xs:element ref="dynamic-component" />
1264
- <xs:element ref="any" />
1265
- <xs:element ref="map" />
1266
- <xs:element ref="set" />
1267
- <xs:element ref="list" />
1268
- <xs:element ref="bag" />
1269
- <xs:element ref="idbag" />
1270
- <xs:element ref="array" />
1271
- <xs:element ref="primitive-array" />
1272
1127
  </xs:choice>
1273
- <xs:element ref="union-subclass" minOccurs="0" maxOccurs="unbounded" />
1274
- <xs:group ref="classCustomSQL" />
1275
1128
  </xs:sequence>
1276
- <xs:attributeGroup ref="baseClassAttributes" />
1277
- <xs:attribute name="extends" type="xs:string" use="optional">
1278
- <xs:annotation>
1279
- <xs:documentation>Name of the root class. Required if the subclass is declared outside the declaration of its root class</xs:documentation>
1280
- </xs:annotation>
1129
+ <xs:attribute name="name" use="required" type="xs:string" />
1130
+ <xs:attribute name="unique" default="false" type="xs:boolean">
1281
1131
  </xs:attribute>
1282
- <xs:attribute name="schema" type="xs:string" use="optional" />
1283
- <xs:attribute name="table" type="xs:string" use="optional">
1284
- <xs:annotation>
1285
- <xs:documentation>default: unqualified classname</xs:documentation>
1286
- </xs:annotation>
1132
+ <xs:attribute name="insert" default="true" type="xs:boolean">
1287
1133
  </xs:attribute>
1288
- <xs:attribute name="check" type="xs:string" use="optional" />
1134
+ <xs:attribute name="update" default="true" type="xs:boolean">
1135
+ </xs:attribute>
1136
+ <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
1137
+ </xs:attribute>
1138
+ <xs:attribute name="node" type="xs:string" />
1289
1139
  </xs:complexType>
1290
1140
  </xs:element>
1291
- <xs:element name="query-param">
1141
+ <xs:element name="property">
1292
1142
  <xs:complexType>
1293
- <xs:attribute name="name" type="xs:string" use="required" />
1294
- <xs:attribute name="type" type="xs:string" use="required" />
1295
- </xs:complexType>
1296
- </xs:element>
1297
- <xs:simpleType name="ondelete">
1298
- <xs:restriction base="xs:string">
1143
+ <xs:sequence>
1144
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1145
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1146
+ <xs:element ref="column" />
1147
+ <xs:element ref="formula" />
1148
+ </xs:choice>
1149
+ <xs:element ref="type" minOccurs="0" />
1150
+ </xs:sequence>
1151
+ <xs:attribute name="name" use="required" type="xs:string" />
1152
+ <xs:attribute name="node" type="xs:string" />
1153
+ <xs:attribute name="access" type="xs:string" />
1154
+ <xs:attribute name="type" type="xs:string" />
1155
+ <xs:attribute name="column" type="xs:string" />
1156
+ <xs:attribute name="length" type="xs:positiveInteger" />
1157
+ <xs:attribute name="precision" type="xs:positiveInteger" />
1158
+ <xs:attribute name="scale" type="xs:positiveInteger" />
1159
+ <xs:attribute name="not-null" type="xs:boolean">
1160
+ </xs:attribute>
1161
+ <xs:attribute name="unique" default="false" type="xs:boolean">
1162
+ </xs:attribute>
1163
+ <xs:attribute name="unique-key" type="xs:string" />
1164
+ <xs:attribute name="index" type="xs:string" />
1165
+ <xs:attribute name="update" type="xs:boolean">
1166
+ </xs:attribute>
1167
+ <xs:attribute name="insert" type="xs:boolean">
1168
+ </xs:attribute>
1169
+ <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
1170
+ </xs:attribute>
1171
+ <xs:attribute name="formula" type="xs:string" />
1172
+ <xs:attribute name="lazy" default="false" type="xs:boolean">
1173
+ </xs:attribute>
1174
+ <xs:attribute name="generated" default="never" type="propertyGeneration">
1175
+ </xs:attribute>
1176
+ </xs:complexType>
1177
+ </xs:element>
1178
+ <xs:element name="query">
1179
+ <xs:complexType mixed="true">
1180
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1181
+ <xs:element ref="query-param" />
1182
+ </xs:choice>
1183
+ <xs:attribute name="name" use="required" type="xs:string" />
1184
+ <xs:attribute name="flush-mode" type="flushMode">
1185
+ </xs:attribute>
1186
+ <xs:attribute name="cacheable" default="false" type="xs:boolean">
1187
+ </xs:attribute>
1188
+ <xs:attribute name="cache-region" type="xs:string" />
1189
+ <xs:attribute name="fetch-size" type="xs:int" />
1190
+ <xs:attribute name="timeout" type="xs:positiveInteger" />
1191
+ <xs:attribute name="cache-mode" type="cacheMode">
1192
+ </xs:attribute>
1193
+ <xs:attribute name="read-only" type="xs:boolean">
1194
+ </xs:attribute>
1195
+ <xs:attribute name="comment" type="xs:string" />
1196
+ </xs:complexType>
1197
+ </xs:element>
1198
+ <xs:element name="query-param">
1199
+ <xs:complexType>
1200
+ <xs:attribute name="name" use="required" type="xs:string" />
1201
+ <xs:attribute name="type" use="required" type="xs:string" />
1202
+ </xs:complexType>
1203
+ </xs:element>
1204
+ <xs:element name="resultset">
1205
+ <xs:complexType>
1206
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1207
+ <xs:element ref="return-scalar" />
1208
+ <xs:element ref="return" />
1209
+ <xs:element ref="return-join" />
1210
+ <xs:element ref="load-collection" />
1211
+ </xs:choice>
1212
+ <xs:attribute name="name" use="required" type="xs:string" />
1213
+ </xs:complexType>
1214
+ </xs:element>
1215
+ <xs:element name="return">
1216
+ <xs:complexType>
1217
+ <xs:sequence>
1218
+ <xs:element ref="return-discriminator" minOccurs="0" maxOccurs="1" />
1219
+ <xs:element ref="return-property" minOccurs="0" maxOccurs="unbounded" />
1220
+ </xs:sequence>
1221
+ <xs:attribute name="alias" type="xs:string" />
1222
+ <xs:attribute name="entity-name" type="xs:string" />
1223
+ <xs:attribute name="class" type="xs:string" />
1224
+ <xs:attribute name="lock-mode" default="read" type="lockMode">
1225
+ </xs:attribute>
1226
+ </xs:complexType>
1227
+ </xs:element>
1228
+ <xs:element name="return-column">
1229
+ <xs:complexType>
1230
+ <xs:attribute name="name" use="required" type="xs:string" />
1231
+ </xs:complexType>
1232
+ </xs:element>
1233
+ <xs:element name="return-discriminator">
1234
+ <xs:complexType>
1235
+ <xs:attribute name="column" use="required" type="xs:string" />
1236
+ </xs:complexType>
1237
+ </xs:element>
1238
+ <xs:element name="return-join">
1239
+ <xs:complexType>
1240
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
1241
+ <xs:element ref="return-property" />
1242
+ </xs:sequence>
1243
+ <xs:attribute name="alias" use="required" type="xs:string" />
1244
+ <xs:attribute name="property" use="required" type="xs:string" />
1245
+ <xs:attribute name="lock-mode" default="read" type="lockMode">
1246
+ </xs:attribute>
1247
+ </xs:complexType>
1248
+ </xs:element>
1249
+ <xs:element name="return-property">
1250
+ <xs:complexType>
1251
+ <xs:sequence>
1252
+ <xs:element ref="return-column" minOccurs="0" maxOccurs="unbounded" />
1253
+ </xs:sequence>
1254
+ <xs:attribute name="name" use="required" type="xs:string" />
1255
+ <xs:attribute name="column" type="xs:string" />
1256
+ </xs:complexType>
1257
+ </xs:element>
1258
+ <xs:element name="return-scalar">
1259
+ <xs:complexType>
1260
+ <xs:attribute name="column" use="required" type="xs:string" />
1261
+ <xs:attribute name="type" type="xs:string" />
1262
+ </xs:complexType>
1263
+ </xs:element>
1264
+ <xs:element name="set">
1265
+ <xs:complexType>
1266
+ <xs:sequence>
1267
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1268
+ <xs:element ref="subselect" minOccurs="0" />
1269
+ <xs:element ref="cache" minOccurs="0" />
1270
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
1271
+ <xs:element ref="comment" minOccurs="0" />
1272
+ <xs:element ref="key" />
1273
+ <xs:choice>
1274
+ <xs:element ref="element" />
1275
+ <xs:element ref="one-to-many" />
1276
+ <xs:element ref="many-to-many" />
1277
+ <xs:element ref="composite-element" />
1278
+ <xs:element ref="many-to-any" />
1279
+ </xs:choice>
1280
+ <xs:element ref="loader" minOccurs="0" />
1281
+ <xs:element ref="sql-insert" minOccurs="0" />
1282
+ <xs:element ref="sql-update" minOccurs="0" />
1283
+ <xs:element ref="sql-delete" minOccurs="0" />
1284
+ <xs:element ref="sql-delete-all" minOccurs="0" />
1285
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
1286
+ </xs:sequence>
1287
+ <xs:attributeGroup ref="baseCollectionAttributes" />
1288
+ <xs:attribute name="sort" type="xs:string" />
1289
+ </xs:complexType>
1290
+ </xs:element>
1291
+ <xs:element name="sql-delete" type="customSQL">
1292
+ </xs:element>
1293
+ <xs:element name="sql-delete-all" type="customSQL">
1294
+ </xs:element>
1295
+ <xs:element name="sql-insert" type="customSQL">
1296
+ </xs:element>
1297
+ <xs:element name="sql-query">
1298
+ <xs:complexType mixed="true">
1299
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1300
+ <xs:element ref="return-scalar" />
1301
+ <xs:element ref="return" />
1302
+ <xs:element ref="return-join" />
1303
+ <xs:element ref="load-collection" />
1304
+ <xs:element ref="synchronize" />
1305
+ <xs:element ref="query-param" />
1306
+ </xs:choice>
1307
+ <xs:attribute name="name" use="required" type="xs:string" />
1308
+ <xs:attribute name="resultset-ref" type="xs:string" />
1309
+ <xs:attribute name="flush-mode" type="flushMode">
1310
+ </xs:attribute>
1311
+ <xs:attribute name="cacheable" default="false" type="xs:boolean">
1312
+ </xs:attribute>
1313
+ <xs:attribute name="cache-region" type="xs:string" />
1314
+ <xs:attribute name="fetch-size" type="xs:int" />
1315
+ <xs:attribute name="timeout" type="xs:positiveInteger" />
1316
+ <xs:attribute name="cache-mode" type="cacheMode">
1317
+ </xs:attribute>
1318
+ <xs:attribute name="read-only" type="xs:boolean">
1319
+ </xs:attribute>
1320
+ <xs:attribute name="comment" type="xs:string" />
1321
+ <xs:attribute name="callable" default="false" type="xs:boolean">
1322
+ </xs:attribute>
1323
+ </xs:complexType>
1324
+ </xs:element>
1325
+ <xs:element name="sql-update" type="customSQL">
1326
+ </xs:element>
1327
+ <xs:element name="subclass">
1328
+ <xs:complexType>
1329
+ <xs:sequence>
1330
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1331
+ <xs:element ref="tuplizer" minOccurs="0" maxOccurs="unbounded" />
1332
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
1333
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1334
+ <xs:element ref="property" />
1335
+ <xs:element ref="many-to-one" />
1336
+ <xs:element ref="one-to-one" />
1337
+ <xs:element ref="component" />
1338
+ <xs:element ref="dynamic-component" />
1339
+ <xs:element ref="any" />
1340
+ <xs:element ref="map" />
1341
+ <xs:element ref="set" />
1342
+ <xs:element ref="list" />
1343
+ <xs:element ref="bag" />
1344
+ <xs:element ref="idbag" />
1345
+ <xs:element ref="array" />
1346
+ <xs:element ref="primitive-array" />
1347
+ </xs:choice>
1348
+ <xs:element ref="join" minOccurs="0" maxOccurs="unbounded" />
1349
+ <xs:element ref="subclass" minOccurs="0" maxOccurs="unbounded" />
1350
+ <xs:element ref="loader" minOccurs="0" />
1351
+ <xs:element ref="sql-insert" minOccurs="0" />
1352
+ <xs:element ref="sql-update" minOccurs="0" />
1353
+ <xs:element ref="sql-delete" minOccurs="0" />
1354
+ <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
1355
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1356
+ <xs:element ref="query" />
1357
+ <xs:element ref="sql-query" />
1358
+ </xs:choice>
1359
+ </xs:sequence>
1360
+ <xs:attribute name="entity-name" type="xs:string" />
1361
+ <xs:attribute name="name" type="xs:string" />
1362
+ <xs:attribute name="proxy" type="xs:string" />
1363
+ <xs:attribute name="discriminator-value" type="xs:string" />
1364
+ <xs:attribute name="dynamic-update" default="false" type="xs:boolean">
1365
+ </xs:attribute>
1366
+ <xs:attribute name="dynamic-insert" default="false" type="xs:boolean">
1367
+ </xs:attribute>
1368
+ <xs:attribute name="select-before-update" default="false" type="xs:boolean">
1369
+ </xs:attribute>
1370
+ <xs:attribute name="extends" type="xs:string" />
1371
+ <xs:attribute name="lazy" type="xs:boolean">
1372
+ </xs:attribute>
1373
+ <xs:attribute name="abstract" type="xs:boolean">
1374
+ </xs:attribute>
1375
+ <xs:attribute name="persister" type="xs:string" />
1376
+ <xs:attribute name="batch-size" type="xs:positiveInteger" />
1377
+ <xs:attribute name="node" type="xs:string" />
1378
+ </xs:complexType>
1379
+ </xs:element>
1380
+ <xs:element name="subselect">
1381
+ <xs:complexType mixed="true">
1382
+ </xs:complexType>
1383
+ </xs:element>
1384
+ <xs:element name="synchronize">
1385
+ <xs:complexType>
1386
+ <xs:attribute name="table" use="required" type="xs:string" />
1387
+ </xs:complexType>
1388
+ </xs:element>
1389
+ <xs:element name="timestamp">
1390
+ <xs:complexType>
1391
+ <xs:sequence>
1392
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1393
+ </xs:sequence>
1394
+ <xs:attribute name="name" use="required" type="xs:string" />
1395
+ <xs:attribute name="node" type="xs:string" />
1396
+ <xs:attribute name="column" type="xs:string" />
1397
+ <xs:attribute name="access" type="xs:string" />
1398
+ <xs:attribute name="unsaved-value">
1399
+ <xs:simpleType>
1400
+ <xs:restriction base="xs:string">
1401
+ <xs:enumeration value="null" />
1402
+ <xs:enumeration value="undefined" />
1403
+ </xs:restriction>
1404
+ </xs:simpleType>
1405
+ </xs:attribute>
1406
+ <xs:attribute name="source" default="vm">
1407
+ <xs:simpleType>
1408
+ <xs:restriction base="xs:string">
1409
+ <xs:enumeration value="vm" />
1410
+ <xs:enumeration value="db" />
1411
+ </xs:restriction>
1412
+ </xs:simpleType>
1413
+ </xs:attribute>
1414
+ <xs:attribute name="generated" default="never" type="versionGeneration">
1415
+ </xs:attribute>
1416
+ </xs:complexType>
1417
+ </xs:element>
1418
+ <xs:element name="tuplizer">
1419
+ <xs:complexType>
1420
+ <xs:attribute name="entity-mode">
1421
+ <xs:simpleType>
1422
+ <xs:restriction base="xs:string">
1423
+ <xs:enumeration value="poco" />
1424
+ <xs:enumeration value="xml" />
1425
+ <xs:enumeration value="dynamic-map" />
1426
+ </xs:restriction>
1427
+ </xs:simpleType>
1428
+ </xs:attribute>
1429
+ <xs:attribute name="class" use="required" type="xs:string" />
1430
+ </xs:complexType>
1431
+ </xs:element>
1432
+ <xs:element name="type">
1433
+ <xs:complexType>
1434
+ <xs:sequence>
1435
+ <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
1436
+ </xs:sequence>
1437
+ <xs:attribute name="name" use="required" type="xs:string" />
1438
+ </xs:complexType>
1439
+ </xs:element>
1440
+ <xs:element name="typedef">
1441
+ <xs:complexType>
1442
+ <xs:sequence>
1443
+ <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
1444
+ </xs:sequence>
1445
+ <xs:attribute name="class" use="required" type="xs:string" />
1446
+ <xs:attribute name="name" use="required" type="xs:string" />
1447
+ </xs:complexType>
1448
+ </xs:element>
1449
+ <xs:element name="union-subclass">
1450
+ <xs:complexType>
1451
+ <xs:sequence>
1452
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1453
+ <xs:element ref="subselect" minOccurs="0" />
1454
+ <xs:element ref="synchronize" minOccurs="0" maxOccurs="unbounded" />
1455
+ <xs:element ref="comment" minOccurs="0" />
1456
+ <xs:element ref="tuplizer" minOccurs="0" maxOccurs="unbounded" />
1457
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1458
+ <xs:element ref="property" />
1459
+ <xs:element ref="many-to-one" />
1460
+ <xs:element ref="one-to-one" />
1461
+ <xs:element ref="component" />
1462
+ <xs:element ref="dynamic-component" />
1463
+ <xs:element ref="properties" />
1464
+ <xs:element ref="any" />
1465
+ <xs:element ref="map" />
1466
+ <xs:element ref="set" />
1467
+ <xs:element ref="list" />
1468
+ <xs:element ref="bag" />
1469
+ <xs:element ref="idbag" />
1470
+ <xs:element ref="array" />
1471
+ <xs:element ref="primitive-array" />
1472
+ </xs:choice>
1473
+ <xs:element ref="union-subclass" minOccurs="0" maxOccurs="unbounded" />
1474
+ <xs:element ref="loader" minOccurs="0" />
1475
+ <xs:element ref="sql-insert" minOccurs="0" />
1476
+ <xs:element ref="sql-update" minOccurs="0" />
1477
+ <xs:element ref="sql-delete" minOccurs="0" />
1478
+ <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
1479
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1480
+ <xs:element ref="query" />
1481
+ <xs:element ref="sql-query" />
1482
+ </xs:choice>
1483
+ </xs:sequence>
1484
+ <xs:attribute name="entity-name" type="xs:string" />
1485
+ <xs:attribute name="name" type="xs:string" />
1486
+ <xs:attribute name="proxy" type="xs:string" />
1487
+ <xs:attribute name="table" type="xs:string" />
1488
+ <xs:attribute name="schema" type="xs:string" />
1489
+ <xs:attribute name="catalog" type="xs:string" />
1490
+ <xs:attribute name="subselect" type="xs:string" />
1491
+ <xs:attribute name="dynamic-update" default="false" type="xs:boolean">
1492
+ </xs:attribute>
1493
+ <xs:attribute name="dynamic-insert" default="false" type="xs:boolean">
1494
+ </xs:attribute>
1495
+ <xs:attribute name="select-before-update" default="false" type="xs:boolean">
1496
+ </xs:attribute>
1497
+ <xs:attribute name="extends" type="xs:string" />
1498
+ <xs:attribute name="lazy" type="xs:boolean">
1499
+ </xs:attribute>
1500
+ <xs:attribute name="abstract" type="xs:boolean">
1501
+ </xs:attribute>
1502
+ <xs:attribute name="persister" type="xs:string" />
1503
+ <xs:attribute name="check" type="xs:string" />
1504
+ <xs:attribute name="batch-size" type="xs:positiveInteger" />
1505
+ <xs:attribute name="node" type="xs:string" />
1506
+ </xs:complexType>
1507
+ </xs:element>
1508
+ <xs:element name="version">
1509
+ <xs:complexType>
1510
+ <xs:sequence>
1511
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1512
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
1513
+ </xs:sequence>
1514
+ <xs:attribute name="name" use="required" type="xs:string" />
1515
+ <xs:attribute name="node" type="xs:string" />
1516
+ <xs:attribute name="access" type="xs:string" />
1517
+ <xs:attribute name="column" type="xs:string" />
1518
+ <xs:attribute name="type" default="Int32" type="xs:string" />
1519
+ <xs:attribute name="unsaved-value" type="xs:string">
1520
+ <xs:annotation>
1521
+ <xs:documentation>undefined|any|none|null|0|-1|... </xs:documentation>
1522
+ </xs:annotation>
1523
+ </xs:attribute>
1524
+ <xs:attribute name="generated" default="never" type="versionGeneration">
1525
+ </xs:attribute>
1526
+ <xs:attribute name="insert" type="xs:boolean">
1527
+ </xs:attribute>
1528
+ </xs:complexType>
1529
+ </xs:element>
1530
+ <xs:simpleType name="outerJoinStrategy">
1531
+ <xs:restriction base="xs:string">
1532
+ <xs:enumeration value="auto" />
1533
+ <xs:enumeration value="true" />
1534
+ <xs:enumeration value="false" />
1535
+ </xs:restriction>
1536
+ </xs:simpleType>
1537
+ <xs:simpleType name="collectionFetchMode">
1538
+ <xs:restriction base="xs:string">
1539
+ <xs:enumeration value="select" />
1540
+ <xs:enumeration value="join" />
1541
+ <xs:enumeration value="subselect" />
1542
+ </xs:restriction>
1543
+ </xs:simpleType>
1544
+ <xs:simpleType name="collectionLazy">
1545
+ <xs:restriction base="xs:string">
1546
+ <xs:enumeration value="true" />
1547
+ <xs:enumeration value="false" />
1548
+ <xs:enumeration value="extra" />
1549
+ </xs:restriction>
1550
+ </xs:simpleType>
1551
+ <xs:attributeGroup name="baseCollectionAttributes">
1552
+ <xs:attribute name="name" use="required" type="xs:string" />
1553
+ <xs:attribute name="access" type="xs:string" />
1554
+ <xs:attribute name="table" type="xs:string" />
1555
+ <xs:attribute name="schema" type="xs:string" />
1556
+ <xs:attribute name="catalog" type="xs:string" />
1557
+ <xs:attribute name="subselect" type="xs:string" />
1558
+ <xs:attribute name="lazy" type="collectionLazy">
1559
+ </xs:attribute>
1560
+ <xs:attribute name="inverse" default="false" type="xs:boolean">
1561
+ </xs:attribute>
1562
+ <xs:attribute name="mutable" default="true" type="xs:boolean">
1563
+ </xs:attribute>
1564
+ <xs:attribute name="cascade" type="xs:string" />
1565
+ <xs:attribute name="order-by" type="xs:string" />
1566
+ <xs:attribute name="where" type="xs:string" />
1567
+ <xs:attribute name="batch-size" type="xs:int" />
1568
+ <xs:attribute name="outer-join" type="outerJoinStrategy">
1569
+ </xs:attribute>
1570
+ <xs:attribute name="fetch" type="collectionFetchMode">
1571
+ </xs:attribute>
1572
+ <xs:attribute name="persister" type="xs:string" />
1573
+ <xs:attribute name="collection-type" type="xs:string" />
1574
+ <xs:attribute name="check" type="xs:string" />
1575
+ <xs:attribute name="optimistic-lock" default="true" type="xs:boolean">
1576
+ </xs:attribute>
1577
+ <xs:attribute name="node" type="xs:string" />
1578
+ <xs:attribute name="embed-xml" default="true" type="xs:boolean">
1579
+ </xs:attribute>
1580
+ <xs:attribute name="generic" type="xs:boolean" use="optional">
1581
+ <xs:annotation>
1582
+ <xs:documentation>The concrete collection should use a generic version or an object-based version.</xs:documentation>
1583
+ </xs:annotation>
1584
+ </xs:attribute>
1585
+ </xs:attributeGroup>
1586
+ <xs:simpleType name="optimisticLockMode">
1587
+ <xs:restriction base="xs:string">
1588
+ <xs:enumeration value="none" />
1589
+ <xs:enumeration value="version" />
1590
+ <xs:enumeration value="dirty" />
1591
+ <xs:enumeration value="all" />
1592
+ </xs:restriction>
1593
+ </xs:simpleType>
1594
+ <xs:simpleType name="polymorphismType">
1595
+ <xs:annotation>
1596
+ <xs:documentation>Types of polymorphism</xs:documentation>
1597
+ </xs:annotation>
1598
+ <xs:restriction base="xs:string">
1599
+ <xs:enumeration value="implicit" />
1600
+ <xs:enumeration value="explicit" />
1601
+ </xs:restriction>
1602
+ </xs:simpleType>
1603
+ <xs:simpleType name="unsavedValueType">
1604
+ <xs:restriction base="xs:string">
1605
+ <xs:enumeration value="undefined" />
1606
+ <xs:enumeration value="any" />
1607
+ <xs:enumeration value="none" />
1608
+ </xs:restriction>
1609
+ </xs:simpleType>
1610
+ <xs:simpleType name="ondelete">
1611
+ <xs:restriction base="xs:string">
1299
1612
  <xs:enumeration value="cascade" />
1300
1613
  <xs:enumeration value="noaction" />
1301
1614
  </xs:restriction>
1302
1615
  </xs:simpleType>
1616
+ <xs:simpleType name="restrictedLaziness">
1617
+ <xs:restriction base="xs:string">
1618
+ <xs:enumeration value="false" />
1619
+ <xs:enumeration value="proxy" />
1620
+ </xs:restriction>
1621
+ </xs:simpleType>
1622
+ <xs:simpleType name="lockMode">
1623
+ <xs:restriction base="xs:string">
1624
+ <xs:enumeration value="none" />
1625
+ <xs:enumeration value="read" />
1626
+ <xs:enumeration value="upgrade" />
1627
+ <xs:enumeration value="upgrade-nowait" />
1628
+ <xs:enumeration value="write" />
1629
+ </xs:restriction>
1630
+ </xs:simpleType>
1631
+ <xs:simpleType name="notFoundMode">
1632
+ <xs:restriction base="xs:string">
1633
+ <xs:enumeration value="ignore" />
1634
+ <xs:enumeration value="exception" />
1635
+ </xs:restriction>
1636
+ </xs:simpleType>
1637
+ <xs:simpleType name="fetchMode">
1638
+ <xs:restriction base="xs:string">
1639
+ <xs:enumeration value="select" />
1640
+ <xs:enumeration value="join" />
1641
+ </xs:restriction>
1642
+ </xs:simpleType>
1643
+ <xs:simpleType name="laziness">
1644
+ <xs:restriction base="xs:string">
1645
+ <xs:enumeration value="false" />
1646
+ <xs:enumeration value="proxy" />
1647
+ <xs:enumeration value="no-proxy" />
1648
+ </xs:restriction>
1649
+ </xs:simpleType>
1650
+ <xs:simpleType name="propertyGeneration">
1651
+ <xs:restriction base="xs:string">
1652
+ <xs:enumeration value="never" />
1653
+ <xs:enumeration value="insert" />
1654
+ <xs:enumeration value="always" />
1655
+ </xs:restriction>
1656
+ </xs:simpleType>
1657
+ <xs:simpleType name="flushMode">
1658
+ <xs:restriction base="xs:string">
1659
+ <xs:enumeration value="auto" />
1660
+ <xs:enumeration value="never" />
1661
+ <xs:enumeration value="always" />
1662
+ </xs:restriction>
1663
+ </xs:simpleType>
1664
+ <xs:simpleType name="cacheMode">
1665
+ <xs:restriction base="xs:string">
1666
+ <xs:enumeration value="get" />
1667
+ <xs:enumeration value="ignore" />
1668
+ <xs:enumeration value="normal" />
1669
+ <xs:enumeration value="put" />
1670
+ <xs:enumeration value="refresh" />
1671
+ </xs:restriction>
1672
+ </xs:simpleType>
1673
+ <xs:simpleType name="customSQLCheck">
1674
+ <xs:restriction base="xs:string">
1675
+ <xs:enumeration value="none" />
1676
+ <xs:enumeration value="rowcount" />
1677
+ <xs:enumeration value="param" />
1678
+ </xs:restriction>
1679
+ </xs:simpleType>
1680
+ <xs:complexType name="customSQL" mixed="true">
1681
+ <xs:attribute name="callable" type="xs:boolean" />
1682
+ <xs:attribute name="check" type="customSQLCheck" use="optional" />
1683
+ </xs:complexType>
1684
+ <xs:simpleType name="versionGeneration">
1685
+ <xs:restriction base="xs:string">
1686
+ <xs:enumeration value="never" />
1687
+ <xs:enumeration value="always" />
1688
+ </xs:restriction>
1689
+ </xs:simpleType>
1303
1690
  </xs:schema>