blob: 24506106e18b2f497c54a001b0ede70b66c4db1a [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<xsd:schema xmlns="http://www.mulesource.org/schema/mule/jms/2.1"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:mule="http://www.mulesource.org/schema/mule/core/2.1"
xmlns:schemadoc="http://www.mulesource.org/schema/mule/schemadoc/2.1"
targetNamespace="http://www.mulesource.org/schema/mule/jms/2.1"
elementFormDefault="qualified"
attributeFormDefault="unqualified">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace"/>
<xsd:import namespace="http://www.mulesource.org/schema/mule/core/2.1"
schemaLocation="IDEADEV_32773.xsd" />
<xsd:import namespace = "http://www.mulesource.org/schema/mule/schemadoc/2.1"
schemaLocation = "IDEADEV_32773-schemadoc.xsd"/>
<xsd:annotation>
<xsd:documentation>The JMS transport provides support for sending messages via JMS queues.</xsd:documentation>
<xsd:appinfo>
<schemadoc:short-name>JMS</schemadoc:short-name>
<schemadoc:page-title>JMS Transport</schemadoc:page-title>
<schemadoc:transport-features receiveEvents="true" dispatchEvents="true" responseEvents="true"
requestEvents="true"
transactions="true" streaming="true">
<schemadoc:inboundMEPs in-only="true" in-optional-out="true" in-out="true"/>
<schemadoc:outboundMEPs out-only="true" out-in="true" out-optional-in="true"/>
</schemadoc:transport-features>
</xsd:appinfo>
</xsd:annotation>
<!-- Generic JMS Connector -->
<xsd:element name="connector" type="genericConnectorType" substitutionGroup="mule:abstract-connector">
<xsd:annotation>
<xsd:documentation>
A generic connector for sending and receiving messages over JMS queues.
</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="genericConnectorType">
<xsd:complexContent>
<xsd:extension base="mule:connectorType">
<!-- The ConnectionFactory is required for non-vendor JMS configs -->
<xsd:attribute name="connectionFactory-ref" type="xsd:NMTOKEN"/>
<xsd:attributeGroup ref="jmsConnectorAttributes"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- Custom JMS Connector -->
<xsd:element name="custom-connector" substitutionGroup="mule:abstract-connector">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="mule:customConnectorType">
<xsd:attributeGroup ref="jmsConnectorAttributes"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:attributeGroup name="jmsConnectorAttributes">
<xsd:attribute name="redeliveryHandlerFactory-ref" type="xsd:NMTOKEN"/>
<xsd:attribute name="acknowledgementMode" default="AUTO_ACKNOWLEDGE">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="AUTO_ACKNOWLEDGE"/>
<xsd:enumeration value="CLIENT_ACKNOWLEDGE"/>
<xsd:enumeration value="DUPS_OK_ACKNOWLEDGE"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="clientId" type="xsd:string"/>
<xsd:attribute name="durable" type="mule:substitutableBoolean"/>
<xsd:attribute name="noLocal" type="mule:substitutableBoolean"/>
<xsd:attribute name="persistentDelivery" type="mule:substitutableBoolean"/>
<xsd:attribute name="honorQosHeaders" type="mule:substitutableBoolean"/>
<xsd:attribute name="maxRedelivery" type="mule:substitutableInt"/>
<xsd:attribute name="cacheJmsSessions" type="mule:substitutableBoolean"/>
<xsd:attribute name="recoverJmsConnections" type="mule:substitutableBoolean">
<xsd:annotation>
<xsd:documentation>
Deprecated. This attribute is no longer relevant for the new retry policies. See MULE-3812
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="eagerConsumer" type="mule:substitutableBoolean"/>
<!-- Defaults to org.mule.transport.jms.JmsConstants.JMS_SPECIFICATION_102B -->
<xsd:attribute name="specification" default="1.0.2b">
<xsd:simpleType>
<xsd:restriction base="xsd:NMTOKEN">
<xsd:enumeration value="1.0.2b"/>
<xsd:enumeration value="1.1"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:attribute>
<xsd:attribute name="username" type="xsd:string"/>
<xsd:attribute name="password" type="xsd:string"/>
<xsd:attribute name="numberOfConsumers" type="mule:substitutableInt">
<xsd:annotation>
<xsd:documentation>
Configures the number of concurrent consumers that will be used to receive JMS messages.
(Note: If you use this attribute you should not configure the 'numberOfConcurrentTransactedReceivers' which has the same effect.)
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="jndiInitialFactory" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Configures the initial factory class to use when connecting to JNDI.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="jndiProviderUrl" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Configures the URL to use when connecting to JNDI.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="jndiProviderProperties-ref" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Configures a reference to a Map that contains additional provider properties.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="connectionFactoryJndiName" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
Configures the name to use when looking up the connection factory from JNDI.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="jndiDestinations" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
Set this to true if you want to lookup queues or topics from JNDI instead of
creating them from the session.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="forceJndiDestinations" type="xsd:boolean">
<xsd:annotation>
<xsd:documentation>
If this is set to true, Mule to fails when a topic or queue cannot be retrieved
from JNDI. If this is set to false, Mule will create a topic or queue from the
JMS session if the JNDI lookup fails.
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- Vendor-specific JMS Connectors -->
<xsd:complexType name="vendorJmsConnectorType">
<xsd:complexContent>
<xsd:extension base="mule:connectorType">
<!-- Optional, a default ConnectionFactory is provided for vendor JMS configs -->
<xsd:attribute name="connectionFactory-ref" type="xsd:NMTOKEN" use="optional"/>
<xsd:attributeGroup ref="jmsConnectorAttributes"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="activemq-connector" type="activeMqConnectorType" substitutionGroup="mule:abstract-connector"/>
<xsd:element name="activemq-xa-connector" type="activeMqConnectorType" substitutionGroup="mule:abstract-connector"/>
<xsd:complexType name="activeMqConnectorType">
<xsd:complexContent>
<xsd:extension base="vendorJmsConnectorType">
<xsd:attribute name="brokerURL" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="weblogic-connector" type="vendorJmsConnectorType" substitutionGroup="mule:abstract-connector"/>
<xsd:element name="websphere-connector" type="vendorJmsConnectorType" substitutionGroup="mule:abstract-connector"/>
<xsd:element name="transaction" type="mule:baseTransactionType" substitutionGroup="mule:abstract-transaction"/>
<xsd:element name="client-ack-transaction" type="mule:baseTransactionType" substitutionGroup="mule:abstract-transaction"/>
<xsd:element name="jmsmessage-to-object-transformer" type="mule:abstractTransformerType" substitutionGroup="mule:abstract-transformer"/>
<xsd:element name="object-to-jmsmessage-transformer" type="mule:abstractTransformerType" substitutionGroup="mule:abstract-transformer"/>
<xsd:element name="inbound-endpoint" type="inboundEndpointType" substitutionGroup="mule:abstract-inbound-endpoint"/>
<xsd:complexType name="inboundEndpointType">
<xsd:complexContent>
<xsd:extension base="mule:abstractInboundEndpointType">
<xsd:group ref="defaultEndpointElements"/>
<xsd:attributeGroup ref="mule:defaultEndpointAttributes"/>
<xsd:attributeGroup ref="addressAttributes"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="outbound-endpoint" type="outboundEndpointType" substitutionGroup="mule:abstract-outbound-endpoint"/>
<xsd:complexType name="outboundEndpointType">
<xsd:complexContent>
<xsd:extension base="mule:abstractOutboundEndpointType">
<xsd:group ref="defaultEndpointElements"/>
<xsd:attributeGroup ref="mule:defaultEndpointAttributes"/>
<xsd:attributeGroup ref="addressAttributes"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="endpoint" type="globalEndpointType" substitutionGroup="mule:abstract-global-endpoint"/>
<xsd:complexType name="globalEndpointType">
<xsd:complexContent>
<xsd:extension base="mule:abstractGlobalEndpointType">
<xsd:group ref="defaultEndpointElements"/>
<xsd:attributeGroup ref="mule:defaultEndpointAttributes"/>
<xsd:attributeGroup ref="addressAttributes"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:attributeGroup name="addressAttributes">
<xsd:attribute name="queue" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The queue name.
This cannot be used with the topic attribute (the two are exclusive).
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="topic" type="xsd:string">
<xsd:annotation>
<xsd:documentation>
The topic name. The "topic:" prefix will be added automatically.
This cannot be used with the queue attribute (the two are exclusive).
</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:attributeGroup>
<!-- these include option/repeats - should be embedded once -->
<!-- this is a modified version of what is in mule.xsd, allowing either a selector or a
normal filter to be set -->
<xsd:group name="defaultEndpointElements">
<xsd:sequence>
<xsd:sequence minOccurs="0" maxOccurs="unbounded">
<xsd:group ref="mule:endpointTransformers"/>
<xsd:element ref="mule:abstract-transaction" minOccurs="0"/>
<xsd:element ref="mule:abstract-xa-transaction" minOccurs="0"/>
<xsd:choice>
<xsd:element ref="mule:abstract-filter" minOccurs="0"/>
<xsd:element name="selector" type="jmsSelectorFilter" minOccurs="0"/>
</xsd:choice>
<xsd:element ref="mule:abstract-security-filter" minOccurs="0"/>
<xsd:group ref="mule:propertiesGroup"/>
</xsd:sequence>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="jmsSelectorFilter">
<xsd:annotation>
<xsd:documentation>
This sets a selector on the underlying JMS transport.
It is not a standard Mule filter and cannot be combined with other filters.
</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="expression" type="xsd:string"/>
</xsd:complexType>
<xsd:element name="property-filter" substitutionGroup="mule:abstract-filter">
<xsd:complexType>
<xsd:complexContent>
<xsd:extension base="mule:abstractFilterType">
<xsd:attribute name="propertyName" type="xsd:string"/>
<xsd:attribute name="propertyClass" type="xsd:string"/>
<xsd:attribute name="expression" type="xsd:string"/>
<xsd:attribute name="pattern" type="xsd:string"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
</xsd:schema>