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

Sun Microsystems, Inc. has intellectual property rights relating to
technology embodied in the product that is described in this document.
In particular, and without limitation, these intellectual property
rights may include one or more of the U.S. patents listed at
http://www.sun.com/patents and one or more additional patents or
pending patent applications in the U.S. and in other countries.

This document and the product to which it pertains are distributed
under licenses restricting their use, copying, distribution, and
decompilation.  This document may be reproduced and distributed but may
not be changed without prior written authorization of Sun and its
licensors, if any.

Third-party software, including font technology, is copyrighted and
licensed from Sun suppliers.

Sun,  Sun Microsystems,  the Sun logo,  Java,  JavaServer Pages,  Java
Naming and Directory Interface,  JDBC,  JDK,  JavaMail and  and
Enterprise JavaBeans are trademarks or registered trademarks of Sun
Microsystems, Inc. in the U.S. and other countries.

Federal Acquisitions: Commercial Software - Government Users Subject to
Standard License Terms and Conditions.

DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED
CONDITIONS, REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED
WARRANTY OF MERCHANTABILITY, FITNESS FOR FOR A PARTICULAR PURPOSE OR
NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH
DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.


_________________________________________________________________________

Copyright (c) 2000 Sun Microsystems, Inc.,
901 San Antonio Road,
Palo Alto, California 94303, E'tats-Unis.
Tous droits re'serve's.

Sun Microsystems, Inc. a les droits de proprie'te' intellectuels
relatants a` la technologie incorpore'e dans le produit qui est de'crit
dans ce document. En particulier, et sans la limitation, ces droits de
proprie'te' intellectuels peuvent inclure un ou plus des brevets
ame'ricains e'nume're's a` http://www.sun.com/patents et un ou les
brevets plus supple'mentaires ou les applications de brevet en attente
dans les E'tats-Unis et dans les autres pays.

Ce produit ou document est prote'ge' par un copyright et distribue'
avec des licences qui en restreignent l'utilisation, la copie, la
distribution, et la de'compilation.  Ce documention associe n peut
e^tre reproduite et distribuer, par quelque moyen que ce soit, sans
l'autorisation pre'alable et e'crite de Sun et de ses bailleurs de
licence, le cas e'che'ant.

