<!--
LONG NOTICE:

English:
Copyright 2000 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 embodied in the product that is 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 in other countries.

This document and the product to which it pertains are distributed under
licenses restricting their use, copying, distribution, and
decompilation. This Product or document may be reproduced but may not be
changed 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,  Java,  JavaServer Pages,  Java
Naming and Directory Interface,  JDBC,  JDK,  JavaMail and  and
Enterprise JavaBeans 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.

DOCUMENTATION IS PROVIDED "AS IS" AND ALL EXPRESS OR IMPLIED CONDITIONS,
REPRESENTATIONS AND WARRANTIES, INCLUDING ANY IMPLIED WARRANTY OF
MERCHANTABILITY, FITNESS FOR FOR A PARTICULAR PURPOSE OR
NON-INFRINGEMENT, ARE DISCLAIMED, EXCEPT TO THE EXTENT THAT SUCH
DISCLAIMERS ARE HELD TO BE LEGALLY INVALID.
-->

<!-- 
XML DTD for Resource Adapter deployment Descriptor 1.0 
-->

<!--
The connector element is the root element of the deployment descriptor 
for the resource adapter. This element includes general information - vendor 
name, version, specification version supported, icon -  about the 
resource adapter module. It also includes information specific to the 
implementation of the resource adapter library as specified through 
the element resourceadapter.
-->
<!ELEMENT connector (display-name, description?, icon?, vendor-name,
spec-version, eis-type, version, license?, resourceadapter)>

<!-- 
The element resourceadapter specifies information about the resource
adapter. The information includes fully-qualified names of
class/interfaces required as part of the connector architecture 
specified contracts, level of transaction support provided, 
configurable properties for ManagedConnectionFactory instances, 
one or more authentication mechanisms supported and additional 
required security permissions.

If there is no auth-mechanism specified as part of resource adapter
element then the resource adapter does not support any standard
security authentication mechanisms as part of security contract.
The application server ignores the security part of the system 
contracts in this case.
-->

<!ELEMENT resourceadapter (
managedconnectionfactory-class, connectionfactory-interface,         
connectionfactory-impl-class, connection-interface, 
connection-impl-class, transaction-support, config-property*, 
auth-mechanism*, reauthentication-support, security-permission* 
)>

<!--
The element auth-mechanism specifies an authentication mechanism
supported by the resource adapter. Note that this support is for
the resource adapter and not for the underlying EIS instance. The
optional description specifies any resource adapter specific requirement
for the support of security contract and authentication mechanism.

Note that basic-password mech-type should support the 
javax.resource.spi.security.PasswordCredential interface. The kerbv5
mech-type should support the javax.resource.spi.security.Generic-
Credential interface.
-->
<!ELEMENT auth-mechanism (description?, auth-mech-type, credential-interface)>

<!--
The element credential-interface specifies the interface that the
resource adapter implementation supports for the representation
of the credentials. This element should be used by application server
to find out the Credential interface it should use as part of the
security contract.

The possible values are:
   <credential-interface>javax.resource.spi.security.PasswordCredential
        </credential-interface>
   <credential-interface>javax.resource.spi.security.GenericCredential
        </credential-interface>
