blob: 4539c495ddc6b127415cf4996a75e27be776c82a [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:xs="http://www.w3.org/2001/XMLSchema"
xmlns:jms="http://cxf.apache.org/transports/jms"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
targetNamespace="http://cxf.apache.org/transports/jms"
xmlns:pt="http://cxf.apache.org/configuration/parameterized-types"
elementFormDefault="qualified" jaxb:version="2.0">
<xs:import namespace="http://schemas.xmlsoap.org/wsdl/"
schemaLocation="http://schemas.xmlsoap.org/wsdl/2003-02-11.xsd"/>
<xs:import namespace="http://cxf.apache.org/configuration/parameterized-types"
schemaLocation="http://cxf.apache.org/schemas/configuration/parameterized-types.xsd"/>
<!-- Valid wsdl elements -->
<xs:element name="client" type="jms:ClientBehaviorPolicyType"/>
<xs:element name="server" type="jms:ServerBehaviorPolicyType"/>
<xs:element name="clientConfig" type="jms:ClientConfig"/>
<xs:element name="serverConfig" type="jms:ServerConfig"/>
<xs:element name="address" type="jms:AddressType"/>
<xs:element name="sessionPool" type="jms:SessionPoolType"/>
<xs:complexType name="SessionPoolType">
<xs:annotation>
<xs:documentation>JMS Session pool configuration policy</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="wsdl:tExtensibilityElement">
<xs:attribute name="lowWaterMark" type="pt:ParameterizedInt" default="20"/>
<xs:attribute name="highWaterMark" type="pt:ParameterizedInt" default="500" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ClientConfig">
<xs:complexContent>
<xs:extension base="wsdl:tExtensibilityElement">
<xs:attribute name="clientReceiveTimeout" type="pt:ParameterizedLong"
default="60000" />
<xs:attribute name="messageTimeToLive" type="pt:ParameterizedLong"
default="0" />
<xs:attribute name="conduitSelectorPrefix" type="xs:string" use="optional"/>
<xs:attribute name="useConduitIdSelector" type="pt:ParameterizedBoolean" use="optional"/>
<xs:attribute name="enforceSpec" type="pt:ParameterizedBoolean" use="optional" default="true"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ServerConfig">
<xs:complexContent>
<xs:extension base="wsdl:tExtensibilityElement">
<xs:attribute name="messageTimeToLive" type="pt:ParameterizedLong" default="0" />
<xs:attribute name="durableSubscriptionClientId" type="xs:string" />
<xs:attribute name="serverReceiveTimeout" type="pt:ParameterizedLong"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="JMSPropertyType">
<xs:sequence>
<xs:element name="name" type="xs:string"/>
<xs:element name="value" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="JMSMessageHeadersType">
<xs:annotation>
<xs:documentation>JMS properties.</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="property" type="jms:JMSPropertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<!-- JMS Header properties -->
<xs:attribute name="JMSCorrelationID" type="xs:string"/>
<xs:attribute name="JMSDeliveryMode" type="pt:ParameterizedInt"/>
<xs:attribute name="JMSExpiration" type="pt:ParameterizedLong"/>
<xs:attribute name="JMSMessageID" type="xs:string"/>
<xs:attribute name="JMSPriority" type="pt:ParameterizedInt"/>
<xs:attribute name="JMSRedelivered" type="pt:ParameterizedBoolean"/>
<xs:attribute name="JMSReplyTo" type="xs:string"/>
<xs:attribute name="JMSTimeStamp" type="pt:ParameterizedLong"/>
<xs:attribute name="JMSType" type="xs:string"/>
<xs:attribute name="TimeToLive" type="pt:ParameterizedLong"/>
<!-- JMS Message properties for SOAP over JMS specification -->
<xs:attribute name="SOAPJMSTargetService" type="xs:string"/>
<xs:attribute name="SOAPJMSBindingVersion" type="xs:string"/>
<xs:attribute name="SOAPJMSContentType" type="xs:string"/>
<xs:attribute name="SOAPJMSContentEncoding" type="xs:string"/>
<xs:attribute name="SOAPJMSSOAPAction" type="xs:anyURI"/>
<xs:attribute name="SOAPJMSIsFault" type="pt:ParameterizedBoolean"/>
<xs:attribute name="SOAPJMSRequestURI" type="xs:string"/>
</xs:complexType>
<!--
<xs:complexType name="SOAPOverJMSMessageType">
<xs:annotation>
<xs:documentation>SOAP Over JMS Message Properties</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="property" type="jms:JMSPropertyType" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:attribute name="SOAPJMSTargetService" type="xs:string"/>
<xs:attribute name="SOAPJMSBindingVersion" type="xs:string"/>
<xs:attribute name="SOAPJMSContentType" type="xs:string"/>
<xs:attribute name="SOAPJMSSOAPAction" type="xs:anyURI"/>
<xs:attribute name="SOAPJMSIsFault" type="xs:boolean"/>
<xs:attribute name="SOAPJMSRequestURI" type="xs:string"/>
</xs:complexType>
-->
<xs:simpleType name="JMSClientReceiveTimeOut">
<xs:restriction base="pt:ParameterizedLong"/>
</xs:simpleType>
<xs:simpleType name="DestinationStyleType">
<xs:restriction base="xs:string">
<xs:enumeration value="queue"/>
<xs:enumeration value="topic"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="JMSNamingPropertyType">
<xs:annotation>
<xs:documentation>
javaNaming properties name/value pair.
</xs:documentation>
</xs:annotation>
<xs:attribute name="name" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Name of Java Naming Property
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="value" type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Value of Java Naming Property
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:complexType>
<xs:simpleType name="MessageFormatType">
<xs:restriction base="xs:string">
<xs:enumeration value="text"/>
<xs:enumeration value="binary"/>
<xs:enumeration value="byte"/>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="AddressType">
<xs:complexContent>
<xs:extension base="wsdl:tExtensibilityElement">
<xs:sequence>
<xs:element name="JMSNamingProperty"
type="jms:JMSNamingPropertyType" minOccurs="0"
maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="destinationStyle"
type="jms:DestinationStyleType" default="queue">
<xs:annotation>
<xs:documentation>
JMS Destination style queue or topic.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="jndiConnectionFactoryName"
type="xs:string" use="required">
<xs:annotation>
<xs:documentation>
Type of the JNDI Connection factory
queueConnectionFactory or
topicConnectionFactory.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="jndiDestinationName"
type="xs:string">
<xs:annotation>
<xs:documentation>
Name of the JNDI Destination queue or topic.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="jmsDestinationName"
type="xs:string">
<xs:annotation>
<xs:documentation>
JMS destination queue name or topic name.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="jndiReplyDestinationName"
type="xs:string">
<xs:annotation>
<xs:documentation>
JMS Message Replyto destination when static
queues are used for reply.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="jmsReplyDestinationName"
type="xs:string">
<xs:annotation>
<xs:documentation>
JMS Replyto destination queue name when
using static queues for reply.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="jndiReplyToDestinationName"
type="xs:string">
<xs:annotation>
<xs:documentation>
Used when the ReplyTo address on the message needs to be different
than the listening address of the consumer. This mostly applies to
MQSeries users who are interacting with remote queues.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="jmsReplyToDestinationName"
type="xs:string">
<xs:annotation>
<xs:documentation>
Used when the ReplyTo address on the message needs to be different
than the listening address of the consumer. This mostly applies to
MQSeries users who are interacting with remote queues.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="connectionUserName"
type="xs:string">
<xs:annotation>
<xs:documentation>
UserName to use while creating JMS
queue/topic connection.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="connectionPassword"
type="xs:string">
<xs:annotation>
<xs:documentation>
Password to use while creating JMS
queue/topic connection.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="useJms11" type="pt:ParameterizedBoolean" use="optional"/>
<xs:attribute name="reconnectOnException" type="pt:ParameterizedBoolean" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ClientBehaviorPolicyType">
<xs:complexContent>
<xs:extension base="wsdl:tExtensibilityElement">
<xs:attribute name="messageType" type="jms:MessageFormatType" default="text">
<xs:annotation>
<xs:documentation>Type of the JMS Message payload, currently supported text and binary.</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="ServerBehaviorPolicyType">
<xs:annotation>
<xs:documentation>JMS configuration policy for CXF Server.
These are used for configuring JMS port on CXF server side.
</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="wsdl:tExtensibilityElement">
<xs:annotation>
<xs:documentation>Sets selection criteria for messages received by server</xs:documentation>
</xs:annotation>
<xs:attribute name="messageSelector" type="xs:string">
<xs:annotation>
<xs:documentation>
JMS Message Selector attribute to filter messages from the queue.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="useMessageIDAsCorrelationID" type="pt:ParameterizedBoolean" default="false">
<xs:annotation>
<xs:documentation>
Flag to indicate whether to use JMS Message Id as correlation ID. It is serverside only so should go in ServerPolicy
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="transactional" type="pt:ParameterizedBoolean" default="false">
<xs:annotation>
<xs:documentation>
Flag to specify whether to use JMS transaction support on server side.
</xs:documentation>
</xs:annotation>
</xs:attribute>
<xs:attribute name="durableSubscriberName" type="xs:string">
<xs:annotation>
<xs:documentation>
Specifies the name of the Durable Subscription
</xs:documentation>
</xs:annotation>
</xs:attribute>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="JMSFaultType">
<xs:sequence>
<xs:element name="FaultCode" type="xs:QName"/>
<xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
</xs:sequence>
<xs:anyAttribute namespace="##any" processContents="lax"/>
</xs:complexType>
</xs:schema>