<?xml version='1.0'?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at
  
  http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<!-- NOTE: this file is autogenerated by Apache XBean -->

<xs:schema elementFormDefault='qualified'
           targetNamespace='http://activemq.apache.org/schema/core'
           xmlns:xs='http://www.w3.org/2001/XMLSchema'
           xmlns:tns='http://activemq.apache.org/schema/core'>

  <!-- element for type: org.apache.activemq.store.amq.AMQPersistenceAdapter -->
  <xs:element name='amqPersistenceAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An implementation of {@link PersistenceAdapter} designed for use with a
{@link Journal} and then check pointing asynchronously on a timeout with some
other long term persistent storage.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='asyncDataManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='referenceStoreAdapter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='archiveDataLogs' type='xs:boolean'/>
      <xs:attribute name='asyncDataManager' type='xs:string'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='checkpointInterval' type='xs:long'/>
      <xs:attribute name='cleanupInterval' type='xs:long'/>
      <xs:attribute name='directory' type='xs:string'/>
      <xs:attribute name='directoryArchive' type='xs:string'/>
      <xs:attribute name='disableLocking' type='xs:boolean'/>
      <xs:attribute name='indexBinSize' type='xs:string'/>
      <xs:attribute name='indexKeySize' type='xs:string'/>
      <xs:attribute name='indexPageSize' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            When set using XBean, you can use values such as: "20
mb", "1024 kb", or "1 gb"
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='maxCheckpointMessageAddSize' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            When set using XBean, you can use values such as: "20
mb", "1024 kb", or "1 gb"
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='maxFileLength' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            When set using XBean, you can use values such as: "20
mb", "1024 kb", or "1 gb"
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='maxReferenceFileLength' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            When set using XBean, you can use values such as: "20
mb", "1024 kb", or "1 gb"
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='persistentIndex' type='xs:boolean'/>
      <xs:attribute name='referenceStoreAdapter' type='xs:string'/>
      <xs:attribute name='syncOnWrite' type='xs:boolean'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useNio' type='xs:boolean'/>
      <xs:attribute name='wireFormat' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.amq.AMQPersistenceAdapterFactory -->
  <xs:element name='amqPersistenceAdapterFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An implementation of {@link PersistenceAdapterFactory}
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='referenceStoreAdapter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='dataDirectory' type='xs:string'/>
      <xs:attribute name='journalThreadPriority' type='xs:integer'/>
      <xs:attribute name='maxFileLength' type='xs:integer'/>
      <xs:attribute name='persistentIndex' type='xs:boolean'/>
      <xs:attribute name='referenceStoreAdapter' type='xs:string'/>
      <xs:attribute name='syncOnWrite' type='xs:boolean'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='useNio' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.AuthenticationUser -->
  <xs:element name='authenticationUser'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A helper object used to configure simple authentiaction plugin
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='groups' type='xs:string'/>
      <xs:attribute name='password' type='xs:string'/>
      <xs:attribute name='username' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.AuthorizationEntry -->
  <xs:element name='authorizationEntry'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents an entry in a {@link DefaultAuthorizationMap} for assigning
different operations (read, write, admin) of user roles to a specific
destination or a hierarchical wildcard area of destinations.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adminACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='readACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='writeACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='admin' type='xs:string'/>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='groupClass' type='xs:string'/>
      <xs:attribute name='queue' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='read' type='xs:string'/>
      <xs:attribute name='topic' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='write' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.DefaultAuthorizationMap -->
  <xs:element name='authorizationMap'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents a destination based configuration of policies so that individual
destinations or wildcard hierarchies of destinations can be configured using
different policies. Each entry in the map represents the authorization ACLs
for each operation.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='authorizationEntries' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the individual entries on the authorization map
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='defaultEntry' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:authorizationEntry'/>
              <xs:element ref='tns:tempDestinationAuthorizationEntry'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='entries' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              A helper method to allow the destination map to be populated from a
dependency injection framework such as Spring
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='tempDestinationAuthorizationEntry' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:tempDestinationAuthorizationEntry'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='defaultEntry' type='xs:string'/>
      <xs:attribute name='tempDestinationAuthorizationEntry' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.AuthorizationPlugin -->
  <xs:element name='authorizationPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An authorization plugin where each operation on a destination is checked
against an authorizationMap
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='map' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:authorizationMap'/>
              <xs:element ref='tns:lDAPAuthorizationMap'/>
              <xs:element ref='tns:simpleAuthorizationMap'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='map' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.AxionJDBCAdapter -->
  <xs:element name='axionJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Axion specific Adapter.

Axion does not seem to support ALTER statements or sub-selects. This means:
- We cannot auto upgrade the schema was we roll out new versions of ActiveMQ
- We cannot delete durable sub messages that have be acknowledged by all consumers.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.BlobJDBCAdapter -->
  <xs:element name='blobJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This JDBCAdapter inserts and extracts BLOB data using the getBlob()/setBlob()
operations. This is a little more involved since to insert a blob you have
to:

1: insert empty blob. 2: select the blob 3: finally update the blob with data
value.

The databases/JDBC drivers that use this adapter are:
<ul>
<li></li>
</ul>
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.xbean.XBeanBrokerService -->
  <xs:element name='broker'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An ActiveMQ Message Broker. It consists of a number of transport
connectors, network connectors and a bunch of properties which can be used to
configure the broker as its lazily created.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adminView' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Returns the administration view of the broker; used to create and destroy
resources such as queues and topics. Note this method returns null if JMX
is disabled.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='applicationContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerSystemUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='destinationFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='destinationInterceptors' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the destination interceptors to use
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:mirroredQueue'/>
              <xs:element ref='tns:virtualDestinationInterceptor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='destinationPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the destination specific policies available either for exact
destinations or for wildcard areas of destinations.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:policyMap'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='destinations' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the destinations which should be loaded/created on startup
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsBridgeConnectors' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='managementContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:managementContext'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='messageAuthorizationPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the policy used to decide if the current connection is authorized to
consume a given message
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='networkConnectorURIs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='networkConnectors' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the network connectors which this broker will use to connect to
other brokers in a federated network
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:ldapNetworkConnector'/>
              <xs:element ref='tns:multicastNetworkConnector'/>
              <xs:element ref='tns:networkConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='persistenceAdapter' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the persistence adaptor implementation to use for this broker
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:amqPersistenceAdapter'/>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <xs:element ref='tns:journaledJDBC'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='persistenceFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:amqPersistenceAdapterFactory'/>
              <xs:element ref='tns:journaledJDBC'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='persistenceTaskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='plugins' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets a number of broker plugins to install such as for security
authentication or authorization
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:authorizationPlugin'/>
              <xs:element ref='tns:connectionDotFilePlugin'/>
              <xs:element ref='tns:destinationDotFilePlugin'/>
              <xs:element ref='tns:jaasAuthenticationPlugin'/>
              <xs:element ref='tns:jaasCertificateAuthenticationPlugin'/>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:simpleAuthenticationPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerSystemUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='proxyConnectors' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the network connectors which this broker will use to connect to
other brokers in a federated network
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='regionBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='services' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the services associated with this broker such as a
{@link MasterConnector}
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:broker'/>
              <xs:element ref='tns:commandAgent'/>
              <xs:element ref='tns:forwardingBridge'/>
              <xs:element ref='tns:inboundQueueBridge'/>
              <xs:element ref='tns:inboundTopicBridge'/>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:element ref='tns:ldapNetworkConnector'/>
              <xs:element ref='tns:managementContext'/>
              <xs:element ref='tns:masterConnector'/>
              <xs:element ref='tns:memoryUsage'/>
              <xs:element ref='tns:multicastNetworkConnector'/>
              <xs:element ref='tns:networkConnector'/>
              <xs:element ref='tns:outboundQueueBridge'/>
              <xs:element ref='tns:outboundTopicBridge'/>
              <xs:element ref='tns:proxyConnector'/>
              <xs:element ref='tns:storeUsage'/>
              <xs:element ref='tns:systemUsage'/>
              <xs:element ref='tns:tempUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='systemUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='tempDataStore' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='transportConnectorURIs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='transportConnectors' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the transport connectors which this broker will listen on for new
clients
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:transportConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adminView' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Returns the administration view of the broker; used to create and destroy
resources such as queues and topics. Note this method returns null if JMX
is disabled.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='advisorySupport' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Allows the support of advisory messages to be disabled for performance
reasons.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='applicationContext' type='xs:string'/>
      <xs:attribute name='brokerName' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the name of this broker; which must be unique in the network
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='brokerObjectName' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMX ObjectName for this broker
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='cacheTempDestinations' type='xs:boolean'/>
      <xs:attribute name='consumerSystemUsage' type='xs:string'/>
      <xs:attribute name='consumerSystemUsagePortion' type='xs:integer'/>
      <xs:attribute name='dataDirectory' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the directory in which the data files will be stored by default for
the JDBC and Journal persistence adaptors.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dataDirectoryFile' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the directory in which the data files will be stored by default for
the JDBC and Journal persistence adaptors.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dedicatedTaskRunner' type='xs:boolean'/>
      <xs:attribute name='deleteAllMessagesOnStartup' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not all messages are deleted on startup - mostly only
useful for testing.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='destinationFactory' type='xs:string'/>
      <xs:attribute name='destinationPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination specific policies available either for exact
destinations or for wildcard areas of destinations.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='enableStatistics' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not the Broker's services enable statistics or not.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='keepDurableSubsActive' type='xs:boolean'/>
      <xs:attribute name='managementContext' type='xs:string'/>
      <xs:attribute name='masterConnectorURI' type='xs:string'/>
      <xs:attribute name='messageAuthorizationPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the policy used to decide if the current connection is authorized to
