<?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.6 08/09/02
</xsd:documentation>
</xsd:annotation>

<xsd:annotation>
<xsd:documentation>

Copyright 2002 Sun Microsystems, Inc., 901 San Antonio
Road, Palo Alto, California 94303, U.S.A. All rights
reserved.

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

This document and the technology which it describes are
distributed under licenses restricting their use, copying,
distribution, and decompilation. No part of this document
may be reproduced in any form by any means without prior
written authorization of Sun and its licensors, if any.

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

Sun, Sun Microsystems, the Sun logo, Solaris, Java, J2EE,
JavaServer Pages, Enterprise JavaBeans and the Java Coffee
Cup logo are trademarks or registered trademarks of Sun
Microsystems, Inc. in the U.S. and other countries.

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

</xsd:documentation>
</xsd:annotation>

<xsd:annotation>
<xsd:documentation>
<![CDATA[
This is the XML Schema for the application 1.4 deployment
descriptor.  All application deployment descriptors must
indicate that the 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:

    <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:element name="description"
                     type="j2ee:descriptionType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="display-name"
                     type="j2ee:display-nameType"
                     maxOccurs="unbounded"/>
        <xsd:element name="icon"
                     type="j2ee:iconType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     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: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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>

    </xsd:sequence>
</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:element name="deployment-extension"
                     type="j2ee:deployment-extensionType"
                     minOccurs="0"
                     maxOccurs="unbounded"/>
    </xsd:sequence>
</xsd:complexType>

</xsd:schema>