-->
<!ELEMENT credential-interface (#PCDATA)>

<!--
The element auth-mech-type specifies type of an authentication
mechanism.

The example values are:
   <auth-mech-type>basic-password</auth-mech-type>
   <auth-mech-type>kerbv5</auth-mech-type>

Any additional security mechanisms are outside the scope of the 
Connector architecture specification.
-->
<!ELEMENT auth-mech-type (#PCDATA)>

<!-- 
The element connectionfactory-interface specifies the fully-qualified
name of the ConnectionFactory interface supported by the resource
adapter. 

Example: <connectionfactory-interface>com.wombat.ConnectionFactory
         </connectionfactory-interface>
OR
<connectionfactory-interface>javax.resource.cci.ConnectionFactory
         </connectionfactory-interface>
-->
<!ELEMENT connectionfactory-interface (#PCDATA)>

<!-- 
The element connectionfactory-impl-class specifies the fully-qualified
name of the ConnectionFactory class that implements resource adapter
specific ConnectionFactory interface.

Example: <connectionfactory-impl-class>com.wombat.ConnectionFactoryImpl
         </connectionfactory-impl-class>
-->
<!ELEMENT connectionfactory-impl-class (#PCDATA)>

<!-- 
The element connection-interface specifies the fully-qualified
name of the Connection interface supported by the resource
adapter.

Example: <connection-interface>javax.resource.cci.Connection
         </connection-interface>
-->
<!ELEMENT connection-interface (#PCDATA)>

<!-- 
The element connection-impl-class specifies the fully-qualified
name of the Connection class that implements resource adapter
specific Connection interface.

Example: <connection-impl-class>com.wombat.ConnectionImpl
         </connection-impl-class>
-->
<!ELEMENT connection-impl-class (#PCDATA)>

<!--
The element config-entry contains a declaration of a single 
configuration property for a ManagedConnectionFactory instance. 

Each ManagedConnectionFactory instance creates connections to a 
specific EIS instance based on the properties configured on the 
ManagedConnectionFactory instance. The configurable properties are 
specified only once in the deployment descriptor, even though a 
resource adapter can be used to configure multiple ManagedConnnection-
Factory instances (that create connections to different instances of
the same EIS).

The declaration consists of an optional description, name, type
and an optional value of the configuration property. If the resource
adapter provider does not specify a value than the deployer is
responsible for providing a valid value for a configuration property.

Any bounds or well-defined values of properties should be described 
in the description element.
-->
<!ELEMENT config-property (description?, config-property-name, 
config-property-type, config-property-value?)>

<!-- 
The element config-property-name contains the name of a configuration 
property.

Example: <config-property-name>ServerName</config-property-name>

The connector architecture defines a set of well-defined properties
all of type java.lang.String. These are as follows:
     <config-property-name>ServerName</config-property-name>
     <config-property-name>PortNumber</config-property-name>
     <config-property-name>UserName</config-property-name>
     <config-property-name>Password</config-property-name>
     <config-property-name>ConnectionURL</config-property-name>

A resource adapter provider can extend this property set to include 
properties specific to the resource adapter and its underlying EIS.
-->
<!ELEMENT config-property-name (#PCDATA)>

<!-- 
The element config-property-type contains the fully qualified Java
type of a configuration property as required by ManagedConnection-
Factory instance.

The following are the legal values of config-property-type:
   java.lang.Boolean, java.lang.String, java.lang.Integer,
   java.lang.Double, java.lang.Byte, java.lang.Short,
   java.lang.Long, java.lang.Float

Example: <config-property-type>java.lang.String</config-property-type>
-->
<!ELEMENT config-property-type (#PCDATA)>


<!-- 
The element config-property-value contains the value of a configuration
entry.

Example: <config-property-value>WombatServer</config-property-value>
-->
<!ELEMENT config-property-value (#PCDATA)>


<!-- 
The element display-name contains a short name for the resource adapter
that is intended to be displayed by the tools 
-->
<!ELEMENT display-name (#PCDATA)>

<!-- 
The element description is used by resource adapter provider to provide
text describing the parent element. The description element should include
any information that the resource provider wants to provide to the
deployer. Typically tools used by the consumer of resource adapter
module will display the description when processing the parent element
-->
<!ELEMENT description (#PCDATA)>

<!-- 
The element eis-type contains information about the type of the
EIS. For example, the type of an EIS can be product name of EIS
independent of any version info.

This helps in identifying EIS instances that can be used with
this resource adapter.
-->
<!ELEMENT eis-type (#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 GUI.
-->
<!ELEMENT icon (small-icon?, large-icon?)>

<!--
The large-icon element contains the name of a file containing an icon
for the resource adapter module. The file name is relative path within
the resource adapter module. This file must be either in JPEG or GIF
format. The icon is used by tools to display information about the
resource adapter module.

Example:
<large-icon>lib/images/wombatadapter_large.jpg</large-icon>
-->
<!ELEMENT large-icon (#PCDATA)>

<!--
The small-icon element contains the name of a file containing an icon
for the resource adapter module. The file name is relative path within
the resource adapter module. This file must be either in JPEG or GIF
format. The icon is used by tools to display information about the
resource adapter module.

Example:
<small-icon>lib/images/wombatadapter_small.jpg</small-icon>
-->
<!ELEMENT small-icon (#PCDATA)>

<!-- 
The element managedconnectionfactory-class specifies the fully qualified
name of the Java class that implements the javax.resource.spi.Managed-
ConnectionFactory interface. This Java class is provided as part of
resource adapter's implementation of connector architecture specified 
contracts.

Example:
  <managedconnectionfactory-class>com.wombat.ManagedConnectionFactoryImpl
  </managedconnectionfactory-class>
-->
<!ELEMENT managedconnectionfactory-class (#PCDATA)>

<!-- 
The element reauthentication-support specifies whether the resource
adapter implementation supports re-authentication of existing Managed-
Connection instance. Note that this information is for the resource
adapter implementation and not for the underlying EIS instance.

This element must be one of the following:
        <reauthentication-support>true</reauthentication-support>
        <reauthentication-support>false</reauthentication-support>
-->
<!ELEMENT reauthentication-support (#PCDATA)>

<!-- 
The element license specifies licensing requirements for the resource 
adapter module. This element specifies whether a license is required
to deploy and use this resource adapter, and an optional description 
of the licensing terms (examples: duration of license, number of 
connection restrictions).
-->
<!ELEMENT license (description?, license-required)>

<!-- 
The element license-required specifies whether a license is required 
to deploy and use the resource adapter. This element must be one of
the following:

	<license-required>true</license-required>
	<license-required>false</license-required>
-->
<!ELEMENT license-required (#PCDATA)>

<!-- 
The element spec-version specifies the version of the connector
architecture specification that is supported by this resource 
adapter. This information enables deployer to configure the resource
adapter to support deployment and runtime requirements of the
corresponding connector architecture specification.

Example:
  <spec-version>1.0</spec-version>
-->
<!ELEMENT spec-version (#PCDATA)>


<!-- 
The element security permission specifies a security permission that 
is required by the resource adapter code.

The security permission listed in the deployment descriptor are ones 
that are different from those required by the default permission set 
as specified in the connector specification. The optional description
can mention specific reason that resource adapter requires a given
security permission.
-->
<!ELEMENT security-permission (description?, security-permission-spec)>

<!--
The element permission-spec specifies a security permission based
on the Security policy file syntax [reference: Java 2, Security  
architecture specification]

http://java.sun.com/products/jdk/1.3/docs/guide/security/PolicyFiles.html#FileSyntax
-->
<!ELEMENT security-permission-spec (#PCDATA)>

<!-- 
The transaction-support element specifies the level of transaction
support provided by the resource adapter. 
The value of transaction-support must be one of the following:
 <transaction-support>no_transaction</transaction-support>
 <transaction-support>local_transaction</transaction-support>
 <transaction-support>xa_transaction</transaction-support>
-->
<!ELEMENT transaction-support (#PCDATA)>

<!-- 
The element vendor-name specifies the name of resource adapter provider
vendor.
Example:
  <vendor-name>Wombat Corp.</vendor-name>
-->
<!ELEMENT vendor-name (#PCDATA)>

<!-- 
The element version specifies a string-based version of the 
resource adapter from the resource adapter provider.

Example:
  <version>1.0</version>
-->
<!ELEMENT version (#PCDATA)>

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

The connector specification does not allow the tools to add the non-
standard information into the standard deployment descriptor.
-->

<!ATTLIST auth-mechanism id ID #IMPLIED>
<!ATTLIST auth-mech-type id ID #IMPLIED>
<!ATTLIST config-property id ID #IMPLIED>
<!ATTLIST config-property-name id ID #IMPLIED>
<!ATTLIST config-property-value id ID #IMPLIED>
<!ATTLIST config-property-type id ID #IMPLIED>
<!ATTLIST connector id ID #IMPLIED>
<!ATTLIST connectionfactory-interface id ID #IMPLIED>
<!ATTLIST connectionfactory-impl-class id ID #IMPLIED>
<!ATTLIST connection-interface id ID #IMPLIED>
<!ATTLIST connection-impl-class id ID #IMPLIED>
<!ATTLIST credential-interface id ID #IMPLIED>
<!ATTLIST description id ID #IMPLIED>
<!ATTLIST display-name id ID #IMPLIED>
<!ATTLIST eis-type id ID #IMPLIED>
<!ATTLIST icon id ID #IMPLIED>
<!ATTLIST large-icon id ID #IMPLIED>
<!ATTLIST license id ID #IMPLIED>
<!ATTLIST license-required id ID #IMPLIED>
<!ATTLIST small-icon id ID #IMPLIED>
<!ATTLIST managedconnectionfactory-class id ID #IMPLIED>
<!ATTLIST reauthentication-support id ID #IMPLIED>
<!ATTLIST resourceadapter id ID #IMPLIED>
<!ATTLIST security-permission id ID #IMPLIED>
<!ATTLIST security-permission-spec id ID #IMPLIED>
<!ATTLIST spec-version id ID #IMPLIED>
<!ATTLIST transaction-support id ID #IMPLIED>
<!ATTLIST vendor-name id ID #IMPLIED>
<!ATTLIST version id ID #IMPLIED>
