<?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.7 07/08/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 client 1.4
deployment descriptor.  All application client deployment
descriptors must indicate the application client
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-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>

<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: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="env-entry"
                     type="j2ee:env-entryType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <xsd:element name="ejb-ref"
                     type="j2ee:ejb-refType"
                     minOccurs="0" maxOccurs="unbounded"/>
        <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: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:schema>

