Aucune description

nhibernate-mapping.xsd 65KB

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