nhibernate 1.2.1.4000

Sign up to get free protection for your applications and to get access to all the features.
Files changed (175) hide show
  1. data/docs/nhibernate-configuration.xsd +79 -0
  2. data/docs/nhibernate-mapping.xsd +1197 -0
  3. data/docs/releasenotes.txt +978 -0
  4. data/lib/net-1.1/Bamboo.Prevalence.Util.dll +0 -0
  5. data/lib/net-1.1/Bamboo.Prevalence.dll +0 -0
  6. data/lib/net-1.1/Bamboo.Prevalence.license.txt +31 -0
  7. data/lib/net-1.1/Castle.DynamicProxy.dll +0 -0
  8. data/lib/net-1.1/Castle.DynamicProxy.license.txt +13 -0
  9. data/lib/net-1.1/Castle.DynamicProxy.xml +687 -0
  10. data/lib/net-1.1/HashCodeProvider.dll +0 -0
  11. data/lib/net-1.1/HashCodeProvider.license.txt +9 -0
  12. data/lib/net-1.1/ICSharpCode.SharpZipLib.dll +0 -0
  13. data/lib/net-1.1/Iesi.Collections.Test.dll +0 -0
  14. data/lib/net-1.1/Iesi.Collections.Test.dll-results.xml +125 -0
  15. data/lib/net-1.1/Iesi.Collections.dll +0 -0
  16. data/lib/net-1.1/Iesi.Collections.license.txt +9 -0
  17. data/lib/net-1.1/Iesi.Collections.xml +927 -0
  18. data/lib/net-1.1/Memcached.ClientLibrary.dll +0 -0
  19. data/lib/net-1.1/Memcached.ClientLibrary.license.txt +504 -0
  20. data/lib/net-1.1/NHibernate.Caches.MemCache.Tests.dll +0 -0
  21. data/lib/net-1.1/NHibernate.Caches.MemCache.Tests.dll.config +38 -0
  22. data/lib/net-1.1/NHibernate.Caches.MemCache.dll +0 -0
  23. data/lib/net-1.1/NHibernate.Caches.MemCache.xml +57 -0
  24. data/lib/net-1.1/NHibernate.Caches.Prevalence.Tests.dll +0 -0
  25. data/lib/net-1.1/NHibernate.Caches.Prevalence.Tests.dll-results.xml +50 -0
  26. data/lib/net-1.1/NHibernate.Caches.Prevalence.Tests.dll.config +46 -0
  27. data/lib/net-1.1/NHibernate.Caches.Prevalence.dll +0 -0
  28. data/lib/net-1.1/NHibernate.Caches.Prevalence.xml +149 -0
  29. data/lib/net-1.1/NHibernate.Caches.SysCache.Tests.dll +0 -0
  30. data/lib/net-1.1/NHibernate.Caches.SysCache.Tests.dll-results.xml +62 -0
  31. data/lib/net-1.1/NHibernate.Caches.SysCache.Tests.dll.config +36 -0
  32. data/lib/net-1.1/NHibernate.Caches.SysCache.dll +0 -0
  33. data/lib/net-1.1/NHibernate.Caches.SysCache.xml +144 -0
  34. data/lib/net-1.1/NHibernate.DomainModel.dll +0 -0
  35. data/lib/net-1.1/NHibernate.DomainModel.xml +1298 -0
  36. data/lib/net-1.1/NHibernate.Examples.dll +0 -0
  37. data/lib/net-1.1/NHibernate.Examples.dll.config +80 -0
  38. data/lib/net-1.1/NHibernate.JetDriver.dll +0 -0
  39. data/lib/net-1.1/NHibernate.JetDriver.xml +220 -0
  40. data/lib/net-1.1/NHibernate.Mapping.Attributes.Test.dll +0 -0
  41. data/lib/net-1.1/NHibernate.Mapping.Attributes.Test.dll-results.xml +31 -0
  42. data/lib/net-1.1/NHibernate.Mapping.Attributes.dll +0 -0
  43. data/lib/net-1.1/NHibernate.Mapping.Attributes.xml +2796 -0
  44. data/lib/net-1.1/NHibernate.Tasks.dll +0 -0
  45. data/lib/net-1.1/NHibernate.Tasks.xml +107 -0
  46. data/lib/net-1.1/NHibernate.Test.Performance.dll +0 -0
  47. data/lib/net-1.1/NHibernate.Test.Performance.dll.config +196 -0
  48. data/lib/net-1.1/NHibernate.Test.dll +0 -0
  49. data/lib/net-1.1/NHibernate.Test.dll-results.xml +2629 -0
  50. data/lib/net-1.1/NHibernate.Test.dll.config +255 -0
  51. data/lib/net-1.1/NHibernate.Tool.hbm2net.Console.exe +0 -0
  52. data/lib/net-1.1/NHibernate.Tool.hbm2net.Tests.dll +0 -0
  53. data/lib/net-1.1/NHibernate.Tool.hbm2net.Tests.dll-results.xml +52 -0
  54. data/lib/net-1.1/NHibernate.Tool.hbm2net.Tests.dll.config +23 -0
  55. data/lib/net-1.1/NHibernate.Tool.hbm2net.dll +0 -0
  56. data/lib/net-1.1/NHibernate.Tool.hbm2net.xml +1058 -0
  57. data/lib/net-1.1/NHibernate.UserTypes.Oracle.dll +0 -0
  58. data/lib/net-1.1/NHibernate.UserTypes.Oracle.xml +23 -0
  59. data/lib/net-1.1/NHibernate.UserTypes.SqlTypes.dll +0 -0
  60. data/lib/net-1.1/NHibernate.UserTypes.SqlTypes.xml +21 -0
  61. data/lib/net-1.1/NHibernate.UserTypes.Tests.dll +0 -0
  62. data/lib/net-1.1/NHibernate.UserTypes.Tests.dll-results.xml +85 -0
  63. data/lib/net-1.1/NHibernate.UserTypes.Tests.dll.config +67 -0
  64. data/lib/net-1.1/NHibernate.dll +0 -0
  65. data/lib/net-1.1/NHibernate.license.txt +460 -0
  66. data/lib/net-1.1/NHibernate.xml +29071 -0
  67. data/lib/net-1.1/NVelocity.dll +0 -0
  68. data/lib/net-1.1/NVelocity.license.txt +234 -0
  69. data/lib/net-1.1/Nullables.NHibernate.dll +0 -0
  70. data/lib/net-1.1/Nullables.NHibernate.xml +155 -0
  71. data/lib/net-1.1/Nullables.Tests.dll +0 -0
  72. data/lib/net-1.1/Nullables.Tests.dll-results.xml +139 -0
  73. data/lib/net-1.1/Nullables.Tests.dll.config +67 -0
  74. data/lib/net-1.1/Nullables.dll +0 -0
  75. data/lib/net-1.1/Nullables.xml +90 -0
  76. data/lib/net-1.1/hibernate.cfg.xml +24 -0
  77. data/lib/net-1.1/log.txt +0 -0
  78. data/lib/net-1.1/log4net.dll +0 -0
  79. data/lib/net-1.1/log4net.license.txt +201 -0
  80. data/lib/net-1.1/log4net.xml +28655 -0
  81. data/lib/net-1.1/nant/NAnt.Core.dll +0 -0
  82. data/lib/net-1.1/nant/NAnt.Core.license.txt +340 -0
  83. data/lib/net-1.1/nant/NAnt.Core.xml +14881 -0
  84. data/lib/net-1.1/nant/log4net.dll +0 -0
  85. data/lib/net-1.1/nmock.dll +0 -0
  86. data/lib/net-1.1/nmock.license.txt +34 -0
  87. data/lib/net-1.1/nunit.core.dll +0 -0
  88. data/lib/net-1.1/nunit.framework.dll +0 -0
  89. data/lib/net-1.1/nunit.framework.license.txt +14 -0
  90. data/lib/net-2.0/Bamboo.Prevalence.Util.dll +0 -0
  91. data/lib/net-2.0/Bamboo.Prevalence.dll +0 -0
  92. data/lib/net-2.0/Bamboo.Prevalence.license.txt +31 -0
  93. data/lib/net-2.0/Castle.DynamicProxy.dll +0 -0
  94. data/lib/net-2.0/Castle.DynamicProxy.license.txt +13 -0
  95. data/lib/net-2.0/Castle.DynamicProxy.xml +687 -0
  96. data/lib/net-2.0/ICSharpCode.SharpZipLib.dll +0 -0
  97. data/lib/net-2.0/Iesi.Collections.Test.dll +0 -0
  98. data/lib/net-2.0/Iesi.Collections.Test.dll-results.xml +211 -0
  99. data/lib/net-2.0/Iesi.Collections.dll +0 -0
  100. data/lib/net-2.0/Iesi.Collections.license.txt +9 -0
  101. data/lib/net-2.0/Iesi.Collections.xml +1887 -0
  102. data/lib/net-2.0/Lucene.Net.dll +0 -0
  103. data/lib/net-2.0/Lucene.Net.xml +6740 -0
  104. data/lib/net-2.0/Memcached.ClientLibrary.dll +0 -0
  105. data/lib/net-2.0/Memcached.ClientLibrary.license.txt +504 -0
  106. data/lib/net-2.0/NHibernate.Caches.MemCache.Tests.dll +0 -0
  107. data/lib/net-2.0/NHibernate.Caches.MemCache.Tests.dll.config +38 -0
  108. data/lib/net-2.0/NHibernate.Caches.MemCache.dll +0 -0
  109. data/lib/net-2.0/NHibernate.Caches.MemCache.xml +57 -0
  110. data/lib/net-2.0/NHibernate.Caches.Prevalence.Tests.dll +0 -0
  111. data/lib/net-2.0/NHibernate.Caches.Prevalence.Tests.dll-results.xml +50 -0
  112. data/lib/net-2.0/NHibernate.Caches.Prevalence.Tests.dll.config +46 -0
  113. data/lib/net-2.0/NHibernate.Caches.Prevalence.dll +0 -0
  114. data/lib/net-2.0/NHibernate.Caches.Prevalence.xml +149 -0
  115. data/lib/net-2.0/NHibernate.Caches.SysCache.Tests.dll +0 -0
  116. data/lib/net-2.0/NHibernate.Caches.SysCache.Tests.dll-results.xml +62 -0
  117. data/lib/net-2.0/NHibernate.Caches.SysCache.Tests.dll.config +36 -0
  118. data/lib/net-2.0/NHibernate.Caches.SysCache.dll +0 -0
  119. data/lib/net-2.0/NHibernate.Caches.SysCache.xml +144 -0
  120. data/lib/net-2.0/NHibernate.Caches.SysCache2.dll +0 -0
  121. data/lib/net-2.0/NHibernate.Caches.SysCache2.xml +805 -0
  122. data/lib/net-2.0/NHibernate.DomainModel.dll +0 -0
  123. data/lib/net-2.0/NHibernate.DomainModel.xml +1298 -0
  124. data/lib/net-2.0/NHibernate.Examples.dll +0 -0
  125. data/lib/net-2.0/NHibernate.Examples.dll.config +80 -0
  126. data/lib/net-2.0/NHibernate.JetDriver.dll +0 -0
  127. data/lib/net-2.0/NHibernate.JetDriver.xml +220 -0
  128. data/lib/net-2.0/NHibernate.Mapping.Attributes.Test.dll +0 -0
  129. data/lib/net-2.0/NHibernate.Mapping.Attributes.Test.dll-results.xml +31 -0
  130. data/lib/net-2.0/NHibernate.Mapping.Attributes.dll +0 -0
  131. data/lib/net-2.0/NHibernate.Mapping.Attributes.xml +2796 -0
  132. data/lib/net-2.0/NHibernate.Tasks.dll +0 -0
  133. data/lib/net-2.0/NHibernate.Tasks.xml +107 -0
  134. data/lib/net-2.0/NHibernate.Test.Performance.dll +0 -0
  135. data/lib/net-2.0/NHibernate.Test.Performance.dll.config +196 -0
  136. data/lib/net-2.0/NHibernate.Test.dll +0 -0
  137. data/lib/net-2.0/NHibernate.Test.dll-results.xml +2809 -0
  138. data/lib/net-2.0/NHibernate.Test.dll.config +255 -0
  139. data/lib/net-2.0/NHibernate.Tool.hbm2net.Console.exe +0 -0
  140. data/lib/net-2.0/NHibernate.Tool.hbm2net.Tests.dll +0 -0
  141. data/lib/net-2.0/NHibernate.Tool.hbm2net.Tests.dll-results.xml +52 -0
  142. data/lib/net-2.0/NHibernate.Tool.hbm2net.Tests.dll.config +23 -0
  143. data/lib/net-2.0/NHibernate.Tool.hbm2net.dll +0 -0
  144. data/lib/net-2.0/NHibernate.Tool.hbm2net.xml +1058 -0
  145. data/lib/net-2.0/NHibernate.UserTypes.Oracle.dll +0 -0
  146. data/lib/net-2.0/NHibernate.UserTypes.Oracle.xml +23 -0
  147. data/lib/net-2.0/NHibernate.UserTypes.SqlTypes.dll +0 -0
  148. data/lib/net-2.0/NHibernate.UserTypes.SqlTypes.xml +21 -0
  149. data/lib/net-2.0/NHibernate.UserTypes.Tests.dll +0 -0
  150. data/lib/net-2.0/NHibernate.UserTypes.Tests.dll-results.xml +85 -0
  151. data/lib/net-2.0/NHibernate.UserTypes.Tests.dll.config +67 -0
  152. data/lib/net-2.0/NHibernate.dll +0 -0
  153. data/lib/net-2.0/NHibernate.license.txt +460 -0
  154. data/lib/net-2.0/NHibernate.xml +29887 -0
  155. data/lib/net-2.0/NVelocity.dll +0 -0
  156. data/lib/net-2.0/NVelocity.license.txt +234 -0
  157. data/lib/net-2.0/Nullables.NHibernate.dll +0 -0
  158. data/lib/net-2.0/Nullables.NHibernate.xml +155 -0
  159. data/lib/net-2.0/Nullables.Tests.dll +0 -0
  160. data/lib/net-2.0/Nullables.Tests.dll-results.xml +139 -0
  161. data/lib/net-2.0/Nullables.Tests.dll.config +67 -0
  162. data/lib/net-2.0/Nullables.dll +0 -0
  163. data/lib/net-2.0/Nullables.xml +90 -0
  164. data/lib/net-2.0/hibernate.cfg.xml +24 -0
  165. data/lib/net-2.0/log.txt +0 -0
  166. data/lib/net-2.0/nant/NAnt.Core.dll +0 -0
  167. data/lib/net-2.0/nant/NAnt.Core.license.txt +340 -0
  168. data/lib/net-2.0/nant/NAnt.Core.xml +14881 -0
  169. data/lib/net-2.0/nant/log4net.dll +0 -0
  170. data/lib/net-2.0/nmock.dll +0 -0
  171. data/lib/net-2.0/nmock.license.txt +34 -0
  172. data/lib/net-2.0/nunit.core.dll +0 -0
  173. data/lib/net-2.0/nunit.framework.dll +0 -0
  174. data/lib/net-2.0/nunit.framework.license.txt +14 -0
  175. metadata +268 -0