consume a given message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='monitorConnectionSplits' type='xs:boolean'/>
      <xs:attribute name='persistenceAdapter' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the persistence adaptor implementation to use for this broker
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='persistenceFactory' type='xs:string'/>
      <xs:attribute name='persistenceTaskRunnerFactory' type='xs:string'/>
      <xs:attribute name='persistenceThreadPriority' type='xs:integer'/>
      <xs:attribute name='persistent' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not persistence is enabled or disabled.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='populateJMSXUserID' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not the broker should populate the JMSXUserID header.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='producerSystemUsage' type='xs:string'/>
      <xs:attribute name='producerSystemUsagePortion' type='xs:integer'/>
      <xs:attribute name='regionBroker' type='xs:string'/>
      <xs:attribute name='shutdownOnMasterFailure' type='xs:boolean'/>
      <xs:attribute name='splitSystemUsageForProducersConsumers' type='xs:boolean'/>
      <xs:attribute name='start' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not the broker is started along with the ApplicationContext it is defined within.
Normally you would want the broker to start up along with the ApplicationContext but sometimes when working
with JUnit tests you may wish to start and stop the broker explicitly yourself.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='supportFailOver' type='xs:boolean'/>
      <xs:attribute name='systemUsage' type='xs:string'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='taskRunnerPriority' type='xs:integer'/>
      <xs:attribute name='tempDataStore' type='xs:string'/>
      <xs:attribute name='timeBeforePurgeTempDestinations' type='xs:integer'/>
      <xs:attribute name='tmpDataDirectory' type='xs:string'/>
      <xs:attribute name='useJmx' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not the Broker's services should be exposed into JMX or
not.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useLocalHostBrokerName' type='xs:boolean'/>
      <xs:attribute name='useLoggingForShutdownErrors' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not we should use commons-logging when reporting errors
when shutting down the broker
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useMirroredQueues' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not <a
href="http://activemq.apache.org/mirrored-queues.html">Mirrored
Queues</a> should be supported by default if they have not been
explicitly configured.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useShutdownHook' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not we should use a shutdown handler to close down the
broker cleanly if the JVM is terminated. It is recommended you leave this
enabled.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useVirtualTopics' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not <a
href="http://activemq.apache.org/virtual-destinations.html">Virtual
Topics</a> should be supported by default if they have not been
explicitly configured.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='vmConnectorURI' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.BytesJDBCAdapter -->
  <xs:element name='bytesJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This JDBCAdapter inserts and extracts BLOB data using the
setBytes()/getBytes() operations. The databases/JDBC drivers that use this
adapter are:
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.util.CommandAgent -->
  <xs:element name='commandAgent'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An agent which listens to commands on a JMS destination
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='commandDestination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='connection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='connectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:connectionFactory'/>
              <xs:element ref='tns:xaConnectionFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerUrl' type='xs:string'/>
      <xs:attribute name='commandDestination' type='xs:string'/>
      <xs:attribute name='connection' type='xs:string'/>
      <xs:attribute name='connectionFactory' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.CompositeDemandForwardingBridge -->
  <xs:element name='compositeDemandForwardingBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A demand forwarding bridge which works with multicast style transports where
a single Transport could be communicating with multiple remote brokers
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='configuration' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:ldapNetworkConnector'/>
              <xs:element ref='tns:multicastNetworkConnector'/>
              <xs:element ref='tns:networkConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='durableDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='dynamicallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='excludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='localBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='networkBridgeListener' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='staticallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='configuration' type='xs:string'/>
      <xs:attribute name='createdByDuplex' type='xs:boolean'/>
      <xs:attribute name='localBroker' type='xs:string'/>
      <xs:attribute name='networkBridgeListener' type='xs:string'/>
      <xs:attribute name='remoteBroker' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.virtual.CompositeQueue -->
  <xs:element name='compositeQueue'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents a virtual queue which forwards to a number of other destinations.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='forwardTo' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the list of destinations to forward to
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='copyMessage' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether a copy of the message will be sent to each destination.
Defaults to true so that the forward destination is set as the
destination of the message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='forwardOnly' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets if the virtual destination is forward only (and so there is no
physical queue to match the virtual queue) or if there is also a physical
queue with the same name).
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='name' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the name of this composite destination
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.virtual.CompositeTopic -->
  <xs:element name='compositeTopic'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents a virtual topic which forwards to a number of other destinations.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='forwardTo' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the list of destinations to forward to
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='copyMessage' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether a copy of the message will be sent to each destination.
Defaults to true so that the forward destination is set as the
destination of the message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='forwardOnly' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets if the virtual destination is forward only (and so there is no
physical queue to match the virtual queue) or if there is also a physical
queue with the same name).
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='name' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the name of this composite destination
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.view.ConnectionDotFilePlugin -->
  <xs:element name='connectionDotFilePlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A <a href="http://www.graphviz.org/">DOT</a> file creator plugin which
creates a DOT file showing the current connections
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='file' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination file name to create the destination diagram
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.spring.ActiveMQConnectionFactory -->
  <xs:element name='connectionFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A <a href="http://www.springframework.org/">Spring</a> enhanced connection
factory which will automatically use the Spring bean name as the clientIDPrefix property
so that connections created have client IDs related to your Spring.xml file for
easier comprehension from <a href="http://activemq.apache.org/jmx.html">JMX</a>.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='blobTransferPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the policy used to describe how out-of-band BLOBs (Binary Large
OBjects) are transferred from producers to brokers to consumers
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='clientIdGenerator' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='prefetchPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the <a
href="http://activemq.apache.org/what-is-the-prefetch-limit-for.html">prefetch
policy</a> for consumers created by this connection.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:prefetchPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='properties' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Get the properties from this instance for storing in JNDI
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='redeliveryPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the global redelivery policy to be used when a message is delivered
but the session is rolled back
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:redeliveryPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='transformer' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the transformer used to transform messages before they are sent on
to the JMS bus or when they are received from the bus but before they are
delivered to the JMS client
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='transportListener' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Allows a listener to be configured on the ConnectionFactory so that when this factory is used
with frameworks which don't expose the Connection such as Spring JmsTemplate, you can still register
a transport listener.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='alwaysSessionAsync' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            If this flag is set then a separate thread is not used for dispatching
messages for each Session in the Connection. However, a separate thread
is always used if there is more than one session, or the session isn't in
auto acknowledge or duplicates ok mode
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='alwaysSyncSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Set true if always require messages to be sync sent
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='beanName' type='xs:string'/>
      <xs:attribute name='blobTransferPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the policy used to describe how out-of-band BLOBs (Binary Large
OBjects) are transferred from producers to brokers to consumers
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='brokerURL' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the <a
href="http://activemq.apache.org/configuring-transports.html">connection
URL</a> used to connect to the ActiveMQ broker.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientID' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS clientID to use for the created connection. Note that this
can only be used by one connection at once so generally its a better idea
to set the clientID on a Connection
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientIDPrefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix used by autogenerated JMS Client ID values which are used
if the JMS client does not explicitly specify on.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientIdGenerator' type='xs:string'/>
      <xs:attribute name='closeTimeout' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the timeout before a close is considered complete. Normally a
close() on a connection waits for confirmation from the broker; this
allows that operation to timeout to save the client hanging if there is
no broker
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='copyMessageOnSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Should a JMS message be copied to a new JMS Message object as part of the
send() method in JMS. This is enabled by default to be compliant with the
JMS specification. You can disable it if you do not mutate JMS messages
after they are sent for a performance boost
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='disableTimeStampsByDefault' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not timestamps on messages should be disabled or not. If
you disable them it adds a small performance boost.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dispatchAsync' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the default setting of whether or not consumers have
their messages <a
href="http://activemq.apache.org/consumer-dispatch-async.html">dispatched
synchronously or asynchronously by the broker</a>. For non-durable
topics for example we typically dispatch synchronously by default to
minimize context switches which boost performance. However sometimes its
better to go slower to ensure that a single blocked consumer socket does
not block delivery to other consumers.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='exclusiveConsumer' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables whether or not queue consumers should be exclusive or
not for example to preserve ordering when not using <a
href="http://activemq.apache.org/message-groups.html">Message Groups</a>
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='nestedMapAndListEnabled' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables/disables whether or not Message properties and MapMessage entries
support <a
href="http://activemq.apache.org/structured-message-properties-and-mapmessages.html">Nested
Structures</a> of Map and List objects
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='objectMessageSerializationDefered' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            When an object is set on an ObjectMessage, the JMS spec requires the
object to be serialized by that set method. Enabling this flag causes the
object to not get serialized. The object may subsequently get serialized
if the message needs to be sent over a socket or stored to disk.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='optimizeAcknowledge' type='xs:boolean'/>
      <xs:attribute name='optimizedMessageDispatch' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            If this flag is set then an larger prefetch limit is used - only
applicable for durable topic subscribers.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='password' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS password used for connections created from this factory
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='prefetchPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the <a
href="http://activemq.apache.org/what-is-the-prefetch-limit-for.html">prefetch
policy</a> for consumers created by this connection.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='producerWindowSize' type='xs:integer'/>
      <xs:attribute name='properties' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Get the properties from this instance for storing in JNDI
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='redeliveryPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the global redelivery policy to be used when a message is delivered
but the session is rolled back
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='sendTimeout' type='xs:integer'/>
      <xs:attribute name='statsEnabled' type='xs:boolean'/>
      <xs:attribute name='transformer' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the transformer used to transform messages before they are sent on
