<!--

    Copyright (c) 2000, 2018 Oracle and/or its affiliates. All rights reserved.

    This program and the accompanying materials are made available under the
    terms of the Eclipse Public License v. 2.0, which is available at
    http://www.eclipse.org/legal/epl-2.0.

    This Source Code may also be made available under the following Secondary
    Licenses when the conditions for such availability set forth in the
    Eclipse Public License v. 2.0 are satisfied: GNU General Public License,
    version 2 with the GNU Classpath Exception, which is available at
    https://www.gnu.org/software/classpath/license.html.

    SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0

-->

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

  <!DOCTYPE application PUBLIC
	"-//Sun Microsystems, Inc.//DTD J2EE Application 1.3//EN"
	"http://java.sun.com/dtd/application_1_3.dtd">

-->

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

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

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

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


<!--
The application element is the root element of a J2EE application
deployment descriptor.
-->
<!ELEMENT application (icon?, display-name, description?, module+,
		security-role*)>

<!--
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.

Used in: module
-->
<!ELEMENT alt-dd (#PCDATA)>

<!--
The connector element specifies the URI of a resource adapter archive
file, relative to the top level of the application package.

Used in: module
-->
<!ELEMENT connector (#PCDATA)>

<!--
The context-root element specifies the context root of a web
application.

Used in: web
-->
<!ELEMENT context-root (#PCDATA)>

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

Used in: application, security-role
-->
<!ELEMENT description (#PCDATA)>

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

Used in: application

Example:

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

<!--
The ejb element specifies the URI of an ejb-jar, relative to the top
level of the application package.

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

<!--
The icon element contains small-icon and large-icon elements that
specify the file names for small and a large GIF or JPEG icon images
used to represent the parent element in a GUI tool.

Used in: application
-->
<!ELEMENT icon (small-icon?, large-icon?)>

<!--
The java element specifies the URI of a java application client module,
relative to the top level of the application package.

Used in: module
-->
<!ELEMENT java (#PCDATA)>

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

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

Used in: icon

Example:

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

<!--
The module element represents 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.

The application deployment descriptor must have one module element for
each J2EE module in the application package.

Used in: application
-->
<!ELEMENT module ((connector | ejb | java | web), alt-dd?)>

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

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

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

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

Used in: application

Example:

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

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

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

Used in: icon

Example:

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

<!--
The web element contains the web-uri and context-root of a web
application module.

Used in: module
-->
<!ELEMENT web (web-uri, context-root)>

<!--
The web-uri element specifies the URI of a web application file,
relative to the top level of the application package.

Used in: web
-->
<!ELEMENT web-uri (#PCDATA)>

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

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

<!ATTLIST alt-dd id ID #IMPLIED>
<!ATTLIST application id ID #IMPLIED>
<!ATTLIST connector id ID #IMPLIED>
<!ATTLIST context-root id ID #IMPLIED>
<!ATTLIST description id ID #IMPLIED>
<!ATTLIST display-name id ID #IMPLIED>
<!ATTLIST ejb id ID #IMPLIED>
<!ATTLIST icon id ID #IMPLIED>
<!ATTLIST java id ID #IMPLIED>
<!ATTLIST large-icon id ID #IMPLIED>
<!ATTLIST module id ID #IMPLIED>
<!ATTLIST role-name id ID #IMPLIED>
<!ATTLIST security-role id ID #IMPLIED>
<!ATTLIST small-icon id ID #IMPLIED>
<!ATTLIST web id ID #IMPLIED>
<!ATTLIST web-uri id ID #IMPLIED>
