<!--
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.
-->
<!ELEMENT alt-dd (#PCDATA)>
<!--
The application element is the root element of a J2EE
application deployment descriptor.
-->
<!ELEMENT application (icon?, display-name, description?,
module+, security-role*)>
<!--
The context-root element specifies the context root of a web
application
-->
<!ELEMENT context-root (#PCDATA)>
<!--
The description element provides a human readable description
of the application. The description element should include any
information that the application assembler wants to provide the
deployer.
-->
<!ELEMENT description (#PCDATA)>
<!--
The display-name element specifies an application name.
The application name is assigned to the application by the
application assembler and is used to identify the application
to the deployer at deployment time.
-->
<!ELEMENT display-name (#PCDATA)>
<!--
The ejb element specifies the URI of a ejb-jar, relative to the
top level of the application package.
-->
<!ELEMENT ejb (#PCDATA)>
<!--
The icon element contains a small-icon and large-icon element
which specify the URIs for a small and a large GIF or JPEG icon
image to represent the application in a GUI.
-->
<!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.
-->
<!ELEMENT java (#PCDATA)>
<!--
The large-icon element specifies the URI for a large GIF or
JPEG icon image to represent the application in a GUI.
-->
<!ELEMENT large-icon (#PCDATA)>
<!--
The module element represents a single J2EE module and contains
an 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.
-->
<!ELEMENT module ((ejb | java | web), alt-dd?)>
<!--
The role-name element contains the name of a security role.
-->
<!ELEMENT role-name (#PCDATA)>
<!--
The security-role element contains the definition of a security
role which is global to the application. The definition
consists of a description of the security role, and the
security role name. The descriptions at this level override
those in the component level security-role definitions and must
be the descriptions tool display to the deployer.
-->
<!ELEMENT security-role (description?, role-name)>
<!--
The small-icon element specifies the URI for a small GIF or
JPEG icon image to represent the application in a GUI.
-->
<!ELEMENT small-icon (#PCDATA)>
<!--
The web element contains the web-uri and context-root of a web
application 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.
-->
<!ELEMENT web-uri (#PCDATA)>
<!--
The ID mechanism is to allow tools to easily make tool-specific
references to the elements of the deployment descriptor.
-->
<!ATTLIST alt-dd id ID #IMPLIED>
<!ATTLIST application 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>