Le logiciel de'tenu par des tiers, et qui comprend la technologie
relative aux polices de caracte`res, est prote'ge' par un copyright et
licencie' par des fournisseurs de Sun.

Sun,  Sun Microsystems,  le logo Sun,  Java,  JavaServer Pages,  Java
Naming and Directory Interface,  JDBC,  JDK,  JavaMail et  and
Enterprise JavaBeans sont des marques de fabrique ou des marques
de'pose'es de Sun Microsystems, Inc. aux E'tats-Unis et dans d'autres
pays.

LA DOCUMENTATION EST FOURNIE "EN L'E'TAT" ET TOUTES AUTRES CONDITIONS,
DECLARATIONS ET GARANTIES EXPRESSES OU TACITES SONT FORMELLEMENT
EXCLUES, DANS LA MESURE AUTORISEE PAR LA LOI APPLICABLE, Y COMPRIS
NOTAMMENT TOUTE GARANTIE IMPLICITE RELATIVE A LA QUALITE MARCHANDE, A
L'APTITUDE A UNE UTILISATION PARTICULIERE OU A L'ABSENCE DE
CONTREFAC,ON.
-->

<!--
This is the XML DTD for the EJB 2.0 deployment descriptor.
All EJB 2.0 deployment descriptors must include a DOCTYPE
of the following form:

  <!DOCTYPE ejb-jar PUBLIC
	"-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 2.0//EN"
	"http://java.sun.com/dtd/ejb-jar_2_0.dtd">

-->

<!--
The following conventions apply to all J2EE deployment descriptor
elements unless indicated otherwise.

- In elements that contain PCDATA, leading and trailing whitespace
  in the data may be ignored.

- In elements whose value is an "enumerated type", the value is
  case sensitive.

- In elements that specify a pathname to a file within the same
  JAR file, relative filenames (i.e., those not starting with "/")
  are considered relative to the root of the JAR file's namespace.
  Absolute filenames (i.e., those starting with "/") also specify
  names in the root of the JAR file's namespace.  In general, relative
  names are preferred.  The exception is .war files where absolute
  names are preferred for consistency with the servlet API.
-->


<!--
The ejb-jar element is the root element of the EJB deployment
descriptor. It contains

	- an optional description of the ejb-jar file
	- an optional display name
	- an optional small icon file name
	- an optional large icon file name
	- mandatory structural information about all included
	  enterprise beans
	- a descriptor for container managed relationships, if any
	- an optional application-assembly descriptor
	- an optional name of an ejb-client-jar file for the ejb-jar.
-->
<!ELEMENT ejb-jar (description?, display-name?, small-icon?,
large-icon?, enterprise-beans, relationships?, assembly-descriptor?,
ejb-client-jar?)>

<!--
The abstract-schema-name element specifies the name of the abstract
schema type of an entity bean with cmp-version 2.x. It is used in EJB
QL queries.

For example, the abstract-schema-name for an entity bean whose local
interface is com.acme.commerce.Order might be Order.

Used in: entity
-->
<!ELEMENT abstract-schema-name (#PCDATA)>

<!--

The acknowledge-mode element specifies whether JMS AUTO_ACKNOWLEDGE or
DUPS_OK_ACKNOWLEDGE message acknowledgment semantics should be used
for the onMessage message of a message-driven bean that uses bean
managed transaction demarcation.

The acknowledge-mode element must be one of the two following:

	<acknowledge-mode>Auto-acknowledge</acknowledge-mode>
	<acknowledge-mode>Dups-ok-acknowledge</acknowledgemode>

Used in: message-driven
-->
<!ELEMENT acknowledge-mode (#PCDATA)>

<!--
The assembly-descriptor element contains application-assembly information.

The application-assembly information consists of the following parts:
the definition of security roles, the definition of method
permissions, the definition of transaction attributes for
enterprise beans with container-managed transaction demarcation and
a list of methods to be excluded from being invoked.

All the parts are optional in the sense that they are omitted if the
lists represented by them are empty.

Providing an assembly-descriptor in the deployment descriptor is
optional for the ejb-jar file producer.

Used in: ejb-jar
-->
<!ELEMENT assembly-descriptor (security-role*, method-permission*,
container-transaction*, exclude-list?)>

<!--
The cascade-delete element specifies that, within a particular
relationship, the lifetime of one or more entity beans is dependent
upon the lifetime of another entity bean. The cascade-delete element
can only be specified for an ejb-relationship-role element contained
in an ejb-relation element in which the other ejb-relationship-role
element specifies a multiplicity of One.

Used in: ejb-relationship-role
-->
<!ELEMENT cascade-delete EMPTY>

<!--
The cmp-field element describes a container-managed field. The
field element includes an optional description of the field, and the
name of the field.

Used in: entity
-->
<!ELEMENT cmp-field (description?, field-name)>

<!--
The cmp-version element specifies the version of an entity bean
with container-managed persistence.

The cmp-version element must be one of the two following:

	<cmp-version>1.x</cmp-version>
	<cmp-version>2.x</cmp-version>

The default value of the cmp-version element is 2.x.

Used in: entity
-->
<!ELEMENT cmp-version (#PCDATA)>

<!--

The cmr-field element describes the bean provider's view of a
relationship. It consists of an optional description, and the name and
the class type of a field in the source of a role of a
relationship. The cmr-field-name element corresponds to the name used
for the get and set accessor methods for the relationship. The
cmr-field-type element is used only for collection-valued
cmr-fields. It specifies the type of the collection that is used.

Used in: ejb-relationship-role
-->
<!ELEMENT cmr-field (description?, cmr-field-name, cmr-field-type?)>

<!--
The cmr-field-name element specifies the name of a logical
relationship field in the entity bean class. The name of the cmr-field
must begin with a lowercase letter. This field is accessed by methods
whose names consist of the name of the field specified by
cmr-field-name in which the first letter is uppercased, prefixed by
"get" or "set".

Used in: cmr-field
-->
<!ELEMENT cmr-field-name (#PCDATA)>

<!--
The cmr-field-type element specifies the class of a
collection-valued logical relationship field in the entity bean
class. The value of the cmr-field-type element must be either:
java.util.Collection or java.util.Set.

Used in: cmr-field
-->
<!ELEMENT cmr-field-type (#PCDATA)>

<!--
The container-transaction element specifies how the container
must manage transaction scopes for the enterprise bean's method
invocations. The element consists of an optional description, a list
of method elements, and a transaction attribute. The transaction
attribute is to be applied to all the specified methods.

Used in: assembly-descriptor
-->
<!ELEMENT container-transaction (description?, method+, trans-attribute)>

<!--
The description element is used to provide text describing the parent
element.  The description element should include any information that
the enterprise bean ejb-jar file producer wants to provide to the consumer of
the enterprise bean ejb-jar file (i.e., to the Deployer). Typically, the tools
used by the enterprise bean ejb-jar file consumer will display the description
when processing the parent element that contains the description.

Used in: cmp-field, cmr-field, container-transaction, ejb-jar,
ejb-local-ref, ejb-ref, ejb-relation, ejb-relationship-role, entity,
env-entry, exclude-list, message-driven, method, method-permission,
query, relationship-role-source, relationships, resource-env-ref,
resource-ref, run-as, security-identity, security-role,
security-role-ref, session
-->
<!ELEMENT description (#PCDATA)>

<!--
The destination-type element specifies the type of the JMS
destination. The type is specified by the Java interface expected to
be implemented by the destination.

The destination-type element must be one of the two following:

<destination-type>javax.jms.Queue</destination-type>
<destination-type>javax.jms.Topic</destination-type>

Used in: message-driven-destination
-->
<!ELEMENT destination-type (#PCDATA)>

<!--
The display-name element contains a short name that is intended to be
displayed by tools.  The display name need not be unique.

Used in: ejb-jar, entity, message-driven, session

Example:

<display-name>Employee Self Service</display-name>
-->
<!ELEMENT display-name (#PCDATA)>

<!--
The ejb-class element contains the fully-qualified name of the
enterprise bean's class.

Used in: entity, message-driven, session

Example:

<ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>
-->
<!ELEMENT ejb-class (#PCDATA)>

<!--
The optional ejb-client-jar element specifies a JAR file that contains
the class files necessary for a client program to access the
enterprise beans in the ejb-jar file.

Used in: ejb-jar

Example:

<ejb-client-jar>employee_service_client.jar</ejb-client-jar>
-->
<!ELEMENT ejb-client-jar (#PCDATA)>

<!--
The ejb-link element is used in the ejb-ref or ejb-local-ref
elements to specify that an EJB reference is linked to an
enterprise bean.

The value of the ejb-link element must be the ejb-name of an
enterprise bean in the same ejb-jar file or in another ejb-jar
file in the same J2EE application unit.

Alternatively, the name in the ejb-link element may be composed of a
path name specifying the ejb-jar containing the referenced enterprise
bean with the ejb-name of the target bean appended and separated from
the path name by "#".  The path name is relative to the ejb-jar file
containing the enterprise bean that is referencing the enterprise bean.
This allows multiple enterprise beans with the same ejb-name to be
uniquely identified.

Used in: ejb-local-ref, ejb-ref

Examples:

	<ejb-link>EmployeeRecord</ejb-link>

	<ejb-link>../products/product.jar#ProductEJB</ejb-link>

-->
<!ELEMENT ejb-link (#PCDATA)>

<!--
The ejb-local-ref element is used for the declaration of a reference to
an enterprise bean's local home. The declaration consists of:

	- an optional description
	- the EJB reference name used in the code of the enterprise bean
	  that's referencing the enterprise bean
	- the expected type of the referenced enterprise bean
	- the expected local home and local interfaces of the referenced
	  enterprise bean
	- optional ejb-link information, used to specify the referenced
	  enterprise bean

Used in: entity, message-driven, session
-->
<!ELEMENT ejb-local-ref (description?, ejb-ref-name, ejb-ref-type,
		local-home, local, ejb-link?)>

<!--
The ejb-name element specifies an enterprise bean's name. This name is
assigned by the ejb-jar file producer to name the enterprise bean in
the ejb-jar file's deployment descriptor. The name must be unique
among the names of the enterprise beans in the same ejb-jar file.

There is no architected relationship between the ejb-name in the
deployment descriptor and the JNDI name that the Deployer will assign
to the enterprise bean's home.

The name for an entity bean with cmp-version 2.x must conform to the
lexical rules for an NMTOKEN. The name for an entity bean with
cmp-version 2.x must not be a reserved literal in EJB QL.

Used in: entity, message-driven, method, relationship-role-source,
session

Example:

<ejb-name>EmployeeService</ejb-name>
-->
<!ELEMENT ejb-name (#PCDATA)>

<!--
The ejb-ql element contains the EJB QL query string that defines
a finder or select query. This element is defined within the scope of
a query element whose contents specify the finder or the select method
that uses the query. The content must be a valid EJB QL query string
for the entity bean for which the query is specified.

The ejb-ql element must be specified for all queries that are
expressible in EJB QL.

Used in: query

Example:
<query>
    <query-method>
        <method-name>ejbSelectPendingLineitems</method-name>
        <method-params/>
    </query-method>
    <ejb-ql>SELECT OBJECT(l) FROM LineItems l WHERE l.shipped <> TRUE
    </ejb-ql>
</query>

-->
<!ELEMENT ejb-ql (#PCDATA)>

<!--
The ejb-ref element is used for the declaration of a reference to
an enterprise bean's home. The declaration consists of:

	- an optional description
	- the EJB reference name used in the code of
	  the enterprise bean that's referencing the enterprise bean
	- the expected type of the referenced enterprise bean
	- the expected home and remote interfaces of the referenced
	  enterprise bean
	- optional ejb-link information, used to specify the referenced
	  enterprise bean

Used in: entity, message-driven, session
-->
<!ELEMENT ejb-ref (description?, ejb-ref-name, ejb-ref-type,
		home, remote, ejb-link?)>

<!--
The ejb-ref-name element contains the name of an EJB reference. The
EJB reference is an entry in the enterprise bean's environment and is
relative to the java:comp/env context.  The name must be unique
within the enterprise bean.

It is recommended that name is prefixed with "ejb/".

Used in: ejb-local-ref, ejb-ref

Example:

<ejb-ref-name>ejb/Payroll</ejb-ref-name>
-->
<!ELEMENT ejb-ref-name (#PCDATA)>

<!--
The ejb-ref-type element contains the expected type of the
referenced enterprise bean.

The ejb-ref-type element must be one of the following:

	<ejb-ref-type>Entity</ejb-ref-type>
	<ejb-ref-type>Session</ejb-ref-type>

Used in: ejb-local-ref, ejb-ref
-->
<!ELEMENT ejb-ref-type (#PCDATA)>

<!--

The ejb-relation element describes a relationship between two
entity beans with container-managed persistence.  An ejb-relation
element contains a description; an optional ejb-relation-name element;
and exactly two relationship role declarations, defined by the
ejb-relationship-role elements. The name of the relationship, if
specified, is unique within the ejb-jar file.

Used in: relationships
-->
<!ELEMENT ejb-relation (description?, ejb-relation-name?, ejb-relationship-role,
ejb-relationship-role)>

<!--
The ejb-relation-name element provides a unique name for a relationship.

Used in: ejb-relation
-->
<!ELEMENT ejb-relation-name (#PCDATA)>

<!--
The ejb-relationship-role element describes a role within a
relationship. There are two roles in each relationship.

The ejb-relationship-role element contains an optional description; an
optional name for the relationship role; a specification of the
multiplicity of the role; an optional specification of cascade-delete
functionality for the role; the role source; and a declaration of the
cmr-field, if any, by means of which the other side of the
relationship is accessed from the perspective of the role source.

The multiplicity and role-source element are mandatory.

The relationship-role-source element designates an entity bean by
means of an ejb-name element. For bidirectional relationships, both
roles of a relationship must declare a relationship-role-source
element that specifies a cmr-field in terms of which the relationship
is accessed. The lack of a cmr-field element in an
ejb-relationship-role specifies that the relationship is
unidirectional in navigability and the entity bean that participates
in the relationship is "not aware" of the relationship.

Used in: ejb-relation

Example:

<ejb-relation>
    <ejb-relation-name>Product-LineItem</ejb-relation-name>
    <ejb-relationship-role>
        <ejb-relationship-role-name>product-has-lineitems
        </ejb-relationship-role-name>
        <multiplicity>One</multiplicity>
        <relationship-role-source>
        <ejb-name>ProductEJB</ejb-name>
        </relationship-role-source>
     </ejb-relationship-role>

-->
<!ELEMENT ejb-relationship-role (description?, ejb-relationship-role-name?,
multiplicity, cascade-delete?, relationship-role-source, cmr-field?)>

<!--
The ejb-relationship-role-name element defines a name for a role that
is unique within an ejb-relation. Different relationships can use the
same name for a role.

Used in: ejb-relationship-role
-->
<!ELEMENT ejb-relationship-role-name (#PCDATA)>

<!--
The enterprise-beans element contains the declarations of one or more
enterprise beans.
-->
<!ELEMENT enterprise-beans (session | entity | message-driven)+>

<!--
The entity element declares an entity bean. The declaration
consists of:

	- an optional description
	- an optional display name
	- an optional small icon file name
	- an optional large icon file name
	- a unique name assigned to the enterprise bean
	  in the deployment descriptor
	- the names of the entity bean's remote home and remote
          interfaces, if any
	- the names of the entity bean's local home and local
	  interfaces, if any
	- the entity bean's implementation class
	- the entity bean's persistence management type
	- the entity bean's primary key class name
	- an indication of the entity bean's reentrancy
	- an optional specification of the entity bean's cmp-version
	- an optional specification of the entity bean's abstract
	  schema name
	- an optional list of container-managed fields
	- an optional specification of the primary key field
	- an optional declaration of the bean's environment entries
	- an optional declaration of the bean's EJB references
	- an optional declaration of the bean's local EJB references
	- an optional declaration of the security role references
	- an optional declaration of the security identity
	  to be used for the execution of the bean's methods
	- an optional declaration of the bean's resource manager
          connection factory references
	- an optional declaration of the bean's
	  resource environment references
	- an optional set of query declarations
	  for finder and select methods for an entity
	  bean with cmp-version 2.x.

The optional abstract-schema-name element must be specified for an
entity bean with container-managed persistence and cmp-version 2.x.

The optional primkey-field may be present in the descriptor if the
entity's persistence-type is Container.

The optional cmp-version element may be present in the descriptor if
the entity's persistence-type is Container. If the persistence-type is
Container and the cmp-version element is not specified, its value
defaults to 2.x.

The optional home and remote elements must be specified if the entity
bean cmp-version is 1.x.

The optional home and remote elements must be specified if the entity
bean has a remote home and remote interface.

The optional local-home and local elements must be specified if the
entity bean has a local home and local interface.

Either both the local-home and the local elements or both the
home and the remote elements must be specified.

The optional query elements must be present if the persistence-type is
Container and the cmp-version is 2.x and query methods other than
findByPrimaryKey have been defined for the entity bean.

The other elements that are optional are "optional" in the sense that
they are omitted if the lists represented by them are empty.

At least one cmp-field element must be present in the descriptor if
the entity's persistence-type is Container and the cmp-version is 1.x,
and none must not be present if the entity's persistence-type is Bean.

Used in: enterprise-beans

-->
<!ELEMENT entity (description?, display-name?, small-icon?,
		large-icon?, ejb-name, home?, remote?, local-home?,
		local?, ejb-class, persistence-type, prim-key-class,
		reentrant, cmp-version?, abstract-schema-name?,
		cmp-field*, primkey-field?, env-entry*, ejb-ref*,
		ejb-local-ref*, security-role-ref*, security-identity?,
		resource-ref*, resource-env-ref*, query*)>

<!--
The env-entry element contains the declaration of an enterprise bean's
environment entry. The declaration consists of an optional
description, the name of the environment entry, and an optional
value.  If a value is not specified, one must be supplied
during deployment.

Used in: entity, message-driven, session
-->
<!ELEMENT env-entry (description?, env-entry-name, env-entry-type,
		env-entry-value?)>

<!--
The env-entry-name element contains the name of an enterprise bean's
environment entry.  The name is a JNDI name relative to the
java:comp/env context.  The name must be unique within an enterprise bean.

Used in: env-entry

Example:

<env-entry-name>minAmount</env-entry-name>
-->
<!ELEMENT env-entry-name (#PCDATA)>

<!--
The env-entry-type element contains the fully-qualified Java type of
the environment entry value that is expected by the enterprise bean's
code.

The following are the legal values of env-entry-type:

	java.lang.Boolean
	java.lang.Byte
	java.lang.Character
	java.lang.String
	java.lang.Short
	java.lang.Integer
	java.lang.Long
	java.lang.Float
	java.lang.Double


Used in: env-entry

Example:

<env-entry-type>java.lang.Boolean</env-entry-type>
-->
<!ELEMENT env-entry-type (#PCDATA)>

<!--
The env-entry-value element contains the value of an enterprise bean's
environment entry. The value must be a String that is valid for the
constructor of the specified type that takes a single String
parameter, or for java.lang.Character, a single character.

Used in: env-entry

Example:

<env-entry-value>100.00</env-entry-value>
-->
<!ELEMENT env-entry-value (#PCDATA)>

<!--
The exclude list element specifies one or more methods which the
Assembler marks to be uncallable.

If the method permission relation contains methods that are in the
exclude list, the Deployer should consider those methods to be
uncallable.

Used in: assembly-descriptor
-->
<!ELEMENT exclude-list (description?, method+)>

<!--
The field-name element specifies the name of a container managed
field.

The name of the cmp-field of an entity bean with cmp-version 2.x must
begin with a lowercase letter. This field is accessed by methods whose
names consists of the name of the field specified by field-name in
which the first letter is uppercased, prefixed by "get" or "set".

The name of the cmp-field of an entity bean with cmp-version 1.x must
denote a public field of the enterprise bean class or one of its
superclasses.

Used in: cmp-field

Example:


	<field-name>firstName</field-Name>

-->
<!ELEMENT field-name (#PCDATA)>

<!--
The home element contains the fully-qualified name of the enterprise
bean's home interface.

Used in: ejb-ref, entity, session

Example:

<home>com.aardvark.payroll.PayrollHome</home>
-->
<!ELEMENT home (#PCDATA)>

<!--
The large-icon element contains the name of a file
containing a large (32 x 32) icon image. The file
name is a relative path within the enterprise bean's
ejb-jar file.

The image may be either in the JPEG or GIF format.
The icon can be used by tools.

Used in: ejb-jar, entity, message-driven, session

Example:

<large-icon>employee-service-icon32x32.jpg</large-icon>
-->
<!ELEMENT large-icon (#PCDATA)>

<!--

The local element contains the fully-qualified name of the
enterprise bean's local interface.

Used in: ejb-local-ref, entity, session

-->
<!ELEMENT local (#PCDATA)>

<!--

The local-home element contains the fully-qualified name of the
enterprise bean's local home interface.

Used in: ejb-local-ref, entity, session
-->
<!ELEMENT local-home (#PCDATA)>

<!--

The message-driven element declares a message-driven bean. The
declaration consists of:

	- an optional description
	- an optional display name
	- an optional small icon file name
	- an optional large icon file name
	- a name assigned to the enterprise bean in
	  the deployment descriptor
	- the message-driven bean's implementation class
	- the message-driven bean's transaction management type
	- an optional declaration of the message-driven bean's
	  message selector
	- an optional declaration of the
	  acknowledgment mode for the message-driven bean
	  if bean-managed transaction demarcation is used
	- an optional declaration of the
	  intended destination type of the message-driven bean
	- an optional declaration of the bean's environment entries
	- an optional declaration of the bean's EJB references
	- an optional declaration of the bean's local EJB references
	- an optional declaration of the security
	  identity to be used for the execution of the bean's methods
	- an optional declaration of the bean's resource manager
	  connection factory references
	- an optional declaration of the bean's resource
          environment references.

Used in: enterprise-beans
-->
<!ELEMENT message-driven (description?, display-name?, small-icon?,
		large-icon?, ejb-name, ejb-class, transaction-type,
		message-selector?, acknowledge-mode?,
		message-driven-destination?, env-entry*, ejb-ref*,
		ejb-local-ref*, security-identity?, resource-ref*,
		resource-env-ref*)>

<!--
The message-driven-destination element provides advice to the Deployer
as to whether a message-driven bean is intended for a Queue or a
Topic. The declaration consists of: the type of the message-driven
bean's intended destination and an optional declaration of whether a
durable or non-durable subscription should be used if the
destination-type is javax.jms.Topic.

Used in: message-driven
-->
<!ELEMENT message-driven-destination (destination-type,
subscription-durability?)>

<!--
The message-selector element is used to specify the JMS message
selector to be used in determining which messages a message-driven
bean is to receive.

Example:
<message-selector>JMSType = `car' AND color = `blue' AND weight &gt; 2500
</message-selector>