to the JMS bus or when they are received from the bus but before they are
delivered to the JMS client
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='transportListener' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Allows a listener to be configured on the ConnectionFactory so that when this factory is used
with frameworks which don't expose the Connection such as Spring JmsTemplate, you can still register
a transport listener.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useAsyncSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Forces the use of <a
href="http://activemq.apache.org/async-sends.html">Async Sends</a> which
adds a massive performance boost; but means that the send() method will
return immediately whether the message has been sent or not which could
lead to message loss.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useBeanNameAsClientIdPrefix' type='xs:boolean'/>
      <xs:attribute name='useCompression' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables the use of compression of the message bodies
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useRetroactiveConsumer' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not retroactive consumers are enabled. Retroactive
consumers allow non-durable topic subscribers to receive old messages
that were published before the non-durable subscriber started.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='userName' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS userName used by connections created by this factory
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='warnAboutUnstartedConnectionTimeout' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables the timeout from a connection creation to when a warning is
generated if the connection is not properly started via
{@link Connection#start()} and a message is received by a consumer. It is
a very common gotcha to forget to <a
href="http://activemq.apache.org/i-am-not-receiving-any-messages-what-is-wrong.html">start
the connection</a> so this option makes the default case to create a
warning if the user forgets. To disable the warning just set the value to <
0 (say -1).
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='watchTopicAdvisories' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.ConstantPendingMessageLimitStrategy -->
  <xs:element name='constantPendingMessageLimitStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This PendingMessageLimitStrategy is configured to a constant value for all subscriptions.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='limit' type='xs:integer'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.DB2JDBCAdapter -->
  <xs:element name='db2JDBCAdapter'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.DefaultJDBCAdapter -->
  <xs:element name='defaultJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Implements all the default JDBC operations that are used by the
JDBCPersistenceAdapter. <p/> sub-classing is encouraged to override the
default implementation of methods to account for differences in JDBC Driver
implementations. <p/> The JDBCAdapter inserts and extracts BLOB data using
the getBytes()/setBytes() operations. <p/> The databases/JDBC drivers that
use this adapter are:
<ul>
<li></li>
</ul>
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.usage.DefaultUsageCapacity -->
  <xs:element name='defaultUsageCapacity'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Identify if a limit has been reached
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='limit' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.DemandForwardingBridge -->
  <xs:element name='demandForwardingBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Forwards messages from the local broker to the remote broker based on demand.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='configuration' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:ldapNetworkConnector'/>
              <xs:element ref='tns:multicastNetworkConnector'/>
              <xs:element ref='tns:networkConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='durableDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='dynamicallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='excludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='localBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='networkBridgeListener' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='staticallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='configuration' type='xs:string'/>
      <xs:attribute name='createdByDuplex' type='xs:boolean'/>
      <xs:attribute name='localBroker' type='xs:string'/>
      <xs:attribute name='networkBridgeListener' type='xs:string'/>
      <xs:attribute name='remoteBroker' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.view.DestinationDotFilePlugin -->
  <xs:element name='destinationDotFilePlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A <a href="http://www.graphviz.org/">DOT</a>
file creator plugin which creates a DOT file showing the current topic & queue hierarchies.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='file' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination file name to create the destination diagram
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.filter.DefaultDestinationMapEntry -->
  <xs:element name='destinationEntry'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A default entry in a DestinationMap which holds a single value.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='value' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='queue' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='topic' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='value' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.FilePendingSubscriberMessageStoragePolicy -->
  <xs:element name='fileCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.FilePendingDurableSubscriberMessageStoragePolicy -->
  <xs:element name='fileDurableSubscriberCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages for durable subscribers
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.FilePendingQueueMessageStoragePolicy -->
  <xs:element name='fileQueueCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.virtual.FilteredDestination -->
  <xs:element name='filteredDestination'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents a destination which is filtered using some predicate such as a selector
so that messages are only dispatched to the destination if they match the filter.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              The destination to send messages to if they match the filter
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='filter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='destination' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            The destination to send messages to if they match the filter
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='filter' type='xs:string'/>
      <xs:attribute name='queue' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination property to the given queue name
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='selector' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS selector used to filter messages before forwarding them to this destination
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='topic' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the destination property to the given topic name
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.FixedCountSubscriptionRecoveryPolicy -->
  <xs:element name='fixedCountSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This implementation of {@link SubscriptionRecoveryPolicy} will keep a fixed
count of last messages.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='maximumSize' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum number of messages that this destination will hold
around in RAM
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.FixedSizedSubscriptionRecoveryPolicy -->
  <xs:element name='fixedSizedSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This implementation of {@link SubscriptionRecoveryPolicy} will keep a fixed
amount of memory available in RAM for message history which is evicted in
time order.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='buffer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='buffer' type='xs:string'/>
      <xs:attribute name='maximumSize' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum amount of RAM in bytes that this buffer can hold in RAM
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useSharedBuffer' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.ForwardingBridge -->
  <xs:element name='forwardingBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Forwards all messages from the local broker to the remote broker.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='localBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='networkBridgeFailedListener' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteBroker' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='clientId' type='xs:string'/>
      <xs:attribute name='destinationFilter' type='xs:string'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='localBroker' type='xs:string'/>
      <xs:attribute name='networkBridgeFailedListener' type='xs:string'/>
      <xs:attribute name='prefetchSize' type='xs:integer'/>
      <xs:attribute name='remoteBroker' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.ImageBasedJDBCAdaptor -->
  <xs:element name='imageBasedJDBCAdaptor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Provides JDBCAdapter since that uses
IMAGE datatype to hold binary data.

The databases/JDBC drivers that use this adapter are:
<ul>
<li>Sybase</li>
<li>MS SQL</li>
</ul>
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.InboundQueueBridge -->
  <xs:element name='inboundQueueBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Create an Inbound Queue Bridge
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='consumer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerQueue' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsConnector' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerQueue' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='consumer' type='xs:string'/>
      <xs:attribute name='consumerConnection' type='xs:string'/>
      <xs:attribute name='consumerQueue' type='xs:string'/>
      <xs:attribute name='doHandleReplyTo' type='xs:boolean'/>
      <xs:attribute name='inboundQueueName' type='xs:string'/>
      <xs:attribute name='jmsConnector' type='xs:string'/>
      <xs:attribute name='jmsMessageConvertor' type='xs:string'/>
      <xs:attribute name='localQueueName' type='xs:string'/>
      <xs:attribute name='maximumRetries' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum number of retries if a send fails before closing the
bridge
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='producerConnection' type='xs:string'/>
      <xs:attribute name='producerQueue' type='xs:string'/>
      <xs:attribute name='selector' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.InboundTopicBridge -->
  <xs:element name='inboundTopicBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Create an Inbound Topic Bridge
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='consumer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerTopic' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsConnector' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerTopic' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='consumer' type='xs:string'/>
      <xs:attribute name='consumerConnection' type='xs:string'/>
      <xs:attribute name='consumerName' type='xs:string'/>
      <xs:attribute name='consumerTopic' type='xs:string'/>
      <xs:attribute name='doHandleReplyTo' type='xs:boolean'/>
      <xs:attribute name='inboundTopicName' type='xs:string'/>
      <xs:attribute name='jmsConnector' type='xs:string'/>
      <xs:attribute name='jmsMessageConvertor' type='xs:string'/>
      <xs:attribute name='localTopicName' type='xs:string'/>
      <xs:attribute name='maximumRetries' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum number of retries if a send fails before closing the
bridge
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='producerConnection' type='xs:string'/>
      <xs:attribute name='producerTopic' type='xs:string'/>
      <xs:attribute name='selector' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.IndividualDeadLetterStrategy -->
  <xs:element name='individualDeadLetterStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A {@link DeadLetterStrategy} where each destination has its own individual
DLQ using the subject naming hierarchy.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='processExpired' type='xs:boolean'/>
      <xs:attribute name='processNonPersistent' type='xs:boolean'/>
      <xs:attribute name='queuePrefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix to use for all dead letter queues for queue messages
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='topicPrefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix to use for all dead letter queues for topic messages
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useQueueForQueueMessages' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether a queue or topic should be used for queue messages sent to a
DLQ. The default is to use a Queue
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useQueueForTopicMessages' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether a queue or topic should be used for topic messages sent to a
DLQ. The default is to use a Queue
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.InformixJDBCAdapter -->
  <xs:element name='informixJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        JDBC Adapter for Informix database.
Because Informix database restricts length of composite primary keys, length of
<i>container name</i> field and <i>subscription id</i> field must be reduced to 150 characters.
Therefore be sure not to use longer names for container name and subscription id than 150 characters.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.JaasAuthenticationPlugin -->
  <xs:element name='jaasAuthenticationPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Provides a JAAS based authentication plugin
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='configuration' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JAAS configuration domain name used
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='discoverLoginConfig' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the auto-discovery of the login.config file for JAAS to initialize itself.
This flag is enabled by default such that if the <b>java.security.auth.login.config</b> system property
is not defined then it is set to the location of the <b>login.config</b> file on the classpath.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.JaasCertificateAuthenticationPlugin -->
  <xs:element name='jaasCertificateAuthenticationPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Provides a JAAS based SSL certificate authentication plugin
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='configuration' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JAAS configuration domain name used
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='discoverLoginConfig' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the auto-discovery of the login.config file for JAAS to initialize itself.
This flag is enabled by default such that if the <b>java.security.auth.login.config</b> system property
is not defined then it is set to the location of the <b>login.config</b> file on the classpath.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.JDBCPersistenceAdapter -->
  <xs:element name='jdbcPersistenceAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A {@link PersistenceAdapter} implementation using JDBC for persistence
storage.

This persistence adapter will correctly remember prepared XA transactions,
but it will not keep track of local transaction commits so that operations
performed against the Message store are done as a single uow.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adapter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:axionJDBCAdapter'/>
              <xs:element ref='tns:blobJDBCAdapter'/>
              <xs:element ref='tns:bytesJDBCAdapter'/>
              <xs:element ref='tns:db2JDBCAdapter'/>
              <xs:element ref='tns:defaultJDBCAdapter'/>
              <xs:element ref='tns:imageBasedJDBCAdaptor'/>
              <xs:element ref='tns:informixJDBCAdapter'/>
              <xs:element ref='tns:oracleJDBCAdapter'/>
              <xs:element ref='tns:streamJDBCAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='dataSource' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='databaseLocker' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the database locker strategy to use to lock the database on startup
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='ds' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='scheduledThreadPoolExecutor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adapter' type='xs:string'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='cleanupPeriod' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the number of milliseconds until the database is attempted to be
cleaned up for durable topics
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='createTablesOnStartup' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not tables are created on startup
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dataDirectory' type='xs:string'/>
      <xs:attribute name='dataDirectoryFile' type='xs:string'/>
      <xs:attribute name='dataSource' type='xs:string'/>
      <xs:attribute name='databaseLocker' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the database locker strategy to use to lock the database on startup
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='directory' type='xs:string'/>
      <xs:attribute name='ds' type='xs:string'/>
      <xs:attribute name='lockKeepAlivePeriod' type='xs:long'/>
      <xs:attribute name='scheduledThreadPoolExecutor' type='xs:string'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useDatabaseLock' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not an exclusive database lock should be used to enable
JDBC Master/Slave. Enabled by default.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='wireFormat' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.JmsQueueConnector -->
  <xs:element name='jmsQueueConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Bridge to other JMS Queue providers
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              One way to configure the local connection - this is called by The
BrokerService when the Connector is embedded
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='inboundMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='inboundQueueBridges' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:inboundQueueBridge'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='localQueueConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='localQueueConnectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:connectionFactory'/>
              <xs:element ref='tns:xaConnectionFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundQueueBridges' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:outboundQueueBridge'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundQueueConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundQueueConnectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:connectionFactory'/>
              <xs:element ref='tns:xaConnectionFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerService' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            One way to configure the local connection - this is called by The
BrokerService when the Connector is embedded
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='inboundMessageConvertor' type='xs:string'/>
      <xs:attribute name='jndiLocalTemplate' type='xs:string'/>
      <xs:attribute name='jndiOutboundTemplate' type='xs:string'/>
      <xs:attribute name='localClientId' type='xs:string'/>
      <xs:attribute name='localConnectionFactoryName' type='xs:string'/>
      <xs:attribute name='localPassword' type='xs:string'/>
      <xs:attribute name='localQueueConnection' type='xs:string'/>
      <xs:attribute name='localQueueConnectionFactory' type='xs:string'/>
      <xs:attribute name='localUsername' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='outboundClientId' type='xs:string'/>
      <xs:attribute name='outboundMessageConvertor' type='xs:string'/>
      <xs:attribute name='outboundPassword' type='xs:string'/>
      <xs:attribute name='outboundQueueConnection' type='xs:string'/>
      <xs:attribute name='outboundQueueConnectionFactory' type='xs:string'/>
      <xs:attribute name='outboundQueueConnectionFactoryName' type='xs:string'/>
      <xs:attribute name='outboundUsername' type='xs:string'/>
      <xs:attribute name='replyToDestinationCacheSize' type='xs:integer'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.JmsTopicConnector -->
  <xs:element name='jmsTopicConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Bridge to other JMS Topic providers
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              One way to configure the local connection - this is called by The
BrokerService when the Connector is embedded
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='inboundMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='inboundTopicBridges' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:inboundTopicBridge'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='localTopicConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='localTopicConnectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:connectionFactory'/>
              <xs:element ref='tns:xaConnectionFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundTopicBridges' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:outboundTopicBridge'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundTopicConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='outboundTopicConnectionFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:connectionFactory'/>
              <xs:element ref='tns:xaConnectionFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerService' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            One way to configure the local connection - this is called by The
BrokerService when the Connector is embedded
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='inboundMessageConvertor' type='xs:string'/>
      <xs:attribute name='jndiLocalTemplate' type='xs:string'/>
      <xs:attribute name='jndiOutboundTemplate' type='xs:string'/>
      <xs:attribute name='localClientId' type='xs:string'/>
      <xs:attribute name='localConnectionFactoryName' type='xs:string'/>
      <xs:attribute name='localPassword' type='xs:string'/>
      <xs:attribute name='localTopicConnection' type='xs:string'/>
      <xs:attribute name='localTopicConnectionFactory' type='xs:string'/>
      <xs:attribute name='localUsername' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='outboundClientId' type='xs:string'/>
      <xs:attribute name='outboundMessageConvertor' type='xs:string'/>
      <xs:attribute name='outboundPassword' type='xs:string'/>
      <xs:attribute name='outboundTopicConnection' type='xs:string'/>
      <xs:attribute name='outboundTopicConnectionFactory' type='xs:string'/>
      <xs:attribute name='outboundTopicConnectionFactoryName' type='xs:string'/>
      <xs:attribute name='outboundUsername' type='xs:string'/>
      <xs:attribute name='replyToDestinationCacheSize' type='xs:integer'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.journal.JournalPersistenceAdapter -->
  <xs:element name='journalPersistenceAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An implementation of {@link PersistenceAdapter} designed for use with a
{@link Journal} and then check pointing asynchronously on a timeout with some
other long term persistent storage.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='journal' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='longTermPersistence' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:amqPersistenceAdapter'/>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='directory' type='xs:string'/>
      <xs:attribute name='journal' type='xs:string'/>
      <xs:attribute name='longTermPersistence' type='xs:string'/>
      <xs:attribute name='maxCheckpointMessageAddSize' type='xs:integer'/>
      <xs:attribute name='maxCheckpointWorkers' type='xs:integer'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.PersistenceAdapterFactoryBean -->
  <xs:element name='journaledJDBC'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Creates a default persistence model using the Journal and JDBC
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adapter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:axionJDBCAdapter'/>
              <xs:element ref='tns:blobJDBCAdapter'/>
              <xs:element ref='tns:bytesJDBCAdapter'/>
              <xs:element ref='tns:db2JDBCAdapter'/>
              <xs:element ref='tns:defaultJDBCAdapter'/>
              <xs:element ref='tns:imageBasedJDBCAdaptor'/>
              <xs:element ref='tns:informixJDBCAdapter'/>
              <xs:element ref='tns:oracleJDBCAdapter'/>
              <xs:element ref='tns:streamJDBCAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='dataSource' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='jdbcAdapter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='journal' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adapter' type='xs:string'/>
      <xs:attribute name='createTablesOnStartup' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not tables are created on startup
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dataDirectory' type='xs:string'/>
      <xs:attribute name='dataDirectoryFile' type='xs:string'/>
      <xs:attribute name='dataSource' type='xs:string'/>
      <xs:attribute name='jdbcAdapter' type='xs:string'/>
      <xs:attribute name='journal' type='xs:string'/>
      <xs:attribute name='journalArchiveDirectory' type='xs:string'/>
      <xs:attribute name='journalLogFileSize' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the size of the journal log files
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='journalLogFiles' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the number of journal log files to use
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='journalThreadPriority' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the thread priority of the journal thread
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='useDatabaseLock' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not an exclusive database lock should be used to enable
JDBC Master/Slave. Enabled by default.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useJournal' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the use of the journal. The default is to use the
journal
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useQuickJournal' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the use of quick journal, which keeps messages in the
journal and just stores a reference to the messages in JDBC. Defaults to
false so that messages actually reside long term in the JDBC database.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.kahadaptor.KahaPersistenceAdapter -->
  <xs:element name='kahaPersistenceAdapter'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='size' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='directory' type='xs:string'/>
      <xs:attribute name='maxDataFileLength' type='xs:long'/>
      <xs:attribute name='persistentIndex' type='xs:boolean'/>
      <xs:attribute name='size' type='xs:string'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.LDAPAuthorizationMap -->
  <xs:element name='lDAPAuthorizationMap'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An {@link AuthorizationMap} which uses LDAP
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='context' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='options' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='queueSearchMatchingFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='topicSearchMatchingFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adminAttribute' type='xs:string'/>
      <xs:attribute name='adminBase' type='xs:string'/>
      <xs:attribute name='authentication' type='xs:string'/>
      <xs:attribute name='connectionPassword' type='xs:string'/>
      <xs:attribute name='connectionProtocol' type='xs:string'/>
      <xs:attribute name='connectionURL' type='xs:string'/>
      <xs:attribute name='connectionUsername' type='xs:string'/>
      <xs:attribute name='context' type='xs:string'/>
      <xs:attribute name='initialContextFactory' type='xs:string'/>
      <xs:attribute name='options' type='xs:string'/>
      <xs:attribute name='queueSearchMatchingFormat' type='xs:string'/>
      <xs:attribute name='queueSearchSubtreeBool' type='xs:boolean'/>
      <xs:attribute name='readAttribute' type='xs:string'/>
      <xs:attribute name='readBase' type='xs:string'/>
      <xs:attribute name='topicSearchMatchingFormat' type='xs:string'/>
      <xs:attribute name='topicSearchSubtreeBool' type='xs:boolean'/>
      <xs:attribute name='writeAttribute' type='xs:string'/>
      <xs:attribute name='writeBase' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.LastImageSubscriptionRecoveryPolicy -->
  <xs:element name='lastImageSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This implementation of {@link SubscriptionRecoveryPolicy} will only keep the
last message.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.LdapNetworkConnector -->
  <xs:element name='ldapNetworkConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        class to create dynamic network connectors listed in an directory
server using the LDAP v3 protocol as defined in RFC 2251, the
entries listed in the directory server must implement the ipHost
and ipService objectClasses as defined in RFC 2307.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='connectionFilter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='durableDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='dynamicallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='excludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='staticallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='anonymousAuthentication' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets LDAP anonymous authentication access credentials
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='base' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the base LDAP dn used for lookup operations
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='bridgeTempDestinations' type='xs:boolean'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='conduitSubscriptions' type='xs:boolean'/>
      <xs:attribute name='connectionFilter' type='xs:string'/>
      <xs:attribute name='decreaseNetworkConsumerPriority' type='xs:boolean'/>
      <xs:attribute name='destinationFilter' type='xs:string'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='duplex' type='xs:boolean'/>
      <xs:attribute name='dynamicOnly' type='xs:boolean'/>
      <xs:attribute name='localUri' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='networkTTL' type='xs:integer'/>
      <xs:attribute name='objectName' type='xs:string'/>
      <xs:attribute name='password' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the LDAP password for access credentials
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='prefetchSize' type='xs:integer'/>
      <xs:attribute name='searchEventListener' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            enables/disable a persistent search to the LDAP server as defined
in draft-ietf-ldapext-psearch-03.txt (2.16.840.1.113730.3.4.3)
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='searchFilter' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the LDAP search filter as defined in RFC 2254
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='searchScope' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the LDAP search scope
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='uri' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            returns the next URI from the configured list
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='user' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            sets the LDAP user for access credentials
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='userName' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.util.LoggingBrokerPlugin -->
  <xs:element name='loggingBrokerPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A simple Broker interceptor which allows you to enable/disable logging.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='ackLog' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='adminConnectionContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='log' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='next' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='sendLog' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='ackLog' type='xs:string'/>
      <xs:attribute name='adminConnectionContext' type='xs:string'/>
      <xs:attribute name='log' type='xs:string'/>
      <xs:attribute name='next' type='xs:string'/>
      <xs:attribute name='sendLog' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.jmx.ManagementContext -->
  <xs:element name='managementContext'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Flow provides different dispatch policies within the NMR
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='MBeanServer' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Get the MBeanServer
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='server' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='MBeanServer' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Get the MBeanServer
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='connectorPath' type='xs:string'/>
      <xs:attribute name='connectorPort' type='xs:integer'/>
      <xs:attribute name='createConnector' type='xs:boolean'/>
      <xs:attribute name='createMBeanServer' type='xs:boolean'/>
      <xs:attribute name='findTigerMbeanServer' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables/disables the searching for the Java 5 platform MBeanServer
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='jmxDomainName' type='xs:string'/>
      <xs:attribute name='rmiServerPort' type='xs:integer'/>
      <xs:attribute name='server' type='xs:string'/>
      <xs:attribute name='useMBeanServer' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.ft.MasterConnector -->
  <xs:element name='masterConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Connects a Slave Broker to a Master when using <a
href="http://activemq.apache.org/masterslave.html">Master Slave</a> for High
Availability of messages.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='localURI' type='xs:string'/>
      <xs:attribute name='password' type='xs:string'/>
      <xs:attribute name='remoteURI' type='xs:string'/>
      <xs:attribute name='remoteUri' type='xs:string'/>
      <xs:attribute name='userName' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.memory.MemoryPersistenceAdapter -->
  <xs:element name='memoryPersistenceAdapter'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='usageManager' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='directory' type='xs:string'/>
      <xs:attribute name='usageManager' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.usage.MemoryUsage -->
  <xs:element name='memoryUsage'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Used to keep track of how much of something is being used so that a
productive working set usage can be controlled. Main use case is manage
memory usage.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='limiter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:defaultUsageCapacity'/>
              <xs:element ref='tns:usageCapacity'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='parent' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='limit' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the memory limit in bytes. Setting the limit in bytes will set the
usagePortion to 0 since the UsageManager is not going to be portion based
off the parent. When set using XBean, you can use values such as: "20
mb", "1024 kb", or "1 gb"
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='limiter' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='parent' type='xs:string'/>
      <xs:attribute name='percentUsage' type='xs:integer'/>
      <xs:attribute name='percentUsageMinDelta' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the minimum number of percentage points the usage has to change
before a UsageListener event is fired by the manager.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='pollingTime' type='xs:integer'/>
      <xs:attribute name='portion' type='xs:float'/>
      <xs:attribute name='usage' type='xs:long'/>
      <xs:attribute name='usagePortion' type='xs:float'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.group.MessageGroupHashBucketFactory -->
  <xs:element name='messageGroupHashBucketFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A factory to create instances of {@link SimpleMessageGroupMap} when
implementing the <a
href="http://activemq.apache.org/message-groups.html">Message
Groups</a> functionality.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='bucketCount' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the number of hash buckets to use for the message group
functionality. This is only applicable to using message groups to
parallelize processing of a queue while preserving order across an
individual JMSXGroupID header value. This value sets the number of hash
buckets that will be used (i.e. the maximum possible concurrency).
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.virtual.MirroredQueue -->
  <xs:element name='mirroredQueue'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Creates <a href="http://activemq.org/site/mirrored-queues.html">Mirrored
Queue</a> using a prefix and postfix to define the topic name on which to mirror the queue to.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='copyMessage' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether a copy of the message will be sent to each destination.
Defaults to true so that the forward destination is set as the
destination of the message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='postfix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets any postix used to identify the queue consumers
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='prefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix wildcard used to identify the queue consumers for a given
topic
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.MulticastNetworkConnector -->
  <xs:element name='multicastNetworkConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A network connector which uses some kind of multicast-like transport that
communicates with potentially many remote brokers over a single logical
{@link Transport} instance such as when using multicast.

This implementation does not depend on multicast at all; any other group
based transport could be used.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='bridge' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:compositeDemandForwardingBridge'/>
              <xs:element ref='tns:demandForwardingBridge'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='connectionFilter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='durableDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='dynamicallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='excludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='localTransport' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='remoteTransport' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the remote transport implementation
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='staticallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='bridge' type='xs:string'/>
      <xs:attribute name='bridgeTempDestinations' type='xs:boolean'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='conduitSubscriptions' type='xs:boolean'/>
      <xs:attribute name='connectionFilter' type='xs:string'/>
      <xs:attribute name='decreaseNetworkConsumerPriority' type='xs:boolean'/>
      <xs:attribute name='destinationFilter' type='xs:string'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='duplex' type='xs:boolean'/>
      <xs:attribute name='dynamicOnly' type='xs:boolean'/>
      <xs:attribute name='localTransport' type='xs:string'/>
      <xs:attribute name='localUri' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='networkTTL' type='xs:integer'/>
      <xs:attribute name='objectName' type='xs:string'/>
      <xs:attribute name='password' type='xs:string'/>
      <xs:attribute name='prefetchSize' type='xs:integer'/>
      <xs:attribute name='remoteTransport' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the remote transport implementation
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='remoteURI' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the remote transport URI to some group transport like
<code>multicast://address:port</code>
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='userName' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.util.MulticastTraceBrokerPlugin -->
  <xs:element name='multicastTraceBrokerPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Broker interceptor which allows you to trace all operations to a Multicast
socket.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='address' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='adminConnectionContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='next' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormatFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='address' type='xs:string'/>
      <xs:attribute name='adminConnectionContext' type='xs:string'/>
      <xs:attribute name='broadcast' type='xs:boolean'/>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='maxTraceDatagramSize' type='xs:integer'/>
      <xs:attribute name='next' type='xs:string'/>
      <xs:attribute name='timeToLive' type='xs:integer'/>
      <xs:attribute name='wireFormat' type='xs:string'/>
      <xs:attribute name='wireFormatFactory' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.DiscoveryNetworkConnector -->
  <xs:element name='networkConnector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A network connector which uses a discovery agent to detect the remote brokers
available and setup a connection to each available remote broker
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='connectionFilter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='discoveryAgent' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='durableDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='dynamicallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='excludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='staticallyIncludedDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='bridgeTempDestinations' type='xs:boolean'/>
      <xs:attribute name='brokerName' type='xs:string'/>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='conduitSubscriptions' type='xs:boolean'/>
      <xs:attribute name='connectionFilter' type='xs:string'/>
      <xs:attribute name='decreaseNetworkConsumerPriority' type='xs:boolean'/>
      <xs:attribute name='destinationFilter' type='xs:string'/>
      <xs:attribute name='discoveryAgent' type='xs:string'/>
      <xs:attribute name='discoveryURI' type='xs:string'/>
      <xs:attribute name='dispatchAsync' type='xs:boolean'/>
      <xs:attribute name='duplex' type='xs:boolean'/>
      <xs:attribute name='dynamicOnly' type='xs:boolean'/>
      <xs:attribute name='localUri' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='networkTTL' type='xs:integer'/>
      <xs:attribute name='objectName' type='xs:string'/>
      <xs:attribute name='password' type='xs:string'/>
      <xs:attribute name='prefetchSize' type='xs:integer'/>
      <xs:attribute name='uri' type='xs:string'/>
      <xs:attribute name='userName' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.NoSubscriptionRecoveryPolicy -->
  <xs:element name='noSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This SubscriptionRecoveryPolicy disable recovery of messages.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.OldestMessageEvictionStrategy -->
  <xs:element name='oldestMessageEvictionStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An eviction strategy which evicts the oldest message first (which is the
default).
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='evictExpiredMessagesHighWatermark' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the high water mark on which we will eagerly evict expired messages from RAM
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.OldestMessageWithLowestPriorityEvictionStrategy -->
  <xs:element name='oldestMessageWithLowestPriorityEvictionStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An eviction strategy which evicts the oldest message with the lowest priority first.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='evictExpiredMessagesHighWatermark' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the high water mark on which we will eagerly evict expired messages from RAM
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.OracleJDBCAdapter -->
  <xs:element name='oracleJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Implements all the default JDBC operations that are used
