nhibernate 1.2.1.4000

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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>