blob: c386f68cb768c568ba08a56becb9369d00cc7f35 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Licensed to the Apache Software Foundation (ASF) under one or more
contributor license agreements. See the NOTICE file distributed with
this work for additional information regarding copyright ownership.
The ASF licenses this file to You under the Apache License, Version 2.0
(the "License"); you may not use this file except in compliance with
the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
xmlns:ger="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2"
xmlns:naming="http://geronimo.apache.org/xml/ns/naming-1.2"
xmlns:sys="http://geronimo.apache.org/xml/ns/deployment-1.2"
targetNamespace="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2"
xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xs:annotation>
<xs:documentation>
This is an XML Schema Definition for Geronimo resource adapter
deployment plan. In case the Geronimo resource adapter deployment
plan is provided internally in the resource adapter archive, it
should be names META-INF/geronimo-ra.xml. In case the Geronimo
resource adapter deployment plan is provided externally, the
deployment descriptor can be named anything and provided to the
deploy tool. Alternatively it can be included in the EAR and
referenced by an alt-dd element of the EAR deployment plan. All the
Geronimo resource adapter deployment plan must specify the top level
element as connector with namespace specified as xmlns=
"http://geronimo.apache.org/xml/ns/j2ee/connector-1.2". The default
location for this document is
http://geronimo.apache.org/xml/ns/j2ee/connector-1.2
</xs:documentation>
</xs:annotation>
<xs:import namespace="http://geronimo.apache.org/xml/ns/naming-1.2"
schemaLocation="geronimo-naming-1.2.xsd">
<xs:annotation>
<xs:documentation>
Import partial schema containing common naming elements, the
imported plan declares elements like ejb-ref, ejb-local-ref,
service-ref,resource-ref, and resource-env-ref required by this
plan schema.
</xs:documentation>
</xs:annotation>
</xs:import>
<xs:import namespace="http://geronimo.apache.org/xml/ns/deployment-1.2"
schemaLocation="geronimo-module-1.2.xsd">
<xs:annotation>
<xs:documentation>
Import Geronimo Services deployment plans. The imported plan
includes complex types like moduleType, environmentType,
dependenciesType, etc. required by this plan schema.
</xs:documentation>
</xs:annotation>
</xs:import>
<xs:import namespace="http://www.w3.org/XML/1998/namespace"
schemaLocation="http://www.w3.org/2001/xml.xsd" />
<xs:annotation>
<xs:documentation>
<![CDATA[
documents using this schema should start like:
<connector xmlns="http://geronimo.apache.org/xml/ns/j2ee/connector-1.2"
version="1.5">
@(#)geronimo-connector_1_5.xsds
]]>
</xs:documentation>
</xs:annotation>
<!-- **************************************************** -->
<xs:element name="connector" type="ger:connectorType">
<xs:annotation>
<xs:documentation>
The connector element is the root element of the deployment
descriptor for the resource adapter. Note that the sub-elements
of this element should be as in the given order in a sequence.
It includes geronimo specific information for the resource
adapter library.
</xs:documentation>
</xs:annotation>
<xs:unique name="resourceadapter-instance-name-uniqueness">
<xs:annotation>
<xs:documentation>
The resourceadapter-instance element must have a unique
name.
</xs:documentation>
</xs:annotation>
<xs:selector
xpath="ger:resourceadapter/ger:resourceadapter-instance" />
<xs:field xpath="ger:resourceadapter-name" />
</xs:unique>
<xs:unique name="connectiondefinition-instance-name-uniqueness">
<xs:annotation>
<xs:documentation>
The connectiondefinition-instance element must have a unique
name.
</xs:documentation>
</xs:annotation>
<xs:selector
xpath="ger:resourceadapter/ger:outbound-resourceadapter/ger:connection-definition/ger:connectiondefinition-instance" />
<xs:field xpath="ger:name" />
</xs:unique>
<xs:unique name="admin-object-instance-name-uniqueness">
<xs:annotation>
<xs:documentation>
The admin-object-instance element must have a unique name.
</xs:documentation>
</xs:annotation>
<xs:selector xpath="ger:adminobject/ger:adminobject-instance" />
<xs:field xpath="ger:message-destination-name" />
</xs:unique>
</xs:element>
<!-- **************************************************** -->
<xs:complexType name="adminobjectType">
<xs:annotation>
<xs:documentation>
This complex type maps back to adminobjectType complex type in
connectors xsd.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="adminobject-interface"
type="ger:fully-qualified-classType">
<xs:annotation>
<xs:documentation>
The element adminobject-interface maps back to an
adminobject-interface element in ra.xml. It specifies
the fully qualified name of Java interface of the
administrated object.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="adminobject-class"
type="ger:fully-qualified-classType">
<xs:annotation>
<xs:documentation>
The element adminobject-class maps back to an
adminobject-class element in ra.xml. It specifies the
fully qualified name of Java class of the administrated
object.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="adminobject-instance"
type="ger:adminobject-instanceType" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The element adminobject-instance contains the
configuration for this specific instance of the
administered object type, with a unique name, and values
for any configuration properties necessary for that
administered object type.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="adminobject-instanceType">
<xs:sequence>
<xs:element name="message-destination-name" type="xs:string">
<xs:annotation>
<xs:documentation>
A unique name for admin object instance. Used in object
name of gbean for it. Matches message-destination-name
in ejb-jar.xml assembly descriptor.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="config-property-setting"
type="ger:config-property-settingType" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The element config-property-setting specifies the set of
properties for admin object instance.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- **************************************************** -->
<xs:complexType name="config-property-settingType">
<xs:annotation>
<xs:documentation>
The config-property-settingType contains a name-value pair for a
config-property or required-config-property
</xs:documentation>
</xs:annotation>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
The name of the property in name-value pair. It
should match the config-property-name in a
config-property in the adminobject element of the
ra.xml file.
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
<!-- **************************************************** -->
<xs:complexType name="connection-definitionType">
<xs:annotation>
<xs:documentation>
The connection-definitionType defines a set of connection
interfaces and classes pertaining to a particular connection
type. This also includes configurable properties for
ManagedConnectionFactory instances that may be produced out of
this set.
The name element uniquely identifies this instance
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="connectionfactory-interface"
type="ger:fully-qualified-classType">
<xs:annotation>
<xs:documentation>
The connectionfactory-interface is unique in ra.xml so
is used to index into ra.xml. It provides the fully
qualified name of java interface used as
connectionfactory for resource adapter.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="connectiondefinition-instance"
type="ger:connectiondefinition-instanceType" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The connectiondefinition-instance provides the
configuration for a specific connection.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="connectiondefinition-instanceType">
<xs:sequence>
<xs:element name="name" type="xs:string">
<xs:annotation>
<xs:documentation>
The unique name of the connection definition instance
used to identify the connection configuration specified
here.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="jndi-name" type="xs:string" minOccurs="0">
<xs:annotation>
<xs:documentation>
The jndi name for this connection factory used for
jndi lookups using osgi:service/ scheme.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="implemented-interface"
type="ger:fully-qualified-classType" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Additional fully qualified name of java interfaces
implemented by the connectionfactory used by the
application apart from the connectionfactory-interface
specified before.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="config-property-setting"
type="ger:config-property-settingType" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The element config-property-setting specifies the set of
properties for connection instance.
</xs:documentation>
</xs:annotation>
</xs:element>
<!--<xs:choice>-->
<xs:element name="connectionmanager"
type="ger:connectionmanagerType">
<xs:annotation>
<xs:documentation>
The connectionmanager element specifies the connection
specific settings like transaction, security, and
connection pool.
</xs:documentation>
</xs:annotation>
</xs:element>
<!--<xs:element name="connectionmanager-ref" type="xs:string"/>-->
<!--</xs:choice>-->
</xs:sequence>
</xs:complexType>
<!-- **************************************************** -->
<xs:complexType name="connectionmanagerType">
<xs:annotation>
<xs:documentation>
The connectionmanager element specifies the connection specific
settings like transaction, security, and connection pool.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="container-managed-security" type="ger:emptyType"
minOccurs="0">
<xs:annotation>
<xs:documentation>
This empty element indicates that the connection is
authenticated by container and no user authentication is
required. This setting is ignored if res-auth is
provided inr resource-ref.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice minOccurs="0">
<xs:element name="no-transaction" type="ger:emptyType">
<xs:annotation>
<xs:documentation>
This empty element indicates no participation of
connection in any transactions.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="local-transaction" type="ger:emptyType">
<xs:annotation>
<xs:documentation>
This empty element indicates participation of
connection in only local transactions involving only
this connection.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="xa-transaction"
type="ger:xatransactionType">
<xs:annotation>
<xs:documentation>
The xa-transaction element indicates participation
of connection in multi resource transactions. This
element provides caching information for XA
transaction.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="transaction-log" type="ger:emptyType">
<xs:annotation>
<xs:documentation>
This empty element indicates participation JDBC
resource of local transaction type in XA
transactions.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
<xs:choice>
<xs:element name="no-pool" type="ger:emptyType">
<xs:annotation>
<xs:documentation>
This empty element indicates connection will not be
pooled at all, which mean every connection request
will open a connection for its own purpose.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="single-pool" type="ger:singlepoolType">
<xs:annotation>
<xs:documentation>
This element indicates connection will pooled in
only one connection pool. This element provides
information about single connection pool being
deployed.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="partitioned-pool"
type="ger:partitionedpoolType">
<xs:annotation>
<xs:documentation>
This element indicates connection will pooled in
multiple connection pools. This element provides
information about multiple connection pools being
deployed.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="xatransactionType">
<xs:sequence>
<xs:element name="transaction-caching" type="ger:emptyType"
minOccurs="0">
<xs:annotation>
<xs:documentation>
This empty element indicates the sharing of same
connection in same transaction if multiple connections
are requested in same transaction.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="thread-caching" type="ger:emptyType"
minOccurs="0">
<xs:annotation>
<xs:documentation>
This empty element indicates the sharing of same
connection in same thread if multiple connections are
requested in same thread.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="singlepoolType">
<xs:sequence>
<xs:element name="max-size" type="xs:int" minOccurs="0">
<xs:annotation>
<xs:documentation>
The maximum number of connection in a connection pool
being deployed. The connection pool will stop filling
once reached this value.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="min-size" type="xs:int" minOccurs="0">
<xs:annotation>
<xs:documentation>
The minimum number of connection in a connection pool
being deployed. The connection pool will try to fill
itself if the number of connections fall below this
value.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="blocking-timeout-milliseconds" type="xs:int"
minOccurs="0">
<xs:annotation>
<xs:documentation>
The time after which timeout will be thrown if no
connections are available to be loaned in a connection
pool.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="idle-timeout-minutes" type="xs:int"
minOccurs="0">
<xs:annotation>
<xs:documentation>
The time after which connection will be automatically
considered released.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice>
<xs:element name="match-one" type="ger:emptyType">
<xs:annotation>
<xs:documentation>
This element indicates that only one connection
needs to be checked for matching the connection
request. If the connection does not match, it throws
an error to the effect of "please adjust your
configuration and try again".
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="match-all" type="ger:emptyType">
<xs:annotation>
<xs:documentation>
This element indicates that all the connections need
to be checked for matching the connection request.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="select-one-assume-match"
type="ger:emptyType">
<xs:annotation>
<xs:documentation>
This empty field indicated that no connection
settings need to checked and matched, and assumes
that all connections are same and one of them will
be returned back to client.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:choice>
</xs:sequence>
</xs:complexType>
<xs:complexType name="partitionedpoolType">
<complexContent>
<extension base="ger:singlepoolType">
<xs:sequence>
<xs:element name="partition-by-subject" type="ger:emptyType"
minOccurs="0">
<xs:annotation>
<xs:documentation>
This empty partition-by-subject field indicates
that connection pool has to be partitioned by
subject field.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="partition-by-connectionrequestinfo"
type="ger:emptyType" minOccurs="0">
<xs:annotation>
<xs:documentation>
This empty partition-by-connectionrequestinfo
field indicates that connection pool has to be
partitioned by connection request information.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</extension>
</complexContent>
</xs:complexType>
<!-- **************************************************** -->
<xs:complexType name="connectorType">
<xs:annotation>
<xs:documentation>
The connector element is the root element of the deployment
descriptor for the resource adapter. Note that the sub-elements
of this element should be as in the given order in a sequence.
It includes geronimo specific information for the resource
adapter library.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element ref="sys:environment" minOccurs="0">
<xs:annotation>
<xs:documentation>
Reference to environment element defined in imported
"geronimo-module-1.2.xsd"
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="resourceadapter" type="ger:resourceadapterType"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The element resourceadapter defines the resource
adapters for the connector defined in the document.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="adminobject" type="ger:adminobjectType"
minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The element adminobject maps back to adminobject defined
in ra.xml. It provides specific instance information for
administer object defined in ra.xml. For example, if
topic is declared in the ra.xml this could provide topic
instance information.
An admin object configured here cannot implement ResourceAdapterAssociation.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="sys:service" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Reference to service element defined in imported
"geronimo-module-1.2.xsd".
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- **************************************************** -->
<xs:complexType name="emptyType" />
<!-- **************************************************** -->
<xs:complexType name="outbound-resourceadapterType">
<xs:annotation>
<xs:documentation>
The outbound-resourceadapterType specifies information about an
outbound resource adapter. The information includes fully
qualified names of classes/interfaces required as part of the
connector architecture specified contracts for connection
management, level of transaction support provided, one or more
authentication mechanisms supported and additional required
security permissions.
If there is no authentication-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.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="connection-definition"
type="ger:connection-definitionType" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The connection-definitionType defines a set of
connection interfaces and classes pertaining to a
particular connection type. This also includes
configurable properties for ManagedConnectionFactory
instances that may be produced out of this set.
The name element uniquely identifies this instance.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- **************************************************** -->
<xs:complexType name="resourceadapterType">
<xs:sequence>
<xs:element name="resourceadapter-instance"
type="ger:resourceadapter-instanceType" minOccurs="0">
<xs:annotation>
<xs:documentation>
The resourceadapter instance provide resource adapter
instance specific information like configuration
properties and workmanager implementation.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="outbound-resourceadapter"
type="ger:outbound-resourceadapterType" minOccurs="0">
<xs:annotation>
<xs:documentation>
The outbound-resourceadapterType specifies information
about an outbound resource adapter. The information
includes fully qualified names of classes/interfaces
required as part of the connector architecture specified
contracts for connection management, level of
transaction support provided, one or more authentication
mechanisms supported and additional required security
permissions.
If there is no authentication-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.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="adminobject" type="ger:adminobjectType"
minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The element adminobject maps back to adminobject defined
in ra.xml. It provides specific instance information for
administer object defined in ra.xml. For example, if
topic is declared in the ra.xml this could provide topic
instance information.
An admin object configured here can implement ResourceAdapterAssociation.
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="resourceadapter-instanceType">
<xs:annotation>
<xs:documentation>
The resourceadapter instance info is put in a separate optional
element to provide easier more consistent support for 1.0
adapters. The resourceadapter instance provide resource adapter
instance specific information like configuration properties and
workmanager implementation.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="resourceadapter-name" type="xs:string">
<xs:annotation>
<xs:documentation>
The element resourceadapter-name provides a name for
this resource adapter, and it is used to index back to
the resourceadapter-name specified in ra.xml.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="config-property-setting"
type="ger:config-property-settingType" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
The element config-property-setting specifies the set of
properties for resource adapter instance.
</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element ref="naming:workmanager">
<xs:annotation>
<xs:documentation>
Reference to workmanager element defined in imported
"geronimo-naming-1.2.xsd"
</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:complexType>
<!-- types borrowed from the j2ee schema. We might want to centralize these -->
<xs:simpleType name="fully-qualified-classType">
<xs:restriction base="xs:string" />
</xs:simpleType>
<xs:complexType name="descriptionType">
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute ref="xml:lang" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>