Used in: message-driven
-->
<!ELEMENT message-selector (#PCDATA)>

<!--

The method element is used to denote a method of an enterprise
bean's home or component interface, or, in the case of a message-driven
bean, the bean's onMessage method, or a set of methods. The ejb-name
element must be the name of one of the enterprise beans declared in
the deployment descriptor; the optional method-intf element allows to
distinguish between a method with the same signature that is multiply
defined across in both the home and component interfaces; the
method-name element specifies the method name; and the optional
method-params elements identify a single method among multiple methods
with an overloaded method name.

There are three possible styles of the method element syntax:

1.
<method>
    <ejb-name>EJBNAME</ejb-name>
    <method-name>*</method-name>
</method>

   This style is used to refer to all the methods of the specified
   enterprise bean's home and component interfaces.

2.
<method>
    <ejb-name>EJBNAME</ejb-name>
    <method-name>METHOD</method-name>
</method>>

   This style is used to refer to the specified method of the
   specified enterprise bean. If there are multiple methods with
   the same overloaded name, the element of this style refers to
   all the methods with the overloaded name.


3.
<method>
    <ejb-name>EJBNAME</ejb-name>
    <method-name>METHOD</method-name>
    <method-params>
        <method-param>PARAM-1</method-param>
        <method-param>PARAM-2</method-param>
        ...
        <method-param>PARAM-n</method-param>
    </method-params>
<method>


   This style is used to refer to a single method within a set of
   methods with an overloaded name. PARAM-1 through PARAM-n are the
   fully-qualified Java types of the method's input parameters (if
   the method has no input arguments, the method-params element
   contains no method-param elements). Arrays are specified by the
   array element's type, followed by one or more pair of square
   brackets (e.g. int[][]). If there are multiple methods with the
   same overloaded name, this style refers to all of the overloaded
   methods.


