You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@netbeans.apache.org by GitBox <gi...@apache.org> on 2018/11/02 22:34:49 UTC

[GitHub] asfgit closed pull request #916: [NETBEANS-1074] Module review j2ee.dd

asfgit closed pull request #916: [NETBEANS-1074] Module review j2ee.dd
URL: https://github.com/apache/incubator-netbeans/pull/916
 
 
   

This is a PR merged from a forked repository.
As GitHub hides the original diff on merge, it is displayed below for
the sake of provenance:

As this is a foreign pull request (from a fork), the diff is supplied
below (as it won't show otherwise due to GitHub magic):

diff --git a/enterprise/j2ee.dd/build.xml b/enterprise/j2ee.dd/build.xml
index f2823bed1d..5473bdd5e0 100644
--- a/enterprise/j2ee.dd/build.xml
+++ b/enterprise/j2ee.dd/build.xml
@@ -45,12 +45,8 @@
   <property name="s2b_root_client_7_0" location="src/org/netbeans/modules/j2ee/dd/impl/client/model_7_0"/>
   <property name="j2ee.dd.resources.dir" value="src/org/netbeans/modules/j2ee/dd/impl/"/>
 
-  <target name="build-init" depends="projectized.build-init">
-  <unzip src="external/j2ee.dd-w3c-resources.zip" dest="${j2ee.dd.resources.dir}"/>
-  <unzip src="external/j2ee.dd-glassfish-resources.zip" dest="${j2ee.dd.resources.dir}"/>
-    </target>
 
-  <target name="s2binit" depends="build-init">
+  <target name="s2binit" depends="projectized.build-init">
       <!-- XXX do not know how to replace with @Schema2Beans; see issue #178426 for discussion -->
 	<taskdef name="schema2beans" classname="org.netbeans.modules.s2banttask.Schema2BeansAntTask">
 	  <classpath>
@@ -665,7 +661,7 @@
   </target>
 
   <target name="compile" depends="dd2beansgen,projectized-common.compile"/>
-  
+
   <target name="clean" depends="projectized-common.clean,clean-ddgen-src"/>
 
   <target name="clean-ddgen-src">
@@ -796,14 +792,14 @@
         </delete>
         <delete dir="${s2b_root_client_7_0}"/>
   </target>
-  
+
   <target name="javadoc" depends="init-javadoc, projectized.javadoc"/>
-  
+
   <target name="init-javadoc">
       <mkdir dir="${netbeans.javadoc.dir}/org-netbeans-modules-j2ee-dd/arch"/>
       <copy file="doc/ddapi_architecture.html" todir="${netbeans.javadoc.dir}/org-netbeans-modules-j2ee-dd/arch"/>
       <copy file="doc/dd_api_schema.jpg" todir="${netbeans.javadoc.dir}/org-netbeans-modules-j2ee-dd/arch"/>
       <copy file="doc/usage.html" todir="${netbeans.javadoc.dir}/org-netbeans-modules-j2ee-dd/arch"/>
   </target>
-  
+
 </project>
diff --git a/enterprise/j2ee.dd/external/binaries-list b/enterprise/j2ee.dd/external/binaries-list
index d955dc9bd1..bc5cae9ac3 100644
--- a/enterprise/j2ee.dd/external/binaries-list
+++ b/enterprise/j2ee.dd/external/binaries-list
@@ -1,3 +1,17 @@
-D2F2B34B7D0A13256D491B14590ED23CA0E49B46 javaee-api-5.jar
-2801A0BB60C19040FDA8C4801963911255774718 j2ee.dd-glassfish-resources.zip
-12763FC339B86791D848078A479793C3FF815982 j2ee.dd-w3c-resources.zip
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
+E3CC17B10AB552219EDBE33915E62937E387D0EF javaee:javaee-api:5
diff --git a/enterprise/j2ee.dd/external/glassfish-license.txt b/enterprise/j2ee.dd/external/glassfish-license.txt
index 833a843cfe..5c66c435c7 100644
--- a/enterprise/j2ee.dd/external/glassfish-license.txt
+++ b/enterprise/j2ee.dd/external/glassfish-license.txt
@@ -1,274 +1,207 @@
-COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)Version 1.1
-
-1. Definitions.
-
-     1.1. "Contributor" means each individual or entity that creates or contributes to the creation of Modifications.
-
-     1.2. "Contributor Version" means the combination of the Original Software, prior Modifications used by a Contributor (if any), and the Modifications made by that particular Contributor.
-
-     1.3. "Covered Software" means (a) the Original Software, or (b) Modifications, or (c) the combination of files containing Original Software with files containing Modifications, in each case including portions thereof.
-
-     1.4. "Executable" means the Covered Software in any form other than Source Code.
-
-     1.5. "Initial Developer" means the individual or entity that first makes Original Software available under this License.
-
-     1.6. "Larger Work" means a work which combines Covered Software or portions thereof with code not governed by the terms of this License.
-
-     1.7. "License" means this document.
-
-     1.8. "Licensable" means having the right to grant, to the maximum extent possible, whether at the time of the initial grant or subsequently acquired, any and all of the rights conveyed herein.
-
-     1.9. "Modifications" means the Source Code and Executable form of any of the following:
-
-     A. Any file that results from an addition to, deletion from or modification of the contents of a file containing Original Software or previous Modifications;
-
-     B. Any new file that contains any part of the Original Software or previous Modification; or
-
-     C. Any new file that is contributed or otherwise made available under the terms of this License.
-
-     1.10. "Original Software" means the Source Code and Executable form of computer software code that is originally released under this License.
-
-     1.11. "Patent Claims" means any patent claim(s), now owned or hereafter acquired, including without limitation, method, process, and apparatus claims, in any patent Licensable by grantor.
-
-     1.12. "Source Code" means (a) the common form of computer software code in which modifications are made and (b) associated documentation included in or with such code.
-
-     1.13. "You" (or "Your") means an individual or a legal entity exercising rights under, and complying with all of the terms of, this License. For legal entities, "You" includes any entity which controls, is controlled by, or is under common control with You. For purposes of this definition, "control" means (a) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (b) ownership of more than fifty percent (50%) of the outstanding shares or beneficial ownership of such entity.
-
-2. License Grants.
-
-     2.1. The Initial Developer Grant.
-
-     Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, the Initial Developer hereby grants You a world-wide, royalty-free, non-exclusive license:
-
-     (a) under intellectual property rights (other than patent or trademark) Licensable by Initial Developer, to use, reproduce, modify, display, perform, sublicense and distribute the Original Software (or portions thereof), with or without Modifications, and/or as part of a Larger Work; and
-
-     (b) under Patent Claims infringed by the making, using or selling of Original Software, to make, have made, use, practice, sell, and offer for sale, and/or otherwise dispose of the Original Software (or portions thereof).
-
-     (c) The licenses granted in Sections 2.1(a) and (b) are effective on the date Initial Developer first distributes or otherwise makes the Original Software available to a third party under the terms of this License.
-
-     (d) Notwithstanding Section 2.1(b) above, no patent license is granted: (1) for code that You delete from the Original Software, or (2) for infringements caused by: (i) the modification of the Original Software, or (ii) the combination of the Original Software with other software or devices.
-
-     2.2. Contributor Grant.
-
-     Conditioned upon Your compliance with Section 3.1 below and subject to third party intellectual property claims, each Contributor hereby grants You a world-wide, royalty-free, non-exclusive license:
-
-     (a) under intellectual property rights (other than patent or trademark) Licensable by Contributor to use, reproduce, modify, display, perform, sublicense and distribute the Modifications created by such Contributor (or portions thereof), either on an unmodified basis, with other Modifications, as Covered Software and/or as part of a Larger Work; and
-
-     (b) under Patent Claims infringed by the making, using, or selling of Modifications made by that Contributor either alone and/or in combination with its Contributor Version (or portions of such combination), to make, use, sell, offer for sale, have made, and/or otherwise dispose of: (1) Modifications made by that Contributor (or portions thereof); and (2) the combination of Modifications made by that Contributor with its Contributor Version (or portions of such combination).
-
-     (c) The licenses granted in Sections 2.2(a) and 2.2(b) are effective on the date Contributor first distributes or otherwise makes the Modifications available to a third party.
-
-     (d) Notwithstanding Section 2.2(b) above, no patent license is granted: (1) for any code that Contributor has deleted from the Contributor Version; (2) for infringements caused by: (i) third party modifications of Contributor Version, or (ii) the combination of Modifications made by that Contributor with other software (except as part of the Contributor Version) or other devices; or (3) under Patent Claims infringed by Covered Software in the absence of Modifications made by that Contributor.
-
-3. Distribution Obligations.
-
-     3.1. Availability of Source Code.
-
-     Any Covered Software that You distribute or otherwise make available in Executable form must also be made available in Source Code form and that Source Code form must be distributed only under the terms of this License. You must include a copy of this License with every copy of the Source Code form of the Covered Software You distribute or otherwise make available. You must inform recipients of any such Covered Software in Executable form as to how they can obtain such Covered Software in Source Code form in a reasonable manner on or through a medium customarily used for software exchange.
-
-     3.2. Modifications.
-
-     The Modifications that You create or to which You contribute are governed by the terms of this License. You represent that You believe Your Modifications are Your original creation(s) and/or You have sufficient rights to grant the rights conveyed by this License.
-
-     3.3. Required Notices.
-
-     You must include a notice in each of Your Modifications that identifies You as the Contributor of the Modification. You may not remove or alter any copyright, patent or trademark notices contained within the Covered Software, or any notices of licensing or any descriptive text giving attribution to any Contributor or the Initial Developer.
-
-     3.4. Application of Additional Terms.
-
-     You may not offer or impose any terms on any Covered Software in Source Code form that alters or restricts the applicable version of this License or the recipients' rights hereunder. You may choose to offer, and to charge a fee for, warranty, support, indemnity or liability obligations to one or more recipients of Covered Software. However, you may do so only on Your own behalf, and not on behalf of the Initial Developer or any Contributor. You must make it absolutely clear that any such warranty, support, indemnity or liability obligation is offered by You alone, and You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of warranty, support, indemnity or liability terms You offer.
-
-     3.5. Distribution of Executable Versions.
-
-     You may distribute the Executable form of the Covered Software under the terms of this License or under the terms of a license of Your choice, which may contain terms different from this License, provided that You are in compliance with the terms of this License and that the license for the Executable form does not attempt to limit or alter the recipient's rights in the Source Code form from the rights set forth in this License. If You distribute the Covered Software in Executable form under a different license, You must make it absolutely clear that any terms which differ from this License are offered by You alone, not by the Initial Developer or Contributor. You hereby agree to indemnify the Initial Developer and every Contributor for any liability incurred by the Initial Developer or such Contributor as a result of any such terms You offer.
-
-     3.6. Larger Works.
-
-     You may create a Larger Work by combining Covered Software with other code not governed by the terms of this License and distribute the Larger Work as a single product. In such a case, You must make sure the requirements of this License are fulfilled for the Covered Software.
-
-4. Versions of the License.
-
-     4.1. New Versions.
-
-     Oracle is the initial license steward and may publish revised and/or new versions of this License from time to time. Each version will be given a distinguishing version number. Except as provided in Section 4.3, no one other than the license steward has the right to modify this License.
-
-     4.2. Effect of New Versions.
-
-     You may always continue to use, distribute or otherwise make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. If the Initial Developer includes a notice in the Original Software prohibiting it from being distributed or otherwise made available under any subsequent version of the License, You must distribute and make the Covered Software available under the terms of the version of the License under which You originally received the Covered Software. Otherwise, You may also choose to use, distribute or otherwise make the Covered Software available under the terms of any subsequent version of the License published by the license steward.
-
-     4.3. Modified Versions.
-
-     When You are an Initial Developer and You want to create a new license for Your Original Software, You may create and use a modified version of this License if You: (a) rename the license and remove any references to the name of the license steward (except to note that the license differs from this License); and (b) otherwise make it clear that the license contains terms which differ from this License.
-
-5. DISCLAIMER OF WARRANTY.
-
-     COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS" BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS DISCLAIMER.
-
-6. TERMINATION.
-
-     6.1. This License and the rights granted hereunder will terminate automatically if You fail to comply with terms herein and fail to cure such breach within 30 days of becoming aware of the breach. Provisions which, by their nature, must remain in effect beyond the termination of this License shall survive.
-
-     6.2. If You assert a patent infringement claim (excluding declaratory judgment actions) against Initial Developer or a Contributor (the Initial Developer or Contributor against whom You assert such claim is referred to as "Participant") alleging that the Participant Software (meaning the Contributor Version where the Participant is a Contributor or the Original Software where the Participant is the Initial Developer) directly or indirectly infringes any patent, then any and all rights granted directly or indirectly to You by such Participant, the Initial Developer (if the Initial Developer is not the Participant) and all Contributors under Sections 2.1 and/or 2.2 of this License shall, upon 60 days notice from Participant terminate prospectively and automatically at the expiration of such 60 day notice period, unless if within such 60 day period You withdraw Your claim with respect to the Participant Software against such Participant either unilaterally or pursuant to a written agreement with Participant.
-
-     6.3. If You assert a patent infringement claim against Participant alleging that the Participant Software directly or indirectly infringes any patent where such claim is resolved (such as by license or settlement) prior to the initiation of patent infringement litigation, then the reasonable value of the licenses granted by such Participant under Sections 2.1 or 2.2 shall be taken into account in determining the amount or value of any payment or license.
-
-     6.4. In the event of termination under Sections 6.1 or 6.2 above, all end user licenses that have been validly granted by You or any distributor hereunder prior to termination (excluding licenses granted to You by any distributor) shall survive termination.
-
-7. LIMITATION OF LIABILITY.
-
-     UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT (INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT LIMITATION, DAMAGES FOR LOSS OF GOODWILL, WORK STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT APPLY TO YOU.
-
-8. U.S. GOVERNMENT END USERS.
-
-     The Covered Software is a "commercial item," as that term is defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial computer software" (as that term is defined at 48 C.F.R. ? 252.227-7014(a)(1)) and "commercial computer software documentation" as such terms are used in 48 C.F.R. 12.212 (Sept. 1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1 through 227.7202-4 (June 1995), all U.S. Government End Users acquire Covered Software with only those rights set forth herein. This U.S. Government Rights clause is in lieu of, and supersedes, any other FAR, DFAR, or other clause or provision that addresses Government rights in computer software under this License.
-
-9. MISCELLANEOUS.
-
-     This License represents the complete agreement concerning subject matter hereof. If any provision of this License is held to be unenforceable, such provision shall be reformed only to the extent necessary to make it enforceable. This License shall be governed by the law of the jurisdiction specified in a notice contained within the Original Software (except to the extent applicable law, if any, provides otherwise), excluding such jurisdiction's conflict-of-law provisions. Any litigation relating to this License shall be subject to the jurisdiction of the courts located in the jurisdiction and venue specified in a notice contained within the Original Software, with the losing party responsible for costs, including, without limitation, court costs and reasonable attorneys' fees and expenses. The application of the United Nations Convention on Contracts for the International Sale of Goods is expressly excluded. Any law or regulation which provides that the language of a contract shall be construed against the drafter shall not apply to this License. You agree that You alone are responsible for compliance with the United States export administration regulations (and the export control laws and regulation of any other countries) when You use, distribute or otherwise make available any Covered Software.
-
-10. RESPONSIBILITY FOR CLAIMS.
-
-     As between Initial Developer and the Contributors, each party is responsible for claims and damages arising, directly or indirectly, out of its utilization of rights under this License and You agree to work with Initial Developer and Contributors to distribute such responsibility on an equitable basis. Nothing herein is intended or shall be deemed to constitute any admission of liability.
-
-----------
-NOTICE PURSUANT TO SECTION 9 OF THE COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL)
-The code released under the CDDL shall be governed by the laws of the State of California (excluding conflict-of-law provisions). Any litigation relating to this License shall be subject to the jurisdiction of the Federal Courts of the Northern District of California and the state courts of the State of California, with venue lying in Santa Clara County, California.
-
-
-
-
-The GNU General Public License (GPL) Version 2, June 1991
-
-
-Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed.
-
-Preamble
-
-The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.
-
-When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.
-
-To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.
-
-For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.
-
-We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.
-
-Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.
-
-Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.
-
-The precise terms and conditions for copying, distribution and modification follow.
-
-
-TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
-
-0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you".
-
-Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.
-
-1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.
-
-You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.
-
-2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:
-
-   a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.
-
-   b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.
-
-   c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)
-
-These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.
-
-Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.
-
-In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.
-
-3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:
-
-   a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
-
-   b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,
-
-   c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)
-
-The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.
-
-If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.
-
-4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.
-
-5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.
-
-6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.
-
-7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.
-
-If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.
-
-It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.
-
-This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.
-
-8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.
-
-9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.
-
-Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.
-
-10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.
-
-NO WARRANTY
-
-11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
-
-END OF TERMS AND CONDITIONS
-
-
-How to Apply These Terms to Your New Programs
-
-If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.
-
-To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found.
-
-   One line to give the program's name and a brief idea of what it does.
-
-   Copyright (C)
-
-   This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
-
-   This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
-
-   You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-Also add information on how to contact you by electronic and paper mail.
-
-If the program is interactive, make it output a short notice like this when it starts in an interactive mode:
-
-   Gnomovision version 69, Copyright (C) year name of author
-   Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.
-
-You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names:
-
-   Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker.
-
-   signature of Ty Coon, 1 April 1989
-   Ty Coon, President of Vice
-
-This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.
-
-
-"CLASSPATH" EXCEPTION TO THE GPL VERSION 2
-
-Certain source files distributed by Oracle are subject to the following clarification and special exception to the GPL Version 2, but only where Oracle has expressly included in the particular source file's header the words "Oracle designates this particular file as subject to the "Classpath" exception as provided by Oracle in the License file that accompanied this code."
-
-Linking this library statically or dynamically with other modules is making a combined work based on this library.  Thus, the terms and conditions of the GNU General Public License Version 2 cover the whole combination.
-
-As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module.  An independent module is a module which is not derived from or based on this library.  If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so.  If you do not wish to do so, delete this exception statement from your version.
+Name: GlassFish
+Version: 5
+Description: GlassFish Resources
+License: Apache-2.0
+Comment: Typically added on classpath.
+
+Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/enterprise/j2ee.dd/external/javaee-api-5-license.txt b/enterprise/j2ee.dd/external/javaee-api-5-license.txt
index ca1a4d8020..0b3c960928 100644
--- a/enterprise/j2ee.dd/external/javaee-api-5-license.txt
+++ b/enterprise/j2ee.dd/external/javaee-api-5-license.txt
@@ -1,387 +1,208 @@
 Name: Java EE API Stripped version
 Version: 5
 Description: Stripped version of Java EE 5 API.
-License: CDDL-1.0
+License: Apache-2.0
 Origin: http://java.sun.com/javaee
 Comment: Typically added on classpath of tests to resolve Java EE anotations.
 