by the JDBCPersistenceAdapter.
<p/>
Subclassing is encouraged to override the default
implementation of methods to account for differences
in JDBC Driver implementations.
<p/>
The JDBCAdapter inserts and extracts BLOB data using the
getBytes()/setBytes() operations.
<p/>
The databases/JDBC drivers that use this adapter are:
<ul>
<li></li>
</ul>
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.OutboundQueueBridge -->
  <xs:element name='outboundQueueBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Create an Outbound Queue Bridge
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='consumer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerQueue' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsConnector' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerQueue' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='consumer' type='xs:string'/>
      <xs:attribute name='consumerConnection' type='xs:string'/>
      <xs:attribute name='consumerQueue' type='xs:string'/>
      <xs:attribute name='doHandleReplyTo' type='xs:boolean'/>
      <xs:attribute name='jmsConnector' type='xs:string'/>
      <xs:attribute name='jmsMessageConvertor' type='xs:string'/>
      <xs:attribute name='localQueueName' type='xs:string'/>
      <xs:attribute name='maximumRetries' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum number of retries if a send fails before closing the
bridge
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='outboundQueueName' type='xs:string'/>
      <xs:attribute name='producerConnection' type='xs:string'/>
      <xs:attribute name='producerQueue' type='xs:string'/>
      <xs:attribute name='selector' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.OutboundTopicBridge -->
  <xs:element name='outboundTopicBridge'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Create an Outbound Topic Bridge
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='consumer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='consumerTopic' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsConnector' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:jmsQueueConnector'/>
              <xs:element ref='tns:jmsTopicConnector'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='jmsMessageConvertor' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:simpleJmsMessageConvertor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerConnection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='producerTopic' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='consumer' type='xs:string'/>
      <xs:attribute name='consumerConnection' type='xs:string'/>
      <xs:attribute name='consumerName' type='xs:string'/>
      <xs:attribute name='consumerTopic' type='xs:string'/>
      <xs:attribute name='doHandleReplyTo' type='xs:boolean'/>
      <xs:attribute name='jmsConnector' type='xs:string'/>
      <xs:attribute name='jmsMessageConvertor' type='xs:string'/>
      <xs:attribute name='localTopicName' type='xs:string'/>
      <xs:attribute name='maximumRetries' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the maximum number of retries if a send fails before closing the