@@ -0,0 +1,79 @@
1
+ <xs:schema targetNamespace='urn:nhibernate-configuration-2.2' xmlns='urn:nhibernate-configuration-2.2'
2
+ xmlns:xs='http://www.w3.org/2001/XMLSchema'>
3
+ <xs:annotation>
4
+ <xs:documentation>
5
+ This schema was automatically generated by Syntext Dtd2Schema
6
+ conversion tool (from file: hibernate-configuration-2.0.dtd)
7
+ Copyright (C) 2002, 2003 Syntext Inc. See http://www.syntext.com for updates.
8
+ </xs:documentation>
9
+ </xs:annotation>
10
+
11
+ <!-- Type definitions -->
12
+ <xs:simpleType name='cacheUsage'>
13
+ <xs:restriction base='xs:string'>
14
+ <xs:enumeration value='read-only' />
15
+ <xs:enumeration value='read-write' />
16
+ <xs:enumeration value='nonstrict-read-write' />
17
+ </xs:restriction>
18
+ </xs:simpleType>
19
+ <xs:complexType name="classCache">
20
+ <xs:attribute name='class' use='required' />
21
+ <xs:attribute name='region' />
22
+ <xs:attribute name='usage' use='required' type="cacheUsage" />
23
+ </xs:complexType>
24
+ <xs:complexType name="collectionCache">
25
+ <xs:attribute name='collection' use='required' />
26
+ <xs:attribute name='region' />
27
+ <xs:attribute name='usage' use='required' type="cacheUsage" />
28
+ </xs:complexType>
29
+
30
+ <xs:element name='hibernate-configuration'>
31
+ <xs:complexType>
32
+ <xs:sequence>
33
+ <xs:element ref='session-factory' />
34
+ </xs:sequence>
35
+ </xs:complexType>
36
+ </xs:element>
37
+
38
+ <!-- Caches -->
39
+ <xs:element name="jcs-class-cache" type="classCache" />
40
+ <xs:element name="class-cache" type="classCache" />
41
+ <xs:element name="jcs-collection-cache" type="collectionCache" />
42
+ <xs:element name="collection-cache" type="collectionCache" />
43
+
44
+ <xs:element name='mapping'>
45
+ <xs:annotation>
46
+ <xs:documentation>
47
+ There are 3 possible combinations of mapping attributes
48
+ 1 - resource &amp; assembly: NHibernate will read the mapping resource from the specified assembly
49
+ 2 - file only: NHibernate will read the mapping from the file.
50
+ 3 - assembly only: NHibernate will find all the resources ending in hbm.xml from the assembly.
51
+ </xs:documentation>
52
+ </xs:annotation>
53
+ <xs:complexType>
54
+ <xs:attribute name='resource' />
55
+ <xs:attribute name='file' />
56
+ <xs:attribute name='assembly' />
57
+ </xs:complexType>
58
+ </xs:element>
59
+ <xs:element name='property'>
60
+ <xs:complexType mixed='true'>
61
+ <xs:attribute name='name' use='required' />
62
+ </xs:complexType>
63
+ </xs:element>
64
+ <xs:element name='session-factory'>
65
+ <xs:complexType>
66
+ <xs:sequence>
67
+ <xs:element ref='property' minOccurs='0' maxOccurs='unbounded' />
68
+ <xs:element ref='mapping' minOccurs='0' maxOccurs='unbounded' />
69
+ <xs:choice minOccurs='0' maxOccurs='unbounded'>
70
+ <xs:element ref='jcs-class-cache' />
71
+ <xs:element ref='class-cache' />
72
+ <xs:element ref='jcs-collection-cache' />
73
+ <xs:element ref='collection-cache' />
74
+ </xs:choice>
75
+ </xs:sequence>
76
+ <xs:attribute name='name' />
77
+ </xs:complexType>
78
+ </xs:element>
79
+ </xs:schema>
@@ -0,0 +1,1197 @@
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:restriction>
41
+ </xs:simpleType>
42
+ <xs:simpleType name="cascadeStyle">
43
+ <xs:annotation>
44
+ <xs:documentation>Rule as to how to operate on child objects (for more information, read topics about "persistence by reachability" or "transparent/transitive/cascading persistence")</xs:documentation>
45
+ </xs:annotation>
46
+ <xs:restriction base="xs:string">
47
+ <xs:enumeration value="all" />
48
+ <xs:enumeration value="all-delete-orphan" />
49
+ <xs:enumeration value="none" />
50
+ <xs:enumeration value="save-update" />
51
+ <xs:enumeration value="delete" />
52
+ <xs:enumeration value="delete-orphan" />
53
+ </xs:restriction>
54
+ </xs:simpleType>
55
+ <xs:simpleType name="optimisticLockMode">
56
+ <xs:restriction base="xs:string">
57
+ <xs:enumeration value="none" />
58
+ <xs:enumeration value="version" />
59
+ <xs:enumeration value="dirty" />
60
+ <xs:enumeration value="all" />
61
+ </xs:restriction>
62
+ </xs:simpleType>
63
+ <xs:simpleType name="lockMode">
64
+ <xs:restriction base="xs:string">
65
+ <xs:enumeration value="none" />
66
+ <xs:enumeration value="read" />
67
+ <xs:enumeration value="upgrade" />
68
+ <xs:enumeration value="upgrade-nowait" />
69
+ <xs:enumeration value="write" />
70
+ </xs:restriction>
71
+ </xs:simpleType>
72
+ <xs:simpleType name="laziness">
73
+ <xs:restriction base="xs:string">
74
+ <xs:enumeration value="false" />
75
+ <xs:enumeration value="proxy" />
76
+ </xs:restriction>
77
+ </xs:simpleType>
78
+ <xs:simpleType name="versionGeneration">
79
+ <xs:restriction base="xs:string">
80
+ <xs:enumeration value="never" />
81
+ <xs:enumeration value="always" />
82
+ </xs:restriction>
83
+ </xs:simpleType>
84
+ <xs:simpleType name="propertyGeneration">
85
+ <xs:restriction base="xs:string">
86
+ <xs:enumeration value="never" />
87
+ <xs:enumeration value="insert" />
88
+ <xs:enumeration value="always" />
89
+ </xs:restriction>
90
+ </xs:simpleType>
91
+
92
+ <!--
93
+ This is the same as laziness for now, but H3.2 allows lazy="no-proxy"
94
+ in some elements but not in others, so separate types are used.
95
+ -->
96
+ <xs:simpleType name="restrictedLaziness">
97
+ <xs:restriction base="xs:string">
98
+ <xs:enumeration value="false" />
99
+ <xs:enumeration value="proxy" />
100
+ </xs:restriction>
101
+ </xs:simpleType>
102
+ <xs:attributeGroup name="baseClassAttributes">
103
+ <xs:attribute name="name" type="xs:string" use="required" />
104
+ <xs:attribute name="proxy" type="xs:string" use="optional">
105
+ <xs:annotation>
106
+ <xs:documentation>default: no proxy interface</xs:documentation>
107
+ </xs:annotation>
108
+ </xs:attribute>
109
+ <xs:attribute name="lazy" type="xs:boolean" use="optional">
110
+ <xs:annotation>
111
+ <xs:documentation>Enable the lazy loading of this class in associations</xs:documentation>
112
+ </xs:annotation>
113
+ </xs:attribute>
114
+ <xs:attribute name="dynamic-update" type="xs:boolean" use="optional" default="false" />
115
+ <xs:attribute name="dynamic-insert" type="xs:boolean" use="optional" default="false" />
116
+ <xs:attribute name="select-before-update" type="xs:boolean" use="optional" default="false" />
117
+ </xs:attributeGroup>
118
+ <xs:attributeGroup name="baseCollectionAttributes">
119
+ <xs:attribute name="name" type="xs:string" use="required" />
120
+ <xs:attribute name="access" type="xs:string" use="optional" />
121
+ <xs:attribute name="table" type="xs:string" use="optional" />
122
+ <xs:attribute name="schema" type="xs:string" use="optional" />
123
+ <xs:attribute name="lazy" type="xs:boolean" use="optional">
124
+ <xs:annotation>
125
+ <xs:documentation>Enable the lazy loading of this collection</xs:documentation>
126
+ </xs:annotation>
127
+ </xs:attribute>
128
+ <xs:attribute name="outer-join" type="outerJoinStrategy" use="optional" />
129
+ <xs:attribute name="fetch" type="collectionFetchMode" use="optional" />
130
+ <xs:attribute name="cascade" type="cascadeStyle" use="optional" />
131
+ <xs:attribute name="where" type="xs:string" use="optional" />
132
+ <xs:attribute name="inverse" type="xs:boolean" use="optional" default="false" />
133
+ <xs:attribute name="persister" type="xs:string" use="optional" />
134
+ <xs:attribute name="batch-size" type="xs:positiveInteger" use="optional" default="1" />
135
+ <xs:attribute name="check" type="xs:string" use="optional" />
136
+ <xs:attribute name="collection-type" type="xs:string" use="optional" />
137
+ <xs:attribute name="optimistic-lock" type="xs:boolean" use="optional" />
138
+ <xs:attribute name="generic" type="xs:boolean" use="optional">
139
+ <xs:annotation>
140
+ <xs:documentation>The concrete collection should use a generic version or an object-based version.</xs:documentation>
141
+ </xs:annotation>
142
+ </xs:attribute>
143
+ </xs:attributeGroup>
144
+ <xs:element name="filter">
145
+ <xs:complexType mixed="true">
146
+ <xs:attribute name="name" type="xs:string" use="required" />
147
+ <xs:attribute name="condition" type="xs:string" use="optional" />
148
+ </xs:complexType>
149
+ </xs:element>
150
+ <xs:complexType name="cacheType">
151
+ <xs:attribute name="region" type="xs:string" use="optional" />
152
+ <xs:attribute name="usage" use="required">
153
+ <xs:simpleType>
154
+ <xs:restriction base="xs:string">
155
+ <xs:enumeration value="read-only" />
156
+ <xs:enumeration value="read-write" />
157
+ <xs:enumeration value="nonstrict-read-write" />
158
+ </xs:restriction>
159
+ </xs:simpleType>
160
+ </xs:attribute>
161
+ </xs:complexType>
162
+ <xs:simpleType name="unsavedValueType">
163
+ <xs:annotation>
164
+ <xs:documentation>Values used to restrict composite-id, does not apply to meta/column/generator</xs:documentation>
165
+ </xs:annotation>
166
+ <xs:restriction base="xs:string">
167
+ <xs:enumeration value="any" />
168
+ <xs:enumeration value="none" />
169
+ </xs:restriction>
170
+ </xs:simpleType>
171
+ <xs:simpleType name="notFoundMode">
172
+ <xs:restriction base="xs:string">
173
+ <xs:enumeration value="ignore" />
174
+ <xs:enumeration value="exception" />
175
+ </xs:restriction>
176
+ </xs:simpleType>
177
+ <xs:complexType name="customSQL" mixed="true">
178
+ <!--<xs:attribute name="callable" type="xs:boolean" use="optional" default="false" />-->
179
+ <xs:attribute name="check" type="customSQLCheck" use="optional" />
180
+ </xs:complexType>
181
+ <xs:element name="sql-insert" type="customSQL" />
182
+ <xs:element name="sql-update" type="customSQL" />
183
+ <xs:element name="sql-delete" type="customSQL" />
184
+ <xs:element name="sql-delete-all" type="customSQL" />
185
+ <xs:simpleType name="customSQLCheck">
186
+ <xs:restriction base="xs:string">
187
+ <xs:enumeration value="none" />
188
+ <xs:enumeration value="rowcount" />
189
+ <!-- <xs:enumeration value="param" /> -->
190
+ </xs:restriction>
191
+ </xs:simpleType>
192
+ <xs:element name="loader">
193
+ <xs:complexType>
194
+ <xs:attribute name="query-ref" type="xs:string" use="required" />
195
+ </xs:complexType>
196
+ </xs:element>
197
+ <xs:group name="classCustomSQL">
198
+ <xs:sequence>
199
+ <xs:element ref="loader" minOccurs="0" maxOccurs="1" />
200
+ <xs:element ref="sql-insert" minOccurs="0" maxOccurs="1" />
201
+ <xs:element ref="sql-update" minOccurs="0" maxOccurs="1" />
202
+ <xs:element ref="sql-delete" minOccurs="0" maxOccurs="1" />
203
+ </xs:sequence>
204
+ </xs:group>
205
+ <xs:group name="collectionCustomSQL">
206
+ <xs:sequence>
207
+ <xs:element ref="loader" minOccurs="0" maxOccurs="1" />
208
+ <xs:element ref="sql-insert" minOccurs="0" maxOccurs="1" />
209
+ <xs:element ref="sql-update" minOccurs="0" maxOccurs="1" />
210
+ <xs:element ref="sql-delete" minOccurs="0" maxOccurs="1" />
211
+ <xs:element ref="sql-delete-all" minOccurs="0" maxOccurs="1" />
212
+ </xs:sequence>
213
+ </xs:group>
214
+ <xs:element name="resultset">
215
+ <xs:complexType>
216
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
217
+ <xs:element ref="return-scalar" />
218
+ <xs:element ref="return" />
219
+ <xs:element ref="return-join" />
220
+ <xs:element ref="load-collection" />
221
+ </xs:choice>
222
+ <xs:attribute name="name" type="xs:string" use="required" />
223
+ </xs:complexType>
224
+ </xs:element>
225
+ <xs:element name="hibernate-mapping">
226
+ <xs:annotation>
227
+ <xs:documentation>hibernate-mapping is the document root</xs:documentation>
228
+ </xs:annotation>
229
+ <xs:complexType>
230
+ <xs:sequence>
231
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
232
+ <xs:element ref="import" minOccurs="0" maxOccurs="unbounded" />
233
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
234
+ <xs:element ref="class" />
235
+ <xs:element ref="subclass" />
236
+ <xs:element ref="joined-subclass" />
237
+ </xs:choice>
238
+ <xs:element ref="resultset" minOccurs="0" maxOccurs="unbounded" />
239
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
240
+ <xs:element ref="query" />
241
+ <xs:element ref="sql-query" />
242
+ </xs:choice>
243
+ <xs:element ref="filter-def" minOccurs="0" maxOccurs="unbounded" />
244
+ <xs:element ref="database-object" minOccurs="0" maxOccurs="unbounded" />
245
+ </xs:sequence>
246
+ <xs:attribute name="schema" type="xs:string" use="optional">
247
+ <xs:annotation>
248
+ <xs:documentation>defaults to none used</xs:documentation>
249
+ </xs:annotation>
250
+ </xs:attribute>
251
+ <xs:attribute name="default-cascade" type="cascadeStyle" use="optional" default="none" />
252
+ <xs:attribute name="default-access" type="xs:string" use="optional" default="property">
253
+ <xs:annotation>
254
+ <xs:documentation>Default property access setting</xs:documentation>
255
+ </xs:annotation>
256
+ </xs:attribute>
257
+ <xs:attribute name="auto-import" type="xs:boolean" use="optional" default="true" />
258
+ <xs:attribute name="namespace" type="xs:string" use="optional">
259
+ <xs:annotation>
260
+ <xs:documentation>Namespace used to find not-Fully Qualified Type Names</xs:documentation>
261
+ </xs:annotation>
262
+ </xs:attribute>
263
+ <xs:attribute name="assembly" type="xs:string" use="optional">
264
+ <xs:annotation>
265
+ <xs:documentation>Assembly used to find not-Fully Qualified Type Names</xs:documentation>
266
+ </xs:annotation>
267
+ </xs:attribute>
268
+ <xs:attribute name="default-lazy" type="xs:boolean" use="optional" default="true">
269
+ <xs:annotation>
270
+ <xs:documentation>Default value of the lazy attribute for persistent classes and collections</xs:documentation>
271
+ </xs:annotation>
272
+ </xs:attribute>
273
+ </xs:complexType>
274
+ </xs:element>
275
+ <xs:element name="filter-param">
276
+ <xs:complexType>
277
+ <xs:attribute name="name" type="xs:string" use="required" />
278
+ <xs:attribute name="type" type="xs:string" use="required" />
279
+ </xs:complexType>
280
+ </xs:element>
281
+ <xs:element name="filter-def">
282
+ <xs:complexType mixed="true">
283
+ <xs:sequence>
284
+ <xs:element ref="filter-param" minOccurs="0" maxOccurs="unbounded" />
285
+ </xs:sequence>
286
+ <xs:attribute name="name" type="xs:string" use="required" />
287
+ <xs:attribute name="condition" type="xs:string" use="optional" default="" />
288
+ </xs:complexType>
289
+ </xs:element>
290
+ <xs:element name="create">
291
+ <xs:complexType mixed="true" />
292
+ </xs:element>
293
+ <xs:element name="drop">
294
+ <xs:complexType mixed="true" />
295
+ </xs:element>
296
+ <xs:element name="dialect-scope">
297
+ <xs:complexType>
298
+ <xs:attribute name="name" type="xs:string" use="required" />
299
+ </xs:complexType>
300
+ </xs:element>
301
+ <xs:element name="definition">
302
+ <xs:complexType>
303
+ <xs:sequence>
304
+ <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
305
+ </xs:sequence>
306
+ <xs:attribute name="class" type="xs:string" use="required" />
307
+ </xs:complexType>
308
+ </xs:element>
309
+ <xs:element name="database-object">
310
+ <xs:complexType>
311
+ <xs:sequence>
312
+ <xs:choice>
313
+ <xs:sequence>
314
+ <xs:element ref="create" />
315
+ <xs:element ref="drop" />
316
+ </xs:sequence>
317
+ <xs:sequence>
318
+ <xs:element ref="definition" />
319
+ </xs:sequence>
320
+ </xs:choice>
321
+ <xs:element ref="dialect-scope" minOccurs="0" maxOccurs="unbounded" />
322
+ </xs:sequence>
323
+ </xs:complexType>
324
+ </xs:element>
325
+ <xs:element name="import">
326
+ <xs:annotation>
327
+ <xs:documentation>An explicit query language "import"</xs:documentation>
328
+ </xs:annotation>
329
+ <xs:complexType>
330
+ <xs:attribute name="class" type="xs:string" use="required" />
331
+ <xs:attribute name="rename" type="xs:string" use="optional" />
332
+ </xs:complexType>
333
+ </xs:element>
334
+ <xs:element name="class">
335
+ <xs:annotation>
336
+ <xs:documentation>Root of an entity class hierarchy. Entities have their own tables</xs:documentation>
337
+ </xs:annotation>
338
+ <xs:complexType>
339
+ <xs:sequence>
340
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
341
+ <xs:choice minOccurs="0">
342
+ <xs:element ref="jcs-cache" />
343
+ <xs:element ref="cache" />
344
+ </xs:choice>
345
+ <xs:choice>
346
+ <xs:element ref="id" />
347
+ <xs:element ref="composite-id" />
348
+ </xs:choice>
349
+ <xs:element ref="discriminator" minOccurs="0" />
350
+ <xs:choice minOccurs="0">
351
+ <xs:element ref="version" />
352
+ <xs:element ref="timestamp" />
353
+ </xs:choice>
354
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
355
+ <xs:element ref="property" />
356
+ <xs:element ref="many-to-one" />
357
+ <xs:element ref="one-to-one" />
358
+ <xs:element ref="component" />
359
+ <xs:element ref="dynamic-component" />
360
+ <xs:element ref="any" />
361
+ <xs:element ref="map" />
362
+ <xs:element ref="set" />
363
+ <xs:element ref="list" />
364
+ <xs:element ref="bag" />
365
+ <xs:element ref="idbag" />
366
+ <xs:element ref="array" />
367
+ <xs:element ref="primitive-array" />
368
+ </xs:choice>
369
+ <xs:choice>
370
+ <xs:element ref="subclass" minOccurs="0" maxOccurs="unbounded" />
371
+ <xs:element ref="joined-subclass" minOccurs="0" maxOccurs="unbounded" />
372
+ </xs:choice>
373
+ <xs:group ref="classCustomSQL" />
374
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
375
+ </xs:sequence>
376
+ <xs:attributeGroup ref="baseClassAttributes" />
377
+ <xs:attribute name="table" type="xs:string" use="optional">
378
+ <xs:annotation>
379
+ <xs:documentation>default: unqualified classname</xs:documentation>
380
+ </xs:annotation>
381
+ </xs:attribute>
382
+ <xs:attribute name="schema" type="xs:string" use="optional">
383
+ <xs:annotation>
384
+ <xs:documentation>default: no value</xs:documentation>
385
+ </xs:annotation>
386
+ </xs:attribute>
387
+ <xs:attribute name="discriminator-value" type="xs:string" use="optional">
388
+ <xs:annotation>
389
+ <xs:documentation>default: unqualified class name | none</xs:documentation>
390
+ </xs:annotation>
391
+ </xs:attribute>
392
+ <xs:attribute name="mutable" type="xs:boolean" use="optional" default="true" />
393
+ <xs:attribute name="polymorphism" type="polymorphismType" use="optional" default="implicit" />
394
+ <xs:attribute name="persister" type="xs:string" use="optional" />
395
+ <xs:attribute name="where" type="xs:string" use="optional">
396
+ <xs:annotation>
397
+ <xs:documentation>default: none</xs:documentation>
398
+ </xs:annotation>
399
+ </xs:attribute>
400
+ <xs:attribute name="batch-size" type="xs:positiveInteger" use="optional" default="1" />
401
+ <xs:attribute name="optimistic-lock" type="optimisticLockMode" use="optional" default="version" />
402
+ <xs:attribute name="check" type="xs:string" use="optional" />
403
+ </xs:complexType>
404
+ </xs:element>
405
+ <xs:element name="id">
406
+ <xs:annotation>
407
+ <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>
408
+ </xs:annotation>
409
+ <xs:complexType>
410
+ <xs:sequence>
411
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
412
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
413
+ <xs:element ref="generator" />
414
+ </xs:sequence>
415
+ <xs:attribute name="name" type="xs:string" />
416
+ <xs:attribute name="access" type="xs:string" />
417
+ <xs:attribute name="column" type="xs:string" />
418
+ <xs:attribute name="type" type="xs:string" />
419
+ <xs:attribute name="length" type="xs:positiveInteger" />
420
+ <xs:attribute name="unsaved-value" type="xs:string">
421
+ <xs:annotation>
422
+ <xs:documentation>any|none|null|0|-1|...</xs:documentation>
423
+ </xs:annotation>
424
+ </xs:attribute>
425
+ </xs:complexType>
426
+ </xs:element>
427
+ <xs:element name="composite-id">
428
+ <xs:annotation>
429
+ <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>
430
+ </xs:annotation>
431
+ <xs:complexType>
432
+ <xs:sequence>
433
+ <xs:choice maxOccurs="unbounded">
434
+ <xs:element ref="key-property" />
435
+ <xs:element ref="key-many-to-one" />
436
+ </xs:choice>
437
+ </xs:sequence>
438
+ <xs:attribute name="class" type="xs:string" />
439
+ <xs:attribute name="name" type="xs:string" />
440
+ <xs:attribute name="access" type="xs:string" />
441
+ <xs:attribute name="unsaved-value" type="unsavedValueType" default="none" />
442
+ </xs:complexType>
443
+ </xs:element>
444
+ <xs:element name="discriminator">
445
+ <xs:annotation>
446
+ <xs:documentation>Polymorphic data requires a column holding a class discriminator value. This value is not directly exposed to the application</xs:documentation>
447
+ </xs:annotation>
448
+ <xs:complexType>
449
+ <xs:sequence>
450
+ <xs:element ref="column" minOccurs="0">
451
+ <xs:annotation>
452
+ <xs:documentation>default: "class"|none</xs:documentation>
453
+ </xs:annotation>
454
+ </xs:element>
455
+ </xs:sequence>
456
+ <xs:attribute name="column" type="xs:string" />
457
+ <xs:attribute name="type" type="xs:string" default="String" />
458
+ <xs:attribute name="not-null" type="xs:boolean" default="true" />
459
+ <xs:attribute name="length" type="xs:positiveInteger" />
460
+ <xs:attribute name="force" type="xs:boolean" default="false" />
461
+ <xs:attribute name="insert" type="xs:boolean" />
462
+ <xs:attribute name="formula" type="xs:string" />
463
+ </xs:complexType>
464
+ </xs:element>
465
+ <xs:element name="version">
466
+ <xs:annotation>
467
+ <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>
468
+ </xs:annotation>
469
+ <xs:complexType>
470
+ <xs:attribute name="name" type="xs:string" use="required" />
471
+ <xs:attribute name="access" type="xs:string" />
472
+ <xs:attribute name="column" type="xs:string" />
473
+ <xs:attribute name="type" type="xs:string" default="Int32" />
474
+ <xs:attribute name="unsaved-value" type="xs:string">
475
+ <xs:annotation>
476
+ <xs:documentation>undefined|any|none|null|0|-1|... </xs:documentation>
477
+ </xs:annotation>
478
+ </xs:attribute>
479
+ <xs:attribute name="generated" type="versionGeneration" default="never" use="optional" />
480
+ </xs:complexType>
481
+ </xs:element>
482
+ <xs:element name="timestamp">
483
+ <xs:annotation>
484
+ <xs:documentation>Is equivalent to &lt;version type="timestamp"&gt;</xs:documentation>
485
+ </xs:annotation>
486
+ <xs:complexType>
487
+ <xs:attribute name="name" type="xs:string" use="required" />
488
+ <xs:attribute name="access" type="xs:string" />
489
+ <xs:attribute name="column" type="xs:string" />
490
+ <xs:attribute name="unsaved-value" type="xs:string">
491
+ <xs:annotation>
492
+ <xs:documentation>undefined|any|none|null|0|-1|... </xs:documentation>
493
+ </xs:annotation>
494
+ </xs:attribute>
495
+ <xs:attribute name="generated" type="versionGeneration" default="never" use="optional" />
496
+ </xs:complexType>
497
+ </xs:element>
498
+ <xs:element name="subclass">
499
+ <xs:annotation>
500
+ <xs:documentation>Subclass declarations are nested beneath the root class declaration to achieve polymorphic persistence</xs:documentation>
501
+ </xs:annotation>
502
+ <xs:complexType>
503
+ <xs:sequence>
504
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
505
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
506
+ <xs:element ref="property" />
507
+ <xs:element ref="many-to-one" />
508
+ <xs:element ref="one-to-one" />
509
+ <xs:element ref="component" />
510
+ <xs:element ref="dynamic-component" />
511
+ <xs:element ref="any" />
512
+ <xs:element ref="map" />
513
+ <xs:element ref="set" />
514
+ <xs:element ref="list" />
515
+ <xs:element ref="bag" />
516
+ <xs:element ref="idbag" />
517
+ <xs:element ref="array" />
518
+ <xs:element ref="primitive-array" />
519
+ </xs:choice>
520
+ <xs:element ref="subclass" minOccurs="0" maxOccurs="unbounded" />
521
+ <xs:group ref="classCustomSQL" />
522
+ </xs:sequence>
523
+ <xs:attributeGroup ref="baseClassAttributes" />
524
+ <xs:attribute name="extends" type="xs:string" use="optional">
525
+ <xs:annotation>
526
+ <xs:documentation>Name of the root class. Required if the Subclass is declared outside the declaration of its root class</xs:documentation>
527
+ </xs:annotation>
528
+ </xs:attribute>
529
+ <xs:attribute name="discriminator-value" type="xs:string" use="optional">
530
+ <xs:annotation>
531
+ <xs:documentation>default: unqualified class name | none</xs:documentation>
532
+ </xs:annotation>
533
+ </xs:attribute>
534
+ </xs:complexType>
535
+ </xs:element>
536
+ <xs:element name="joined-subclass">
537
+ <xs:annotation>
538
+ <xs:documentation>Joined subclasses are used for the normalized table-per-subclass mapping strategy</xs:documentation>
539
+ </xs:annotation>
540
+ <xs:complexType>
541
+ <xs:sequence>
542
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
543
+ <xs:element ref="key" />
544
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
545
+ <xs:element ref="property" />
546
+ <xs:element ref="many-to-one" />
547
+ <xs:element ref="one-to-one" />
548
+ <xs:element ref="component" />
549
+ <xs:element ref="dynamic-component" />
550
+ <xs:element ref="any" />
551
+ <xs:element ref="map" />
552
+ <xs:element ref="set" />
553
+ <xs:element ref="list" />
554
+ <xs:element ref="bag" />
555
+ <xs:element ref="idbag" />
556
+ <xs:element ref="array" />
557
+ <xs:element ref="primitive-array" />
558
+ </xs:choice>
559
+ <xs:element ref="joined-subclass" minOccurs="0" maxOccurs="unbounded" />
560
+ <xs:group ref="classCustomSQL" />
561
+ </xs:sequence>
562
+ <xs:attributeGroup ref="baseClassAttributes" />
563
+ <xs:attribute name="extends" type="xs:string" use="optional">
564
+ <xs:annotation>
565
+ <xs:documentation>Name of the root class. Required if the Joined Subclass is declared outside the declaration of its root class</xs:documentation>
566
+ </xs:annotation>
567
+ </xs:attribute>
568
+ <xs:attribute name="schema" type="xs:string" use="optional" />
569
+ <xs:attribute name="table" type="xs:string" use="optional">
570
+ <xs:annotation>
571
+ <xs:documentation>default: unqualified classname</xs:documentation>
572
+ </xs:annotation>
573
+ </xs:attribute>
574
+ <xs:attribute name="check" type="xs:string" use="optional" />
575
+ </xs:complexType>
576
+ </xs:element>
577
+ <xs:element name="property">
578
+ <xs:annotation>
579
+ <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>
580
+ </xs:annotation>
581
+ <xs:complexType>
582
+ <xs:sequence>
583
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
584
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
585
+ <xs:element ref="type" minOccurs="0" maxOccurs="1" />
586
+ </xs:sequence>
587
+ <xs:attribute name="name" type="xs:string" use="required" />
588
+ <xs:attribute name="access" type="xs:string" />
589
+ <xs:attribute name="type" type="xs:string" />
590
+ <xs:attribute name="column" type="xs:string" />
591
+ <xs:attribute name="length" type="xs:positiveInteger" />
592
+ <xs:attribute name="not-null" type="xs:boolean" default="false" />
593
+ <xs:attribute name="unique" type="xs:boolean" default="false" />
594
+ <xs:attribute name="update" type="xs:boolean">
595
+ <xs:annotation>
596
+ <xs:documentation>only supported for properties of a class (not component)</xs:documentation>
597
+ </xs:annotation>
598
+ </xs:attribute>
599
+ <xs:attribute name="insert" type="xs:boolean">
600
+ <xs:annotation>
601
+ <xs:documentation>only supported for properties of a class (not component)</xs:documentation>
602
+ </xs:annotation>
603
+ </xs:attribute>
604
+ <xs:attribute name="optimistic-lock" type="xs:boolean" default="true">
605
+ <xs:annotation>
606
+ <xs:documentation>only supported for properties of a class (not component)</xs:documentation>
607
+ </xs:annotation>
608
+ </xs:attribute>
609
+ <xs:attribute name="formula" type="xs:string">
610
+ <xs:annotation>
611
+ <xs:documentation>only supported for properties of a class (not component)</xs:documentation>
612
+ </xs:annotation>
613
+ </xs:attribute>
614
+ <xs:attribute name="unique-key" type="xs:string" />
615
+ <xs:attribute name="index" type="xs:string" />
616
+ <xs:attribute name="generated" type="propertyGeneration" default="never" use="optional" />
617
+ </xs:complexType>
618
+ </xs:element>
619
+ <xs:element name="meta-value">
620
+ <xs:complexType>
621
+ <xs:attribute name="value" type="xs:string" use="required" />
622
+ <xs:attribute name="class" type="xs:string" use="required" />
623
+ </xs:complexType>
624
+ </xs:element>
625
+ <xs:element name="any">
626
+ <xs:complexType>
627
+ <xs:sequence>
628
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
629
+ <xs:element ref="meta-value" minOccurs="0" maxOccurs="unbounded" />
630
+ <xs:element ref="column" maxOccurs="unbounded" />
631
+ </xs:sequence>
632
+ <xs:attribute name="id-type" type="xs:string" use="required" />
633
+ <xs:attribute name="meta-type" type="xs:string" />
634
+ <xs:attribute name="name" type="xs:string" use="required" />
635
+ <xs:attribute name="access" type="xs:string" />
636
+ <xs:attribute name="insert" type="xs:boolean" />
637
+ <xs:attribute name="update" type="xs:boolean" />
638
+ <xs:attribute name="cascade" type="cascadeStyle" default="none" />
639
+ <xs:attribute name="index" type="xs:string" use="optional" />
640
+ <xs:attribute name="unique-key" type="xs:string" use="optional" />
641
+ </xs:complexType>
642
+ </xs:element>
643
+ <xs:element name="array">
644
+ <xs:complexType>
645
+ <xs:sequence>
646
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
647
+ <xs:choice minOccurs="0">
648
+ <xs:element ref="jcs-cache" />
649
+ <xs:element ref="cache" />
650
+ </xs:choice>
651
+ <xs:element ref="key" />
652
+ <xs:element ref="index" />
653
+ <xs:choice>
654
+ <xs:element ref="element" />
655
+ <xs:element ref="one-to-many" />
656
+ <xs:element ref="many-to-many" />
657
+ <xs:element ref="composite-element" />
658
+ <xs:element ref="many-to-any" />
659
+ </xs:choice>
660
+ </xs:sequence>
661
+ <xs:attribute name="name" type="xs:string" use="required" />
662
+ <xs:attribute name="access" type="xs:string" />
663
+ <xs:attribute name="table" type="xs:string" />
664
+ <xs:attribute name="schema" type="xs:string" />
665
+ <xs:attribute name="element-class" type="xs:string" />
666
+ <xs:attribute name="cascade" type="cascadeStyle" />
667
+ <xs:attribute name="where" type="xs:string" />
668
+ <xs:attribute name="optimistic-lock" type="xs:boolean" use="optional" />
669
+ </xs:complexType>
670
+ </xs:element>
671
+ <xs:element name="cache" type="cacheType" />
672
+ <xs:element name="collection-id">
673
+ <xs:complexType>
674
+ <xs:sequence>
675
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
676
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
677
+ <xs:element ref="generator" />
678
+ </xs:sequence>
679
+ <xs:attribute name="column" type="xs:string" use="required" />
680
+ <xs:attribute name="type" type="xs:string" use="required" />
681
+ <xs:attribute name="length" type="xs:positiveInteger" />
682
+ </xs:complexType>
683
+ </xs:element>
684
+ <xs:element name="column">
685
+ <xs:complexType>
686
+ <xs:attribute name="name" type="xs:string" use="required" />
687
+ <xs:attribute name="length" type="xs:positiveInteger" />
688
+ <xs:attribute name="not-null" type="xs:boolean" />
689
+ <xs:attribute name="unique" type="xs:boolean" />
690
+ <xs:attribute name="unique-key" type="xs:string" />
691
+ <xs:attribute name="sql-type" type="xs:string" />
692
+ <xs:attribute name="index" type="xs:string" />
693
+ <xs:attribute name="check" type="xs:string" use="optional" />
694
+ </xs:complexType>
695
+ </xs:element>
696
+ <xs:element name="component">
697
+ <xs:annotation>
698
+ <xs:documentation>Map properties of a child object to columns of the table of a parent class</xs:documentation>
699
+ </xs:annotation>
700
+ <xs:complexType>
701
+ <xs:sequence>
702
+ <xs:element ref="parent" minOccurs="0" />
703
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
704
+ <xs:element ref="property" />
705
+ <xs:element ref="many-to-one" />
706
+ <xs:element ref="one-to-one" />
707
+ <xs:element ref="component" />
708
+ <xs:element ref="dynamic-component" />
709
+ <xs:element ref="any" />
710
+ <xs:element ref="map" />
711
+ <xs:element ref="set" />
712
+ <xs:element ref="list" />
713
+ <xs:element ref="bag" />
714
+ <xs:element ref="array" />
715
+ <xs:element ref="primitive-array" />
716
+ </xs:choice>
717
+ </xs:sequence>
718
+ <xs:attribute name="name" type="xs:string" use="required" />
719
+ <xs:attribute name="access" type="xs:string" />
720
+ <xs:attribute name="class" type="xs:string" />
721
+ <xs:attribute name="update" type="xs:boolean" />
722
+ <xs:attribute name="insert" type="xs:boolean" />
723
+ </xs:complexType>
724
+ </xs:element>
725
+ <xs:element name="dynamic-component">
726
+ <xs:complexType>
727
+ <xs:sequence>
728
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
729
+ <xs:element ref="property" />
730
+ <xs:element ref="many-to-one" />
731
+ <xs:element ref="one-to-one" />
732
+ <xs:element ref="component" />
733
+ <xs:element ref="dynamic-component" />
734
+ <xs:element ref="any" />
735
+ <xs:element ref="map" />
736
+ <xs:element ref="set" />
737
+ <xs:element ref="list" />
738
+ <xs:element ref="bag" />
739
+ <xs:element ref="array" />
740
+ <xs:element ref="primitive-array" />
741
+ </xs:choice>
742
+ </xs:sequence>
743
+ <xs:attribute name="name" type="xs:string" use="required" />
744
+ <xs:attribute name="access" type="xs:string" />
745
+ <xs:attribute name="update" type="xs:boolean" />
746
+ <xs:attribute name="insert" type="xs:boolean" />
747
+ </xs:complexType>
748
+ </xs:element>
749
+ <xs:element name="composite-element">
750
+ <xs:complexType>
751
+ <xs:sequence>
752
+ <xs:element ref="parent" minOccurs="0" />
753
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
754
+ <xs:element ref="property" />
755
+ <xs:element ref="many-to-one" />
756
+ <xs:element ref="nested-composite-element" />
757
+ </xs:choice>
758
+ </xs:sequence>
759
+ <xs:attribute name="class" type="xs:string" use="required" />
760
+ </xs:complexType>
761
+ </xs:element>
762
+ <xs:element name="composite-index">
763
+ <xs:complexType>
764
+ <xs:sequence>
765
+ <xs:choice maxOccurs="unbounded">
766
+ <xs:element ref="key-property" />
767
+ <xs:element ref="key-many-to-one" />
768
+ </xs:choice>
769
+ </xs:sequence>
770
+ <xs:attribute name="class" type="xs:string" use="required" />
771
+ </xs:complexType>
772
+ </xs:element>
773
+ <xs:element name="element">
774
+ <xs:complexType>
775
+ <xs:sequence>
776
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
777
+ </xs:sequence>
778
+ <xs:attribute name="column" type="xs:string" />
779
+ <xs:attribute name="type" type="xs:string" use="required" />
780
+ <xs:attribute name="length" type="xs:positiveInteger" />
781
+ <xs:attribute name="not-null" type="xs:boolean" default="false" />
782
+ <xs:attribute name="unique" type="xs:boolean" default="false" />
783
+ </xs:complexType>
784
+ </xs:element>
785
+ <xs:element name="generator">
786
+ <xs:annotation>
787
+ <xs:documentation>Tells which algorithm to use to generate the identifier</xs:documentation>
788
+ </xs:annotation>
789
+ <xs:complexType>
790
+ <xs:sequence>
791
+ <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
792
+ </xs:sequence>
793
+ <xs:attribute name="class" type="xs:string" use="required" />
794
+ </xs:complexType>
795
+ </xs:element>
796
+ <xs:element name="idbag">
797
+ <xs:complexType>
798
+ <xs:sequence>
799
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
800
+ <xs:choice minOccurs="0">
801
+ <xs:element ref="jcs-cache" />
802
+ <xs:element ref="cache" />
803
+ </xs:choice>
804
+ <xs:element ref="collection-id" />
805
+ <xs:element ref="key" />
806
+ <xs:choice>
807
+ <xs:element ref="element" />
808
+ <xs:element ref="many-to-many" />
809
+ <xs:element ref="composite-element" />
810
+ <xs:element ref="many-to-any" />
811
+ </xs:choice>
812
+ <xs:group ref="collectionCustomSQL" />
813
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
814
+ </xs:sequence>
815
+ <xs:attributeGroup ref="baseCollectionAttributes" />
816
+ <xs:attribute name="order-by" type="xs:string" />
817
+ </xs:complexType>
818
+ </xs:element>
819
+ <xs:element name="index">
820
+ <xs:complexType>
821
+ <xs:sequence>
822
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
823
+ </xs:sequence>
824
+ <xs:attribute name="column" type="xs:string" />
825
+ <xs:attribute name="type" type="xs:string" />
826
+ <xs:attribute name="length" type="xs:positiveInteger" use="optional" />
827
+ </xs:complexType>
828
+ </xs:element>
829
+ <xs:element name="index-many-to-any">
830
+ <xs:complexType>
831
+ <xs:sequence>
832
+ <xs:element ref="column" maxOccurs="unbounded" />
833
+ </xs:sequence>
834
+ <xs:attribute name="id-type" type="xs:string" use="required" />
835
+ <xs:attribute name="meta-type" type="xs:string" />
836
+ </xs:complexType>
837
+ </xs:element>
838
+ <xs:element name="index-many-to-many">
839
+ <xs:complexType>
840
+ <xs:sequence>
841
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
842
+ </xs:sequence>
843
+ <xs:attribute name="class" type="xs:string" use="required" />
844
+ <xs:attribute name="column" type="xs:string" />
845
+ <xs:attribute name="foreign-key" type="xs:string" use="optional" />
846
+ </xs:complexType>
847
+ </xs:element>
848
+ <xs:element name="jcs-cache" type="cacheType" />
849
+ <xs:element name="key">
850
+ <xs:complexType>
851
+ <xs:sequence>
852
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
853
+ </xs:sequence>
854
+ <xs:attribute name="column" type="xs:string" />
855
+ <xs:attribute name="foreign-key" type="xs:string" use="optional" />
856
+ </xs:complexType>
857
+ </xs:element>
858
+ <xs:element name="key-many-to-one">
859
+ <xs:complexType>
860
+ <xs:sequence>
861
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
862
+ </xs:sequence>
863
+ <xs:attribute name="name" type="xs:string" use="required" />
864
+ <xs:attribute name="access" type="xs:string" />
865
+ <xs:attribute name="class" type="xs:string" />
866
+ <xs:attribute name="column" type="xs:string" />
867
+ <xs:attribute name="foreign-key" type="xs:string" use="optional" />
868
+ <xs:attribute name="lazy" type="restrictedLaziness" use="optional" />
869
+ </xs:complexType>
870
+ </xs:element>
871
+ <xs:element name="key-property">
872
+ <xs:complexType>
873
+ <xs:sequence>
874
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
875
+ </xs:sequence>
876
+ <xs:attribute name="name" type="xs:string" use="required" />
877
+ <xs:attribute name="access" type="xs:string" />
878
+ <xs:attribute name="type" type="xs:string" />
879
+ <xs:attribute name="column" type="xs:string" />
880
+ <xs:attribute name="length" type="xs:positiveInteger" />
881
+ </xs:complexType>
882
+ </xs:element>
883
+ <xs:element name="many-to-any">
884
+ <xs:complexType>
885
+ <xs:sequence>
886
+ <xs:element ref="meta-value" minOccurs="0" maxOccurs="unbounded" />
887
+ <xs:element ref="column" maxOccurs="unbounded" />
888
+ </xs:sequence>
889
+ <xs:attribute name="id-type" type="xs:string" use="required" />
890
+ <xs:attribute name="meta-type" type="xs:string" />
891
+ </xs:complexType>
892
+ </xs:element>
893
+ <xs:element name="many-to-many">
894
+ <xs:complexType>
895
+ <xs:sequence>
896
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
897
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
898
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
899
+ </xs:sequence>
900
+ <xs:attribute name="class" type="xs:string" use="required" />
901
+ <xs:attribute name="column" type="xs:string" />
902
+ <xs:attribute name="foreign-key" type="xs:string" use="optional" />
903
+ <xs:attribute name="outer-join" type="outerJoinStrategy" use="optional" />
904
+ <xs:attribute name="fetch" type="fetchMode" use="optional" />
905
+ <xs:attribute name="not-found" type="notFoundMode" use="optional" />
906
+ <xs:attribute name="where" type="xs:string" use="optional" />
907
+ <xs:attribute name="lazy" type="restrictedLaziness" use="optional" />
908
+ </xs:complexType>
909
+ </xs:element>
910
+ <xs:element name="many-to-one">
911
+ <xs:complexType>
912
+ <xs:sequence>
913
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
914
+ <xs:element ref="column" minOccurs="0" maxOccurs="unbounded" />
915
+ </xs:sequence>
916
+ <xs:attribute name="name" type="xs:string" use="required" />
917
+ <xs:attribute name="access" type="xs:string" />
918
+ <xs:attribute name="class" type="xs:string" />
919
+ <xs:attribute name="column" type="xs:string" />
920
+ <xs:attribute name="not-null" type="xs:boolean" default="false" />
921
+ <xs:attribute name="unique" type="xs:boolean" default="false" />
922
+ <xs:attribute name="unique-key" type="xs:string" />
923
+ <xs:attribute name="index" type="xs:string" />
924
+ <xs:attribute name="cascade" type="cascadeStyle" />
925
+ <xs:attribute name="outer-join" type="outerJoinStrategy" use="optional" />
926
+ <xs:attribute name="fetch" type="fetchMode" use="optional" />
927
+ <xs:attribute name="update" type="xs:boolean" />
928
+ <xs:attribute name="insert" type="xs:boolean" />
929
+ <xs:attribute name="foreign-key" type="xs:string" use="optional" />
930
+ <xs:attribute name="property-ref" type="xs:string" />
931
+ <xs:attribute name="not-found" type="notFoundMode" use="optional" />
932
+ <xs:attribute name="lazy" type="laziness" use="optional" />
933
+ </xs:complexType>
934
+ </xs:element>
935
+ <xs:element name="meta">
936
+ <xs:complexType mixed="true">
937
+ <xs:attribute name="attribute" type="xs:string" use="required" />
938
+ <xs:attribute name="inherit" type="xs:boolean" default="true" />
939
+ </xs:complexType>
940
+ </xs:element>
941
+ <xs:element name="nested-composite-element">
942
+ <xs:complexType>
943
+ <xs:sequence>
944
+ <xs:element ref="parent" minOccurs="0" />
945
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
946
+ <xs:element ref="property" />
947
+ <xs:element ref="many-to-one" />
948
+ <xs:element ref="nested-composite-element" />
949
+ </xs:choice>
950
+ </xs:sequence>
951
+ <xs:attribute name="class" type="xs:string" use="required" />
952
+ <xs:attribute name="name" type="xs:string" use="required" />
953
+ <xs:attribute name="access" type="xs:string" use="optional" />
954
+ </xs:complexType>
955
+ </xs:element>
956
+ <xs:element name="one-to-many">
957
+ <xs:complexType>
958
+ <xs:attribute name="class" type="xs:string" use="required" />
959
+ <xs:attribute name="not-found" type="notFoundMode" use="optional" />
960
+ </xs:complexType>
961
+ </xs:element>
962
+ <xs:element name="one-to-one">
963
+ <xs:complexType>
964
+ <xs:sequence>
965
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
966
+ </xs:sequence>
967
+ <xs:attribute name="name" type="xs:string" use="required" />
968
+ <xs:attribute name="access" type="xs:string" />
969
+ <xs:attribute name="class" type="xs:string" />
970
+ <xs:attribute name="cascade" type="cascadeStyle" />
971
+ <xs:attribute name="outer-join" type="outerJoinStrategy" use="optional" />
972
+ <xs:attribute name="fetch" type="fetchMode" use="optional" />
973
+ <xs:attribute name="constrained" type="xs:boolean" default="false" />
974
+ <xs:attribute name="foreign-key" type="xs:string" use="optional" />
975
+ <xs:attribute name="property-ref" type="xs:string" />
976
+ <xs:attribute name="lazy" type="laziness" use="optional" />
977
+ </xs:complexType>
978
+ </xs:element>
979
+ <xs:element name="param">
980
+ <xs:complexType mixed="true">
981
+ <xs:attribute name="name" type="xs:string" use="required" />
982
+ </xs:complexType>
983
+ </xs:element>
984
+ <xs:element name="parent">
985
+ <xs:complexType>
986
+ <xs:attribute name="name" type="xs:string" use="required" />
987
+ </xs:complexType>
988
+ </xs:element>
989
+ <xs:element name="primitive-array">
990
+ <xs:complexType>
991
+ <xs:sequence>
992
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
993
+ <xs:choice minOccurs="0">
994
+ <xs:element ref="jcs-cache" />
995
+ <xs:element ref="cache" />
996
+ </xs:choice>
997
+ <xs:element ref="key" />
998
+ <xs:element ref="index" />
999
+ <xs:element ref="element" />
1000
+ </xs:sequence>
1001
+ <xs:attribute name="name" type="xs:string" use="required" />
1002
+ <xs:attribute name="access" type="xs:string" />
1003
+ <xs:attribute name="table" type="xs:string" />
1004
+ <xs:attribute name="schema" type="xs:string" />
1005
+ <xs:attribute name="where" type="xs:string" />
1006
+ </xs:complexType>
1007
+ </xs:element>
1008
+ <xs:element name="query">
1009
+ <xs:complexType mixed="true">
1010
+ <xs:attribute name="name" type="xs:string" use="required" />
1011
+ <xs:attribute name="flush-mode" type="flushMode" use="optional" />
1012
+ </xs:complexType>
1013
+ </xs:element>
1014
+ <xs:element name="return">
1015
+ <xs:complexType>
1016
+ <xs:sequence>
1017
+ <xs:element ref="return-discriminator" minOccurs="0" maxOccurs="1" />
1018
+ <xs:element ref="return-property" minOccurs="0" maxOccurs="unbounded" />
1019
+ </xs:sequence>
1020
+ <xs:attribute name="alias" type="xs:string" use="optional" />
1021
+ <xs:attribute name="class" type="xs:string" use="optional" />
1022
+ <xs:attribute name="lock-mode" type="lockMode" use="optional" default="read" />
1023
+ </xs:complexType>
1024
+ </xs:element>
1025
+ <xs:element name="return-discriminator">
1026
+ <xs:complexType>
1027
+ <xs:attribute name="column" type="xs:string" use="required" />
1028
+ </xs:complexType>
1029
+ </xs:element>
1030
+ <xs:element name="return-scalar">
1031
+ <xs:complexType>
1032
+ <xs:attribute name="column" type="xs:string" use="required" />
1033
+ <xs:attribute name="type" type="xs:string" use="required" />
1034
+ </xs:complexType>
1035
+ </xs:element>
1036
+ <xs:element name="return-column">
1037
+ <xs:complexType>
1038
+ <xs:attribute name="name" type="xs:string" use="required" />
1039
+ </xs:complexType>
1040
+ </xs:element>
1041
+ <xs:element name="return-property">
1042
+ <xs:complexType>
1043
+ <xs:sequence>
1044
+ <xs:element ref="return-column" minOccurs="0" maxOccurs="unbounded" />
1045
+ </xs:sequence>
1046
+ <xs:attribute name="name" type="xs:string" use="required" />
1047
+ <xs:attribute name="column" type="xs:string" use="optional" />
1048
+ </xs:complexType>
1049
+ </xs:element>
1050
+ <xs:element name="return-join">
1051
+ <xs:complexType>
1052
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1053
+ <xs:element ref="return-property" />
1054
+ </xs:choice>
1055
+ <xs:attribute name="alias" type="xs:string" use="required" />
1056
+ <xs:attribute name="property" type="xs:string" use="required" />
1057
+ <xs:attribute name="lock-mode" type="lockMode" use="optional" default="read" />
1058
+ </xs:complexType>
1059
+ </xs:element>
1060
+ <xs:element name="load-collection">
1061
+ <xs:complexType>
1062
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1063
+ <xs:element ref="return-property" />
1064
+ </xs:choice>
1065
+ <xs:attribute name="alias" type="xs:string" use="required" />
1066
+ <xs:attribute name="role" type="xs:string" use="required" />
1067
+ <xs:attribute name="lock-mode" type="lockMode" use="optional" default="read" />
1068
+ </xs:complexType>
1069
+ </xs:element>
1070
+ <xs:element name="synchronize">
1071
+ <xs:complexType>
1072
+ <xs:attribute name="table" type="xs:string" use="required" />
1073
+ </xs:complexType>
1074
+ </xs:element>
1075
+ <xs:element name="sql-query">
1076
+ <xs:complexType mixed="true">
1077
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
1078
+ <xs:element ref="return" />
1079
+ <xs:element ref="return-scalar" />
1080
+ <xs:element ref="return-join" />
1081
+ <xs:element ref="load-collection" />
1082
+ <xs:element ref="synchronize" />
1083
+ </xs:choice>
1084
+ <xs:attribute name="name" type="xs:string" use="required" />
1085
+ <!-- <xs:attribute name="callable" type="xs:boolean" use="optional" default="false" /> -->
1086
+ <xs:attribute name="resultset-ref" type="xs:string" use="optional" />
1087
+ <xs:attribute name="flush-mode" type="flushMode" use="optional" />
1088
+ </xs:complexType>
1089
+ </xs:element>
1090
+ <xs:element name="list">
1091
+ <xs:complexType>
1092
+ <xs:sequence>
1093
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1094
+ <xs:choice minOccurs="0">
1095
+ <xs:element ref="jcs-cache" />
1096
+ <xs:element ref="cache" />
1097
+ </xs:choice>
1098
+ <xs:element ref="key" />
1099
+ <xs:element ref="index" />
1100
+ <xs:choice>
1101
+ <xs:element ref="element" />
1102
+ <xs:element ref="one-to-many" />
1103
+ <xs:element ref="many-to-many" />
1104
+ <xs:element ref="composite-element" />
1105
+ <xs:element ref="many-to-any" />
1106
+ </xs:choice>
1107
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
1108
+ </xs:sequence>
1109
+ <xs:attributeGroup ref="baseCollectionAttributes" />
1110
+ </xs:complexType>
1111
+ </xs:element>
1112
+ <xs:element name="bag">
1113
+ <xs:complexType>
1114
+ <xs:sequence>
1115
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1116
+ <xs:choice minOccurs="0">
1117
+ <xs:element ref="jcs-cache" />
1118
+ <xs:element ref="cache" />
1119
+ </xs:choice>
1120
+ <xs:element ref="key" />
1121
+ <xs:choice>
1122
+ <xs:element ref="element" />
1123
+ <xs:element ref="one-to-many" />
1124
+ <xs:element ref="many-to-many" />
1125
+ <xs:element ref="composite-element" />
1126
+ <xs:element ref="many-to-any" />
1127
+ </xs:choice>
1128
+ <xs:group ref="collectionCustomSQL" />
1129
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
1130
+ </xs:sequence>
1131
+ <xs:attributeGroup ref="baseCollectionAttributes" />
1132
+ <xs:attribute name="order-by" type="xs:string" />
1133
+ </xs:complexType>
1134
+ </xs:element>
1135
+ <xs:element name="set">
1136
+ <xs:complexType>
1137
+ <xs:sequence>
1138
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1139
+ <xs:choice minOccurs="0">
1140
+ <xs:element ref="jcs-cache" />
1141
+ <xs:element ref="cache" />
1142
+ </xs:choice>
1143
+ <xs:element ref="key" />
1144
+ <xs:choice>
1145
+ <xs:element ref="element" />
1146
+ <xs:element ref="one-to-many" />
1147
+ <xs:element ref="many-to-many" />
1148
+ <xs:element ref="composite-element" />
1149
+ <xs:element ref="many-to-any" />
1150
+ </xs:choice>
1151
+ <xs:group ref="collectionCustomSQL" />
1152
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
1153
+ </xs:sequence>
1154
+ <xs:attributeGroup ref="baseCollectionAttributes" />
1155
+ <xs:attribute name="order-by" type="xs:string" />
1156
+ <xs:attribute name="sort" type="xs:string" default="unsorted" />
1157
+ </xs:complexType>
1158
+ </xs:element>
1159
+ <xs:element name="map">
1160
+ <xs:complexType>
1161
+ <xs:sequence>
1162
+ <xs:element ref="meta" minOccurs="0" maxOccurs="unbounded" />
1163
+ <xs:choice minOccurs="0">
1164
+ <xs:element ref="jcs-cache" />
1165
+ <xs:element ref="cache" />
1166
+ </xs:choice>
1167
+ <xs:element ref="key" />
1168
+ <xs:choice>
1169
+ <xs:element ref="index" />
1170
+ <xs:element ref="composite-index" />
1171
+ <xs:element ref="index-many-to-many" />
1172
+ <xs:element ref="index-many-to-any" />
1173
+ </xs:choice>
1174
+ <xs:choice>
1175
+ <xs:element ref="element" />
1176
+ <xs:element ref="one-to-many" />
1177
+ <xs:element ref="many-to-many" />
1178
+ <xs:element ref="composite-element" />
1179
+ <xs:element ref="many-to-any" />
1180
+ </xs:choice>
1181
+ <xs:group ref="collectionCustomSQL" />
1182
+ <xs:element ref="filter" minOccurs="0" maxOccurs="unbounded" />
1183
+ </xs:sequence>
1184
+ <xs:attributeGroup ref="baseCollectionAttributes" />
1185
+ <xs:attribute name="order-by" type="xs:string" />
1186
+ <xs:attribute name="sort" type="xs:string" default="unsorted" />
1187
+ </xs:complexType>
1188
+ </xs:element>
1189
+ <xs:element name="type">
1190
+ <xs:complexType>
1191
+ <xs:sequence>
1192
+ <xs:element ref="param" minOccurs="0" maxOccurs="unbounded" />
1193
+ </xs:sequence>
1194
+ <xs:attribute name="name" type="xs:string" use="required" />
1195
+ </xs:complexType>
1196
+ </xs:element>
1197
+ </xs:schema>