-COMMON DEVELOPMENT AND DISTRIBUTION LICENSE (CDDL) Version 1.0
-
-1. Definitions.
-
-1.1. "Contributor" means each individual or entity that
-creates or contributes to the creation of Modifications.
-
-1.2. "Contributor Version" means the combination of the
-Original Software, prior Modifications used by a
-Contributor (if any), and the Modifications made by that
-particular Contributor.
-
-1.3. "Covered Software" means (a) the Original Software, or
-(b) Modifications, or (c) the combination of files
-containing Original Software with files containing
-Modifications, in each case including portions thereof.
-
-1.4. "Executable" means the Covered Software in any form
-other than Source Code.
-
-1.5. "Initial Developer" means the individual or entity
-that first makes Original Software available under this
-License.
-
-1.6. "Larger Work" means a work which combines Covered
-Software or portions thereof with code not governed by the
-terms of this License.
-
-1.7. "License" means this document.
-
-1.8. "Licensable" means having the right to grant, to the
-maximum extent possible, whether at the time of the initial
-grant or subsequently acquired, any and all of the rights
-conveyed herein.
-
-1.9. "Modifications" means the Source Code and Executable
-form of any of the following:
-
-A. Any file that results from an addition to,
-deletion from or modification of the contents of a
-file containing Original Software or previous
-Modifications;
-
-B. Any new file that contains any part of the
-Original Software or previous Modification; or
-
-C. Any new file that is contributed or otherwise made
-available under the terms of this License.
-
-1.10. "Original Software" means the Source Code and
-Executable form of computer software code that is
-originally released under this License.
-
-1.11. "Patent Claims" means any patent claim(s), now owned
-or hereafter acquired, including without limitation,
-method, process, and apparatus claims, in any patent
-Licensable by grantor.
-
-1.12. "Source Code" means (a) the common form of computer
-software code in which modifications are made and (b)
-associated documentation included in or with such code.
-
-1.13. "You" (or "Your") means an individual or a legal
-entity exercising rights under, and complying with all of
-the terms of, this License. For legal entities, "You"
-includes any entity which controls, is controlled by, or is
-under common control with You. For purposes of this
-definition, "control" means (a) the power, direct or
-indirect, to cause the direction or management of such
-entity, whether by contract or otherwise, or (b) ownership
-of more than fifty percent (50%) of the outstanding shares
-or beneficial ownership of such entity.
-
-2. License Grants.
-
-2.1. The Initial Developer Grant.
-
-Conditioned upon Your compliance with Section 3.1 below and
-subject to third party intellectual property claims, the
-Initial Developer hereby grants You a world-wide,
-royalty-free, non-exclusive license:
-
-(a) under intellectual property rights (other than
-patent or trademark) Licensable by Initial Developer,
-to use, reproduce, modify, display, perform,
-sublicense and distribute the Original Software (or
-portions thereof), with or without Modifications,
-and/or as part of a Larger Work; and
-
-(b) under Patent Claims infringed by the making,
-using or selling of Original Software, to make, have
-made, use, practice, sell, and offer for sale, and/or
-otherwise dispose of the Original Software (or
-portions thereof).
-
-(c) The licenses granted in Sections 2.1(a) and (b)
-are effective on the date Initial Developer first
-distributes or otherwise makes the Original Software
-available to a third party under the terms of this
-License.
-
-(d) Notwithstanding Section 2.1(b) above, no patent
-license is granted: (1) for code that You delete from
-the Original Software, or (2) for infringements
-caused by: (i) the modification of the Original
-Software, or (ii) the combination of the Original
-Software with other software or devices.
-
-2.2. Contributor Grant.
-
-Conditioned upon Your compliance with Section 3.1 below and
-subject to third party intellectual property claims, each
-Contributor hereby grants You a world-wide, royalty-free,
-non-exclusive license:
-
-(a) under intellectual property rights (other than
-patent or trademark) Licensable by Contributor to
-use, reproduce, modify, display, perform, sublicense
-and distribute the Modifications created by such
-Contributor (or portions thereof), either on an
-unmodified basis, with other Modifications, as
-Covered Software and/or as part of a Larger Work; and
-
-(b) under Patent Claims infringed by the making,
-using, or selling of Modifications made by that
-Contributor either alone and/or in combination with
-its Contributor Version (or portions of such
-combination), to make, use, sell, offer for sale,
-have made, and/or otherwise dispose of: (1)
-Modifications made by that Contributor (or portions
-thereof); and (2) the combination of Modifications
-made by that Contributor with its Contributor Version
-(or portions of such combination).
-
-(c) The licenses granted in Sections 2.2(a) and
-2.2(b) are effective on the date Contributor first
-distributes or otherwise makes the Modifications
-available to a third party.
-
-(d) Notwithstanding Section 2.2(b) above, no patent
-license is granted: (1) for any code that Contributor
-has deleted from the Contributor Version; (2) for
-infringements caused by: (i) third party
-modifications of Contributor Version, or (ii) the
-combination of Modifications made by that Contributor
-with other software (except as part of the
-Contributor Version) or other devices; or (3) under
-Patent Claims infringed by Covered Software in the
-absence of Modifications made by that Contributor.
-
-3. Distribution Obligations.
-
-3.1. Availability of Source Code.
-
-Any Covered Software that You distribute or otherwise make
-available in Executable form must also be made available in
-Source Code form and that Source Code form must be
-distributed only under the terms of this License. You must
-include a copy of this License with every copy of the
-Source Code form of the Covered Software You distribute or
-otherwise make available. You must inform recipients of any
-such Covered Software in Executable form as to how they can
-obtain such Covered Software in Source Code form in a
-reasonable manner on or through a medium customarily used
-for software exchange.
-
-3.2. Modifications.
-
-The Modifications that You create or to which You
-contribute are governed by the terms of this License. You
-represent that You believe Your Modifications are Your
-original creation(s) and/or You have sufficient rights to
-grant the rights conveyed by this License.
-
-3.3. Required Notices.
-
-You must include a notice in each of Your Modifications
-that identifies You as the Contributor of the Modification.
-You may not remove or alter any copyright, patent or
-trademark notices contained within the Covered Software, or
-any notices of licensing or any descriptive text giving
-attribution to any Contributor or the Initial Developer.
-
-3.4. Application of Additional Terms.
-
-You may not offer or impose any terms on any Covered
-Software in Source Code form that alters or restricts the
-applicable version of this License or the recipients'
-rights hereunder. You may choose to offer, and to charge a
-fee for, warranty, support, indemnity or liability
-obligations to one or more recipients of Covered Software.
-However, you may do so only on Your own behalf, and not on
-behalf of the Initial Developer or any Contributor. You
-must make it absolutely clear that any such warranty,
-support, indemnity or liability obligation is offered by
-You alone, and You hereby agree to indemnify the Initial
-Developer and every Contributor for any liability incurred
-by the Initial Developer or such Contributor as a result of
-warranty, support, indemnity or liability terms You offer.
-
-3.5. Distribution of Executable Versions.
-
-You may distribute the Executable form of the Covered
-Software under the terms of this License or under the terms
-of a license of Your choice, which may contain terms
-different from this License, provided that You are in
-compliance with the terms of this License and that the
-license for the Executable form does not attempt to limit
-or alter the recipient's rights in the Source Code form
-from the rights set forth in this License. If You
-distribute the Covered Software in Executable form under a
-different license, You must make it absolutely clear that
-any terms which differ from this License are offered by You
-alone, not by the Initial Developer or Contributor. You
-hereby agree to indemnify the Initial Developer and every
-Contributor for any liability incurred by the Initial
-Developer or such Contributor as a result of any such terms
-You offer.
-
-3.6. Larger Works.
-
-You may create a Larger Work by combining Covered Software
-with other code not governed by the terms of this License
-and distribute the Larger Work as a single product. In such
-a case, You must make sure the requirements of this License
-are fulfilled for the Covered Software.
-
-4. Versions of the License.
-
-4.1. New Versions.
-
-Sun Microsystems, Inc. is the initial license steward and
-may publish revised and/or new versions of this License
-from time to time. Each version will be given a
-distinguishing version number. Except as provided in
-Section 4.3, no one other than the license steward has the
-right to modify this License.
-
-4.2. Effect of New Versions.
-
-You may always continue to use, distribute or otherwise
-make the Covered Software available under the terms of the
-version of the License under which You originally received
-the Covered Software. If the Initial Developer includes a
-notice in the Original Software prohibiting it from being
-distributed or otherwise made available under any
-subsequent version of the License, You must distribute and
-make the Covered Software available under the terms of the
-version of the License under which You originally received
-the Covered Software. Otherwise, You may also choose to
-use, distribute or otherwise make the Covered Software
-available under the terms of any subsequent version of the
-License published by the license steward.
-
-4.3. Modified Versions.
-
-When You are an Initial Developer and You want to create a
-new license for Your Original Software, You may create and
-use a modified version of this License if You: (a) rename
-the license and remove any references to the name of the
-license steward (except to note that the license differs
-from this License); and (b) otherwise make it clear that
-the license contains terms which differ from this License.
-
-5. DISCLAIMER OF WARRANTY.
-
-COVERED SOFTWARE IS PROVIDED UNDER THIS LICENSE ON AN "AS IS"
-BASIS, WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED,
-INCLUDING, WITHOUT LIMITATION, WARRANTIES THAT THE COVERED
-SOFTWARE IS FREE OF DEFECTS, MERCHANTABLE, FIT FOR A PARTICULAR
-PURPOSE OR NON-INFRINGING. THE ENTIRE RISK AS TO THE QUALITY AND
-PERFORMANCE OF THE COVERED SOFTWARE IS WITH YOU. SHOULD ANY
-COVERED SOFTWARE PROVE DEFECTIVE IN ANY RESPECT, YOU (NOT THE
-INITIAL DEVELOPER OR ANY OTHER CONTRIBUTOR) ASSUME THE COST OF
-ANY NECESSARY SERVICING, REPAIR OR CORRECTION. THIS DISCLAIMER OF
-WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS LICENSE. NO USE OF
-ANY COVERED SOFTWARE IS AUTHORIZED HEREUNDER EXCEPT UNDER THIS
-DISCLAIMER.
-
-6. TERMINATION.
-
-6.1. This License and the rights granted hereunder will
-terminate automatically if You fail to comply with terms
-herein and fail to cure such breach within 30 days of
-becoming aware of the breach. Provisions which, by their
-nature, must remain in effect beyond the termination of
-this License shall survive.
-
-6.2. If You assert a patent infringement claim (excluding
-declaratory judgment actions) against Initial Developer or
-a Contributor (the Initial Developer or Contributor against
-whom You assert such claim is referred to as "Participant")
-alleging that the Participant Software (meaning the
-Contributor Version where the Participant is a Contributor
-or the Original Software where the Participant is the
-Initial Developer) directly or indirectly infringes any
-patent, then any and all rights granted directly or
-indirectly to You by such Participant, the Initial
-Developer (if the Initial Developer is not the Participant)
-and all Contributors under Sections 2.1 and/or 2.2 of this
-License shall, upon 60 days notice from Participant
-terminate prospectively and automatically at the expiration
-of such 60 day notice period, unless if within such 60 day
-period You withdraw Your claim with respect to the
-Participant Software against such Participant either
-unilaterally or pursuant to a written agreement with
-Participant.
-
-6.3. In the event of termination under Sections 6.1 or 6.2
-above, all end user licenses that have been validly granted
-by You or any distributor hereunder prior to termination
-(excluding licenses granted to You by any distributor)
-shall survive termination.
-
-7. LIMITATION OF LIABILITY.
-
-UNDER NO CIRCUMSTANCES AND UNDER NO LEGAL THEORY, WHETHER TORT
-(INCLUDING NEGLIGENCE), CONTRACT, OR OTHERWISE, SHALL YOU, THE
-INITIAL DEVELOPER, ANY OTHER CONTRIBUTOR, OR ANY DISTRIBUTOR OF
-COVERED SOFTWARE, OR ANY SUPPLIER OF ANY OF SUCH PARTIES, BE
-LIABLE TO ANY PERSON FOR ANY INDIRECT, SPECIAL, INCIDENTAL, OR
-CONSEQUENTIAL DAMAGES OF ANY CHARACTER INCLUDING, WITHOUT
-LIMITATION, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK
-STOPPAGE, COMPUTER FAILURE OR MALFUNCTION, OR ANY AND ALL OTHER
-COMMERCIAL DAMAGES OR LOSSES, EVEN IF SUCH PARTY SHALL HAVE BEEN
-INFORMED OF THE POSSIBILITY OF SUCH DAMAGES. THIS LIMITATION OF
-LIABILITY SHALL NOT APPLY TO LIABILITY FOR DEATH OR PERSONAL
-INJURY RESULTING FROM SUCH PARTY'S NEGLIGENCE TO THE EXTENT
-APPLICABLE LAW PROHIBITS SUCH LIMITATION. SOME JURISDICTIONS DO
-NOT ALLOW THE EXCLUSION OR LIMITATION OF INCIDENTAL OR
-CONSEQUENTIAL DAMAGES, SO THIS EXCLUSION AND LIMITATION MAY NOT
-APPLY TO YOU.
-
-8. U.S. GOVERNMENT END USERS.
-
-The Covered Software is a "commercial item," as that term is
-defined in 48 C.F.R. 2.101 (Oct. 1995), consisting of "commercial
-computer software" (as that term is defined at 48 C.F.R.
-252.227-7014(a)(1)) and "commercial computer software
-documentation" as such terms are used in 48 C.F.R. 12.212 (Sept.
-1995). Consistent with 48 C.F.R. 12.212 and 48 C.F.R. 227.7202-1
-through 227.7202-4 (June 1995), all U.S. Government End Users
-acquire Covered Software with only those rights set forth herein.
-This U.S. Government Rights clause is in lieu of, and supersedes,
-any other FAR, DFAR, or other clause or provision that addresses
-Government rights in computer software under this License.
-
-9. MISCELLANEOUS.
-
-This License represents the complete agreement concerning subject
-matter hereof. If any provision of this License is held to be
-unenforceable, such provision shall be reformed only to the
-extent necessary to make it enforceable. This License shall be
-governed by the law of the jurisdiction specified in a notice
-contained within the Original Software (except to the extent
-applicable law, if any, provides otherwise), excluding such
-jurisdiction's conflict-of-law provisions. Any litigation
-relating to this License shall be subject to the jurisdiction of
-the courts located in the jurisdiction and venue specified in a
-notice contained within the Original Software, with the losing
-party responsible for costs, including, without limitation, court
-costs and reasonable attorneys' fees and expenses. The
-application of the United Nations Convention on Contracts for the
-International Sale of Goods is expressly excluded. Any law or
-regulation which provides that the language of a contract shall
-be construed against the drafter shall not apply to this License.
-You agree that You alone are responsible for compliance with the
-United States export administration regulations (and the export
-control laws and regulation of any other countries) when You use,
-distribute or otherwise make available any Covered Software.
-
-10. RESPONSIBILITY FOR CLAIMS.
-
-As between Initial Developer and the Contributors, each party is
-responsible for claims and damages arising, directly or
-indirectly, out of its utilization of rights under this License
-and You agree to work with Initial Developer and Contributors to
-distribute such responsibility on an equitable basis. Nothing
-herein is intended or shall be deemed to constitute any admission
-of liability.
+Apache License
+                           Version 2.0, January 2004
+                        http://www.apache.org/licenses/
+
+   TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+   1. Definitions.
+
+      "License" shall mean the terms and conditions for use, reproduction,
+      and distribution as defined by Sections 1 through 9 of this document.
+
+      "Licensor" shall mean the copyright owner or entity authorized by
+      the copyright owner that is granting the License.
+
+      "Legal Entity" shall mean the union of the acting entity and all
+      other entities that control, are controlled by, or are under common
+      control with that entity. For the purposes of this definition,
+      "control" means (i) the power, direct or indirect, to cause the
+      direction or management of such entity, whether by contract or
+      otherwise, or (ii) ownership of fifty percent (50%) or more of the
+      outstanding shares, or (iii) beneficial ownership of such entity.
+
+      "You" (or "Your") shall mean an individual or Legal Entity
+      exercising permissions granted by this License.
+
+      "Source" form shall mean the preferred form for making modifications,
+      including but not limited to software source code, documentation
+      source, and configuration files.
+
+      "Object" form shall mean any form resulting from mechanical
+      transformation or translation of a Source form, including but
+      not limited to compiled object code, generated documentation,
+      and conversions to other media types.
+
+      "Work" shall mean the work of authorship, whether in Source or
+      Object form, made available under the License, as indicated by a
+      copyright notice that is included in or attached to the work
+      (an example is provided in the Appendix below).
+
+      "Derivative Works" shall mean any work, whether in Source or Object
+      form, that is based on (or derived from) the Work and for which the
+      editorial revisions, annotations, elaborations, or other modifications
+      represent, as a whole, an original work of authorship. For the purposes
+      of this License, Derivative Works shall not include works that remain
+      separable from, or merely link (or bind by name) to the interfaces of,
+      the Work and Derivative Works thereof.
+
+      "Contribution" shall mean any work of authorship, including
+      the original version of the Work and any modifications or additions
+      to that Work or Derivative Works thereof, that is intentionally
+      submitted to Licensor for inclusion in the Work by the copyright owner
+      or by an individual or Legal Entity authorized to submit on behalf of
+      the copyright owner. For the purposes of this definition, "submitted"
+      means any form of electronic, verbal, or written communication sent
+      to the Licensor or its representatives, including but not limited to
+      communication on electronic mailing lists, source code control systems,
+      and issue tracking systems that are managed by, or on behalf of, the
+      Licensor for the purpose of discussing and improving the Work, but
+      excluding communication that is conspicuously marked or otherwise
+      designated in writing by the copyright owner as "Not a Contribution."
+
+      "Contributor" shall mean Licensor and any individual or Legal Entity
+      on behalf of whom a Contribution has been received by Licensor and
+      subsequently incorporated within the Work.
+
+   2. Grant of Copyright License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      copyright license to reproduce, prepare Derivative Works of,
+      publicly display, publicly perform, sublicense, and distribute the
+      Work and such Derivative Works in Source or Object form.
+
+   3. Grant of Patent License. Subject to the terms and conditions of
+      this License, each Contributor hereby grants to You a perpetual,
+      worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+      (except as stated in this section) patent license to make, have made,
+      use, offer to sell, sell, import, and otherwise transfer the Work,
+      where such license applies only to those patent claims licensable
+      by such Contributor that are necessarily infringed by their
+      Contribution(s) alone or by combination of their Contribution(s)
+      with the Work to which such Contribution(s) was submitted. If You
+      institute patent litigation against any entity (including a
+      cross-claim or counterclaim in a lawsuit) alleging that the Work
+      or a Contribution incorporated within the Work constitutes direct
+      or contributory patent infringement, then any patent licenses
+      granted to You under this License for that Work shall terminate
+      as of the date such litigation is filed.
+
+   4. Redistribution. You may reproduce and distribute copies of the
+      Work or Derivative Works thereof in any medium, with or without
+      modifications, and in Source or Object form, provided that You
+      meet the following conditions:
+
+      (a) You must give any other recipients of the Work or
+          Derivative Works a copy of this License; and
+
+      (b) You must cause any modified files to carry prominent notices
+          stating that You changed the files; and
+
+      (c) You must retain, in the Source form of any Derivative Works
+          that You distribute, all copyright, patent, trademark, and
+          attribution notices from the Source form of the Work,
+          excluding those notices that do not pertain to any part of
+          the Derivative Works; and
+
+      (d) If the Work includes a "NOTICE" text file as part of its
+          distribution, then any Derivative Works that You distribute must
+          include a readable copy of the attribution notices contained
+          within such NOTICE file, excluding those notices that do not
+          pertain to any part of the Derivative Works, in at least one
+          of the following places: within a NOTICE text file distributed
+          as part of the Derivative Works; within the Source form or
+          documentation, if provided along with the Derivative Works; or,
+          within a display generated by the Derivative Works, if and
+          wherever such third-party notices normally appear. The contents
+          of the NOTICE file are for informational purposes only and
+          do not modify the License. You may add Your own attribution
+          notices within Derivative Works that You distribute, alongside
+          or as an addendum to the NOTICE text from the Work, provided
+          that such additional attribution notices cannot be construed
+          as modifying the License.
+
+      You may add Your own copyright statement to Your modifications and
+      may provide additional or different license terms and conditions
+      for use, reproduction, or distribution of Your modifications, or
+      for any such Derivative Works as a whole, provided Your use,
+      reproduction, and distribution of the Work otherwise complies with
+      the conditions stated in this License.
+
+   5. Submission of Contributions. Unless You explicitly state otherwise,
+      any Contribution intentionally submitted for inclusion in the Work
+      by You to the Licensor shall be under the terms and conditions of
+      this License, without any additional terms or conditions.
+      Notwithstanding the above, nothing herein shall supersede or modify
+      the terms of any separate license agreement you may have executed
+      with Licensor regarding such Contributions.
+
+   6. Trademarks. This License does not grant permission to use the trade
+      names, trademarks, service marks, or product names of the Licensor,
+      except as required for reasonable and customary use in describing the
+      origin of the Work and reproducing the content of the NOTICE file.
+
+   7. Disclaimer of Warranty. Unless required by applicable law or
+      agreed to in writing, Licensor provides the Work (and each
+      Contributor provides its Contributions) on an "AS IS" BASIS,
+      WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+      implied, including, without limitation, any warranties or conditions
+      of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+      PARTICULAR PURPOSE. You are solely responsible for determining the
+      appropriateness of using or redistributing the Work and assume any
+      risks associated with Your exercise of permissions under this License.
+
+   8. Limitation of Liability. In no event and under no legal theory,
+      whether in tort (including negligence), contract, or otherwise,
+      unless required by applicable law (such as deliberate and grossly
+      negligent acts) or agreed to in writing, shall any Contributor be
+      liable to You for damages, including any direct, indirect, special,
+      incidental, or consequential damages of any character arising as a
+      result of this License or out of the use or inability to use the
+      Work (including but not limited to damages for loss of goodwill,
+      work stoppage, computer failure or malfunction, or any and all
+      other commercial damages or losses), even if such Contributor
+      has been advised of the possibility of such damages.
+
+   9. Accepting Warranty or Additional Liability. While redistributing
+      the Work or Derivative Works thereof, You may choose to offer,
+      and charge a fee for, acceptance of support, warranty, indemnity,
+      or other liability obligations and/or rights consistent with this
+      License. However, in accepting such obligations, You may act only
+      on Your own behalf and on Your sole responsibility, not on behalf
+      of any other Contributor, and only if You agree to indemnify,
+      defend, and hold each Contributor harmless for any liability
+      incurred by, or claims asserted against, such Contributor by reason
+      of your accepting any such warranty or additional liability.
+
+   END OF TERMS AND CONDITIONS
+
+   APPENDIX: How to apply the Apache License to your work.
+
+      To apply the Apache License to your work, attach the following
+      boilerplate notice, with the fields enclosed by brackets "[]"
+      replaced with your own identifying information. (Don't include
+      the brackets!)  The text should be enclosed in the appropriate
+      comment syntax for the file format. We also recommend that a
+      file or class name and description of purpose be included on the
+      same "printed page" as the copyright notice for easier
+      identification within third-party archives.
+
+   Copyright [yyyy] [name of copyright owner]
+
+   Licensed under the Apache License, Version 2.0 (the "License");
+   you may not use this file except in compliance with the License.
+   You may obtain a copy of the License at
+
+       http://www.apache.org/licenses/LICENSE-2.0
+
+   Unless required by applicable law or agreed to in writing, software
+   distributed under the License is distributed on an "AS IS" BASIS,
+   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+   See the License for the specific language governing permissions and
+   limitations under the License.
diff --git a/enterprise/j2ee.dd/licenseinfo.xml b/enterprise/j2ee.dd/licenseinfo.xml
new file mode 100644
index 0000000000..f51bc757ca
--- /dev/null
+++ b/enterprise/j2ee.dd/licenseinfo.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+
+    Licensed to the Apache Software Foundation (ASF) under one
+    or more contributor license agreements.  See the NOTICE file
+    distributed with this work for additional information
+    regarding copyright ownership.  The ASF licenses this file
+    to you under the Apache License, Version 2.0 (the
+    "License"); you may not use this file except in compliance
+    with the License.  You may obtain a copy of the License at
+
+      http://www.apache.org/licenses/LICENSE-2.0
+
+    Unless required by applicable law or agreed to in writing,
+    software distributed under the License is distributed on an
+    "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+    KIND, either express or implied.  See the License for the
+    specific language governing permissions and limitations
+    under the License.
+
+-->
+
+<licenseinfo>
+    <fileset>
+        <file>doc/dd_api_schema.jpg</file>
+        <license ref="Apache-2.0-ASF" />
+        <comment type="COMMENT_UNSUPPORTED"/>
+    </fileset>
+    <fileset>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application_1_4.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application_1_4.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application_5.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application_5.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application_6.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application_6.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application_7.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application_7.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_1_4.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_1_4.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_5.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_5.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_6.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_6.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_7.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_7.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_2_1.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_2_1.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_0.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_0.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_1.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_1.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_2.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_2.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/j2ee_1_4.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/j2ee_web_services_client_1_1.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/javaee_5.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/javaee_6.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/javaee_7.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/javaee_web_services_1_4.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/javaee_web_services_client_1_2.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/javaee_web_services_client_1_3.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/javaee_web_services_client_1_4.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/jsp_2_0.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/jsp_2_1.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/jsp_2_2.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/jsp_2_3.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/permissions_7.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-app_2_2.dtd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-app_2_3.dtd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-app_2_4.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-app_2_4.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-app_2_5.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-app_2_5.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-app_3_0.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-app_3_0.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-app_3_1.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-app_3_1.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-common_3_0.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-common_3_1.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-fragment_3_0.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-fragment_3_0.xsd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-fragment_3_1.mdd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/web-fragment_3_1.xsd</file>
+        <license ref="CDDL-1.1" />
+        <comment type="CATEGORY_B" />
+    </fileset>
+    <fileset>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/datatypes.dtd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/XMLSchema.dtd</file>
+        <file>src/org/netbeans/modules/j2ee/dd/impl/resources/xml.xsd</file>
+        <license ref="W3C2" />
+        <comment type="CATEGORY_B" />
+    </fileset>
+</licenseinfo>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/application/Bundle.properties b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/application/Bundle.properties
index 93fcc386ca..bf051de9af 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/application/Bundle.properties
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/application/Bundle.properties
@@ -1,46 +1,19 @@
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-#
-# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
-#
-# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
-# Other names may be trademarks of their respective owners.
-#
-# The contents of this file are subject to the terms of either the GNU
-# General Public License Version 2 only ("GPL") or the Common
-# Development and Distribution License("CDDL") (collectively, the
-# "License"). You may not use this file except in compliance with the
-# License. You can obtain a copy of the License at
-# http://www.netbeans.org/cddl-gplv2.html
-# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
-# specific language governing permissions and limitations under the
-# License.  When distributing the software, include this License Header
-# Notice in each file and include the License file at
-# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the GPL Version 2 section of the License file that
-# accompanied this code. If applicable, add the following below the
-# License Header, with the fields enclosed by brackets [] replaced by
-# your own identifying information:
-# "Portions Copyrighted [year] [name of copyright owner]"
-#
-# Contributor(s):
-#
-# The Original Software is Forte for Java, Community Edition. The Initial
-# Developer of the Original Software is Sun Microsystems, Inc. Portions
-# Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
-#
-# If you wish your version of this file to be governed by only the CDDL
-# or only the GPL Version 2, indicate your decision by adding
-# "[Contributor] elects to include this software in this distribution
-# under the [CDDL or GPL Version 2] license." If you do not indicate a
-# single choice of license, a recipient has the option to distribute
-# your version of this file under either the CDDL, the GPL Version 2 or
-# to extend the choice of license to its licensees as provided above.
-# However, if you add GPL Version 2 code and therefore, elected the GPL
-# Version 2 license, then the option applies only if the new code is
-# made subject to such option by the copyright holder.
-#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
 
 # CommonDDAccess
 # 0 = method name, 1 = parameters, 2 = exception message
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/client/Bundle.properties b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/client/Bundle.properties
index 93fcc386ca..bf051de9af 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/client/Bundle.properties
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/client/Bundle.properties
@@ -1,46 +1,19 @@
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-#
-# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
-#
-# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
-# Other names may be trademarks of their respective owners.
-#
-# The contents of this file are subject to the terms of either the GNU
-# General Public License Version 2 only ("GPL") or the Common
-# Development and Distribution License("CDDL") (collectively, the
-# "License"). You may not use this file except in compliance with the
-# License. You can obtain a copy of the License at
-# http://www.netbeans.org/cddl-gplv2.html
-# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
-# specific language governing permissions and limitations under the
-# License.  When distributing the software, include this License Header
-# Notice in each file and include the License file at
-# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the GPL Version 2 section of the License file that
-# accompanied this code. If applicable, add the following below the
-# License Header, with the fields enclosed by brackets [] replaced by
-# your own identifying information:
-# "Portions Copyrighted [year] [name of copyright owner]"
-#
-# Contributor(s):
-#
-# The Original Software is Forte for Java, Community Edition. The Initial
-# Developer of the Original Software is Sun Microsystems, Inc. Portions
-# Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
-#
-# If you wish your version of this file to be governed by only the CDDL
-# or only the GPL Version 2, indicate your decision by adding
-# "[Contributor] elects to include this software in this distribution
-# under the [CDDL or GPL Version 2] license." If you do not indicate a
-# single choice of license, a recipient has the option to distribute
-# your version of this file under either the CDDL, the GPL Version 2 or
-# to extend the choice of license to its licensees as provided above.
-# However, if you add GPL Version 2 code and therefore, elected the GPL
-# Version 2 license, then the option applies only if the new code is
-# made subject to such option by the copyright holder.
-#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
 
 # CommonDDAccess
 # 0 = method name, 1 = parameters, 2 = exception message
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/common/Bundle.properties b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/common/Bundle.properties
index 780f77dfc4..5bf0d96427 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/common/Bundle.properties
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/common/Bundle.properties
@@ -1,46 +1,19 @@
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-#
-# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
-#
-# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
-# Other names may be trademarks of their respective owners.
-#
-# The contents of this file are subject to the terms of either the GNU
-# General Public License Version 2 only ("GPL") or the Common
-# Development and Distribution License("CDDL") (collectively, the
-# "License"). You may not use this file except in compliance with the
-# License. You can obtain a copy of the License at
-# http://www.netbeans.org/cddl-gplv2.html
-# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
-# specific language governing permissions and limitations under the
-# License.  When distributing the software, include this License Header
-# Notice in each file and include the License file at
-# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the GPL Version 2 section of the License file that
-# accompanied this code. If applicable, add the following below the
-# License Header, with the fields enclosed by brackets [] replaced by
-# your own identifying information:
-# "Portions Copyrighted [year] [name of copyright owner]"
-#
-# Contributor(s):
-#
-# The Original Software is Forte for Java, Community Edition. The Initial
-# Developer of the Original Software is Sun Microsystems, Inc. Portions
-# Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
-#
-# If you wish your version of this file to be governed by only the CDDL
-# or only the GPL Version 2, indicate your decision by adding
-# "[Contributor] elects to include this software in this distribution
-# under the [CDDL or GPL Version 2] license." If you do not indicate a
-# single choice of license, a recipient has the option to distribute
-# your version of this file under either the CDDL, the GPL Version 2 or
-# to extend the choice of license to its licensees as provided above.
-# However, if you add GPL Version 2 code and therefore, elected the GPL
-# Version 2 license, then the option applies only if the new code is
-# made subject to such option by the copyright holder.
-#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
 
 # CommonDDAccess
 # 0 = method name, 1 = parameters, 2 = exception message
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/ejb/Bundle.properties b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/ejb/Bundle.properties
index 93fcc386ca..bf051de9af 100644
--- a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/ejb/Bundle.properties
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/ejb/Bundle.properties
@@ -1,46 +1,19 @@
-#
-# DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
-#
-# Copyright 1997-2010 Oracle and/or its affiliates. All rights reserved.
-#
-# Oracle and Java are registered trademarks of Oracle and/or its affiliates.
-# Other names may be trademarks of their respective owners.
-#
-# The contents of this file are subject to the terms of either the GNU
-# General Public License Version 2 only ("GPL") or the Common
-# Development and Distribution License("CDDL") (collectively, the
-# "License"). You may not use this file except in compliance with the
-# License. You can obtain a copy of the License at
-# http://www.netbeans.org/cddl-gplv2.html
-# or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
-# specific language governing permissions and limitations under the
-# License.  When distributing the software, include this License Header
-# Notice in each file and include the License file at
-# nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
-# particular file as subject to the "Classpath" exception as provided
-# by Oracle in the GPL Version 2 section of the License file that
-# accompanied this code. If applicable, add the following below the
-# License Header, with the fields enclosed by brackets [] replaced by
-# your own identifying information:
-# "Portions Copyrighted [year] [name of copyright owner]"
-#
-# Contributor(s):
-#
-# The Original Software is Forte for Java, Community Edition. The Initial
-# Developer of the Original Software is Sun Microsystems, Inc. Portions
-# Copyright 1997-2009 Sun Microsystems, Inc. All Rights Reserved.
-#
-# If you wish your version of this file to be governed by only the CDDL
-# or only the GPL Version 2, indicate your decision by adding
-# "[Contributor] elects to include this software in this distribution
-# under the [CDDL or GPL Version 2] license." If you do not indicate a
-# single choice of license, a recipient has the option to distribute
-# your version of this file under either the CDDL, the GPL Version 2 or
-# to extend the choice of license to its licensees as provided above.
-# However, if you add GPL Version 2 code and therefore, elected the GPL
-# Version 2 license, then the option applies only if the new code is
-# made subject to such option by the copyright holder.
-#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements.  See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership.  The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License.  You may obtain a copy of the License at
+#
+#   http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied.  See the License for the
+# specific language governing permissions and limitations
+# under the License.
 
 # CommonDDAccess
 # 0 = method name, 1 = parameters, 2 = exception message
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/XMLSchema.dtd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/XMLSchema.dtd
new file mode 100644
index 0000000000..8b3a726879
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/XMLSchema.dtd
@@ -0,0 +1,449 @@
+<!--
+
+W3C Software and Document Notice and License
+
+This work is being provided by the copyright holders under the following license.
+
+License
+
+By obtaining and/or copying this work, you (the licensee) agree that you have 
+read, understood, and will comply with the following terms and conditions.
+
+Permission to copy, modify, and distribute this work, with or without 
+modification, for any purpose and without fee or royalty is hereby granted, 
+provided that you include the following on ALL copies of the work or portions 
+thereof, including modifications:
+
+- The full text of this NOTICE in a location viewable to users of the 
+  redistributed or derivative work.
+- Any pre-existing intellectual property disclaimers, notices, or terms and 
+  conditions. If none exist, the W3C Software and Document Short Notice should 
+  be included.
+- Notice of any changes or modifications, through a copyright statement on the
+  new code or document such as "This software or document includes material 
+  copied from or derived from [title and URI of the W3C document]. 
+  Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." 
+
+Disclaimers
+
+THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR
+ WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF 
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE 
+SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, 
+TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR 
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
+
+The name and trademarks of copyright holders may NOT be used in advertising or 
+publicity pertaining to the work without specific, written prior permission. 
+Title to copyright in this work will at all times remain with copyright 
+holders.
+
+Changes:
+
+- Added license header
+
+-->
+<!-- DTD for XML Schemas: Part 1: Structures
+     Public Identifier: "-//W3C//DTD XMLSCHEMA 200102//EN"
+     Official Location: http://www.w3.org/2001/XMLSchema.dtd -->
+<!-- $Id$ -->
+<!-- Note this DTD is NOT normative, or even definitive. -->           <!--d-->
+<!-- prose copy in the structures REC is the definitive version -->    <!--d-->
+<!-- (which shouldn't differ from this one except for this -->         <!--d-->
+<!-- comment and entity expansions, but just in case) -->              <!--d-->
+<!-- With the exception of cases with multiple namespace
+     prefixes for the XML Schema namespace, any XML document which is
+     not valid per this DTD given redefinitions in its internal subset of the
+     'p' and 's' parameter entities below appropriate to its namespace
+     declaration of the XML Schema namespace is almost certainly not
+     a valid schema. -->
+
+<!-- The simpleType element and its constituent parts
+     are defined in XML Schema: Part 2: Datatypes -->
+<!ENTITY % xs-datatypes PUBLIC 'datatypes' 'datatypes.dtd' >
+
+<!ENTITY % p 'xs:'> <!-- can be overriden in the internal subset of a
+                         schema document to establish a different
+                         namespace prefix -->
+<!ENTITY % s ':xs'> <!-- if %p is defined (e.g. as foo:) then you must
+                         also define %s as the suffix for the appropriate
+                         namespace declaration (e.g. :foo) -->
+<!ENTITY % nds 'xmlns%s;'>
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % schema "%p;schema">
+<!ENTITY % complexType "%p;complexType">
+<!ENTITY % complexContent "%p;complexContent">
+<!ENTITY % simpleContent "%p;simpleContent">
+<!ENTITY % extension "%p;extension">
+<!ENTITY % element "%p;element">
+<!ENTITY % unique "%p;unique">
+<!ENTITY % key "%p;key">
+<!ENTITY % keyref "%p;keyref">
+<!ENTITY % selector "%p;selector">
+<!ENTITY % field "%p;field">
+<!ENTITY % group "%p;group">
+<!ENTITY % all "%p;all">
+<!ENTITY % choice "%p;choice">
+<!ENTITY % sequence "%p;sequence">
+<!ENTITY % any "%p;any">
+<!ENTITY % anyAttribute "%p;anyAttribute">
+<!ENTITY % attribute "%p;attribute">
+<!ENTITY % attributeGroup "%p;attributeGroup">
+<!ENTITY % include "%p;include">
+<!ENTITY % import "%p;import">
+<!ENTITY % redefine "%p;redefine">
+<!ENTITY % notation "%p;notation">
+
+<!-- annotation elements -->
+<!ENTITY % annotation "%p;annotation">
+<!ENTITY % appinfo "%p;appinfo">
+<!ENTITY % documentation "%p;documentation">
+
+<!-- Customisation entities for the ATTLIST of each element type.
+     Define one of these if your schema takes advantage of the
+     anyAttribute='##other' in the schema for schemas -->
+
+<!ENTITY % schemaAttrs ''>
+<!ENTITY % complexTypeAttrs ''>
+<!ENTITY % complexContentAttrs ''>
+<!ENTITY % simpleContentAttrs ''>
+<!ENTITY % extensionAttrs ''>
+<!ENTITY % elementAttrs ''>
+<!ENTITY % groupAttrs ''>
+<!ENTITY % allAttrs ''>
+<!ENTITY % choiceAttrs ''>
+<!ENTITY % sequenceAttrs ''>
+<!ENTITY % anyAttrs ''>
+<!ENTITY % anyAttributeAttrs ''>
+<!ENTITY % attributeAttrs ''>
+<!ENTITY % attributeGroupAttrs ''>
+<!ENTITY % uniqueAttrs ''>
+<!ENTITY % keyAttrs ''>
+<!ENTITY % keyrefAttrs ''>
+<!ENTITY % selectorAttrs ''>
+<!ENTITY % fieldAttrs ''>
+<!ENTITY % includeAttrs ''>
+<!ENTITY % importAttrs ''>
+<!ENTITY % redefineAttrs ''>
+<!ENTITY % notationAttrs ''>
+<!ENTITY % annotationAttrs ''>
+<!ENTITY % appinfoAttrs ''>
+<!ENTITY % documentationAttrs ''>
+
+<!ENTITY % complexDerivationSet "CDATA">
+      <!-- #all or space-separated list drawn from derivationChoice -->
+<!ENTITY % blockSet "CDATA">
+      <!-- #all or space-separated list drawn from
+                      derivationChoice + 'substitution' -->
+
+<!ENTITY % mgs '%all; | %choice; | %sequence;'>
+<!ENTITY % cs '%choice; | %sequence;'>
+<!ENTITY % formValues '(qualified|unqualified)'>
+
+
+<!ENTITY % attrDecls    '((%attribute;| %attributeGroup;)*,(%anyAttribute;)?)'>
+
+<!ENTITY % particleAndAttrs '((%mgs; | %group;)?, %attrDecls;)'>
+
+<!-- This is used in part2 -->
+<!ENTITY % restriction1 '((%mgs; | %group;)?)'>
+
+%xs-datatypes;
+
+<!-- the duplication below is to produce an unambiguous content model
+     which allows annotation everywhere -->
+<!ELEMENT %schema; ((%include; | %import; | %redefine; | %annotation;)*,
+                    ((%simpleType; | %complexType;
+                      | %element; | %attribute;
+                      | %attributeGroup; | %group;
+                      | %notation; ),
+                     (%annotation;)*)* )>
+<!ATTLIST %schema;
+   targetNamespace      %URIref;               #IMPLIED
+   version              CDATA                  #IMPLIED
+   %nds;                %URIref;               #FIXED 'http://www.w3.org/2001/XMLSchema'
+   xmlns                CDATA                  #IMPLIED
+   finalDefault         %complexDerivationSet; ''
+   blockDefault         %blockSet;             ''
+   id                   ID                     #IMPLIED
+   elementFormDefault   %formValues;           'unqualified'
+   attributeFormDefault %formValues;           'unqualified'
+   xml:lang             CDATA                  #IMPLIED
+   %schemaAttrs;>
+<!-- Note the xmlns declaration is NOT in the Schema for Schemas,
+     because at the Infoset level where schemas operate,
+     xmlns(:prefix) is NOT an attribute! -->
+<!-- The declaration of xmlns is a convenience for schema authors -->
+ 
+<!-- The id attribute here and below is for use in external references
+     from non-schemas using simple fragment identifiers.
+     It is NOT used for schema-to-schema reference, internal or
+     external. -->
+
+<!-- a type is a named content type specification which allows attribute
+     declarations-->
+<!-- -->
+
+<!ELEMENT %complexType; ((%annotation;)?,
+                         (%simpleContent;|%complexContent;|
+                          %particleAndAttrs;))>
+
+<!ATTLIST %complexType;
+          name      %NCName;                        #IMPLIED
+          id        ID                              #IMPLIED
+          abstract  %boolean;                       #IMPLIED
+          final     %complexDerivationSet;          #IMPLIED
+          block     %complexDerivationSet;          #IMPLIED
+          mixed (true|false) 'false'
+          %complexTypeAttrs;>
+
+<!-- particleAndAttrs is shorthand for a root type -->
+<!-- mixed is disallowed if simpleContent, overriden if complexContent
+     has one too. -->
+
+<!-- If anyAttribute appears in one or more referenced attributeGroups
+     and/or explicitly, the intersection of the permissions is used -->
+
+<!ELEMENT %complexContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %complexContent;
+          mixed (true|false) #IMPLIED
+          id    ID           #IMPLIED
+          %complexContentAttrs;>
+
+<!-- restriction should use the branch defined above, not the simple
+     one from part2; extension should use the full model  -->
+
+<!ELEMENT %simpleContent; ((%annotation;)?, (%restriction;|%extension;))>
+<!ATTLIST %simpleContent;
+          id    ID           #IMPLIED
+          %simpleContentAttrs;>
+
+<!-- restriction should use the simple branch from part2, not the 
+     one defined above; extension should have no particle  -->
+
+<!ELEMENT %extension; ((%annotation;)?, (%particleAndAttrs;))>
+<!ATTLIST %extension;
+          base  %QName;      #REQUIRED
+          id    ID           #IMPLIED
+          %extensionAttrs;>
+
+<!-- an element is declared by either:
+ a name and a type (either nested or referenced via the type attribute)
+ or a ref to an existing element declaration -->
+
+<!ELEMENT %element; ((%annotation;)?, (%complexType;| %simpleType;)?,
+                     (%unique; | %key; | %keyref;)*)>
+<!-- simpleType or complexType only if no type|ref attribute -->
+<!-- ref not allowed at top level -->
+<!ATTLIST %element;
+            name               %NCName;               #IMPLIED
+            id                 ID                     #IMPLIED
+            ref                %QName;                #IMPLIED
+            type               %QName;                #IMPLIED
+            minOccurs          %nonNegativeInteger;   #IMPLIED
+            maxOccurs          CDATA                  #IMPLIED
+            nillable           %boolean;              #IMPLIED
+            substitutionGroup  %QName;                #IMPLIED
+            abstract           %boolean;              #IMPLIED
+            final              %complexDerivationSet; #IMPLIED
+            block              %blockSet;             #IMPLIED
+            default            CDATA                  #IMPLIED
+            fixed              CDATA                  #IMPLIED
+            form               %formValues;           #IMPLIED
+            %elementAttrs;>
+<!-- type and ref are mutually exclusive.
+     name and ref are mutually exclusive, one is required -->
+<!-- In the absence of type AND ref, type defaults to type of
+     substitutionGroup, if any, else the ur-type, i.e. unconstrained -->
+<!-- default and fixed are mutually exclusive -->
+
+<!ELEMENT %group; ((%annotation;)?,(%mgs;)?)>
+<!ATTLIST %group; 
+          name        %NCName;               #IMPLIED
+          ref         %QName;                #IMPLIED
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %groupAttrs;>
+
+<!ELEMENT %all; ((%annotation;)?, (%element;)*)>
+<!ATTLIST %all;
+          minOccurs   (1)                    #IMPLIED
+          maxOccurs   (1)                    #IMPLIED
+          id          ID                     #IMPLIED
+          %allAttrs;>
+
+<!ELEMENT %choice; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %choice;
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %choiceAttrs;>
+
+<!ELEMENT %sequence; ((%annotation;)?, (%element;| %group;| %cs; | %any;)*)>
+<!ATTLIST %sequence;
+          minOccurs   %nonNegativeInteger;   #IMPLIED
+          maxOccurs   CDATA                  #IMPLIED
+          id          ID                     #IMPLIED
+          %sequenceAttrs;>
+
+<!-- an anonymous grouping in a model, or
+     a top-level named group definition, or a reference to same -->
+
+<!-- Note that if order is 'all', group is not allowed inside.
+     If order is 'all' THIS group must be alone (or referenced alone) at
+     the top level of a content model -->
+<!-- If order is 'all', minOccurs==maxOccurs==1 on element/any inside -->
+<!-- Should allow minOccurs=0 inside order='all' . . . -->
+
+<!ELEMENT %any; (%annotation;)?>
+<!ATTLIST %any;
+            namespace       CDATA                  '##any'
+            processContents (skip|lax|strict)      'strict'
+            minOccurs       %nonNegativeInteger;   '1'
+            maxOccurs       CDATA                  '1'
+            id              ID                     #IMPLIED
+            %anyAttrs;>
+
+<!-- namespace is interpreted as follows:
+                  ##any      - - any non-conflicting WFXML at all
+
+                  ##other    - - any non-conflicting WFXML from namespace other
+                                  than targetNamespace
+
+                  ##local    - - any unqualified non-conflicting WFXML/attribute
+                  one or     - - any non-conflicting WFXML from
+                  more URI        the listed namespaces
+                  references
+
+                  ##targetNamespace ##local may appear in the above list,
+                    with the obvious meaning -->
+
+<!ELEMENT %anyAttribute; (%annotation;)?>
+<!ATTLIST %anyAttribute;
+            namespace       CDATA              '##any'
+            processContents (skip|lax|strict)  'strict'
+            id              ID                 #IMPLIED
+            %anyAttributeAttrs;>
+<!-- namespace is interpreted as for 'any' above -->
+
+<!-- simpleType only if no type|ref attribute -->
+<!-- ref not allowed at top level, name iff at top level -->
+<!ELEMENT %attribute; ((%annotation;)?, (%simpleType;)?)>
+<!ATTLIST %attribute;
+          name      %NCName;      #IMPLIED
+          id        ID            #IMPLIED
+          ref       %QName;       #IMPLIED
+          type      %QName;       #IMPLIED
+          use       (prohibited|optional|required) #IMPLIED
+          default   CDATA         #IMPLIED
+          fixed     CDATA         #IMPLIED
+          form      %formValues;  #IMPLIED
+          %attributeAttrs;>
+<!-- type and ref are mutually exclusive.
+     name and ref are mutually exclusive, one is required -->
+<!-- default for use is optional when nested, none otherwise -->
+<!-- default and fixed are mutually exclusive -->
+<!-- type attr and simpleType content are mutually exclusive -->
+
+<!-- an attributeGroup is a named collection of attribute decls, or a
+     reference thereto -->
+<!ELEMENT %attributeGroup; ((%annotation;)?,
+                       (%attribute; | %attributeGroup;)*,
+                       (%anyAttribute;)?) >
+<!ATTLIST %attributeGroup;
+                 name       %NCName;       #IMPLIED
+                 id         ID             #IMPLIED
+                 ref        %QName;        #IMPLIED
+                 %attributeGroupAttrs;>
+
+<!-- ref iff no content, no name.  ref iff not top level -->
+
+<!-- better reference mechanisms -->
+<!ELEMENT %unique; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %unique;
+          name     %NCName;       #REQUIRED
+	  id       ID             #IMPLIED
+	  %uniqueAttrs;>
+
+<!ELEMENT %key;    ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %key;
+          name     %NCName;       #REQUIRED
+	  id       ID             #IMPLIED
+	  %keyAttrs;>
+
+<!ELEMENT %keyref; ((%annotation;)?, %selector;, (%field;)+)>
+<!ATTLIST %keyref;
+          name     %NCName;       #REQUIRED
+	  refer    %QName;        #REQUIRED
+	  id       ID             #IMPLIED
+	  %keyrefAttrs;>
+
+<!ELEMENT %selector; ((%annotation;)?)>
+<!ATTLIST %selector;
+          xpath %XPathExpr; #REQUIRED
+          id    ID          #IMPLIED
+          %selectorAttrs;>
+<!ELEMENT %field; ((%annotation;)?)>
+<!ATTLIST %field;
+          xpath %XPathExpr; #REQUIRED
+          id    ID          #IMPLIED
+          %fieldAttrs;>
+
+<!-- Schema combination mechanisms -->
+<!ELEMENT %include; (%annotation;)?>
+<!ATTLIST %include;
+          schemaLocation %URIref; #REQUIRED
+          id             ID       #IMPLIED
+          %includeAttrs;>
+
+<!ELEMENT %import; (%annotation;)?>
+<!ATTLIST %import;
+          namespace      %URIref; #IMPLIED
+          schemaLocation %URIref; #IMPLIED
+          id             ID       #IMPLIED
+          %importAttrs;>
+
+<!ELEMENT %redefine; (%annotation; | %simpleType; | %complexType; |
+                      %attributeGroup; | %group;)*>
+<!ATTLIST %redefine;
+          schemaLocation %URIref; #REQUIRED
+          id             ID       #IMPLIED
+          %redefineAttrs;>
+
+<!ELEMENT %notation; (%annotation;)?>
+<!ATTLIST %notation;
+	  name        %NCName;    #REQUIRED
+	  id          ID          #IMPLIED
+	  public      CDATA       #REQUIRED
+	  system      %URIref;    #IMPLIED
+	  %notationAttrs;>
+
+<!-- Annotation is either application information or documentation -->
+<!-- By having these here they are available for datatypes as well
+     as all the structures elements -->
+
+<!ELEMENT %annotation; (%appinfo; | %documentation;)*>
+<!ATTLIST %annotation; %annotationAttrs;>
+
+<!-- User must define annotation elements in internal subset for this
+     to work -->
+<!ELEMENT %appinfo; ANY>   <!-- too restrictive -->
+<!ATTLIST %appinfo;
+          source     %URIref;      #IMPLIED
+          id         ID         #IMPLIED
+          %appinfoAttrs;>
+<!ELEMENT %documentation; ANY>   <!-- too restrictive -->
+<!ATTLIST %documentation;
+          source     %URIref;   #IMPLIED
+          id         ID         #IMPLIED
+          xml:lang   CDATA      #IMPLIED
+          %documentationAttrs;>
+
+<!NOTATION XMLSchemaStructures PUBLIC
+           'structures' 'http://www.w3.org/2001/XMLSchema.xsd' >
+<!NOTATION XML PUBLIC
+           'REC-xml-1998-0210' 'http://www.w3.org/TR/1998/REC-xml-19980210' >
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_1_4.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_1_4.mdd
new file mode 100644
index 0000000000..33dd29460a
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_1_4.mdd
@@ -0,0 +1,495 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2006, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>application-client</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ApplicationClient</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements>
+                org.netbeans.modules.j2ee.dd.api.client.AppClient
+            </implements>
+            <user-code>
+                public org.xml.sax.SAXParseException getError() {
+                    return null;
+                }
+                public int getStatus() {
+                    return STATE_VALID;
+                }
+            </user-code>
+	</meta-element>
+
+
+        <meta-element>
+		<dtd-name>callback-handlerType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>CallbackHandler</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>env-entryType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EnvEntry</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.EnvEntry, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() {
+                    return "EnvEntryName";
+                }
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+            </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>iconType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Icon</bean-name>
+                <implements> 
+                    org.netbeans.modules.j2ee.dd.api.common.Icon
+                </implements>
+	</meta-element>
+	<meta-element>
+            <dtd-name>service-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+            <bean-name>ServiceRef</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ServiceRefName"; }
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setHandlerChains(org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains getHandlerChains() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains newServiceRefHandlerChains() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>service-ref_handlerType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+            <bean-name>ServiceRefHandler</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "HandlerName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>resource-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+            <bean-name>ResourceRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ResourceRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ResRefName"; }
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>resource-env-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+            <bean-name>ResourceEnvRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ResourceEnvRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ResourceEnvRefName"; }
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>message-destination-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+            <bean-name>MessageDestinationRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.MessageDestinationRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "MessageDestinationRefName"; }
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>message-destinationType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+            <bean-name>MessageDestination</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.MessageDestination, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "MessageDestinationName"; }
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>ejb-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+            <bean-name>EjbRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.EjbRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "EjbRefName"; }
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.client.AppClient.VERSION_1_4);
+                }
+            </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>port-component-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>PortComponentRef</bean-name>
+                <implements> 
+                    org.netbeans.modules.j2ee.dd.api.common.PortComponentRef
+                </implements>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdQNameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>XsdQNameType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+            <dtd-name>service-ref_handlerType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+            <bean-name>ServiceRefHandler</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "HandlerName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>param-valueType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+            <bean-name>InitParam</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.InitParam, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ParamName"; }
+            </user-code>
+	</meta-element>
+
+	<meta-element>
+		<dtd-name>string</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>String</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>descriptionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Description</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>display-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>DisplayName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>pathType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>PathType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>jndi-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>JndiNameType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MessageDestinationTypeType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-usageType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MessageDestinationUsageType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-linkType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MessageDestinationLinkType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>res-authType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ResAuthType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>res-sharing-scopeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ResSharingScopeType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdAnyURIType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>XsdAnyURIType</bean-name>
+		<wrapper-class>java.net.URI</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdStringType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>XsdStringType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-ref-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbRefNameType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-ref-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbRefTypeType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>homeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>HomeType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>remoteType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>RemoteType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-linkType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbLinkType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>env-entry-type-valuesType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EnvEntryTypeValuesType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_1_4.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_1_4.xsd
new file mode 100644
index 0000000000..d6c0a34bf5
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_1_4.xsd
@@ -0,0 +1,278 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="1.4">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)application-client_1_4.xsds	1.17 02/11/03
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2003-2010 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Oracle in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the application client 1.4
+	deployment descriptor.  The deployment descriptor must
+	be named "META-INF/application-client.xml" in the
+	application client's jar file.  All application client
+	deployment descriptors must indicate the application
+	client schema by using the J2EE namespace:
+
+	http://java.sun.com/xml/ns/j2ee
+
+	and indicate the version of the schema by
+	using the version element as shown below:
+
+	    <application-client xmlns="http://java.sun.com/xml/ns/j2ee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+		http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd"
+	      version="1.4">
+	      ...
+	    </application-client>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for J2EE
+	namespace with the following location:
+
+	http://java.sun.com/xml/ns/j2ee/application-client_1_4.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all J2EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - 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.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
+
+
+<!-- **************************************************** -->
+
+
+  <xsd:element name="application-client" type="j2ee:application-clientType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The application-client element is the root element of an
+	application client deployment descriptor.  The application
+	client deployment descriptor describes the EJB components
+	and external resources referenced by the application
+	client.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:unique name="env-entry-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The env-entry-name element contains the name of an
+	  application client's environment entry.  The name is a JNDI
+	  name relative to the java:comp/env context.  The name must
+	  be unique within an application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:env-entry"/>
+      <xsd:field    xpath="j2ee:env-entry-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="ejb-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-ref-name element contains the name of an EJB
+	  reference. The EJB reference is an entry in the application
+	  client's environment and is relative to the
+	  java:comp/env context. The name must be unique within the
+	  application client.
+
+	  It is recommended that name is prefixed with "ejb/".
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:ejb-ref"/>
+      <xsd:field    xpath="j2ee:ejb-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="res-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  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 application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:resource-ref"/>
+      <xsd:field    xpath="j2ee:res-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="resource-env-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The resource-env-ref-name element specifies the name of
+	  a resource environment reference; its value is the
+	  environment entry name used in the application client
+	  code. The name is a JNDI name relative to the
+	  java:comp/env context and must be unique within an
+	  application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:resource-env-ref"/>
+      <xsd:field    xpath="j2ee:resource-env-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="message-destination-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The message-destination-ref-name element specifies the
+	  name of a message destination reference; its value is
+	  the message destination reference name used in the
+	  application client code. The name is a JNDI name
+	  relative to the java:comp/env context and must be unique
+	  within an application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:message-destination-ref"/>
+      <xsd:field    xpath="j2ee:message-destination-ref-name"/>
+    </xsd:unique>
+  </xsd:element>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="application-clientType">
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="env-entry"
+		   type="j2ee:env-entryType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref"
+		   type="j2ee:ejb-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:group ref="j2ee:service-refGroup"/>
+      <xsd:element name="resource-ref"
+		   type="j2ee:resource-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref"
+		   type="j2ee:resource-env-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref"
+		   type="j2ee:message-destination-refType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="callback-handler"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The callback-handler element names a class provided by
+	    the application.  The class must have a no args
+	    constructor and must implement the
+	    javax.security.auth.callback.CallbackHandler
+	    interface.  The class will be instantiated by the
+	    application client container and used by the container
+	    to collect authentication information from the user.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="message-destination"
+		   type="j2ee:message-destinationType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="version"
+		   type="j2ee:dewey-versionType"
+		   fixed="1.4"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The required value for the version is 1.4.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_5.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_5.mdd
new file mode 100644
index 0000000000..f95436fa9d
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_5.mdd
@@ -0,0 +1,369 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2006, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>application-client</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ApplicationClient</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.client.AppClient</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+                </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>env-entryType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EnvEntry</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements>
+                org.netbeans.modules.j2ee.dd.api.common.EnvEntry, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "EnvEntryName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>ejb-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EjbRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.EjbRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "EjbRefName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>resource-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ResourceRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ResourceRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ResRefName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>resource-env-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ResourceEnvRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ResourceEnvRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ResourceEnvRefName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>message-destination-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.MessageDestinationRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "MessageDestinationRefName"; }
+            </user-code>
+        </meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextRefType</bean-name>
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-unit-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceUnitRefType</bean-name>
+	</meta-element>
+	<meta-element>
+		<dtd-name>lifecycle-callbackType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>LifecycleCallbackType</bean-name>
+	</meta-element>
+	<meta-element>
+		<dtd-name>fully-qualified-classType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>FullyQualifiedClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+            <dtd-name>message-destinationType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>MessageDestination</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.MessageDestination, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "MessageDestinationName"; }
+            </user-code>
+	</meta-element>
+        <meta-element>
+            <dtd-name>string</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>String</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>xsdStringType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>XsdStringType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>descriptionType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>DescriptionType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>display-nameType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>DisplayNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>iconType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>Icon</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.Icon
+            </implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>pathType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>PathType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>java-identifierType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>JavaIdentifierType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>jndi-nameType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>JndiNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>injection-targetType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>InjectionTarget</bean-name>
+            <implements>org.netbeans.modules.j2ee.dd.api.common.InjectionTarget</implements>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+        </meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextTypeType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+        <meta-element>
+            <dtd-name>message-destination-typeType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationTypeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>message-destination-usageType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationUsageType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>message-destination-linkType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationLinkType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>res-authType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ResAuthType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>res-sharing-scopeType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ResSharingScopeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRef</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ServiceRefName"; }
+            </user-code>
+        </meta-element>
+        <meta-element>
+            <dtd-name>xsdAnyURIType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>XsdAnyURIType</bean-name>
+            <wrapper-class>java.net.URI</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>xsdQNameType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>XsdQNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>port-component-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>PortComponentRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.PortComponentRef
+            </implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-ref_handlerType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandler</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "HandlerName"; }
+            </user-code>
+        </meta-element>
+        <meta-element> 
+               <dtd-name>service-ref_handler-chainsType</dtd-name> 
+               <namespace>http://java.sun.com/xml/ns/javaee</namespace> 
+               <bean-name>ServiceRefHandlerChains</bean-name> 
+               <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains</implements> 
+        </meta-element> 
+        <meta-element>
+            <dtd-name>service-ref_handler-chainType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandlerChainType</bean-name>
+            <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChain</implements> 
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-ref_qname-pattern</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefQnamePattern</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-ref_protocol-bindingListType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefProtocolBindingListType</bean-name>
+            <wrapper-class>String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>param-valueType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+                <bean-name>InitParam</bean-name>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+                <implements> 
+                    org.netbeans.modules.j2ee.dd.api.common.InitParam, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+                </implements>
+                <user-code>
+                    public String getKeyProperty() { return "ParamName"; }
+                </user-code>
+        </meta-element>
+        <meta-element>
+            <dtd-name>true-falseType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>TrueFalseType</bean-name>
+            <wrapper-class>boolean</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>ejb-ref-nameType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EjbRefNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>ejb-ref-typeType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EjbRefTypeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>homeType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>HomeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>remoteType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>RemoteType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>ejb-linkType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EjbLinkType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>env-entry-type-valuesType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EnvEntryTypeValuesType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_5.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_5.xsd
new file mode 100644
index 0000000000..61c64409b8
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_5.xsd
@@ -0,0 +1,313 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/javaee"
+	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="5">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)application-client_5.xsds	1.26 02/17/06
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2003-2010 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Oracle in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the application client 5
+	deployment descriptor.  The deployment descriptor must
+	be named "META-INF/application-client.xml" in the
+	application client's jar file.  All application client
+	deployment descriptors must indicate the application
+	client schema by using the Java EE namespace:
+
+	http://java.sun.com/xml/ns/javaee
+
+	and indicate the version of the schema by
+	using the version element as shown below:
+
+	    <application-client xmlns="http://java.sun.com/xml/ns/javaee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+		http://java.sun.com/xml/ns/javaee/application-client_5.xsd"
+	      version="5">
+	      ...
+	    </application-client>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for Java EE
+	namespace with the following location:
+
+	http://java.sun.com/xml/ns/javaee/application-client_5.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - 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.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_5.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="application-client" type="javaee:application-clientType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The application-client element is the root element of an
+	application client deployment descriptor.  The application
+	client deployment descriptor describes the EJB components
+	and external resources referenced by the application
+	client.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:unique name="env-entry-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The env-entry-name element contains the name of an
+	  application client's environment entry.  The name is a JNDI
+	  name relative to the java:comp/env context.  The name must
+	  be unique within an application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:env-entry"/>
+      <xsd:field    xpath="javaee:env-entry-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="ejb-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-ref-name element contains the name of an EJB
+	  reference. The EJB reference is an entry in the application
+	  client's environment and is relative to the
+	  java:comp/env context. The name must be unique within the
+	  application client.
+
+	  It is recommended that name is prefixed with "ejb/".
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:ejb-ref"/>
+      <xsd:field    xpath="javaee:ejb-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="res-ref-name-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  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 application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-ref"/>
+      <xsd:field    xpath="javaee:res-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="resource-env-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The resource-env-ref-name element specifies the name of
+	  a resource environment reference; its value is the
+	  environment entry name used in the application client
+	  code. The name is a JNDI name relative to the
+	  java:comp/env context and must be unique within an
+	  application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-env-ref"/>
+      <xsd:field    xpath="javaee:resource-env-ref-name"/>
+    </xsd:unique>
+
+    <xsd:unique name="message-destination-ref-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The message-destination-ref-name element specifies the
+	  name of a message destination reference; its value is
+	  the message destination reference name used in the
+	  application client code. The name is a JNDI name
+	  relative to the java:comp/env context and must be unique
+	  within an application client.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:message-destination-ref"/>
+      <xsd:field    xpath="javaee:message-destination-ref-name"/>
+    </xsd:unique>
+  </xsd:element>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="application-clientType">
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="env-entry"
+		   type="javaee:env-entryType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref"
+		   type="javaee:ejb-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:service-refGroup"/>
+      <xsd:element name="resource-ref"
+		   type="javaee:resource-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref"
+		   type="javaee:resource-env-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref"
+		   type="javaee:message-destination-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="persistence-unit-ref"
+		   type="javaee:persistence-unit-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="post-construct"
+		   type="javaee:lifecycle-callbackType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="pre-destroy"
+		   type="javaee:lifecycle-callbackType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="callback-handler"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The callback-handler element names a class provided by
+	    the application.  The class must have a no args
+	    constructor and must implement the
+	    javax.security.auth.callback.CallbackHandler
+	    interface.  The class will be instantiated by the
+	    application client container and used by the container
+	    to collect authentication information from the user.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="message-destination"
+		   type="javaee:message-destinationType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+
+    <xsd:attribute name="version"
+		   type="javaee:dewey-versionType"
+		   fixed="5"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The required value for the version is 5.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+
+    <xsd:attribute name="metadata-complete" type="xsd:boolean">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The metadata-complete attribute defines whether this
+	  deployment descriptor and other related deployment
+	  descriptors for this module (e.g., web service
+	  descriptors) are complete, or whether the class
+	  files available to this module and packaged with
+	  this application should be examined for annotations
+	  that specify deployment information.
+
+	  If metadata-complete is set to "true", the deployment
+	  tool must ignore any annotations that specify deployment
+	  information, which might be present in the class files
+	  of the application.
+
+	  If metadata-complete is not specified or is set to
+	  "false", the deployment tool must examine the class
+	  files of the application for annotations, as
+	  specified by the specifications.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_6.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_6.mdd
new file mode 100644
index 0000000000..b0c62ea7ca
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_6.mdd
@@ -0,0 +1,409 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2009, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>application-client</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ApplicationClient</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.client.AppClient</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+                    public void setVersion(java.math.BigDecimal value) {
+                            setAttributeValue(VERSION, value.toString());
+                    }
+                    public java.math.BigDecimal getVersion() {
+                            return new java.math.BigDecimal(getAttributeValue(VERSION));
+                    }
+                </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>env-entryType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EnvEntry</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.EnvEntry, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "EnvEntryName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>ejb-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EjbRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.EjbRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "EjbRefName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>resource-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ResourceRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ResourceRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ResRefName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>resource-env-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ResourceEnvRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ResourceEnvRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ResourceEnvRefName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>message-destination-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.MessageDestinationRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "MessageDestinationRefName"; }
+            </user-code>
+        </meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextRefType</bean-name>
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-unit-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceUnitRefType</bean-name>
+	</meta-element>
+	<meta-element>
+		<dtd-name>lifecycle-callbackType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>LifecycleCallbackType</bean-name>
+	</meta-element>
+	<meta-element>
+		<dtd-name>fully-qualified-classType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>FullyQualifiedClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+            <dtd-name>message-destinationType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>MessageDestination</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.MessageDestination, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "MessageDestinationName"; }
+            </user-code>
+	</meta-element>
+        <meta-element>
+            <dtd-name>string</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>String</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>xsdStringType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>XsdStringType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>descriptionType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>DescriptionType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>display-nameType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>DisplayNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>iconType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>Icon</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.Icon
+            </implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>pathType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>PathType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>java-identifierType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>JavaIdentifierType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>jndi-nameType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>JndiNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>injection-targetType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>InjectionTarget</bean-name>
+            <implements>org.netbeans.modules.j2ee.dd.api.common.InjectionTarget</implements>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+        </meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextTypeType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+        <meta-element>
+            <dtd-name>message-destination-typeType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationTypeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>message-destination-usageType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationUsageType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>message-destination-linkType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationLinkType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>res-authType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ResAuthType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>res-sharing-scopeType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ResSharingScopeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRef</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ServiceRefName"; }
+            </user-code>
+        </meta-element>
+        <meta-element>
+            <dtd-name>xsdAnyURIType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>XsdAnyURIType</bean-name>
+            <wrapper-class>java.net.URI</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>xsdQNameType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>XsdQNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>port-component-refType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>PortComponentRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.PortComponentRef
+            </implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-ref_handlerType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandler</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "HandlerName"; }
+            </user-code>
+        </meta-element>
+        <meta-element> 
+               <dtd-name>service-ref_handler-chainsType</dtd-name> 
+               <namespace>http://java.sun.com/xml/ns/javaee</namespace> 
+               <bean-name>ServiceRefHandlerChains</bean-name> 
+               <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains</implements> 
+        </meta-element> 
+        <meta-element>
+            <dtd-name>service-ref_handler-chainType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandlerChainType</bean-name>
+            <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChain</implements> 
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-ref_qname-pattern</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefQnamePattern</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-ref_protocol-bindingListType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefProtocolBindingListType</bean-name>
+            <wrapper-class>String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>param-valueType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+                <bean-name>InitParam</bean-name>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+                <implements> 
+                    org.netbeans.modules.j2ee.dd.api.common.InitParam, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+                </implements>
+                <user-code>
+                    public String getKeyProperty() { return "ParamName"; }
+                </user-code>
+        </meta-element>
+        <meta-element>
+            <dtd-name>true-falseType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>TrueFalseType</bean-name>
+            <wrapper-class>boolean</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>ejb-ref-nameType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EjbRefNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>ejb-ref-typeType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EjbRefTypeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>homeType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>HomeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>remoteType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>RemoteType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>ejb-linkType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EjbLinkType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>env-entry-type-valuesType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>EnvEntryTypeValuesType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+
+<!-- changes added for EE6: -->
+
+        <meta-element>
+            <dtd-name>handlerType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandler</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements>
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "HandlerName"; }
+            </user-code>
+        </meta-element>
+        <meta-element>
+               <dtd-name>handler-chainsType</dtd-name>
+               <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+               <bean-name>ServiceRefHandlerChains</bean-name>
+               <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains</implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>handler-chainType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandlerChainType</bean-name>
+            <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChain</implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>dewey-versionType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>version</bean-name>
+            <wrapper-class>java.math.BigDecimal</wrapper-class>
+        </meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_6.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_6.xsd
new file mode 100644
index 0000000000..2e60f5b006
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_6.xsd
@@ -0,0 +1,322 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://java.sun.com/xml/ns/javaee"
+            xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified"
+            attributeFormDefault="unqualified"
+            version="6">
+  <xsd:annotation>
+    <xsd:documentation>
+
+      $Id$
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2003-2010 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Oracle in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[[
+      This is the XML Schema for the application client 6
+      deployment descriptor.  The deployment descriptor must
+      be named "META-INF/application-client.xml" in the
+      application client's jar file.  All application client
+      deployment descriptors must indicate the application
+      client schema by using the Java EE namespace:
+
+      http://java.sun.com/xml/ns/javaee
+
+      and indicate the version of the schema by
+      using the version element as shown below:
+
+      <application-client xmlns="http://java.sun.com/xml/ns/javaee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+      	http://java.sun.com/xml/ns/javaee/application-client_6.xsd"
+      version="6">
+      ...
+      </application-client>
+
+      The instance documents may indicate the published version of
+      the schema using the xsi:schemaLocation attribute for Java EE
+      namespace with the following location:
+
+      http://java.sun.com/xml/ns/javaee/application-client_6.xsd
+
+      ]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+      
+      - 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.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_6.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="application-client"
+               type="javaee:application-clientType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The application-client element is the root element of an
+        application client deployment descriptor.  The application
+        client deployment descriptor describes the EJB components
+        and external resources referenced by the application
+        client.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:unique name="env-entry-name-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The env-entry-name element contains the name of an
+          application client's environment entry.  The name is a JNDI
+          name relative to the java:comp/env context.  The name must
+          be unique within an application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:env-entry"/>
+      <xsd:field xpath="javaee:env-entry-name"/>
+    </xsd:unique>
+    <xsd:unique name="ejb-ref-name-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The ejb-ref-name element contains the name of an EJB
+          reference. The EJB reference is an entry in the application
+          client's environment and is relative to the
+          java:comp/env context. The name must be unique within the
+          application client.
+          
+          It is recommended that name is prefixed with "ejb/".
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:ejb-ref"/>
+      <xsd:field xpath="javaee:ejb-ref-name"/>
+    </xsd:unique>
+    <xsd:unique name="res-ref-name-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          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 application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-ref"/>
+      <xsd:field xpath="javaee:res-ref-name"/>
+    </xsd:unique>
+    <xsd:unique name="resource-env-ref-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The resource-env-ref-name element specifies the name of
+          a resource environment reference; its value is the
+          environment entry name used in the application client
+          code. The name is a JNDI name relative to the
+          java:comp/env context and must be unique within an
+          application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-env-ref"/>
+      <xsd:field xpath="javaee:resource-env-ref-name"/>
+    </xsd:unique>
+    <xsd:unique name="message-destination-ref-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The message-destination-ref-name element specifies the
+          name of a message destination reference; its value is
+          the message destination reference name used in the
+          application client code. The name is a JNDI name
+          relative to the java:comp/env context and must be unique
+          within an application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:message-destination-ref"/>
+      <xsd:field xpath="javaee:message-destination-ref-name"/>
+    </xsd:unique>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="application-clientType">
+    <xsd:sequence>
+      <xsd:element name="module-name"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="env-entry"
+                   type="javaee:env-entryType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref"
+                   type="javaee:ejb-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:service-refGroup"/>
+      <xsd:element name="resource-ref"
+                   type="javaee:resource-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref"
+                   type="javaee:resource-env-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref"
+                   type="javaee:message-destination-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="persistence-unit-ref"
+                   type="javaee:persistence-unit-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="post-construct"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="pre-destroy"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="callback-handler"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The callback-handler element names a class provided by
+            the application.  The class must have a no args
+            constructor and must implement the
+            javax.security.auth.callback.CallbackHandler
+            interface.  The class will be instantiated by the
+            application client container and used by the container
+            to collect authentication information from the user.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="message-destination"
+                   type="javaee:message-destinationType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="data-source"
+                   type="javaee:data-sourceType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+                   type="javaee:dewey-versionType"
+                   fixed="6"
+                   use="required">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The required value for the version is 6.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="metadata-complete"
+                   type="xsd:boolean">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The metadata-complete attribute defines whether this
+          deployment descriptor and other related deployment
+          descriptors for this module (e.g., web service
+          descriptors) are complete, or whether the class
+          files available to this module and packaged with
+          this application should be examined for annotations
+          that specify deployment information.
+          
+          If metadata-complete is set to "true", the deployment
+          tool must ignore any annotations that specify deployment
+          information, which might be present in the class files
+          of the application.
+          
+          If metadata-complete is not specified or is set to
+          "false", the deployment tool must examine the class
+          files of the application for annotations, as
+          specified by the specifications.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_7.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_7.mdd
new file mode 100644
index 0000000000..ab6831a97f
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_7.mdd
@@ -0,0 +1,409 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2013, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>application-client</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ApplicationClient</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.client.AppClient</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+                    public void setVersion(java.math.BigDecimal value) {
+                            setAttributeValue(VERSION, value.toString());
+                    }
+                    public java.math.BigDecimal getVersion() {
+                            return new java.math.BigDecimal(getAttributeValue(VERSION));
+                    }
+                </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>env-entryType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>EnvEntry</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.EnvEntry, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "EnvEntryName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>ejb-refType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>EjbRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.EjbRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "EjbRefName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>resource-refType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ResourceRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ResourceRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ResRefName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>resource-env-refType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ResourceEnvRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ResourceEnvRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ResourceEnvRefName"; }
+            </user-code>
+	</meta-element>
+	<meta-element>
+            <dtd-name>message-destination-refType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.MessageDestinationRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "MessageDestinationRefName"; }
+            </user-code>
+        </meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextRefType</bean-name>
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-unit-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>PersistenceUnitRefType</bean-name>
+	</meta-element>
+	<meta-element>
+		<dtd-name>lifecycle-callbackType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>LifecycleCallbackType</bean-name>
+	</meta-element>
+	<meta-element>
+		<dtd-name>fully-qualified-classType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>FullyQualifiedClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+            <dtd-name>message-destinationType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>MessageDestination</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.MessageDestination, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "MessageDestinationName"; }
+            </user-code>
+	</meta-element>
+        <meta-element>
+            <dtd-name>string</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>String</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>xsdStringType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>XsdStringType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>descriptionType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>DescriptionType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>display-nameType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>DisplayNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>iconType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>Icon</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.Icon
+            </implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>pathType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>PathType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>java-identifierType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>JavaIdentifierType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>jndi-nameType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>JndiNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>injection-targetType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>InjectionTarget</bean-name>
+            <implements>org.netbeans.modules.j2ee.dd.api.common.InjectionTarget</implements>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+        </meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-typeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextTypeType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+        <meta-element>
+            <dtd-name>message-destination-typeType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationTypeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>message-destination-usageType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationUsageType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>message-destination-linkType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>MessageDestinationLinkType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>res-authType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ResAuthType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>res-sharing-scopeType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ResSharingScopeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-refType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ServiceRef</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRef, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "ServiceRefName"; }
+            </user-code>
+        </meta-element>
+        <meta-element>
+            <dtd-name>xsdAnyURIType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>XsdAnyURIType</bean-name>
+            <wrapper-class>java.net.URI</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>xsdQNameType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>XsdQNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>port-component-refType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>PortComponentRef</bean-name>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.PortComponentRef
+            </implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-ref_handlerType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandler</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements> 
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "HandlerName"; }
+            </user-code>
+        </meta-element>
+        <meta-element> 
+               <dtd-name>service-ref_handler-chainsType</dtd-name> 
+               <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+               <bean-name>ServiceRefHandlerChains</bean-name> 
+               <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains</implements> 
+        </meta-element> 
+        <meta-element>
+            <dtd-name>service-ref_handler-chainType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandlerChainType</bean-name>
+            <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChain</implements> 
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-ref_qname-pattern</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefQnamePattern</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>service-ref_protocol-bindingListType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefProtocolBindingListType</bean-name>
+            <wrapper-class>String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>param-valueType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+                <bean-name>InitParam</bean-name>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+                <implements> 
+                    org.netbeans.modules.j2ee.dd.api.common.InitParam, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+                </implements>
+                <user-code>
+                    public String getKeyProperty() { return "ParamName"; }
+                </user-code>
+        </meta-element>
+        <meta-element>
+            <dtd-name>true-falseType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>TrueFalseType</bean-name>
+            <wrapper-class>boolean</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>ejb-ref-nameType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>EjbRefNameType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>ejb-ref-typeType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>EjbRefTypeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>homeType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>HomeType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>remoteType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>RemoteType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>ejb-linkType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>EjbLinkType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+        <meta-element>
+            <dtd-name>env-entry-type-valuesType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>EnvEntryTypeValuesType</bean-name>
+            <wrapper-class>java.lang.String</wrapper-class>
+        </meta-element>
+
+<!-- changes added for EE6: -->
+
+        <meta-element>
+            <dtd-name>handlerType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandler</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements>
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "HandlerName"; }
+            </user-code>
+        </meta-element>
+        <meta-element>
+               <dtd-name>handler-chainsType</dtd-name>
+               <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+               <bean-name>ServiceRefHandlerChains</bean-name>
+               <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains</implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>handler-chainType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandlerChainType</bean-name>
+            <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChain</implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>dewey-versionType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>version</bean-name>
+            <wrapper-class>java.math.BigDecimal</wrapper-class>
+        </meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_7.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_7.xsd
new file mode 100644
index 0000000000..7b28e2f735
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application-client_7.xsd
@@ -0,0 +1,331 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://xmlns.jcp.org/xml/ns/javaee"
+            xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified"
+            attributeFormDefault="unqualified"
+            version="7">
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+      
+      Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+      
+      The contents of this file are subject to the terms of either the GNU
+      General Public License Version 2 only ("GPL") or the Common Development
+      and Distribution License("CDDL") (collectively, the "License").  You
+      may not use this file except in compliance with the License.  You can
+      obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+      or packager/legal/LICENSE.txt.  See the License for the specific
+      language governing permissions and limitations under the License.
+      
+      When distributing the software, include this License Header Notice in each
+      file and include the License file at packager/legal/LICENSE.txt.
+      
+      GPL Classpath Exception:
+      Oracle designates this particular file as subject to the "Classpath"
+      exception as provided by Oracle in the GPL Version 2 section of the License
+      file that accompanied this code.
+      
+      Modifications:
+      If applicable, add the following below the License Header, with the fields
+      enclosed by brackets [] replaced by your own identifying information:
+      "Portions Copyright [year] [name of copyright owner]"
+      
+      Contributor(s):
+      If you wish your version of this file to be governed by only the CDDL or
+      only the GPL Version 2, indicate your decision by adding "[Contributor]
+      elects to include this software in this distribution under the [CDDL or GPL
+      Version 2] license."  If you don't indicate a single choice of license, a
+      recipient has the option to distribute your version of this file under
+      either the CDDL, the GPL Version 2 or to extend the choice of license to
+      its licensees as provided above.  However, if you add GPL Version 2 code
+      and therefore, elected the GPL Version 2 license, then the option applies
+      only if the new code is made subject to such option by the copyright
+      holder.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[[
+      This is the XML Schema for the application client 7
+      deployment descriptor.  The deployment descriptor must
+      be named "META-INF/application-client.xml" in the
+      application client's jar file.  All application client
+      deployment descriptors must indicate the application
+      client schema by using the Java EE namespace:
+      
+      http://xmlns.jcp.org/xml/ns/javaee
+      
+      and indicate the version of the schema by
+      using the version element as shown below:
+      
+      <application-client xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
+      	http://xmlns.jcp.org/xml/ns/javaee/application-client_7.xsd"
+      version="7">
+      ...
+      </application-client>
+      
+      The instance documents may indicate the published version of
+      the schema using the xsi:schemaLocation attribute for Java EE
+      namespace with the following location:
+      
+      http://xmlns.jcp.org/xml/ns/javaee/application-client_7.xsd
+      
+      ]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+      
+      - 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.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_7.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="application-client"
+               type="javaee:application-clientType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The application-client element is the root element of an
+        application client deployment descriptor.  The application
+        client deployment descriptor describes the EJB components
+        and external resources referenced by the application
+        client.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:unique name="env-entry-name-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The env-entry-name element contains the name of an
+          application client's environment entry.  The name is a JNDI
+          name relative to the java:comp/env context.  The name must
+          be unique within an application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:env-entry"/>
+      <xsd:field xpath="javaee:env-entry-name"/>
+    </xsd:unique>
+    <xsd:unique name="ejb-ref-name-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The ejb-ref-name element contains the name of an EJB
+          reference. The EJB reference is an entry in the application
+          client's environment and is relative to the
+          java:comp/env context. The name must be unique within the
+          application client.
+          
+          It is recommended that name is prefixed with "ejb/".
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:ejb-ref"/>
+      <xsd:field xpath="javaee:ejb-ref-name"/>
+    </xsd:unique>
+    <xsd:unique name="res-ref-name-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          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 application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-ref"/>
+      <xsd:field xpath="javaee:res-ref-name"/>
+    </xsd:unique>
+    <xsd:unique name="resource-env-ref-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The resource-env-ref-name element specifies the name of
+          a resource environment reference; its value is the
+          environment entry name used in the application client
+          code. The name is a JNDI name relative to the
+          java:comp/env context and must be unique within an
+          application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:resource-env-ref"/>
+      <xsd:field xpath="javaee:resource-env-ref-name"/>
+    </xsd:unique>
+    <xsd:unique name="message-destination-ref-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The message-destination-ref-name element specifies the
+          name of a message destination reference; its value is
+          the message destination reference name used in the
+          application client code. The name is a JNDI name
+          relative to the java:comp/env context and must be unique
+          within an application client.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:message-destination-ref"/>
+      <xsd:field xpath="javaee:message-destination-ref-name"/>
+    </xsd:unique>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="application-clientType">
+    <xsd:sequence>
+      <xsd:element name="module-name"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="env-entry"
+                   type="javaee:env-entryType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref"
+                   type="javaee:ejb-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:service-refGroup"/>
+      <xsd:element name="resource-ref"
+                   type="javaee:resource-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref"
+                   type="javaee:resource-env-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref"
+                   type="javaee:message-destination-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="persistence-unit-ref"
+                   type="javaee:persistence-unit-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="post-construct"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="pre-destroy"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="callback-handler"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The callback-handler element names a class provided by
+            the application.  The class must have a no args
+            constructor and must implement the
+            javax.security.auth.callback.CallbackHandler
+            interface.  The class will be instantiated by the
+            application client container and used by the container
+            to collect authentication information from the user.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="message-destination"
+                   type="javaee:message-destinationType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="data-source"
+                   type="javaee:data-sourceType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="jms-connection-factory"
+                   type="javaee:jms-connection-factoryType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="jms-destination"
+                   type="javaee:jms-destinationType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="mail-session"
+                   type="javaee:mail-sessionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="connection-factory"
+                   type="javaee:connection-factory-resourceType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="administered-object"
+                   type="javaee:administered-objectType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+                   type="javaee:dewey-versionType"
+                   fixed="7"
+                   use="required">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The required value for the version is 7.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="metadata-complete"
+                   type="xsd:boolean">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The metadata-complete attribute defines whether this
+          deployment descriptor and other related deployment
+          descriptors for this module (e.g., web service
+          descriptors) are complete, or whether the class
+          files available to this module and packaged with
+          this application should be examined for annotations
+          that specify deployment information.
+          
+          If metadata-complete is set to "true", the deployment
+          tool must ignore any annotations that specify deployment
+          information, which might be present in the class files
+          of the application.
+          
+          If metadata-complete is not specified or is set to
+          "false", the deployment tool must examine the class
+          files of the application for annotations, as
+          specified by the specifications.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_1_4.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_1_4.mdd
new file mode 100644
index 0000000000..61057317a1
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_1_4.mdd
@@ -0,0 +1,120 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2004, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>application</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Application</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Application</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>moduleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Module</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Module</implements>
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-roleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>SecurityRole</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRole</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>descriptionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Description</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>role-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>RoleName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>pathType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Path</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>webType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Web</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Web</implements>
+                <user-code>
+                    public String getWebUriId() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.application.Application.VERSION_1_4);
+                    }
+                    public void setWebUriId(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.application.Application.VERSION_1_4);
+                    }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>string</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>String</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>display-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>DisplayName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>iconType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Icon</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.Icon</implements>
+	</meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_1_4.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_1_4.xsd
new file mode 100644
index 0000000000..2e416c7371
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_1_4.xsd
@@ -0,0 +1,326 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="1.4">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)application_1_4.xsds	1.13 02/11/03
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2003-2010 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Oracle in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the application 1.4 deployment
+	descriptor.  The deployment descriptor must be named
+	"META-INF/application.xml" in the application's ear file.
+	All application deployment descriptors must indicate
+	the application schema by using the J2EE namespace:
+
+	http://java.sun.com/xml/ns/j2ee
+
+	and indicate the version of the schema by
+	using the version element as shown below:
+
+	    <application xmlns="http://java.sun.com/xml/ns/j2ee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+		http://java.sun.com/xml/ns/j2ee/application_1_4.xsd"
+	      version="1.4">
+	      ...
+	    </application>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for J2EE
+	namespace with the following location:
+
+	http://java.sun.com/xml/ns/j2ee/application_1_4.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all J2EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - 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.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
+
+
+<!-- **************************************************** -->
+
+
+  <xsd:element name="application" type="j2ee:applicationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The application element is the root element of a J2EE
+	application deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:unique name="context-root-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The context-root element content must be unique
+	  in the ear.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:module/j2ee:web"/>
+      <xsd:field    xpath="j2ee:context-root"/>
+    </xsd:unique>
+
+    <xsd:unique name="security-role-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The security-role-name element content
+	  must be unique in the ear.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:security-role"/>
+      <xsd:field    xpath="j2ee:role-name"/>
+    </xsd:unique>
+
+  </xsd:element>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="applicationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The applicationType defines the structure of the
+	application.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="module"
+		   type="j2ee:moduleType"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The application deployment descriptor must have one
+	    module element for each J2EE module in the
+	    application package. A module element is defined
+	    by moduleType definition.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="security-role"
+		   type="j2ee:security-roleType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="j2ee:dewey-versionType"
+		   fixed="1.4"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The required value for the version is 1.4.
+
+	</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="moduleType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The moduleType defines a single J2EE module and contains a
+	connector, ejb, java, or web element, which indicates the
+	module type and contains a path to the module file, and an
+	optional alt-dd element, which specifies an optional URI to
+	the post-assembly version of the deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:choice>
+	<xsd:element name="connector"
+		     type="j2ee:pathType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The connector element specifies the URI of a
+	      resource adapter archive file, relative to the
+	      top level of the application package.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="ejb"
+		     type="j2ee:pathType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb element specifies the URI of an ejb-jar,
+	      relative to the top level of the application
+	      package.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="java"
+		     type="j2ee:pathType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The java element specifies the URI of a java
+	      application client module, relative to the top
+	      level of the application package.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="web"
+		     type="j2ee:webType"/>
+      </xsd:choice>
+      <xsd:element name="alt-dd"
+		   type="j2ee:pathType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The alt-dd element specifies an optional URI to the
+	    post-assembly version of the deployment descriptor
+	    file for a particular J2EE module.  The URI must
+	    specify the full pathname of the deployment
+	    descriptor file relative to the application's root
+	    directory. If alt-dd is not specified, the deployer
+	    must read the deployment descriptor from the default
+	    location and file name required by the respective
+	    component specification.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="webType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The webType defines the web-uri and context-root of
+	a web application module.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="web-uri"
+		   type="j2ee:pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The web-uri element specifies the URI of a web
+	    application file, relative to the top level of the
+	    application package.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="context-root"
+		   type="j2ee:string">
+
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The context-root element specifies the context root
+	    of a web application.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_5.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_5.mdd
new file mode 100644
index 0000000000..d68435f483
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_5.mdd
@@ -0,0 +1,129 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2006, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>application</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Application</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Application</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+               </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>moduleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Module</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Module</implements>
+        <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-roleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SecurityRole</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRole</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>pathType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Path</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>descriptionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Description</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdStringType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>XsdString</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>role-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>RoleName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>webType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Web</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Web</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+                <user-code>
+                    public String getWebUriId() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.application.Application.VERSION_1_4);
+                    }
+                    public void setWebUriId(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.application.Application.VERSION_1_4);
+                    }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>string</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>String</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>display-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>DisplayName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>iconType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Icon</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.Icon</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_5.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_5.xsd
new file mode 100644
index 0000000000..0cddfa37dd
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_5.xsd
@@ -0,0 +1,344 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/javaee"
+	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="5">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)application_5.xsds	1.17 08/05/05
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2003-2010 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Oracle in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the application 5 deployment
+	descriptor.  The deployment descriptor must be named
+	"META-INF/application.xml" in the application's ear file.
+	All application deployment descriptors must indicate
+	the application schema by using the Java EE namespace:
+
+	http://java.sun.com/xml/ns/javaee
+
+	and indicate the version of the schema by
+	using the version element as shown below:
+
+	    <application xmlns="http://java.sun.com/xml/ns/javaee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+		http://java.sun.com/xml/ns/javaee/application_5.xsd"
+	      version="5">
+	      ...
+	    </application>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for Java EE
+	namespace with the following location:
+
+	http://java.sun.com/xml/ns/javaee/application_5.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - 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.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_5.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="application" type="javaee:applicationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The application element is the root element of a Java EE
+	application deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:unique name="context-root-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The context-root element content must be unique
+	  in the ear.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:module/javaee:web"/>
+      <xsd:field    xpath="javaee:context-root"/>
+    </xsd:unique>
+
+    <xsd:unique name="security-role-uniqueness">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The security-role-name element content
+	  must be unique in the ear.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:security-role"/>
+      <xsd:field    xpath="javaee:role-name"/>
+    </xsd:unique>
+
+  </xsd:element>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="applicationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The applicationType defines the structure of the
+	application.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="module"
+		   type="javaee:moduleType"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The application deployment descriptor must have one
+	    module element for each Java EE module in the
+	    application package. A module element is defined
+	    by moduleType definition.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="security-role"
+		   type="javaee:security-roleType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="library-directory"
+		   type="javaee:pathType"
+		   minOccurs="0"
+		   maxOccurs="1">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The library-directory element specifies the pathname
+	    of a directory within the application package, relative
+	    to the top level of the application package.  All files
+	    named "*.jar" in this directory must be made available
+	    in the class path of all components included in this
+	    application package.  If this element isn't specified,
+	    the directory named "lib" is searched.  An empty element
+	    may be used to disable searching.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="javaee:dewey-versionType"
+		   fixed="5"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The required value for the version is 5.
+
+	</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="moduleType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The moduleType defines a single Java EE module and contains a
+	connector, ejb, java, or web element, which indicates the
+	module type and contains a path to the module file, and an
+	optional alt-dd element, which specifies an optional URI to
+	the post-assembly version of the deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:choice>
+	<xsd:element name="connector"
+		     type="javaee:pathType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The connector element specifies the URI of a
+	      resource adapter archive file, relative to the
+	      top level of the application package.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="ejb"
+		     type="javaee:pathType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb element specifies the URI of an ejb-jar,
+	      relative to the top level of the application
+	      package.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="java"
+		     type="javaee:pathType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The java element specifies the URI of a java
+	      application client module, relative to the top
+	      level of the application package.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="web"
+		     type="javaee:webType"/>
+      </xsd:choice>
+      <xsd:element name="alt-dd"
+		   type="javaee:pathType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The alt-dd element specifies an optional URI to the
+	    post-assembly version of the deployment descriptor
+	    file for a particular Java EE module.  The URI must
+	    specify the full pathname of the deployment
+	    descriptor file relative to the application's root
+	    directory. If alt-dd is not specified, the deployer
+	    must read the deployment descriptor from the default
+	    location and file name required by the respective
+	    component specification.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="webType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The webType defines the web-uri and context-root of
+	a web application module.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="web-uri"
+		   type="javaee:pathType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The web-uri element specifies the URI of a web
+	    application file, relative to the top level of the
+	    application package.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="context-root"
+		   type="javaee:string">
+
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The context-root element specifies the context root
+	    of a web application.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_6.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_6.mdd
new file mode 100644
index 0000000000..e2169e657f
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_6.mdd
@@ -0,0 +1,135 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2009, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>application</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Application</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Application</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+                    public void setVersion(java.math.BigDecimal value) {
+                            setAttributeValue(VERSION, value.toString());
+                    }
+                    public java.math.BigDecimal getVersion() {
+                            return new java.math.BigDecimal(getAttributeValue(VERSION));
+                    }
+               </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>moduleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Module</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Module</implements>
+        <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-roleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SecurityRole</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRole</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>pathType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Path</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>descriptionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Description</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdStringType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>XsdString</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>role-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>RoleName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>webType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Web</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Web</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+                <user-code>
+                    public String getWebUriId() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.application.Application.VERSION_1_4);
+                    }
+                    public void setWebUriId(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.application.Application.VERSION_1_4);
+                    }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>string</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>String</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>display-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>DisplayName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>iconType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Icon</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.Icon</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_6.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_6.xsd
new file mode 100644
index 0000000000..c108cb55c4
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_6.xsd
@@ -0,0 +1,405 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://java.sun.com/xml/ns/javaee"
+            xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified"
+            attributeFormDefault="unqualified"
+            version="6">
+  <xsd:annotation>
+    <xsd:documentation>
+
+      $Id$
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2003-2010 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Oracle in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[[
+      This is the XML Schema for the application 6 deployment
+      descriptor.  The deployment descriptor must be named
+      "META-INF/application.xml" in the application's ear file.
+      All application deployment descriptors must indicate
+      the application schema by using the Java EE namespace:
+
+      http://java.sun.com/xml/ns/javaee
+
+      and indicate the version of the schema by
+      using the version element as shown below:
+
+      <application xmlns="http://java.sun.com/xml/ns/javaee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+      	http://java.sun.com/xml/ns/javaee/application_6.xsd"
+      version="6">
+      ...
+      </application>
+
+      The instance documents may indicate the published version of
+      the schema using the xsi:schemaLocation attribute for Java EE
+      namespace with the following location:
+
+      http://java.sun.com/xml/ns/javaee/application_6.xsd
+
+      ]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - 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.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_6.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="application"
+               type="javaee:applicationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The application element is the root element of a Java EE
+        application deployment descriptor.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:unique name="context-root-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The context-root element content must be unique
+          in the ear. 
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:module/javaee:web"/>
+      <xsd:field xpath="javaee:context-root"/>
+    </xsd:unique>
+    <xsd:unique name="security-role-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The security-role-name element content
+          must be unique in the ear.  
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:security-role"/>
+      <xsd:field xpath="javaee:role-name"/>
+    </xsd:unique>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="applicationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The applicationType defines the structure of the
+        application. 
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="application-name"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="initialize-in-order"
+                   type="javaee:generic-booleanType"
+                   minOccurs="0"
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            If initialize-in-order is true, modules must be initialized
+            in the order they're listed in this deployment descriptor,
+            with the exception of application client modules, which can
+            be initialized in any order.
+            If initialize-in-order is not set or set to false, the order
+            of initialization is unspecified and may be product-dependent.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="module"
+                   type="javaee:moduleType"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The application deployment descriptor must have one
+            module element for each Java EE module in the
+            application package. A module element is defined 
+            by moduleType definition. 
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="security-role"
+                   type="javaee:security-roleType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="library-directory"
+                   type="javaee:pathType"
+                   minOccurs="0"
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The library-directory element specifies the pathname
+            of a directory within the application package, relative
+            to the top level of the application package.  All files
+            named "*.jar" in this directory must be made available
+            in the class path of all components included in this
+            application package.  If this element isn't specified,
+            the directory named "lib" is searched.  An empty element
+            may be used to disable searching.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="env-entry"
+                   type="javaee:env-entryType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref"
+                   type="javaee:ejb-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-local-ref"
+                   type="javaee:ejb-local-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:service-refGroup"/>
+      <xsd:element name="resource-ref"
+                   type="javaee:resource-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref"
+                   type="javaee:resource-env-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref"
+                   type="javaee:message-destination-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="persistence-context-ref"
+                   type="javaee:persistence-context-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="persistence-unit-ref"
+                   type="javaee:persistence-unit-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination"
+                   type="javaee:message-destinationType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="data-source"
+                   type="javaee:data-sourceType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+                   type="javaee:dewey-versionType"
+                   fixed="6"
+                   use="required">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The required value for the version is 6.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="moduleType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The moduleType defines a single Java EE module and contains a
+        connector, ejb, java, or web element, which indicates the
+        module type and contains a path to the module file, and an
+        optional alt-dd element, which specifies an optional URI to
+        the post-assembly version of the deployment descriptor.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="connector"
+                     type="javaee:pathType">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The connector element specifies the URI of a
+              resource adapter archive file, relative to the
+              top level of the application package.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="ejb"
+                     type="javaee:pathType">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb element specifies the URI of an ejb-jar,
+              relative to the top level of the application
+              package.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="java"
+                     type="javaee:pathType">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The java element specifies the URI of a java
+              application client module, relative to the top
+              level of the application package.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="web"
+                     type="javaee:webType"/>
+      </xsd:choice>
+      <xsd:element name="alt-dd"
+                   type="javaee:pathType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The alt-dd element specifies an optional URI to the
+            post-assembly version of the deployment descriptor
+            file for a particular Java EE module.  The URI must
+            specify the full pathname of the deployment
+            descriptor file relative to the application's root
+            directory. If alt-dd is not specified, the deployer
+            must read the deployment descriptor from the default
+            location and file name required by the respective
+            component specification.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="webType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The webType defines the web-uri and context-root of
+        a web application module.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="web-uri"
+                   type="javaee:pathType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The web-uri element specifies the URI of a web
+            application file, relative to the top level of the
+            application package.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="context-root"
+                   type="javaee:string">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The context-root element specifies the context root
+            of a web application.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_7.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_7.mdd
new file mode 100644
index 0000000000..0db2269f4a
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_7.mdd
@@ -0,0 +1,135 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2013, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>application</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Application</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Application</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+                    public void setVersion(java.math.BigDecimal value) {
+                            setAttributeValue(VERSION, value.toString());
+                    }
+                    public java.math.BigDecimal getVersion() {
+                            return new java.math.BigDecimal(getAttributeValue(VERSION));
+                    }
+               </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>moduleType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Module</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Module</implements>
+        <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-roleType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>SecurityRole</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRole</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>pathType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Path</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>descriptionType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Description</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdStringType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>XsdString</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>role-nameType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>RoleName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>webType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Web</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.application.Web</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+                <user-code>
+                    public String getWebUriId() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.application.Application.VERSION_1_4);
+                    }
+                    public void setWebUriId(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.application.Application.VERSION_1_4);
+                    }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>string</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>String</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>display-nameType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>DisplayName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>iconType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Icon</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.Icon</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_7.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_7.xsd
new file mode 100644
index 0000000000..3f855da9a1
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/application_7.xsd
@@ -0,0 +1,414 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://xmlns.jcp.org/xml/ns/javaee"
+            xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified"
+            attributeFormDefault="unqualified"
+            version="7">
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+      
+      Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+      
+      The contents of this file are subject to the terms of either the GNU
+      General Public License Version 2 only ("GPL") or the Common Development
+      and Distribution License("CDDL") (collectively, the "License").  You
+      may not use this file except in compliance with the License.  You can
+      obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+      or packager/legal/LICENSE.txt.  See the License for the specific
+      language governing permissions and limitations under the License.
+      
+      When distributing the software, include this License Header Notice in each
+      file and include the License file at packager/legal/LICENSE.txt.
+      
+      GPL Classpath Exception:
+      Oracle designates this particular file as subject to the "Classpath"
+      exception as provided by Oracle in the GPL Version 2 section of the License
+      file that accompanied this code.
+      
+      Modifications:
+      If applicable, add the following below the License Header, with the fields
+      enclosed by brackets [] replaced by your own identifying information:
+      "Portions Copyright [year] [name of copyright owner]"
+      
+      Contributor(s):
+      If you wish your version of this file to be governed by only the CDDL or
+      only the GPL Version 2, indicate your decision by adding "[Contributor]
+      elects to include this software in this distribution under the [CDDL or GPL
+      Version 2] license."  If you don't indicate a single choice of license, a
+      recipient has the option to distribute your version of this file under
+      either the CDDL, the GPL Version 2 or to extend the choice of license to
+      its licensees as provided above.  However, if you add GPL Version 2 code
+      and therefore, elected the GPL Version 2 license, then the option applies
+      only if the new code is made subject to such option by the copyright
+      holder.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[[
+      This is the XML Schema for the application 7 deployment
+      descriptor.  The deployment descriptor must be named
+      "META-INF/application.xml" in the application's ear file.
+      All application deployment descriptors must indicate
+      the application schema by using the Java EE namespace:
+      
+      http://xmlns.jcp.org/xml/ns/javaee
+      
+      and indicate the version of the schema by
+      using the version element as shown below:
+      
+      <application xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee 
+      	http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd"
+      version="7">
+      ...
+      </application>
+      
+      The instance documents may indicate the published version of
+      the schema using the xsi:schemaLocation attribute for Java EE
+      namespace with the following location:
+      
+      http://xmlns.jcp.org/xml/ns/javaee/application_7.xsd
+      
+      ]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+      
+      - 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.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_7.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="application"
+               type="javaee:applicationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The application element is the root element of a Java EE
+        application deployment descriptor.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:unique name="context-root-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The context-root element content must be unique
+          in the ear. 
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:module/javaee:web"/>
+      <xsd:field xpath="javaee:context-root"/>
+    </xsd:unique>
+    <xsd:unique name="security-role-uniqueness">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The security-role-name element content
+          must be unique in the ear.  
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:security-role"/>
+      <xsd:field xpath="javaee:role-name"/>
+    </xsd:unique>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="applicationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The applicationType defines the structure of the
+        application. 
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="application-name"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="initialize-in-order"
+                   type="javaee:generic-booleanType"
+                   minOccurs="0"
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            If initialize-in-order is true, modules must be initialized
+            in the order they're listed in this deployment descriptor,
+            with the exception of application client modules, which can
+            be initialized in any order.
+            If initialize-in-order is not set or set to false, the order
+            of initialization is unspecified and may be product-dependent.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="module"
+                   type="javaee:moduleType"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The application deployment descriptor must have one
+            module element for each Java EE module in the
+            application package. A module element is defined 
+            by moduleType definition. 
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="security-role"
+                   type="javaee:security-roleType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="library-directory"
+                   type="javaee:pathType"
+                   minOccurs="0"
+                   maxOccurs="1">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The library-directory element specifies the pathname
+            of a directory within the application package, relative
+            to the top level of the application package.  All files
+            named "*.jar" in this directory must be made available
+            in the class path of all components included in this
+            application package.  If this element isn't specified,
+            the directory named "lib" is searched.  An empty element
+            may be used to disable searching.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="env-entry"
+                   type="javaee:env-entryType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-ref"
+                   type="javaee:ejb-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-local-ref"
+                   type="javaee:ejb-local-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:service-refGroup"/>
+      <xsd:element name="resource-ref"
+                   type="javaee:resource-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="resource-env-ref"
+                   type="javaee:resource-env-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination-ref"
+                   type="javaee:message-destination-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="persistence-context-ref"
+                   type="javaee:persistence-context-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="persistence-unit-ref"
+                   type="javaee:persistence-unit-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination"
+                   type="javaee:message-destinationType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="data-source"
+                   type="javaee:data-sourceType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="jms-connection-factory"
+                   type="javaee:jms-connection-factoryType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="jms-destination"
+                   type="javaee:jms-destinationType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="mail-session"
+                   type="javaee:mail-sessionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="connection-factory"
+                   type="javaee:connection-factory-resourceType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="administered-object"
+                   type="javaee:administered-objectType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+                   type="javaee:dewey-versionType"
+                   fixed="7"
+                   use="required">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The required value for the version is 7.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="moduleType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The moduleType defines a single Java EE module and contains a
+        connector, ejb, java, or web element, which indicates the
+        module type and contains a path to the module file, and an
+        optional alt-dd element, which specifies an optional URI to
+        the post-assembly version of the deployment descriptor.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:choice>
+        <xsd:element name="connector"
+                     type="javaee:pathType">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The connector element specifies the URI of a
+              resource adapter archive file, relative to the
+              top level of the application package.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="ejb"
+                     type="javaee:pathType">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb element specifies the URI of an ejb-jar,
+              relative to the top level of the application
+              package.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="java"
+                     type="javaee:pathType">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The java element specifies the URI of a java
+              application client module, relative to the top
+              level of the application package.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="web"
+                     type="javaee:webType"/>
+      </xsd:choice>
+      <xsd:element name="alt-dd"
+                   type="javaee:pathType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The alt-dd element specifies an optional URI to the
+            post-assembly version of the deployment descriptor
+            file for a particular Java EE module.  The URI must
+            specify the full pathname of the deployment
+            descriptor file relative to the application's root
+            directory. If alt-dd is not specified, the deployer
+            must read the deployment descriptor from the default
+            location and file name required by the respective
+            component specification.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="webType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The webType defines the web-uri and context-root of
+        a web application module.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="web-uri"
+                   type="javaee:pathType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The web-uri element specifies the URI of a web
+            application file, relative to the top level of the
+            application package.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="context-root"
+                   type="javaee:string">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The context-root element specifies the context root
+            of a web application.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+</xsd:schema>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/datatypes.dtd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/datatypes.dtd
new file mode 100644
index 0000000000..130bc895eb
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/datatypes.dtd
@@ -0,0 +1,250 @@
+<!--
+
+W3C Software and Document Notice and License
+
+This work is being provided by the copyright holders under the following license.
+
+License
+
+By obtaining and/or copying this work, you (the licensee) agree that you have 
+read, understood, and will comply with the following terms and conditions.
+
+Permission to copy, modify, and distribute this work, with or without 
+modification, for any purpose and without fee or royalty is hereby granted, 
+provided that you include the following on ALL copies of the work or portions 
+thereof, including modifications:
+
+- The full text of this NOTICE in a location viewable to users of the 
+  redistributed or derivative work.
+- Any pre-existing intellectual property disclaimers, notices, or terms and 
+  conditions. If none exist, the W3C Software and Document Short Notice should 
+  be included.
+- Notice of any changes or modifications, through a copyright statement on the
+  new code or document such as "This software or document includes material 
+  copied from or derived from [title and URI of the W3C document]. 
+  Copyright © [YEAR] W3C® (MIT, ERCIM, Keio, Beihang)." 
+
+Disclaimers
+
+THIS WORK IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR
+ WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF 
+MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE 
+SOFTWARE OR DOCUMENT WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, 
+TRADEMARKS OR OTHER RIGHTS.
+
+COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR 
+CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENT.
+
+The name and trademarks of copyright holders may NOT be used in advertising or 
+publicity pertaining to the work without specific, written prior permission. 
+Title to copyright in this work will at all times remain with copyright 
+holders.
+
+Changes:
+
+- Added license header
+
+-->
+<!--
+        DTD for XML Schemas: Part 2: Datatypes
+        $Id$
+        Note this DTD is NOT normative, or even definitive. - - the
+        prose copy in the datatypes REC is the definitive version
+        (which shouldn't differ from this one except for this comment
+        and entity expansions, but just in case)
+  -->
+
+<!--
+        This DTD cannot be used on its own, it is intended
+        only for incorporation in XMLSchema.dtd, q.v.
+  -->
+
+<!-- Define all the element names, with optional prefix -->
+<!ENTITY % simpleType "%p;simpleType">
+<!ENTITY % restriction "%p;restriction">
+<!ENTITY % list "%p;list">
+<!ENTITY % union "%p;union">
+<!ENTITY % maxExclusive "%p;maxExclusive">
+<!ENTITY % minExclusive "%p;minExclusive">
+<!ENTITY % maxInclusive "%p;maxInclusive">
+<!ENTITY % minInclusive "%p;minInclusive">
+<!ENTITY % totalDigits "%p;totalDigits">
+<!ENTITY % fractionDigits "%p;fractionDigits">
+<!ENTITY % length "%p;length">
+<!ENTITY % minLength "%p;minLength">
+<!ENTITY % maxLength "%p;maxLength">
+<!ENTITY % enumeration "%p;enumeration">
+<!ENTITY % whiteSpace "%p;whiteSpace">
+<!ENTITY % pattern "%p;pattern">
+
+<!--
+        Customisation entities for the ATTLIST of each element
+        type. Define one of these if your schema takes advantage
+        of the anyAttribute='##other' in the schema for schemas
+  -->
+
+<!ENTITY % simpleTypeAttrs "">
+<!ENTITY % restrictionAttrs "">
+<!ENTITY % listAttrs "">
+<!ENTITY % unionAttrs "">
+<!ENTITY % maxExclusiveAttrs "">
+<!ENTITY % minExclusiveAttrs "">
+<!ENTITY % maxInclusiveAttrs "">
+<!ENTITY % minInclusiveAttrs "">
+<!ENTITY % totalDigitsAttrs "">
+<!ENTITY % fractionDigitsAttrs "">
+<!ENTITY % lengthAttrs "">
+<!ENTITY % minLengthAttrs "">
+<!ENTITY % maxLengthAttrs "">
+<!ENTITY % enumerationAttrs "">
+<!ENTITY % whiteSpaceAttrs "">
+<!ENTITY % patternAttrs "">
+
+<!-- Define some entities for informative use as attribute
+        types -->
+<!ENTITY % URIref "CDATA">
+<!ENTITY % XPathExpr "CDATA">
+<!ENTITY % QName "NMTOKEN">
+<!ENTITY % QNames "NMTOKENS">
+<!ENTITY % NCName "NMTOKEN">
+<!ENTITY % nonNegativeInteger "NMTOKEN">
+<!ENTITY % boolean "(true|false)">
+<!ENTITY % simpleDerivationSet "CDATA">
+<!--
+        #all or space-separated list drawn from derivationChoice
+  -->
+
+<!--
+        Note that the use of 'facet' below is less restrictive
+        than is really intended:  There should in fact be no
+        more than one of each of minInclusive, minExclusive,
+        maxInclusive, maxExclusive, totalDigits, fractionDigits,
+        length, maxLength, minLength within datatype,
+        and the min- and max- variants of Inclusive and Exclusive
+        are mutually exclusive. On the other hand,  pattern and
+        enumeration may repeat.
+  -->
+<!ENTITY % minBound "(%minInclusive; | %minExclusive;)">
+<!ENTITY % maxBound "(%maxInclusive; | %maxExclusive;)">
+<!ENTITY % bounds "%minBound; | %maxBound;">
+<!ENTITY % numeric "%totalDigits; | %fractionDigits;">
+<!ENTITY % ordered "%bounds; | %numeric;">
+<!ENTITY % unordered
+   "%pattern; | %enumeration; | %whiteSpace; | %length; |
+   %maxLength; | %minLength;">
+<!ENTITY % facet "%ordered; | %unordered;">
+<!ENTITY % facetAttr 
+        "value CDATA #REQUIRED
+        id ID #IMPLIED">
+<!ENTITY % fixedAttr "fixed %boolean; #IMPLIED">
+<!ENTITY % facetModel "(%annotation;)?">
+<!ELEMENT %simpleType;
+        ((%annotation;)?, (%restriction; | %list; | %union;))>
+<!ATTLIST %simpleType;
+    name      %NCName; #IMPLIED
+    final     %simpleDerivationSet; #IMPLIED
+    id        ID       #IMPLIED
+    %simpleTypeAttrs;>
+<!-- name is required at top level -->
+<!ELEMENT %restriction; ((%annotation;)?,
+                         (%restriction1; |
+                          ((%simpleType;)?,(%facet;)*)),
+                         (%attrDecls;))>
+<!ATTLIST %restriction;
+    base      %QName;                  #IMPLIED
+    id        ID       #IMPLIED
+    %restrictionAttrs;>
+<!--
+        base and simpleType child are mutually exclusive,
+        one is required.
+
+        restriction is shared between simpleType and
+        simpleContent and complexContent (in XMLSchema.xsd).
+        restriction1 is for the latter cases, when this
+        is restricting a complex type, as is attrDecls.
+  -->
+<!ELEMENT %list; ((%annotation;)?,(%simpleType;)?)>
+<!ATTLIST %list;
+    itemType      %QName;             #IMPLIED
+    id        ID       #IMPLIED
+    %listAttrs;>
+<!--
+        itemType and simpleType child are mutually exclusive,
+        one is required
+  -->
+<!ELEMENT %union; ((%annotation;)?,(%simpleType;)*)>
+<!ATTLIST %union;
+    id            ID       #IMPLIED
+    memberTypes   %QNames;            #IMPLIED
+    %unionAttrs;>
+<!--
+        At least one item in memberTypes or one simpleType
+        child is required
+  -->
+
+<!ELEMENT %maxExclusive; %facetModel;>
+<!ATTLIST %maxExclusive;
+        %facetAttr;
+        %fixedAttr;
+        %maxExclusiveAttrs;>
+<!ELEMENT %minExclusive; %facetModel;>
+<!ATTLIST %minExclusive;
+        %facetAttr;
+        %fixedAttr;
+        %minExclusiveAttrs;>
+
+<!ELEMENT %maxInclusive; %facetModel;>
+<!ATTLIST %maxInclusive;
+        %facetAttr;
+        %fixedAttr;
+        %maxInclusiveAttrs;>
+<!ELEMENT %minInclusive; %facetModel;>
+<!ATTLIST %minInclusive;
+        %facetAttr;
+        %fixedAttr;
+        %minInclusiveAttrs;>
+
+<!ELEMENT %totalDigits; %facetModel;>
+<!ATTLIST %totalDigits;
+        %facetAttr;
+        %fixedAttr;
+        %totalDigitsAttrs;>
+<!ELEMENT %fractionDigits; %facetModel;>
+<!ATTLIST %fractionDigits;
+        %facetAttr;
+        %fixedAttr;
+        %fractionDigitsAttrs;>
+
+<!ELEMENT %length; %facetModel;>
+<!ATTLIST %length;
+        %facetAttr;
+        %fixedAttr;
+        %lengthAttrs;>
+<!ELEMENT %minLength; %facetModel;>
+<!ATTLIST %minLength;
+        %facetAttr;
+        %fixedAttr;
+        %minLengthAttrs;>
+<!ELEMENT %maxLength; %facetModel;>
+<!ATTLIST %maxLength;
+        %facetAttr;
+        %fixedAttr;
+        %maxLengthAttrs;>
+
+<!-- This one can be repeated -->
+<!ELEMENT %enumeration; %facetModel;>
+<!ATTLIST %enumeration;
+        %facetAttr;
+        %enumerationAttrs;>
+
+<!ELEMENT %whiteSpace; %facetModel;>
+<!ATTLIST %whiteSpace;
+        %facetAttr;
+        %fixedAttr;
+        %whiteSpaceAttrs;>
+
+<!-- This one can be repeated -->
+<!ELEMENT %pattern; %facetModel;>
+<!ATTLIST %pattern;
+        %facetAttr;
+        %patternAttrs;>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_2_1.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_2_1.mdd
new file mode 100644
index 0000000000..4fca59ab9c
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_2_1.mdd
@@ -0,0 +1,1222 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2004, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>ejb-jar</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbJar</bean-name>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbJar</implements>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+                    public String getSingleEjbClientJar() {
+                        return getEjbClientJar();
+                    }
+                    public org.netbeans.modules.j2ee.dd.api.ejb.AssemblyDescriptor getSingleAssemblyDescriptor() {
+                        return getAssemblyDescriptor();
+                    }
+                    public org.netbeans.modules.j2ee.dd.api.ejb.Relationships getSingleRelationships() {
+                        return getRelationships();
+                    }
+                    public Object clone() {
+                        org.netbeans.modules.j2ee.dd.api.ejb.EjbJar ejbJar =
+                            (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) super.clone();
+                        ejbJar.setVersion(getVersion());
+                        return ejbJar;
+                    }
+                    // EJB 3.0
+                    public void setInterceptors(org.netbeans.modules.j2ee.dd.api.ejb.Interceptors valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(EjbJar.VERSION_2_1);
+                    }
+                    public org.netbeans.modules.j2ee.dd.api.ejb.Interceptors getInterceptors() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(EjbJar.VERSION_2_1);
+                    }
+                    public org.netbeans.modules.j2ee.dd.api.ejb.Interceptors newInterceptors() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                        throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(EjbJar.VERSION_2_1);
+                    }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>enterprise-beansType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EnterpriseBeans</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.EnterpriseBeans</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.GetAllEjbs</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>relationshipsType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Relationships</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Relationships</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>assembly-descriptorType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>AssemblyDescriptor</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.AssemblyDescriptor</implements>
+	</meta-element>
+	<meta-element>
+		<dtd-name>pathType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Path</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-roleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>SecurityRole</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRole</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-permissionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MethodPermission</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.MethodPermission</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>container-transactionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ContainerTransaction</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.ContainerTransaction</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destinationType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MessageDestination</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.MessageDestination</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                // EJB 3.0
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>exclude-listType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ExcludeList</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.ExcludeList</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>descriptionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Description</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Method</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.Method</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-intfType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MethodIntf</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MethodName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-paramsType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MethodParams</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.MethodParams</implements>
+	</meta-element>
+	<meta-element>
+		<dtd-name>java-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>JavaType</bean-name>
+		<wrapper-class>String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>string</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>String</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>display-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>DisplayName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>iconType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Icon</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.Icon</implements>
+	</meta-element>
+	<meta-element>
+		<dtd-name>trans-attributeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>TransAttribute</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>role-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>RoleName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>emptyType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Empty</bean-name>
+                <wrapper-class>boolean</wrapper-class>
+                <can-be-empty/>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-relationType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbRelation</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbRelation</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-relationship-roleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbRelationshipRole</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbRelationshipRole</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>multiplicityType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Multiplicity</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>relationship-role-sourceType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>RelationshipRoleSource</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.RelationshipRoleSource</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmr-fieldType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>CmrField</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.CmrField</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmr-field-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>CmrFieldType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>session-beanType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>SessionBean</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.Session,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                public String getKeyProperty() { 
+                    return "EjbName"; 
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() { 
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot(); 
+                }
+                // EJB 3.0
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setTimeoutMethod(org.netbeans.modules.j2ee.dd.api.ejb.NamedMethod valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.NamedMethod getTimeoutMethod() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setAroundInvoke(int index, org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke getAroundInvoke(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeAroundInvoke() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setAroundInvoke(org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke[] getAroundInvoke() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addAroundInvoke(org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeAroundInvoke(org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPersistenceContextRef(int index, org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef getPersistenceContextRef(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizePersistenceContextRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPersistenceContextRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef[] getPersistenceContextRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addPersistenceContextRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removePersistenceContextRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPersistenceUnitRef(int index, org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef getPersistenceUnitRef(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizePersistenceUnitRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPersistenceUnitRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef[] getPersistenceUnitRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addPersistenceUnitRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removePersistenceUnitRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPostConstruct(int index, org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback getPostConstruct(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizePostConstruct() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPostConstruct(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] getPostConstruct() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addPostConstruct(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removePostConstruct(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPreDestroy(int index, org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback getPreDestroy(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizePreDestroy() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPreDestroy(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] getPreDestroy() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addPreDestroy(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removePreDestroy(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.NamedMethod newNamedMethod() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke newAroundInvoke() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef newPersistenceContextRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef newPersistenceUnitRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback newLifecycleCallback() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                // EJB 3.0
+                public void setBusinessLocal(int index, String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getBusinessLocal(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeBusinessLocal() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setBusinessLocal(String[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String[] getBusinessLocal() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addBusinessLocal(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeBusinessLocal(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setBusinessRemote(int index, String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getBusinessRemote(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeBusinessRemote() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setBusinessRemote(String[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String[] getBusinessRemote() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addBusinessRemote(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeBusinessRemote(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInitMethod(int index, org.netbeans.modules.j2ee.dd.api.ejb.InitMethod valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.InitMethod getInitMethod(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeInitMethod() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInitMethod(org.netbeans.modules.j2ee.dd.api.ejb.InitMethod[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.InitMethod[] getInitMethod() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addInitMethod(org.netbeans.modules.j2ee.dd.api.ejb.InitMethod valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeInitMethod(org.netbeans.modules.j2ee.dd.api.ejb.InitMethod valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setRemoveMethod(int index, org.netbeans.modules.j2ee.dd.api.ejb.RemoveMethod valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.RemoveMethod getRemoveMethod(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeRemoveMethod() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setRemoveMethod(org.netbeans.modules.j2ee.dd.api.ejb.RemoveMethod[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.RemoveMethod[] getRemoveMethod() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addRemoveMethod(org.netbeans.modules.j2ee.dd.api.ejb.RemoveMethod valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeRemoveMethod(org.netbeans.modules.j2ee.dd.api.ejb.RemoveMethod valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPostActivate(int index, org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback getPostActivate(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizePostActivate() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPostActivate(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] getPostActivate() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addPostActivate(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removePostActivate(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPrePassivate(int index, org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback getPrePassivate(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizePrePassivate() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPrePassivate(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] getPrePassivate() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addPrePassivate(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removePrePassivate(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.InitMethod newInitMethod() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.RemoveMethod newRemoveMethod() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                //EJB 3.1
+                public boolean isLocalBean() {
+                    return false;
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>entity-beanType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+                <bean-name>EntityBean</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.Entity,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                public String getKeyProperty() { 
+                    return "EjbName"; 
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() { 
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot(); 
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-driven-beanType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MessageDrivenBean</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.MessageDriven,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() { 
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot(); 
+                }
+                // not needed for with 2.1
+                public String getKeyProperty() { 
+                    return "EjbName"; 
+                }
+                // EJB 3.0
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setTimeoutMethod(org.netbeans.modules.j2ee.dd.api.ejb.NamedMethod valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.NamedMethod getTimeoutMethod() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setAroundInvoke(int index, org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke getAroundInvoke(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeAroundInvoke() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setAroundInvoke(org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke[] getAroundInvoke() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addAroundInvoke(org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeAroundInvoke(org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPersistenceContextRef(int index, org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef getPersistenceContextRef(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizePersistenceContextRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPersistenceContextRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef[] getPersistenceContextRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addPersistenceContextRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removePersistenceContextRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPersistenceUnitRef(int index, org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef getPersistenceUnitRef(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizePersistenceUnitRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPersistenceUnitRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef[] getPersistenceUnitRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addPersistenceUnitRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removePersistenceUnitRef(org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPostConstruct(int index, org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback getPostConstruct(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizePostConstruct() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPostConstruct(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] getPostConstruct() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addPostConstruct(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removePostConstruct(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPreDestroy(int index, org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback getPreDestroy(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizePreDestroy() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setPreDestroy(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback[] getPreDestroy() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addPreDestroy(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removePreDestroy(org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.NamedMethod newNamedMethod() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke newAroundInvoke() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef newPersistenceContextRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef newPersistenceUnitRef() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback newLifecycleCallback() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-classType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>fully-qualified-classType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>FullyQualifiedClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>transaction-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>TransactionType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MessageDestinationType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-linkType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MessageDestinationLink</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>activation-configType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ActivationConfig</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.ActivationConfig</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-identityType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+                <bean-name>SecurityIdentity</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.SecurityIdentity</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>run-asType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>RunAs</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.RunAs</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>env-entryType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EnvEntry</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.EnvEntry</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+                <user-code>
+                // EJB 3.0
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbRef</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.EjbRef</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+                <user-code>
+                // EJB 3.0
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-local-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbLocalRef</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.EjbLocalRef</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+                <user-code>
+                // EJB 3.0
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>resource-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ResourceRef</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.ResourceRef</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+                <user-code>
+                // EJB 3.0
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>resource-env-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ResourceEnvRef</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.ResourceEnvRef</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+                <user-code>
+                // EJB 3.0
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MessageDestinationRef</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.MessageDestinationRef</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+                <user-code>
+                // EJB 3.0
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int removeInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int addInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(int index, org.netbeans.modules.j2ee.dd.api.common.InjectionTarget valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget getInjectionTarget(int index) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setInjectionTarget(org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public int sizeInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget newInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.InjectionTarget[] getInjectionTarget() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>jndi-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>JndiName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-usageType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>MessageDestinationUsage</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>res-authType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ResAuth</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>res-sharing-scopeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ResSharingScope</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ServiceRef</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRef</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                // EJB 3.0
+                public void setMappedName(String value) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public String getMappedName() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public void setHandlerChains(org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains valueInterface) throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains getHandlerChains() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                public org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains newServiceRefHandlerChains() throws org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException {
+                    throw new org.netbeans.modules.j2ee.dd.api.common.VersionNotSupportedException(org.netbeans.modules.j2ee.dd.api.ejb.EjbJar.VERSION_2_1);
+                }
+                </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdAnyURIType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>XsdAnyURI</bean-name>
+		<wrapper-class>java.net.URI</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdQNameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>XsdQName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>port-component-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>PortComponentRef</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.PortComponentRef</implements>
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_handlerType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ServiceRefHandler</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>param-valueType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>InitParam</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.InitParam</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdStringType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>XsdString</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-ref-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbRefName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-ref-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbRefType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>local-homeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>LocalHome</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>localType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Local</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-linkType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EjbLink</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>homeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Home</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>remoteType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Remote</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>env-entry-type-valuesType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>EnvEntryTypeValues</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>activation-config-propertyType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ActivationConfigProperty</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.ActivationConfigProperty</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>PersistenceType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>true-falseType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>TrueFalse</bean-name>
+		<wrapper-class>boolean</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmp-versionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>CmpVersion</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>java-identifierType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>JavaIdentifier</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmp-fieldType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>CmpField</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.CmpField</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-role-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>SecurityRoleRef</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRoleRef</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>queryType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>Query</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.Query</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanSingle</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>query-methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>QueryMethod</bean-name>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.QueryMethod</implements>
+	</meta-element>
+	<meta-element>
+		<dtd-name>result-type-mappingType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>ResultTypeMapping</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>session-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/j2ee</namespace>
+		<bean-name>SessionType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_2_1.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_2_1.xsd
new file mode 100644
index 0000000000..0fd0a3ae12
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_2_1.xsd
@@ -0,0 +1,2219 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:j2ee="http://java.sun.com/xml/ns/j2ee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="2.1">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)ejb-jar_2_1.xsds	1.23 08/01/03
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2003-2010 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Oracle in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the EJB 2.1 deployment descriptor.
+	The deployment descriptor must be named "META-INF/ejb-jar.xml" in
+	the EJB's jar file.  All EJB deployment descriptors must indicate
+	the ejb-jar schema by using the J2EE namespace:
+
+	http://java.sun.com/xml/ns/j2ee
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+		  http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
+	      version="2.1">
+	      ...
+	    </ejb-jar>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for the
+	J2EE namespace with the following location:
+
+	http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all J2EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - 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.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="j2ee_1_4.xsd"/>
+
+
+<!-- **************************************************** -->
+
+
+  <xsd:element name="ejb-jar" type="j2ee:ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This is the root of the ejb-jar deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:key name="ejb-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-name element contains the name of an enterprise
+	  bean. The name must be unique within the ejb-jar file.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:enterprise-beans/*"/>
+      <xsd:field    xpath="j2ee:ejb-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="ejb-name-references"
+		refer="j2ee:ejb-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  relationship-role-source must be to a specific ejb-name
+	  defined within the scope of enterprise-beans element.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector
+	   xpath=".//j2ee:ejb-relationship-role/j2ee:relationship-role-source"/>
+      <xsd:field
+	   xpath="j2ee:ejb-name"/>
+    </xsd:keyref>
+
+    <xsd:key name="role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  A role-name-key is specified to allow the references
+	  from the security-role-refs.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:assembly-descriptor/j2ee:security-role"/>
+      <xsd:field    xpath="j2ee:role-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="role-name-references"
+		refer="j2ee:role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  security-role-ref to a specified role-name.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="j2ee:enterprise-beans/*/j2ee:security-role-ref"/>
+      <xsd:field    xpath="j2ee:role-link"/>
+    </xsd:keyref>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-config-propertyType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The activation-config-propertyType contains a name/value
+	configuration property pair for a message-driven bean.
+
+	The properties that are recognized for a particular
+	message-driven bean are determined by the messaging type.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="activation-config-property-name"
+		   type="j2ee:xsdStringType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The activation-config-property-name element contains
+	    the name for an activation configuration property of
+	    a message-driven bean.
+
+	    For JMS message-driven beans, the following property
+	    names are recognized: acknowledgeMode,
+	    messageSelector, destinationType, subscriptionDurability
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="activation-config-property-value"
+		   type="j2ee:xsdStringType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The activation-config-property-value element
+	    contains the value for an activation configuration
+	    property of a message-driven bean.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The activation-configType defines information about the
+	expected configuration properties of the message-driven bean
+	in its operational environment. This may include information
+	about message acknowledgement, message selector, expected
+	destination type, etc.
+
+	The configuration information is expressed in terms of
+	name/value configuration properties.
+
+	The properties that are recognized for a particular
+	message-driven bean are determined by the messaging type.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="activation-config-property"
+		   type="j2ee:activation-config-propertyType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="assembly-descriptorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The assembly-descriptorType defines
+	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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="security-role"
+		   type="j2ee:security-roleType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method-permission"
+		   type="j2ee:method-permissionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="container-transaction"
+		   type="j2ee:container-transactionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination"
+		   type="j2ee:message-destinationType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="exclude-list"
+		   type="j2ee:exclude-listType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmp-fieldType describes a container-managed field. The
+	cmp-fieldType contains an optional description of the field,
+	and the name of the field.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="field-name"
+		   type="j2ee:java-identifierType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmp-versionType specifies the version of an entity bean
+	with container-managed persistence. It is used by
+	cmp-version elements.
+
+	The value must be one of the two following:
+
+	    1.x
+	    2.x
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="1.x"/>
+	<xsd:enumeration value="2.x"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-field-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmr-field-type element specifies the class of a
+	collection-valued logical relationship field in the entity
+	bean class. The value of an element using cmr-field-typeType
+	must be either: java.util.Collection or java.util.Set.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="java.util.Collection"/>
+	<xsd:enumeration value="java.util.Set"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmr-fieldType 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="cmr-field-name"
+		   type="j2ee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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".
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmr-field-type"
+		   type="j2ee:cmr-field-typeType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="container-transactionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The container-transactionType specifies how the container
+	must manage transaction scopes for the enterprise bean's
+	method invocations. It defines an optional description, a
+	list of method elements, and a transaction attribute. The
+	transaction attribute is to be applied to all the specified
+	methods.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+		   type="j2ee:methodType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="trans-attribute"
+		   type="j2ee:trans-attributeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-classType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-classType contains the fully-qualified name of the
+	  enterprise bean's class. It is used by ejb-class elements.
+
+	  Example:
+
+	      <ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-jarType defines the root element of the EJB
+	deployment descriptor. It contains
+
+	    - an optional description of the ejb-jar file
+	    - an optional display name
+	    - an optional icon that contains a small and a 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="enterprise-beans"
+		   type="j2ee:enterprise-beansType"/>
+      <xsd:element name="relationships"
+		   type="j2ee:relationshipsType"
+		   minOccurs="0">
+	<xsd:unique name="relationship-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-relation-name contains the name of a
+	      relation. The name must be unique within
+	      relationships.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-relation"/>
+	  <xsd:field    xpath="j2ee:ejb-relation-name"/>
+	</xsd:unique>
+      </xsd:element>
+      <xsd:element name="assembly-descriptor"
+		   type="j2ee:assembly-descriptorType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Providing an assembly-descriptor in the deployment
+	    descriptor is optional for the ejb-jar file
+	    producer.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-client-jar"
+		   type="j2ee:pathType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      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.
+
+	      Example:
+
+		  <ejb-client-jar>employee_service_client.jar
+		  </ejb-client-jar>
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="j2ee:dewey-versionType"
+		   fixed="2.1"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The version specifies the version of the
+	  EJB specification that the instance document must
+	  comply with. This information enables deployment tools
+	  to validate a particular EJB Deployment
+	  Descriptor with respect to a specific version of the EJB
+	  schema.
+
+	</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-nameType specifies an enterprise bean's name. It is
+	  used by ejb-name elements. 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 used
+	  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 must conform to the lexical
+	  rules for an NMTOKEN.
+
+	  Example:
+
+	  <ejb-name>EmployeeService</ejb-name>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-relationType describes a relationship between two
+	entity beans with container-managed persistence.  It is used
+	by ejb-relation elements. It 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation-name"
+		   type="j2ee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The ejb-relation-name element provides a unique name
+	    within the ejb-jar file for a relationship.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-relationship-role"
+		   type="j2ee:ejb-relationship-roleType"/>
+      <xsd:element name="ejb-relationship-role"
+		   type="j2ee:ejb-relationship-roleType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationship-roleType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-relationship-roleType describes a role within a
+	  relationship. There are two roles in each relationship.
+
+	  The ejb-relationship-roleType 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.
+
+	  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>
+	  </ejb-relation>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relationship-role-name"
+		   type="j2ee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="multiplicity"
+		   type="j2ee:multiplicityType"/>
+      <xsd:element name="cascade-delete"
+		   type="j2ee:emptyType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="relationship-role-source"
+		   type="j2ee:relationship-role-sourceType"/>
+      <xsd:element name="cmr-field"
+		   type="j2ee:cmr-fieldType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="enterprise-beansType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The enterprise-beansType declares one or more enterprise
+	beans. Each bean can be a session, entity or message-driven
+	bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:choice maxOccurs="unbounded">
+      <xsd:element name="session"
+		   type="j2ee:session-beanType">
+	<xsd:unique name="session-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-local-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-env-ref"/>
+	  <xsd:field    xpath="j2ee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:message-destination-ref"/>
+	  <xsd:field    xpath="j2ee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      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 component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-ref"/>
+	  <xsd:field    xpath="j2ee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:env-entry"/>
+	  <xsd:field    xpath="j2ee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+      <xsd:element name="entity"
+		   type="j2ee:entity-beanType">
+	<xsd:unique name="entity-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-local-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-env-ref"/>
+	  <xsd:field    xpath="j2ee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:message-destination-ref"/>
+	  <xsd:field    xpath="j2ee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      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 component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-ref"/>
+	  <xsd:field    xpath="j2ee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:env-entry"/>
+	  <xsd:field    xpath="j2ee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+      <xsd:element name="message-driven"
+		   type="j2ee:message-driven-beanType">
+	<xsd:unique name="messaged-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-local-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:ejb-ref"/>
+	  <xsd:field    xpath="j2ee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-env-ref"/>
+	  <xsd:field    xpath="j2ee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:message-destination-ref"/>
+	  <xsd:field    xpath="j2ee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      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 component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:resource-ref"/>
+	  <xsd:field    xpath="j2ee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="j2ee:env-entry"/>
+	  <xsd:field    xpath="j2ee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+    </xsd:choice>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="entity-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The entity-beanType declares an entity bean. The declaration
+	consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a 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 bean's web
+	      service 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 declaration of the bean's message
+	      destination 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="j2ee:ejb-nameType"/>
+      <xsd:element name="home"
+		   type="j2ee:homeType"
+		   minOccurs="0"/>
+      <xsd:element name="remote"
+		   type="j2ee:remoteType"
+		   minOccurs="0"/>
+      <xsd:element name="local-home"
+		   type="j2ee:local-homeType"
+		   minOccurs="0"/>
+      <xsd:element name="local"
+		   type="j2ee:localType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-class"
+		   type="j2ee:ejb-classType"/>
+      <xsd:element name="persistence-type"
+		   type="j2ee:persistence-typeType"/>
+      <xsd:element name="prim-key-class"
+		   type="j2ee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="reentrant"
+		   type="j2ee:true-falseType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The reentrant element specifies whether an entity
+	    bean is reentrant or not.
+
+	    The reentrant element must be one of the two
+	    following: true or false
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmp-version"
+		   type="j2ee:cmp-versionType"
+		   minOccurs="0"/>
+      <xsd:element name="abstract-schema-name"
+		   type="j2ee:java-identifierType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmp-field"
+		   type="j2ee:cmp-fieldType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="primkey-field"
+		   type="j2ee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-role-ref"
+		   type="j2ee:security-role-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="security-identity"
+		   type="j2ee:security-identityType"
+		   minOccurs="0"/>
+      <xsd:element name="query"
+		   type="j2ee:queryType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="exclude-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The exclude-listType 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+		   type="j2ee:methodType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-driven-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The message-driven element declares a message-driven
+	bean. The declaration consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a large
+	      icon file name.
+	    - a name assigned to the enterprise bean in
+	      the deployment descriptor
+	    - the message-driven bean's implementation class
+	    - an optional declaration of the bean's messaging
+	      type
+	    - the message-driven bean's transaction management type
+	    - an optional declaration of the bean's
+	      message-destination-type
+	    - an optional declaration of the bean's
+	      message-destination-link
+	    - an optional declaration of the message-driven bean's
+	      activation configuration properties
+	    - 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 bean's web service
+	      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 declaration of the bean's message
+	      destination references
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="j2ee:ejb-nameType"/>
+      <xsd:element name="ejb-class"
+		   type="j2ee:ejb-classType"/>
+      <xsd:element name="messaging-type"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The messaging-type element specifies the message
+	    listener interface of the message-driven bean. If
+	    the messaging-type element is not specified, it is
+	    assumed to be javax.jms.MessageListener.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="transaction-type"
+		   type="j2ee:transaction-typeType"/>
+      <xsd:element name="message-destination-type"
+		   type="j2ee:message-destination-typeType"
+		   minOccurs="0"/>
+      <xsd:element name="message-destination-link"
+		   type="j2ee:message-destination-linkType"
+		   minOccurs="0"/>
+      <xsd:element name="activation-config"
+		   type="j2ee:activation-configType"
+		   minOccurs="0"/>
+      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-identity"
+		   type="j2ee:security-identityType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-intfType">
+
+    <xsd:annotation>
+      <xsd:documentation>
+
+	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 home and
+	component interfaces (e.g, in both an enterprise bean's
+	remote and local interfaces or in both an enterprise bean's
+	home and remote interfaces, etc.); the component and web
+	service endpoint interfaces, and so on.
+
+	The method-intf element must be one of the following:
+
+	    Home
+	    Remote
+	    LocalHome
+	    Local
+	    ServiceEndpoint
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="Home"/>
+	<xsd:enumeration value="Remote"/>
+	<xsd:enumeration value="LocalHome"/>
+	<xsd:enumeration value="Local"/>
+	<xsd:enumeration value="ServiceEndpoint"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-nameType 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 client view interfaces.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-paramsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-paramsType defines a list of the
+	fully-qualified Java type names of the method parameters.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-param"
+		   type="j2ee:java-typeType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The method-param element contains a primitive
+	    or a fully-qualified Java type name of a method
+	    parameter.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-permissionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-permissionType specifies that one or more
+	security roles are allowed to invoke one or more enterprise
+	bean methods. The method-permissionType 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-permissionType
+	must be defined in the security-role elements of the
+	deployment descriptor, and the methods must be methods
+	defined in the enterprise bean's home, component and/or web
+	service endpoint interfaces.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="role-name"
+		     type="j2ee:role-nameType"
+		     maxOccurs="unbounded"/>
+	<xsd:element name="unchecked"
+		     type="j2ee:emptyType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The unchecked element specifies that a method is
+	      not checked for authorization by the container
+	      prior to invocation of the method.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+      <xsd:element name="method"
+		   type="j2ee:methodType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The methodType is used to denote a method of an enterprise
+	  bean's home, component, and/or web service endpoint
+	  interface, or, in the case of a message-driven bean, the
+	  bean's message listener method, or a set of such
+	  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 the home, component, and/or web service endpoint
+	  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 using methodType element
+	  within a method element:
+
+	  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, component, and/or web
+	     service endpoint 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.
+
+	  Examples:
+
+	  Style 1: The following method element refers to all the
+	  methods of the EmployeeService bean's home, component,
+	  and/or web service endpoint 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, component, and/or
+	  web service endpoint 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 th ree 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>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+		   type="j2ee:ejb-nameType"/>
+      <xsd:element name="method-intf"
+		   type="j2ee:method-intfType"
+		   minOccurs="0">
+      </xsd:element>
+      <xsd:element name="method-name"
+		   type="j2ee:method-nameType"/>
+      <xsd:element name="method-params"
+		   type="j2ee:method-paramsType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="multiplicityType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The multiplicityType describes the multiplicity of the
+	role that participates in a relation.
+
+	The value must be one of the two following:
+
+	    One
+	    Many
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="One"/>
+	<xsd:enumeration value="Many"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The persistence-typeType specifies an entity bean's persistence
+	management type.
+
+	The persistence-type element must be one of the two following:
+
+	    Bean
+	    Container
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="Bean"/>
+	<xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="query-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The query-method specifies 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.
+
+	  It is used by the query-method element.
+
+	  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>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-name"
+		   type="j2ee:method-nameType"/>
+      <xsd:element name="method-params"
+		   type="j2ee:method-paramsType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="queryType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The queryType defines 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".
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType" minOccurs="0"/>
+      <xsd:element name="query-method"
+		   type="j2ee:query-methodType"/>
+      <xsd:element name="result-type-mapping"
+		   type="j2ee:result-type-mappingType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-ql"
+		   type="j2ee:xsdStringType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="relationship-role-sourceType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The relationship-role-sourceType designates the source of a
+	role that participates in a relationship. A
+	relationship-role-sourceType is used by
+	relationship-role-source elements to uniquely identify an
+	entity bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+		   type="j2ee:ejb-nameType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="relationshipsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The relationshipsType describes the relationships in
+	which entity beans with container-managed persistence
+	participate. The relationshipsType contains an optional
+	description; and a list of ejb-relation elements, which
+	specify the container managed relationships.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation"
+		   type="j2ee:ejb-relationType"
+		   maxOccurs="unbounded">
+
+	<xsd:unique name="role-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-relationship-role-name contains the name of a
+	      relationship role. The name must be unique within
+	      a relationship, but can be reused in different
+	      relationships.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector
+	       xpath=".//j2ee:ejb-relationship-role-name"/>
+	  <xsd:field
+	       xpath="."/>
+	</xsd:unique>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="result-type-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The result-type-mappingType 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 value must be one of the following:
+
+	    Local
+	    Remote
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="Local"/>
+	<xsd:enumeration value="Remote"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-identityType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The security-identityType 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="j2ee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="use-caller-identity"
+		     type="j2ee:emptyType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      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.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="run-as"
+		     type="j2ee:run-asType"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-beanType declares an session bean. The
+	declaration consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a 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 name of the session bean's web service endpoint
+	      interface, 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 bean's web
+	      service 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 declaration of the bean's message
+	      destination 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.
+
+	The service-endpoint element may only be specified if the
+	bean is a stateless session bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="j2ee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="j2ee:ejb-nameType"/>
+      <xsd:element name="home"
+		   type="j2ee:homeType"
+		   minOccurs="0"/>
+      <xsd:element name="remote"
+		   type="j2ee:remoteType"
+		   minOccurs="0"/>
+      <xsd:element name="local-home"
+		   type="j2ee:local-homeType"
+		   minOccurs="0"/>
+      <xsd:element name="local"
+		   type="j2ee:localType"
+		   minOccurs="0"/>
+      <xsd:element name="service-endpoint"
+		   type="j2ee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The service-endpoint element contains the
+	    fully-qualified name of the enterprise bean's web
+	    service endpoint interface. The service-endpoint
+	    element may only be specified for a stateless
+	    session bean. The specified interface must be a
+	    valid JAX-RPC service endpoint interface.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-class"
+		   type="j2ee:ejb-classType"/>
+      <xsd:element name="session-type"
+		   type="j2ee:session-typeType"/>
+      <xsd:element name="transaction-type"
+		   type="j2ee:transaction-typeType"/>
+      <xsd:group ref="j2ee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-role-ref"
+		   type="j2ee:security-role-refType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="security-identity"
+		   type="j2ee:security-identityType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-typeType describes whether the session bean is a
+	stateful session or stateless session. It is used by
+	session-type elements.
+
+	The value must be one of the two following:
+
+	    Stateful
+	    Stateless
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="Stateful"/>
+	<xsd:enumeration value="Stateless"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="trans-attributeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The trans-attributeType specifies how the container must
+	manage the transaction boundaries when delegating a method
+	invocation to an enterprise bean's business method.
+
+	The value must be one of the following:
+
+	    NotSupported
+	    Supports
+	    Required
+	    RequiresNew
+	    Mandatory
+	    Never
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="NotSupported"/>
+	<xsd:enumeration value="Supports"/>
+	<xsd:enumeration value="Required"/>
+	<xsd:enumeration value="RequiresNew"/>
+	<xsd:enumeration value="Mandatory"/>
+	<xsd:enumeration value="Never"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="transaction-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The transaction-typeType specifies an enterprise bean's
+	transaction management type.
+
+	The transaction-type must be one of the two following:
+
+	    Bean
+	    Container
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="j2ee:string">
+	<xsd:enumeration value="Bean"/>
+	<xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_0.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_0.mdd
new file mode 100644
index 0000000000..894bdc4abb
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_0.mdd
@@ -0,0 +1,709 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2006, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>ejb-jar</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbJar</bean-name>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbJar</implements>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+                    public String getSingleEjbClientJar() {
+                        return getEjbClientJar();
+                    }
+                    public org.netbeans.modules.j2ee.dd.api.ejb.AssemblyDescriptor getSingleAssemblyDescriptor() {
+                        return getAssemblyDescriptor(); 
+                    } 
+                    public org.netbeans.modules.j2ee.dd.api.ejb.Relationships getSingleRelationships() { 
+                        return getRelationships(); 
+                    } 
+                    public Object clone() {
+                        org.netbeans.modules.j2ee.dd.api.ejb.EjbJar ejbJar =
+                            (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) super.clone();
+                        ejbJar.setVersion(getVersion());
+                        return ejbJar;
+                    }
+               </user-code> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>enterprise-beansType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EnterpriseBeans</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class> 
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EnterpriseBeans</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.GetAllEjbs</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptorsType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Interceptors</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Interceptors</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>relationshipsType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Relationships</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Relationships</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>assembly-descriptorType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>AssemblyDescriptor</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.AssemblyDescriptor</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>pathType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Path</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-roleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SecurityRole</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRole</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> e
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-permissionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MethodPermission</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.MethodPermission</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>container-transactionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ContainerTransaction</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ContainerTransaction</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptor-bindingType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>InterceptorBinding</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.InterceptorBinding</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destinationType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDestination</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.MessageDestination</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>exclude-listType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ExcludeList</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ExcludeList</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>application-exceptionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ApplicationException</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ApplicationException</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>fully-qualified-classType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>FullyQualifiedClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>true-falseType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>TrueFalse</bean-name>
+		<wrapper-class>boolean</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>descriptionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Description</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdStringType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>XsdString</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Method</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Method</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-intfType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MethodIntf</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MethodName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-paramsType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MethodParams</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.MethodParams</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>java-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>JavaType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>string</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>String</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>display-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>DisplayName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>iconType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Icon</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.Icon</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>named-methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>NamedMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.NamedMethod</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptor-orderType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>InterceptorOrder</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.InterceptorOrder</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>trans-attributeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>TransAttribute</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>role-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>RoleName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>emptyType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Empty</bean-name>
+                 <wrapper-class>boolean</wrapper-class> 
+                 <can-be-empty/> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-relationType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbRelation</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbRelation</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-relationship-roleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbRelationshipRole</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbRelationshipRole</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>multiplicityType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Multiplicity</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>relationship-role-sourceType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>RelationshipRoleSource</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.RelationshipRoleSource</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmr-fieldType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>CmrField</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.CmrField</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmr-field-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>CmrFieldType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptorType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Interceptor</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Interceptor</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>around-invokeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>AroundInvoke</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>lifecycle-callbackType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>LifecycleCallback</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>java-identifierType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>JavaIdentifier</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>env-entryType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EnvEntry</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.EnvEntry</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.EjbRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-local-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbLocalRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.EjbLocalRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>resource-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ResourceRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ResourceRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>resource-env-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ResourceEnvRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ResourceEnvRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.MessageDestinationRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-unit-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceUnitRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>jndi-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>JndiName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>injection-targetType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>InjectionTarget</bean-name>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+                <implements>org.netbeans.modules.j2ee.dd.api.common.InjectionTarget</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>propertyType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Property</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Property</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-usageType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationUsage</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-linkType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationLink</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>res-authType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ResAuth</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>res-sharing-scopeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ResSharingScope</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdAnyURIType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>XsdAnyURI</bean-name>
+		<wrapper-class>java.net.URI</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdQNameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>XsdQName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>port-component-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PortComponentRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.PortComponentRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_handlerType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefHandler</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_handler-chainsType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefHandlerChains</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_handler-chainType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefHandlerChain</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChain</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_qname-pattern</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefQnamePattern</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_protocol-bindingListType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefProtocolBindingList</bean-name>
+		<wrapper-class>String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>param-valueType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>InitParam</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.InitParam</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-ref-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbRefName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-ref-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbRefType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>local-homeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>LocalHome</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>localType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Local</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-linkType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbLink</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>homeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Home</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>remoteType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Remote</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>env-entry-type-valuesType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EnvEntryTypeValues</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>session-beanType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SessionBean</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class> 
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Session,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+                <user-code> 
+                public String getKeyProperty() {  
+                    return "EjbName";  
+                } 
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() {  
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot();  
+                } 
+                //EJB 3.1
+                public boolean isLocalBean() {
+                    return false;
+                }
+                </user-code> 
+        </meta-element> 
+        <meta-element> 
+                <dtd-name>entity-beanType</dtd-name> 
+                <namespace>http://java.sun.com/xml/ns/javaee</namespace> 
+                <bean-name>EntityBean</bean-name> 
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.Entity,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                public String getKeyProperty() { 
+                    return "EjbName"; 
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() { 
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot(); 
+                }
+               </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-driven-beanType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDrivenBean</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class> 
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.MessageDriven,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+                <user-code> 
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() {  
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot();  
+                } 
+                // not needed for with 3.0 
+                public String getKeyProperty() {  
+                    return "EjbName";  
+                } 
+                </user-code> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-classType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>transaction-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>TransactionType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>activation-configType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ActivationConfig</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ActivationConfig</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-identityType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SecurityIdentity</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.SecurityIdentity</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>run-asType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>RunAs</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.RunAs</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>activation-config-propertyType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ActivationConfigProperty</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ActivationConfigProperty</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmp-versionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>CmpVersion</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmp-fieldType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>CmpField</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.CmpField</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-role-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SecurityRoleRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRoleRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>queryType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Query</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Query</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanSingle</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>query-methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>QueryMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.QueryMethod</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>result-type-mappingType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ResultTypeMapping</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>session-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SessionType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>init-methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>InitMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.InitMethod</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>remove-methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>RemoveMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.RemoveMethod</implements> 
+	</meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_0.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_0.xsd
new file mode 100644
index 0000000000..96d7f04754
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_0.xsd
@@ -0,0 +1,2715 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+	    targetNamespace="http://java.sun.com/xml/ns/javaee"
+	    xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+	    xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+	    elementFormDefault="qualified"
+	    attributeFormDefault="unqualified"
+	    version="3.0">
+  <xsd:annotation>
+    <xsd:documentation>
+      @(#)ejb-jar_3_0.xsds	1.51 02/23/06
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2003-2010 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Oracle in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[
+
+	This is the XML Schema for the EJB 3.0 deployment descriptor.
+	The deployment descriptor must be named "META-INF/ejb-jar.xml" in
+	the EJB's jar file.  All EJB deployment descriptors must indicate
+	the ejb-jar schema by using the Java EE namespace:
+
+	http://java.sun.com/xml/ns/javaee
+
+	and by indicating the version of the schema by
+	using the version element as shown below:
+
+	    <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
+	      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+		  http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd"
+	      version="3.0">
+	      ...
+	    </ejb-jar>
+
+	The instance documents may indicate the published version of
+	the schema using the xsi:schemaLocation attribute for the
+	Java EE namespace with the following location:
+
+	http://java.sun.com/xml/ns/javaee/ejb-jar_3_0.xsd
+
+	]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - 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.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_5.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="ejb-jar" type="javaee:ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	This is the root of the ejb-jar deployment descriptor.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:key name="ejb-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The ejb-name element contains the name of an enterprise
+	  bean. The name must be unique within the ejb-jar file.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:enterprise-beans/*"/>
+      <xsd:field    xpath="javaee:ejb-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="ejb-name-references"
+		refer="javaee:ejb-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  relationship-role-source must be to a specific ejb-name
+	  defined within the scope of enterprise-beans element.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector
+xpath=".//javaee:ejb-relationship-role/javaee:relationship-role-source"/>
+      <xsd:field
+	   xpath="javaee:ejb-name"/>
+    </xsd:keyref>
+
+    <xsd:key name="role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  A role-name-key is specified to allow the references
+	  from the security-role-refs.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:assembly-descriptor/javaee:security-role"/>
+      <xsd:field    xpath="javaee:role-name"/>
+    </xsd:key>
+
+    <xsd:keyref name="role-name-references"
+		refer="javaee:role-name-key">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The keyref indicates the references from
+	  security-role-ref to a specified role-name.
+
+	</xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:enterprise-beans/*/javaee:security-role-ref"/>
+      <xsd:field    xpath="javaee:role-link"/>
+    </xsd:keyref>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-config-propertyType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The activation-config-propertyType contains a name/value
+	configuration property pair for a message-driven bean.
+
+	The properties that are recognized for a particular
+	message-driven bean are determined by the messaging type.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="activation-config-property-name"
+		   type="javaee:xsdStringType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The activation-config-property-name element contains
+	    the name for an activation configuration property of
+	    a message-driven bean.
+
+	    For JMS message-driven beans, the following property
+	    names are recognized: acknowledgeMode,
+	    messageSelector, destinationType, subscriptionDurability
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="activation-config-property-value"
+		   type="javaee:xsdStringType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The activation-config-property-value element
+	    contains the value for an activation configuration
+	    property of a message-driven bean.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The activation-configType defines information about the
+	expected configuration properties of the message-driven bean
+	in its operational environment. This may include information
+	about message acknowledgement, message selector, expected
+	destination type, etc.
+
+	The configuration information is expressed in terms of
+	name/value configuration properties.
+
+	The properties that are recognized for a particular
+	message-driven bean are determined by the messaging type.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="activation-config-property"
+		   type="javaee:activation-config-propertyType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="application-exceptionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The application-exceptionType declares an application
+        exception. The declaration consists of:
+
+            - the exception class. When the container receives
+              an exception of this type, it is required to
+              forward this exception as an applcation exception
+              to the client regardless of whether it is a checked
+              or unchecked exception.
+            - an optional rollback element. If this element is
+              set to true, the container must rollback the current
+              transaction before forwarding the exception to the
+              client.  If not specified, it defaults to false.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="exception-class"
+		   type="javaee:fully-qualified-classType"/>
+      <xsd:element name="rollback"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="around-invokeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The around-invoke type specifies a method on a
+        class to be called during the around invoke portion of an
+        ejb invocation.  Note that each class may have only one
+        around invoke method and that the method may not be
+        overloaded.
+
+        If the class element is missing then
+        the class defining the callback is assumed to be the
+        interceptor class or component class in scope at the
+        location in the descriptor in which the around invoke
+        definition appears.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="class"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0"/>
+      <xsd:element name="method-name"
+                   type="javaee:java-identifierType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="assembly-descriptorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The assembly-descriptorType defines
+	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, the definition
+        of interceptor bindings, a list of
+	methods to be excluded from being invoked, and a list of
+        exception types that should be treated as application exceptions.
+
+	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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="security-role"
+		   type="javaee:security-roleType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method-permission"
+		   type="javaee:method-permissionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="container-transaction"
+		   type="javaee:container-transactionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="interceptor-binding"
+                   type="javaee:interceptor-bindingType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination"
+		   type="javaee:message-destinationType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="exclude-list"
+		   type="javaee:exclude-listType"
+		   minOccurs="0"/>
+      <xsd:element name="application-exception"
+                   type="javaee:application-exceptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmp-fieldType describes a container-managed field. The
+	cmp-fieldType contains an optional description of the field,
+	and the name of the field.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="field-name"
+		   type="javaee:java-identifierType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmp-versionType specifies the version of an entity bean
+	with container-managed persistence. It is used by
+	cmp-version elements.
+
+	The value must be one of the two following:
+
+	    1.x
+	    2.x
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="1.x"/>
+	<xsd:enumeration value="2.x"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-field-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmr-field-type element specifies the class of a
+	collection-valued logical relationship field in the entity
+	bean class. The value of an element using cmr-field-typeType
+	must be either: java.util.Collection or java.util.Set.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="java.util.Collection"/>
+	<xsd:enumeration value="java.util.Set"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The cmr-fieldType 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="cmr-field-name"
+		   type="javaee:string">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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".
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmr-field-type"
+		   type="javaee:cmr-field-typeType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="container-transactionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The container-transactionType specifies how the container
+	must manage transaction scopes for the enterprise bean's
+	method invocations. It defines an optional description, a
+	list of method elements, and a transaction attribute. The
+	transaction attribute is to be applied to all the specified
+	methods.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+		   type="javaee:methodType"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="trans-attribute"
+		   type="javaee:trans-attributeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-classType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-classType contains the fully-qualified name of the
+	  enterprise bean's class. It is used by ejb-class elements.
+
+	  Example:
+
+	      <ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-jarType defines the root element of the EJB
+	deployment descriptor. It contains
+
+	    - an optional description of the ejb-jar file
+	    - an optional display name
+	    - an optional icon that contains a small and a large
+	      icon file name
+	    - structural information about all included
+	      enterprise beans that is not specified through
+              annotations
+            - structural information about interceptor classes
+	    - 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="enterprise-beans"
+		   type="javaee:enterprise-beansType"
+                   minOccurs="0"/>
+      <xsd:element name="interceptors"
+		   type="javaee:interceptorsType"
+                   minOccurs="0"/>
+      <xsd:element name="relationships"
+		   type="javaee:relationshipsType"
+		   minOccurs="0">
+	<xsd:unique name="relationship-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-relation-name contains the name of a
+	      relation. The name must be unique within
+	      relationships.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-relation"/>
+	  <xsd:field    xpath="javaee:ejb-relation-name"/>
+	</xsd:unique>
+      </xsd:element>
+      <xsd:element name="assembly-descriptor"
+		   type="javaee:assembly-descriptorType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    Providing an assembly-descriptor in the deployment
+	    descriptor is optional for the ejb-jar file
+	    producer.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-client-jar"
+		   type="javaee:pathType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+	    <![CDATA[
+
+	      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.
+
+	      Example:
+
+		  <ejb-client-jar>employee_service_client.jar
+		  </ejb-client-jar>
+
+	      ]]>
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+		   type="javaee:dewey-versionType"
+		   fixed="3.0"
+		   use="required">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The version specifies the version of the
+	  EJB specification that the instance document must
+	  comply with. This information enables deployment tools
+	  to validate a particular EJB Deployment
+	  Descriptor with respect to a specific version of the EJB
+	  schema.
+
+	</xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="metadata-complete" type="xsd:boolean">
+      <xsd:annotation>
+	<xsd:documentation>
+
+	  The metadata-complete attribute defines whether this
+	  deployment descriptor and other related deployment
+	  descriptors for this module (e.g., web service
+	  descriptors) are complete, or whether the class
+	  files available to this module and packaged with
+	  this application should be examined for annotations
+	  that specify deployment information.
+
+	  If metadata-complete is set to "true", the deployment
+	  tool must ignore any annotations that specify deployment
+	  information, which might be present in the class files
+	  of the application.
+
+	  If metadata-complete is not specified or is set to
+	  "false", the deployment tool must examine the class
+	  files of the application for annotations, as
+	  specified by the specifications.
+
+	</xsd:documentation>
+      </xsd:annotation>
+
+    </xsd:attribute>
+
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-nameType specifies an enterprise bean's name. It is
+	  used by ejb-name elements. 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 used
+	  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 must conform to the lexical
+	  rules for an NMTOKEN.
+
+	  Example:
+
+	  <ejb-name>EmployeeService</ejb-name>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The ejb-relationType describes a relationship between two
+	entity beans with container-managed persistence.  It is used
+	by ejb-relation elements. It 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation-name"
+		   type="javaee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The ejb-relation-name element provides a unique name
+	    within the ejb-jar file for a relationship.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-relationship-role"
+		   type="javaee:ejb-relationship-roleType"/>
+      <xsd:element name="ejb-relationship-role"
+		   type="javaee:ejb-relationship-roleType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationship-roleType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The ejb-relationship-roleType describes a role within a
+	  relationship. There are two roles in each relationship.
+
+	  The ejb-relationship-roleType 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.
+
+	  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>
+	  </ejb-relation>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relationship-role-name"
+		   type="javaee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="multiplicity"
+		   type="javaee:multiplicityType"/>
+      <xsd:element name="cascade-delete"
+		   type="javaee:emptyType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="relationship-role-source"
+		   type="javaee:relationship-role-sourceType"/>
+      <xsd:element name="cmr-field"
+		   type="javaee:cmr-fieldType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="enterprise-beansType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The enterprise-beansType declares one or more enterprise
+	beans. Each bean can be a session, entity or message-driven
+	bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:choice maxOccurs="unbounded">
+      <xsd:element name="session"
+		   type="javaee:session-beanType">
+	<xsd:unique name="session-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-local-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-env-ref"/>
+	  <xsd:field    xpath="javaee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:message-destination-ref"/>
+	  <xsd:field    xpath="javaee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      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 component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-ref"/>
+	  <xsd:field    xpath="javaee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="session-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:env-entry"/>
+	  <xsd:field    xpath="javaee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+      <xsd:element name="entity"
+		   type="javaee:entity-beanType">
+	<xsd:unique name="entity-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-local-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-env-ref"/>
+	  <xsd:field    xpath="javaee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:message-destination-ref"/>
+	  <xsd:field    xpath="javaee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      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 component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-ref"/>
+	  <xsd:field    xpath="javaee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="entity-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:env-entry"/>
+	  <xsd:field    xpath="javaee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+      <xsd:element name="message-driven"
+		   type="javaee:message-driven-beanType">
+	<xsd:unique name="messaged-ejb-local-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of
+	      an EJB reference. The EJB reference is an entry in
+	      the component's environment and is relative to the
+	      java:comp/env context.  The name must be unique within
+	      the component.
+
+	      It is recommended that name be prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-local-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-ejb-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-ref-name element contains the name of an EJB
+	      reference. The EJB reference is an entry in the
+	      component's environment and is relative to the
+	      java:comp/env context. The name must be unique
+	      within the component.
+
+	      It is recommended that name is prefixed with "ejb/".
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:ejb-ref"/>
+	  <xsd:field    xpath="javaee:ejb-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-resource-env-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The resource-env-ref-name element specifies the name
+	      of a resource environment reference; its value is
+	      the environment entry name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-env-ref"/>
+	  <xsd:field    xpath="javaee:resource-env-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-message-destination-ref-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The message-destination-ref-name element specifies the name
+	      of a message destination reference; its value is
+	      the message destination reference name used in the component
+	      code. The name is a JNDI name relative to the
+	      java:comp/env context and must be unique within an
+	      component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:message-destination-ref"/>
+	  <xsd:field    xpath="javaee:message-destination-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-res-ref-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      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 component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:resource-ref"/>
+	  <xsd:field    xpath="javaee:res-ref-name"/>
+	</xsd:unique>
+
+	<xsd:unique name="messaged-env-entry-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The env-entry-name element contains the name of a
+	      component's environment entry.  The name is a JNDI
+	      name relative to the java:comp/env context.  The
+	      name must be unique within an component.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector xpath="javaee:env-entry"/>
+	  <xsd:field    xpath="javaee:env-entry-name"/>
+	</xsd:unique>
+      </xsd:element>
+
+    </xsd:choice>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="entity-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The entity-beanType declares an entity bean. The declaration
+	consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a large
+	      icon file name
+	    - a unique name assigned to the enterprise bean
+	      in the deployment descriptor
+            - an optional mapped-name element that can be used to provide
+              vendor-specific deployment information such as the physical
+              jndi-name of the entity bean's remote home interface. This
+              element is not required to be supported by all implementations.
+              Any use of this element is non-portable.
+	    - 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 optional entity bean's persistence management type. If
+              this element is not specified it is defaulted to Container.
+	    - 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 bean's web
+	      service 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 declaration of the bean's message
+	      destination 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:ejb-nameType"/>
+      <xsd:element name="mapped-name"
+		   type="javaee:xsdStringType"
+		   minOccurs="0"/>
+      <xsd:element name="home"
+		   type="javaee:homeType"
+		   minOccurs="0"/>
+      <xsd:element name="remote"
+		   type="javaee:remoteType"
+		   minOccurs="0"/>
+      <xsd:element name="local-home"
+		   type="javaee:local-homeType"
+		   minOccurs="0"/>
+      <xsd:element name="local"
+		   type="javaee:localType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-class"
+		   type="javaee:ejb-classType"/>
+      <xsd:element name="persistence-type"
+		   type="javaee:persistence-typeType"/>
+      <xsd:element name="prim-key-class"
+		   type="javaee:fully-qualified-classType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="reentrant"
+		   type="javaee:true-falseType">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The reentrant element specifies whether an entity
+	    bean is reentrant or not.
+
+	    The reentrant element must be one of the two
+	    following: true or false
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmp-version"
+		   type="javaee:cmp-versionType"
+		   minOccurs="0"/>
+      <xsd:element name="abstract-schema-name"
+		   type="javaee:java-identifierType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmp-field"
+		   type="javaee:cmp-fieldType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="primkey-field"
+		   type="javaee:string"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    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.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-role-ref"
+		   type="javaee:security-role-refType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="security-identity"
+		   type="javaee:security-identityType"
+		   minOccurs="0"/>
+      <xsd:element name="query"
+		   type="javaee:queryType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="exclude-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The exclude-listType 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+		   type="javaee:methodType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="init-methodType">
+    <xsd:sequence>
+      <xsd:element name="create-method"
+		   type="javaee:named-methodType"/>
+      <xsd:element name="bean-method"
+		   type="javaee:named-methodType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptor-bindingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The interceptor-bindingType element describes the binding of
+        interceptor classes to beans within the ejb-jar.
+        It consists of :
+
+          - An optional description.
+          - The name of an ejb within the ejb-jar or the wildcard value "*",
+            which is used to define interceptors that are bound to all
+            beans in the ejb-jar.
+          - A list of interceptor classes that are bound to the contents of
+            the ejb-name element or a specification of the total ordering
+            over the interceptors defined for the given level and above.
+          - An optional exclude-default-interceptors element.  If set to true,
+            specifies that default interceptors are not to be applied to
+            a bean-class and/or business method.
+          - An optional exclude-class-interceptors element.  If set to true,
+            specifies that class interceptors are not to be applied to
+            a business method.
+          - An optional set of method elements for describing the name/params
+            of a method-level interceptor.
+
+         Interceptors bound to all classes using the wildcard syntax
+         "*" are default interceptors for the components in the ejb-jar.
+         In addition, interceptors may be bound at the level of the bean
+         class (class-level interceptors) or business methods (method-level
+         interceptors ).
+
+         The binding of interceptors to classes is additive.  If interceptors
+         are bound at the class-level and/or default-level as well as the
+         method-level, both class-level and/or default-level as well as
+         method-level will apply.
+
+         There are four possible styles of the interceptor element syntax :
+
+         1.
+         <interceptor-binding>
+           <ejb-name>*</ejb-name>
+           <interceptor-class>INTERCEPTOR</interceptor-class>
+         </interceptor-binding>
+
+         Specifying the ejb-name as the wildcard value "*" designates
+         default interceptors (interceptors that apply to all session and
+         message-driven beans contained in the ejb-jar).
+
+         2.
+         <interceptor-binding>
+           <ejb-name>EJBNAME</ejb-name>
+           <interceptor-class>INTERCEPTOR</interceptor-class>
+         </interceptor-binding>
+
+         This style is used to refer to interceptors associated with the
+         specified enterprise bean(class-level interceptors).
+
+         3.
+         <interceptor-binding>
+           <ejb-name>EJBNAME</ejb-name>
+           <interceptor-class>INTERCEPTOR</interceptor-class>
+           <method>
+             <method-name>METHOD</method-name>
+           </method>
+         </interceptor-binding>
+
+         This style is used to associate a method-level interceptor with
+         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.  Method-level
+         interceptors can only be associated with business methods of the
+         bean class.   Note that the wildcard value "*" cannot be used
+         to specify method-level interceptors.
+
+         4.
+         <interceptor-binding>
+           <ejb-name>EJBNAME</ejb-name>
+           <interceptor-class>INTERCEPTOR</interceptor-class>
+           <method>
+             <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>
+         </interceptor-binding>
+
+         This style is used to associate a method-level interceptor with
+         the specified method of the specified enterprise bean.  This
+         style is used to refer to a single method within a set of methods
+         with an overloaded name.  The values 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[][]).
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:string"/>
+      <xsd:choice>
+        <xsd:element name="interceptor-class"
+                     type="javaee:fully-qualified-classType"
+		     minOccurs="0"
+                     maxOccurs="unbounded"/>
+        <xsd:element name="interceptor-order"
+		     type="javaee:interceptor-orderType"
+		     minOccurs="1"/>
+      </xsd:choice>
+      <xsd:element name="exclude-default-interceptors"
+		   type="javaee:true-falseType"
+		   minOccurs="0"/>
+      <xsd:element name="exclude-class-interceptors"
+		   type="javaee:true-falseType"
+		   minOccurs="0"/>
+      <xsd:element name="method"
+		   type="javaee:named-methodType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptor-orderType">
+    <xsd:annotation>
+      <xsd:documentation>
+        The interceptor-orderType element describes a total ordering
+        of interceptor classes.
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+
+      <xsd:element name="interceptor-class"
+                   type="javaee:fully-qualified-classType"
+		   minOccurs="1"
+                   maxOccurs="unbounded"/>
+
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The interceptorType element declares information about a single
+        interceptor class.  It consists of :
+
+            - An optional description.
+            - The fully-qualified name of the interceptor class.
+            - An optional list of around invoke methods declared on the
+              interceptor class and/or its super-classes.
+            - An optional list environment dependencies for the interceptor
+              class and/or its super-classes.
+            - An optional list of post-activate methods declared on the
+              interceptor class and/or its super-classes.
+            - An optional list of pre-passivate methods declared on the
+              interceptor class and/or its super-classes.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="interceptor-class"
+		   type="javaee:fully-qualified-classType"/>
+      <xsd:element name="around-invoke"
+                   type="javaee:around-invokeType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="post-activate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="pre-passivate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptorsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The interceptorsType element declares one or more interceptor
+        classes used by components within this ejb-jar.  The declaration
+        consists of :
+
+            - An optional description.
+            - One or more interceptor elements.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="interceptor"
+		   type="javaee:interceptorType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-driven-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The message-driven element declares a message-driven
+	bean. The declaration consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a large
+	      icon file name.
+	    - a name assigned to the enterprise bean in
+	      the deployment descriptor
+            - an optional mapped-name element that can be used to provide
+              vendor-specific deployment information such as the physical
+              jndi-name of destination from which this message-driven bean
+              should consume.  This element is not required to be supported
+              by all implementations.  Any use of this element is non-portable.
+	    - the message-driven bean's implementation class
+	    - an optional declaration of the bean's messaging
+	      type
+            - an optional declaration of the bean's timeout method.
+	    - the optional message-driven bean's transaction management
+              type. If it is not defined, it is defaulted to Container.
+	    - an optional declaration of the bean's
+	      message-destination-type
+	    - an optional declaration of the bean's
+	      message-destination-link
+	    - an optional declaration of the message-driven bean's
+	      activation configuration properties
+            - an optional list of the message-driven bean class and/or
+              superclass around-invoke methods.
+	    - 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 bean's web service
+	      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 declaration of the bean's message
+	      destination references
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:ejb-nameType"/>
+      <xsd:element name="mapped-name"
+		   type="javaee:xsdStringType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-class"
+		   type="javaee:ejb-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+             The ejb-class element specifies the fully qualified name
+             of the bean class for this ejb.  It is required unless
+             there is a component-defining annotation for the same
+             ejb-name.
+
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="messaging-type"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The messaging-type element specifies the message
+	    listener interface of the message-driven bean.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="timeout-method"
+                   type="javaee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="transaction-type"
+		   type="javaee:transaction-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="message-destination-type"
+		   type="javaee:message-destination-typeType"
+		   minOccurs="0"/>
+      <xsd:element name="message-destination-link"
+		   type="javaee:message-destination-linkType"
+		   minOccurs="0"/>
+      <xsd:element name="activation-config"
+		   type="javaee:activation-configType"
+		   minOccurs="0"/>
+      <xsd:element name="around-invoke"
+                   type="javaee:around-invokeType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-identity"
+		   type="javaee:security-identityType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-intfType">
+
+    <xsd:annotation>
+      <xsd:documentation>
+
+	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 home and
+	component interfaces (e.g, in both an enterprise bean's
+	remote and local interfaces or in both an enterprise bean's
+	home and remote interfaces, etc.); the component and web
+	service endpoint interfaces, and so on. The Local applies to
+        both local component interface and local business interface.
+        Similarly, Remote applies to both remote component interface
+        and the remote business interface.
+
+	The method-intf element must be one of the following:
+
+	    Home
+	    Remote
+	    LocalHome
+	    Local
+	    ServiceEndpoint
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Home"/>
+	<xsd:enumeration value="Remote"/>
+	<xsd:enumeration value="LocalHome"/>
+	<xsd:enumeration value="Local"/>
+	<xsd:enumeration value="ServiceEndpoint"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-nameType 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 client view interfaces.
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-paramsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-paramsType defines a list of the
+	fully-qualified Java type names of the method parameters.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-param"
+		   type="javaee:java-typeType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The method-param element contains a primitive
+	    or a fully-qualified Java type name of a method
+	    parameter.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-permissionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The method-permissionType specifies that one or more
+	security roles are allowed to invoke one or more enterprise
+	bean methods. The method-permissionType 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-permissionType
+	must be defined in the security-role elements of the
+	deployment descriptor, and the methods must be methods
+	defined in the enterprise bean's business, home, component
+        and/or web service endpoint interfaces.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="role-name"
+		     type="javaee:role-nameType"
+		     maxOccurs="unbounded"/>
+	<xsd:element name="unchecked"
+		     type="javaee:emptyType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The unchecked element specifies that a method is
+	      not checked for authorization by the container
+	      prior to invocation of the method.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+      </xsd:choice>
+      <xsd:element name="method"
+		   type="javaee:methodType"
+		   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The methodType is used to denote a method of an enterprise
+	  bean's business, home, component, and/or web service endpoint
+	  interface, or, in the case of a message-driven bean, the
+	  bean's message listener method, or a set of such
+	  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 the business, home, component, and/or web service
+          endpoint nterfaces; 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 using methodType element
+	  within a method element:
+
+	  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 business, home, component,
+             and/or web service endpoint 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.
+
+	  Examples:
+
+	  Style 1: The following method element refers to all the
+	  methods of the EmployeeService bean's business, home,
+          component, and/or web service endpoint 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 business, home, component,
+          and/or web service endpoint interfaces with the same name and
+	  signature. However, if the same method is a method of both the
+          local business interface, and the local component interface,
+          the same attribute applies to the method for both interfaces.
+          Likewise, if the same method is a method of both the remote
+          business interface and the remote component interface, the same
+          attribute applies to the method for both interfaces.
+
+	  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
+          and the remote business interface.
+
+	  <method>
+	      <ejb-name>EmployeeService</ejb-name>
+	      <method-intf>Home</method-intf>
+	      <method-name>*</method-name>
+	  </method>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0" maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:ejb-nameType"/>
+      <xsd:element name="method-intf"
+		   type="javaee:method-intfType"
+		   minOccurs="0">
+      </xsd:element>
+      <xsd:element name="method-name"
+		   type="javaee:method-nameType"/>
+      <xsd:element name="method-params"
+		   type="javaee:method-paramsType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="multiplicityType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The multiplicityType describes the multiplicity of the
+	role that participates in a relation.
+
+	The value must be one of the two following:
+
+	    One
+	    Many
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="One"/>
+	<xsd:enumeration value="Many"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="named-methodType">
+    <xsd:sequence>
+      <xsd:element name="method-name"
+		   type="javaee:string"/>
+      <xsd:element name="method-params"
+		   type="javaee:method-paramsType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The persistence-typeType specifies an entity bean's persistence
+	management type.
+
+	The persistence-type element must be one of the two following:
+
+	    Bean
+	    Container
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Bean"/>
+	<xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="query-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+	<![CDATA[
+
+	  The query-method specifies 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.
+
+	  It is used by the query-method element.
+
+	  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>
+
+	  ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="method-name"
+		   type="javaee:method-nameType"/>
+      <xsd:element name="method-params"
+		   type="javaee:method-paramsType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="queryType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The queryType defines 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".
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType" minOccurs="0"/>
+      <xsd:element name="query-method"
+		   type="javaee:query-methodType"/>
+      <xsd:element name="result-type-mapping"
+		   type="javaee:result-type-mappingType"
+		   minOccurs="0"/>
+      <xsd:element name="ejb-ql"
+		   type="javaee:xsdStringType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="relationship-role-sourceType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The relationship-role-sourceType designates the source of a
+	role that participates in a relationship. A
+	relationship-role-sourceType is used by
+	relationship-role-source elements to uniquely identify an
+	entity bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:ejb-nameType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="relationshipsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The relationshipsType describes the relationships in
+	which entity beans with container-managed persistence
+	participate. The relationshipsType contains an optional
+	description; and a list of ejb-relation elements, which
+	specify the container managed relationships.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation"
+		   type="javaee:ejb-relationType"
+		   maxOccurs="unbounded">
+
+	<xsd:unique name="role-name-uniqueness">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      The ejb-relationship-role-name contains the name of a
+	      relationship role. The name must be unique within
+	      a relationship, but can be reused in different
+	      relationships.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	  <xsd:selector
+	       xpath=".//javaee:ejb-relationship-role-name"/>
+	  <xsd:field
+	       xpath="."/>
+	</xsd:unique>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="remove-methodType">
+    <xsd:sequence>
+      <xsd:element name="bean-method"
+		   type="javaee:named-methodType"/>
+      <xsd:element name="retain-if-exception"
+		   type="javaee:true-falseType"
+		   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="result-type-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The result-type-mappingType 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 value must be one of the following:
+
+	    Local
+	    Remote
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Local"/>
+	<xsd:enumeration value="Remote"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-identityType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The security-identityType 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.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:element name="description"
+		   type="javaee:descriptionType"
+		   minOccurs="0"
+		   maxOccurs="unbounded"/>
+      <xsd:choice>
+	<xsd:element name="use-caller-identity"
+		     type="javaee:emptyType">
+	  <xsd:annotation>
+	    <xsd:documentation>
+
+	      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.
+
+	    </xsd:documentation>
+	  </xsd:annotation>
+	</xsd:element>
+	<xsd:element name="run-as"
+		     type="javaee:run-asType"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-beanType declares an session bean. The
+	declaration consists of:
+
+	    - an optional description
+	    - an optional display name
+	    - an optional icon element that contains a small and a large
+	      icon file name
+	    - a name assigned to the enterprise bean
+	      in the deployment description
+            - an optional mapped-name element that can be used to provide
+              vendor-specific deployment information such as the physical
+              jndi-name of the session bean's remote home/business interface.
+              This element is not required to be supported by all
+              implementations. Any use of this element is non-portable.
+            - the names of all the remote or local business interfaces,
+              if any
+	    - 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 name of the session bean's web service endpoint
+	      interface, if any
+	    - the session bean's implementation class
+	    - the session bean's state management type
+            - an optional declaration of the session bean's timeout method.
+	    - the optional session bean's transaction management type.
+              If it is not present, it is defaulted to Container.
+            - an optional list of the session bean class and/or
+              superclass around-invoke methods.
+	    - 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 bean's web
+	      service 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 declaration of the bean's message
+	      destination 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.
+
+	The service-endpoint element may only be specified if the
+	bean is a stateless session bean.
+
+      </xsd:documentation>
+    </xsd:annotation>
+
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+		   type="javaee:ejb-nameType"/>
+      <xsd:element name="mapped-name"
+		   type="javaee:xsdStringType"
+		   minOccurs="0"/>
+      <xsd:element name="home"
+		   type="javaee:homeType"
+		   minOccurs="0"/>
+      <xsd:element name="remote"
+		   type="javaee:remoteType"
+		   minOccurs="0"/>
+      <xsd:element name="local-home"
+		   type="javaee:local-homeType"
+		   minOccurs="0"/>
+      <xsd:element name="local"
+		   type="javaee:localType"
+		   minOccurs="0"/>
+      <xsd:element name="business-local"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="business-remote"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="service-endpoint"
+		   type="javaee:fully-qualified-classType"
+		   minOccurs="0">
+	<xsd:annotation>
+	  <xsd:documentation>
+
+	    The service-endpoint element contains the
+	    fully-qualified name of the enterprise bean's web
+	    service endpoint interface. The service-endpoint
+	    element may only be specified for a stateless
+	    session bean. The specified interface must be a
+	    valid JAX-RPC service endpoint interface.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-class"
+		   type="javaee:ejb-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+             The ejb-class element specifies the fully qualified name
+             of the bean class for this ejb.  It is required unless
+             there is a component-defining annotation for the same
+             ejb-name.
+
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="session-type"
+		   type="javaee:session-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="timeout-method"
+                   type="javaee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="init-method"
+                   type="javaee:init-methodType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+	  <xsd:documentation>
+
+	    The init-method element specifies the mappings for
+	    EJB 2.x style create methods for an EJB 3.0 bean.
+	    This element can only be specified for stateful
+            session beans.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="remove-method"
+                   type="javaee:remove-methodType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+	  <xsd:documentation>
+
+	    The remove-method element specifies the mappings for
+	    EJB 2.x style remove methods for an EJB 3.0 bean.
+	    This element can only be specified for stateful
+            session beans.
+
+	  </xsd:documentation>
+	</xsd:annotation>
+      </xsd:element>
+      <xsd:element name="transaction-type"
+		   type="javaee:transaction-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="around-invoke"
+                   type="javaee:around-invokeType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="post-activate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="pre-passivate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="security-role-ref"
+		   type="javaee:security-role-refType"
+		   minOccurs="0"
+		   maxOccurs="unbounded">
+      </xsd:element>
+      <xsd:element name="security-identity"
+		   type="javaee:security-identityType"
+		   minOccurs="0">
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id" type="xsd:ID"/>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The session-typeType describes whether the session bean is a
+	stateful session or stateless session. It is used by
+	session-type elements.
+
+	The value must be one of the two following:
+
+	    Stateful
+	    Stateless
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Stateful"/>
+	<xsd:enumeration value="Stateless"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="trans-attributeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The trans-attributeType specifies how the container must
+	manage the transaction boundaries when delegating a method
+	invocation to an enterprise bean's business method.
+
+	The value must be one of the following:
+
+	    NotSupported
+	    Supports
+	    Required
+	    RequiresNew
+	    Mandatory
+	    Never
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="NotSupported"/>
+	<xsd:enumeration value="Supports"/>
+	<xsd:enumeration value="Required"/>
+	<xsd:enumeration value="RequiresNew"/>
+	<xsd:enumeration value="Mandatory"/>
+	<xsd:enumeration value="Never"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="transaction-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+	The transaction-typeType specifies an enterprise bean's
+	transaction management type.
+
+	The transaction-type must be one of the two following:
+
+	    Bean
+	    Container
+
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+	<xsd:enumeration value="Bean"/>
+	<xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+</xsd:schema>
+
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_1.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_1.mdd
new file mode 100644
index 0000000000..1196f47e94
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_1.mdd
@@ -0,0 +1,745 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2009, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>ejb-jar</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbJar</bean-name>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbJar</implements>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+                    public String getSingleEjbClientJar() {
+                        return getEjbClientJar();
+                    }
+                    public org.netbeans.modules.j2ee.dd.api.ejb.AssemblyDescriptor getSingleAssemblyDescriptor() {
+                        return getAssemblyDescriptor(); 
+                    } 
+                    public org.netbeans.modules.j2ee.dd.api.ejb.Relationships getSingleRelationships() { 
+                        return getRelationships(); 
+                    } 
+                    public void setVersion(java.math.BigDecimal value) {
+                            setAttributeValue(VERSION, value.toString());
+                    }
+                    public java.math.BigDecimal getVersion() {
+                            return new java.math.BigDecimal(getAttributeValue(VERSION));
+                    }
+                    public Object clone() {
+                        org.netbeans.modules.j2ee.dd.api.ejb.EjbJar ejbJar =
+                            (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) super.clone();
+                        ejbJar.setVersion( getVersion());
+                        return ejbJar;
+                    }
+               </user-code> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>enterprise-beansType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EnterpriseBeans</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class> 
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EnterpriseBeans</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.GetAllEjbs</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptorsType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Interceptors</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Interceptors</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>relationshipsType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Relationships</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Relationships</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>assembly-descriptorType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>AssemblyDescriptor</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.AssemblyDescriptor</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>pathType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Path</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-roleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SecurityRole</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRole</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> e
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-permissionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MethodPermission</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.MethodPermission</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>container-transactionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ContainerTransaction</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ContainerTransaction</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptor-bindingType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>InterceptorBinding</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.InterceptorBinding</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destinationType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDestination</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.MessageDestination</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>exclude-listType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ExcludeList</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ExcludeList</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>application-exceptionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ApplicationException</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ApplicationException</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>fully-qualified-classType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>FullyQualifiedClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>true-falseType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>TrueFalse</bean-name>
+		<wrapper-class>boolean</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>descriptionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Description</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdStringType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>XsdString</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Method</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Method</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-intfType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MethodIntf</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MethodName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-paramsType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MethodParams</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.MethodParams</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>java-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>JavaType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>string</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>String</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>display-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>DisplayName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>iconType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Icon</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.Icon</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>named-methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>NamedMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.NamedMethod</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptor-orderType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>InterceptorOrder</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.InterceptorOrder</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>trans-attributeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>TransAttribute</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>role-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>RoleName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>emptyType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Empty</bean-name>
+                 <wrapper-class>boolean</wrapper-class> 
+                 <can-be-empty/> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-relationType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbRelation</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbRelation</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-relationship-roleType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbRelationshipRole</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbRelationshipRole</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>multiplicityType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Multiplicity</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>relationship-role-sourceType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>RelationshipRoleSource</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.RelationshipRoleSource</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmr-fieldType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>CmrField</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.CmrField</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmr-field-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>CmrFieldType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptorType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Interceptor</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Interceptor</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>around-invokeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>AroundInvoke</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>lifecycle-callbackType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>LifecycleCallback</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>java-identifierType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>JavaIdentifier</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>env-entryType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EnvEntry</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.EnvEntry</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.EjbRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-local-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbLocalRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.EjbLocalRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>resource-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ResourceRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ResourceRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>resource-env-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ResourceEnvRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ResourceEnvRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.MessageDestinationRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-unit-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceUnitRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>jndi-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>JndiName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>injection-targetType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>InjectionTarget</bean-name>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+                <implements>org.netbeans.modules.j2ee.dd.api.common.InjectionTarget</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>propertyType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Property</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Property</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-usageType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationUsage</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-linkType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationLink</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>res-authType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ResAuth</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>res-sharing-scopeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ResSharingScope</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdAnyURIType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>XsdAnyURI</bean-name>
+		<wrapper-class>java.net.URI</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdQNameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>XsdQName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>port-component-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PortComponentRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.PortComponentRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_handlerType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefHandler</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_handler-chainsType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefHandlerChains</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_handler-chainType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefHandlerChain</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChain</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_qname-pattern</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefQnamePattern</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_protocol-bindingListType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefProtocolBindingList</bean-name>
+		<wrapper-class>String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>param-valueType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>InitParam</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.InitParam</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-ref-nameType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbRefName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-ref-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbRefType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>local-homeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>LocalHome</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>localType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Local</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-linkType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbLink</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>homeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Home</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>remoteType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Remote</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>env-entry-type-valuesType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EnvEntryTypeValues</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>session-beanType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SessionBean</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class> 
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Session,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+                <user-code> 
+                public String getKeyProperty() {  
+                    return "EjbName";  
+                } 
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() {  
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot();  
+                } 
+                </user-code> 
+        </meta-element> 
+        <meta-element> 
+                <dtd-name>entity-beanType</dtd-name> 
+                <namespace>http://java.sun.com/xml/ns/javaee</namespace> 
+                <bean-name>EntityBean</bean-name> 
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.Entity,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                public String getKeyProperty() { 
+                    return "EjbName"; 
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() { 
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot(); 
+                }
+               </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-driven-beanType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>MessageDrivenBean</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class> 
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.MessageDriven,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+                <user-code> 
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() {  
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot();  
+                } 
+                // not needed for with 3.1
+                public String getKeyProperty() {  
+                    return "EjbName";  
+                } 
+                </user-code> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-classType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>EjbClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>transaction-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>TransactionType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>activation-configType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ActivationConfig</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ActivationConfig</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-identityType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SecurityIdentity</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.SecurityIdentity</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>run-asType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>RunAs</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.RunAs</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>activation-config-propertyType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ActivationConfigProperty</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ActivationConfigProperty</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>PersistenceType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmp-versionType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>CmpVersion</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmp-fieldType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>CmpField</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.CmpField</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-role-refType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SecurityRoleRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRoleRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>queryType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>Query</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Query</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanSingle</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>query-methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>QueryMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.QueryMethod</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>result-type-mappingType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>ResultTypeMapping</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>session-typeType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>SessionType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>init-methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>InitMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.InitMethod</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>remove-methodType</dtd-name>
+		<namespace>http://java.sun.com/xml/ns/javaee</namespace>
+		<bean-name>RemoveMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.RemoveMethod</implements> 
+	</meta-element>
+
+<!-- changes added for EE6: -->
+
+        <meta-element>
+            <dtd-name>handlerType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandler</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements>
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "HandlerName"; }
+            </user-code>
+        </meta-element>
+        <meta-element>
+               <dtd-name>handler-chainsType</dtd-name>
+               <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+               <bean-name>ServiceRefHandlerChains</bean-name>
+               <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains</implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>handler-chainType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandlerChainType</bean-name>
+            <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChain</implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>dewey-versionType</dtd-name>
+            <namespace>http://java.sun.com/xml/ns/javaee</namespace>
+            <bean-name>version</bean-name>
+            <wrapper-class>java.math.BigDecimal</wrapper-class>
+        </meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_1.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_1.xsd
new file mode 100644
index 0000000000..24d59d660c
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_1.xsd
@@ -0,0 +1,3258 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://java.sun.com/xml/ns/javaee"
+            xmlns:javaee="http://java.sun.com/xml/ns/javaee"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified"
+            attributeFormDefault="unqualified"
+            version="3.1">
+  <xsd:annotation>
+    <xsd:documentation>
+
+      $Id$
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+      Copyright 2003-2010 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+      The contents of this file are subject to the terms of either the
+      GNU General Public License Version 2 only ("GPL") or the Common
+      Development and Distribution License("CDDL") (collectively, the
+      "License").  You may not use this file except in compliance with
+      the License. You can obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL.html or
+      glassfish/bootstrap/legal/LICENSE.txt.  See the License for the
+      specific language governing permissions and limitations under the
+      License.
+
+      When distributing the software, include this License Header
+      Notice in each file and include the License file at
+      glassfish/bootstrap/legal/LICENSE.txt.  Sun designates this
+      particular file as subject to the "Classpath" exception as
+      provided by Oracle in the GPL Version 2 section of the License file
+      that accompanied this code.  If applicable, add the following
+      below the License Header, with the fields enclosed by brackets []
+      replaced by your own identifying information:
+      "Portions Copyrighted [year] [name of copyright owner]"
+
+      Contributor(s):
+
+      If you wish your version of this file to be governed by only the
+      CDDL or only the GPL Version 2, indicate your decision by adding
+      "[Contributor] elects to include this software in this
+      distribution under the [CDDL or GPL Version 2] license."  If you
+      don't indicate a single choice of license, a recipient has the
+      option to distribute your version of this file under either the
+      CDDL, the GPL Version 2 or to extend the choice of license to its
+      licensees as provided above.  However, if you add GPL Version 2
+      code and therefore, elected the GPL Version 2 license, then the
+      option applies only if the new code is made subject to such
+      option by the copyright holder.
+
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+<![CDATA[[
+      This is the XML Schema for the EJB 3.1 deployment descriptor.
+
+      All EJB deployment descriptors must indicate
+      the schema by using the Java EE namespace:
+
+      http://java.sun.com/xml/ns/javaee
+
+      and by indicating the version of the schema by
+      using the version element as shown below:
+
+      <ejb-jar xmlns="http://java.sun.com/xml/ns/javaee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
+      	  http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd"
+      version="3.1">
+      ...
+      </ejb-jar>
+
+      The instance documents may indicate the published version of
+      the schema using the xsi:schemaLocation attribute for the
+      Java EE namespace with the following location:
+
+      http://java.sun.com/xml/ns/javaee/ejb-jar_3_1.xsd
+
+]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+
+      - 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.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_6.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="ejb-jar"
+               type="javaee:ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This is the root of the ejb-jar deployment descriptor.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:key name="ejb-name-key">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The ejb-name element contains the name of an enterprise
+          bean. The name must be unique within the ejb-jar or
+          .war file.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:enterprise-beans/*"/>
+      <xsd:field xpath="javaee:ejb-name"/>
+    </xsd:key>
+    <xsd:keyref name="ejb-name-references"
+                refer="javaee:ejb-name-key">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The keyref indicates the references from
+          relationship-role-source must be to a specific ejb-name
+          defined within the scope of enterprise-beans element. 
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath=".//javaee:ejb-relationship-role/javaee:relationship-role-source"/>
+      <xsd:field xpath="javaee:ejb-name"/>
+    </xsd:keyref>
+    <xsd:key name="role-name-key">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          A role-name-key is specified to allow the references
+          from the security-role-refs.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:assembly-descriptor/javaee:security-role"/>
+      <xsd:field xpath="javaee:role-name"/>
+    </xsd:key>
+    <xsd:keyref name="role-name-references"
+                refer="javaee:role-name-key">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The keyref indicates the references from
+          security-role-ref to a specified role-name.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:enterprise-beans/*/javaee:security-role-ref"/>
+      <xsd:field xpath="javaee:role-link"/>
+    </xsd:keyref>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="access-timeoutType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The access-timeoutType represents the maximum amount of
+        time (in a given time unit) that the container should wait for
+        a concurrency lock before throwing a timeout exception to the
+        client.
+        
+        A timeout value of 0 means concurrent access is not permitted.
+        
+        A timeout value of -1 means wait indefinitely to acquire a lock.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="timeout"
+                   type="javaee:xsdIntegerType"/>
+      <xsd:element name="unit"
+                   type="javaee:time-unit-typeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="async-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The async-methodType element specifies that a session
+        bean method has asynchronous invocation semantics.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="method-name"
+                   type="javaee:string"/>
+      <xsd:element name="method-params"
+                   type="javaee:method-paramsType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The activation-configType defines information about the
+        expected configuration properties of the message-driven bean
+        in its operational environment. This may include information
+        about message acknowledgement, message selector, expected
+        destination type, etc.
+        
+        The configuration information is expressed in terms of
+        name/value configuration properties.
+        
+        The properties that are recognized for a particular
+        message-driven bean are determined by the messaging type.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="activation-config-property"
+                   type="javaee:activation-config-propertyType"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-config-propertyType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The activation-config-propertyType contains a name/value
+        configuration property pair for a message-driven bean.
+        
+        The properties that are recognized for a particular
+        message-driven bean are determined by the messaging type.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="activation-config-property-name"
+                   type="javaee:xsdStringType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The activation-config-property-name element contains
+            the name for an activation configuration property of
+            a message-driven bean.
+            
+            For JMS message-driven beans, the following property
+            names are recognized: acknowledgeMode,
+            messageSelector, destinationType, subscriptionDurability
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="activation-config-property-value"
+                   type="javaee:xsdStringType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The activation-config-property-value element
+            contains the value for an activation configuration
+            property of a message-driven bean.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="around-invokeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The around-invoke type specifies a method on a
+        class to be called during the around invoke portion of an 
+        ejb invocation.  Note that each class may have only one
+        around invoke method and that the method may not be
+        overloaded.
+        
+        If the class element is missing then
+        the class defining the callback is assumed to be the
+        interceptor class or component class in scope at the
+        location in the descriptor in which the around invoke
+        definition appears.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="class"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0"/>
+      <xsd:element name="method-name"
+                   type="javaee:java-identifierType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="around-timeoutType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The around-timeout type specifies a method on a
+        class to be called during the around-timeout portion of
+        a timer timeout callback.  Note that each class may have 
+        only one around-timeout method and that the method may not 
+        be overloaded.
+        
+        If the class element is missing then
+        the class defining the callback is assumed to be the
+        interceptor class or component class in scope at the
+        location in the descriptor in which the around-timeout
+        definition appears.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="class"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0"/>
+      <xsd:element name="method-name"
+                   type="javaee:java-identifierType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="assembly-descriptorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The assembly-descriptorType defines
+        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, the definition
+        of interceptor bindings, a list of
+        methods to be excluded from being invoked, and a list of
+        exception types that should be treated as application exceptions.
+        
+        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 or .war file producer.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="security-role"
+                   type="javaee:security-roleType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="method-permission"
+                   type="javaee:method-permissionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="container-transaction"
+                   type="javaee:container-transactionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="interceptor-binding"
+                   type="javaee:interceptor-bindingType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination"
+                   type="javaee:message-destinationType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="exclude-list"
+                   type="javaee:exclude-listType"
+                   minOccurs="0"/>
+      <xsd:element name="application-exception"
+                   type="javaee:application-exceptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The cmp-fieldType describes a container-managed field. The
+        cmp-fieldType contains an optional description of the field,
+        and the name of the field.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="field-name"
+                   type="javaee:java-identifierType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The cmp-versionType specifies the version of an entity bean
+        with container-managed persistence. It is used by
+        cmp-version elements.
+        
+        The value must be one of the two following:
+        
+        1.x
+        2.x
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="1.x"/>
+        <xsd:enumeration value="2.x"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The cmr-fieldType 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.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="cmr-field-name"
+                   type="javaee:string">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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".
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmr-field-type"
+                   type="javaee:cmr-field-typeType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-field-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The cmr-field-type element specifies the class of a
+        collection-valued logical relationship field in the entity
+        bean class. The value of an element using cmr-field-typeType
+        must be either: java.util.Collection or java.util.Set.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="java.util.Collection"/>
+        <xsd:enumeration value="java.util.Set"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="concurrency-management-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The concurrency-management-typeType specifies the way concurrency
+        is managed for a singleton or stateful session bean.  
+        
+        The concurrency management type must be one of the following:
+        
+        Bean
+        Container
+        
+        Bean managed concurrency can only be specified for a singleton bean.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="Bean"/>
+        <xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="concurrent-lock-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The concurrent-lock-typeType specifies how the container must
+        manage concurrent access to a method of a Singleton bean 
+        with container-managed concurrency.
+        
+        The container managed concurrency lock type must be one 
+        of the following :
+        
+        Read
+        Write
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="Read"/>
+        <xsd:enumeration value="Write"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="concurrent-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The concurrent-methodType specifies information about a method
+        of a bean with container managed concurrency.
+        
+        The optional lock element specifies the kind of concurrency 
+        lock asssociated with the method.
+        
+        The optional access-timeout element specifies the amount of
+        time (in a given time unit) the container should wait for a
+        concurrency lock before throwing an exception to the client.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="method"
+                   type="javaee:named-methodType"/>
+      <xsd:element name="lock"
+                   type="javaee:concurrent-lock-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="access-timeout"
+                   type="javaee:access-timeoutType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="container-transactionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The container-transactionType specifies how the container
+        must manage transaction scopes for the enterprise bean's
+        method invocations. It defines an optional description, a
+        list of method elements, and a transaction attribute. The
+        transaction attribute is to be applied to all the specified
+        methods.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+                   type="javaee:methodType"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="trans-attribute"
+                   type="javaee:trans-attributeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="depends-onType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The depends-onType is used to express initialization 
+        ordering dependencies between Singleton components.
+        The depends-onType specifies the names of one or more
+        Singleton beans in the same application as the referring
+        Singleton, each of which must be initialized before
+        the referring bean.  
+        
+        Each dependent bean is expressed using ejb-link syntax.
+        The order in which dependent beans are initialized at 
+        runtime is not guaranteed to match the order in which
+        they are listed.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="ejb-name"
+                   type="javaee:ejb-linkType"
+                   minOccurs="1"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-classType">
+    <xsd:annotation>
+      <xsd:documentation>
+<![CDATA[[
+        The ejb-classType contains the fully-qualified name of the
+        enterprise bean's class. It is used by ejb-class elements. 
+        
+        Example:
+        
+        <ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>
+        
+]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The ejb-jarType defines the root element of the EJB
+        deployment descriptor. It contains
+        
+        - an optional description of the ejb-jar file
+        - an optional display name
+        - an optional icon that contains a small and a large
+        icon file name
+        - an optional module name. Only applicable to
+        stand-alone ejb-jars or ejb-jars packaged in an ear.
+        Ignored if specified for an ejb-jar.xml within a .war.
+        In that case, standard .war module-name rules apply.
+        - structural information about all included
+        enterprise beans that is not specified through
+        annotations
+        - structural information about interceptor classes
+        - 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.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="module-name"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="enterprise-beans"
+                   type="javaee:enterprise-beansType"
+                   minOccurs="0"/>
+      <xsd:element name="interceptors"
+                   type="javaee:interceptorsType"
+                   minOccurs="0"/>
+      <xsd:element name="relationships"
+                   type="javaee:relationshipsType"
+                   minOccurs="0">
+        <xsd:unique name="relationship-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb-relation-name contains the name of a
+              relation. The name must be unique within
+              relationships.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-relation"/>
+          <xsd:field xpath="javaee:ejb-relation-name"/>
+        </xsd:unique>
+      </xsd:element>
+      <xsd:element name="assembly-descriptor"
+                   type="javaee:assembly-descriptorType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            Providing an assembly-descriptor in the deployment
+            descriptor is optional for the ejb-jar or .war file
+            producer.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-client-jar"
+                   type="javaee:pathType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+<![CDATA[[
+            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.
+            
+            Example:
+            
+            	  <ejb-client-jar>employee_service_client.jar
+            	  </ejb-client-jar>
+            
+]]>
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+                   type="javaee:dewey-versionType"
+                   fixed="3.1"
+                   use="required">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The version specifies the version of the
+          EJB specification that the instance document must 
+          comply with. This information enables deployment tools
+          to validate a particular EJB Deployment
+          Descriptor with respect to a specific version of the EJB
+          schema. 
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="metadata-complete"
+                   type="xsd:boolean">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The metadata-complete attribute defines whether this
+          deployment descriptor and other related deployment
+          descriptors for this module (e.g., web service
+          descriptors) are complete, or whether the class
+          files available to this module and packaged with
+          this application should be examined for annotations
+          that specify deployment information.
+          
+          If metadata-complete is set to "true", the deployment
+          tool must ignore any annotations that specify deployment
+          information, which might be present in the class files
+          of the application.
+          
+          If metadata-complete is not specified or is set to
+          "false", the deployment tool must examine the class
+          files of the application for annotations, as
+          specified by the specifications.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+<![CDATA[[
+        The ejb-nameType specifies an enterprise bean's name. It is
+        used by ejb-name elements. This name is assigned by the
+        file producer to name the enterprise bean in the
+        ejb-jar or .war file's deployment descriptor. The name must be
+        unique among the names of the enterprise beans in the same
+        ejb-jar or .war file.
+        
+        There is no architected relationship between the used
+        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 must conform to the lexical
+        rules for an NMTOKEN.
+        
+        Example:
+        
+        <ejb-name>EmployeeService</ejb-name>
+        
+]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The ejb-relationType describes a relationship between two
+        entity beans with container-managed persistence.  It is used
+        by ejb-relation elements. It 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.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation-name"
+                   type="javaee:string"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The ejb-relation-name element provides a unique name
+            within the ejb-jar file for a relationship.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-relationship-role"
+                   type="javaee:ejb-relationship-roleType"/>
+      <xsd:element name="ejb-relationship-role"
+                   type="javaee:ejb-relationship-roleType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationship-roleType">
+    <xsd:annotation>
+      <xsd:documentation>
+<![CDATA[[
+        The ejb-relationship-roleType describes a role within a
+        relationship. There are two roles in each relationship.
+        
+        The ejb-relationship-roleType 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.
+        
+        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>
+        </ejb-relation>
+        
+]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relationship-role-name"
+                   type="javaee:string"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="multiplicity"
+                   type="javaee:multiplicityType"/>
+      <xsd:element name="cascade-delete"
+                   type="javaee:emptyType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="relationship-role-source"
+                   type="javaee:relationship-role-sourceType"/>
+      <xsd:element name="cmr-field"
+                   type="javaee:cmr-fieldType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="enterprise-beansType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The enterprise-beansType declares one or more enterprise
+        beans. Each bean can be a session, entity or message-driven
+        bean.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:choice maxOccurs="unbounded">
+      <xsd:element name="session"
+                   type="javaee:session-beanType">
+        <xsd:unique name="session-ejb-local-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb-ref-name element contains the name of
+              an EJB reference. The EJB reference is an entry in
+              the component's environment and is relative to the
+              java:comp/env context.  The name must be unique within
+              the component.
+              
+              It is recommended that name be prefixed with "ejb/".
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-local-ref"/>
+          <xsd:field xpath="javaee:ejb-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="session-ejb-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb-ref-name element contains the name of an EJB
+              reference. The EJB reference is an entry in the
+              component's environment and is relative to the
+              java:comp/env context. The name must be unique
+              within the component.
+              
+              It is recommended that name is prefixed with "ejb/".
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-ref"/>
+          <xsd:field xpath="javaee:ejb-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="session-resource-env-ref-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The resource-env-ref-name element specifies the name
+              of a resource environment reference; its value is
+              the environment entry name used in the component
+              code. The name is a JNDI name relative to the
+              java:comp/env context and must be unique within an
+              component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:resource-env-ref"/>
+          <xsd:field xpath="javaee:resource-env-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="session-message-destination-ref-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The message-destination-ref-name element specifies the name
+              of a message destination reference; its value is
+              the message destination reference name used in the component
+              code. The name is a JNDI name relative to the
+              java:comp/env context and must be unique within an
+              component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:message-destination-ref"/>
+          <xsd:field xpath="javaee:message-destination-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="session-res-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              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 component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:resource-ref"/>
+          <xsd:field xpath="javaee:res-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="session-env-entry-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The env-entry-name element contains the name of a
+              component's environment entry.  The name is a JNDI
+              name relative to the java:comp/env context.  The
+              name must be unique within an component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:env-entry"/>
+          <xsd:field xpath="javaee:env-entry-name"/>
+        </xsd:unique>
+      </xsd:element>
+      <xsd:element name="entity"
+                   type="javaee:entity-beanType">
+        <xsd:unique name="entity-ejb-local-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb-ref-name element contains the name of
+              an EJB reference. The EJB reference is an entry in
+              the component's environment and is relative to the
+              java:comp/env context.  The name must be unique within
+              the component.
+              
+              It is recommended that name be prefixed with "ejb/".
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-local-ref"/>
+          <xsd:field xpath="javaee:ejb-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="entity-ejb-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb-ref-name element contains the name of an EJB
+              reference. The EJB reference is an entry in the
+              component's environment and is relative to the
+              java:comp/env context. The name must be unique
+              within the component.
+              
+              It is recommended that name is prefixed with "ejb/".
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-ref"/>
+          <xsd:field xpath="javaee:ejb-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="entity-resource-env-ref-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The resource-env-ref-name element specifies the name
+              of a resource environment reference; its value is
+              the environment entry name used in the component
+              code. The name is a JNDI name relative to the
+              java:comp/env context and must be unique within an
+              component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:resource-env-ref"/>
+          <xsd:field xpath="javaee:resource-env-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="entity-message-destination-ref-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The message-destination-ref-name element specifies the name
+              of a message destination reference; its value is
+              the message destination reference name used in the component
+              code. The name is a JNDI name relative to the
+              java:comp/env context and must be unique within an
+              component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:message-destination-ref"/>
+          <xsd:field xpath="javaee:message-destination-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="entity-res-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              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 component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:resource-ref"/>
+          <xsd:field xpath="javaee:res-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="entity-env-entry-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The env-entry-name element contains the name of a
+              component's environment entry.  The name is a JNDI
+              name relative to the java:comp/env context.  The
+              name must be unique within an component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:env-entry"/>
+          <xsd:field xpath="javaee:env-entry-name"/>
+        </xsd:unique>
+      </xsd:element>
+      <xsd:element name="message-driven"
+                   type="javaee:message-driven-beanType">
+        <xsd:unique name="messaged-ejb-local-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb-ref-name element contains the name of
+              an EJB reference. The EJB reference is an entry in
+              the component's environment and is relative to the
+              java:comp/env context.  The name must be unique within
+              the component.
+              
+              It is recommended that name be prefixed with "ejb/".
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-local-ref"/>
+          <xsd:field xpath="javaee:ejb-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="messaged-ejb-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb-ref-name element contains the name of an EJB
+              reference. The EJB reference is an entry in the
+              component's environment and is relative to the
+              java:comp/env context. The name must be unique
+              within the component.
+              
+              It is recommended that name is prefixed with "ejb/".
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-ref"/>
+          <xsd:field xpath="javaee:ejb-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="messaged-resource-env-ref-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The resource-env-ref-name element specifies the name
+              of a resource environment reference; its value is
+              the environment entry name used in the component
+              code. The name is a JNDI name relative to the
+              java:comp/env context and must be unique within an
+              component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:resource-env-ref"/>
+          <xsd:field xpath="javaee:resource-env-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="messaged-message-destination-ref-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The message-destination-ref-name element specifies the name
+              of a message destination reference; its value is
+              the message destination reference name used in the component
+              code. The name is a JNDI name relative to the
+              java:comp/env context and must be unique within an
+              component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:message-destination-ref"/>
+          <xsd:field xpath="javaee:message-destination-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="messaged-res-ref-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              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 component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:resource-ref"/>
+          <xsd:field xpath="javaee:res-ref-name"/>
+        </xsd:unique>
+        <xsd:unique name="messaged-env-entry-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The env-entry-name element contains the name of a
+              component's environment entry.  The name is a JNDI
+              name relative to the java:comp/env context.  The
+              name must be unique within an component.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:env-entry"/>
+          <xsd:field xpath="javaee:env-entry-name"/>
+        </xsd:unique>
+      </xsd:element>
+    </xsd:choice>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="entity-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The entity-beanType declares an entity bean. The declaration
+        consists of:
+        
+        - an optional description
+        - an optional display name
+        - an optional icon element that contains a small and a large 
+        icon file name
+        - a unique name assigned to the enterprise bean
+        in the deployment descriptor
+        - an optional mapped-name element that can be used to provide
+        vendor-specific deployment information such as the physical
+        jndi-name of the entity bean's remote home interface. This 
+        element is not required to be supported by all implementations.
+        Any use of this element is non-portable.
+        - 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 optional entity bean's persistence management type. If 
+        this element is not specified it is defaulted to Container.
+        - 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 bean's web 
+        service 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 declaration of the bean's message 
+        destination 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.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+                   type="javaee:ejb-nameType"/>
+      <xsd:element name="mapped-name"
+                   type="javaee:xsdStringType"
+                   minOccurs="0"/>
+      <xsd:element name="home"
+                   type="javaee:homeType"
+                   minOccurs="0"/>
+      <xsd:element name="remote"
+                   type="javaee:remoteType"
+                   minOccurs="0"/>
+      <xsd:element name="local-home"
+                   type="javaee:local-homeType"
+                   minOccurs="0"/>
+      <xsd:element name="local"
+                   type="javaee:localType"
+                   minOccurs="0"/>
+      <xsd:element name="ejb-class"
+                   type="javaee:ejb-classType"/>
+      <xsd:element name="persistence-type"
+                   type="javaee:persistence-typeType"/>
+      <xsd:element name="prim-key-class"
+                   type="javaee:fully-qualified-classType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="reentrant"
+                   type="javaee:true-falseType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The reentrant element specifies whether an entity
+            bean is reentrant or not.
+            
+            The reentrant element must be one of the two
+            following: true or false
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmp-version"
+                   type="javaee:cmp-versionType"
+                   minOccurs="0"/>
+      <xsd:element name="abstract-schema-name"
+                   type="javaee:java-identifierType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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. 
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmp-field"
+                   type="javaee:cmp-fieldType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="primkey-field"
+                   type="javaee:string"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-role-ref"
+                   type="javaee:security-role-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="security-identity"
+                   type="javaee:security-identityType"
+                   minOccurs="0"/>
+      <xsd:element name="query"
+                   type="javaee:queryType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="exclude-listType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The exclude-listType 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.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+                   type="javaee:methodType"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="application-exceptionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The application-exceptionType declares an application
+        exception. The declaration consists of:
+        
+        - the exception class. When the container receives
+        an exception of this type, it is required to 
+        forward this exception as an applcation exception 
+        to the client regardless of whether it is a checked
+        or unchecked exception.
+        - an optional rollback element. If this element is 
+        set to true, the container must rollback the current 
+        transaction before forwarding the exception to the
+        client.  If not specified, it defaults to false.
+        - an optional inherited element. If this element is 
+        set to true, subclasses of the exception class type
+        are also automatically considered application 
+        exceptions (unless overriden at a lower level).
+        If set to false, only the exception class type is
+        considered an application-exception, not its
+        exception subclasses. If not specified, this
+        value defaults to true.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="exception-class"
+                   type="javaee:fully-qualified-classType"/>
+      <xsd:element name="rollback"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+      <xsd:element name="inherited"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptorsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The interceptorsType element declares one or more interceptor
+        classes used by components within this ejb-jar or .war.  The declaration
+        consists of :
+        
+        - An optional description.
+        - One or more interceptor elements.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="interceptor"
+                   type="javaee:interceptorType"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The interceptorType element declares information about a single
+        interceptor class.  It consists of :
+        
+        - An optional description.
+        - The fully-qualified name of the interceptor class.
+        - An optional list of around invoke methods declared on the
+        interceptor class and/or its super-classes.
+        - An optional list of around timeout methods declared on the
+        interceptor class and/or its super-classes.
+        - An optional list environment dependencies for the interceptor
+        class and/or its super-classes.
+        - An optional list of post-activate methods declared on the
+        interceptor class and/or its super-classes.
+        - An optional list of pre-passivate methods declared on the
+        interceptor class and/or its super-classes.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="interceptor-class"
+                   type="javaee:fully-qualified-classType"/>
+      <xsd:element name="around-invoke"
+                   type="javaee:around-invokeType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="around-timeout"
+                   type="javaee:around-timeoutType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="post-activate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="pre-passivate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptor-bindingType">
+    <xsd:annotation>
+      <xsd:documentation>
+<![CDATA[[
+        The interceptor-bindingType element describes the binding of
+        interceptor classes to beans within the ejb-jar or .war.
+        It consists of :
+        
+        - An optional description.
+        - The name of an ejb within the module or the wildcard value "*",
+        which is used to define interceptors that are bound to all
+        beans in the ejb-jar or .war.
+        - A list of interceptor classes that are bound to the contents of
+        the ejb-name element or a specification of the total ordering
+        over the interceptors defined for the given level and above.
+        - An optional exclude-default-interceptors element.  If set to true,
+        specifies that default interceptors are not to be applied to 
+        a bean-class and/or business method.
+        - An optional exclude-class-interceptors element.  If set to true,
+        specifies that class interceptors are not to be applied to 
+        a business method.
+        - An optional set of method elements for describing the name/params
+        of a method-level interceptor.
+        
+        Interceptors bound to all classes using the wildcard syntax
+        "*" are default interceptors for the components in the ejb-jar or .war. 
+        In addition, interceptors may be bound at the level of the bean
+        class (class-level interceptors) or business methods (method-level
+        interceptors ).
+        
+        The binding of interceptors to classes is additive.  If interceptors
+        are bound at the class-level and/or default-level as well as the
+        method-level, both class-level and/or default-level as well as
+        method-level will apply. 
+        
+        There are four possible styles of the interceptor element syntax :
+        
+        1.
+        <interceptor-binding>
+        <ejb-name>*</ejb-name>
+        <interceptor-class>INTERCEPTOR</interceptor-class>
+        </interceptor-binding>
+        
+        Specifying the ejb-name as the wildcard value "*" designates
+        default interceptors (interceptors that apply to all session and
+        message-driven beans contained in the ejb-jar or .war).
+        
+        2. 
+        <interceptor-binding>
+        <ejb-name>EJBNAME</ejb-name>
+        <interceptor-class>INTERCEPTOR</interceptor-class>
+        </interceptor-binding>
+        
+        This style is used to refer to interceptors associated with the
+        specified enterprise bean(class-level interceptors).
+        
+        3. 
+        <interceptor-binding>
+        <ejb-name>EJBNAME</ejb-name>
+        <interceptor-class>INTERCEPTOR</interceptor-class>
+        <method>
+        <method-name>METHOD</method-name>
+        </method>
+        </interceptor-binding>
+        
+        This style is used to associate a method-level interceptor with 
+        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.  Method-level
+        interceptors can only be associated with business methods of the
+        bean class.   Note that the wildcard value "*" cannot be used
+        to specify method-level interceptors.
+        
+        4. 
+        <interceptor-binding>
+        <ejb-name>EJBNAME</ejb-name>
+        <interceptor-class>INTERCEPTOR</interceptor-class>
+        <method>
+        <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>
+        </interceptor-binding>
+        
+        This style is used to associate a method-level interceptor with 
+        the specified method of the specified enterprise bean.  This 
+        style is used to refer to a single method within a set of methods
+        with an overloaded name.  The values 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[][]).
+        
+]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+                   type="javaee:string"/>
+      <xsd:choice>
+        <xsd:element name="interceptor-class"
+                     type="javaee:fully-qualified-classType"
+                     minOccurs="0"
+                     maxOccurs="unbounded"/>
+        <xsd:element name="interceptor-order"
+                     type="javaee:interceptor-orderType"
+                     minOccurs="1"/>
+      </xsd:choice>
+      <xsd:element name="exclude-default-interceptors"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+      <xsd:element name="exclude-class-interceptors"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+      <xsd:element name="method"
+                   type="javaee:named-methodType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="interceptor-orderType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The interceptor-orderType element describes a total ordering
+        of interceptor classes.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="interceptor-class"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="1"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="named-methodType">
+    <xsd:sequence>
+      <xsd:element name="method-name"
+                   type="javaee:string"/>
+      <xsd:element name="method-params"
+                   type="javaee:method-paramsType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="init-methodType">
+    <xsd:sequence>
+      <xsd:element name="create-method"
+                   type="javaee:named-methodType"/>
+      <xsd:element name="bean-method"
+                   type="javaee:named-methodType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="remove-methodType">
+    <xsd:sequence>
+      <xsd:element name="bean-method"
+                   type="javaee:named-methodType"/>
+      <xsd:element name="retain-if-exception"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="message-driven-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The message-driven element declares a message-driven
+        bean. The declaration consists of:
+        
+        - an optional description
+        - an optional display name
+        - an optional icon element that contains a small and a large 
+        icon file name. 
+        - a name assigned to the enterprise bean in
+        the deployment descriptor
+        - an optional mapped-name element that can be used to provide
+        vendor-specific deployment information such as the physical
+        jndi-name of destination from which this message-driven bean
+        should consume.  This element is not required to be supported 
+        by all implementations.  Any use of this element is non-portable.
+        - the message-driven bean's implementation class
+        - an optional declaration of the bean's messaging 
+        type 
+        - an optional declaration of the bean's timeout method for
+        handling programmatically created timers
+        - an optional declaration of timers to be automatically created at
+        deployment time
+        - the optional message-driven bean's transaction management 
+        type. If it is not defined, it is defaulted to Container.
+        - an optional declaration of the bean's 
+        message-destination-type
+        - an optional declaration of the bean's 
+        message-destination-link
+        - an optional declaration of the message-driven bean's
+        activation configuration properties
+        - an optional list of the message-driven bean class and/or
+        superclass around-invoke methods.
+        - an optional list of the message-driven bean class and/or
+        superclass around-timeout methods.
+        - 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 bean's web service
+        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 declaration of the bean's message 
+        destination references
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+                   type="javaee:ejb-nameType"/>
+      <xsd:element name="mapped-name"
+                   type="javaee:xsdStringType"
+                   minOccurs="0"/>
+      <xsd:element name="ejb-class"
+                   type="javaee:ejb-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The ejb-class element specifies the fully qualified name
+            of the bean class for this ejb.  It is required unless
+            there is a component-defining annotation for the same
+            ejb-name.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="messaging-type"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The messaging-type element specifies the message
+            listener interface of the message-driven bean. 
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="timeout-method"
+                   type="javaee:named-methodType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The timeout-method element specifies the method that
+            will receive callbacks for programmatically
+            created timers.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="timer"
+                   type="javaee:timerType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="transaction-type"
+                   type="javaee:transaction-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="message-destination-type"
+                   type="javaee:message-destination-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="message-destination-link"
+                   type="javaee:message-destination-linkType"
+                   minOccurs="0"/>
+      <xsd:element name="activation-config"
+                   type="javaee:activation-configType"
+                   minOccurs="0"/>
+      <xsd:element name="around-invoke"
+                   type="javaee:around-invokeType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="around-timeout"
+                   type="javaee:around-timeoutType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="security-role-ref"
+                   type="javaee:security-role-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+      </xsd:element>
+      <xsd:element name="security-identity"
+                   type="javaee:security-identityType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+<![CDATA[[
+        The methodType is used to denote a method of an enterprise
+        bean's business, home, component, and/or web service endpoint
+        interface, or, in the case of a message-driven bean, the
+        bean's message listener method, or a set of such
+        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 the business, home, component, and/or web service 
+        endpoint nterfaces; 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 using methodType element
+        within a method element:
+        
+        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 business, home, component, 
+        and/or web service endpoint 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. 
+        
+        Examples:
+        
+        Style 1: The following method element refers to all the
+        methods of the EmployeeService bean's business, home, 
+        component, and/or web service endpoint 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 business, home, component,
+        and/or web service endpoint interfaces with the same name and
+        signature. However, if the same method is a method of both the
+        local business interface, and the local component interface, 
+        the same attribute applies to the method for both interfaces.
+        Likewise, if the same method is a method of both the remote 
+        business interface and the remote component interface, the same
+        attribute applies to the method for both interfaces.
+        
+        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
+        and the remote business interface.
+        
+        <method>
+        <ejb-name>EmployeeService</ejb-name>
+        <method-intf>Home</method-intf>
+        <method-name>*</method-name>
+        </method>
+        
+]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+                   type="javaee:ejb-nameType"/>
+      <xsd:element name="method-intf"
+                   type="javaee:method-intfType"
+                   minOccurs="0">
+      </xsd:element>
+      <xsd:element name="method-name"
+                   type="javaee:method-nameType"/>
+      <xsd:element name="method-params"
+                   type="javaee:method-paramsType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-intfType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        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 home and
+        component interfaces (e.g, in both an enterprise bean's
+        remote and local interfaces or in both an enterprise bean's
+        home and remote interfaces, etc.); the component and web
+        service endpoint interfaces, and so on. 
+        
+        Local applies to the local component interface, local business 
+        interfaces, and the no-interface view. 
+        
+        Remote applies to both remote component interface and the remote 
+        business interfaces.  
+        
+        ServiceEndpoint refers to methods exposed through a web service
+        endpoint.
+        
+        Timer refers to the bean's timeout callback methods.
+        
+        MessageEndpoint refers to the methods of a message-driven bean's
+        message-listener interface.
+        
+        The method-intf element must be one of the following:
+        
+        Home
+        Remote
+        LocalHome
+        Local
+        ServiceEndpoint
+        Timer
+        MessageEndpoint
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="Home"/>
+        <xsd:enumeration value="Remote"/>
+        <xsd:enumeration value="LocalHome"/>
+        <xsd:enumeration value="Local"/>
+        <xsd:enumeration value="ServiceEndpoint"/>
+        <xsd:enumeration value="Timer"/>
+        <xsd:enumeration value="MessageEndpoint"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The method-nameType 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 client view interfaces.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-paramsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The method-paramsType defines a list of the
+        fully-qualified Java type names of the method parameters.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="method-param"
+                   type="javaee:java-typeType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The method-param element contains a primitive
+            or a fully-qualified Java type name of a method
+            parameter.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="method-permissionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The method-permissionType specifies that one or more
+        security roles are allowed to invoke one or more enterprise
+        bean methods. The method-permissionType 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-permissionType
+        must be defined in the security-role elements of the
+        deployment descriptor, and the methods must be methods
+        defined in the enterprise bean's business, home, component 
+        and/or web service endpoint interfaces.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:choice>
+        <xsd:element name="role-name"
+                     type="javaee:role-nameType"
+                     maxOccurs="unbounded"/>
+        <xsd:element name="unchecked"
+                     type="javaee:emptyType">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The unchecked element specifies that a method is
+              not checked for authorization by the container
+              prior to invocation of the method.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+      </xsd:choice>
+      <xsd:element name="method"
+                   type="javaee:methodType"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="multiplicityType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The multiplicityType describes the multiplicity of the
+        role that participates in a relation.
+        
+        The value must be one of the two following:
+        
+        One
+        Many
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="One"/>
+        <xsd:enumeration value="Many"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="persistence-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The persistence-typeType specifies an entity bean's persistence
+        management type.
+        
+        The persistence-type element must be one of the two following:
+        
+        Bean
+        Container
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="Bean"/>
+        <xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="queryType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The queryType defines 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".
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"/>
+      <xsd:element name="query-method"
+                   type="javaee:query-methodType"/>
+      <xsd:element name="result-type-mapping"
+                   type="javaee:result-type-mappingType"
+                   minOccurs="0"/>
+      <xsd:element name="ejb-ql"
+                   type="javaee:xsdStringType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="query-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+<![CDATA[[
+        The query-method specifies 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.
+        
+        It is used by the query-method element. 
+        
+        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>
+        
+]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="method-name"
+                   type="javaee:method-nameType"/>
+      <xsd:element name="method-params"
+                   type="javaee:method-paramsType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="relationship-role-sourceType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The relationship-role-sourceType designates the source of a
+        role that participates in a relationship. A
+        relationship-role-sourceType is used by
+        relationship-role-source elements to uniquely identify an
+        entity bean.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-name"
+                   type="javaee:ejb-nameType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="relationshipsType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The relationshipsType describes the relationships in
+        which entity beans with container-managed persistence
+        participate. The relationshipsType contains an optional
+        description; and a list of ejb-relation elements, which
+        specify the container managed relationships.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation"
+                   type="javaee:ejb-relationType"
+                   maxOccurs="unbounded">
+        <xsd:unique name="role-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb-relationship-role-name contains the name of a
+              relationship role. The name must be unique within 
+              a relationship, but can be reused in different
+              relationships.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath=".//javaee:ejb-relationship-role-name"/>
+          <xsd:field xpath="."/>
+        </xsd:unique>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="result-type-mappingType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The result-type-mappingType 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 value must be one of the following:
+        
+        Local
+        Remote
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="Local"/>
+        <xsd:enumeration value="Remote"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="security-identityType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The security-identityType 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.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:choice>
+        <xsd:element name="use-caller-identity"
+                     type="javaee:emptyType">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              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.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+        </xsd:element>
+        <xsd:element name="run-as"
+                     type="javaee:run-asType"/>
+      </xsd:choice>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-beanType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The session-beanType declares an session bean. The
+        declaration consists of:
+        
+        - an optional description
+        - an optional display name
+        - an optional icon element that contains a small and a large 
+        icon file name
+        - a name assigned to the enterprise bean
+        in the deployment description
+        - an optional mapped-name element that can be used to provide
+        vendor-specific deployment information such as the physical
+        jndi-name of the session bean's remote home/business interface. 
+        This element is not required to be supported by all 
+        implementations. Any use of this element is non-portable.
+        - the names of all the remote or local business interfaces, 
+        if any
+        - 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
+        - an optional declaration that this bean exposes a
+        no-interface view
+        - the name of the session bean's web service endpoint
+        interface, if any
+        - the session bean's implementation class
+        - the session bean's state management type
+        - an optional declaration of a stateful session bean's timeout value
+        - an optional declaration of the session bean's timeout method for
+        handling programmatically created timers
+        - an optional declaration of timers to be automatically created at
+        deployment time
+        - an optional declaration that a Singleton bean has eager
+        initialization
+        - an optional declaration of a Singleton/Stateful bean's concurrency 
+        management type
+        - an optional declaration of the method locking metadata
+        for a Singleton with container managed concurrency
+        - an optional declaration of the other Singleton beans in the
+        application that must be initialized before this bean
+        - an optional declaration of the session bean's asynchronous 
+        methods
+        - the optional session bean's transaction management type. 
+        If it is not present, it is defaulted to Container.
+        - an optional declaration of a stateful session bean's 
+        afterBegin, beforeCompletion, and/or afterCompletion methods
+        - an optional list of the session bean class and/or
+        superclass around-invoke methods.
+        - an optional list of the session bean class and/or
+        superclass around-timeout methods.
+        - 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 bean's web 
+        service 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 declaration of the bean's message 
+        destination references
+        
+        The elements that are optional are "optional" in the sense
+        that they are omitted when if lists represented by them are
+        empty.
+        
+        The service-endpoint element may only be specified if the
+        bean is a stateless session bean.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="ejb-name"
+                   type="javaee:ejb-nameType"/>
+      <xsd:element name="mapped-name"
+                   type="javaee:xsdStringType"
+                   minOccurs="0"/>
+      <xsd:element name="home"
+                   type="javaee:homeType"
+                   minOccurs="0"/>
+      <xsd:element name="remote"
+                   type="javaee:remoteType"
+                   minOccurs="0"/>
+      <xsd:element name="local-home"
+                   type="javaee:local-homeType"
+                   minOccurs="0"/>
+      <xsd:element name="local"
+                   type="javaee:localType"
+                   minOccurs="0"/>
+      <xsd:element name="business-local"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="business-remote"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="local-bean"
+                   type="javaee:emptyType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The local-bean element declares that this
+            session bean exposes a no-interface Local client view.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="service-endpoint"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The service-endpoint element contains the
+            fully-qualified name of the enterprise bean's web
+            service endpoint interface. The service-endpoint
+            element may only be specified for a stateless
+            session bean. The specified interface must be a
+            valid JAX-RPC service endpoint interface.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-class"
+                   type="javaee:ejb-classType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The ejb-class element specifies the fully qualified name
+            of the bean class for this ejb.  It is required unless
+            there is a component-defining annotation for the same
+            ejb-name.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="session-type"
+                   type="javaee:session-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="stateful-timeout"
+                   type="javaee:stateful-timeoutType"
+                   minOccurs="0"/>
+      <xsd:element name="timeout-method"
+                   type="javaee:named-methodType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The timeout-method element specifies the method that
+            will receive callbacks for programmatically
+            created timers.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="timer"
+                   type="javaee:timerType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="init-on-startup"
+                   type="javaee:true-falseType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The init-on-startup element specifies that a Singleton
+            bean has eager initialization.
+            This element can only be specified for singleton session
+            beans.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="concurrency-management-type"
+                   type="javaee:concurrency-management-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="concurrent-method"
+                   type="javaee:concurrent-methodType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="depends-on"
+                   type="javaee:depends-onType"
+                   minOccurs="0"/>
+      <xsd:element name="init-method"
+                   type="javaee:init-methodType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The init-method element specifies the mappings for
+            EJB 2.x style create methods for an EJB 3.x bean.
+            This element can only be specified for stateful 
+            session beans. 
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="remove-method"
+                   type="javaee:remove-methodType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The remove-method element specifies the mappings for
+            EJB 2.x style remove methods for an EJB 3.x bean.
+            This element can only be specified for stateful 
+            session beans. 
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="async-method"
+                   type="javaee:async-methodType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="transaction-type"
+                   type="javaee:transaction-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="after-begin-method"
+                   type="javaee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="before-completion-method"
+                   type="javaee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="after-completion-method"
+                   type="javaee:named-methodType"
+                   minOccurs="0"/>
+      <xsd:element name="around-invoke"
+                   type="javaee:around-invokeType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="around-timeout"
+                   type="javaee:around-timeoutType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:group ref="javaee:jndiEnvironmentRefsGroup"/>
+      <xsd:element name="post-activate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="pre-passivate"
+                   type="javaee:lifecycle-callbackType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="security-role-ref"
+                   type="javaee:security-role-refType"
+                   minOccurs="0"
+                   maxOccurs="unbounded">
+      </xsd:element>
+      <xsd:element name="security-identity"
+                   type="javaee:security-identityType"
+                   minOccurs="0">
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="session-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The session-typeType describes whether the session bean is a
+        singleton, stateful or stateless session. It is used by
+        session-type elements.
+        
+        The value must be one of the three following:
+        
+        Singleton
+        Stateful
+        Stateless
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="Singleton"/>
+        <xsd:enumeration value="Stateful"/>
+        <xsd:enumeration value="Stateless"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="stateful-timeoutType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The stateful-timeoutType represents the amount of time
+        a stateful session bean can be idle(not receive any client
+        invocations) before it is eligible for removal by the container.
+        
+        A timeout value of 0 means the bean is immediately eligible for removal.
+        
+        A timeout value of -1 means the bean will never be removed due to timeout.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="timeout"
+                   type="javaee:xsdIntegerType"/>
+      <xsd:element name="unit"
+                   type="javaee:time-unit-typeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="time-unit-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The time-unit-typeType represents a time duration at a given
+        unit of granularity.  
+        
+        The time unit type must be one of the following :
+        
+        Days
+        Hours
+        Minutes
+        Seconds
+        Milliseconds
+        Microseconds
+        Nanoseconds
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="Days"/>
+        <xsd:enumeration value="Hours"/>
+        <xsd:enumeration value="Minutes"/>
+        <xsd:enumeration value="Seconds"/>
+        <xsd:enumeration value="Milliseconds"/>
+        <xsd:enumeration value="Microseconds"/>
+        <xsd:enumeration value="Nanoseconds"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="timer-scheduleType">
+    <xsd:sequence>
+      <xsd:element name="second"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:element name="minute"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:element name="hour"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:element name="day-of-month"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:element name="month"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:element name="day-of-week"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:element name="year"
+                   type="javaee:string"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="timerType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The timerType specifies an enterprise bean timer.  Each
+        timer is automatically created by the container upon
+        deployment.  Timer callbacks occur based on the 
+        schedule attributes.  All callbacks are made to the
+        timeout-method associated with the timer.  
+        
+        A timer can have an optional start and/or end date. If
+        a start date is specified, it takes precedence over the
+        associated timer schedule such that any matching
+        expirations prior to the start time will not occur.
+        Likewise, no matching expirations will occur after any
+        end date.   Start/End dates are specified using the
+        XML Schema dateTime type, which follows the ISO-8601
+        standard for date(and optional time-within-the-day) 
+        representation.
+        
+        An optional flag can be used to control whether
+        this timer has persistent(true) delivery semantics or
+        non-persistent(false) delivery semantics.  If not specified,
+        the value defaults to persistent(true).
+        
+        A time zone can optionally be associated with a timer.
+        If specified, the timer's schedule is evaluated in the context
+        of that time zone, regardless of the default time zone in which
+        the container is executing.   Time zones are specified as an
+        ID string.  The set of required time zone IDs is defined by
+        the Zone Name(TZ) column of the public domain zoneinfo database.
+        
+        An optional info string can be assigned to the timer and 
+        retrieved at runtime through the Timer.getInfo() method.
+        
+        The timerType can only be specified on stateless session
+        beans, singleton session beans, and message-driven beans.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="schedule"
+                   type="javaee:timer-scheduleType"/>
+      <xsd:element name="start"
+                   type="xsd:dateTime"
+                   minOccurs="0"/>
+      <xsd:element name="end"
+                   type="xsd:dateTime"
+                   minOccurs="0"/>
+      <xsd:element name="timeout-method"
+                   type="javaee:named-methodType"/>
+      <xsd:element name="persistent"
+                   type="javaee:true-falseType"
+                   minOccurs="0"/>
+      <xsd:element name="timezone"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:element name="info"
+                   type="javaee:string"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="trans-attributeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The trans-attributeType specifies how the container must
+        manage the transaction boundaries when delegating a method 
+        invocation to an enterprise bean's business method. 
+        
+        The value must be one of the following: 
+        
+        NotSupported 
+        Supports 
+        Required  
+        RequiresNew 
+        Mandatory 
+        Never 
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="NotSupported"/>
+        <xsd:enumeration value="Supports"/>
+        <xsd:enumeration value="Required"/>
+        <xsd:enumeration value="RequiresNew"/>
+        <xsd:enumeration value="Mandatory"/>
+        <xsd:enumeration value="Never"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="transaction-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The transaction-typeType specifies an enterprise bean's
+        transaction management type.
+        
+        The transaction-type must be one of the two following:
+        
+        Bean
+        Container
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="Bean"/>
+        <xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+</xsd:schema>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_2.mdd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_2.mdd
new file mode 100644
index 0000000000..281590d2fe
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_2.mdd
@@ -0,0 +1,756 @@
+<?xml version='1.0' encoding='UTF-8' ?>
+<!--
+DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+
+Copyright (c) 2013, 2016 Oracle and/or its affiliates. All rights reserved.
+
+Oracle and Java are registered trademarks of Oracle and/or its affiliates.
+Other names may be trademarks of their respective owners.
+
+The contents of this file are subject to the terms of either the GNU
+General Public License Version 2 only ("GPL") or the Common
+Development and Distribution License("CDDL") (collectively, the
+"License"). You may not use this file except in compliance with the
+License. You can obtain a copy of the License at
+http://www.netbeans.org/cddl-gplv2.html
+or nbbuild/licenses/CDDL-GPL-2-CP. See the License for the
+specific language governing permissions and limitations under the
+License.  When distributing the software, include this License Header
+Notice in each file and include the License file at
+nbbuild/licenses/CDDL-GPL-2-CP.  Oracle designates this
+particular file as subject to the "Classpath" exception as provided
+by Oracle in the GPL Version 2 section of the License file that
+accompanied this code. If applicable, add the following below the
+License Header, with the fields enclosed by brackets [] replaced by
+your own identifying information:
+"Portions Copyrighted [year] [name of copyright owner]"
+
+If you wish your version of this file to be governed by only the CDDL
+or only the GPL Version 2, indicate your decision by adding
+"[Contributor] elects to include this software in this distribution
+under the [CDDL or GPL Version 2] license." If you do not indicate a
+single choice of license, a recipient has the option to distribute
+your version of this file under either the CDDL, the GPL Version 2 or
+to extend the choice of license to its licensees as provided above.
+However, if you add GPL Version 2 code and therefore, elected the GPL
+Version 2 license, then the option applies only if the new code is
+made subject to such option by the copyright holder.
+
+Contributor(s):
+-->
+<metaDD>
+	<meta-element>
+		<dtd-name>ejb-jar</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EjbJar</bean-name>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbJar</implements>
+                <user-code>
+                    public org.xml.sax.SAXParseException getError() {
+                        return null;
+                    }
+                    public int getStatus() {
+                        return STATE_VALID;
+                    }
+                    public String getSingleEjbClientJar() {
+                        return getEjbClientJar();
+                    }
+                    public org.netbeans.modules.j2ee.dd.api.ejb.AssemblyDescriptor getSingleAssemblyDescriptor() {
+                        return getAssemblyDescriptor(); 
+                    } 
+                    public org.netbeans.modules.j2ee.dd.api.ejb.Relationships getSingleRelationships() { 
+                        return getRelationships(); 
+                    } 
+                    public void setVersion(java.math.BigDecimal value) {
+                            setAttributeValue(VERSION, value.toString());
+                    }
+                    public java.math.BigDecimal getVersion() {
+                            return new java.math.BigDecimal(getAttributeValue(VERSION));
+                    }
+                    public Object clone() {
+                        org.netbeans.modules.j2ee.dd.api.ejb.EjbJar ejbJar =
+                            (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) super.clone();
+                        ejbJar.setVersion( getVersion());
+                        return ejbJar;
+                    }
+               </user-code> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>enterprise-beansType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EnterpriseBeans</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class> 
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EnterpriseBeans</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.GetAllEjbs</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptorsType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Interceptors</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Interceptors</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>relationshipsType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Relationships</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Relationships</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>assembly-descriptorType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>AssemblyDescriptor</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.AssemblyDescriptor</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>pathType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Path</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-roleType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>SecurityRole</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRole</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> e
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-permissionType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>MethodPermission</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.MethodPermission</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>container-transactionType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ContainerTransaction</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ContainerTransaction</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptor-bindingType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>InterceptorBinding</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.InterceptorBinding</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destinationType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>MessageDestination</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.MessageDestination</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>exclude-listType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ExcludeList</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ExcludeList</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>application-exceptionType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ApplicationException</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ApplicationException</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>fully-qualified-classType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>FullyQualifiedClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>true-falseType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>TrueFalse</bean-name>
+		<wrapper-class>boolean</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>descriptionType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Description</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdStringType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>XsdString</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>methodType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Method</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Method</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-nameType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EjbName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-intfType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>MethodIntf</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-nameType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>MethodName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>method-paramsType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>MethodParams</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.MethodParams</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>java-typeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>JavaType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>string</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>String</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>display-nameType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>DisplayName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>iconType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Icon</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.Icon</implements>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>named-methodType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>NamedMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.NamedMethod</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptor-orderType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>InterceptorOrder</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.InterceptorOrder</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>trans-attributeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>TransAttribute</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>role-nameType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>RoleName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>emptyType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Empty</bean-name>
+                 <wrapper-class>boolean</wrapper-class> 
+                 <can-be-empty/> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-relationType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EjbRelation</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbRelation</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+                <user-code>
+                    @Override
+                    public void setEjbRelationshipRole2(org.netbeans.modules.j2ee.dd.api.ejb.EjbRelationshipRole value) {
+                        this.setValue(EJB_RELATIONSHIP_ROLE, 1, value);
+                    }
+
+                    @Override
+                    public org.netbeans.modules.j2ee.dd.api.ejb.EjbRelationshipRole getEjbRelationshipRole2() {
+                        return (EjbRelationshipRole)this.getValue(EJB_RELATIONSHIP_ROLE, 1);
+                    }
+               </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-relationship-roleType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EjbRelationshipRole</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.EjbRelationshipRole</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>multiplicityType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Multiplicity</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>relationship-role-sourceType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>RelationshipRoleSource</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.RelationshipRoleSource</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmr-fieldType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>CmrField</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.CmrField</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmr-field-typeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>CmrFieldType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>interceptorType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Interceptor</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Interceptor</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>around-invokeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>AroundInvoke</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.AroundInvoke</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>lifecycle-callbackType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>LifecycleCallback</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.LifecycleCallback</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>java-identifierType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>JavaIdentifier</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>env-entryType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EnvEntry</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.EnvEntry</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EjbRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.EjbRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-local-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EjbLocalRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.EjbLocalRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>resource-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ResourceRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ResourceRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>resource-env-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ResourceEnvRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ResourceEnvRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.MessageDestinationRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.PersistenceContextRef</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-unit-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>PersistenceUnitRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.PersistenceUnitRef</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>jndi-nameType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>JndiName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>injection-targetType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>InjectionTarget</bean-name>
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+                <implements>org.netbeans.modules.j2ee.dd.api.common.InjectionTarget</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-context-typeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>PersistenceContextType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>propertyType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Property</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Property</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-typeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-usageType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationUsage</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-destination-linkType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>MessageDestinationLink</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>res-authType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ResAuth</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>res-sharing-scopeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ResSharingScope</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ServiceRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdAnyURIType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>XsdAnyURI</bean-name>
+		<wrapper-class>java.net.URI</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>xsdQNameType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>XsdQName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>port-component-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>PortComponentRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.PortComponentRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_handlerType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefHandler</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_handler-chainsType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefHandlerChains</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_handler-chainType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefHandlerChain</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChain</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_qname-pattern</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefQnamePattern</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>service-ref_protocol-bindingListType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ServiceRefProtocolBindingList</bean-name>
+		<wrapper-class>String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>param-valueType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>InitParam</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.InitParam</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-ref-nameType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EjbRefName</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-ref-typeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EjbRefType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>local-homeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>LocalHome</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>localType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Local</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-linkType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EjbLink</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>homeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Home</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>remoteType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Remote</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>env-entry-type-valuesType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EnvEntryTypeValues</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>session-beanType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>SessionBean</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class> 
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Session,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+                <user-code> 
+                public String getKeyProperty() {  
+                    return "EjbName";  
+                } 
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() {  
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot();  
+                } 
+                </user-code> 
+        </meta-element> 
+        <meta-element> 
+                <dtd-name>entity-beanType</dtd-name> 
+                <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+                <bean-name>EntityBean</bean-name> 
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+		<implements>org.netbeans.modules.j2ee.dd.api.ejb.Entity,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements>
+		<extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+                <user-code>
+                public String getKeyProperty() { 
+                    return "EjbName"; 
+                }
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() { 
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot(); 
+                }
+               </user-code>
+	</meta-element>
+	<meta-element>
+		<dtd-name>message-driven-beanType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>MessageDrivenBean</bean-name>
+                <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class> 
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.MessageDriven,org.netbeans.modules.j2ee.dd.impl.common.KeyBean</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends> 
+                <user-code> 
+                public org.netbeans.modules.j2ee.dd.api.ejb.EjbJar getRoot() {  
+                    return (org.netbeans.modules.j2ee.dd.api.ejb.EjbJar) _getRoot();  
+                } 
+                // not needed for with 3.1
+                public String getKeyProperty() {  
+                    return "EjbName";  
+                } 
+                </user-code> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>ejb-classType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>EjbClass</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>transaction-typeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>TransactionType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>activation-configType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ActivationConfig</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ActivationConfig</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-identityType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>SecurityIdentity</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.SecurityIdentity</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>run-asType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>RunAs</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.RunAs</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>activation-config-propertyType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ActivationConfigProperty</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.ActivationConfigProperty</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>persistence-typeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>PersistenceType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmp-versionType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>CmpVersion</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>cmp-fieldType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>CmpField</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.CmpField</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>security-role-refType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>SecurityRoleRef</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.common.SecurityRoleRef</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanMultiple</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>queryType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>Query</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.Query</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.DescriptionBeanSingle</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>query-methodType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>QueryMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.QueryMethod</implements> 
+                <extends>org.netbeans.modules.j2ee.dd.impl.common.EnclosingBean</extends> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>result-type-mappingType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>ResultTypeMapping</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>session-typeType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>SessionType</bean-name>
+		<wrapper-class>java.lang.String</wrapper-class>
+	</meta-element>
+	<meta-element>
+		<dtd-name>init-methodType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>InitMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.InitMethod</implements> 
+	</meta-element>
+	<meta-element>
+		<dtd-name>remove-methodType</dtd-name>
+		<namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+		<bean-name>RemoveMethod</bean-name>
+                <implements>org.netbeans.modules.j2ee.dd.api.ejb.RemoveMethod</implements> 
+	</meta-element>
+
+<!-- changes added for EE6: -->
+
+        <meta-element>
+            <dtd-name>handlerType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandler</bean-name>
+            <comparator-class>org.netbeans.modules.j2ee.dd.impl.common.Comparator</comparator-class>
+            <extends>org.netbeans.modules.j2ee.dd.impl.common.ComponentBeanMultiple</extends>
+            <implements>
+                org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandler, org.netbeans.modules.j2ee.dd.impl.common.KeyBean
+            </implements>
+            <user-code>
+                public String getKeyProperty() { return "HandlerName"; }
+            </user-code>
+        </meta-element>
+        <meta-element>
+               <dtd-name>handler-chainsType</dtd-name>
+               <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+               <bean-name>ServiceRefHandlerChains</bean-name>
+               <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChains</implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>handler-chainType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>ServiceRefHandlerChainType</bean-name>
+            <implements>org.netbeans.modules.j2ee.dd.api.common.ServiceRefHandlerChain</implements>
+        </meta-element>
+        <meta-element>
+            <dtd-name>dewey-versionType</dtd-name>
+            <namespace>http://xmlns.jcp.org/xml/ns/javaee</namespace>
+            <bean-name>version</bean-name>
+            <wrapper-class>java.math.BigDecimal</wrapper-class>
+        </meta-element>
+</metaDD>
diff --git a/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_2.xsd b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_2.xsd
new file mode 100644
index 0000000000..62e9ffdae5
--- /dev/null
+++ b/enterprise/j2ee.dd/src/org/netbeans/modules/j2ee/dd/impl/resources/ejb-jar_3_2.xsd
@@ -0,0 +1,3375 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
+            targetNamespace="http://xmlns.jcp.org/xml/ns/javaee"
+            xmlns:javaee="http://xmlns.jcp.org/xml/ns/javaee"
+            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
+            elementFormDefault="qualified"
+            attributeFormDefault="unqualified"
+            version="3.2">
+  <xsd:annotation>
+    <xsd:documentation>
+
+      DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
+      
+      Copyright (c) 2009-2013 Oracle and/or its affiliates. All rights reserved.
+      
+      The contents of this file are subject to the terms of either the GNU
+      General Public License Version 2 only ("GPL") or the Common Development
+      and Distribution License("CDDL") (collectively, the "License").  You
+      may not use this file except in compliance with the License.  You can
+      obtain a copy of the License at
+      https://glassfish.dev.java.net/public/CDDL+GPL_1_1.html
+      or packager/legal/LICENSE.txt.  See the License for the specific
+      language governing permissions and limitations under the License.
+      
+      When distributing the software, include this License Header Notice in each
+      file and include the License file at packager/legal/LICENSE.txt.
+      
+      GPL Classpath Exception:
+      Oracle designates this particular file as subject to the "Classpath"
+      exception as provided by Oracle in the GPL Version 2 section of the License
+      file that accompanied this code.
+      
+      Modifications:
+      If applicable, add the following below the License Header, with the fields
+      enclosed by brackets [] replaced by your own identifying information:
+      "Portions Copyright [year] [name of copyright owner]"
+      
+      Contributor(s):
+      If you wish your version of this file to be governed by only the CDDL or
+      only the GPL Version 2, indicate your decision by adding "[Contributor]
+      elects to include this software in this distribution under the [CDDL or GPL
+      Version 2] license."  If you don't indicate a single choice of license, a
+      recipient has the option to distribute your version of this file under
+      either the CDDL, the GPL Version 2 or to extend the choice of license to
+      its licensees as provided above.  However, if you add GPL Version 2 code
+      and therefore, elected the GPL Version 2 license, then the option applies
+      only if the new code is made subject to such option by the copyright
+      holder.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+      <![CDATA[[
+      This is the XML Schema for the EJB 3.2 deployment descriptor.
+      
+      All EJB deployment descriptors must indicate
+      the schema by using the Java EE namespace:
+      
+      http://xmlns.jcp.org/xml/ns/javaee
+      
+      and by indicating the version of the schema by
+      using the version element as shown below:
+      
+      <ejb-jar xmlns="http://xmlns.jcp.org/xml/ns/javaee"
+      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+      xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
+      	  http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd"
+      version="3.2">
+      ...
+      </ejb-jar>
+      
+      The instance documents may indicate the published version of
+      the schema using the xsi:schemaLocation attribute for the
+      Java EE namespace with the following location:
+      
+      http://xmlns.jcp.org/xml/ns/javaee/ejb-jar_3_2.xsd
+      
+      ]]>
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:annotation>
+    <xsd:documentation>
+
+      The following conventions apply to all Java EE
+      deployment descriptor elements unless indicated otherwise.
+      
+      - 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.
+      
+    </xsd:documentation>
+  </xsd:annotation>
+
+  <xsd:include schemaLocation="javaee_7.xsd"/>
+
+
+<!-- **************************************************** -->
+
+  <xsd:element name="ejb-jar"
+               type="javaee:ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        This is the root of the ejb-jar deployment descriptor.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:key name="ejb-name-key">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The ejb-name element contains the name of an enterprise
+          bean. The name must be unique within the ejb-jar file or
+          .war file.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:enterprise-beans/*"/>
+      <xsd:field xpath="javaee:ejb-name"/>
+    </xsd:key>
+    <xsd:keyref name="ejb-name-references"
+                refer="javaee:ejb-name-key">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The keyref indicates the references from
+          relationship-role-source must be to a specific ejb-name
+          defined within the scope of enterprise-beans element. 
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath=".//javaee:ejb-relationship-role/javaee:relationship-role-source"/>
+      <xsd:field xpath="javaee:ejb-name"/>
+    </xsd:keyref>
+    <xsd:key name="role-name-key">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          A role-name-key is specified to allow the references
+          from the security-role-refs.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:assembly-descriptor/javaee:security-role"/>
+      <xsd:field xpath="javaee:role-name"/>
+    </xsd:key>
+    <xsd:keyref name="role-name-references"
+                refer="javaee:role-name-key">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The keyref indicates the references from
+          security-role-ref to a specified role-name.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+      <xsd:selector xpath="javaee:enterprise-beans/*/javaee:security-role-ref"/>
+      <xsd:field xpath="javaee:role-link"/>
+    </xsd:keyref>
+  </xsd:element>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="access-timeoutType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The access-timeoutType represents the maximum amount of
+        time (in a given time unit) that the container should wait for
+        a concurrency lock before throwing a timeout exception to the
+        client.
+        
+        A timeout value of 0 means concurrent access is not permitted.
+        
+        A timeout value of -1 means wait indefinitely to acquire a lock.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="timeout"
+                   type="javaee:xsdIntegerType"/>
+      <xsd:element name="unit"
+                   type="javaee:time-unit-typeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="async-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The async-methodType element specifies that a session
+        bean method has asynchronous invocation semantics.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="method-name"
+                   type="javaee:string"/>
+      <xsd:element name="method-params"
+                   type="javaee:method-paramsType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-configType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The activation-configType defines information about the
+        expected configuration properties of the message-driven bean
+        in its operational environment. This may include information
+        about message acknowledgement, message selector, expected
+        destination type, destination or connection factory lookup
+        string, subscription name, etc.
+        
+        The configuration information is expressed in terms of
+        name/value configuration properties.
+        
+        The properties that are recognized for a particular
+        message-driven bean are determined by the messaging type.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="activation-config-property"
+                   type="javaee:activation-config-propertyType"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="activation-config-propertyType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The activation-config-propertyType contains a name/value
+        configuration property pair for a message-driven bean.
+        
+        The properties that are recognized for a particular
+        message-driven bean are determined by the messaging type.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="activation-config-property-name"
+                   type="javaee:xsdStringType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The activation-config-property-name element contains
+            the name for an activation configuration property of
+            a message-driven bean.
+            
+            For JMS message-driven beans, the following property
+            names are recognized: acknowledgeMode,
+            messageSelector, destinationType, subscriptionDurability,
+            destinationLookup, connectionFactoryLookup, subscriptionName,
+            and clientId.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="activation-config-property-value"
+                   type="javaee:xsdStringType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The activation-config-property-value element
+            contains the value for an activation configuration
+            property of a message-driven bean.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="around-invokeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The around-invoke type specifies a method on a
+        class to be called during the around invoke portion of an 
+        ejb invocation.  Note that each class may have only one
+        around invoke method and that the method may not be
+        overloaded.
+        
+        If the class element is missing then
+        the class defining the callback is assumed to be the
+        interceptor class or component class in scope at the
+        location in the descriptor in which the around invoke
+        definition appears.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="class"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0"/>
+      <xsd:element name="method-name"
+                   type="javaee:java-identifierType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="around-timeoutType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The around-timeout type specifies a method on a
+        class to be called during the around-timeout portion of
+        a timer timeout callback.  Note that each class may have 
+        only one around-timeout method and that the method may not 
+        be overloaded.
+        
+        If the class element is missing then
+        the class defining the callback is assumed to be the
+        interceptor class or component class in scope at the
+        location in the descriptor in which the around-timeout
+        definition appears.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="class"
+                   type="javaee:fully-qualified-classType"
+                   minOccurs="0"/>
+      <xsd:element name="method-name"
+                   type="javaee:java-identifierType"/>
+    </xsd:sequence>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="assembly-descriptorType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The assembly-descriptorType defines
+        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, the definition
+        of interceptor bindings, a list of
+        methods to be excluded from being invoked, and a list of
+        exception types that should be treated as application exceptions.
+        
+        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 or .war file producer.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="security-role"
+                   type="javaee:security-roleType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="method-permission"
+                   type="javaee:method-permissionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="container-transaction"
+                   type="javaee:container-transactionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="interceptor-binding"
+                   type="javaee:interceptor-bindingType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="message-destination"
+                   type="javaee:message-destinationType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="exclude-list"
+                   type="javaee:exclude-listType"
+                   minOccurs="0"/>
+      <xsd:element name="application-exception"
+                   type="javaee:application-exceptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The cmp-fieldType describes a container-managed field. The
+        cmp-fieldType contains an optional description of the field,
+        and the name of the field.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="field-name"
+                   type="javaee:java-identifierType">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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.
+            
+            Support for entity beans is optional as of EJB 3.2.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmp-versionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The cmp-versionType specifies the version of an entity bean
+        with container-managed persistence. It is used by
+        cmp-version elements.
+        
+        The value must be one of the two following:
+        
+        1.x
+        2.x
+        
+        Support for entity beans is optional as of EJB 3.2.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="1.x"/>
+        <xsd:enumeration value="2.x"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-fieldType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The cmr-fieldType 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.
+        
+        Support for entity beans is optional as of EJB 3.2.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="cmr-field-name"
+                   type="javaee:string">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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".
+            
+            Support for entity beans is optional as of EJB 3.2.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="cmr-field-type"
+                   type="javaee:cmr-field-typeType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="cmr-field-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The cmr-field-type element specifies the class of a
+        collection-valued logical relationship field in the entity
+        bean class. The value of an element using cmr-field-typeType
+        must be either: java.util.Collection or java.util.Set.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="java.util.Collection"/>
+        <xsd:enumeration value="java.util.Set"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="concurrency-management-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The concurrency-management-typeType specifies the way concurrency
+        is managed for a singleton or stateful session bean.  
+        
+        The concurrency management type must be one of the following:
+        
+        Bean
+        Container
+        
+        Bean managed concurrency can only be specified for a singleton bean.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="Bean"/>
+        <xsd:enumeration value="Container"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="concurrent-lock-typeType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The concurrent-lock-typeType specifies how the container must
+        manage concurrent access to a method of a Singleton bean 
+        with container-managed concurrency.
+        
+        The container managed concurrency lock type must be one 
+        of the following :
+        
+        Read
+        Write
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:string">
+        <xsd:enumeration value="Read"/>
+        <xsd:enumeration value="Write"/>
+      </xsd:restriction>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="concurrent-methodType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The concurrent-methodType specifies information about a method
+        of a bean with container managed concurrency.
+        
+        The optional lock element specifies the kind of concurrency 
+        lock asssociated with the method.
+        
+        The optional access-timeout element specifies the amount of
+        time (in a given time unit) the container should wait for a
+        concurrency lock before throwing an exception to the client.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="method"
+                   type="javaee:named-methodType"/>
+      <xsd:element name="lock"
+                   type="javaee:concurrent-lock-typeType"
+                   minOccurs="0"/>
+      <xsd:element name="access-timeout"
+                   type="javaee:access-timeoutType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="container-transactionType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The container-transactionType specifies how the container
+        must manage transaction scopes for the enterprise bean's
+        method invocations. It defines an optional description, a
+        list of method elements, and a transaction attribute. The
+        transaction attribute is to be applied to all the specified
+        methods.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="method"
+                   type="javaee:methodType"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="trans-attribute"
+                   type="javaee:trans-attributeType"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="depends-onType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The depends-onType is used to express initialization 
+        ordering dependencies between Singleton components.
+        The depends-onType specifies the names of one or more
+        Singleton beans in the same application as the referring
+        Singleton, each of which must be initialized before
+        the referring bean.  
+        
+        Each dependent bean is expressed using ejb-link syntax.
+        The order in which dependent beans are initialized at 
+        runtime is not guaranteed to match the order in which
+        they are listed.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="ejb-name"
+                   type="javaee:ejb-linkType"
+                   minOccurs="1"
+                   maxOccurs="unbounded"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-classType">
+    <xsd:annotation>
+      <xsd:documentation>
+        <![CDATA[[
+        The ejb-classType contains the fully-qualified name of the
+        enterprise bean's class. It is used by ejb-class elements. 
+        
+        Example:
+        
+        <ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>
+        
+        ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:fully-qualified-classType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-jarType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The ejb-jarType defines the root element of the EJB
+        deployment descriptor. It contains
+        
+        - an optional description of the ejb-jar file
+        - an optional display name
+        - an optional icon that contains a small and a large
+        icon file name
+        - an optional module name. Only applicable to
+        stand-alone ejb-jars or ejb-jars packaged in an ear.
+        Ignored if specified for an ejb-jar.xml within a .war file.
+        In that case, standard .war file module-name rules apply.
+        - structural information about all included
+        enterprise beans that is not specified through
+        annotations
+        - structural information about interceptor classes
+        - 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.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="module-name"
+                   type="javaee:string"
+                   minOccurs="0"/>
+      <xsd:group ref="javaee:descriptionGroup"/>
+      <xsd:element name="enterprise-beans"
+                   type="javaee:enterprise-beansType"
+                   minOccurs="0"/>
+      <xsd:element name="interceptors"
+                   type="javaee:interceptorsType"
+                   minOccurs="0"/>
+      <xsd:element name="relationships"
+                   type="javaee:relationshipsType"
+                   minOccurs="0">
+        <xsd:unique name="relationship-name-uniqueness">
+          <xsd:annotation>
+            <xsd:documentation>
+
+              The ejb-relation-name contains the name of a
+              relation. The name must be unique within
+              relationships.
+              
+            </xsd:documentation>
+          </xsd:annotation>
+          <xsd:selector xpath="javaee:ejb-relation"/>
+          <xsd:field xpath="javaee:ejb-relation-name"/>
+        </xsd:unique>
+      </xsd:element>
+      <xsd:element name="assembly-descriptor"
+                   type="javaee:assembly-descriptorType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            Providing an assembly-descriptor in the deployment
+            descriptor is optional for the ejb-jar file or .war file
+            producer.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-client-jar"
+                   type="javaee:pathType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+            <![CDATA[[
+            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.
+            
+            Example:
+            
+            	  <ejb-client-jar>employee_service_client.jar
+            	  </ejb-client-jar>
+            
+            ]]>
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+    </xsd:sequence>
+    <xsd:attribute name="version"
+                   type="javaee:dewey-versionType"
+                   fixed="3.2"
+                   use="required">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The version specifies the version of the
+          EJB specification that the instance document must 
+          comply with. This information enables deployment tools
+          to validate a particular EJB Deployment
+          Descriptor with respect to a specific version of the EJB
+          schema. 
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="metadata-complete"
+                   type="xsd:boolean">
+      <xsd:annotation>
+        <xsd:documentation>
+
+          The metadata-complete attribute defines whether this
+          deployment descriptor and other related deployment
+          descriptors for this module (e.g., web service
+          descriptors) are complete, or whether the class
+          files available to this module and packaged with
+          this application should be examined for annotations
+          that specify deployment information.
+          
+          If metadata-complete is set to "true", the deployment
+          tool must ignore any annotations that specify deployment
+          information, which might be present in the class files
+          of the application.
+          
+          If metadata-complete is not specified or is set to
+          "false", the deployment tool must examine the class
+          files of the application for annotations, as
+          specified by the specifications.
+          
+        </xsd:documentation>
+      </xsd:annotation>
+    </xsd:attribute>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-nameType">
+    <xsd:annotation>
+      <xsd:documentation>
+        <![CDATA[[
+        The ejb-nameType specifies an enterprise bean's name. It is
+        used by ejb-name elements. This name is assigned by the
+        file producer to name the enterprise bean in the
+        ejb-jar file or .war file's deployment descriptor. The name must be
+        unique among the names of the enterprise beans in the same
+        ejb-jar file or .war file.
+        
+        There is no architected relationship between the used
+        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 must conform to the lexical
+        rules for an NMTOKEN.
+        
+        Example:
+        
+        <ejb-name>EmployeeService</ejb-name>
+        
+        ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:simpleContent>
+      <xsd:restriction base="javaee:xsdNMTOKENType"/>
+    </xsd:simpleContent>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationType">
+    <xsd:annotation>
+      <xsd:documentation>
+
+        The ejb-relationType describes a relationship between two
+        entity beans with container-managed persistence.  It is used
+        by ejb-relation elements. It 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.
+        
+        Support for entity beans is optional as of EJB 3.2.
+        
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relation-name"
+                   type="javaee:string"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            The ejb-relation-name element provides a unique name
+            within the ejb-jar file for a relationship.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="ejb-relationship-role"
+                   type="javaee:ejb-relationship-roleType"
+                   minOccurs="2"
+                   maxOccurs="2"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="ejb-relationship-roleType">
+    <xsd:annotation>
+      <xsd:documentation>
+        <![CDATA[[
+        The ejb-relationship-roleType describes a role within a
+        relationship. There are two roles in each relationship.
+        
+        The ejb-relationship-roleType 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.
+        
+        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>
+        </ejb-relation>
+        
+        Support for entity beans is optional as of EJB 3.2.
+        
+        ]]>
+      </xsd:documentation>
+    </xsd:annotation>
+    <xsd:sequence>
+      <xsd:element name="description"
+                   type="javaee:descriptionType"
+                   minOccurs="0"
+                   maxOccurs="unbounded"/>
+      <xsd:element name="ejb-relationship-role-name"
+                   type="javaee:string"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="multiplicity"
+                   type="javaee:multiplicityType"/>
+      <xsd:element name="cascade-delete"
+                   type="javaee:emptyType"
+                   minOccurs="0">
+        <xsd:annotation>
+          <xsd:documentation>
+
+            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.
+            
+            Support for entity beans is optional as of EJB 3.2.
+            
+          </xsd:documentation>
+        </xsd:annotation>
+      </xsd:element>
+      <xsd:element name="relationship-role-source"
+                   type="javaee:relationship-role-sourceType"/>
+      <xsd:element name="cmr-field"
+                   type="javaee:cmr-fieldType"
+                   minOccurs="0"/>
+    </xsd:sequence>
+    <xsd:attribute name="id"
+                   type="xsd:ID"/>
+  </xsd:complexType>
+
+
+<!-- **************************************************** -->
+
+  <xsd:complexType name="enterprise-beansType">
+    <xsd:annotation>

  (This diff was longer than 20,000 lines, and has been truncated...)


 

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: notifications-unsubscribe@netbeans.apache.org
For additional commands, e-mail: notifications-help@netbeans.apache.org

For further information about the NetBeans mailing lists, visit:
https://cwiki.apache.org/confluence/display/NETBEANS/Mailing+lists