bridge
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='outboundTopicName' type='xs:string'/>
      <xs:attribute name='producerConnection' type='xs:string'/>
      <xs:attribute name='producerTopic' type='xs:string'/>
      <xs:attribute name='selector' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.PolicyEntry -->
  <xs:element name='policyEntry'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents an entry in a {@link PolicyMap} for assigning policies to a
specific destination or a hierarchical wildcard area of destinations.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='deadLetterStrategy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the policy used to determine which dead letter queue destination
should be used
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:individualDeadLetterStrategy'/>
              <xs:element ref='tns:sharedDeadLetterStrategy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='dispatchPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:roundRobinDispatchPolicy'/>
              <xs:element ref='tns:simpleDispatchPolicy'/>
              <xs:element ref='tns:strictOrderDispatchPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='messageEvictionStrategy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the eviction strategy used to decide which message to evict when the
slow consumer needs to discard messages
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:oldestMessageEvictionStrategy'/>
              <xs:element ref='tns:oldestMessageWithLowestPriorityEvictionStrategy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='messageGroupMapFactory' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the factory used to create new instances of {MessageGroupMap} used
to implement the <a
href="http://activemq.apache.org/message-groups.html">Message Groups</a>
functionality.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:messageGroupHashBucketFactory'/>
              <xs:element ref='tns:simpleMessageGroupMapFactory'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingDurableSubscriberPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileDurableSubscriberCursor'/>
              <xs:element ref='tns:storeDurableSubscriberCursor'/>
              <xs:element ref='tns:vmDurableCursor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingMessageLimitStrategy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the strategy to calculate the maximum number of messages that are
