ARTEMIS-1731 Support offline validation
[activemq-artemis.git] / artemis-server / src / main / resources / schema / artemis-configuration.xsd
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!--
3   Licensed to the Apache Software Foundation (ASF) under one or more
4   contributor license agreements.  See the NOTICE file distributed with
5   this work for additional information regarding copyright ownership.
6   The ASF licenses this file to You under the Apache License, Version 2.0
7   (the "License"); you may not use this file except in compliance with
8   the License.  You may obtain a copy of the License at
9
10   http://www.apache.org/licenses/LICENSE-2.0
11
12   Unless required by applicable law or agreed to in writing, software
13   distributed under the License is distributed on an "AS IS" BASIS,
14   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15   See the License for the specific language governing permissions and
16   limitations under the License.
17 -->
18 <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
19             xmlns="urn:activemq:core"
20             targetNamespace="urn:activemq:core"
21             attributeFormDefault="unqualified"
22             elementFormDefault="qualified"
23             version="1.0">
24
25    <xsd:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="xml.xsd"/>
26
27    <xsd:element name="core" type="configurationType"/>
28
29    <xsd:complexType name="configurationType">
30       <xsd:all>
31          <xsd:element name="name" type="xsd:string" maxOccurs="1" minOccurs="0">
32             <xsd:annotation>
33                <xsd:documentation>
34                   Node name. If set, it will be used in topology notifications.
35                </xsd:documentation>
36             </xsd:annotation>
37          </xsd:element>
38
39          <xsd:element name="system-property-prefix" type="xsd:string" maxOccurs="1" minOccurs="0">
40             <xsd:annotation>
41                <xsd:documentation>
42                   This defines the prefix which we will use to parse System properties for the configuration. Default=
43                </xsd:documentation>
44             </xsd:annotation>
45          </xsd:element>
46
47          <xsd:element name="internal-naming-prefix" type="xsd:string" maxOccurs="1" minOccurs="0">
48             <xsd:annotation>
49                <xsd:documentation>
50                   Artemis uses internal queues and addresses for implementing certain behaviours.  These queues and addresses
51                   will be prefixed by default with "$.activemq.internal" to avoid naming clashes with user namespacing.
52                   This can be overridden by setting this value to a valid Artemis address.
53                </xsd:documentation>
54             </xsd:annotation>
55          </xsd:element>
56
57          <xsd:element name="amqp-use-core-subscription-naming" type="xsd:boolean" maxOccurs="1" minOccurs="0" default="false">
58             <xsd:annotation>
59                <xsd:documentation>
60                   This enables making AMQP subscription queue names, match core queue names, for better interoperability between protocols.
61                   Note: Enabling this to an existing broker if pre-existing amqp durable subscriptions already existed will require
62                   clients to re-subscribe and to clean up old subscription names.
63                </xsd:documentation>
64             </xsd:annotation>
65          </xsd:element>
66
67          <xsd:element name="resolve-protocols" type="xsd:boolean" default="true" maxOccurs="1"
68                       minOccurs="0">
69             <xsd:annotation>
70                <xsd:documentation>
71                   If true then the ActiveMQ Artemis Server will make use of any Protocol Managers that are in available
72                   on the
73                   classpath. If false then only the core protocol will be available, unless in Embedded mode where users
74                   can inject their own Protocol Managers.
75                </xsd:documentation>
76             </xsd:annotation>
77          </xsd:element>
78
79          <xsd:element name="journal-datasync" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
80             <xsd:annotation>
81                <xsd:documentation>
82                   that means the server will use fdatasync to confirm writes on the disk.
83                </xsd:documentation>
84             </xsd:annotation>
85          </xsd:element>
86
87          <xsd:element name="persistence-enabled" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
88             <xsd:annotation>
89                <xsd:documentation>
90                   true means that the server will use the file based journal for persistence.
91                </xsd:documentation>
92             </xsd:annotation>
93          </xsd:element>
94
95          <xsd:element name="scheduled-thread-pool-max-size" type="xsd:int" default="5" maxOccurs="1" minOccurs="0">
96             <xsd:annotation>
97                <xsd:documentation>
98                   Maximum number of threads to use for the scheduled thread pool
99                </xsd:documentation>
100             </xsd:annotation>
101          </xsd:element>
102
103          <xsd:element name="thread-pool-max-size" type="xsd:int" default="30" maxOccurs="1" minOccurs="0">
104             <xsd:annotation>
105                <xsd:documentation>
106                   Maximum number of threads to use for the thread pool. -1 means 'no limits'.
107                </xsd:documentation>
108             </xsd:annotation>
109          </xsd:element>
110
111          <xsd:element name="graceful-shutdown-enabled" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
112             <xsd:annotation>
113                <xsd:documentation>
114                   true means that graceful shutdown is enabled
115                </xsd:documentation>
116             </xsd:annotation>
117          </xsd:element>
118
119          <xsd:element name="graceful-shutdown-timeout" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0">
120             <xsd:annotation>
121                <xsd:documentation>
122                   how long (in ms) to wait for clients to disconnect before shutting down the server
123                </xsd:documentation>
124             </xsd:annotation>
125          </xsd:element>
126
127          <xsd:element name="security-enabled" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
128             <xsd:annotation>
129                <xsd:documentation>
130                   true means that security is enabled
131                </xsd:documentation>
132             </xsd:annotation>
133          </xsd:element>
134
135          <xsd:element name="security-invalidation-interval" type="xsd:long" default="10000" maxOccurs="1" minOccurs="0">
136             <xsd:annotation>
137                <xsd:documentation>
138                   how long (in ms) to wait before invalidating the security cache
139                </xsd:documentation>
140             </xsd:annotation>
141          </xsd:element>
142
143          <xsd:element name="journal-lock-acquisition-timeout" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0">
144             <xsd:annotation>
145                <xsd:documentation>
146                   how long (in ms) to wait to acquire a file lock on the journal
147                </xsd:documentation>
148             </xsd:annotation>
149          </xsd:element>
150
151          <xsd:element name="wild-card-routing-enabled" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
152             <xsd:annotation>
153                <xsd:documentation>
154                   true means that the server supports wild card routing
155                </xsd:documentation>
156             </xsd:annotation>
157          </xsd:element>
158
159          <xsd:element name="management-address" type="xsd:string" default="jms.queue.activemq.management" maxOccurs="1"
160                       minOccurs="0">
161             <xsd:annotation>
162                <xsd:documentation>
163                   the name of the management address to send management messages to. It is prefixed with "jms.queue" so
164                   that JMS clients can send messages to it.
165                </xsd:documentation>
166             </xsd:annotation>
167          </xsd:element>
168
169          <xsd:element name="management-notification-address" type="xsd:string" default="activemq.notifications"
170                       maxOccurs="1" minOccurs="0">
171             <xsd:annotation>
172                <xsd:documentation>
173                   the name of the address that consumers bind to receive management notifications
174                </xsd:documentation>
175             </xsd:annotation>
176          </xsd:element>
177
178          <xsd:element name="cluster-user" type="xsd:string" default="ACTIVEMQ.CLUSTER.ADMIN.USER" maxOccurs="1"
179                       minOccurs="0">
180             <xsd:annotation>
181                <xsd:documentation>
182                   Cluster username. It applies to all cluster configurations.
183                </xsd:documentation>
184             </xsd:annotation>
185          </xsd:element>
186
187          <xsd:element name="cluster-password" maxOccurs="1" minOccurs="0" type="xsd:string" default="CHANGE ME!!">
188             <xsd:annotation>
189                <xsd:documentation>
190                   Cluster password. It applies to all cluster configurations.
191                </xsd:documentation>
192             </xsd:annotation>
193          </xsd:element>
194
195          <xsd:element name="password-codec" type="xsd:string"
196                       default="org.apache.activemq.artemis.utils.DefaultSensitiveStringCodec" maxOccurs="1"
197                       minOccurs="0">
198             <xsd:annotation>
199                <xsd:documentation>
200                   Class name and its parameters for the Decoder used to decode the masked password. Ignored if
201                   mask-password is false. The format of this property is a full qualified class name optionally followed
202                   by key/value pairs.
203                </xsd:documentation>
204             </xsd:annotation>
205          </xsd:element>
206
207          <xsd:element name="mask-password" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
208             <xsd:annotation>
209                <xsd:documentation>
210                   This option controls whether passwords in server configuration need be masked. If set to "true" the
211                   passwords are masked.
212                </xsd:documentation>
213             </xsd:annotation>
214          </xsd:element>
215
216          <xsd:element name="log-delegate-factory-class-name" type="xsd:string" maxOccurs="1" minOccurs="0">
217             <xsd:annotation>
218                <xsd:documentation>
219                   XXX
220                </xsd:documentation>
221             </xsd:annotation>
222          </xsd:element>
223
224          <xsd:element name="jmx-management-enabled" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
225             <xsd:annotation>
226                <xsd:documentation>
227                   true means that the management API is available via JMX
228                </xsd:documentation>
229             </xsd:annotation>
230          </xsd:element>
231
232          <xsd:element name="jmx-domain" type="xsd:string" default="org.apache.activemq" maxOccurs="1" minOccurs="0">
233             <xsd:annotation>
234                <xsd:documentation>
235                   the JMX domain used to registered ActiveMQ Artemis MBeans in the MBeanServer
236                </xsd:documentation>
237             </xsd:annotation>
238          </xsd:element>
239
240          <xsd:element name="jmx-use-broker-name" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
241             <xsd:annotation>
242                <xsd:documentation>
243                   Whether or not to use the broker name in the JMX properties
244                </xsd:documentation>
245             </xsd:annotation>
246          </xsd:element>
247
248          <xsd:element name="message-counter-enabled" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
249             <xsd:annotation>
250                <xsd:documentation>
251                   true means that message counters are enabled
252                </xsd:documentation>
253             </xsd:annotation>
254          </xsd:element>
255
256          <xsd:element name="message-counter-sample-period" type="xsd:long" default="10000" maxOccurs="1" minOccurs="0">
257             <xsd:annotation>
258                <xsd:documentation>
259                   the sample period (in ms) to use for message counters
260                </xsd:documentation>
261             </xsd:annotation>
262          </xsd:element>
263
264          <xsd:element name="message-counter-max-day-history" type="xsd:int" default="10" maxOccurs="1" minOccurs="0">
265             <xsd:annotation>
266                <xsd:documentation>
267                   how many days to keep message counter history
268                </xsd:documentation>
269             </xsd:annotation>
270          </xsd:element>
271
272          <xsd:element name="connection-ttl-override" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0">
273             <xsd:annotation>
274                <xsd:documentation>
275                   if set, this will override how long (in ms) to keep a connection alive without receiving a ping. -1
276                   disables this setting.
277                </xsd:documentation>
278             </xsd:annotation>
279          </xsd:element>
280
281          <xsd:element name="connection-ttl-check-interval" type="xsd:long" default="2000" maxOccurs="1" minOccurs="0">
282             <xsd:annotation>
283                <xsd:documentation>
284                   how often (in ms) to check connections for ttl violation
285                </xsd:documentation>
286             </xsd:annotation>
287          </xsd:element>
288
289          <xsd:element name="configuration-file-refresh-period" type="xsd:long" default="5000" maxOccurs="1"
290                       minOccurs="0">
291             <xsd:annotation>
292                <xsd:documentation>
293                   how often (in ms) to check the configuration file for modifications
294                </xsd:documentation>
295             </xsd:annotation>
296          </xsd:element>
297
298          <xsd:element name="async-connection-execution-enabled" type="xsd:boolean" default="true" maxOccurs="1"
299                       minOccurs="0">
300             <xsd:annotation>
301                <xsd:documentation>
302                   should certain incoming packets on the server be handed off to a thread from the thread pool for
303                   processing or should they be handled on the remoting thread?
304                </xsd:documentation>
305             </xsd:annotation>
306          </xsd:element>
307
308          <xsd:element name="transaction-timeout" type="xsd:long" default="300000" maxOccurs="1" minOccurs="0">
309             <xsd:annotation>
310                <xsd:documentation>
311                   how long (in ms) before a transaction can be removed from the resource manager after create time
312                </xsd:documentation>
313             </xsd:annotation>
314          </xsd:element>
315
316          <xsd:element name="transaction-timeout-scan-period" type="xsd:long" default="1000" maxOccurs="1" minOccurs="0">
317             <xsd:annotation>
318                <xsd:documentation>
319                   how often (in ms) to scan for timeout transactions
320                </xsd:documentation>
321             </xsd:annotation>
322          </xsd:element>
323
324          <xsd:element name="message-expiry-scan-period" type="xsd:long" default="30000" maxOccurs="1" minOccurs="0">
325             <xsd:annotation>
326                <xsd:documentation>
327                   how often (in ms) to scan for expired messages
328                </xsd:documentation>
329             </xsd:annotation>
330          </xsd:element>
331
332          <xsd:element name="message-expiry-thread-priority" type="xsd:int" default="3" maxOccurs="1" minOccurs="0">
333             <xsd:annotation>
334                <xsd:documentation>
335                   the priority of the thread expiring messages
336                </xsd:documentation>
337             </xsd:annotation>
338          </xsd:element>
339
340          <xsd:element name="id-cache-size" type="xsd:int" default="20000" maxOccurs="1" minOccurs="0">
341             <xsd:annotation>
342                <xsd:documentation>
343                   the size of the cache for pre-creating message ID's
344                </xsd:documentation>
345             </xsd:annotation>
346          </xsd:element>
347
348          <xsd:element name="persist-id-cache" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
349             <xsd:annotation>
350                <xsd:documentation>
351                   true means that ID's are persisted to the journal
352                </xsd:documentation>
353             </xsd:annotation>
354          </xsd:element>
355
356          <xsd:element name="remoting-incoming-interceptors" type="class-name-sequenceType" maxOccurs="1" minOccurs="0">
357             <xsd:annotation>
358                <xsd:documentation>
359                   a list of &lt;class-name/&gt; elements with the names of classes to use for interceptor incoming
360                   remoting packets
361                </xsd:documentation>
362             </xsd:annotation>
363          </xsd:element>
364
365          <xsd:element name="remoting-outgoing-interceptors" type="class-name-sequenceType" maxOccurs="1" minOccurs="0">
366             <xsd:annotation>
367                <xsd:documentation>
368                   a list of &lt;class-name/&gt; elements with the names of classes to use for interceptor outcoming
369                   remoting packets
370                </xsd:documentation>
371             </xsd:annotation>
372          </xsd:element>
373
374          <xsd:element name="persist-delivery-count-before-delivery" type="xsd:boolean" default="false" maxOccurs="1"
375                       minOccurs="0">
376             <xsd:annotation>
377                <xsd:documentation>
378                   True means that the delivery count is persisted before delivery. False means that this only happens
379                   after a message has been cancelled.
380                </xsd:documentation>
381             </xsd:annotation>
382          </xsd:element>
383
384          <xsd:element name="populate-validated-user" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
385             <xsd:annotation>
386                <xsd:documentation>
387                   true means that the server will add the name of the validated user to messages it sends
388                </xsd:documentation>
389             </xsd:annotation>
390          </xsd:element>
391
392          <xsd:element name="connectors" maxOccurs="1" minOccurs="0">
393             <xsd:annotation>
394                <xsd:documentation>
395                   a list of remoting connectors configurations to create
396                </xsd:documentation>
397             </xsd:annotation>
398             <xsd:complexType>
399                <xsd:sequence>
400                   <xsd:element name="connector" type="transportType" maxOccurs="unbounded"/>
401                </xsd:sequence>
402                <xsd:attributeGroup ref="xml:specialAttrs"/>
403             </xsd:complexType>
404          </xsd:element>
405
406          <xsd:element maxOccurs="1" minOccurs="0" name="acceptors">
407             <xsd:annotation>
408                <xsd:documentation>
409                   a list of remoting acceptors to create
410                </xsd:documentation>
411             </xsd:annotation>
412             <xsd:complexType>
413                <xsd:sequence>
414                   <xsd:element name="acceptor" type="transportType" maxOccurs="unbounded"/>
415                </xsd:sequence>
416                <xsd:attributeGroup ref="xml:specialAttrs"/>
417             </xsd:complexType>
418          </xsd:element>
419
420          <xsd:element maxOccurs="1" minOccurs="0" name="broadcast-groups">
421             <xsd:annotation>
422                <xsd:documentation>
423                   a list of broadcast groups to create
424                </xsd:documentation>
425             </xsd:annotation>
426             <xsd:complexType>
427                <xsd:sequence>
428                   <xsd:element ref="broadcast-group" maxOccurs="unbounded" minOccurs="0"/>
429                </xsd:sequence>
430                <xsd:attributeGroup ref="xml:specialAttrs"/>
431             </xsd:complexType>
432          </xsd:element>
433
434          <xsd:element maxOccurs="1" minOccurs="0" name="discovery-groups">
435             <xsd:annotation>
436                <xsd:documentation>
437                   a list of discovery groups to create
438                </xsd:documentation>
439             </xsd:annotation>
440             <xsd:complexType>
441                <xsd:sequence>
442                   <xsd:element maxOccurs="unbounded" minOccurs="0" ref="discovery-group">
443                      <xsd:annotation>
444                         <xsd:documentation>
445                            a discovery group specification element
446                         </xsd:documentation>
447                      </xsd:annotation>
448                   </xsd:element>
449                </xsd:sequence>
450                <xsd:attributeGroup ref="xml:specialAttrs"/>
451             </xsd:complexType>
452          </xsd:element>
453
454          <xsd:element name="diverts" maxOccurs="1" minOccurs="0">
455             <xsd:annotation>
456                <xsd:documentation>
457                   a list of diverts to use
458                </xsd:documentation>
459             </xsd:annotation>
460             <xsd:complexType>
461                <xsd:sequence>
462                   <xsd:element name="divert" type="divertType" maxOccurs="unbounded" minOccurs="0"/>
463                </xsd:sequence>
464                <xsd:attributeGroup ref="xml:specialAttrs"/>
465             </xsd:complexType>
466          </xsd:element>
467
468          <!-- QUEUES -->
469          <xsd:element name="queues" maxOccurs="1" minOccurs="0">
470             <xsd:annotation>
471                <xsd:documentation>
472                   a list of pre configured queues to create
473                </xsd:documentation>
474             </xsd:annotation>
475             <xsd:complexType>
476                <xsd:sequence>
477                   <xsd:element name="queue" maxOccurs="unbounded" minOccurs="0">
478                      <xsd:complexType>
479                         <xsd:all>
480                            <xsd:element name="address" type="xsd:string" maxOccurs="1" minOccurs="0">
481                               <xsd:annotation>
482                                  <xsd:documentation>
483                                     address for the queue
484                                  </xsd:documentation>
485                               </xsd:annotation>
486                            </xsd:element>
487                            <xsd:element name="user" type="xsd:string" maxOccurs="1" minOccurs="0">
488                               <xsd:annotation>
489                                  <xsd:documentation>
490                                     user to associate for creating the queue
491                                  </xsd:documentation>
492                               </xsd:annotation>
493                            </xsd:element>
494                            <xsd:element ref="filter" maxOccurs="1" minOccurs="0"/>
495                            <xsd:element name="durable" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
496                               <xsd:annotation>
497                                  <xsd:documentation>
498                                     whether the queue is durable (persistent)
499                                  </xsd:documentation>
500                               </xsd:annotation>
501                            </xsd:element>
502                         </xsd:all>
503                         <xsd:attribute name="name" type="xsd:string" use="required">
504                            <xsd:annotation>
505                               <xsd:documentation>
506                                  unique name of this queue
507                               </xsd:documentation>
508                            </xsd:annotation>
509                         </xsd:attribute>
510                         <xsd:attribute name="max-consumers" type="xsd:integer" use="optional"/>
511                         <xsd:attribute name="purge-on-no-consumers" type="xsd:boolean" use="optional"/>
512                         <xsd:attribute name="exclusive" type="xsd:boolean" use="optional"/>
513                         <xsd:attribute name="last-value" type="xsd:boolean" use="optional"/>
514                         <xsd:attributeGroup ref="xml:specialAttrs"/>
515                      </xsd:complexType>
516                   </xsd:element>
517                </xsd:sequence>
518                <xsd:attributeGroup ref="xml:specialAttrs"/>
519             </xsd:complexType>
520          </xsd:element>
521
522          <xsd:element name="bridges" maxOccurs="1" minOccurs="0">
523             <xsd:annotation>
524                <xsd:documentation>
525                   a list of bridges to create
526                </xsd:documentation>
527             </xsd:annotation>
528             <xsd:complexType>
529                <xsd:sequence>
530                   <xsd:element name="bridge" type="bridgeType" maxOccurs="unbounded" minOccurs="0"/>
531                </xsd:sequence>
532                <xsd:attributeGroup ref="xml:specialAttrs"/>
533             </xsd:complexType>
534          </xsd:element>
535
536          <xsd:element name="ha-policy" type="haPolicyType" maxOccurs="1" minOccurs="0">
537             <xsd:annotation>
538                <xsd:documentation>
539                   The HA policy of this server
540                </xsd:documentation>
541             </xsd:annotation>
542          </xsd:element>
543
544          <xsd:element name="cluster-connections" type="clusterConnectionChoiceType" maxOccurs="1" minOccurs="0">
545             <xsd:annotation>
546                <xsd:documentation>
547                   a list of cluster connections
548                </xsd:documentation>
549             </xsd:annotation>
550          </xsd:element>
551
552          <xsd:element name="grouping-handler" type="groupingHandlerType" maxOccurs="1" minOccurs="0">
553             <xsd:annotation>
554                <xsd:documentation>
555                   Message Group configuration
556                </xsd:documentation>
557             </xsd:annotation>
558          </xsd:element>
559
560          <xsd:element name="paging-directory" type="xsd:string" default="data/paging" maxOccurs="1" minOccurs="0">
561             <xsd:annotation>
562                <xsd:documentation>
563                   the directory to store paged messages in
564                </xsd:documentation>
565             </xsd:annotation>
566          </xsd:element>
567
568          <xsd:element name="bindings-directory" type="xsd:string" default="data/bindings" maxOccurs="1" minOccurs="0">
569             <xsd:annotation>
570                <xsd:documentation>
571                   the directory to store the persisted bindings to
572                </xsd:documentation>
573             </xsd:annotation>
574          </xsd:element>
575
576          <xsd:element name="create-bindings-dir" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
577             <xsd:annotation>
578                <xsd:documentation>
579                   true means that the server will create the bindings directory on start up
580                </xsd:documentation>
581             </xsd:annotation>
582          </xsd:element>
583
584          <xsd:element name="page-max-concurrent-io" type="xsd:int" default="5" maxOccurs="1" minOccurs="0">
585             <xsd:annotation>
586                <xsd:documentation>
587                   The max number of concurrent reads allowed on paging
588                </xsd:documentation>
589             </xsd:annotation>
590          </xsd:element>
591
592          <xsd:element name="journal-directory" type="xsd:string" default="data/journal" maxOccurs="1" minOccurs="0">
593             <xsd:annotation>
594                <xsd:documentation>
595                   the directory to store the journal files in
596                </xsd:documentation>
597             </xsd:annotation>
598          </xsd:element>
599
600          <xsd:element name="create-journal-dir" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
601             <xsd:annotation>
602                <xsd:documentation>
603                   true means that the journal directory will be created
604                </xsd:documentation>
605             </xsd:annotation>
606          </xsd:element>
607
608          <xsd:element name="journal-type" default="ASYNCIO" maxOccurs="1" minOccurs="0">
609             <xsd:annotation>
610                <xsd:documentation>
611                   the type of journal to use
612                </xsd:documentation>
613             </xsd:annotation>
614             <xsd:simpleType>
615                <xsd:restriction base="xsd:string">
616                   <xsd:enumeration value="ASYNCIO"/>
617                   <xsd:enumeration value="NIO"/>
618                   <xsd:enumeration value="MAPPED"/>
619                </xsd:restriction>
620             </xsd:simpleType>
621          </xsd:element>
622
623          <xsd:element name="journal-buffer-timeout" type="xsd:long" maxOccurs="1" minOccurs="0">
624             <xsd:annotation>
625                <xsd:documentation>
626                   The timeout (in nanoseconds) used to flush internal buffers on the journal. The exact default value
627                   depend on whether the journal is ASYNCIO or NIO.
628                </xsd:documentation>
629             </xsd:annotation>
630          </xsd:element>
631
632          <xsd:element name="journal-buffer-size" type="xsd:string" default="501760" maxOccurs="1" minOccurs="0">
633             <xsd:annotation>
634                <xsd:documentation>
635                   The size (in bytes) of the internal buffer on the journal. Supports byte notation like "K", "Mb",
636                   "GB", etc.
637                </xsd:documentation>
638             </xsd:annotation>
639          </xsd:element>
640
641          <xsd:element name="journal-sync-transactional" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
642             <xsd:annotation>
643                <xsd:documentation>
644                   if true wait for transaction data to be synchronized to the journal before returning response to
645                   client
646                </xsd:documentation>
647             </xsd:annotation>
648          </xsd:element>
649
650          <xsd:element name="journal-sync-non-transactional" type="xsd:boolean" default="true" maxOccurs="1"
651                       minOccurs="0">
652             <xsd:annotation>
653                <xsd:documentation>
654                   if true wait for non transaction data to be synced to the journal before returning response to client.
655                </xsd:documentation>
656             </xsd:annotation>
657          </xsd:element>
658
659          <xsd:element name="log-journal-write-rate" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
660             <xsd:annotation>
661                <xsd:documentation>
662                   Whether to log messages about the journal write rate
663                </xsd:documentation>
664             </xsd:annotation>
665          </xsd:element>
666
667          <xsd:element name="journal-file-size" default="10485760" type="xsd:string" maxOccurs="1" minOccurs="0">
668             <xsd:annotation>
669                <xsd:documentation>
670                   The size (in bytes) of each journal file. Supports byte notation like "K", "Mb", "GB", etc.
671                </xsd:documentation>
672             </xsd:annotation>
673          </xsd:element>
674
675          <xsd:element name="journal-min-files" type="xsd:int" default="2" maxOccurs="1" minOccurs="0">
676             <xsd:annotation>
677                <xsd:documentation>
678                   how many journal files to pre-create
679                </xsd:documentation>
680             </xsd:annotation>
681          </xsd:element>
682
683          <xsd:element name="journal-pool-files" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0">
684             <xsd:annotation>
685                <xsd:documentation>
686                   how many journal files to pre-create
687                </xsd:documentation>
688             </xsd:annotation>
689          </xsd:element>
690
691          <xsd:element name="journal-compact-percentage" type="xsd:int" default="30" maxOccurs="1" minOccurs="0">
692             <xsd:annotation>
693                <xsd:documentation>
694                   The percentage of live data on which we consider compacting the journal
695                </xsd:documentation>
696             </xsd:annotation>
697          </xsd:element>
698
699          <xsd:element name="journal-compact-min-files" type="xsd:int" default="10" maxOccurs="1" minOccurs="0">
700             <xsd:annotation>
701                <xsd:documentation>
702                   The minimal number of data files before we can start compacting
703                </xsd:documentation>
704             </xsd:annotation>
705          </xsd:element>
706
707          <xsd:element name="journal-max-io" type="xsd:int" maxOccurs="1" minOccurs="0">
708             <xsd:annotation>
709                <xsd:documentation>
710                   the maximum number of write requests that can be in the AIO queue at any one time. Default is 500 for
711                   AIO and 1 for NIO.
712                </xsd:documentation>
713             </xsd:annotation>
714          </xsd:element>
715
716          <xsd:element name="journal-file-open-timeout" type="xsd:int" maxOccurs="1" minOccurs="0">
717             <xsd:annotation>
718                <xsd:documentation>
719                   the length of time to wait when opening a new Journal file before timing out and failing
720                </xsd:documentation>
721             </xsd:annotation>
722          </xsd:element>
723
724          <xsd:element name="server-dump-interval" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0">
725             <xsd:annotation>
726                <xsd:documentation>
727                   Interval to log server specific information (e.g. memory usage etc)
728                </xsd:documentation>
729             </xsd:annotation>
730          </xsd:element>
731
732          <xsd:element name="global-max-size" type="xsd:string" default="-1" maxOccurs="1" minOccurs="0">
733             <xsd:annotation>
734                <xsd:documentation>
735                   Size (in bytes) before all addresses will enter into their Full Policy configured upon messages being
736                   produced. Supports byte notation like "K", "Mb", "GB", etc.
737                </xsd:documentation>
738             </xsd:annotation>
739          </xsd:element>
740
741          <xsd:element name="max-disk-usage" type="xsd:int" default="90" maxOccurs="1" minOccurs="0">
742             <xsd:annotation>
743                <xsd:documentation>
744                   Max percentage of disk usage before the system blocks or fail clients.
745                </xsd:documentation>
746             </xsd:annotation>
747          </xsd:element>
748
749          <xsd:element name="disk-scan-period" type="xsd:long" default="5000" maxOccurs="1" minOccurs="0">
750             <xsd:annotation>
751                <xsd:documentation>
752                   how often (in ms) to scan the disks for full disks.
753                </xsd:documentation>
754             </xsd:annotation>
755          </xsd:element>
756
757          <xsd:element name="memory-warning-threshold" type="xsd:int" default="25" maxOccurs="1" minOccurs="0">
758             <xsd:annotation>
759                <xsd:documentation>
760                   Percentage of available memory which will trigger a warning log
761                </xsd:documentation>
762             </xsd:annotation>
763          </xsd:element>
764
765          <xsd:element name="memory-measure-interval" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0">
766             <xsd:annotation>
767                <xsd:documentation>
768                   frequency to sample JVM memory in ms (or -1 to disable memory sampling)
769                </xsd:documentation>
770             </xsd:annotation>
771          </xsd:element>
772
773          <xsd:element name="large-messages-directory" type="xsd:string" default="data/largemessages"
774                       maxOccurs="1" minOccurs="0">
775             <xsd:annotation>
776                <xsd:documentation>
777                   the directory to store large messages
778                </xsd:documentation>
779             </xsd:annotation>
780          </xsd:element>
781
782          <xsd:element name="store" type="storeType" maxOccurs="1" minOccurs="0">
783             <xsd:annotation>
784                <xsd:documentation>
785                   The Store Type used by the server
786                </xsd:documentation>
787             </xsd:annotation>
788          </xsd:element>
789
790          <xsd:element name="critical-analyzer" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
791             <xsd:annotation>
792                <xsd:documentation>
793                   should analyze response time on critical paths and decide for broker log, shutdown or halt.
794                </xsd:documentation>
795             </xsd:annotation>
796          </xsd:element>
797
798          <xsd:element name="critical-analyzer-timeout" type="xsd:long" default="120000" maxOccurs="1" minOccurs="0">
799             <xsd:annotation>
800                <xsd:documentation>
801                   The default timeout used on analyzing timeouts on the critical path.
802                </xsd:documentation>
803             </xsd:annotation>
804          </xsd:element>
805
806          <xsd:element name="critical-analyzer-check-period" type="xsd:long" default="0" maxOccurs="1" minOccurs="0">
807             <xsd:annotation>
808                <xsd:documentation>
809                   The timeout here will be defaulted to half critical-analyzer-timeout, calculation happening at runtime
810                </xsd:documentation>
811             </xsd:annotation>
812          </xsd:element>
813
814          <xsd:element name="critical-analyzer-policy" default="LOG" maxOccurs="1" minOccurs="0">
815             <xsd:annotation>
816                <xsd:documentation>
817                   Should the server log, be shutdown or halted upon critical analysis failure.
818                </xsd:documentation>
819             </xsd:annotation>
820             <xsd:simpleType>
821                <xsd:restriction base="xsd:string">
822                   <xsd:enumeration value="LOG"/>
823                   <xsd:enumeration value="HALT"/>
824                   <xsd:enumeration value="SHUTDOWN"/>
825                </xsd:restriction>
826             </xsd:simpleType>
827          </xsd:element>
828
829          <xsd:element name="security-settings" maxOccurs="1" minOccurs="0">
830             <xsd:annotation>
831                <xsd:documentation>
832                   a list of security settings
833                </xsd:documentation>
834             </xsd:annotation>
835
836             <xsd:complexType>
837                <xsd:sequence>
838                   <xsd:choice>
839                      <xsd:element name="security-setting" maxOccurs="unbounded" minOccurs="0">
840                         <xsd:complexType>
841                            <xsd:annotation>
842                               <xsd:documentation>
843                                  a permission to add to the matched addresses
844                               </xsd:documentation>
845                            </xsd:annotation>
846                            <xsd:sequence>
847                               <xsd:element name="permission" maxOccurs="unbounded" minOccurs="0">
848                                  <xsd:complexType>
849                                     <xsd:attribute name="type" type="xsd:string" use="required">
850                                        <xsd:annotation>
851                                           <xsd:documentation>
852                                              the type of permission
853                                           </xsd:documentation>
854                                        </xsd:annotation>
855                                     </xsd:attribute>
856                                     <xsd:attribute name="roles" type="xsd:string" use="required">
857                                        <xsd:annotation>
858                                           <xsd:documentation>
859                                              a comma-separated list of roles to apply the permission to
860                                           </xsd:documentation>
861                                        </xsd:annotation>
862                                     </xsd:attribute>
863                                     <xsd:attributeGroup ref="xml:specialAttrs"/>
864                                  </xsd:complexType>
865                               </xsd:element>
866                            </xsd:sequence>
867                            <xsd:attribute name="match" type="xsd:string" use="required">
868                               <xsd:annotation>
869                                  <xsd:documentation>
870                                     regular expression for matching security roles against addresses
871                                  </xsd:documentation>
872                               </xsd:annotation>
873                            </xsd:attribute>
874                            <xsd:attributeGroup ref="xml:specialAttrs"/>
875                         </xsd:complexType>
876                      </xsd:element>
877                      <xsd:element name="security-setting-plugin" maxOccurs="1" minOccurs="0">
878                         <xsd:complexType>
879                            <xsd:annotation>
880                               <xsd:documentation>
881                                  a plugin
882                               </xsd:documentation>
883                            </xsd:annotation>
884                            <xsd:sequence>
885                               <xsd:element name="setting" maxOccurs="unbounded" minOccurs="0">
886                                  <xsd:complexType>
887                                     <xsd:attribute name="name" type="xsd:string" use="required">
888                                        <xsd:annotation>
889                                           <xsd:documentation>
890                                              the name of the setting
891                                           </xsd:documentation>
892                                        </xsd:annotation>
893                                     </xsd:attribute>
894                                     <xsd:attribute name="value" type="xsd:string" use="required">
895                                        <xsd:annotation>
896                                           <xsd:documentation>
897                                              the value for the setting
898                                           </xsd:documentation>
899                                        </xsd:annotation>
900                                     </xsd:attribute>
901                                     <xsd:attributeGroup ref="xml:specialAttrs"/>
902                                  </xsd:complexType>
903                               </xsd:element>
904                            </xsd:sequence>
905                            <xsd:attribute name="class-name" type="xsd:string" use="required">
906                               <xsd:annotation>
907                                  <xsd:documentation>
908                                     the name of the plugin class to instantiate
909                                  </xsd:documentation>
910                               </xsd:annotation>
911                            </xsd:attribute>
912                            <xsd:attributeGroup ref="xml:specialAttrs"/>
913                         </xsd:complexType>
914                      </xsd:element>
915                   </xsd:choice>
916                   <xsd:element name="role-mapping" minOccurs="0" maxOccurs="unbounded">
917                      <xsd:complexType>
918                         <xsd:attribute name="from" type="xsd:string" use="required">
919                            <xsd:annotation>
920                               <xsd:documentation>
921                                  the name of the external role
922                               </xsd:documentation>
923                            </xsd:annotation>
924                         </xsd:attribute>
925                         <xsd:attribute name="to" type="xsd:string" use="required">
926                            <xsd:annotation>
927                               <xsd:documentation>
928                                  the comma delimited name of the internal role(s)
929                               </xsd:documentation>
930                            </xsd:annotation>
931                         </xsd:attribute>
932                         <xsd:attributeGroup ref="xml:specialAttrs"/>
933                      </xsd:complexType>
934                   </xsd:element>
935                </xsd:sequence>
936                <xsd:attributeGroup ref="xml:specialAttrs"/>
937             </xsd:complexType>
938          </xsd:element>
939
940          <xsd:element name="broker-plugins" maxOccurs="1" minOccurs="0">
941             <xsd:annotation>
942                <xsd:documentation>
943                   a list of broker-plugins
944                </xsd:documentation>
945             </xsd:annotation>
946             <xsd:complexType>
947                <xsd:sequence>
948                   <xsd:element name="broker-plugin" maxOccurs="unbounded" minOccurs="0">
949                      <xsd:complexType>
950                         <xsd:annotation>
951                            <xsd:documentation>
952                               a broker plugin
953                            </xsd:documentation>
954                         </xsd:annotation>
955                         <xsd:sequence>
956                            <xsd:element ref="property" maxOccurs="unbounded" minOccurs="0">
957                               <xsd:annotation>
958                                  <xsd:documentation>
959                                     properties to configure a plugin
960                                  </xsd:documentation>
961                               </xsd:annotation>
962                            </xsd:element>
963                         </xsd:sequence>
964                         <xsd:attribute name="class-name" type="xsd:string" use="required">
965                            <xsd:annotation>
966                               <xsd:documentation>
967                                  the name of the broker plugin class to instantiate
968                               </xsd:documentation>
969                            </xsd:annotation>
970                         </xsd:attribute>
971                         <xsd:attributeGroup ref="xml:specialAttrs"/>
972                      </xsd:complexType>
973                   </xsd:element>
974                </xsd:sequence>
975                <xsd:attributeGroup ref="xml:specialAttrs"/>
976             </xsd:complexType>
977          </xsd:element>
978
979          <xsd:element name="address-settings" maxOccurs="1" minOccurs="0">
980             <xsd:annotation>
981                <xsd:documentation>
982                   a list of address settings
983                </xsd:documentation>
984             </xsd:annotation>
985             <xsd:complexType>
986                <xsd:sequence>
987                   <xsd:element ref="address-setting" maxOccurs="unbounded" minOccurs="0"/>
988                </xsd:sequence>
989                <xsd:attributeGroup ref="xml:specialAttrs"/>
990             </xsd:complexType>
991          </xsd:element>
992
993          <xsd:element name="resource-limit-settings" maxOccurs="1" minOccurs="0">
994             <xsd:annotation>
995                <xsd:documentation>
996                   a list of resource limit settings
997                </xsd:documentation>
998             </xsd:annotation>
999             <xsd:complexType>
1000                <xsd:sequence>
1001                   <xsd:element ref="resource-limit-setting" maxOccurs="unbounded" minOccurs="0"/>
1002                </xsd:sequence>
1003                <xsd:attributeGroup ref="xml:specialAttrs"/>
1004             </xsd:complexType>
1005          </xsd:element>
1006
1007          <xsd:element name="connector-services" maxOccurs="1" minOccurs="0">
1008             <xsd:complexType>
1009                <xsd:sequence>
1010                   <xsd:element name="connector-service" type="connector-serviceType" maxOccurs="unbounded"
1011                                minOccurs="0"/>
1012                </xsd:sequence>
1013                <xsd:attributeGroup ref="xml:specialAttrs"/>
1014             </xsd:complexType>
1015          </xsd:element>
1016
1017          <xsd:element name="addresses" type="addressesType" maxOccurs="1" minOccurs="0"/>
1018
1019          <xsd:element name="network-check-list" type="xsd:string" default="" maxOccurs="1" minOccurs="0">
1020             <xsd:annotation>
1021                <xsd:documentation>
1022                   A comma separated list of IPs to be used to validate if the broker should be kept up
1023                </xsd:documentation>
1024             </xsd:annotation>
1025          </xsd:element>
1026
1027          <xsd:element name="network-check-URL-list" type="xsd:string" default="" maxOccurs="1" minOccurs="0">
1028             <xsd:annotation>
1029                <xsd:documentation>
1030                   A comma separated list of URLs to be used to validate if the broker should be kept up
1031                </xsd:documentation>
1032             </xsd:annotation>
1033          </xsd:element>
1034
1035          <xsd:element name="network-check-period" type="xsd:long" default="10000" maxOccurs="1" minOccurs="0">
1036             <xsd:annotation>
1037                <xsd:documentation>
1038                   A frequency in milliseconds to how often we should check if the network is still up
1039                </xsd:documentation>
1040             </xsd:annotation>
1041          </xsd:element>
1042
1043          <xsd:element name="network-check-timeout" type="xsd:long" default="1000" maxOccurs="1" minOccurs="0">
1044             <xsd:annotation>
1045                <xsd:documentation>
1046                   A timeout used in milliseconds to be used on the ping.
1047                </xsd:documentation>
1048             </xsd:annotation>
1049          </xsd:element>
1050
1051          <xsd:element name="network-check-NIC" type="xsd:string" default="" maxOccurs="1" minOccurs="0">
1052             <xsd:annotation>
1053                <xsd:documentation>
1054                   The network interface card name to be used to validate the address.
1055                </xsd:documentation>
1056             </xsd:annotation>
1057          </xsd:element>
1058
1059          <xsd:element name="network-check-ping-command" type="xsd:string" default="" maxOccurs="1" minOccurs="0">
1060             <xsd:annotation>
1061                <xsd:documentation>
1062                   The ping command used to ping IPV4 addresses.
1063                </xsd:documentation>
1064             </xsd:annotation>
1065          </xsd:element>
1066
1067          <xsd:element name="network-check-ping6-command" type="xsd:string" default="" maxOccurs="1" minOccurs="0">
1068             <xsd:annotation>
1069                <xsd:documentation>
1070                   The ping command used to ping IPV6 addresses.
1071                </xsd:documentation>
1072             </xsd:annotation>
1073          </xsd:element>
1074
1075          <xsd:element name="wildcard-addresses" type="wildcardType" maxOccurs="1" minOccurs="0">
1076             <xsd:annotation>
1077                <xsd:documentation>
1078                   Wildcard addresses format
1079                </xsd:documentation>
1080             </xsd:annotation>
1081          </xsd:element>
1082       </xsd:all>
1083       <xsd:attributeGroup ref="xml:specialAttrs"/>
1084    </xsd:complexType>
1085
1086    <xsd:element name="local-bind-address" type="xsd:string">
1087       <xsd:annotation>
1088          <xsd:documentation>
1089             local bind address that the datagram socket is bound to
1090          </xsd:documentation>
1091       </xsd:annotation>
1092    </xsd:element>
1093
1094    <xsd:element name="local-bind-port" type="xsd:int" default="-1">
1095       <xsd:annotation>
1096          <xsd:documentation>
1097             local port to which the datagram socket is bound to
1098          </xsd:documentation>
1099       </xsd:annotation>
1100    </xsd:element>
1101
1102    <!-- BROADCAST GROUP CONFIGURATION -->
1103    <xsd:element name="broadcast-group">
1104       <xsd:complexType>
1105          <xsd:sequence>
1106             <!-- XXX these 2 local-* here...-->
1107             <xsd:element ref="local-bind-address" maxOccurs="1" minOccurs="0"/>
1108             <xsd:element ref="local-bind-port" maxOccurs="1" minOccurs="0"/>
1109             <xsd:element name="group-address" type="xsd:string" maxOccurs="1" minOccurs="0">
1110                <xsd:annotation>
1111                   <xsd:documentation>
1112                      multicast address to which the data will be broadcast
1113                   </xsd:documentation>
1114                </xsd:annotation>
1115             </xsd:element>
1116
1117             <xsd:element name="group-port" type="xsd:int" maxOccurs="1" minOccurs="0">
1118                <xsd:annotation>
1119                   <xsd:documentation>
1120                      UDP port number used for broadcasting
1121                   </xsd:documentation>
1122                </xsd:annotation>
1123             </xsd:element>
1124
1125             <xsd:element name="broadcast-period" type="xsd:long" default="2000" maxOccurs="1" minOccurs="0">
1126                <xsd:annotation>
1127                   <xsd:documentation>
1128                      period in milliseconds between consecutive broadcasts
1129                   </xsd:documentation>
1130                </xsd:annotation>
1131             </xsd:element>
1132
1133             <xsd:element name="jgroups-file" type="xsd:string" maxOccurs="1" minOccurs="0">
1134                <xsd:annotation>
1135                   <xsd:documentation>
1136                      Name of JGroups configuration file. If specified, the server uses JGroups for broadcasting.
1137                   </xsd:documentation>
1138                </xsd:annotation>
1139             </xsd:element>
1140
1141             <xsd:element name="jgroups-channel" type="xsd:string" maxOccurs="1" minOccurs="0">
1142                <xsd:annotation>
1143                   <xsd:documentation>
1144                      Name of JGroups Channel. If specified, the server uses the named channel for broadcasting.
1145                   </xsd:documentation>
1146                </xsd:annotation>
1147             </xsd:element>
1148
1149             <xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
1150          </xsd:sequence>
1151
1152          <xsd:attribute name="name" type="xsd:ID" use="required">
1153             <xsd:annotation>
1154                <xsd:documentation>
1155                   a unique name for the broadcast group
1156                </xsd:documentation>
1157             </xsd:annotation>
1158          </xsd:attribute>
1159          <xsd:attributeGroup ref="xml:specialAttrs"/>
1160       </xsd:complexType>
1161    </xsd:element>
1162
1163    <xsd:element name="discovery-group">
1164       <xsd:complexType>
1165          <xsd:all>
1166             <!-- XXX -->
1167             <xsd:element name="group-address" type="xsd:string" maxOccurs="1" minOccurs="0">
1168                <xsd:annotation>
1169                   <xsd:documentation>
1170                      Multicast IP address of the group to listen on
1171                   </xsd:documentation>
1172                </xsd:annotation>
1173             </xsd:element>
1174             <xsd:element name="group-port" type="xsd:int" maxOccurs="1" minOccurs="0">
1175                <xsd:annotation>
1176                   <xsd:documentation>
1177                      UDP port number of the multi cast group
1178                   </xsd:documentation>
1179                </xsd:annotation>
1180             </xsd:element>
1181
1182             <xsd:element name="jgroups-file" type="xsd:string" maxOccurs="1" minOccurs="0">
1183                <xsd:annotation>
1184                   <xsd:documentation>
1185                      Name of a JGroups configuration file. If specified, the server uses JGroups for discovery.
1186                   </xsd:documentation>
1187                </xsd:annotation>
1188             </xsd:element>
1189
1190             <xsd:element name="jgroups-channel" type="xsd:string" maxOccurs="1" minOccurs="0">
1191                <xsd:annotation>
1192                   <xsd:documentation>
1193                      Name of a JGroups Channel. If specified, the server uses the named channel for discovery.
1194                   </xsd:documentation>
1195                </xsd:annotation>
1196             </xsd:element>
1197
1198             <xsd:element name="refresh-timeout" type="xsd:int" default="10000" maxOccurs="1" minOccurs="0">
1199                <xsd:annotation>
1200                   <xsd:documentation>
1201                      Period the discovery group waits after receiving the last broadcast from a particular server before
1202                      removing that servers connector pair entry from its list.
1203                   </xsd:documentation>
1204                </xsd:annotation>
1205             </xsd:element>
1206
1207             <xsd:element ref="local-bind-address" maxOccurs="1" minOccurs="0"/>
1208             <xsd:element ref="local-bind-port" maxOccurs="1" minOccurs="0"/>
1209             <xsd:element name="initial-wait-timeout" type="xsd:int" default="10000" maxOccurs="1" minOccurs="0">
1210                <xsd:annotation>
1211                   <xsd:documentation>
1212                      time to wait for an initial broadcast to give us at least one node in the cluster
1213                   </xsd:documentation>
1214                </xsd:annotation>
1215             </xsd:element>
1216          </xsd:all>
1217
1218          <xsd:attribute name="name" type="xsd:ID" use="required">
1219             <xsd:annotation>
1220                <xsd:documentation>
1221                   a unique name for the discovery group
1222                </xsd:documentation>
1223             </xsd:annotation>
1224          </xsd:attribute>
1225          <xsd:attributeGroup ref="xml:specialAttrs"/>
1226       </xsd:complexType>
1227    </xsd:element>
1228
1229    <xsd:element name="discovery-group-ref">
1230       <xsd:complexType>
1231          <xsd:attribute name="discovery-group-name" type="xsd:IDREF"/>
1232          <xsd:attributeGroup ref="xml:specialAttrs"/>
1233       </xsd:complexType>
1234    </xsd:element>
1235
1236    <xsd:complexType name="class-name-sequenceType">
1237       <xsd:annotation>
1238          <xsd:documentation>
1239             unlimited sequence of &lt;class-name/&gt;
1240          </xsd:documentation>
1241       </xsd:annotation>
1242       <xsd:sequence>
1243          <xsd:element maxOccurs="unbounded" minOccurs="1" name="class-name" type="xsd:string">
1244             <xsd:annotation>
1245                <xsd:documentation>
1246                   the fully qualified name of the interceptor class
1247                </xsd:documentation>
1248             </xsd:annotation>
1249          </xsd:element>
1250       </xsd:sequence>
1251       <xsd:attributeGroup ref="xml:specialAttrs"/>
1252    </xsd:complexType>
1253
1254    <xsd:complexType name="paramType">
1255       <xsd:attribute name="key" type="xsd:string" use="required">
1256          <xsd:annotation>
1257             <xsd:documentation>
1258                Key of a configuration parameter
1259             </xsd:documentation>
1260          </xsd:annotation>
1261       </xsd:attribute>
1262       <xsd:attribute name="value" type="xsd:string" use="required">
1263          <xsd:annotation>
1264             <xsd:documentation>
1265                Value of a configuration parameter
1266             </xsd:documentation>
1267          </xsd:annotation>
1268       </xsd:attribute>
1269       <xsd:attributeGroup ref="xml:specialAttrs"/>
1270    </xsd:complexType>
1271
1272    <!-- BRIDGE CONFIGURATION -->
1273    <xsd:complexType name="bridgeType">
1274       <xsd:sequence>
1275          <xsd:element name="queue-name" type="xsd:string" maxOccurs="1" minOccurs="1">
1276             <xsd:annotation>
1277                <xsd:documentation>
1278                   name of queue that this bridge consumes from
1279                </xsd:documentation>
1280             </xsd:annotation>
1281          </xsd:element>
1282
1283          <xsd:element name="forwarding-address" type="xsd:string" maxOccurs="1" minOccurs="0">
1284             <xsd:annotation>
1285                <xsd:documentation>
1286                   address to forward to. If omitted original address is used
1287                </xsd:documentation>
1288             </xsd:annotation>
1289          </xsd:element>
1290
1291          <xsd:element name="ha" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
1292             <xsd:annotation>
1293                <xsd:documentation>
1294                   whether this bridge supports fail-over
1295                </xsd:documentation>
1296             </xsd:annotation>
1297          </xsd:element>
1298
1299          <xsd:element ref="filter" maxOccurs="1" minOccurs="0"/>
1300
1301          <xsd:element name="transformer-class-name" type="xsd:string" maxOccurs="1" minOccurs="0">
1302             <xsd:annotation>
1303                <xsd:documentation>
1304                   optional name of transformer class
1305                </xsd:documentation>
1306             </xsd:annotation>
1307          </xsd:element>
1308
1309          <xsd:element name="transformer" type="transformerType" maxOccurs="1" minOccurs="0">
1310             <xsd:annotation>
1311                <xsd:documentation>
1312                   optional transformer configuration
1313                </xsd:documentation>
1314             </xsd:annotation>
1315          </xsd:element>
1316
1317          <xsd:element name="min-large-message-size" type="xsd:string" default="102400" maxOccurs="1" minOccurs="0">
1318             <xsd:annotation>
1319                <xsd:documentation>
1320                   Any message larger than this size (in bytes) is considered a large message (to be sent in
1321                   chunks). Supports byte notation like "K", "Mb", "GB", etc.
1322                </xsd:documentation>
1323             </xsd:annotation>
1324          </xsd:element>
1325
1326          <xsd:element name="check-period" type="xsd:long" default="30000" maxOccurs="1" minOccurs="0">
1327             <xsd:annotation>
1328                <xsd:documentation>
1329                   The period (in milliseconds) a bridge's client will check if it failed to receive a ping from the
1330                   server. -1 disables this check.
1331                </xsd:documentation>
1332             </xsd:annotation>
1333          </xsd:element>
1334
1335          <xsd:element name="connection-ttl" type="xsd:long" default="60000" maxOccurs="1" minOccurs="0">
1336             <xsd:annotation>
1337                <xsd:documentation>
1338                   how long to keep a connection alive in the absence of any data arriving from the client. This should
1339                   be greater than the ping period.
1340                </xsd:documentation>
1341             </xsd:annotation>
1342          </xsd:element>
1343
1344          <xsd:element name="retry-interval" type="xsd:long" default="2000" maxOccurs="1" minOccurs="0">
1345             <xsd:annotation>
1346                <xsd:documentation>
1347                   period (in ms) between successive retries
1348                </xsd:documentation>
1349             </xsd:annotation>
1350          </xsd:element>
1351
1352          <xsd:element name="retry-interval-multiplier" type="xsd:double" default="1" maxOccurs="1" minOccurs="0">
1353             <xsd:annotation>
1354                <xsd:documentation>
1355                   multiplier to apply to successive retry intervals
1356                </xsd:documentation>
1357             </xsd:annotation>
1358          </xsd:element>
1359
1360          <xsd:element name="max-retry-interval" type="xsd:long" default="2000" maxOccurs="1" minOccurs="0">
1361             <xsd:annotation>
1362                <xsd:documentation>
1363                   Limit to the retry-interval growth (due to retry-interval-multiplier)
1364                </xsd:documentation>
1365             </xsd:annotation>
1366          </xsd:element>
1367
1368          <xsd:element name="initial-connect-attempts" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0">
1369             <xsd:annotation>
1370                <xsd:documentation>
1371                   maximum number of initial connection attempts, -1 means 'no limits'
1372                </xsd:documentation>
1373             </xsd:annotation>
1374          </xsd:element>
1375
1376          <xsd:element name="reconnect-attempts" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0">
1377             <xsd:annotation>
1378                <xsd:documentation>
1379                   maximum number of retry attempts, -1 means 'no limits'
1380                </xsd:documentation>
1381             </xsd:annotation>
1382          </xsd:element>
1383
1384          <xsd:element name="failover-on-server-shutdown" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
1385             <xsd:annotation>
1386                <xsd:documentation>
1387                   should failover be prompted if target server is cleanly shutdown?
1388                </xsd:documentation>
1389             </xsd:annotation>
1390          </xsd:element>
1391
1392          <xsd:element name="use-duplicate-detection" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
1393             <xsd:annotation>
1394                <xsd:documentation>
1395                   should duplicate detection headers be inserted in forwarded messages?
1396                </xsd:documentation>
1397             </xsd:annotation>
1398          </xsd:element>
1399
1400          <xsd:element name="confirmation-window-size" type="xsd:string" maxOccurs="1" minOccurs="0" default="1048576">
1401             <xsd:annotation>
1402                <xsd:documentation>
1403                   Once the bridge has received this many bytes, it sends a confirmation. Supports byte notation like
1404                   "K", "Mb", "GB", etc.
1405                </xsd:documentation>
1406             </xsd:annotation>
1407          </xsd:element>
1408
1409          <xsd:element name="producer-window-size" type="xsd:string" maxOccurs="1" minOccurs="0" default="-1">
1410             <xsd:annotation>
1411                <xsd:documentation>
1412                   Producer flow control. Supports byte notation like "K", "Mb", "GB", etc.
1413                </xsd:documentation>
1414             </xsd:annotation>
1415          </xsd:element>
1416
1417          <xsd:element name="user" type="xsd:string" maxOccurs="1" minOccurs="0">
1418             <xsd:annotation>
1419                <xsd:documentation>
1420                   username, if unspecified the cluster-user is used
1421                </xsd:documentation>
1422             </xsd:annotation>
1423          </xsd:element>
1424
1425          <xsd:element name="password" type="xsd:string" maxOccurs="1" minOccurs="0">
1426             <xsd:annotation>
1427                <xsd:documentation>
1428                   password, if unspecified the cluster-password is used
1429                </xsd:documentation>
1430             </xsd:annotation>
1431          </xsd:element>
1432
1433          <xsd:element name="reconnect-attempts-same-node" default="10" type="xsd:int" maxOccurs="1" minOccurs="0">
1434             <xsd:annotation>
1435                <xsd:documentation>
1436                   Upon reconnection this configures the number of time the same node on the topology will be retried
1437                   before resetting the server locator and using the initial connectors
1438                </xsd:documentation>
1439             </xsd:annotation>
1440          </xsd:element>
1441
1442          <xsd:choice>
1443             <xsd:element name="static-connectors" maxOccurs="1" minOccurs="1">
1444                <xsd:complexType>
1445                   <xsd:sequence>
1446                      <xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
1447                   </xsd:sequence>
1448                   <xsd:attributeGroup ref="xml:specialAttrs"/>
1449                </xsd:complexType>
1450             </xsd:element>
1451             <xsd:element name="discovery-group-ref" maxOccurs="1" minOccurs="1">
1452                <xsd:complexType>
1453                   <xsd:attribute name="discovery-group-name" type="xsd:IDREF" use="required">
1454                      <xsd:annotation>
1455                         <xsd:documentation>
1456                            name of discovery group used by this bridge
1457                         </xsd:documentation>
1458                      </xsd:annotation>
1459                   </xsd:attribute>
1460                   <xsd:attributeGroup ref="xml:specialAttrs"/>
1461                </xsd:complexType>
1462             </xsd:element>
1463          </xsd:choice>
1464       </xsd:sequence>
1465
1466       <xsd:attribute name="name" type="xsd:ID" use="required">
1467          <xsd:annotation>
1468             <xsd:documentation>
1469                unique name for this bridge
1470             </xsd:documentation>
1471          </xsd:annotation>
1472       </xsd:attribute>
1473       <xsd:attributeGroup ref="xml:specialAttrs"/>
1474    </xsd:complexType>
1475
1476    <!-- TRANSFORMER CONFIGURATION -->
1477    <xsd:complexType name="transformerType">
1478       <xsd:sequence>
1479          <xsd:element name="class-name" type="xsd:string" maxOccurs="1" minOccurs="1">
1480             <xsd:annotation>
1481                <xsd:documentation>
1482                   optional name of transformer class
1483                </xsd:documentation>
1484             </xsd:annotation>
1485          </xsd:element>
1486          <xsd:element ref="property"  maxOccurs="unbounded" minOccurs="0">
1487             <xsd:annotation>
1488                <xsd:documentation>
1489                   properties to configure the transformer class
1490                </xsd:documentation>
1491             </xsd:annotation>
1492          </xsd:element>
1493       </xsd:sequence>
1494       <xsd:attributeGroup ref="xml:specialAttrs"/>
1495    </xsd:complexType>
1496
1497    <xsd:element name="property">
1498       <xsd:complexType>
1499          <xsd:attribute name="key" type="xsd:string" use="required">
1500             <xsd:annotation>
1501                <xsd:documentation>
1502                   key for the property
1503                </xsd:documentation>
1504             </xsd:annotation>
1505          </xsd:attribute>
1506          <xsd:attribute name="value" type="xsd:string" use="required">
1507             <xsd:annotation>
1508                <xsd:documentation>
1509                   value for the property
1510                </xsd:documentation>
1511             </xsd:annotation>
1512          </xsd:attribute>
1513          <xsd:attributeGroup ref="xml:specialAttrs"/>
1514       </xsd:complexType>
1515    </xsd:element>
1516
1517
1518    <!-- CLUSTER CONNECTION CONFIGURATION -->
1519
1520    <xsd:complexType name="clusterConnectionChoiceType">
1521       <xsd:sequence>
1522          <xsd:choice maxOccurs="unbounded">
1523             <xsd:element name="cluster-connection-uri" type="cluster-connectionUriType"/>
1524             <xsd:element name="cluster-connection" type="cluster-connectionType">
1525             </xsd:element>
1526          </xsd:choice>
1527       </xsd:sequence>
1528       <xsd:attributeGroup ref="xml:specialAttrs"/>
1529    </xsd:complexType>
1530
1531    <xsd:complexType name="cluster-connectionUriType">
1532       <xsd:attribute name="address" type="xsd:string" use="required">
1533          <xsd:annotation>
1534             <xsd:documentation>
1535                uri of the cluster connection
1536             </xsd:documentation>
1537          </xsd:annotation>
1538       </xsd:attribute>
1539       <xsd:attribute name="name" type="xsd:string" use="required">
1540          <xsd:annotation>
1541             <xsd:documentation>
1542                name of the cluster connection
1543             </xsd:documentation>
1544          </xsd:annotation>
1545       </xsd:attribute>
1546       <xsd:attributeGroup ref="xml:specialAttrs"/>
1547    </xsd:complexType>
1548
1549    <xsd:complexType name="cluster-connectionType">
1550       <xsd:sequence>
1551          <xsd:element name="address" type="xsd:string" maxOccurs="1" minOccurs="0">
1552             <xsd:annotation>
1553                <xsd:documentation>
1554                   name of the address this cluster connection applies to
1555                </xsd:documentation>
1556             </xsd:annotation>
1557          </xsd:element>
1558
1559          <xsd:element name="connector-ref" type="xsd:string" maxOccurs="1" minOccurs="1">
1560             <xsd:annotation>
1561                <xsd:documentation>
1562                   Name of the connector reference to use.
1563                </xsd:documentation>
1564             </xsd:annotation>
1565          </xsd:element>
1566
1567          <xsd:element name="check-period" type="xsd:long" default="30000" maxOccurs="1" minOccurs="0">
1568             <xsd:annotation>
1569                <xsd:documentation>
1570                   The period (in milliseconds) used to check if the cluster connection has failed to receive pings from
1571                   another server
1572                </xsd:documentation>
1573             </xsd:annotation>
1574          </xsd:element>
1575
1576          <xsd:element name="connection-ttl" type="xsd:long" default="60000" maxOccurs="1" minOccurs="0">
1577             <xsd:annotation>
1578                <xsd:documentation>
1579                   how long to keep a connection alive in the absence of any data arriving from the client
1580                </xsd:documentation>
1581             </xsd:annotation>
1582          </xsd:element>
1583
1584          <xsd:element name="min-large-message-size" type="xsd:string" maxOccurs="1" minOccurs="0">
1585             <xsd:annotation>
1586                <xsd:documentation>
1587                   Messages larger than this are considered large-messages. Supports byte notation like
1588                   "K", "Mb", "GB", etc.
1589                </xsd:documentation>
1590             </xsd:annotation>
1591          </xsd:element>
1592
1593          <xsd:element name="call-timeout" type="xsd:long" default="30000" maxOccurs="1" minOccurs="0">
1594             <xsd:annotation>
1595                <xsd:documentation>
1596                   How long to wait for a reply
1597                </xsd:documentation>
1598             </xsd:annotation>
1599          </xsd:element>
1600
1601          <xsd:element name="retry-interval" type="xsd:long" default="500" maxOccurs="1" minOccurs="0">
1602             <xsd:annotation>
1603                <xsd:documentation>
1604                   period (in ms) between successive retries
1605                </xsd:documentation>
1606             </xsd:annotation>
1607          </xsd:element>
1608
1609          <xsd:element name="retry-interval-multiplier" type="xsd:double" default="1" maxOccurs="1" minOccurs="0">
1610             <xsd:annotation>
1611                <xsd:documentation>
1612                   multiplier to apply to the retry-interval
1613                </xsd:documentation>
1614             </xsd:annotation>
1615          </xsd:element>
1616
1617          <xsd:element name="max-retry-interval" type="xsd:long" default="2000" maxOccurs="1" minOccurs="0">
1618             <xsd:annotation>
1619                <xsd:documentation>
1620                   Maximum value for retry-interval
1621                </xsd:documentation>
1622             </xsd:annotation>
1623          </xsd:element>
1624
1625          <xsd:element name="initial-connect-attempts" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0">
1626             <xsd:annotation>
1627                <xsd:documentation>
1628                   How many attempts should be made to connect initially
1629                </xsd:documentation>
1630             </xsd:annotation>
1631          </xsd:element>
1632
1633          <xsd:element name="reconnect-attempts" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0">
1634             <xsd:annotation>
1635                <xsd:documentation>
1636                   How many attempts should be made to reconnect after failure
1637                </xsd:documentation>
1638             </xsd:annotation>
1639          </xsd:element>
1640
1641          <xsd:element name="use-duplicate-detection" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
1642             <xsd:annotation>
1643                <xsd:documentation>
1644                   should duplicate detection headers be inserted in forwarded messages?
1645                </xsd:documentation>
1646             </xsd:annotation>
1647          </xsd:element>
1648
1649          <xsd:element name="forward-when-no-consumers" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
1650             <xsd:annotation>
1651                <xsd:documentation>
1652                   DEPRECATED: use message-load-balancing-type instead. Select STRICT to mimic
1653                   forward-when-no-consumers=true
1654                   and ON_DEMAND to mimic forward-when-no-consumers=false.
1655                </xsd:documentation>
1656             </xsd:annotation>
1657          </xsd:element>
1658
1659          <xsd:element name="message-load-balancing" default="ON_DEMAND" maxOccurs="1" minOccurs="0">
1660             <xsd:annotation>
1661                <xsd:documentation>
1662                   how should messages be load balanced between servers in a cluster?
1663                </xsd:documentation>
1664             </xsd:annotation>
1665             <xsd:simpleType>
1666                <xsd:restriction base="xsd:string">
1667                   <xsd:enumeration value="OFF"/>
1668                   <xsd:enumeration value="STRICT"/>
1669                   <xsd:enumeration value="ON_DEMAND"/>
1670                </xsd:restriction>
1671             </xsd:simpleType>
1672          </xsd:element>
1673
1674          <xsd:element name="max-hops" type="xsd:int" default="1" maxOccurs="1" minOccurs="0">
1675             <xsd:annotation>
1676                <xsd:documentation>
1677                   maximum number of hops cluster topology is propagated
1678                </xsd:documentation>
1679             </xsd:annotation>
1680          </xsd:element>
1681
1682          <xsd:element name="confirmation-window-size" type="xsd:string" default="1048576" maxOccurs="1" minOccurs="0">
1683             <xsd:annotation>
1684                <xsd:documentation>
1685                   The size (in bytes) of the window used for confirming data from the server connected to. Supports
1686                   byte notation like "K", "Mb", "GB", etc.
1687                </xsd:documentation>
1688             </xsd:annotation>
1689          </xsd:element>
1690
1691          <xsd:element name="producer-window-size" type="xsd:string" maxOccurs="1" minOccurs="0" default="-1">
1692             <xsd:annotation>
1693                <xsd:documentation>
1694                   Producer flow control. Supports byte notation like "K", "Mb", "GB", etc.
1695                </xsd:documentation>
1696             </xsd:annotation>
1697          </xsd:element>
1698
1699          <xsd:element name="call-failover-timeout" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0">
1700             <xsd:annotation>
1701                <xsd:documentation>
1702                   How long to wait for a reply if in the middle of a fail-over. -1 means wait forever.
1703                </xsd:documentation>
1704             </xsd:annotation>
1705          </xsd:element>
1706
1707          <xsd:element name="notification-interval" type="xsd:long" default="1000" maxOccurs="1" minOccurs="0">
1708             <xsd:annotation>
1709                <xsd:documentation>
1710                   how often the cluster connection will notify the cluster of its existence right after joining the
1711                   cluster
1712                </xsd:documentation>
1713             </xsd:annotation>
1714          </xsd:element>
1715          <xsd:element name="notification-attempts" type="xsd:int" default="2" maxOccurs="1" minOccurs="0">
1716             <xsd:annotation>
1717                <xsd:documentation>
1718                   how many times this cluster connection will notify the cluster of its existence right after joining
1719                   the cluster
1720                </xsd:documentation>
1721             </xsd:annotation>
1722          </xsd:element>
1723
1724          <xsd:element name="scale-down-connector" type="xsd:string" maxOccurs="1" minOccurs="0">
1725             <xsd:annotation>
1726                <xsd:documentation>
1727                   The connector to use for scaling down or when as backup in SCALE_DOWN mode
1728                </xsd:documentation>
1729             </xsd:annotation>
1730          </xsd:element>
1731
1732          <xsd:choice>
1733             <xsd:element name="static-connectors" maxOccurs="1" minOccurs="0">
1734                <xsd:complexType>
1735                   <xsd:sequence>
1736                      <xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="0"/>
1737                   </xsd:sequence>
1738                   <xsd:attribute name="allow-direct-connections-only" default="false" type="xsd:boolean" use="optional">
1739                      <xsd:annotation>
1740                         <xsd:documentation>
1741                            restricts cluster connections to the listed connector-ref's
1742                         </xsd:documentation>
1743                      </xsd:annotation>
1744                   </xsd:attribute>
1745                   <xsd:attributeGroup ref="xml:specialAttrs"/>
1746                </xsd:complexType>
1747             </xsd:element>
1748             <xsd:element name="discovery-group-ref" maxOccurs="1" minOccurs="0">
1749                <xsd:complexType>
1750                   <xsd:attribute name="discovery-group-name" type="xsd:IDREF" use="required">
1751                      <xsd:annotation>
1752                         <xsd:documentation>
1753                            XXX -- this is a duplicate...
1754                         </xsd:documentation>
1755                      </xsd:annotation>
1756                   </xsd:attribute>
1757                   <xsd:attributeGroup ref="xml:specialAttrs"/>
1758                </xsd:complexType>
1759             </xsd:element>
1760          </xsd:choice>
1761       </xsd:sequence>
1762       <xsd:attribute name="name" type="xsd:ID" use="required">
1763          <xsd:annotation>
1764             <xsd:documentation>
1765                unique name for this cluster connection
1766             </xsd:documentation>
1767          </xsd:annotation>
1768       </xsd:attribute>
1769       <xsd:attribute name="uri" type="xsd:string" use="optional">
1770          <xsd:annotation>
1771             <xsd:documentation>
1772                The URI for the cluster connection options
1773             </xsd:documentation>
1774          </xsd:annotation>
1775       </xsd:attribute>
1776       <xsd:attributeGroup ref="xml:specialAttrs"/>
1777    </xsd:complexType>
1778
1779
1780    <xsd:complexType name="cluster-connection-uri-type">
1781       <xsd:attribute name="name" type="xsd:ID" use="required">
1782          <xsd:annotation>
1783             <xsd:documentation>
1784                unique name for this cluster connection
1785             </xsd:documentation>
1786          </xsd:annotation>
1787       </xsd:attribute>
1788       <xsd:attribute name="uri" type="xsd:string" use="required">
1789          <xsd:annotation>
1790             <xsd:documentation>
1791                The URI for the cluster connection options
1792             </xsd:documentation>
1793          </xsd:annotation>
1794       </xsd:attribute>
1795       <xsd:attributeGroup ref="xml:specialAttrs"/>
1796    </xsd:complexType>
1797
1798    <!-- DIVERT CONFIGURATION TYPE -->
1799    <xsd:complexType name="divertType">
1800       <xsd:all>
1801          <xsd:element name="transformer-class-name" type="xsd:string" maxOccurs="1" minOccurs="0">
1802             <xsd:annotation>
1803                <xsd:documentation>
1804                   an optional class name of a transformer
1805                </xsd:documentation>
1806             </xsd:annotation>
1807          </xsd:element>
1808
1809          <xsd:element name="transformer" type="transformerType" maxOccurs="1" minOccurs="0">
1810             <xsd:annotation>
1811                <xsd:documentation>
1812                   optional transformer configuration
1813                </xsd:documentation>
1814             </xsd:annotation>
1815          </xsd:element>
1816
1817          <xsd:element name="exclusive" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
1818             <xsd:annotation>
1819                <xsd:documentation>
1820                   whether this is an exclusive divert
1821                </xsd:documentation>
1822             </xsd:annotation>
1823          </xsd:element>
1824
1825          <xsd:element name="routing-name" type="xsd:string" maxOccurs="1" minOccurs="0">
1826             <xsd:annotation>
1827                <xsd:documentation>
1828                   the routing name for the divert
1829                </xsd:documentation>
1830             </xsd:annotation>
1831          </xsd:element>
1832
1833          <xsd:element name="address" type="xsd:string" maxOccurs="1" minOccurs="1">
1834             <xsd:annotation>
1835                <xsd:documentation>
1836                   the address this divert will divert from
1837                </xsd:documentation>
1838             </xsd:annotation>
1839          </xsd:element>
1840
1841          <xsd:element name="forwarding-address" type="xsd:string" maxOccurs="1" minOccurs="1">
1842             <xsd:annotation>
1843                <xsd:documentation>
1844                   the forwarding address for the divert
1845                </xsd:documentation>
1846             </xsd:annotation>
1847          </xsd:element>
1848
1849          <xsd:element ref="filter" maxOccurs="1" minOccurs="0"/>
1850
1851          <xsd:element name="routing-type" type="divert-routing-type" default="STRIP" maxOccurs="1" minOccurs="0">
1852             <xsd:annotation>
1853                <xsd:documentation>
1854                   how should the routing-type on the diverted messages be set?
1855                </xsd:documentation>
1856             </xsd:annotation>
1857          </xsd:element>
1858       </xsd:all>
1859
1860       <xsd:attribute name="name" type="xsd:ID" use="required">
1861          <xsd:annotation>
1862             <xsd:documentation>
1863                a unique name for the divert
1864             </xsd:documentation>
1865          </xsd:annotation>
1866       </xsd:attribute>
1867       <xsd:attributeGroup ref="xml:specialAttrs"/>
1868    </xsd:complexType>
1869
1870    <xsd:complexType name="storeType">
1871       <xsd:choice>
1872          <xsd:element name="file-store" type="fileStoreType" minOccurs="0" maxOccurs="1">
1873             <xsd:annotation>
1874                <xsd:documentation>
1875                   Use a file based store for persisting journal, paging and large messages
1876                </xsd:documentation>
1877             </xsd:annotation>
1878          </xsd:element>
1879          <xsd:element name="database-store" type="databaseStoreType" minOccurs="0" maxOccurs="1">
1880             <xsd:annotation>
1881                <xsd:documentation>
1882                   Use a database for persisting journal, paging and large messages
1883                </xsd:documentation>
1884             </xsd:annotation>
1885          </xsd:element>
1886       </xsd:choice>
1887       <xsd:attributeGroup ref="xml:specialAttrs"/>
1888    </xsd:complexType>
1889
1890    <xsd:complexType name="fileStoreType">
1891       <xsd:attributeGroup ref="xml:specialAttrs"/>
1892    </xsd:complexType>
1893
1894    <xsd:complexType name="databaseStoreType">
1895       <xsd:all>
1896          <xsd:element name="jdbc-driver-class-name" type="xsd:string" minOccurs="1" maxOccurs="1">
1897             <xsd:annotation>
1898                <xsd:documentation>
1899                   The JDBC Driver class name
1900                </xsd:documentation>
1901             </xsd:annotation>
1902          </xsd:element>
1903          <xsd:element name="jdbc-connection-url" type="xsd:string" minOccurs="1" maxOccurs="1">
1904             <xsd:annotation>
1905                <xsd:documentation>
1906                   The JDBC Connection URL e.g. jdbc:mysql://localhost:3306/
1907                </xsd:documentation>
1908             </xsd:annotation>
1909          </xsd:element>
1910          <xsd:element name="message-table-name" type="xsd:string" minOccurs="1" maxOccurs="1">
1911             <xsd:annotation>
1912                <xsd:documentation>
1913                   The table name used to store message journal entries
1914                </xsd:documentation>
1915             </xsd:annotation>
1916          </xsd:element>
1917          <xsd:element name="bindings-table-name" type="xsd:string" minOccurs="1" maxOccurs="1">
1918             <xsd:annotation>
1919                <xsd:documentation>
1920                   The table name used to store bindings journal entries
1921                </xsd:documentation>
1922             </xsd:annotation>
1923          </xsd:element>
1924          <xsd:element name="large-message-table-name" type="xsd:string" minOccurs="1" maxOccurs="1">
1925             <xsd:annotation>
1926                <xsd:documentation>
1927                   The table name used to large message files
1928                </xsd:documentation>
1929             </xsd:annotation>
1930          </xsd:element>
1931          <xsd:element name="page-store-table-name" type="xsd:string" minOccurs="1" maxOccurs="1">
1932             <xsd:annotation>
1933                <xsd:documentation>
1934                   The table name used to large message files
1935                </xsd:documentation>
1936             </xsd:annotation>
1937          </xsd:element>
1938          <xsd:element name="jdbc-network-timeout" type="xsd:int" minOccurs="0" maxOccurs="1">
1939             <xsd:annotation>
1940                <xsd:documentation>
1941                   The JDBC network connection timeout in milliseconds.
1942                </xsd:documentation>
1943             </xsd:annotation>
1944          </xsd:element>
1945          <xsd:element name="jdbc-lock-acquisition-timeout" type="xsd:int" minOccurs="0" maxOccurs="1">
1946             <xsd:annotation>
1947                <xsd:documentation>
1948                   The max allowed time in milliseconds while trying to acquire a JDBC lock.
1949                </xsd:documentation>
1950             </xsd:annotation>
1951          </xsd:element>
1952          <xsd:element name="jdbc-lock-renew-period" type="xsd:int" minOccurs="0" maxOccurs="1">
1953             <xsd:annotation>
1954                <xsd:documentation>
1955                   The period in milliseconds of the keep alive service of a JDBC lock.
1956                </xsd:documentation>
1957             </xsd:annotation>
1958          </xsd:element>
1959          <xsd:element name="jdbc-lock-expiration" type="xsd:int" minOccurs="0" maxOccurs="1">
1960             <xsd:annotation>
1961                <xsd:documentation>
1962                   The time in milliseconds a JDBC lock is considered valid without keeping it alive.
1963                </xsd:documentation>
1964             </xsd:annotation>
1965          </xsd:element>
1966       </xsd:all>
1967       <xsd:attributeGroup ref="xml:specialAttrs"/>
1968    </xsd:complexType>
1969
1970    <xsd:complexType name="haPolicyType">
1971       <xsd:choice>
1972          <xsd:element name="live-only" type="haLiveOnlyPolicyType" minOccurs="0" maxOccurs="1">
1973             <xsd:annotation>
1974                <xsd:documentation>
1975                   A live only server with no HA capabilities apart from scale down.
1976                </xsd:documentation>
1977             </xsd:annotation>
1978          </xsd:element>
1979          <xsd:element name="replication" type="haReplicationType" minOccurs="0" maxOccurs="1">
1980             <xsd:annotation>
1981                <xsd:documentation>
1982                   Configuration for a replicated server, either master, slave or colocated.
1983                </xsd:documentation>
1984             </xsd:annotation>
1985          </xsd:element>
1986          <xsd:element name="shared-store" type="haSharedStoreType" minOccurs="0" maxOccurs="1">
1987             <xsd:annotation>
1988                <xsd:documentation>
1989                   Configuration for a shared store server, either master, slave or colocated.
1990                </xsd:documentation>
1991             </xsd:annotation>
1992          </xsd:element>
1993       </xsd:choice>
1994       <xsd:attributeGroup ref="xml:specialAttrs"/>
1995    </xsd:complexType>
1996
1997    <xsd:complexType name="haReplicationType">
1998       <xsd:choice>
1999          <xsd:element name="master" type="replicatedPolicyType" minOccurs="0" maxOccurs="1">
2000             <xsd:annotation>
2001                <xsd:documentation>
2002                   A live server configured to replicate.
2003                </xsd:documentation>
2004             </xsd:annotation>
2005          </xsd:element>
2006          <xsd:element name="slave" type="replicaPolicyType" minOccurs="0" maxOccurs="1">
2007             <xsd:annotation>
2008                <xsd:documentation>
2009                   A backup server configured to replicate.
2010                </xsd:documentation>
2011             </xsd:annotation>
2012          </xsd:element>
2013          <xsd:element name="colocated" type="haColocationReplicationType" minOccurs="0" maxOccurs="1">
2014             <xsd:annotation>
2015                <xsd:documentation>
2016                   a replicated lives server that will allow requests to create colocated replicated backup servers.
2017                </xsd:documentation>
2018             </xsd:annotation>
2019          </xsd:element>
2020       </xsd:choice>
2021       <xsd:attributeGroup ref="xml:specialAttrs"/>
2022    </xsd:complexType>
2023
2024
2025    <xsd:complexType name="haColocationReplicationType">
2026       <xsd:all>
2027          <xsd:element name="request-backup" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="false">
2028             <xsd:annotation>
2029                <xsd:documentation>
2030                   If true then the server will request a backup on another node
2031                </xsd:documentation>
2032             </xsd:annotation>
2033          </xsd:element>
2034          <xsd:element name="backup-request-retries" type="xsd:int" minOccurs="0" maxOccurs="1" default="-1">
2035             <xsd:annotation>
2036                <xsd:documentation>
2037                   How many times the live server will try to request a backup, -1 means for ever.
2038                </xsd:documentation>
2039             </xsd:annotation>
2040          </xsd:element>
2041          <xsd:element name="backup-request-retry-interval" type="xsd:long" minOccurs="0" maxOccurs="1" default="5000">
2042             <xsd:annotation>
2043                <xsd:documentation>
2044                   How long to wait for retries between attempts to request a backup server.
2045                </xsd:documentation>
2046             </xsd:annotation>
2047          </xsd:element>
2048          <xsd:element name="max-backups" type="xsd:int" minOccurs="0" maxOccurs="1" default="1">
2049             <xsd:annotation>
2050                <xsd:documentation>
2051                   Whether or not this live server will accept backup requests from other live servers.
2052                </xsd:documentation>
2053             </xsd:annotation>
2054          </xsd:element>
2055          <xsd:element name="backup-port-offset" type="xsd:int" minOccurs="0" maxOccurs="1" default="100">
2056             <xsd:annotation>
2057                <xsd:documentation>
2058                   The offset to use for the Connectors and Acceptors when creating a new backup server.
2059                </xsd:documentation>
2060             </xsd:annotation>
2061          </xsd:element>
2062          <xsd:element name="excludes" maxOccurs="1" minOccurs="0">
2063             <xsd:annotation>
2064                <xsd:documentation>
2065                   the connectors that shouldn't have their ports offset, typically remote connectors or the
2066                   connector used in the cluster connection if scaling down
2067                </xsd:documentation>
2068             </xsd:annotation>
2069             <xsd:complexType>
2070                <xsd:sequence>
2071                   <xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
2072                </xsd:sequence>
2073                <xsd:attributeGroup ref="xml:specialAttrs"/>
2074             </xsd:complexType>
2075          </xsd:element>
2076          <xsd:element name="master" type="replicatedPolicyType" minOccurs="0" maxOccurs="1">
2077             <xsd:annotation>
2078                <xsd:documentation>
2079                   The configuration for the live replicated server.
2080                </xsd:documentation>
2081             </xsd:annotation>
2082          </xsd:element>
2083          <xsd:element name="slave" type="replicaPolicyType" minOccurs="0" maxOccurs="1">
2084             <xsd:annotation>
2085                <xsd:documentation>
2086                   The configuration for any slaves created.
2087                </xsd:documentation>
2088             </xsd:annotation>
2089          </xsd:element>
2090       </xsd:all>
2091       <xsd:attributeGroup ref="xml:specialAttrs"/>
2092    </xsd:complexType>
2093
2094    <xsd:complexType name="haColocationSharedStoreType">
2095       <xsd:all>
2096          <xsd:element name="request-backup" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="false">
2097             <xsd:annotation>
2098                <xsd:documentation>
2099                   If true then the server will request a backup on another node
2100                </xsd:documentation>
2101             </xsd:annotation>
2102          </xsd:element>
2103          <xsd:element name="backup-request-retries" type="xsd:int" minOccurs="0" maxOccurs="1" default="-1">
2104             <xsd:annotation>
2105                <xsd:documentation>
2106                   How many times the live server will try to request a backup, -1 means for ever.
2107                </xsd:documentation>
2108             </xsd:annotation>
2109          </xsd:element>
2110          <xsd:element name="backup-request-retry-interval" type="xsd:long" minOccurs="0" maxOccurs="1" default="5000">
2111             <xsd:annotation>
2112                <xsd:documentation>
2113                   How long to wait for retries between attempts to request a backup server.
2114                </xsd:documentation>
2115             </xsd:annotation>
2116          </xsd:element>
2117          <xsd:element name="max-backups" type="xsd:int" minOccurs="0" maxOccurs="1" default="1">
2118             <xsd:annotation>
2119                <xsd:documentation>
2120                   Whether or not this live server will accept backup requests from other live servers.
2121                </xsd:documentation>
2122             </xsd:annotation>
2123          </xsd:element>
2124          <xsd:element name="backup-port-offset" type="xsd:int" minOccurs="0" maxOccurs="1" default="100">
2125             <xsd:annotation>
2126                <xsd:documentation>
2127                   The offset to use for the Connectors and Acceptors when creating a new backup server.
2128                </xsd:documentation>
2129             </xsd:annotation>
2130          </xsd:element>
2131          <xsd:element name="master" type="sharedStoreMasterPolicyType" minOccurs="0" maxOccurs="1">
2132             <xsd:annotation>
2133                <xsd:documentation>
2134                   The configuration for the live shared store server.
2135                </xsd:documentation>
2136             </xsd:annotation>
2137          </xsd:element>
2138          <xsd:element name="slave" type="sharedStoreSlavePolicyType" minOccurs="0" maxOccurs="1">
2139             <xsd:annotation>
2140                <xsd:documentation>
2141                   The configuration for any shared store backups created.
2142                </xsd:documentation>
2143             </xsd:annotation>
2144          </xsd:element>
2145       </xsd:all>
2146       <xsd:attributeGroup ref="xml:specialAttrs"/>
2147    </xsd:complexType>
2148
2149    <xsd:complexType name="haSharedStoreType">
2150       <xsd:choice>
2151          <xsd:element name="master" type="sharedStoreMasterPolicyType" minOccurs="0" maxOccurs="1">
2152             <xsd:annotation>
2153                <xsd:documentation>
2154                   A shared store live server configuration.
2155                </xsd:documentation>
2156             </xsd:annotation>
2157          </xsd:element>
2158          <xsd:element name="slave" type="sharedStoreSlavePolicyType" minOccurs="0" maxOccurs="1">
2159             <xsd:annotation>
2160                <xsd:documentation>
2161                   A shared store backup server configuration.
2162                </xsd:documentation>
2163             </xsd:annotation>
2164          </xsd:element>
2165          <xsd:element name="colocated" type="haColocationSharedStoreType" minOccurs="0" maxOccurs="1">
2166             <xsd:annotation>
2167                <xsd:documentation>
2168                   A shared store colocated configuration
2169                </xsd:documentation>
2170             </xsd:annotation>
2171          </xsd:element>
2172       </xsd:choice>
2173       <xsd:attributeGroup ref="xml:specialAttrs"/>
2174    </xsd:complexType>
2175
2176    <xsd:complexType name="haLiveOnlyPolicyType">
2177       <xsd:all>
2178          <xsd:element name="scale-down" type="scaleDownType" minOccurs="0" maxOccurs="1">
2179             <xsd:annotation>
2180                <xsd:documentation>
2181                   The scale down configuration of this live server.
2182                </xsd:documentation>
2183             </xsd:annotation>
2184          </xsd:element>
2185       </xsd:all>
2186       <xsd:attributeGroup ref="xml:specialAttrs"/>
2187    </xsd:complexType>
2188    <xsd:complexType name="replicatedPolicyType">
2189       <xsd:all>
2190          <xsd:element name="group-name" type="xsd:string" minOccurs="0" maxOccurs="1">
2191             <xsd:annotation>
2192                <xsd:documentation>
2193                   used for replication, if set, (remote) backup servers will only pair with live servers with matching
2194                   group-name
2195                </xsd:documentation>
2196             </xsd:annotation>
2197          </xsd:element>
2198          <xsd:element name="cluster-name" type="xsd:string" maxOccurs="1" minOccurs="0">
2199             <xsd:annotation>
2200                <xsd:documentation>
2201                   Name of the cluster configuration to use for replication. This setting is only necessary in case you
2202                   configure multiple cluster connections. It is used by a replicating backups and by live servers that
2203                   may attempt fail-back.
2204                </xsd:documentation>
2205             </xsd:annotation>
2206          </xsd:element>
2207          <xsd:element name="check-for-live-server" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
2208             <xsd:annotation>
2209                <xsd:documentation>
2210                   Whether to check the cluster for a (live) server using our own server ID when starting
2211                   up. This option is only necessary for performing 'fail-back' on replicating
2212                   servers. Strictly speaking this setting only applies to live servers and not to
2213                   backups.
2214                </xsd:documentation>
2215             </xsd:annotation>
2216          </xsd:element>
2217          <xsd:element name="initial-replication-sync-timeout" type="xsd:long" default="30000" maxOccurs="1"
2218                       minOccurs="0">
2219             <xsd:annotation>
2220                <xsd:documentation>
2221                   The amount of time to wait for the replica to acknowledge it has received all the necessary data from
2222                   the replicating server at the final step of the initial replication synchronization process.
2223                </xsd:documentation>
2224             </xsd:annotation>
2225          </xsd:element>
2226          <xsd:element name="vote-on-replication-failure" type="xsd:boolean" default="false" minOccurs="0" maxOccurs="1">
2227             <xsd:annotation>
2228                <xsd:documentation>
2229                   Whether or not this live broker should vote to remain as live if replication is lost.
2230                </xsd:documentation>
2231             </xsd:annotation>
2232          </xsd:element>
2233          <xsd:element name="quorum-size" type="xsd:integer" default="-1" minOccurs="0" maxOccurs="1">
2234             <xsd:annotation>
2235                <xsd:documentation>
2236                   The quorum size used for voting after replication loss, -1 means use the current cluster size
2237                </xsd:documentation>
2238             </xsd:annotation>
2239          </xsd:element>
2240
2241          <xsd:element name="vote-retries" type="xsd:integer" default="12" minOccurs="0" maxOccurs="1">
2242             <xsd:annotation>
2243                <xsd:documentation>
2244                   If we start as a replica and lose connection to the master, how many times should we attempt to vote
2245                   for quorum before restarting
2246                </xsd:documentation>
2247             </xsd:annotation>
2248          </xsd:element>
2249          <xsd:element name="vote-retry-wait" type="xsd:long" default="5000" minOccurs="0" maxOccurs="1">
2250             <xsd:annotation>
2251                <xsd:documentation>
2252                   How long to wait (in milliseconds) between each vote
2253                </xsd:documentation>
2254             </xsd:annotation>
2255          </xsd:element>
2256       </xsd:all>
2257       <xsd:attributeGroup ref="xml:specialAttrs"/>
2258    </xsd:complexType>
2259    <xsd:complexType name="replicaPolicyType">
2260       <xsd:all>
2261          <xsd:element name="group-name" type="xsd:string" minOccurs="0" maxOccurs="1">
2262             <xsd:annotation>
2263                <xsd:documentation>
2264                   used for replication, if set, (remote) backup servers will only pair with live servers with matching
2265                   group-name
2266                </xsd:documentation>
2267             </xsd:annotation>
2268          </xsd:element>
2269          <xsd:element name="cluster-name" type="xsd:string" maxOccurs="1" minOccurs="0">
2270             <xsd:annotation>
2271                <xsd:documentation>
2272                   Name of the cluster configuration to use for replication. This setting is only necessary in case you
2273                   configure multiple cluster connections. It is used by a replicating backups and by live servers that
2274                   may attempt fail-back.
2275                </xsd:documentation>
2276             </xsd:annotation>
2277          </xsd:element>
2278          <xsd:element name="max-saved-replicated-journals-size" type="xsd:int" default="2" maxOccurs="1" minOccurs="0">
2279             <xsd:annotation>
2280                <xsd:documentation>
2281                   This specifies how many times a replicated backup server can restart after moving its files on start.
2282                   Once there are this number of backup journal files the server will stop permanently after if fails
2283                   back.
2284                </xsd:documentation>
2285             </xsd:annotation>
2286          </xsd:element>
2287          <xsd:element name="scale-down" type="scaleDownType" maxOccurs="1" minOccurs="0">
2288             <xsd:annotation>
2289                <xsd:documentation>
2290                   if provided then this backup will scale down rather than becoming live after fail over.
2291                </xsd:documentation>
2292             </xsd:annotation>
2293          </xsd:element>
2294          <xsd:element name="restart-backup" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
2295             <xsd:annotation>
2296                <xsd:documentation>
2297                   Will this server, if a backup, restart once it has been stopped because of failback or scaling down.
2298                </xsd:documentation>
2299             </xsd:annotation>
2300          </xsd:element>
2301          <xsd:element name="allow-failback" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2302             <xsd:annotation>
2303                <xsd:documentation>
2304                   Whether a server will automatically stop when a another places a request to take over
2305                   its place. The use case is when a regular server stops and its backup takes over its
2306                   duties, later the main server restarts and requests the server (the former backup) to
2307                   stop operating.
2308                </xsd:documentation>
2309             </xsd:annotation>
2310          </xsd:element>
2311          <xsd:element name="failback-delay" type="xsd:long" default="5000" maxOccurs="1" minOccurs="0">
2312             <xsd:annotation>
2313                <xsd:documentation>
2314                   DEPRECATED: if we have to start as a replicated server this is the delay to wait before fail-back
2315                   occurs
2316                </xsd:documentation>
2317             </xsd:annotation>
2318          </xsd:element>
2319          <xsd:element name="initial-replication-sync-timeout" type="xsd:long" default="30000" maxOccurs="1"
2320                       minOccurs="0">
2321             <xsd:annotation>
2322                <xsd:documentation>
2323                   If we have to start as a replicated server this is the amount of time to wait for the replica to
2324                   acknowledge it has received all the necessary data from the replicating server at the final step
2325                   of the initial replication synchronization process.
2326                </xsd:documentation>
2327             </xsd:annotation>
2328          </xsd:element>
2329          <xsd:element name="vote-on-replication-failure" type="xsd:boolean" default="false" minOccurs="0" maxOccurs="1">
2330             <xsd:annotation>
2331                <xsd:documentation>
2332                   If we have to start as a replicated server decide whether or not this live broker should vote to remain
2333                   as live if replication is lost.
2334                </xsd:documentation>
2335             </xsd:annotation>
2336          </xsd:element>
2337          <xsd:element name="quorum-size" type="xsd:integer" default="-1" minOccurs="0" maxOccurs="1">
2338             <xsd:annotation>
2339                <xsd:documentation>
2340                   If we have to start as a replicated server or we are a backup and lose connection to live, the quorum size
2341                   used for voting after replication loss, -1 means use the current cluster size
2342                </xsd:documentation>
2343             </xsd:annotation>
2344          </xsd:element>
2345          <xsd:element name="vote-retries" type="xsd:integer" default="12" minOccurs="0" maxOccurs="1">
2346             <xsd:annotation>
2347                <xsd:documentation>
2348                   If we lose connection to the master, how many times should we attempt to vote for quorum before restarting
2349                </xsd:documentation>
2350             </xsd:annotation>
2351          </xsd:element>
2352          <xsd:element name="vote-retry-wait" type="xsd:long" default="5000" minOccurs="0" maxOccurs="1">
2353             <xsd:annotation>
2354                <xsd:documentation>
2355                   How long to wait (in milliseconds) between each vote
2356                </xsd:documentation>
2357             </xsd:annotation>
2358          </xsd:element>
2359       </xsd:all>
2360       <xsd:attributeGroup ref="xml:specialAttrs"/>
2361    </xsd:complexType>
2362    <xsd:complexType name="colocatedReplicaPolicyType">
2363       <xsd:all>
2364          <xsd:element name="group-name" type="xsd:string" minOccurs="0" maxOccurs="1">
2365             <xsd:annotation>
2366                <xsd:documentation>
2367                   used for replication, if set, (remote) backup servers will only pair with live servers with matching
2368                   group-name
2369                </xsd:documentation>
2370             </xsd:annotation>
2371          </xsd:element>
2372          <xsd:element name="cluster-name" type="xsd:string" maxOccurs="1" minOccurs="0">
2373             <xsd:annotation>
2374                <xsd:documentation>
2375                   Name of the cluster configuration to use for replication. This setting is only necessary in case you
2376                   configure multiple cluster connections. It is used by a replicating backups and by live servers that
2377                   may attempt fail-back.
2378                </xsd:documentation>
2379             </xsd:annotation>
2380          </xsd:element>
2381          <xsd:element name="max-saved-replicated-journals-size" type="xsd:int" default="2" maxOccurs="1" minOccurs="0">
2382             <xsd:annotation>
2383                <xsd:documentation>
2384                   This specifies how many times a replicated backup server can restart after moving its files on start.
2385                   Once there are this number of backup journal files the server will stop permanently after if fails
2386                   back.
2387                </xsd:documentation>
2388             </xsd:annotation>
2389          </xsd:element>
2390          <xsd:element name="scale-down" type="scaleDownType" maxOccurs="1" minOccurs="0">
2391             <xsd:annotation>
2392                <xsd:documentation>
2393                   if provided then this backup will scale down rather than becoming live after fail over.
2394                </xsd:documentation>
2395             </xsd:annotation>
2396          </xsd:element>
2397          <xsd:element name="restart-backup" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
2398             <xsd:annotation>
2399                <xsd:documentation>
2400                   Will this server, if a backup, restart once it has been stopped because of failback or scaling down.
2401                </xsd:documentation>
2402             </xsd:annotation>
2403          </xsd:element>
2404       </xsd:all>
2405       <xsd:attributeGroup ref="xml:specialAttrs"/>
2406    </xsd:complexType>
2407    <xsd:complexType name="sharedStoreMasterPolicyType">
2408       <xsd:all>
2409          <xsd:element name="failback-delay" type="xsd:long" default="5000" maxOccurs="1" minOccurs="0">
2410             <xsd:annotation>
2411                <xsd:documentation>
2412                   DEPRECATED: delay to wait before fail-back occurs on (live's) restart
2413                </xsd:documentation>
2414             </xsd:annotation>
2415          </xsd:element>
2416          <xsd:element name="failover-on-shutdown" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
2417             <xsd:annotation>
2418                <xsd:documentation>
2419                   Will this backup server come live on a normal server shutdown
2420                </xsd:documentation>
2421             </xsd:annotation>
2422          </xsd:element>
2423          <xsd:element name="wait-for-activation" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2424             <xsd:annotation>
2425                <xsd:documentation>
2426                   Will the master startup wait until it is activated
2427                </xsd:documentation>
2428             </xsd:annotation>
2429          </xsd:element>
2430       </xsd:all>
2431       <xsd:attributeGroup ref="xml:specialAttrs"/>
2432    </xsd:complexType>
2433    <xsd:complexType name="sharedStoreSlavePolicyType">
2434       <xsd:all>
2435          <xsd:element name="allow-failback" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2436             <xsd:annotation>
2437                <xsd:documentation>
2438                   Whether a server will automatically stop when a another places a request to take over
2439                   its place. The use case is when a regular server stops and its backup takes over its
2440                   duties, later the main server restarts and requests the server (the former backup) to
2441                   stop operating.
2442                </xsd:documentation>
2443             </xsd:annotation>
2444          </xsd:element>
2445          <xsd:element name="failback-delay" type="xsd:long" default="5000" maxOccurs="1" minOccurs="0">
2446             <xsd:annotation>
2447                <xsd:documentation>
2448                   DEPRECATED: delay to wait before fail-back occurs on (live's) restart
2449                </xsd:documentation>
2450             </xsd:annotation>
2451          </xsd:element>
2452          <xsd:element name="failover-on-shutdown" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
2453             <xsd:annotation>
2454                <xsd:documentation>
2455                   Will this backup server come live on a normal server shutdown
2456                </xsd:documentation>
2457             </xsd:annotation>
2458          </xsd:element>
2459          <xsd:element name="scale-down" type="scaleDownType" maxOccurs="1" minOccurs="0">
2460             <xsd:annotation>
2461                <xsd:documentation>
2462                   if provided then this backup will scale down rather than becoming live after fail over.
2463                </xsd:documentation>
2464             </xsd:annotation>
2465          </xsd:element>
2466          <xsd:element name="restart-backup" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
2467             <xsd:annotation>
2468                <xsd:documentation>
2469                   Will this server, if a backup, restart once it has been stopped because of failback or scaling down.
2470                </xsd:documentation>
2471             </xsd:annotation>
2472          </xsd:element>
2473       </xsd:all>
2474       <xsd:attributeGroup ref="xml:specialAttrs"/>
2475    </xsd:complexType>
2476    <xsd:complexType name="colocatedPolicyType">
2477       <xsd:all>
2478          <xsd:element name="request-backup" type="xsd:boolean" minOccurs="0" maxOccurs="1" default="false">
2479             <xsd:annotation>
2480                <xsd:documentation>
2481                   If true then the server will request a backup on another node
2482                </xsd:documentation>
2483             </xsd:annotation>
2484          </xsd:element>
2485          <xsd:element name="backup-request-retries" type="xsd:int" minOccurs="0" maxOccurs="1" default="-1">
2486             <xsd:annotation>
2487                <xsd:documentation>
2488                   How many times the live server will try to request a backup, -1 means for ever.
2489                </xsd:documentation>
2490             </xsd:annotation>
2491          </xsd:element>
2492          <xsd:element name="backup-request-retry-interval" type="xsd:long" minOccurs="0" maxOccurs="1" default="5000">
2493             <xsd:annotation>
2494                <xsd:documentation>
2495                   How long to wait for retries between attempts to request a backup server.
2496                </xsd:documentation>
2497             </xsd:annotation>
2498          </xsd:element>
2499          <xsd:element name="max-backups" type="xsd:int" minOccurs="0" maxOccurs="1" default="1">
2500             <xsd:annotation>
2501                <xsd:documentation>
2502                   Whether or not this live server will accept backup requests from other live servers.
2503                </xsd:documentation>
2504             </xsd:annotation>
2505          </xsd:element>
2506          <xsd:element name="backup-port-offset" type="xsd:int" minOccurs="0" maxOccurs="1" default="100">
2507             <xsd:annotation>
2508                <xsd:documentation>
2509                   The offset to use for the Connectors and Acceptors when creating a new backup server.
2510                </xsd:documentation>
2511             </xsd:annotation>
2512          </xsd:element>
2513       </xsd:all>
2514       <xsd:attributeGroup ref="xml:specialAttrs"/>
2515    </xsd:complexType>
2516    <xsd:complexType name="scaleDownType">
2517       <xsd:sequence>
2518          <xsd:element name="enabled" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2519             <xsd:annotation>
2520                <xsd:documentation>
2521                   its possible that you only want a server to partake in scale down as a receiver, via a group.
2522                   In this case set scale-down to false
2523                </xsd:documentation>
2524             </xsd:annotation>
2525          </xsd:element>
2526          <xsd:element name="group-name" type="xsd:string" minOccurs="0" maxOccurs="1">
2527             <xsd:annotation>
2528                <xsd:documentation>
2529                   The scale down group to scale down to, a server will only scale down to a server within the same group
2530                </xsd:documentation>
2531             </xsd:annotation>
2532          </xsd:element>
2533          <xsd:choice>
2534             <xsd:element name="discovery-group-ref" maxOccurs="1" minOccurs="0">
2535                <xsd:complexType>
2536                   <xsd:attribute name="discovery-group-name" type="xsd:IDREF" use="required">
2537                      <xsd:annotation>
2538                         <xsd:documentation>
2539                            The discovery group to use for scale down, if not supplied then the scale-down-connectors or
2540                            first
2541                            invm connector will be used
2542                         </xsd:documentation>
2543                      </xsd:annotation>
2544                   </xsd:attribute>
2545                   <xsd:attributeGroup ref="xml:specialAttrs"/>
2546                </xsd:complexType>
2547             </xsd:element>
2548             <xsd:element name="connectors" minOccurs="0" maxOccurs="1">
2549                <xsd:annotation>
2550                   <xsd:documentation>
2551                      A list of connectors to use for scaling down, if not supplied then the scale-down-discovery-group
2552                      or
2553                      first invm connector will be used
2554                   </xsd:documentation>
2555                </xsd:annotation>
2556                <xsd:complexType>
2557                   <xsd:sequence>
2558                      <xsd:element name="connector-ref" type="xsd:string" maxOccurs="unbounded" minOccurs="1"/>
2559                   </xsd:sequence>
2560                   <xsd:attributeGroup ref="xml:specialAttrs"/>
2561                </xsd:complexType>
2562             </xsd:element>
2563          </xsd:choice>
2564       </xsd:sequence>
2565       <xsd:attributeGroup ref="xml:specialAttrs"/>
2566    </xsd:complexType>
2567
2568    <xsd:complexType name="groupingHandlerType">
2569       <xsd:all>
2570          <xsd:element name="type" maxOccurs="1" minOccurs="1">
2571             <xsd:annotation>
2572                <xsd:documentation>
2573                   Each cluster should choose 1 node to have a LOCAL grouping handler and all the other nodes should have
2574                   REMOTE handlers
2575                </xsd:documentation>
2576             </xsd:annotation>
2577             <xsd:simpleType>
2578                <xsd:restriction base="xsd:string">
2579                   <xsd:enumeration value="LOCAL"/>
2580                   <xsd:enumeration value="REMOTE"/>
2581                </xsd:restriction>
2582             </xsd:simpleType>
2583          </xsd:element>
2584          <xsd:element name="address" type="xsd:string" maxOccurs="1" minOccurs="0">
2585             <xsd:annotation>
2586                <xsd:documentation>
2587                   A reference to a cluster connection address
2588                </xsd:documentation>
2589             </xsd:annotation>
2590          </xsd:element>
2591          <xsd:element name="timeout" type="xsd:int" default="5000" maxOccurs="1" minOccurs="0">
2592             <xsd:annotation>
2593                <xsd:documentation>
2594                   How long to wait for a decision
2595                </xsd:documentation>
2596             </xsd:annotation>
2597          </xsd:element>
2598          <xsd:element name="group-timeout" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0">
2599             <xsd:annotation>
2600                <xsd:documentation>
2601                   How long a group binding will be used, -1 means for ever. Bindings are removed after this wait
2602                   elapses. On the remote node this is used to determine how often you should re-query the main
2603                   coordinator in order to update the last time used accordingly.
2604                </xsd:documentation>
2605             </xsd:annotation>
2606          </xsd:element>
2607          <xsd:element name="reaper-period" type="xsd:long" default="30000" maxOccurs="1" minOccurs="0">
2608             <xsd:annotation>
2609                <xsd:documentation>
2610                   How often the reaper will be run to check for timed out group bindings. Only valid for LOCAL handlers
2611                </xsd:documentation>
2612             </xsd:annotation>
2613          </xsd:element>
2614       </xsd:all>
2615       <xsd:attribute name="name" type="xsd:string" use="required">
2616          <xsd:annotation>
2617             <xsd:documentation>
2618                A name identifying this grouping-handler
2619             </xsd:documentation>
2620          </xsd:annotation>
2621       </xsd:attribute>
2622       <xsd:attributeGroup ref="xml:specialAttrs"/>
2623    </xsd:complexType>
2624
2625    <xsd:element name="address-setting">
2626       <xsd:complexType>
2627          <xsd:annotation>
2628             <xsd:documentation>
2629                Complex type element to configure an address.
2630             </xsd:documentation>
2631          </xsd:annotation>
2632          <xsd:all>
2633             <xsd:element maxOccurs="1" minOccurs="0" name="dead-letter-address" type="xsd:string">
2634                <xsd:annotation>
2635                   <xsd:documentation>
2636                      the address to send dead messages to
2637                   </xsd:documentation>
2638                </xsd:annotation>
2639             </xsd:element>
2640
2641             <xsd:element name="expiry-address" type="xsd:string" maxOccurs="1" minOccurs="0">
2642                <xsd:annotation>
2643                   <xsd:documentation>
2644                      the address to send expired messages to
2645                   </xsd:documentation>
2646                </xsd:annotation>
2647             </xsd:element>
2648
2649             <xsd:element name="expiry-delay" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0">
2650                <xsd:annotation>
2651                   <xsd:documentation>
2652                      Overrides the expiration time for messages using the default value for expiration time. "-1"
2653                      disables this setting.
2654                   </xsd:documentation>
2655                </xsd:annotation>
2656             </xsd:element>
2657
2658             <xsd:element name="redelivery-delay" type="xsd:long" default="0" maxOccurs="1" minOccurs="0">
2659                <xsd:annotation>
2660                   <xsd:documentation>
2661                      the time (in ms) to wait before redelivering a cancelled message.
2662                   </xsd:documentation>
2663                </xsd:annotation>
2664             </xsd:element>
2665
2666             <xsd:element name="redelivery-delay-multiplier" type="xsd:double" maxOccurs="1" minOccurs="0">
2667                <xsd:annotation>
2668                   <xsd:documentation>
2669                      multiplier to apply to the "redelivery-delay"
2670                   </xsd:documentation>
2671                </xsd:annotation>
2672             </xsd:element>
2673
2674             <xsd:element name="max-redelivery-delay" type="xsd:long" maxOccurs="1" minOccurs="0">
2675                <xsd:annotation>
2676                   <xsd:documentation>
2677                      Maximum value for the redelivery-delay
2678                   </xsd:documentation>
2679                </xsd:annotation>
2680             </xsd:element>
2681
2682             <xsd:element name="max-delivery-attempts" type="xsd:int" default="10" maxOccurs="1" minOccurs="0">
2683                <xsd:annotation>
2684                   <xsd:documentation>
2685                      how many times to attempt to deliver a message before sending to dead letter address
2686                   </xsd:documentation>
2687                </xsd:annotation>
2688             </xsd:element>
2689
2690             <xsd:element name="max-size-bytes" type="xsd:string" default="-1" maxOccurs="1" minOccurs="0">
2691                <xsd:annotation>
2692                   <xsd:documentation>
2693                      the maximum size (in bytes) for an address (-1 means no limits). This is used in PAGING, BLOCK and
2694                      FAIL policies. Supports byte notation like "K", "Mb", "GB", etc.
2695                   </xsd:documentation>
2696                </xsd:annotation>
2697             </xsd:element>
2698
2699             <xsd:element name="max-size-bytes-reject-threshold" type="xsd:long" default="-1" maxOccurs="1"
2700                          minOccurs="0">
2701                <xsd:annotation>
2702                   <xsd:documentation>
2703                      used with the address full BLOCK policy, the maximum size (in bytes) an address can reach before
2704                      messages start getting rejected. Works in combination with max-size-bytes for AMQP protocol only.
2705                      Default = -1 (no limit).
2706                   </xsd:documentation>
2707                </xsd:annotation>
2708             </xsd:element>
2709
2710             <xsd:element name="page-size-bytes" type="xsd:string" default="10485760" maxOccurs="1" minOccurs="0">
2711                <xsd:annotation>
2712                   <xsd:documentation>
2713                      The page size (in bytes) to use for an address. Supports byte notation like "K", "Mb",
2714                      "GB", etc.
2715                   </xsd:documentation>
2716                </xsd:annotation>
2717             </xsd:element>
2718
2719             <xsd:element name="page-max-cache-size" default="5" type="xsd:int" maxOccurs="1" minOccurs="0">
2720                <xsd:annotation>
2721                   <xsd:documentation>
2722                      Number of paging files to cache in memory to avoid IO during paging navigation
2723                   </xsd:documentation>
2724                </xsd:annotation>
2725             </xsd:element>
2726
2727             <xsd:element name="address-full-policy" maxOccurs="1" minOccurs="0">
2728                <xsd:annotation>
2729                   <xsd:documentation>
2730                      what happens when an address where "max-size-bytes" is specified becomes full
2731                   </xsd:documentation>
2732                </xsd:annotation>
2733                <xsd:simpleType>
2734                   <xsd:restriction base="xsd:string">
2735                      <xsd:enumeration value="DROP"/>
2736                      <xsd:enumeration value="FAIL"/>
2737                      <xsd:enumeration value="PAGE"/>
2738                      <xsd:enumeration value="BLOCK"/>
2739                   </xsd:restriction>
2740                </xsd:simpleType>
2741             </xsd:element>
2742
2743             <xsd:element name="message-counter-history-day-limit" type="xsd:int" default="0" maxOccurs="1"
2744                          minOccurs="0">
2745                <xsd:annotation>
2746                   <xsd:documentation>
2747                      how many days to keep message counter history for this address
2748                   </xsd:documentation>
2749                </xsd:annotation>
2750             </xsd:element>
2751
2752             <xsd:element name="last-value-queue" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
2753                <xsd:annotation>
2754                   <xsd:documentation>
2755                      This is deprecated please use default-last-value-queue instead.
2756                   </xsd:documentation>
2757                </xsd:annotation>
2758             </xsd:element>
2759
2760             <xsd:element name="default-last-value-queue" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
2761                <xsd:annotation>
2762                   <xsd:documentation>
2763                      whether to treat the queues under the address as a last value queues by default
2764                   </xsd:documentation>
2765                </xsd:annotation>
2766             </xsd:element>
2767
2768             <xsd:element name="default-exclusive-queue" type="xsd:boolean" default="false" maxOccurs="1" minOccurs="0">
2769                <xsd:annotation>
2770                   <xsd:documentation>
2771                      whether to treat the queues under the address as exclusive queues by default
2772                   </xsd:documentation>
2773                </xsd:annotation>
2774             </xsd:element>
2775
2776             <xsd:element name="redistribution-delay" type="xsd:long" default="-1" maxOccurs="1" minOccurs="0">
2777                <xsd:annotation>
2778                   <xsd:documentation>
2779                      how long (in ms) to wait after the last consumer is closed on a queue before redistributing
2780                      messages.
2781                   </xsd:documentation>
2782                </xsd:annotation>
2783             </xsd:element>
2784
2785             <xsd:element name="send-to-dla-on-no-route" type="xsd:boolean" maxOccurs="1" minOccurs="0">
2786                <xsd:annotation>
2787                   <xsd:documentation>
2788                      if there are no queues matching this address, whether to forward message to DLA (if it exists for
2789                      this address)
2790                   </xsd:documentation>
2791                </xsd:annotation>
2792             </xsd:element>
2793
2794             <xsd:element name="slow-consumer-threshold" type="xsd:long" maxOccurs="1" minOccurs="0">
2795                <xsd:annotation>
2796                   <xsd:documentation>
2797                      The minimum rate of message consumption allowed before a consumer is considered "slow." Measured
2798                      in messages-per-second.
2799                   </xsd:documentation>
2800                </xsd:annotation>
2801             </xsd:element>
2802
2803             <xsd:element name="slow-consumer-policy" default="NOTIFY" maxOccurs="1" minOccurs="0">
2804                <xsd:annotation>
2805                   <xsd:documentation>
2806                      what happens when a slow consumer is identified
2807                   </xsd:documentation>
2808                </xsd:annotation>
2809                <xsd:simpleType>
2810                   <xsd:restriction base="xsd:string">
2811                      <xsd:enumeration value="KILL"/>
2812                      <xsd:enumeration value="NOTIFY"/>
2813                   </xsd:restriction>
2814                </xsd:simpleType>
2815             </xsd:element>
2816
2817             <xsd:element name="slow-consumer-check-period" type="xsd:long" maxOccurs="1" minOccurs="0">
2818                <xsd:annotation>
2819                   <xsd:documentation>
2820                      How often to check for slow consumers on a particular queue. Measured in seconds.
2821                   </xsd:documentation>
2822                </xsd:annotation>
2823             </xsd:element>
2824
2825             <xsd:element name="auto-create-jms-queues" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2826                <xsd:annotation>
2827                   <xsd:documentation>
2828                      DEPRECATED: whether or not to automatically create JMS queues when a producer sends or a consumer connects to a
2829                      queue
2830                   </xsd:documentation>
2831                </xsd:annotation>
2832             </xsd:element>
2833
2834             <xsd:element name="auto-delete-jms-queues" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2835                <xsd:annotation>
2836                   <xsd:documentation>
2837                      DEPRECATED: whether or not to delete auto-created JMS queues when the queue has 0 consumers and 0 messages
2838                   </xsd:documentation>
2839                </xsd:annotation>
2840             </xsd:element>
2841
2842             <xsd:element name="auto-create-jms-topics" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2843                <xsd:annotation>
2844                   <xsd:documentation>
2845                      DEPRECATED: whether or not to automatically create JMS topics when a producer sends or a consumer subscribes to
2846                      a topic
2847                   </xsd:documentation>
2848                </xsd:annotation>
2849             </xsd:element>
2850
2851             <xsd:element name="auto-delete-jms-topics" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2852                <xsd:annotation>
2853                   <xsd:documentation>
2854                      DEPRECATED: whether or not to delete auto-created JMS topics when the last subscription is closed
2855                   </xsd:documentation>
2856                </xsd:annotation>
2857             </xsd:element>
2858
2859             <xsd:element name="auto-create-queues" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2860                <xsd:annotation>
2861                   <xsd:documentation>
2862                      whether or not to automatically create a queue when a client sends a message to or attempts to consume
2863                      a message from a queue
2864                   </xsd:documentation>
2865                </xsd:annotation>
2866             </xsd:element>
2867
2868             <xsd:element name="auto-delete-queues" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2869                <xsd:annotation>
2870                   <xsd:documentation>
2871                      whether or not to delete auto-created queues when the queue has 0 consumers and 0 messages
2872                   </xsd:documentation>
2873                </xsd:annotation>
2874             </xsd:element>
2875
2876             <xsd:element name="config-delete-queues" default="OFF" maxOccurs="1" minOccurs="0">
2877                <xsd:annotation>
2878                   <xsd:documentation>
2879                       What to do when a queue is no longer in broker.xml.
2880                      OFF = will do nothing queues will remain,
2881                      FORCE = delete queues even if messages remaining.
2882                   </xsd:documentation>
2883                </xsd:annotation>
2884                <xsd:simpleType>
2885                   <xsd:restriction base="xsd:string">
2886                      <xsd:enumeration value="OFF"/>
2887                      <xsd:enumeration value="FORCE"/>
2888                   </xsd:restriction>
2889                </xsd:simpleType>
2890             </xsd:element>
2891
2892             <xsd:element name="auto-create-addresses" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2893                <xsd:annotation>
2894                   <xsd:documentation>
2895                      whether or not to automatically create addresses when a client sends a message to or attempts to
2896                      consume a message from a queue mapped to an address that doesn't exist
2897                      a queue
2898                   </xsd:documentation>
2899                </xsd:annotation>
2900             </xsd:element>
2901
2902             <xsd:element name="auto-delete-addresses" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0">
2903                <xsd:annotation>
2904                   <xsd:documentation>
2905                      whether or not to delete auto-created addresses when it no longer has any queues
2906                   </xsd:documentation>
2907                </xsd:annotation>
2908             </xsd:element>
2909
2910             <xsd:element name="config-delete-addresses" default="OFF" maxOccurs="1" minOccurs="0">
2911                <xsd:annotation>
2912                   <xsd:documentation>
2913                      What to do when an address is no longer in broker.xml.
2914                      OFF = will do nothing addresses will remain,
2915                      FORCE = delete address and its queues even if messages remaining.
2916                   </xsd:documentation>
2917                </xsd:annotation>
2918                <xsd:simpleType>
2919                   <xsd:restriction base="xsd:string">
2920                      <xsd:enumeration value="OFF"/>
2921                      <xsd:enumeration value="FORCE"/>
2922                   </xsd:restriction>
2923                </xsd:simpleType>
2924             </xsd:element>
2925
2926             <xsd:element name="management-browse-page-size" type="xsd:int" default="200" maxOccurs="1" minOccurs="0">
2927                <xsd:annotation>
2928                   <xsd:documentation>
2929                      how many message a management resource can browse
2930                   </xsd:documentation>
2931                </xsd:annotation>
2932             </xsd:element>
2933
2934             <xsd:element name="default-purge-on-no-consumers" type="xsd:boolean" default="false" maxOccurs="1"
2935                          minOccurs="0">
2936                <xsd:annotation>
2937                   <xsd:documentation>
2938                      purge the contents of the queue once there are no consumers
2939                   </xsd:documentation>
2940                </xsd:annotation>
2941             </xsd:element>
2942
2943             <xsd:element name="default-max-consumers" type="xsd:int" default="200" maxOccurs="1" minOccurs="0">
2944                <xsd:annotation>
2945                   <xsd:documentation>
2946                      the maximum number of consumers allowed on this queue at any one time
2947                   </xsd:documentation>
2948                </xsd:annotation>
2949             </xsd:element>
2950
2951             <xsd:element name="default-queue-routing-type" type="routing-type" default="MULTICAST" maxOccurs="1" minOccurs="0">
2952                <xsd:annotation>
2953                   <xsd:documentation>
2954                      the routing-type used on auto-created queues
2955                   </xsd:documentation>
2956                </xsd:annotation>
2957             </xsd:element>
2958
2959             <xsd:element name="default-address-routing-type" type="routing-type" default="MULTICAST" maxOccurs="1" minOccurs="0">
2960                <xsd:annotation>
2961                   <xsd:documentation>
2962                      the routing-type used on auto-created addresses
2963                   </xsd:documentation>
2964                </xsd:annotation>
2965             </xsd:element>
2966
2967          </xsd:all>
2968
2969          <xsd:attribute name="match" type="xsd:string" use="required">
2970             <xsd:annotation>
2971                <xsd:documentation>
2972                   XXX
2973                </xsd:documentation>
2974             </xsd:annotation>
2975          </xsd:attribute>
2976          <xsd:attributeGroup ref="xml:specialAttrs"/>
2977       </xsd:complexType>
2978    </xsd:element>
2979
2980    <xsd:element name="resource-limit-setting">
2981       <xsd:complexType>
2982          <xsd:annotation>
2983             <xsd:documentation>
2984                Complex type element to configure resource limits for a particular user.
2985             </xsd:documentation>
2986          </xsd:annotation>
2987          <xsd:all>
2988             <xsd:element name="max-connections" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0">
2989                <xsd:annotation>
2990                   <xsd:documentation>
2991                      how many connections are allowed by the matched entity (-1 means no limit, default is -1)
2992                   </xsd:documentation>
2993                </xsd:annotation>
2994             </xsd:element>
2995
2996             <xsd:element name="max-queues" type="xsd:int" default="-1" maxOccurs="1" minOccurs="0">
2997                <xsd:annotation>
2998                   <xsd:documentation>
2999                      how many queues can be created by the matched entity (-1 means no limit, default is -1)
3000                   </xsd:documentation>
3001                </xsd:annotation>
3002             </xsd:element>
3003          </xsd:all>
3004
3005          <xsd:attribute name="match" type="xsd:string" use="required">
3006             <xsd:annotation>
3007                <xsd:documentation>
3008                   the name of the user to whom the limits should be applied
3009                </xsd:documentation>
3010             </xsd:annotation>
3011          </xsd:attribute>
3012          <xsd:attributeGroup ref="xml:specialAttrs"/>
3013       </xsd:complexType>
3014    </xsd:element>
3015
3016    <xsd:element name="filter">
3017       <xsd:complexType>
3018          <xsd:annotation>
3019             <xsd:documentation>
3020                optional core filter expression (set through attribute)
3021             </xsd:documentation>
3022          </xsd:annotation>
3023          <xsd:attribute name="string" type="xsd:string" use="required">
3024             <xsd:annotation>
3025                <xsd:documentation>
3026                   optional core filter expression
3027                </xsd:documentation>
3028             </xsd:annotation>
3029          </xsd:attribute>
3030          <xsd:attributeGroup ref="xml:specialAttrs"/>
3031       </xsd:complexType>
3032    </xsd:element>
3033
3034    <xsd:complexType name="connector-serviceType">
3035       <xsd:sequence>
3036          <xsd:element maxOccurs="1" minOccurs="1" name="factory-class" type="xsd:string">
3037             <xsd:annotation>
3038                <xsd:documentation>
3039                   Name of the factory class of the ConnectorService
3040                </xsd:documentation>
3041             </xsd:annotation>
3042          </xsd:element>
3043          <xsd:element maxOccurs="unbounded" minOccurs="0" name="param" type="paramType"/>
3044       </xsd:sequence>
3045       <xsd:attribute name="name" type="xsd:string" use="optional">
3046          <xsd:annotation>
3047             <xsd:documentation>
3048                name of the connector service
3049             </xsd:documentation>
3050          </xsd:annotation>
3051       </xsd:attribute>
3052       <xsd:attributeGroup ref="xml:specialAttrs"/>
3053    </xsd:complexType>
3054
3055    <xsd:complexType name="transportType">
3056       <xsd:simpleContent>
3057          <xsd:extension base="xsd:string">
3058             <xsd:attribute name="name" type="xsd:string">
3059             </xsd:attribute>
3060          </xsd:extension>
3061       </xsd:simpleContent>
3062    </xsd:complexType>
3063
3064    <!-- 2.0 Addressing configuration -->
3065
3066    <xsd:simpleType name="routing-type">
3067       <xsd:restriction base="xsd:string">
3068          <xsd:enumeration value="ANYCAST"/>
3069          <xsd:enumeration value="MULTICAST"/>
3070       </xsd:restriction>
3071    </xsd:simpleType>
3072
3073    <xsd:simpleType name="divert-routing-type">
3074       <xsd:restriction base="xsd:string">
3075          <xsd:enumeration value="ANYCAST"/>
3076          <xsd:enumeration value="MULTICAST"/>
3077          <xsd:enumeration value="STRIP"/>
3078          <xsd:enumeration value="PASS"/>
3079       </xsd:restriction>
3080    </xsd:simpleType>
3081
3082    <xsd:complexType name="queueType">
3083       <xsd:all>
3084          <xsd:element ref="filter" maxOccurs="1" minOccurs="0"/>
3085          <xsd:element name="durable" type="xsd:boolean" default="true" maxOccurs="1" minOccurs="0" />
3086          <xsd:element name="user" type="xsd:string" maxOccurs="1" minOccurs="0" />
3087       </xsd:all>
3088       <xsd:attribute name="name" type="xsd:string" use="required"/>
3089       <xsd:attribute name="max-consumers" type="xsd:integer" use="optional"/>
3090       <xsd:attribute name="purge-on-no-consumers" type="xsd:boolean" use="optional"/>
3091       <xsd:attribute name="exclusive" type="xsd:boolean" use="optional"/>
3092       <xsd:attribute name="last-value" type="xsd:boolean" use="optional"/>
3093       <xsd:attributeGroup ref="xml:specialAttrs"/>
3094    </xsd:complexType>
3095
3096    <xsd:complexType name="addressType">
3097       <xsd:all>
3098          <xsd:element name="anycast" maxOccurs="1" minOccurs="0">
3099             <xsd:annotation>
3100                <xsd:documentation>
3101                   a list of pre configured queues to create
3102                </xsd:documentation>
3103             </xsd:annotation>
3104             <xsd:complexType>
3105                <xsd:sequence>
3106                   <xsd:element name="queue" type="queueType" maxOccurs="unbounded" minOccurs="0" />
3107                </xsd:sequence>
3108                <xsd:attributeGroup ref="xml:specialAttrs"/>
3109             </xsd:complexType>
3110          </xsd:element>
3111          <xsd:element name="multicast" maxOccurs="1" minOccurs="0">
3112             <xsd:annotation>
3113                <xsd:documentation>
3114                   a list of pre configured queues to create
3115                </xsd:documentation>
3116             </xsd:annotation>
3117             <xsd:complexType>
3118                <xsd:sequence>
3119                   <xsd:element name="queue" type="queueType" maxOccurs="unbounded" minOccurs="0" />
3120                </xsd:sequence>
3121                <xsd:attributeGroup ref="xml:specialAttrs"/>
3122             </xsd:complexType>
3123          </xsd:element>
3124       </xsd:all>
3125       <xsd:attribute name="name" type="xsd:string" use="required">
3126          <xsd:annotation>
3127             <xsd:documentation>
3128                The address name to matches incoming message addresses
3129             </xsd:documentation>
3130          </xsd:annotation>
3131       </xsd:attribute>
3132       <xsd:attributeGroup ref="xml:specialAttrs"/>
3133    </xsd:complexType>
3134
3135    <xsd:complexType name="addressesType">
3136       <xsd:sequence>
3137          <xsd:element name="address" type="addressType" maxOccurs="unbounded" minOccurs="0"/>
3138       </xsd:sequence>
3139       <xsd:attributeGroup ref="xml:specialAttrs"/>
3140    </xsd:complexType>
3141
3142    <xsd:complexType name="wildcardType">
3143       <xsd:annotation>
3144          <xsd:documentation>
3145             Complex type element to configure wildcard address format.
3146          </xsd:documentation>
3147       </xsd:annotation>
3148       <xsd:all>
3149          <xsd:element maxOccurs="1" minOccurs="0" name="enabled" type="xsd:boolean">
3150             <xsd:annotation>
3151                <xsd:documentation>
3152                   deprecated please use routing-enabled.
3153                </xsd:documentation>
3154             </xsd:annotation>
3155          </xsd:element>
3156          <xsd:element maxOccurs="1" minOccurs="0" name="routing-enabled" type="xsd:boolean">
3157             <xsd:annotation>
3158                <xsd:documentation>
3159                   is wildcard addresses routing enabled.
3160                </xsd:documentation>
3161             </xsd:annotation>
3162          </xsd:element>
3163          <xsd:element maxOccurs="1" minOccurs="0" name="delimiter" type="xsd:string">
3164             <xsd:annotation>
3165                <xsd:documentation>
3166                   wildcard address parts delimiter. Default '.'
3167                </xsd:documentation>
3168             </xsd:annotation>
3169          </xsd:element>
3170          <xsd:element maxOccurs="1" minOccurs="0" name="any-words" type="xsd:string">
3171             <xsd:annotation>
3172                <xsd:documentation>
3173                   wildcard address any words character. Default '#'
3174                </xsd:documentation>
3175             </xsd:annotation>
3176          </xsd:element>
3177          <xsd:element maxOccurs="1" minOccurs="0" name="single-word" type="xsd:string">
3178             <xsd:annotation>
3179                <xsd:documentation>
3180                   wildcard address single word character. Default '*'
3181                </xsd:documentation>
3182             </xsd:annotation>
3183          </xsd:element>
3184       </xsd:all>
3185       <xsd:attributeGroup ref="xml:specialAttrs"/>
3186    </xsd:complexType>
3187
3188 </xsd:schema>