Used in: container-transaction, exclude-list, method-permission

Examples:

Style 1: The following method element refers to all the methods of
the EmployeeService bean's home and component interfaces:

<method>
    <ejb-name>EmployeeService</ejb-name>
    <method-name>*</method-name>
</method>

Style 2: The following method element refers to all the create
methods of the EmployeeService bean's home interface(s).

<method>
    <ejb-name>EmployeeService</ejb-name>
    <method-name>create</method-name>
</method>


Style 3: The following method element refers to the
create(String firstName, String LastName) method of the
EmployeeService bean's home interface(s).

<method>
    <ejb-name>EmployeeService</ejb-name>
    <method-name>create</method-name>
    <method-params>
        <method-param>java.lang.String</method-param>
        <method-param>java.lang.String</method-param>
    </method-params>
</method>


The following example illustrates a Style 3 element with
more complex parameter types. The method
foobar(char s, int i, int[] iar, mypackage.MyClass mycl,
mypackage.MyClass[][] myclaar) would be specified as:

<method>
    <ejb-name>EmployeeService</ejb-name>
    <method-name>foobar</method-name>
    <method-params>
        <method-param>char</method-param>
        <method-param>int</method-param>
        <method-param>int[]</method-param>
        <method-param>mypackage.MyClass</method-param>
        <method-param>mypackage.MyClass[][]</method-param>
    </method-params>