allowed to be pending on consumers (in addition to their prefetch sizes).
Once the limit is reached, non-durable topics can then start discarding
old messages. This allows us to keep dispatching messages to slow
consumers while not blocking fast consumers and discarding the messages
oldest first.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:constantPendingMessageLimitStrategy'/>
              <xs:element ref='tns:prefetchRatePendingMessageLimitStrategy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingQueuePolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileQueueCursor'/>
              <xs:element ref='tns:storeCursor'/>
              <xs:element ref='tns:vmQueueCursor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='pendingSubscriberPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fileCursor'/>
              <xs:element ref='tns:vmCursor'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='subscriptionRecoveryPolicy' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:fixedCountSubscriptionRecoveryPolicy'/>
              <xs:element ref='tns:fixedSizedSubscriptionRecoveryPolicy'/>
              <xs:element ref='tns:lastImageSubscriptionRecoveryPolicy'/>
              <xs:element ref='tns:noSubscriptionRecoveryPolicy'/>
              <xs:element ref='tns:queryBasedSubscriptionRecoveryPolicy'/>
              <xs:element ref='tns:timedSubscriptionRecoveryPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='deadLetterStrategy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the policy used to determine which dead letter queue destination
should be used
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='dispatchPolicy' type='xs:string'/>
      <xs:attribute name='enableAudit' type='xs:boolean'/>
      <xs:attribute name='lazyDispatch' type='xs:boolean'/>
      <xs:attribute name='maxAuditDepth' type='xs:integer'/>
      <xs:attribute name='maxPageSize' type='xs:integer'/>
      <xs:attribute name='maxProducersToAudit' type='xs:integer'/>
      <xs:attribute name='maxQueueAuditDepth' type='xs:integer'/>
      <xs:attribute name='memoryLimit' type='xs:string'/>
      <xs:attribute name='messageEvictionStrategy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the eviction strategy used to decide which message to evict when the
slow consumer needs to discard messages
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='messageGroupMapFactory' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the factory used to create new instances of {MessageGroupMap} used
to implement the <a
href="http://activemq.apache.org/message-groups.html">Message Groups</a>
functionality.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='minimumMessageSize' type='xs:long'/>
      <xs:attribute name='optimizedDispatch' type='xs:boolean'/>
      <xs:attribute name='pendingDurableSubscriberPolicy' type='xs:string'/>
      <xs:attribute name='pendingMessageLimitStrategy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the strategy to calculate the maximum number of messages that are
allowed to be pending on consumers (in addition to their prefetch sizes).
Once the limit is reached, non-durable topics can then start discarding
old messages. This allows us to keep dispatching messages to slow
consumers while not blocking fast consumers and discarding the messages
oldest first.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='pendingQueuePolicy' type='xs:string'/>
      <xs:attribute name='pendingSubscriberPolicy' type='xs:string'/>
      <xs:attribute name='producerFlowControl' type='xs:boolean'/>
      <xs:attribute name='queue' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='sendAdvisoryIfNoConsumers' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sends an advisory message if a non-persistent message is sent and there
are no active consumers
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='strictOrderDispatch' type='xs:boolean'/>
      <xs:attribute name='subscriptionRecoveryPolicy' type='xs:string'/>
      <xs:attribute name='topic' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useCache' type='xs:boolean'/>
      <xs:attribute name='useConsumerPriority' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.PolicyMap -->
  <xs:element name='policyMap'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents a destination based configuration of policies so that individual
destinations or wildcard hierarchies of destinations can be configured using
different policies.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='defaultEntry' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:policyEntry'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='entries' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              A helper method to allow the destination map to be populated from a
dependency injection framework such as Spring
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='policyEntries' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the individual entries on the policy map
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='defaultEntry' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.ActiveMQPrefetchPolicy -->
  <xs:element name='prefetchPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Defines the prefetch message policies for different types of consumers
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='all' type='xs:integer'/>
      <xs:attribute name='durableTopicPrefetch' type='xs:integer'/>
      <xs:attribute name='inputStreamPrefetch' type='xs:integer'/>
      <xs:attribute name='maximumPendingMessageLimit' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets how many messages a broker will keep around, above the prefetch
limit, for non-durable topics before starting to discard older messages.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='optimizeDurableTopicPrefetch' type='xs:integer'/>
      <xs:attribute name='queueBrowserPrefetch' type='xs:integer'/>
      <xs:attribute name='queuePrefetch' type='xs:integer'/>
      <xs:attribute name='topicPrefetch' type='xs:integer'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.PrefetchRatePendingMessageLimitStrategy -->
  <xs:element name='prefetchRatePendingMessageLimitStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This PendingMessageLimitStrategy sets the maximum pending message limit value to be
a multiplier of the prefetch limit of the subscription.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='multiplier' type='xs:double'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the multiplier of the prefetch size which will be used to define the maximum number of pending
messages for non-durable topics before messages are discarded.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.proxy.ProxyConnector -->
  <xs:element name='proxyConnector'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='server' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='bind' type='xs:string'/>
      <xs:attribute name='localUri' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='remote' type='xs:string'/>
      <xs:attribute name='server' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.QueryBasedSubscriptionRecoveryPolicy -->
  <xs:element name='queryBasedSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This implementation of {@link SubscriptionRecoveryPolicy} will perform a user
specific query mechanism to load any messages they may have missed.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='query' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the query strategy to load initial messages
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='query' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the query strategy to load initial messages
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.command.ActiveMQQueue -->
  <xs:element name='queue'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An ActiveMQ Queue
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='compositeDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='properties' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Get the properties from this instance for storing in JNDI
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='physicalName' type='xs:string'/>
      <xs:attribute name='properties' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Get the properties from this instance for storing in JNDI
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.QueueDispatchSelector -->
  <xs:element name='queueDispatchSelector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Queue dispatch policy that determines if a message can be sent to a subscription
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='exclusiveConsumer' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='exclusiveConsumer' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.RedeliveryPolicy -->
  <xs:element name='redeliveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Configuration options used to control how messages are re-delivered when they
are rolled back.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='backOffMultiplier' type='xs:short'/>
      <xs:attribute name='collisionAvoidancePercent' type='xs:short'/>
      <xs:attribute name='initialRedeliveryDelay' type='xs:long'/>
      <xs:attribute name='maximumRedeliveries' type='xs:integer'/>
      <xs:attribute name='useCollisionAvoidance' type='xs:boolean'/>
      <xs:attribute name='useExponentialBackOff' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.RoundRobinDispatchPolicy -->
  <xs:element name='roundRobinDispatchPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Simple dispatch policy that sends a message to every subscription that
matches the message.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.SharedDeadLetterStrategy -->
  <xs:element name='sharedDeadLetterStrategy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A default implementation of {@link DeadLetterStrategy} which uses
a constant destination.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='deadLetterQueue' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='deadLetterQueue' type='xs:string'/>
      <xs:attribute name='processExpired' type='xs:boolean'/>
      <xs:attribute name='processNonPersistent' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.SimpleAuthenticationPlugin -->
  <xs:element name='simpleAuthenticationPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Provides a simple authentication plugin
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='userGroups' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the groups a user is in. The key is the user name and the value is a
Set of groups
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='userPasswords' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the map indexed by user name with the value the password
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='users' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets individual users for authentication
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='userGroups' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the groups a user is in. The key is the user name and the value is a
Set of groups
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='userPasswords' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the map indexed by user name with the value the password
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.SimpleAuthorizationMap -->
  <xs:element name='simpleAuthorizationMap'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An AuthorizationMap which is configured with individual DestinationMaps for
each operation.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adminACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:authorizationMap'/>
              <xs:element ref='tns:policyMap'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='readACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:authorizationMap'/>
              <xs:element ref='tns:policyMap'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='tempDestinationAuthorizationEntry' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:tempDestinationAuthorizationEntry'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='writeACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:authorizationMap'/>
              <xs:element ref='tns:policyMap'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adminACLs' type='xs:string'/>
      <xs:attribute name='readACLs' type='xs:string'/>
      <xs:attribute name='tempDestinationAuthorizationEntry' type='xs:string'/>
      <xs:attribute name='writeACLs' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.SimpleDispatchPolicy -->
  <xs:element name='simpleDispatchPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Simple dispatch policy that sends a message to every subscription that
