Rajout de doctrine/orm
[zf2.biz/galerie.git] / vendor / doctrine / orm / doctrine-mapping.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2
3 <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
4     targetNamespace="http://doctrine-project.org/schemas/orm/doctrine-mapping"
5     xmlns:orm="http://doctrine-project.org/schemas/orm/doctrine-mapping"
6     elementFormDefault="qualified">
7
8   <xs:annotation> 
9     <xs:documentation><![CDATA[ 
10        This is the XML Schema for the object/relational 
11        mapping file used by the Doctrine ORM.
12      ]]></xs:documentation>
13   </xs:annotation>
14
15   <xs:element name="doctrine-mapping">
16     <xs:complexType>
17       <xs:sequence>
18         <xs:element name="mapped-superclass" type="orm:mapped-superclass" minOccurs="0" maxOccurs="unbounded" />
19         <xs:element name="entity" type="orm:entity" minOccurs="0" maxOccurs="unbounded" />
20         <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
21       </xs:sequence>
22       <xs:anyAttribute namespace="##other"/>
23     </xs:complexType>
24   </xs:element>
25   
26   <xs:complexType name="emptyType">
27     <xs:sequence>
28       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
29     </xs:sequence>
30     <xs:anyAttribute namespace="##other"/>
31   </xs:complexType>
32   
33   <xs:complexType name="cascade-type">
34     <xs:sequence>
35       <xs:element name="cascade-all" type="orm:emptyType" minOccurs="0"/> 
36       <xs:element name="cascade-persist" type="orm:emptyType" minOccurs="0"/> 
37       <xs:element name="cascade-merge" type="orm:emptyType" minOccurs="0"/> 
38       <xs:element name="cascade-remove" type="orm:emptyType" minOccurs="0"/> 
39       <xs:element name="cascade-refresh" type="orm:emptyType" minOccurs="0"/> 
40       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
41     </xs:sequence>
42     <xs:anyAttribute namespace="##other"/>
43   </xs:complexType>
44   
45   <xs:simpleType name="lifecycle-callback-type">
46     <xs:restriction base="xs:token">
47       <xs:enumeration value="prePersist"/>
48       <xs:enumeration value="postPersist"/>
49       <xs:enumeration value="preUpdate"/>
50       <xs:enumeration value="postUpdate"/>
51       <xs:enumeration value="preRemove"/>
52       <xs:enumeration value="postRemove"/>
53       <xs:enumeration value="postLoad"/>
54     </xs:restriction>
55   </xs:simpleType>
56   
57   <xs:complexType name="lifecycle-callback">
58     <xs:sequence>
59       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
60     </xs:sequence>
61     <xs:attribute name="type" type="orm:lifecycle-callback-type" use="required" />
62     <xs:attribute name="method" type="xs:NMTOKEN" use="required" />
63     <xs:anyAttribute namespace="##other"/>
64   </xs:complexType>
65   
66   <xs:complexType name="lifecycle-callbacks">
67     <xs:sequence>
68       <xs:element name="lifecycle-callback" type="orm:lifecycle-callback" minOccurs="1" maxOccurs="unbounded" />
69       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
70     </xs:sequence>
71     <xs:anyAttribute namespace="##other"/>
72   </xs:complexType>
73
74   <xs:complexType name="named-query">
75     <xs:attribute name="name" type="xs:string" use="required" />
76     <xs:attribute name="query" type="xs:string" use="required" />
77     <xs:anyAttribute namespace="##other"/>
78   </xs:complexType>
79
80   <xs:complexType name="named-queries">
81     <xs:sequence>
82       <xs:element name="named-query" type="orm:named-query" minOccurs="1" maxOccurs="unbounded" />
83       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
84     </xs:sequence>
85   </xs:complexType>
86
87   <xs:complexType name="named-native-query">
88     <xs:attribute name="name" type="xs:string" use="required" />
89     <xs:attribute name="query" type="xs:string" use="required"/>
90     <xs:attribute name="result-class" type="xs:string" />
91     <xs:attribute name="result-set-mapping" type="xs:string" />
92   </xs:complexType>
93
94   <xs:complexType name="named-native-queries">
95     <xs:sequence>
96       <xs:element name="named-native-query" type="orm:named-native-query" minOccurs="1" maxOccurs="unbounded" />
97       <xs:any minOccurs="1" maxOccurs="unbounded" namespace="##other"/>
98     </xs:sequence>
99   </xs:complexType>
100
101   <xs:complexType name="column-result">
102     <xs:attribute name="name" type="xs:string" use="required" />
103   </xs:complexType>
104
105   <xs:complexType name="field-result">
106     <xs:attribute name="name" type="xs:string" use="required" />
107     <xs:attribute name="column" type="xs:string" />
108   </xs:complexType>
109
110   <xs:complexType name="entity-result">
111     <xs:sequence>
112       <xs:element name="field-result" type="orm:field-result" minOccurs="0" maxOccurs="unbounded" />
113     </xs:sequence>
114     <xs:attribute name="entity-class" type="xs:string" use="required" />
115   </xs:complexType>
116
117   <xs:complexType name="sql-result-set-mapping">
118     <xs:sequence>
119       <xs:element name="entity-result" type="orm:entity-result" minOccurs="0" maxOccurs="unbounded" />
120       <xs:element name="column-result" type="orm:column-result" minOccurs="0" maxOccurs="unbounded" />
121       <xs:any minOccurs="1" maxOccurs="unbounded" namespace="##other"/>
122     </xs:sequence>
123   </xs:complexType>
124
125   <xs:complexType name="sql-result-set-mappings">
126     <xs:sequence>
127       <xs:element name="sql-result-set-mapping" type="orm:sql-result-set-mapping" minOccurs="1" maxOccurs="unbounded" />
128       <xs:any minOccurs="1" maxOccurs="unbounded" namespace="##other"/>
129     </xs:sequence>
130   </xs:complexType>
131
132   <xs:complexType name="entity">
133     <xs:sequence>
134       <xs:element name="options" type="orm:options" minOccurs="0" />
135       <xs:element name="indexes" type="orm:indexes" minOccurs="0"/>
136       <xs:element name="unique-constraints" type="orm:unique-constraints" minOccurs="0"/>
137       <xs:element name="discriminator-column" type="orm:discriminator-column" minOccurs="0"/>
138       <xs:element name="discriminator-map" type="orm:discriminator-map" minOccurs="0"/>
139       <xs:element name="lifecycle-callbacks" type="orm:lifecycle-callbacks" minOccurs="0" maxOccurs="1" />
140       <xs:element name="named-queries" type="orm:named-queries" minOccurs="0" maxOccurs="1" />
141       <xs:element name="named-native-queries" type="orm:named-native-queries" minOccurs="0" maxOccurs="1" />
142       <xs:element name="id" type="orm:id" minOccurs="0" maxOccurs="unbounded" />
143       <xs:element name="field" type="orm:field" minOccurs="0" maxOccurs="unbounded"/>
144       <xs:element name="one-to-one" type="orm:one-to-one" minOccurs="0" maxOccurs="unbounded"/>
145       <xs:element name="one-to-many" type="orm:one-to-many" minOccurs="0" maxOccurs="unbounded" />
146       <xs:element name="many-to-one" type="orm:many-to-one" minOccurs="0" maxOccurs="unbounded" />
147       <xs:element name="many-to-many" type="orm:many-to-many" minOccurs="0" maxOccurs="unbounded" />
148       <xs:element name="association-overrides" type="orm:association-overrides" minOccurs="0" maxOccurs="unbounded" />
149       <xs:element name="attribute-overrides" type="orm:attribute-overrides" minOccurs="0" maxOccurs="unbounded" />
150       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
151     </xs:sequence>
152     <xs:attribute name="name" type="xs:string" use="required" />
153     <xs:attribute name="table" type="xs:NMTOKEN" />
154     <xs:attribute name="schema" type="xs:NMTOKEN" />
155     <xs:attribute name="repository-class" type="xs:string"/>
156     <xs:attribute name="inheritance-type" type="orm:inheritance-type"/>
157     <xs:attribute name="change-tracking-policy" type="orm:change-tracking-policy" />
158     <xs:attribute name="read-only" type="xs:boolean" default="false" />
159     <xs:anyAttribute namespace="##other"/>
160   </xs:complexType>
161   
162   <xs:complexType name="option" mixed="true">
163     <xs:sequence minOccurs="0" maxOccurs="unbounded">
164       <xs:element name="option" type="orm:option"/>
165       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
166     </xs:sequence>
167     <xs:attribute name="name" type="xs:NMTOKEN" use="required"/>
168     <xs:anyAttribute namespace="##other"/>
169   </xs:complexType>
170
171   <xs:complexType name="options">
172     <xs:sequence>
173       <xs:element name="option" type="orm:option" minOccurs="0" maxOccurs="unbounded"/>
174       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
175     </xs:sequence>
176     <xs:anyAttribute namespace="##other"/>
177   </xs:complexType>
178
179   <xs:complexType name="mapped-superclass" >
180     <xs:complexContent>
181       <xs:extension base="orm:entity">
182         <xs:sequence>
183           <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
184         </xs:sequence>
185         <xs:anyAttribute namespace="##other"/>
186       </xs:extension>
187     </xs:complexContent>
188   </xs:complexType>
189
190   <xs:simpleType name="change-tracking-policy">
191     <xs:restriction base="xs:token">
192       <xs:enumeration value="DEFERRED_IMPLICIT"/>
193       <xs:enumeration value="DEFERRED_EXPLICIT"/>
194       <xs:enumeration value="NOTIFY"/>
195     </xs:restriction>
196   </xs:simpleType>
197   
198   <xs:simpleType name="inheritance-type">
199     <xs:restriction base="xs:token">
200       <xs:enumeration value="SINGLE_TABLE"/>
201       <xs:enumeration value="JOINED"/>
202       <xs:enumeration value="TABLE_PER_CLASS"/>
203     </xs:restriction>
204   </xs:simpleType>
205   
206   <xs:simpleType name="generator-strategy"> 
207     <xs:restriction base="xs:token"> 
208       <xs:enumeration value="TABLE"/> 
209       <xs:enumeration value="SEQUENCE"/> 
210       <xs:enumeration value="IDENTITY"/> 
211       <xs:enumeration value="AUTO"/> 
212       <xs:enumeration value="UUID"/> 
213       <xs:enumeration value="CUSTOM" />
214     </xs:restriction> 
215   </xs:simpleType>
216   
217   <xs:simpleType name="fk-action"> 
218     <xs:restriction base="xs:token"> 
219       <xs:enumeration value="CASCADE"/> 
220       <xs:enumeration value="RESTRICT"/> 
221       <xs:enumeration value="SET NULL"/>
222     </xs:restriction> 
223   </xs:simpleType>
224   
225   <xs:simpleType name="fetch-type"> 
226     <xs:restriction base="xs:token"> 
227       <xs:enumeration value="EAGER"/> 
228       <xs:enumeration value="LAZY"/>
229       <xs:enumeration value="EXTRA_LAZY"/>
230     </xs:restriction> 
231   </xs:simpleType>
232
233   <xs:complexType name="field">
234     <xs:sequence>
235       <xs:element name="options" type="orm:options" minOccurs="0" />
236       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
237     </xs:sequence>
238     <xs:attribute name="name" type="xs:NMTOKEN" use="required" />
239     <xs:attribute name="type" type="xs:NMTOKEN" default="string" />
240     <xs:attribute name="column" type="xs:NMTOKEN" />
241     <xs:attribute name="length" type="xs:NMTOKEN" />
242     <xs:attribute name="unique" type="xs:boolean" default="false" />
243     <xs:attribute name="nullable" type="xs:boolean" default="false" />
244     <xs:attribute name="version" type="xs:boolean" />
245     <xs:attribute name="column-definition" type="xs:string" />
246     <xs:attribute name="precision" type="xs:integer" use="optional" />
247     <xs:attribute name="scale" type="xs:integer" use="optional" />
248     <xs:anyAttribute namespace="##other"/>
249   </xs:complexType>
250   
251   <xs:complexType name="discriminator-column">
252     <xs:sequence>
253       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
254     </xs:sequence>
255     <xs:attribute name="name" type="xs:NMTOKEN" use="required" />
256     <xs:attribute name="type" type="xs:NMTOKEN"/>
257     <xs:attribute name="field-name" type="xs:NMTOKEN" />
258     <xs:attribute name="length" type="xs:NMTOKEN" />
259     <xs:attribute name="column-definition" type="xs:string" />
260     <xs:anyAttribute namespace="##other"/>
261   </xs:complexType>
262   
263   <xs:complexType name="unique-constraint">
264     <xs:sequence>
265       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
266     </xs:sequence>
267     <xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
268     <xs:attribute name="columns" type="xs:string" use="required"/>
269     <xs:anyAttribute namespace="##other"/>
270   </xs:complexType>
271   
272   <xs:complexType name="unique-constraints">
273     <xs:sequence>
274       <xs:element name="unique-constraint" type="orm:unique-constraint" minOccurs="1" maxOccurs="unbounded"/>
275       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
276     </xs:sequence>
277     <xs:anyAttribute namespace="##other"/>
278   </xs:complexType>
279   
280   <xs:complexType name="index">
281     <xs:sequence>
282       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
283     </xs:sequence>
284     <xs:attribute name="name" type="xs:NMTOKEN" use="optional"/>
285     <xs:attribute name="columns" type="xs:string" use="required"/>
286     <xs:anyAttribute namespace="##other"/>
287   </xs:complexType>
288   
289   <xs:complexType name="indexes">
290     <xs:sequence>
291       <xs:element name="index" type="orm:index" minOccurs="1" maxOccurs="unbounded"/>
292       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
293     </xs:sequence>
294     <xs:anyAttribute namespace="##other"/>
295   </xs:complexType>
296   
297   <xs:complexType name="discriminator-mapping">
298     <xs:sequence>
299       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
300     </xs:sequence>
301     <xs:attribute name="value" type="xs:NMTOKEN" use="required"/>
302     <xs:attribute name="class" type="xs:string" use="required"/>
303     <xs:anyAttribute namespace="##other"/>
304   </xs:complexType>
305   
306   <xs:complexType name="discriminator-map">
307     <xs:sequence>
308       <xs:element name="discriminator-mapping" type="orm:discriminator-mapping" minOccurs="1" maxOccurs="unbounded"/>
309       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
310     </xs:sequence>
311     <xs:anyAttribute namespace="##other"/>
312   </xs:complexType>
313
314   <xs:complexType name="generator">
315     <xs:sequence>
316       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
317     </xs:sequence>
318     <xs:attribute name="strategy" type="orm:generator-strategy" use="optional" default="AUTO" />
319     <xs:anyAttribute namespace="##other"/>
320   </xs:complexType>
321
322   <xs:complexType name="id">
323     <xs:sequence>
324       <xs:element name="generator" type="orm:generator" minOccurs="0" />
325       <xs:element name="sequence-generator" type="orm:sequence-generator" minOccurs="0" maxOccurs="1" />
326       <xs:element name="custom-id-generator" type="orm:custom-id-generator" minOccurs="0" maxOccurs="1" />
327       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
328     </xs:sequence>
329     <xs:attribute name="name" type="xs:NMTOKEN" use="required" />
330     <xs:attribute name="type" type="xs:NMTOKEN" />
331     <xs:attribute name="column" type="xs:NMTOKEN" />
332     <xs:attribute name="association-key" type="xs:boolean" default="false" />
333     <xs:attribute name="column-definition" type="xs:string" />
334     <xs:anyAttribute namespace="##other"/>
335   </xs:complexType>
336
337   <xs:complexType name="sequence-generator">
338     <xs:sequence>
339       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
340     </xs:sequence>
341       <xs:attribute name="sequence-name" type="xs:NMTOKEN" use="required" />
342       <xs:attribute name="allocation-size" type="xs:integer" use="optional" default="1" />
343       <xs:attribute name="initial-value" type="xs:integer" use="optional" default="1" />
344     <xs:anyAttribute namespace="##other"/>
345   </xs:complexType>
346
347   <xs:complexType name="custom-id-generator">
348     <xs:sequence>
349       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
350     </xs:sequence>
351     <xs:attribute name="class" type="xs:NMTOKEN" use="required" />
352   </xs:complexType>
353
354   <xs:complexType name="inverse-join-columns">
355     <xs:sequence>
356       <xs:element name="join-column" type="orm:join-column" minOccurs="1" maxOccurs="unbounded" />
357       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
358     </xs:sequence>
359     <xs:anyAttribute namespace="##other"/>
360   </xs:complexType>
361
362   <xs:complexType name="join-column">
363     <xs:sequence>
364       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
365     </xs:sequence>
366     <xs:attribute name="name" type="xs:NMTOKEN" use="required" />
367     <xs:attribute name="referenced-column-name" type="xs:NMTOKEN" use="optional" default="id" />
368     <xs:attribute name="unique" type="xs:boolean" default="false" />
369     <xs:attribute name="nullable" type="xs:boolean" default="true" />
370     <xs:attribute name="on-delete" type="orm:fk-action" />
371     <xs:attribute name="on-update" type="orm:fk-action" />
372     <xs:attribute name="column-definition" type="xs:string" />
373     <xs:anyAttribute namespace="##other"/>
374   </xs:complexType>
375
376   <xs:complexType name="join-columns">
377     <xs:sequence>
378       <xs:element name="join-column" type="orm:join-column" minOccurs="1" maxOccurs="unbounded" />
379       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
380     </xs:sequence>
381     <xs:anyAttribute namespace="##other"/>
382   </xs:complexType>
383
384   <xs:complexType name="join-table">
385     <xs:sequence>
386       <xs:element name="join-columns" type="orm:join-columns" />
387       <xs:element name="inverse-join-columns" type="orm:join-columns" />
388       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
389     </xs:sequence>
390     <xs:attribute name="name" type="xs:NMTOKEN" use="required" />
391     <xs:attribute name="schema" type="xs:NMTOKEN" />
392     <xs:anyAttribute namespace="##other"/>
393   </xs:complexType>
394
395   <xs:complexType name="order-by">
396       <xs:sequence>
397           <xs:element name="order-by-field" type="orm:order-by-field" minOccurs="1" maxOccurs="unbounded" />
398           <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
399       </xs:sequence>
400       <xs:anyAttribute namespace="##other"/>
401   </xs:complexType>
402
403   <xs:complexType name="order-by-field">
404     <xs:sequence>
405       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
406     </xs:sequence>
407     <xs:attribute name="name" type="xs:NMTOKEN" use="required" />
408     <xs:attribute name="direction" type="orm:order-by-direction" default="ASC" />
409     <xs:anyAttribute namespace="##other"/>
410   </xs:complexType>
411
412   <xs:simpleType name="order-by-direction">
413     <xs:restriction base="xs:token">
414       <xs:enumeration value="ASC"/>
415       <xs:enumeration value="DESC"/>
416     </xs:restriction>
417   </xs:simpleType>
418
419   <xs:complexType name="many-to-many">
420     <xs:sequence>
421       <xs:element name="cascade" type="orm:cascade-type" minOccurs="0" />
422       <xs:element name="join-table" type="orm:join-table" minOccurs="0" />
423       <xs:element name="order-by" type="orm:order-by" minOccurs="0" />
424       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
425     </xs:sequence>
426     <xs:attribute name="target-entity" type="xs:string" use="required" />
427     <xs:attribute name="field" type="xs:NMTOKEN" use="required" />
428     <xs:attribute name="mapped-by" type="xs:NMTOKEN" />
429     <xs:attribute name="index-by" type="xs:NMTOKEN" />
430     <xs:attribute name="inversed-by" type="xs:NMTOKEN" />
431     <xs:attribute name="fetch" type="orm:fetch-type" default="LAZY" />
432     <xs:attribute name="orphan-removal" type="xs:boolean" default="false" />
433     <xs:anyAttribute namespace="##other"/>
434   </xs:complexType>
435
436   <xs:complexType name="one-to-many">
437     <xs:sequence>
438       <xs:element name="cascade" type="orm:cascade-type" minOccurs="0" />
439       <xs:element name="order-by" type="orm:order-by" minOccurs="0" />
440       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
441     </xs:sequence>
442     <xs:attribute name="target-entity" type="xs:string" use="required" />
443     <xs:attribute name="mapped-by" type="xs:NMTOKEN" use="required" />
444     <xs:attribute name="field" type="xs:NMTOKEN" use="required" />
445     <xs:attribute name="index-by" type="xs:NMTOKEN" />
446     <xs:attribute name="orphan-removal" type="xs:boolean" default="false" />
447     <xs:attribute name="fetch" type="orm:fetch-type" default="LAZY" />
448     <xs:anyAttribute namespace="##other"/>
449   </xs:complexType>
450   
451   <xs:complexType name="many-to-one">
452     <xs:sequence>
453       <xs:element name="cascade" type="orm:cascade-type" minOccurs="0" />
454       <xs:choice minOccurs="0" maxOccurs="1">
455         <xs:element name="join-column" type="orm:join-column"/>
456         <xs:element name="join-columns" type="orm:join-columns"/>
457         <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
458       </xs:choice>
459       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
460     </xs:sequence>
461     <xs:attribute name="target-entity" type="xs:string" use="required" />
462     <xs:attribute name="field" type="xs:NMTOKEN" use="required" />
463     <xs:attribute name="orphan-removal" type="xs:boolean" default="false" />
464     <xs:attribute name="fetch" type="orm:fetch-type" default="LAZY" />
465     <xs:attribute name="inversed-by" type="xs:NMTOKEN" />
466     <xs:anyAttribute namespace="##other"/>
467   </xs:complexType>
468   
469   <xs:complexType name="one-to-one">
470     <xs:sequence>
471       <xs:element name="cascade" type="orm:cascade-type" minOccurs="0" />
472       <xs:choice minOccurs="0" maxOccurs="1">
473         <xs:element name="join-column" type="orm:join-column"/>
474         <xs:element name="join-columns" type="orm:join-columns"/>
475         <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
476       </xs:choice>
477       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
478     </xs:sequence>
479     <xs:attribute name="field" type="xs:NMTOKEN" use="required" />
480     <xs:attribute name="target-entity" type="xs:string" use="required" />
481     <xs:attribute name="mapped-by" type="xs:NMTOKEN" />
482     <xs:attribute name="inversed-by" type="xs:NMTOKEN" />
483     <xs:attribute name="orphan-removal" type="xs:boolean" default="false" />
484     <xs:attribute name="fetch" type="orm:fetch-type" default="LAZY" />
485     <xs:anyAttribute namespace="##other"/>
486   </xs:complexType>
487
488   <xs:complexType name="association-overrides">
489     <xs:sequence>
490       <xs:element name="association-override" type="orm:association-override" minOccurs="1" maxOccurs="unbounded" />
491       <xs:any minOccurs="1" maxOccurs="unbounded" namespace="##other"/>
492     </xs:sequence>
493   </xs:complexType>
494
495   <xs:complexType name="association-override">
496     <xs:sequence>
497       <xs:element name="join-table" type="orm:join-table" minOccurs="0" />
498       <xs:element name="join-columns" type="orm:join-columns" minOccurs="0" />
499       <xs:any minOccurs="0" maxOccurs="unbounded" namespace="##other"/>
500     </xs:sequence>
501     <xs:attribute name="name" type="xs:NMTOKEN" use="required" />
502   </xs:complexType>
503
504   <xs:complexType name="attribute-overrides">
505     <xs:sequence>
506       <xs:element name="attribute-override" type="orm:attribute-override" minOccurs="1" maxOccurs="unbounded" />
507       <xs:any minOccurs="1" maxOccurs="unbounded" namespace="##other"/>
508     </xs:sequence>
509   </xs:complexType>
510
511   <xs:complexType name="attribute-override">
512     <xs:sequence>
513       <xs:element name="field" type="orm:field" minOccurs="1" />
514       <xs:any minOccurs="1" maxOccurs="unbounded" namespace="##other"/>
515     </xs:sequence>
516     <xs:attribute name="name" type="xs:NMTOKEN" use="required" />
517   </xs:complexType>
518
519 </xs:schema>