</method>


The optional method-intf element can be used when it becomes necessary
to differentiate between a method that is multiply defined across the
enterprise bean's home and component interfaces with the same name and
signature.


For example, the method element

<method>
    <ejb-name>EmployeeService</ejb-name>
    <method-intf>Remote</method-intf>
    <method-name>create</method-name>
    <method-params>
        <method-param>java.lang.String</method-param>
        <method-param>java.lang.String</method-param>
    </method-params>
</method>


can be used to differentiate the create(String, String) method defined
in the remote interface from the create(String, String) method defined
in the remote home interface, which would be defined as


<method>
    <ejb-name>EmployeeService</ejb-name>
    <method-intf>Home</method-intf>
    <method-name>create</method-name>
    <method-params>
        <method-param>java.lang.String</method-param>
        <method-param>java.lang.String</method-param>
    </method-params>
</method>

and the create method that is defined in the local home interface
which would be defined as

<method>
    <ejb-name>EmployeeService</ejb-name>
    <method-intf>LocalHome</method-intf>
    <method-name>create</method-name>
    <method-params>
        <method-param>java.lang.String</method-param>
        <method-param>java.lang.String</method-param>
    </method-params>
</method>


The method-intf element can be used with all three Styles of the
method element usage. For example, the following method element
example could be used to refer to all the methods of the
EmployeeService bean's remote home interface.


<method>
    <ejb-name>EmployeeService</ejb-name>
    <method-intf>Home</method-intf>
    <method-name>*</method-name>
</method>

-->
<!ELEMENT method (description?, ejb-name, method-intf?, method-name,
method-params?)>

<!--

The method-intf element allows a method element to differentiate
between the methods with the same name and signature that are multiply
defined across the component and home interfaces (e.g, in both an
enterprise bean's remote and local interfaces; in both an enterprise bean's
home and remote interfaces, etc.)

The method-intf element must be one of the following:

	<method-intf>Home</method-intf>
	<method-intf>Remote</method-intf>
	<method-intf>LocalHome</method-intf>
	<method-intf>Local</method-intf>