matches the message.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.SimpleDispatchSelector -->
  <xs:element name='simpleDispatchSelector'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Simple dispatch policy that determines if a message can be sent to a subscription
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.network.jms.SimpleJmsMessageConvertor -->
  <xs:element name='simpleJmsMessageConvertor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Converts Message from one JMS to another
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='connection' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='connection' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.group.SimpleMessageGroupMapFactory -->
  <xs:element name='simpleMessageGroupMapFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A factory to create instances of {@link SimpleMessageGroupMap} when implementing the
<a href="http://activemq.apache.org/message-groups.html">Message Groups</a> functionality.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.Statements -->
  <xs:element name='statements'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='createSchemaStatements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='dropSchemaStatements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='addMessageStatement' type='xs:string'/>
      <xs:attribute name='binaryDataType' type='xs:string'/>
      <xs:attribute name='containerNameDataType' type='xs:string'/>
      <xs:attribute name='createDurableSubStatement' type='xs:string'/>
      <xs:attribute name='deleteOldMessagesStatement' type='xs:string'/>
      <xs:attribute name='deleteSubscriptionStatement' type='xs:string'/>
      <xs:attribute name='destinationMessageCountStatement' type='xs:string'/>
      <xs:attribute name='durableSubAcksTableName' type='xs:string'/>
      <xs:attribute name='durableSubscriberMessageCountStatement' type='xs:string'/>
      <xs:attribute name='findAllDestinationsStatement' type='xs:string'/>
      <xs:attribute name='findAllDurableSubMessagesStatement' type='xs:string'/>
      <xs:attribute name='findAllDurableSubsStatement' type='xs:string'/>
      <xs:attribute name='findAllMessagesStatement' type='xs:string'/>
      <xs:attribute name='findDurableSubMessagesStatement' type='xs:string'/>
      <xs:attribute name='findDurableSubStatement' type='xs:string'/>
      <xs:attribute name='findLastSequenceIdInAcksStatement' type='xs:string'/>
      <xs:attribute name='findLastSequenceIdInMsgsStatement' type='xs:string'/>
      <xs:attribute name='findMessageSequenceIdStatement' type='xs:string'/>
      <xs:attribute name='findMessageStatement' type='xs:string'/>
      <xs:attribute name='findNextMessagesStatement' type='xs:string'/>
      <xs:attribute name='lastAckedDurableSubscriberMessageStatement' type='xs:string'/>
      <xs:attribute name='lockCreateStatement' type='xs:string'/>
      <xs:attribute name='lockTableName' type='xs:string'/>
      <xs:attribute name='lockUpdateStatement' type='xs:string'/>
      <xs:attribute name='longDataType' type='xs:string'/>
      <xs:attribute name='messageTableName' type='xs:string'/>
      <xs:attribute name='msgIdDataType' type='xs:string'/>
      <xs:attribute name='nextDurableSubscriberMessageStatement' type='xs:string'/>
      <xs:attribute name='removeAllMessagesStatement' type='xs:string'/>
      <xs:attribute name='removeAllSubscriptionsStatement' type='xs:string'/>
      <xs:attribute name='removeMessageStatment' type='xs:string'/>
      <xs:attribute name='sequenceDataType' type='xs:string'/>
      <xs:attribute name='stringIdDataType' type='xs:string'/>
      <xs:attribute name='tablePrefix' type='xs:string'/>
      <xs:attribute name='updateLastAckOfDurableSubStatement' type='xs:string'/>
      <xs:attribute name='updateMessageStatement' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='useLockCreateWhereClause' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.StorePendingQueueMessageStoragePolicy -->
  <xs:element name='storeCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.StorePendingDurableSubscriberMessageStoragePolicy -->
  <xs:element name='storeDurableSubscriberCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages for a durable
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.usage.StoreUsage -->
  <xs:element name='storeUsage'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Used to keep track of how much of something is being used so that a
productive working set usage can be controlled. Main use case is manage
memory usage.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='limiter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:defaultUsageCapacity'/>
              <xs:element ref='tns:usageCapacity'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='parent' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='store' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:amqPersistenceAdapter'/>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='limit' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the memory limit in bytes. Setting the limit in bytes will set the
usagePortion to 0 since the UsageManager is not going to be portion based
off the parent. When set using XBean, you can use values such as: "20
mb", "1024 kb", or "1 gb"
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='limiter' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='parent' type='xs:string'/>
      <xs:attribute name='percentUsage' type='xs:integer'/>
      <xs:attribute name='percentUsageMinDelta' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the minimum number of percentage points the usage has to change
before a UsageListener event is fired by the manager.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='pollingTime' type='xs:integer'/>
      <xs:attribute name='store' type='xs:string'/>
      <xs:attribute name='usagePortion' type='xs:float'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.store.jdbc.adapter.StreamJDBCAdapter -->
  <xs:element name='streamJDBCAdapter'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This JDBCAdapter inserts and extracts BLOB data using the
setBinaryStream()/getBinaryStream() operations.

The databases/JDBC drivers that use this adapter are:
<ul>
<li>Axion</li>
</ul>
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='statements' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:statements'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='batchStatments' type='xs:boolean'/>
      <xs:attribute name='statements' type='xs:string'/>
      <xs:attribute name='useExternalMessageReferences' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.StrictOrderDispatchPolicy -->
  <xs:element name='strictOrderDispatchPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Dispatch policy that causes every subscription to see messages in the same
order.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.usage.SystemUsage -->
  <xs:element name='systemUsage'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Holder for Usage instances for memory, store and temp files Main use case is
manage memory usage.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adapter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:amqPersistenceAdapter'/>
              <xs:element ref='tns:jdbcPersistenceAdapter'/>
              <xs:element ref='tns:journalPersistenceAdapter'/>
              <xs:element ref='tns:kahaPersistenceAdapter'/>
              <xs:element ref='tns:memoryPersistenceAdapter'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='memoryUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:memoryUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='parent' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:systemUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='storeUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:storeUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='tempStore' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='tempUsage' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:tempUsage'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adapter' type='xs:string'/>
      <xs:attribute name='memoryUsage' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='parent' type='xs:string'/>
      <xs:attribute name='sendFailIfNoSpace' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not a send() should fail if there is no space free. The
default value is false which means to block the send() method until space
becomes available
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='sendFailIfNoSpaceExplicitySet' type='xs:boolean'/>
      <xs:attribute name='storeUsage' type='xs:string'/>
      <xs:attribute name='tempStore' type='xs:string'/>
      <xs:attribute name='tempUsage' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.security.TempDestinationAuthorizationEntry -->
  <xs:element name='tempDestinationAuthorizationEntry'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Represents an entry in a {@link DefaultAuthorizationMap} for assigning
different operations (read, write, admin) of user roles to a temporary
destination
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adminACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='destination' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='readACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='writeACLs' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='unbounded'><xs:any minOccurs='0' maxOccurs='unbounded'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='admin' type='xs:string'/>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='groupClass' type='xs:string'/>
      <xs:attribute name='queue' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='read' type='xs:string'/>
      <xs:attribute name='topic' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            A helper method to set the destination from a configuration file
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='write' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.usage.TempUsage -->
  <xs:element name='tempUsage'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Used to keep track of how much of something is being used so that a
productive working set usage can be controlled. Main use case is manage
memory usage.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='limiter' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:defaultUsageCapacity'/>
              <xs:element ref='tns:usageCapacity'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='parent' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='store' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='limit' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the memory limit in bytes. Setting the limit in bytes will set the
usagePortion to 0 since the UsageManager is not going to be portion based
off the parent. When set using XBean, you can use values such as: "20
mb", "1024 kb", or "1 gb"
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='limiter' type='xs:string'/>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='parent' type='xs:string'/>
      <xs:attribute name='percentUsage' type='xs:integer'/>
      <xs:attribute name='percentUsageMinDelta' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the minimum number of percentage points the usage has to change
before a UsageListener event is fired by the manager.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='pollingTime' type='xs:integer'/>
      <xs:attribute name='store' type='xs:string'/>
      <xs:attribute name='usagePortion' type='xs:float'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.util.TimeStampingBrokerPlugin -->
  <xs:element name='timeStampingBrokerPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Broker interceptor which updates a JMS Client's timestamp on the message
with a broker timestamp. Useful when the clocks on client machines are known
to not be correct and you can only trust the time set on the broker machines.

Enabling this plugin will break JMS compliance since the timestamp that the
producer sees on the messages after as send() will be different from the
timestamp the consumer will observe when he receives the message. This plugin
is not enabled in the default ActiveMQ configuration.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='adminConnectionContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='next' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='adminConnectionContext' type='xs:string'/>
      <xs:attribute name='next' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.TimedSubscriptionRecoveryPolicy -->
  <xs:element name='timedSubscriptionRecoveryPolicy'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        This implementation of {@link SubscriptionRecoveryPolicy} will keep a timed
buffer of messages around in memory and use that to recover new
subscriptions.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='recoverDuration' type='xs:long'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.command.ActiveMQTopic -->
  <xs:element name='topic'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        An ActiveMQ Topic
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='compositeDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:queue'/>
              <xs:element ref='tns:topic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='properties' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Get the properties from this instance for storing in JNDI
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='physicalName' type='xs:string'/>
      <xs:attribute name='properties' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Get the properties from this instance for storing in JNDI
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.TransportConnector -->
  <xs:element name='transportConnector'>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='brokerInfo' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='brokerService' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:broker'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='discoveryAgent' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='messageAuthorizationPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the policy used to decide if the current connection is authorized to
consume a given message
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='server' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='taskRunnerFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='brokerInfo' type='xs:string'/>
      <xs:attribute name='brokerService' type='xs:string'/>
      <xs:attribute name='connectUri' type='xs:string'/>
      <xs:attribute name='disableAsyncDispatch' type='xs:boolean'/>
      <xs:attribute name='discoveryAgent' type='xs:string'/>
      <xs:attribute name='discoveryUri' type='xs:string'/>
      <xs:attribute name='enableStatusMonitor' type='xs:boolean'/>
      <xs:attribute name='messageAuthorizationPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the policy used to decide if the current connection is authorized to
