<?xml version = "1.0" encoding = "UTF-8"?>
<!--Generated by Turbo XML 2.3.1.100. Conforms to w3c http://www.w3.org/2001/XMLSchema-->

<schema xmlns = "http://www.w3.org/2001/XMLSchema"
   targetNamespace = "http://xmlns.oracle.com/weblogic/weblogic-connector"
   xmlns:wls = "http://xmlns.oracle.com/weblogic/weblogic-connector"
   xmlns:javaee = "http://java.sun.com/xml/ns/javaee"
   elementFormDefault = "qualified"
   attributeFormDefault = "unqualified"
   version="1.3"
   >

  <annotation>
    <documentation>
      This is the XML Schema for the WebLogic Server specifics of the Connector 1.5 deployment
      descriptor.  The deployment descriptor must be named "META-INF/weblogic-ra.xml" in the
      resource adapter's rar file.
    </documentation>
  </annotation>

  <include schemaLocation = "http://xmlns.oracle.com/weblogic/weblogic-javaee/1.4/weblogic-javaee.xsd"/>
  <import namespace = "http://java.sun.com/xml/ns/javaee" schemaLocation = "http://java.sun.com/xml/ns/javaee/connector_1_6.xsd"/>

  <!-- ******************************************************************** -->

  <element name = "weblogic-connector" type = "wls:weblogic-connectorType">
    <annotation>
      <documentation>
        The weblogic-connector element is the root element of the WebLogic-specific deployment descriptor for the deployed resource adapter. 
      </documentation>
    </annotation>
  </element>

  <complexType name = "weblogic-connectorType">
    <annotation>
      <documentation>
        The weblogic-connector element is the root element of the WebLogic-specific deployment descriptor for the deployed resource adapter. 
      </documentation>
    </annotation>

    <sequence>
      <element name = "native-libdir" type = "javaee:string" minOccurs = "0">
        <annotation>
          <documentation>
            Required if native libraries are present.
            Specifies the directory where all the native libraries exist that are required by the resource adapter.
          </documentation>
        </annotation>
      </element>
      
      <element ref =  "wls:jndi-name" minOccurs = "0">
        <annotation>
          <documentation>
            Required only if a resource adapter bean is specified.
            Specifies the JNDI name for the resource adapter. The resource adapter bean is registered into the JNDI tree with this name. It is not a required element if no resource adapter bean is specified. It is not a functional element if a JNDI name is specified for a resource adapter without a resource adapter bean.
          </documentation>
        </annotation>
      </element>
      
      <element name = "enable-access-outside-app" type="wls:true-falseType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            As stated by the J2CA 1.5 Specification, if the resource adapter is packaged within an application (in other words, within an EAR), only components within the application should have access to the resource adapter. This element allows you to override this functionality.
            Note: This element does not apply for stand-alone resource adapters.
            Default Value: false
            Note: When set to false, the resource adapter can only be accessed by clients that reside within the same application in which the resource adapter resides.
            for version 1.0 resource adapters (supported in this release), the default value for this element is set to true.
          </documentation>
        </annotation>
      </element>
      
      <element name = "enable-global-access-to-classes" type="wls:true-falseType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            When set to true, the resource adapter allows global access to its classes, and the adapter's classes are loaded by the WebLogic Server system classpath classloader directly so that these classes can be accessed by all applications.
            The default value is false, in which case the adapter's classes are loaded by a classloader that is a child of the EAR's application classloader.
            This value normally should be set to true for standalone adapters.
            When set to true, you must to restart WebLogic Server if you change the adapter's classes and want to redeploy the adapter.
          </documentation>
        </annotation>
      </element>

      <element name = "work-manager" type = "wls:work-managerType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            This complex element is used to specify all the configurable elements for creating the Work Manager that will be used by the resource adapter bean. 
            The Work Manager dynamically adjusts the number of work threads to avoid deadlocks and achieve optimal throughput subject to concurrency constraints. It also meets objectives for response time goals, shares, and priorities.
            This element provides configurations that are supported by standard WebLogic Work Manager.
          </documentation>
        </annotation>
      </element>
      
      <element name = "connector-work-manager" type="wls:connectorWorkManagerType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            This complex element is used to specify all the configurable elements for Connector Work Manager for this adapter module itself.
            This element provides configurations that are not supported by standard WebLogic Work Manager.
          </documentation>
        </annotation>
      </element>
      
      <element name = "security" type = "wls:resource-adapter-securityType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            This complex element is used to specify all the security parameters for the operation of the resource adapter.
          </documentation>
        </annotation>
      </element>
      
      <element ref =  "wls:properties" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            This complex element is used to override any properties that have been specified for the resource adapter bean in the ra.xml file.
          </documentation>
        </annotation>
      </element>
      
      <element name = "admin-objects" type = "wls:admin-objectsType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            This complex element defines all of the admin objects in a resource adapter. 
          </documentation>
        </annotation>
      </element>
      
      <element name = "outbound-resource-adapter" type = "wls:outbound-resource-adapterType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            This complex element is used to describe the outbound components of a resource adapter.
          </documentation>
        </annotation>
      </element>
      
    </sequence>
    <attribute name = "id" type = "ID"/>
    <attribute name="version" type="string" use="optional"/>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "resource-adapter-securityType">
    <annotation>
      <documentation>
        This complex element is used to specify all the security parameters for the operation of the resource adapter.
      </documentation>
    </annotation>

    <all>
      <element name = "default-principal-name" type = "wls:anon-principalType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Specifies the default secure ID to be used for calls into the resource adapter.
            If this value is not specified, the default is the anonymous identity, which is the same as no security identity.
          </documentation>
        </annotation>
      </element>
      
      <element name = "manage-as-principal-name" type = "wls:anon-principalType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Specifies the secure ID to be used for running various resource adapter management tasks, including startup, shutdown, testing, shrinking, and transaction management.
            If not specified, it defaults to the default-principal-name value. If default-principal-name is not specified, it defaults to the anonymous identity.
          </documentation>
        </annotation>
      </element>
      
      <element name = "run-as-principal-name" type = "wls:anon-principal-callerType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Specifies the secure ID to be used by all calls from the connector container into the resource adapter code during connection requests. (This element currently applies only to outbound functions.)
            If not specified, it defaults to the default-principal-name value. If default-principal-name is not specified, it uses the identity of the requesting caller.
          </documentation>
        </annotation>
      </element>
      
      <element name = "run-work-as-principal-name" type = "wls:anon-principal-callerType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Specifies the secure ID to be used to run all work instances started by the resource adapter.
            If not specified, it defaults to the default-principal-name value. If default-principal-name is not specified, it uses the identity that was used to start the work.
          </documentation>
        </annotation>
      </element>
      
      <element name = "security-work-context" type="wls:security-work-contextType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            This complex element is used to specify all the configurations for security work context.
          </documentation>
        </annotation>

        <unique name="caller-principal-mapping-uniqueness"> 
           <selector xpath="wls:caller-principal-mapping"/> 
           <field xpath="wls:eis-caller-principal"/> 
        </unique> 
        <unique name="group-principal-mapping-uniqueness"> 
           <selector xpath="wls:group-principal-mapping"/> 
           <field xpath="wls:eis-group-principal"/> 
        </unique> 
      </element>
      
    </all>
    <attribute name = "id" type = "ID"/>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "anon-principalType">
    <annotation>
      <documentation>
        This complex type specifies the secure ID to be used, either the anonymous identity or a configured principal name. 
      </documentation>
    </annotation>

    <choice>
      <element ref = "wls:use-anonymous-identity">
        <annotation>
          <documentation>
            Required. 
            Specifies that the anonymous identity should be used.
          </documentation>
        </annotation>
      </element>

      <element ref = "wls:principal-name">
        <annotation>
          <documentation>
            Required. 
            Specifies that the principal name should be used. This should match a defined WebLogic Server user name.
          </documentation>
        </annotation>
      </element>
    </choice>
    <attribute name = "id" type = "ID"/>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "anon-principal-callerType">
    <annotation>
      <documentation>
        This complex type specifies the secure ID to be used, either the anonymous identity or a configured principal name, or the caller principal name. 
      </documentation>
    </annotation>

    <choice>
      <element ref = "wls:use-anonymous-identity">
        <annotation>
          <documentation>
            Required. 
            Specifies that the anonymous identity should be used.
          </documentation>
        </annotation>
      </element>

      <element ref = "wls:principal-name">
        <annotation>
          <documentation>
            Required. 
            Specifies that the principal name should be used. This should match a defined WebLogic Server user name.
          </documentation>
        </annotation>
      </element>

      <element name = "use-caller-identity" type="wls:true-falseType">
        <annotation>
          <documentation>
            Required. 
            Specifies that the caller's identity should be used.
          </documentation>
        </annotation>
      </element>

    </choice>
    <attribute name = "id" type = "ID"/>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "config-propertiesType">
    <annotation>
      <documentation>
        This element can contain one or more property elements, each holding a name and value pair.
      </documentation>
    </annotation>

    <sequence>
      <element ref = "wls:property" maxOccurs = "unbounded">
        <annotation>
          <documentation>
            Required. 
            The property element is used to override a property that has been specified for the resource adapter bean in the ra.xml  file.
          </documentation>
        </annotation>
      </element>
    </sequence>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "config-propertyType">
    <annotation>
      <documentation>
        This element defines one property elements, holding a name and value pair.
      </documentation>
    </annotation>
    
    <all>
      <element name = "name" type = "javaee:string">
        <annotation>
          <documentation>
            Required. 
            The config-property-name element specifies the same name as the
            config-property-name element in ra.xml of which
            the config-property-value will be overridden.
          </documentation>
        </annotation>
      </element>

      <element name = "value" type = "javaee:string" minOccurs = "0">
        <annotation>
          <documentation>
            The config-property-value element specifies the value that will override
            the config-property-value of the config-property in ra.xml with the same
            config-property-name as config-property-name.
            This is an optional element.
          </documentation>
        </annotation>
      </element>
    </all>
    <attribute name = "id" type = "ID"/>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "admin-objectsType">
    <annotation>
      <documentation>
        This complex element defines all of the admin objects in a resource adapter. As with the outbound-resource-adapter complex element (see outbound-resource-adapter), the admin-objects complex element has three hierarchical property levels that specify the configuration scope:
           1. Global level - at this level, you specify parameters that apply to all admin objects in the resource adapter; you do so using the default-properties element. See default-properties in admin-objects subelements
           2. Group level - at this level, you specify parameters that apply to all admin objects belonging to a particular admin object group specified in the ra.xml deployment descriptor; you do so using the admin-object-group element. The properties specified in the group override any parameters that are specified at the global level. See admin-object-group
           3. Instance level - Under each admin object group, you can use the admin-object-instance element to specify admin object instances. These correspond to the admin object instances for the resource adapter. You can specify properties at the instance level and override those properties provided in the group and global levels. See admin-object-instance.
      </documentation>
    </annotation>

    <sequence>
      <element ref = "wls:default-properties" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Specifies the default properties that apply to all admin objects (at the global level) in the resource adapter.
            The default-properties element can contain one or more property elements, each holding a name and value pair. See properties.
          </documentation>
        </annotation>
      </element>

      <element name = "admin-object-group" type = "wls:admin-object-groupType" minOccurs = "0" maxOccurs = "unbounded">
        <annotation>
          <documentation>
            Required, One or more.
            Specifies the default parameters that apply to all admin objects belonging to a particular admin object group specified in the ra.xml  deployment descriptor. The properties specified in the group override any parameters that are specified at the global level.
          </documentation>
        </annotation>
      </element>
    </sequence>
    <attribute name = "id" type = "ID"/>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "admin-object-groupType">
    <annotation>
      <documentation>
        The admin-object-group element is used to define an admin object group. At the group level, you specify parameters that apply to all admin objects belonging to a particular admin object group specified in the ra.xml deployment descriptor. The properties specified in the group override any parameters that are specified at the global level.
        The admin-object-interface element (a subelement of the admin-object-group  element) serves as a required unique element (a key) to each admin-object-group. There must be a one-to-one relationship between the weblogic-ra.xml admin-object-interface element and the ra.xml adminobject-interface element.
        The admin-object-group element is a sub-element of the weblogic-connector element. You can define the following elements within the admin-object-group element
      </documentation>
    </annotation>

    <sequence>
      <element name = "admin-object-interface" type = "javaee:string">
        <annotation>
          <documentation>
            Required.
            Before Connector 1.6, The admin-object-interface element serves as a required unique element (a key) to each admin-object-group. There must be a one-to-one relationship between the weblogic-ra.xml  admin-object-interface element and the ra.xml  adminobject-interface element.
            Since Connector 1.6, The combination of admin-object-interface element and admin-object-class element serves as a required unique element (a key) to each admin-object-group. There must be a one-to-one relationship between the weblogic-ra.xml  admin-object-interface element + admin-object-class element and the ra.xml  adminobject-interface element + admin-object-class element.
          </documentation>
        </annotation>
      </element>

      <element name = "admin-object-class" type = "javaee:string" minOccurs = "0" maxOccurs = "1">
        <annotation>
          <documentation>
            Required since Connector 1.6. This element is added to support Connector 1.6.
            Since Connector 1.6, The combination of admin-object-interface element and admin-object-class element serves as a required unique element (a key) to each admin-object-group. There must be a one-to-one relationship between the weblogic-ra.xml  admin-object-interface element + admin-object-class element pair and the ra.xml  adminobject-interface element + adminobject-class element pair.
          </documentation>
        </annotation>
      </element>

      <element ref = "wls:default-properties" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Specifies all the default properties that apply to all admin objects in this admin object group.
            The default-properties element can contain one or more property elements, each holding a name and value pair. See properties.
          </documentation>
        </annotation>
      </element>

      <element name = "admin-object-instance" type = "wls:admin-object-instanceType" minOccurs = "0" maxOccurs = "unbounded">
        <annotation>
          <documentation>
            Required, One or more.
            Specifies one or more admin object instances within the admin object group, corresponding to the admin object instances for the resource adapter. You can specify properties at the instance level and override those provided in the group and global levels. For subelements, see admin-object-instance.
          </documentation>
        </annotation>
      </element>

    </sequence>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "admin-object-instanceType">
    <annotation>
      <documentation>
        Specifies one or more admin object instances within the admin object group, corresponding to the admin object instances for the resource adapter. You can specify properties at the instance level and override those provided in the group and global levels.
      </documentation>
    </annotation>

    <sequence>
      <element ref =  "wls:jndi-name">
        <annotation>
          <documentation>
              Required.
              Specify the JNDI name for the admin object instance. 
          </documentation>
        </annotation>
      </element>
      
      <element ref = "wls:properties" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Defines all the properties that apply to the admin object instance.
            The admin-object-properties element can contain one or more property elements, each holding a name and value pair. See properties..
          </documentation>
        </annotation>
      </element>
  
      </sequence>
    <attribute name = "id" type = "ID"/>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "outbound-resource-adapterType">
    <annotation>
      <documentation>
        This complex element is used to describe the outbound components of a resource adapter. As with the admin-objects  complex element, this element has three hierarchical property levels that specify the configuration scope for defining outbound connection pools:
           1. Global level - at this level, you specify parameters that apply to all outbound connection pools in the resource adapter using the default-connection-properties element. See default-connection-properties.
           2. Group level - at this level, you specify parameters that apply to all outbound connections belonging to a particular connection factory specified in the ra.xml deployment descriptor using the connection-definition-group element. A one-to-one correspondence exists from a connection factory in ra.xml to a connection definition group in weblogic-ra.xml. The properties specified in a group override any parameters specified at the global level. See connection-definition-group.
           3. The instance level - Under each connection definition group, you can specify connection instances. These correspond to the individual connection pools for the resource adapter. Parameters can be specified at this level too and these override those provided at the group and global levels. See connection-instance.
      </documentation>
    </annotation>

    <sequence>
      <element ref = "wls:default-connection-properties" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            This complex element is used to specify the properties at an global level. At this level, the user is able to specify parameters that apply to all outbound connection pools in the resource adapter.
            For subelements, see default-connection-properties.
          </documentation>
        </annotation>
      </element>

      <element name = "connection-definition-group" type = "wls:connection-definitionType" minOccurs="0" maxOccurs = "unbounded">
        <annotation>
          <documentation>
            Required, One or more.
            This element is used to specify all the connection definition groups. There must be a one-to-one correspondence relationship between the connection factories in the ra.xml deployment descriptor and the groups in the weblogic-ra.xml deployment descriptor. A group does not have to exist in the weblogic-ra.xml  deployment descriptor for every connection factory in ra.xml. However, if a group exists, there must be at least one connection instance in the group.
            The properties specified in the group override any parameters that are specified at the global level using default-connection-properties.
            For subelements, see connection-definition-group.
          </documentation>
        </annotation>
      </element>

    </sequence>
    <attribute name = "id" type = "ID"/>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "connection-definition-propertiesType">
    <annotation>
      <documentation>
        Defines all the default properties that apply to the connection instance.
      </documentation>
    </annotation>

    <sequence>
      <element name = "pool-params" type = "wls:pool-paramsType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Serves as the root element for providing connection pool-specific parameters for this connection factory. WebLogic Server uses these specifications to control the behavior of the maintained pool of ManagedConnections.
            This is an optional element. Failure to specify this element or any of its specific element items results in default values being assigned. Refer to the description of each individual element for the designated default value.
            for subelements, see pool-params.
          </documentation>
        </annotation>
      </element>

      <element name = "logging" type = "wls:loggingType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Contains parameters for configuring logging of the ManagedConnectionFactory  and ManagedConnection objects of the resource adapter.
            For subelements, see logging.
          </documentation>
        </annotation>
      </element>

      <element name = "transaction-support" type = "javaee:transaction-supportType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Specifies the level of transaction support for a particular Connection Factory. It provides the ability to override the transaction-support value specified in the ra.xml deployment descriptor that is intended to be the default value for all Connection Factories of the resource adapter.
            The value of transaction-support must be one of the following:
              NoTransaction
              LocalTransaction
              XATransaction
            Since Connector 1.6, a resource adapter may determine and classify the level of transaction support it can provide at runtime. To specify the level of transaction support at runtime, a ManagedConnectionFactory must implement the TransactionSupport interface. In such case, the transaction-support configuration in DD, including ra.xml and weblogic-ra.xml, and the transactionSupport in @Connector annotaion will be ignored.
            It is optional for the ManagedConnectionFactory to implement the TransactionSupport interface. 
          </documentation>
        </annotation>
      </element>

      <element name = "authentication-mechanism" type = "javaee:authentication-mechanismType" minOccurs = "0" maxOccurs = "unbounded">
        <annotation>
          <documentation>
            Optional.
            The authentication-mechanism element specifies an authentication mechanism supported by a particular Connection Factory in the resource adapter. It provides the ability to override the authentication-mechanism  value specified in the ra.xml deployment descriptor that is intended to be the default value for all Connection Factories of the resource adapter.
            Note that BasicPassword mechanism type should support the javax.resource.spi.security.PasswordCredential interface.
          </documentation>
        </annotation>
      </element>

      <element name = "reauthentication-support" type = "wls:true-falseType" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            A Boolean that specifies whether a particular connection factory supports re-authentication of an existing ManagedConnection  instance. It provides the ability to override the reauthentication-support  value specified in the ra.xml deployment descriptor that is intended to be the default value for all Connection Factories of the resource adapter.
          </documentation>
        </annotation>
      </element>

      <element ref = "wls:properties" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            The properties element includes one or more property elements, which define name and value subelements that apply to the default connections.
          </documentation>
        </annotation>
      </element>

      <element ref = "wls:res-auth" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Specifies whether to use container- or application-managed security. The values for this element can be one of Application or Container. The default value is Container.
          </documentation>
        </annotation>
      </element>
    </sequence>
    <attribute name = "id" type = "ID"/>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "connection-definitionType">
    <annotation>
      <documentation>
        This element is used to specify all the connection definition groups. There must be a one-to-one correspondence relationship between the connection factories in the ra.xml deployment descriptor and the groups in the weblogic-ra.xml deployment descriptor. A group does not have to exist in the weblogic-ra.xml  deployment descriptor for every connection factory in ra.xml. However, if a group exists, there must be at least one connection instance in the group.
        The properties specified in the group override any parameters that are specified at the global level using default-connection-properties.
      </documentation>
    </annotation>

    <sequence>
      <element name = "connection-factory-interface" type = "javaee:string">
        <annotation>
          <documentation>
            Every connection definition group has a key (a required unique element). This key is the connection-factory-interface.
            The value specified for connection-factory-interface must be equal to the value specified for connection-factory-interface in ra.xml.
          </documentation>
        </annotation>
      </element>

      <element ref = "wls:default-connection-properties" minOccurs = "0">
        <annotation>
          <documentation>
            This complex element is used to define properties for outbound connections at the group level.
            See default-connection-properties.
          </documentation>
        </annotation>
      </element>

      <element name = "connection-instance" type = "wls:connection-instanceType" minOccurs = "0" maxOccurs = "unbounded">
        <annotation>
          <documentation>
          Under each connection definition group, the user can specify connection instances. These correspond to the individual connection pools for the resource adapter. Parameters can be specified at this level too and these override those provided in the group and global levels.
          This element specifies a description of the connection pool. (A connection instance is equivalent to a connection pool.) It is used to document the connection pool.
          See connection-instance.
          </documentation>
        </annotation>
      </element>

    </sequence>
    <attribute name = "id" type = "ID"/>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "connection-instanceType">
    <annotation>
      <documentation>
        Under each connection definition group, the user can specify connection instances. These correspond to the individual connection pools for the resource adapter. Parameters can be specified at this level too and these override those provided in the group and global levels.
        This element specifies a description of the connection pool. (A connection instance is equivalent to a connection pool.) It is used to document the connection pool.
      </documentation>
    </annotation>

    <sequence>
      <element ref = "wls:description" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Specifies a description of the connection instance.
          </documentation>
        </annotation>
      </element>

      <element ref =  "wls:jndi-name">
        <annotation>
          <documentation>
            Required.
            The connection definition group that defines the reference name for the connection instance.
          </documentation>
        </annotation>
      </element>

      <element ref = "wls:connection-properties" minOccurs = "0">
        <annotation>
          <documentation>
            Optional.
            Defines all the properties that apply to the connection instance.
            The connection-properties element can contain one or more property elements, each holding a name and value pair. See properties.
          </documentation>
        </annotation>
      </element>

    </sequence>
  </complexType>

  <!-- ******************************************************************** -->

  <complexType name = "pool-paramsType">
    <annotation>
      <documentation>
        This complex type serves as the root element for providing parameters for connection pools. WebLogic Server uses these specifications to control the behavior of the maintained pool of ManagedConnections.
      </documentation>
    </annotation>

    <complexContent>
      <extension base = "wls:connection-pool-paramsType">
        <sequence>
          <element name = "match-connections-supported" type = "wls:true-falseType" minOccurs = "0">
            <annotation>
              <documentation>

                The match-connections-supported element indicates whether or not the resource
                adapter supports the ManagedConnectionFactory.matchManagedConnections() method.
                If the resource adapter does not support this method (i.e. always return null
                for this method) then WebLogic Server will bypass this method call during a
                connection request.

                This is an optional element.

                Failure to specify this value will result in WebLogic using its defined default
                value.

                Value Range:    true|false

                Default Value:  true

              </documentation>
            </annotation>
          </element>
          <element name = "use-first-available" type = "wls:true-falseType" minOccurs = "0">
            <annotation>
              <documentation>

                The use-first-available element indicates that the first available connection
                in the pool should be used to satisfy any incoming connection request.  This
                results in bypassing calls to matchConnections in the Resource Adapter and can
                provide a significant performance improvement.

                This is an optional element.

                Failure to specify this value will result in WebLogic using its defined default
                value.

                Value Range:    true|false

                Default Value:  false

              </documentation>
            </annotation>
          </element>
        </sequence>
      </extension>
    </complexContent>
  </complexType>

  <!-- ******************************************************************** -->

  <element name = "use-anonymous-identity" type="wls:true-falseType">
    <annotation>
      <documentation>
        Specifies that the anonymous identity should be used.
      </documentation>
    </annotation>
  </element>

  <element name = "principal-name" type = "javaee:string">
    <annotation>
      <documentation>
        Specifies that the principal name should be used. This should match a defined WebLogic Server user name.
      </documentation>
    </annotation>
  </element>

  <element name = "description" type = "javaee:descriptionType">
    <annotation>
      <documentation>
        Specifies a description of the connection instance.
      </documentation>
    </annotation>
  </element>

  <element name = "jndi-name" type = "javaee:jndi-nameType">
    <annotation>
      <documentation>
        Specifies the JNDI name for the bean.
      </documentation>
    </annotation>
  </element>

  <element name = "default-properties" type = "wls:config-propertiesType">
    <annotation>
      <documentation>
        Specifies the default properties that apply to all admin objects either at the global level or in an admin-object-gourp level in the resource adapter.
        The default-properties element can contain one or more property elements, each holding a name and value pair. See properties.
      </documentation>
    </annotation>
  </element>

  <element name = "default-connection-properties" type = "wls:connection-definition-propertiesType">
    <annotation>
      <documentation>
        This complex element is used to specify the properties at either global or connection-definition-group level. At this level, the user is able to specify parameters that apply to all outbound connection pools either in the resource adapter or in the group.
      </documentation>
    </annotation>
  </element>

  <element name = "properties" type = "wls:config-propertiesType">
    <annotation>
      <documentation>
        The properties element includes one or more property elements, which define name and value subelements.
      </documentation>
    </annotation>
  </element>
  
  <element name = "property" type = "wls:config-propertyType">
    <annotation>
      <documentation>
        The property element is used to override a property that has been specified for the resource adapter bean in the ra.xml  file.
      </documentation>
    </annotation>
  </element>
  
  <element name = "connection-properties" type = "wls:connection-definition-propertiesType">
    <annotation>
      <documentation>
        Defines all the properties that apply to the connection instance.
        The connection-properties element can contain one or more property elements, each holding a name and value pair. See properties..
      </documentation>
    </annotation>
  </element>
 
  <element name = "res-auth" type = "javaee:res-authType">
    <annotation>
      <documentation>
        Optional.
        Specifies whether to use container- or application-managed security. The values for this element can be one of Application or Container. The default value is Container.
      </documentation>
    </annotation>
  </element>
  
  <complexType name = "connectorWorkManagerType">
    <annotation>
      <documentation>
        Optional.
        This complex element is used to specify all the configurable elements for Connector Work Manager for this adapter module itself.
        This element provides configurations that are not supported by standard WebLogic Work Manager.
      </documentation>
    </annotation>

    <sequence>
      <element name = "max-concurrent-long-running-requests" 
        type="javaee:xsdNonNegativeIntegerType" minOccurs = "0">
        <annotation>
          <documentation>
            This element defines the maximum number of concurrent long-running work requests allowed for an adapter instance, with default value 10.
            Since each long-running work request instance executes in its own thread, too many long-running work requests may have bad affect on server performance and stability. Normally, adapter just needs a few long-running work requests such as listen to socket or schedule other works periodically. New long-running work request submissions are rejected if the number of current active long-running work requests exceeds the limit.
          </documentation>
        </annotation>
      </element>
    </sequence>
    <attribute name = "id" type = "ID"/>
  </complexType>

  <complexType name = "security-work-contextType"> 
     <annotation>
       <documentation>
         
         This complex element is used to specify all the security contextual parameters of work context.
         
         There are two choices related to establishing the Caller identity for a work instance:
         
         CASE 1: Resource adapter flows-in an identity in the application server's security policy domain. In this case, 
         the application server may just use the initiating principal, flown-in from the resource adapter, as the caller 
         principal in the security context the Work instance executes as.

         CASE 2: Resource adapter flows-in an identity belonging to the EIS' security domain. The resource adapter establishes 
         a connection to the EIS and requires to execute a Work instance in the context of an EIS identity. In this case, the 
         initiating or caller principal does not exist in the application server's security domain. A translation from one domain 
         to the other is required to be performed. That is: user/group name in EIS security domain will be mapped to corresponding 
         user/group name in application server's security domain. If no such a user/group mapping is found, default mapping 
         will be applied.
         
         The element "inbound-mapping-required" specifies if flows-in identity translation from EIS security domain to application
         server's security domain is required or not.
 
       </documentation>
     </annotation>

     <sequence> 
         <element name = "inbound-mapping-required" type="javaee:true-falseType" minOccurs = "0" default="false"> 
           <annotation>
             <documentation>
               Optional.
               
               The default value is false which means CASE1. All caller-principal-mapping/group-principal-mapping will be ignored.
               
               If set to true, it means CASE2: caller-principal-mapping/group-principal-mapping will be used to get correct mapping 
               from EIS security domain to WLS security domain.
	       
             </documentation>
           </annotation>
         </element>
         
         <element name = "caller-principal-default-mapped" type="wls:anon-principalType" minOccurs = "0">
           <annotation>
             <documentation>
               Optional.
               This complex element is used to specify default mapping for EIS user names to either a WLS user name or WLS anonymous user.
               That is, if no WLS user name is found for an EIS user, this default mapping will be used.
             </documentation>
           </annotation>
         </element> 
         
         <element name = "caller-principal-mapping" type="wls:inbound-caller-principal-mappingType" minOccurs="0" maxOccurs = "unbounded">
           <annotation>
             <documentation>
               Optional.
               This complex element is used to specify a mapping from an EIS user name to either a WLS user name or WLS anonymous user.
             </documentation>
           </annotation>
         </element> 
          
         <element name = "group-principal-default-mapped" type="javaee:string" minOccurs = "0"> 
           <annotation>
             <documentation>
               Optional.
               This complex element is used to specify default mapping for EIS group names to a WLS group name.
               That is, if no WLS user name is found for an EIS user, this default mapping will be used.
             </documentation>
           </annotation>
         </element> 
         
         <element name = "group-principal-mapping" type="wls:inbound-group-principal-mappingType" minOccurs="0" maxOccurs = "unbounded"> 
           <annotation>
             <documentation>
               Optional.
               This complex element is used to specify a mapping from an EIS group name to WLS group name.
             </documentation>
           </annotation>
         </element> 
         
     </sequence> 
     <attribute name = "id" type = "ID"/> 
  </complexType> 
  <complexType name = "inbound-caller-principal-mappingType">
     <annotation>
        <documentation>
          This complex element is used to specify a mapping from an EIS user name to either a WLS user name or WLS anonymous user.
        </documentation>
     </annotation>
     <sequence> 
        <element name = "eis-caller-principal" type="javaee:string"> 
          <annotation>
            <documentation>
              This element specifies an EIS user principal name.
            </documentation>
          </annotation>
        </element>
        <element name = "mapped-caller-principal" type="wls:anon-principalType"> 
          <annotation>
            <documentation>
              This element specifies the mapped WLS user principal name or WLS anonymous user.
            </documentation>
          </annotation>
        </element>
     </sequence>
     <attribute name = "id" type = "ID"/> 
  </complexType> 
   
  <complexType name = "inbound-group-principal-mappingType">
    <annotation>
       <documentation>
          This complex element is used to specify a mapping from an EIS group name to WLS group name.
       </documentation>
    </annotation>
    <sequence>
        <element name = "eis-group-principal" type="javaee:string">
          <annotation>
            <documentation>
              This element specifies an EIS group principal name.
            </documentation>
          </annotation>
        </element>
        <element name = "mapped-group-principal" type="javaee:string">
          <annotation>
            <documentation>
              This element specifies the mapped WLS group principal name.
            </documentation>
          </annotation>
        </element>
    </sequence> 
    <attribute name = "id" type = "ID"/> 
  </complexType> 
</schema>