Used in: method
-->
<!ELEMENT method-intf (#PCDATA)>

<!--
The method-name element contains a name of an enterprise bean method
or the asterisk (*) character. The asterisk is used when the element
denotes all the methods of an enterprise bean's component and home
interfaces.

Used in: method, query-method
-->
<!ELEMENT method-name (#PCDATA)>

<!--
The method-param element contains the fully-qualified Java type name
of a method parameter.

Used in: method-params
-->
<!ELEMENT method-param (#PCDATA)>

<!--
The method-params element contains a list of the fully-qualified Java
type names of the method parameters.

Used in: method, query-method
-->
<!ELEMENT method-params (method-param*)>

<!--

The method-permission element specifies that one or more security
roles are allowed to invoke one or more enterprise bean methods. The
method-permission element consists of an optional description, a list
of security role names or an indicator to state that the method is
unchecked for authorization, and a list of method elements.

The security roles used in the method-permission element must be
defined in the security-role elements of the deployment descriptor,
and the methods must be methods defined in the enterprise bean's
component and/or home interfaces.


Used in: assembly-descriptor
-->
<!ELEMENT method-permission (description?, (role-name+|unchecked), method+)>

<!--
The multiplicity element describes the multiplicity of the role that
participates in a relation.

The multiplicity element must be one of the two following:

	<multiplicity>One</multiplicity>
	<multiplicity>Many</multiplicity>

Used in: ejb-relationship-role
-->
<!ELEMENT multiplicity (#PCDATA)>

<!--
The persistence-type element specifies an entity bean's persistence
management type.

The persistence-type element must be one of the two following:

	<persistence-type>Bean</persistence-type>
	<persistence-type>Container</persistence-type>

Used in: entity
-->
<!ELEMENT persistence-type (#PCDATA)>

<!--
The prim-key-class element contains the fully-qualified name of an
entity bean's primary key class.

If the definition of the primary key class is deferred to deployment
time, the prim-key-class element should specify java.lang.Object.

Used in: entity

Examples:

	<prim-key-class>java.lang.String</prim-key-class>

	<prim-key-class>com.wombat.empl.EmployeeID</prim-key-class>

	<prim-key-class>java.lang.Object</prim-key-class>

-->
<!ELEMENT prim-key-class (#PCDATA)>

<!--
The primkey-field element is used to specify the name of the primary
key field for an entity with container-managed persistence.

The primkey-field must be one of the fields declared in the cmp-field
element, and the type of the field must be the same as the primary key
type.

The primkey-field element is not used if the primary key maps to
multiple container-managed fields (i.e. the key is a compound key). In
this case, the fields of the primary key class must be public, and
their names must correspond to the field names of the entity bean
class that comprise the key.

Used in: entity

Example:

	<primkey-field>EmployeeId</primkey-field>

-->
<!ELEMENT primkey-field (#PCDATA)>

<!--
The query element is used to specify a finder or select query. It
contains
	- an optional description of the query
	- the specification of the finder or select
	  method it is used by
        - an optional specification of the result type mapping, if
          the query is for a select method and entity objects are
          returned.
    	- the EJB QL query string that defines the query.

Queries that are expressible in EJB QL must use the ejb-ql element to
specify the query. If a query is not expressible in EJB QL, the
description element should be used to describe the semantics of the
query and the ejb-ql element should be empty.

The result-type-mapping is an optional element. It can only be present
if the query-method specifies a select method that returns entity
objects.  The default value for the result-type-mapping element is
"Local".


Used in: entity
-->
<!ELEMENT query (description?, query-method, result-type-mapping?, ejb-ql)>

<!--
The query-method element is used to specify the method for a finder or
select query.

The method-name element specifies the name of a finder or select
method in the entity bean's implementation class.

Each method-param must be defined for a query-method using the
method-params element.

Used in: query

Example:

<query>
    <description>Method finds large orders</description>
    <query-method>
        <method-name>findLargeOrders</method-name>
        <method-params></method-params>
    </query-method>
    <ejb-ql>SELECT OBJECT(o) FROM Order o WHERE o.amount &gt; 1000</ejb-ql>
</query>

-->
<!ELEMENT query-method (method-name, method-params)>

<!--
The reentrant element specifies whether an entity bean is reentrant or
not.

The reentrant element must be one of the two following:

	<reentrant>True</reentrant>
	<reentrant>False</reentrant>

Used in: entity
-->
<!ELEMENT reentrant (#PCDATA)>

<!--

The relationship-role-source element designates the source of a role
that participates in a relationship. A relationship-role-source
element uniquely identifies an entity bean.

Used in: ejb-relationship-role
-->
<!ELEMENT relationship-role-source (description?, ejb-name)>

<!--
The relationships element describes the relationships in which
entity beans with container-managed persistence participate. The
relationships element contains an optional description; and a list of
ejb-relation elements, which specify the container managed
relationships.


Used in: ejb-jar
-->
<!ELEMENT relationships (description?, ejb-relation+)>

<!--
The remote element contains the fully-qualified name of the enterprise
bean's remote interface.

Used in: ejb-ref, entity, session

Example:

<remote>com.wombat.empl.EmployeeService</remote>
-->
<!ELEMENT remote (#PCDATA)>

<!--
The res-auth element specifies whether the enterprise bean code signs
on programmatically to the resource manager, or whether the Container
will sign on to the resource manager on behalf of the enterprise bean. In the
latter case, the Container uses information that is supplied by the
Deployer.

The value of this element must be one of the two following:

	<res-auth>Application</res-auth>
	<res-auth>Container</res-auth>

Used in: resource-ref
-->
<!ELEMENT res-auth (#PCDATA)>

<!--
The res-ref-name element specifies the name of a resource manager
connection factory reference.  The name is a JNDI name relative to the
java:comp/env context.  The name must be unique within an enterprise bean.

Used in: resource-ref
-->
<!ELEMENT res-ref-name (#PCDATA)>

<!--
The res-sharing-scope element specifies whether connections obtained
through the given resource manager connection factory reference can be
shared. The value of this element, if specified, must be one of the
two following:

	<res-sharing-scope>Shareable</res-sharing-scope>
	<res-sharing-scope>Unshareable</res-sharing-scope>

The default value is Shareable.

Used in: resource-ref
-->
<!ELEMENT res-sharing-scope (#PCDATA)>

<!--
The res-type element specifies the type of the data source. The type
is specified by the fully qualified Java language class or interface
expected to be implemented by the data source.

Used in: resource-ref
-->
<!ELEMENT res-type (#PCDATA)>

<!--
The resource-env-ref element contains a declaration of an enterprise bean's
reference to an administered object associated with a resource
in the enterprise bean's environment.  It consists of an optional
description, the resource environment reference name, and an
indication of the resource environment reference type expected by
the enterprise bean code.

Used in: entity, message-driven, session

Example:

<resource-env-ref>
    <resource-env-ref-name>jms/StockQueue</resource-env-ref-name>
    <resource-env-ref-type>javax.jms.Queue</resource-env-ref-type>
</resource-env-ref>
-->
<!ELEMENT resource-env-ref (description?, resource-env-ref-name,
		resource-env-ref-type)>

<!--
The resource-env-ref-name element specifies the name of a resource
environment reference; its value is the environment entry name used in
the enterprise bean code.  The name is a JNDI name relative to the
java:comp/env context and must be unique within an enterprise bean.

Used in: resource-env-ref
-->
<!ELEMENT resource-env-ref-name (#PCDATA)>

<!--
The resource-env-ref-type element specifies the type of a resource
environment reference.  It is the fully qualified name of a Java
language class or interface.

Used in: resource-env-ref
-->
<!ELEMENT resource-env-ref-type (#PCDATA)>

<!--
The resource-ref element contains a declaration of an enterprise bean's
reference to an external resource. It consists of an optional
description, the resource manager connection factory reference name,
the indication of the resource manager connection factory type
expected by the enterprise bean code, the type of authentication
(Application or Container), and an optional specification of the
shareability of connections obtained from the resource (Shareable or
Unshareable).

Used in: entity, message-driven, session

Example:

    <resource-ref>
	<res-ref-name>jdbc/EmployeeAppDB</res-ref-name>
	<res-type>javax.sql.DataSource</res-type>
	<res-auth>Container</res-auth>
	<res-sharing-scope>Shareable</res-sharing-scope>
    </resource-ref>
-->
<!ELEMENT resource-ref (description?, res-ref-name, res-type, res-auth,
		res-sharing-scope?)>

<!--

The result-type-mapping element is used in the query element to specify
whether an abstract schema type returned by a query for a select method
is to be mapped to an EJBLocalObject or EJBObject type.

The result-type-mapping element must be one of the following:

        <result-type-mapping>Local</result-type-mapping>
        <result-type-mapping>Remote</result-type-mapping>

Used in: query
-->
<!ELEMENT result-type-mapping (#PCDATA)>

<!--
The role-link element is a reference to a defined security role. The
role-link element must contain the name of one of the security roles
defined in the security-role elements.

Used in: security-role-ref
-->
<!ELEMENT role-link (#PCDATA)>

<!--
The role-name element contains the name of a security role.

The name must conform to the lexical rules for an NMTOKEN.

Used in: method-permission, run-as, security-role, security-role-ref
-->
<!ELEMENT role-name (#PCDATA)>

<!--
The run-as element specifies the run-as identity to be used for the
execution of the enterprise bean. It contains an optional description, and
the name of a security role.

Used in: security-identity
-->
<!ELEMENT run-as (description?, role-name)>

<!--

The security-identity element specifies whether the caller's
security identity is to be used for the execution of the methods of
the enterprise bean or whether a specific run-as identity is to be
used. It contains an optional description and a specification of the
security identity to be used.

Used in: entity, message-driven, session
-->
<!ELEMENT security-identity (description?, (use-caller-identity|run-as))>

<!--
The security-role element contains the definition of a security
role. The definition consists of an optional description of the
security role, and the security role name.

Used in: assembly-descriptor

Example:

    <security-role>
	<description>
	    This role includes all employees who are authorized
	    to access the employee service application.
	</description>
	<role-name>employee</role-name>
    </security-role>
-->
<!ELEMENT security-role (description?, role-name)>

<!--
The security-role-ref element contains the declaration of a security
role reference in the enterprise bean's code. The declaration consists
of an optional description, the security role name used in the code,
and an optional link to a security role. If the security role is not
specified, the Deployer must choose an appropriate security role.

The value of the role-name element must be the String used as the
parameter to the EJBContext.isCallerInRole(String roleName) method
or the HttpServletRequest.isUserInRole(String role) method.

Used in: entity, session

-->
<!ELEMENT security-role-ref (description?, role-name, role-link?)>

<!--
The session element declares an session bean. The declaration consists
of:
	- an optional description
	- an optional display name
	- an optional small icon file name
	- an optional large icon file name
	- a name assigned to the enterprise bean
	  in the deployment description
	- the names of the session bean's remote home and
	  remote interfaces, if any
	- the names of the session bean's local home and
	  local interfaces, if any
	- the session bean's implementation class
	- the session bean's state management type
	- the session bean's transaction management type
	- an optional declaration of the bean's environment entries
	- an optional declaration of the bean's EJB references
	- an optional declaration of the bean's local EJB references
	- an optional declaration of the security role references
	- an optional declaration of the security identity to be
          used for the execution of the bean's methods
	- an optional declaration of the bean's resource manager
	  connection factory references
	- an optional declaration of the bean's resource environment
	  references.

The elements that are optional are "optional" in the sense that they
are omitted when if lists represented by them are empty.

Either both the local-home and the local elements or both the
home and the remote elements must be specified for the session bean.

Used in: enterprise-beans
-->
<!ELEMENT session (description?, display-name?, small-icon?,
large-icon?, ejb-name, home?, remote?, local-home?, local?,
ejb-class, session-type, transaction-type, env-entry*, ejb-ref*,
ejb-local-ref*, security-role-ref*, security-identity?, resource-ref*,
resource-env-ref*)>

<!--
The session-type element describes whether the session bean is a
stateful session or stateless session.

The session-type element must be one of the two following:

	<session-type>Stateful</session-type>
	<session-type>Stateless</session-type>
-->
<!ELEMENT session-type (#PCDATA)>

<!--
The small-icon element contains the name of a file
containing a small (16 x 16) icon image. The file
name is a relative path within the enterprise bean's
ejb-jar file.

The image may be either in the JPEG or GIF format.
The icon can be used by tools.

Used in: ejb-jar, entity, message-driven, session

Example:

<small-icon>employee-service-icon16x16.jpg</small-icon>
-->
<!ELEMENT small-icon (#PCDATA)>

<!--
The subscription-durability element specifies whether a JMS topic
subscription is intended to be durable or nondurable.

The subscription-durability element must be one of the two following:

	<subscription-durability>Durable</subscription-durability>
	<subscription-durability>NonDurable</subscription-durability>

Used in: message-driven-destination
-->
<!ELEMENT subscription-durability (#PCDATA)>

<!--
The trans-attribute element specifies how the container must manage
the transaction boundaries when delegating a method invocation to an
enterprise bean's business method.

The value of trans-attribute must be one of the following:


	<trans-attribute>NotSupported</trans-attribute>
	<trans-attribute>Supports</trans-attribute>
	<trans-attribute>Required</trans-attribute>
	<trans-attribute>RequiresNew</trans-attribute>
	<trans-attribute>Mandatory</trans-attribute>
	<trans-attribute>Never</trans-attribute>

Used in: container-transaction
-->
<!ELEMENT trans-attribute (#PCDATA)>

<!--
The transaction-type element specifies an enterprise bean's
transaction management type.

The transaction-type element must be one of the two following:

	<transaction-type>Bean</transaction-type>
	<transaction-type>Container</transaction-type>

Used in: message-driven, session
-->
<!ELEMENT transaction-type (#PCDATA)>

<!--
The unchecked element specifies that a method is not checked for authorization
by the container prior to invocation of the method.

Used in: method-permission
-->
<!ELEMENT unchecked EMPTY>

<!--

The use-caller-identity element specifies that the caller's security
identity be used as the security identity for the execution of the
enterprise bean's methods.

Used in: security-identity
-->
<!ELEMENT use-caller-identity EMPTY>

<!--
The ID mechanism is to allow tools that produce additional deployment
information (i.e., information beyond the standard deployment
descriptor information) to store the non-standard information in a
separate file, and easily refer from these tool-specific files to the
information in the standard deployment descriptor.

Tools are not allowed to add the non-standard information into the
standard deployment descriptor.
-->

<!ATTLIST abstract-schema-name id ID #IMPLIED>
<!ATTLIST acknowledge-mode id ID #IMPLIED>
<!ATTLIST assembly-descriptor id ID #IMPLIED>
<!ATTLIST cascade-delete id ID #IMPLIED>
<!ATTLIST cmp-field id ID #IMPLIED>
<!ATTLIST cmp-version id ID #IMPLIED>
<!ATTLIST cmr-field id ID #IMPLIED>
<!ATTLIST cmr-field-name id ID #IMPLIED>
<!ATTLIST cmr-field-type id ID #IMPLIED>
<!ATTLIST container-transaction id ID #IMPLIED>
<!ATTLIST description id ID #IMPLIED>
<!ATTLIST destination-type id ID #IMPLIED>
<!ATTLIST display-name id ID #IMPLIED>
<!ATTLIST ejb-class id ID #IMPLIED>
<!ATTLIST ejb-client-jar id ID #IMPLIED>
<!ATTLIST ejb-jar id ID #IMPLIED>
<!ATTLIST ejb-link id ID #IMPLIED>
<!ATTLIST ejb-local-ref id ID #IMPLIED>
<!ATTLIST ejb-name id ID #IMPLIED>
<!ATTLIST ejb-ql id ID #IMPLIED>
<!ATTLIST ejb-ref id ID #IMPLIED>
<!ATTLIST ejb-ref-name id ID #IMPLIED>
<!ATTLIST ejb-ref-type id ID #IMPLIED>
<!ATTLIST ejb-relation id ID #IMPLIED>
<!ATTLIST ejb-relation-name id ID #IMPLIED>
<!ATTLIST ejb-relationship-role id ID #IMPLIED>
<!ATTLIST ejb-relationship-role-name id ID #IMPLIED>
<!ATTLIST enterprise-beans id ID #IMPLIED>
<!ATTLIST entity id ID #IMPLIED>
<!ATTLIST env-entry id ID #IMPLIED>
<!ATTLIST env-entry-name id ID #IMPLIED>
<!ATTLIST env-entry-type id ID #IMPLIED>
<!ATTLIST env-entry-value id ID #IMPLIED>
<!ATTLIST exclude-list id ID #IMPLIED>
<!ATTLIST field-name id ID #IMPLIED>
<!ATTLIST home id ID #IMPLIED>
<!ATTLIST large-icon id ID #IMPLIED>
<!ATTLIST local id ID #IMPLIED>
<!ATTLIST local-home id ID #IMPLIED>
<!ATTLIST message-driven id ID #IMPLIED>
<!ATTLIST message-driven-destination id ID #IMPLIED>
<!ATTLIST message-selector id ID #IMPLIED>
<!ATTLIST method id ID #IMPLIED>
<!ATTLIST method-intf id ID #IMPLIED>
<!ATTLIST method-name id ID #IMPLIED>
<!ATTLIST method-param id ID #IMPLIED>
<!ATTLIST method-params id ID #IMPLIED>
<!ATTLIST method-permission id ID #IMPLIED>
<!ATTLIST multiplicity id ID #IMPLIED>
<!ATTLIST persistence-type id ID #IMPLIED>
<!ATTLIST prim-key-class id ID #IMPLIED>
<!ATTLIST primkey-field id ID #IMPLIED>
<!ATTLIST query id ID #IMPLIED>
<!ATTLIST query-method id ID #IMPLIED>
<!ATTLIST reentrant id ID #IMPLIED>
<!ATTLIST relationship-role-source id ID #IMPLIED>
<!ATTLIST relationships id ID #IMPLIED>
<!ATTLIST remote id ID #IMPLIED>
<!ATTLIST res-auth id ID #IMPLIED>
<!ATTLIST res-ref-name id ID #IMPLIED>
<!ATTLIST res-sharing-scope id ID #IMPLIED>
<!ATTLIST res-type id ID #IMPLIED>
<!ATTLIST resource-env-ref id ID #IMPLIED>
<!ATTLIST resource-env-ref-name id ID #IMPLIED>
<!ATTLIST resource-env-ref-type id ID #IMPLIED>
<!ATTLIST resource-ref id ID #IMPLIED>
<!ATTLIST result-type-mapping id ID #IMPLIED>
<!ATTLIST role-link id ID #IMPLIED>
<!ATTLIST role-name id ID #IMPLIED>
<!ATTLIST run-as id ID #IMPLIED>
<!ATTLIST security-identity id ID #IMPLIED>
<!ATTLIST security-role id ID #IMPLIED>
<!ATTLIST security-role-ref id ID #IMPLIED>
<!ATTLIST session id ID #IMPLIED>
<!ATTLIST session-type id ID #IMPLIED>
<!ATTLIST small-icon id ID #IMPLIED>
<!ATTLIST subscription-durability id ID #IMPLIED>
<!ATTLIST trans-attribute id ID #IMPLIED>
<!ATTLIST transaction-type id ID #IMPLIED>
<!ATTLIST unchecked id ID #IMPLIED>
<!ATTLIST use-caller-identity id ID #IMPLIED>

Back to the top