consume a given message
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='server' type='xs:string'/>
      <xs:attribute name='taskRunnerFactory' type='xs:string'/>
      <xs:attribute name='uri' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the server transport URI to use if there is not a
{@link TransportServer} configured via the
{@link #setServer(TransportServer)} method. This value is used to lazy
create a {@link TransportServer} instance
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.util.UDPTraceBrokerPlugin -->
  <xs:element name='udpTraceBrokerPlugin'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A Broker interceptor which allows you to trace all operations to a UDP
socket.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='address' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='adminConnectionContext' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='next' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:loggingBrokerPlugin'/>
              <xs:element ref='tns:multicastTraceBrokerPlugin'/>
              <xs:element ref='tns:timeStampingBrokerPlugin'/>
              <xs:element ref='tns:udpTraceBrokerPlugin'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormat' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='wireFormatFactory' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='address' type='xs:string'/>
      <xs:attribute name='adminConnectionContext' type='xs:string'/>
      <xs:attribute name='broadcast' type='xs:boolean'/>
      <xs:attribute name='destination' type='xs:string'/>
      <xs:attribute name='maxTraceDatagramSize' type='xs:integer'/>
      <xs:attribute name='next' type='xs:string'/>
      <xs:attribute name='wireFormat' type='xs:string'/>
      <xs:attribute name='wireFormatFactory' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.usage.UsageCapacity -->
  <xs:element name='usageCapacity'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Identify if a limit has been reached
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='limit' type='xs:string'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.virtual.VirtualDestinationInterceptor -->
  <xs:element name='virtualDestinationInterceptor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Implements <a
href="http://activemq.apache.org/virtual-destinations.html">Virtual Topics</a>.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='virtualDestinations' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='unbounded'>
              <xs:element ref='tns:compositeQueue'/>
              <xs:element ref='tns:compositeTopic'/>
              <xs:element ref='tns:virtualTopic'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.virtual.VirtualTopic -->
  <xs:element name='virtualTopic'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Creates <a href="http://activemq.org/site/virtual-destinations.html">Virtual
Topics</a> using a prefix and postfix. The virtual destination creates a
wildcard that is then used to look up all active queue subscriptions which
match.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='name' type='xs:string'/>
      <xs:attribute name='postfix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets any postix used to identify the queue consumers
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='prefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix wildcard used to identify the queue consumers for a given
topic
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.VMPendingSubscriberMessageStoragePolicy -->
  <xs:element name='vmCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages held
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.VMPendingDurableSubscriberMessageStoragePolicy -->
  <xs:element name='vmDurableCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.broker.region.policy.VMPendingQueueMessageStoragePolicy -->
  <xs:element name='vmQueueCursor'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        Pending messages
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


  <!-- element for type: org.apache.activemq.spring.ActiveMQXAConnectionFactory -->
  <xs:element name='xaConnectionFactory'>
    <xs:annotation>
      <xs:documentation><![CDATA[
        A <a href="http://www.springframework.org/">Spring</a> enhanced XA connection
factory which will automatically use the Spring bean name as the clientIDPrefix property
so that connections created have client IDs related to your Spring.xml file for
easier comprehension from <a href="http://activemq.apache.org/jmx.html">JMX</a>.
      ]]></xs:documentation>
    </xs:annotation>
    <xs:complexType>
      <xs:sequence>
        <xs:element name='blobTransferPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the policy used to describe how out-of-band BLOBs (Binary Large
OBjects) are transferred from producers to brokers to consumers
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='clientIdGenerator' minOccurs='0' maxOccurs='1'>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='prefetchPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the <a
href="http://activemq.apache.org/what-is-the-prefetch-limit-for.html">prefetch
policy</a> for consumers created by this connection.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:prefetchPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='properties' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Get the properties from this instance for storing in JNDI
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='redeliveryPolicy' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the global redelivery policy to be used when a message is delivered
but the session is rolled back
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:choice minOccurs='0' maxOccurs='1'>
              <xs:element ref='tns:redeliveryPolicy'/>
              <xs:any namespace='##other'/>
            </xs:choice>
          </xs:complexType>
        </xs:element>
        <xs:element name='transformer' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Sets the transformer used to transform messages before they are sent on
to the JMS bus or when they are received from the bus but before they are
delivered to the JMS client
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:element name='transportListener' minOccurs='0' maxOccurs='1'>
          <xs:annotation>
            <xs:documentation><![CDATA[
              Allows a listener to be configured on the ConnectionFactory so that when this factory is used
with frameworks which don't expose the Connection such as Spring JmsTemplate, you can still register
a transport listener.
            ]]></xs:documentation>
          </xs:annotation>
          <xs:complexType>
            <xs:sequence minOccurs='0' maxOccurs='1'><xs:any namespace='##other'/></xs:sequence>
          </xs:complexType>
        </xs:element>
        <xs:any namespace='##other' minOccurs='0' maxOccurs='unbounded'/>
      </xs:sequence>
      <xs:attribute name='alwaysSessionAsync' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            If this flag is set then a separate thread is not used for dispatching
messages for each Session in the Connection. However, a separate thread
is always used if there is more than one session, or the session isn't in
auto acknowledge or duplicates ok mode
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='alwaysSyncSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Set true if always require messages to be sync sent
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='beanName' type='xs:string'/>
      <xs:attribute name='blobTransferPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the policy used to describe how out-of-band BLOBs (Binary Large
OBjects) are transferred from producers to brokers to consumers
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='brokerURL' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the <a
href="http://activemq.apache.org/configuring-transports.html">connection
URL</a> used to connect to the ActiveMQ broker.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientID' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS clientID to use for the created connection. Note that this
can only be used by one connection at once so generally its a better idea
to set the clientID on a Connection
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientIDPrefix' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the prefix used by autogenerated JMS Client ID values which are used
if the JMS client does not explicitly specify on.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='clientIdGenerator' type='xs:string'/>
      <xs:attribute name='closeTimeout' type='xs:integer'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the timeout before a close is considered complete. Normally a
close() on a connection waits for confirmation from the broker; this
allows that operation to timeout to save the client hanging if there is
no broker
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='copyMessageOnSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Should a JMS message be copied to a new JMS Message object as part of the
send() method in JMS. This is enabled by default to be compliant with the
JMS specification. You can disable it if you do not mutate JMS messages
after they are sent for a performance boost
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='disableTimeStampsByDefault' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not timestamps on messages should be disabled or not. If
you disable them it adds a small performance boost.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='dispatchAsync' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables the default setting of whether or not consumers have
their messages <a
href="http://activemq.apache.org/consumer-dispatch-async.html">dispatched
synchronously or asynchronously by the broker</a>. For non-durable
topics for example we typically dispatch synchronously by default to
minimize context switches which boost performance. However sometimes its
better to go slower to ensure that a single blocked consumer socket does
not block delivery to other consumers.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='exclusiveConsumer' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables or disables whether or not queue consumers should be exclusive or
not for example to preserve ordering when not using <a
href="http://activemq.apache.org/message-groups.html">Message Groups</a>
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='nestedMapAndListEnabled' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables/disables whether or not Message properties and MapMessage entries
support <a
href="http://activemq.apache.org/structured-message-properties-and-mapmessages.html">Nested
Structures</a> of Map and List objects
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='objectMessageSerializationDefered' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            When an object is set on an ObjectMessage, the JMS spec requires the
object to be serialized by that set method. Enabling this flag causes the
object to not get serialized. The object may subsequently get serialized
if the message needs to be sent over a socket or stored to disk.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='optimizeAcknowledge' type='xs:boolean'/>
      <xs:attribute name='optimizedMessageDispatch' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            If this flag is set then an larger prefetch limit is used - only
applicable for durable topic subscribers.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='password' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS password used for connections created from this factory
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='prefetchPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the <a
href="http://activemq.apache.org/what-is-the-prefetch-limit-for.html">prefetch
policy</a> for consumers created by this connection.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='producerWindowSize' type='xs:integer'/>
      <xs:attribute name='properties' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Get the properties from this instance for storing in JNDI
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='redeliveryPolicy' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the global redelivery policy to be used when a message is delivered
but the session is rolled back
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='sendTimeout' type='xs:integer'/>
      <xs:attribute name='statsEnabled' type='xs:boolean'/>
      <xs:attribute name='transformer' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the transformer used to transform messages before they are sent on
to the JMS bus or when they are received from the bus but before they are
delivered to the JMS client
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='transportListener' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Allows a listener to be configured on the ConnectionFactory so that when this factory is used
with frameworks which don't expose the Connection such as Spring JmsTemplate, you can still register
a transport listener.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useAsyncSend' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Forces the use of <a
href="http://activemq.apache.org/async-sends.html">Async Sends</a> which
adds a massive performance boost; but means that the send() method will
return immediately whether the message has been sent or not which could
lead to message loss.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useBeanNameAsClientIdPrefix' type='xs:boolean'/>
      <xs:attribute name='useCompression' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables the use of compression of the message bodies
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='useRetroactiveConsumer' type='xs:boolean'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets whether or not retroactive consumers are enabled. Retroactive
consumers allow non-durable topic subscribers to receive old messages
that were published before the non-durable subscriber started.
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='userName' type='xs:string'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Sets the JMS userName used by connections created by this factory
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='warnAboutUnstartedConnectionTimeout' type='xs:long'>
        <xs:annotation>
          <xs:documentation><![CDATA[
            Enables the timeout from a connection creation to when a warning is
generated if the connection is not properly started via
{@link Connection#start()} and a message is received by a consumer. It is
a very common gotcha to forget to <a
href="http://activemq.apache.org/i-am-not-receiving-any-messages-what-is-wrong.html">start
the connection</a> so this option makes the default case to create a
warning if the user forgets. To disable the warning just set the value to <
0 (say -1).
          ]]></xs:documentation>
        </xs:annotation>
      </xs:attribute>
      <xs:attribute name='watchTopicAdvisories' type='xs:boolean'/>
      <xs:attribute name='id' type='xs:ID'/>
      <xs:anyAttribute namespace='##other' processContents='lax'/>
    </xs:complexType>
  </xs:element>


</xs:schema>
