<?xml version="1.0" encoding="UTF-8"?>
<xs:schema 
xmlns="http://www.bea.com/ns/wlevs/config/server" 
xmlns:xs="http://www.w3.org/2001/XMLSchema" 
xmlns:jxb="http://java.sun.com/xml/ns/jaxb" 
xmlns:base="http://www.bea.com/ns/wlevs/config"
xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc" 
targetNamespace="http://www.bea.com/ns/wlevs/config/server" elementFormDefault="unqualified" attributeFormDefault="unqualified" jxb:extensionBindingPrefixes="xjc" jxb:version="2.0">

     
     <xs:annotation>
           <xs:appinfo>
                <jxb:schemaBindings>
                    <jxb:package name="com.bea.wlevs.configuration.server"/>
                  </jxb:schemaBindings>
           </xs:appinfo>
      </xs:annotation>
      
     <xs:import namespace="http://www.bea.com/ns/wlevs/config" schemaLocation="wlevs_base_config.xsd"/>

    <xs:element name="config">
        <xs:complexType>
            <xs:choice maxOccurs="unbounded">
                <xs:element name="domain" type="DomainType"/>
                <xs:element name="rmi" type="RMIType"/>
                <xs:element name="jndi-context" type="JNDIContextType"/>
                <xs:element name="exported-jndi-context" type="ExportedJNDIContextType"/>
                <xs:element name="jmx" type="JMXType"/>
                <xs:element name="transaction-manager" type="TransactionManagerType"/>
                <xs:element name="work-manager" type="WorkManagerType"/>
                <xs:element name="logging-service" type="LoggingServiceConfigType"/>
                <xs:element name="log-stdout" type="StdoutConfigType" />
                <xs:element name="log-file" type="LogFileConfigType" /> 
                <xs:element name="jetty-web-app" type="JettyWebAppType" />
                <xs:element name="netio" type="NetioType" /> 
                <xs:element name="jetty" type="JettyType" /> 
                <xs:element name="netio-client" type="NetioClientType" /> 
                <xs:element name="debug" type="DebugConfigType" /> 
                <xs:element name="data-source" type="DataSourceType" />
                <xs:element name="http-pubsub" type="HttpPubSubType"/>
                <xs:element name="event-store" type="EventStoreType" /> 
                <xs:element name="cluster" type="ClusterType" />
                <xs:element name="rdbms-event-store-provider" type="RDBMSEventStoreProviderType" />
                <xs:element name="user-event-store-provider" type="UserEventStoreProviderType" /> 
                <xs:element name="ssl" type="SSLType" />
                <xs:element name="weblogic-rmi-client" type="WebLogicRMIClientType"/>
                <xs:element name="weblogic-jta-gateway" type="WebLogicJTAGatewayType"/>
                <xs:element name="use-secure-connections" type="UseSecureConnectionType"/>
                <xs:element name="show-detail-error-message" type="ShowDetailErrorMessageType"/>
            </xs:choice>
        </xs:complexType>
    </xs:element>
    
    <xs:complexType name="DomainType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <xs:complexType name="RMIType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element name="heartbeat-period" type="xs:string" minOccurs="0"/>
                        <xs:element name="http-service-name" type="xs:string" minOccurs="0"/>
                        <xs:element name="heartbeat-interval" type="xs:string" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <xs:complexType name="JNDIContextType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element name="default-provider" type="xs:string" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
   <xs:complexType name="ExportedJNDIContextType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element name="rmi-service-name" type="xs:string" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    
    <xs:complexType name="JMXType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element name="rmi-service-name" type="xs:string" minOccurs="0"/>
                        <xs:element name="rmi-jrmp-port" type="xs:string" minOccurs="0"/>
                        <xs:element name="jndi-service-name" type="xs:string" minOccurs="0"/>
                        <xs:element name="rmi-registry-port" type="xs:string" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <xs:complexType name="TransactionManagerType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element name="max-resource-requests-on-server" type="xs:string" minOccurs="0"/>
                        <xs:element name="max-resource-unavailable-millis" type="xs:string" minOccurs="0"/>
                        <xs:element name="security-interop-mode" type="xs:string" minOccurs="0"/>
                        <xs:element name="parallel-xa-enabled" type="xs:string" minOccurs="0"/>
                        <xs:element name="tlog-location" type="xs:string" minOccurs="0"/>
                        <xs:element name="max-xa-call-millis" type="xs:string" minOccurs="0"/>
                        <xs:element name="timeout-seconds" type="xs:string" minOccurs="0"/>
                        <xs:element name="checkpoint-interval-seconds" type="xs:string" minOccurs="0"/>
                        <xs:element name="forget-heuristics" type="xs:string" minOccurs="0"/>
                        <xs:element name="before-completion-iteration-limit" type="xs:string" minOccurs="0"/>
                        <xs:element name="abandon-timeout-seconds" type="xs:string" minOccurs="0"/>
                        <xs:element name="serialize-enlistments-gc-interval-millis" type="xs:string" minOccurs="0"/>
                        <xs:element name="unregister-resource-grace-period" type="xs:string" minOccurs="0"/>
                        <xs:element name="rmi-service-name" type="xs:string" minOccurs="0"/>
                        <xs:element name="max-unique-name-statistics" type="xs:string" minOccurs="0"/>
                        <xs:element name="purge-resource-from-checkpoint-interval-seconds" type="xs:string" minOccurs="0"/>
                        <xs:element name="max-transactions" type="xs:string" minOccurs="0"/>
                        <xs:element name="migration-checkpoint-interval-seconds" type="xs:string" minOccurs="0"/>
                        <xs:element name="recovery-threshold-millis" type="xs:string" minOccurs="0"/>
                        <xs:element name="max-transactions-health-interval-millis" type="xs:string" minOccurs="0"/>
                        <xs:element name="parallel-xa-dispatch-policy" type="xs:string" minOccurs="0"/>                        
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>                

    <xs:complexType name="WorkManagerType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element name="min-threads-constraint" type="xs:string" minOccurs="0"/>
                        <xs:element name="fairshare" type="xs:string" minOccurs="0"/>
                        <xs:element name="max-threads-constraint" type="xs:string" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <xs:complexType name="LoggingServiceConfigType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element minOccurs="0" name="log-file-config" type="xs:string"/>
                        <xs:element minOccurs="0" name="stdout-config"  type="xs:string"/>
                        <xs:element minOccurs="0" name="logger-severity" type="xs:string"/>
                        <xs:element minOccurs="0" name="logger-severity-properties" type="config-logger-severity-properties"/>
                        <!-- <xs:element minOccurs="0" name="logger-severity-properties" type="xs:string"/> -->

                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    
    <xs:complexType name="JettyWebAppType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element minOccurs="0" name="context-path" type="xs:string"/>
                        <xs:element minOccurs="0" name="scratch-directory" type="xs:string"/>
                        <xs:element minOccurs="0" name="path" type="xs:string"/>
                        <xs:element minOccurs="0" name="jetty-name" type="xs:string"/>
                    </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    
    <xs:complexType name="StdoutConfigType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element minOccurs="0" name="stack-trace-depth" type="xs:string"/>
                        <xs:element minOccurs="0" name="stack-trace-enabled" type="xs:string"/>
                        <xs:element minOccurs="0" name="stdout-severity" type="xs:string"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>        
    
    <xs:complexType name="NetioType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element minOccurs="0" name="ssl-config-bean-name" type="xs:string"/>
                        <xs:element minOccurs="0" name="provider-type" type="xs:string"/>
                        <xs:element minOccurs="0" name="io-threads" type="xs:string"/>
                        <xs:element minOccurs="0" name="port" type="xs:string"/>
                        <xs:element minOccurs="0" name="listen-address" type="xs:string"/>
                    </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    
    <xs:complexType name="JettyType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element minOccurs="0" name="network-io-name" type="xs:string"/>
                        <xs:element minOccurs="0" name="work-manager-name" type="xs:string"/>
                        <xs:element minOccurs="0" name="scratch-directory" type="xs:string"/>
                        <xs:element minOccurs="0" name="debug-enabled" type="xs:string"/>
                        <xs:element minOccurs="0" name="listen-port" type="xs:string"/>
                        <xs:element minOccurs="0" name="secure-network-io-name" type="xs:string"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    
    <xs:complexType name="NetioClientType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element minOccurs="0" name="ssl-config-bean-name" type="xs:string"/>
                        <xs:element minOccurs="0" name="provider-type" type="xs:string"/>
                    </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    
    <xs:complexType name="LogFileConfigType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element minOccurs="0" name="number-of-files-limited" type="xs:string"/>
                        <xs:element minOccurs="0" name="rotation-type" type="xs:string"/>
                        <xs:element minOccurs="0" name="rotation-time" type="xs:string"/>
                        <xs:element minOccurs="0" name="rotated-file-count" type="xs:string"/>
                        <xs:element minOccurs="0" name="rotation-size" type="xs:string"/>
                        <xs:element minOccurs="0" name="rotation-time-span-factor" type="xs:string"/>
                        <xs:element minOccurs="0" name="rotation-Time-span" type="xs:string"/>
                        <xs:element minOccurs="0" name="base-log-file-name" type="xs:string"/>
                        <xs:element minOccurs="0" name="rotate-log-on-startup-enabled" type="xs:string"/>
                        <xs:element minOccurs="0" name="log-file-severity" type="xs:string"/>
                        <xs:element minOccurs="0" name="log-file-rotation-dir" type="xs:string"/>                    
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    
    <xs:complexType name="DebugConfigType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element minOccurs="0" name="debug-properties" type="xs:string"/>                    
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    
    <xs:complexType name="DataSourceType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element minOccurs="0" name="xa-params" type="config-data-source-XAParams"/>
                        <xs:element minOccurs="0" name="data-source-params" type="config-data-source-DataSourceParams"/>
                        <xs:element minOccurs="0" name="connection-pool-params" type="config-data-source-ConnectionPoolParams"/>
                        <xs:element minOccurs="0" name="driver-params" type="config-data-source-DriverParams"/>                    
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    

  <xs:complexType name="config-logger-severity-properties">    
     <xs:sequence maxOccurs="unbounded">
           <xs:element minOccurs="0" name="entry" type="entryType"/>
     </xs:sequence>
  </xs:complexType>
      
  <xs:complexType name="entryType">    
     <xs:sequence>
         <xs:element name="key" type="xs:string"/>
         <xs:element name="value" type="xs:string"/>
     </xs:sequence>
  </xs:complexType>    
    
  <xs:complexType name="config-data-source-DataSourceParams">
     <xs:sequence>
         <xs:element minOccurs="0" name="algorithm-type" type="xs:string"/>
         <xs:element minOccurs="0" name="stream-chunk-size" type="xs:string"/>
     <xs:element minOccurs="0" name="row-prefetch" type="xs:string"/>
         <xs:element minOccurs="0" name="data-source-list" type="xs:string"/>
         <xs:element minOccurs="0" name="failover-request-if-busy" type="xs:string"/>
     <xs:element minOccurs="0" name="row-prefetch-size" type="xs:string"/>
         <xs:element minOccurs="0" name="jndi-names" type="config-data-source-DataSourceParams-JNDINames"/>
         <xs:element minOccurs="0" name="scope" type="xs:string"/>
     <xs:element minOccurs="0" name="connection-pool-failover-callback-handler" type="xs:string"/>
         <xs:element minOccurs="0" name="global-transactions-protocol" type="xs:string"/>
     </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="config-data-source-DataSourceParams-JNDINames">
     <xs:sequence>
         <xs:element minOccurs="0" name="element" type="xs:string"/>
         <xs:element minOccurs="0" name="config-data-source-DataSourceParams-JNDINames" type="xs:string"/>
     </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="config-data-source-XAParams">
     <xs:sequence>
         <xs:element minOccurs="0" name="keep-xa-conn-till-tx-complete" type="xs:string"/>
         <xs:element minOccurs="0" name="xa-transaction-timeout" type="xs:string"/>
         <xs:element minOccurs="0" name="rollback-local-tx-upon-conn-close" type="xs:string"/>
         <xs:element minOccurs="0" name="xa-retry-duration-seconds" type="xs:string"/>
         <xs:element minOccurs="0" name="Xa-set-transaction-timeout" type="xs:string"/>
         <xs:element minOccurs="0" name="keep-logical-conn-open-on-release" type="xs:string"/>
         <xs:element minOccurs="0" name="resource-health-monitoring" type="xs:string"/>
         <xs:element minOccurs="0" name="new-xa-conn-for-commit" type="xs:string"/>
         <xs:element minOccurs="0" name="xa-end-only-once" type="xs:string"/>
         <xs:element minOccurs="0" name="xa-retry-interval-seconds" type="xs:string"/>
         <xs:element minOccurs="0" name="recover-only-once" type="xs:string"/>
         <xs:element minOccurs="0" name="need-tx-ctx-on-close" type="xs:string"/>
     </xs:sequence>
  </xs:complexType>

  <xs:complexType   name="config-data-source-ConnectionPoolParams">
     <xs:sequence>
         <xs:element minOccurs="0" name="statement-timeout" type="xs:string"/>
         <xs:element minOccurs="0" name="profile-harvest-frequency-seconds" type="xs:string"/>
         <xs:element minOccurs="0" name="inactive-connection-timeout-seconds" type="xs:string"/>
         <xs:element minOccurs="0" name="shrink-frequency-seconds" type="xs:string"/>
         <xs:element minOccurs="0" name="driver-interceptor" type="xs:string"/>
         <xs:element minOccurs="0" name="seconds-to-trust-an-idle-pool-connection" type="xs:string"/>
         <xs:element minOccurs="0" name="pinned-to-thread" type="xs:string"/>
         <xs:element minOccurs="0" name="test-connections-on-reserve" type="xs:string"/>
         <xs:element minOccurs="0" name="profile-type" type="xs:string"/>
         <xs:element minOccurs="0" name="statement-cache-type" type="xs:string"/>
         <xs:element minOccurs="0" name="connection-reserve-timeout-seconds" type="xs:string"/>
         <xs:element minOccurs="0" name="credential-mapping-enabled" type="xs:string"/>
         <xs:element minOccurs="0" name="login-delay-seconds" type="xs:string"/>
         <xs:element minOccurs="0" name="test-table-name" type="xs:string"/>
         <xs:element minOccurs="0" name="statement-cache-size" type="xs:string"/>
         <xs:element minOccurs="0" name="init-sql" type="xs:string"/>
         <xs:element minOccurs="0" name="connection-creation-retry-frequency-seconds" type="xs:string"/>
         <xs:element minOccurs="0" name="test-frequency-seconds" type="xs:string"/>
         <xs:element minOccurs="0" name="jdbc-xa-debug-level" type="xs:string"/>
         <xs:element minOccurs="0" name="initial-capacity" type="xs:string"/>
         <xs:element minOccurs="0" name="max-capacity" type="xs:string"/>
         <xs:element minOccurs="0" name="capacity-increment" type="xs:string"/>
         <xs:element minOccurs="0" name="highest-num-waiters" type="xs:string"/>
     </xs:sequence>
  </xs:complexType>
  
  <xs:complexType   name="config-data-source-DriverParams">
     <xs:sequence maxOccurs="unbounded">
         <xs:element minOccurs="0" name="use-xa-data-source-interface" type="xs:string"/>
         <xs:element minOccurs="0" name="password" type="xs:string"/>
         <xs:element minOccurs="0" name="driver-name" type="xs:string"/>
         <xs:element minOccurs="0" name="url" type="xs:string"/>
         <xs:element minOccurs="0" name="properties" type="config-data-source-DriverParams-Properties">
         </xs:element>
     </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="config-data-source-DriverParams-Properties">
     <xs:sequence maxOccurs="unbounded">
         <xs:element minOccurs="0" name="element" type="config-data-source-DriverParams-Properties-element"/>
     </xs:sequence>
  </xs:complexType>
  
  <xs:complexType   name="config-data-source-DriverParams-Properties-element">
     <xs:sequence  maxOccurs="unbounded">
         <xs:element minOccurs="0" name="value" type="xs:string"/>
         <xs:element minOccurs="0" name="name" type="xs:string"/>
     </xs:sequence>
  </xs:complexType>
  
  <xs:complexType name="HttpPubSubType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                <xs:sequence>
                    <xs:element name="path" type="xs:string" minOccurs="0" />
                    <xs:element name="pub-sub-bean" type="PubSubBeanType" />
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="PubSubBeanType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                <xs:sequence>
                    <xs:element name="server-config" type="http-pub-sub-ServerConfigType" />
                    <xs:element name="message-filters" type="http-pub-sub-MessageFilterType" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="channels" type="http-pub-sub-ChannelType" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="channel-constraints" type="http-pub-sub-ChannelConstraintType" minOccurs="0" maxOccurs="unbounded"/>
                    <xs:element name="services" type="http-pub-sub-ServiceType" minOccurs="0" maxOccurs="unbounded"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-ServerConfigType" >
        <xs:sequence>
            <xs:element name="name" type="xs:string" minOccurs="0"/>
            <xs:element name="supported-transport" type="http-pub-sub-SupportedTransportType" minOccurs="0"/>
            <xs:element name="client-timeout-secs" type="xs:int" minOccurs="0"/>
            <xs:element name="persistent-client-timeout-secs" type="xs:int" minOccurs="0"/>
            <xs:element name="interval-millisecs" type="xs:int" minOccurs="0"/>
            <xs:element name="multi-frame-interval-millisecs" type="xs:int" minOccurs="0"/>
            <xs:element name="work-manager" type="xs:string" minOccurs="0"/>
            <xs:element name="publish-without-connect-allowed" type="xs:boolean" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-SupportedTransportType">
        <xs:sequence>
            <xs:element name="types" type="http-pub-sub-TransportTypeElementType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-TransportTypeElementType">
        <xs:sequence>
            <xs:element name="element" type="xs:string" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-ChannelType">
        <xs:sequence>
            <xs:element name="element" type="http-pub-sub-ChannelElementType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-ChannelElementType">
        <xs:sequence>
            <xs:element name="channel-pattern" type="xs:string" />
            <xs:element name="message-filters" type="http-pub-sub-MessageFilterNameElementType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-ServiceType">
        <xs:sequence>
            <xs:element name="element" type="http-pub-sub-ServiceElementType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-ServiceElementType">
        <xs:sequence>
            <xs:element name="service-channel" type="xs:string"/>
            <xs:element name="service-class" type="xs:string"/>
            <xs:element name="service-method" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-MessageFilterNameElementType">
        <xs:sequence>
            <xs:element name="element" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-ChannelConstraintType">
        <xs:sequence>
            <xs:element name="element" type="http-pub-sub-ChannelConstraintElementType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-ChannelConstraintElementType">
        <xs:sequence>
            <xs:element name="channel-resource-collection" type="http-pub-sub-ChannelResourceCollectionType" maxOccurs="unbounded"/>
            <xs:element name="auth-constraint" type="http-pub-sub-AuthConstraintType" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-AuthConstraintType">
        <xs:sequence>
            <xs:element name="description" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="role-name" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-ChannelResourceCollectionType">
        <xs:sequence>
            <xs:element name="element" type="http-pub-sub-ChannelResourceCollectionElementType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-ChannelResourceCollectionElementType">
        <xs:sequence>
            <xs:element name="channel-resource-name" type="xs:string"/>
            <xs:element name="descriptions" type="http-pub-sub-CRCDescriptionType" minOccurs="0" maxOccurs="unbounded"/>
            <xs:element name="channel-patterns" type="http-pub-sub-CRCChannelPatternType" maxOccurs="unbounded"/>
            <xs:element name="channel-operations" type="http-pub-sub-CRCChannelOperationType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-CRCDescriptionType">
        <xs:sequence>
            <xs:element name="element" type="xs:string"  minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-CRCChannelPatternType">
        <xs:sequence>
            <xs:element name="element" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-CRCChannelOperationType">
        <xs:sequence>
            <xs:element name="element" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-MessageFilterType">
            <xs:sequence>
            <xs:element name="element" type="http-pub-sub-MessageFilterElementType" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="http-pub-sub-MessageFilterElementType">
        <xs:sequence>
            <xs:element name="message-filter-name" type="xs:string" />
            <xs:element name="message-filter-class" type="xs:string" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="EventStoreType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                    <xs:sequence>
                        <xs:element minOccurs="0" name="provider-order" type="config-event-store-ProviderOrderParams"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    
    <xs:complexType name="config-event-store-ProviderOrderParams">
    <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" name="provider" type="xs:string"/>
    </xs:sequence>
    </xs:complexType>    
    
    <!-- Base class for all event store providers.  A config object
         for an event store provider must extend this type in order
         to participate in the initialization holdoff mechanism.
     -->
    <xs:complexType name="EventStoreProviderType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                <xs:sequence>
                    <xs:element minOccurs="0" name="init-timeout" type="xs:int"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    

    <xs:complexType name="RDBMSEventStoreProviderType">
        <xs:complexContent>
            <xs:extension base="EventStoreProviderType">
                <xs:sequence>
                    <xs:element minOccurs="0" name="data-source-name" type="xs:string"/>
                    <xs:element minOccurs="0" name="user-policy-attributes" type="EventStoreProviderUserPolicy"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    
    
    <xs:complexType name="EventStoreProviderUserPolicy">
       <xs:sequence>
          <xs:element minOccurs="0" maxOccurs="unbounded" name="entry">
             <xs:complexType>
           <xs:sequence>
          <xs:element name="key"/>
          <xs:element name="value"/>
           </xs:sequence>
             </xs:complexType>
          </xs:element>
       </xs:sequence>
    </xs:complexType>

    <xs:complexType name="UserEventStoreProviderType">
        <xs:complexContent>
            <xs:extension base="EventStoreProviderType">
                <xs:sequence>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    

    <xs:complexType name="ClusterType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                <xs:sequence>
                        <xs:element name="server-name" type="xs:string" minOccurs="0"/>
                        <xs:element name="server-host-name" type="xs:string" minOccurs="0"/>
                        <xs:element name="multicast-address" type="xs:string" minOccurs="0"/>
                        <xs:element name="multicast-port" type="xs:int" default="9100" minOccurs="0"/>
                        <xs:element name="identity" type="xs:string" default="1" minOccurs="0" />
                        <xs:element name="enabled" type="xs:boolean" default="false" minOccurs="0"/>
                        <xs:element name="security" type="ClusterSecurityConstraintType" default="none" minOccurs="0"/>
                        <xs:element name="groups" type="xs:string" minOccurs="0"/>
                        <xs:element name="operation-timeout" type="xs:string" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:simpleType name="ClusterSecurityConstraintType">
        <xs:restriction base="xs:token">
            <xs:enumeration value="none"/>
            <xs:enumeration value="sign"/>
            <xs:enumeration value="encrypt"/>
        </xs:restriction>
   </xs:simpleType>

    <xs:complexType name="ClusterGroupsType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                <xs:sequence>
                    <xs:element name="group" minOccurs="0" maxOccurs="unbounded" type="xs:string"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    
    <xs:complexType name="SSLType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                <xs:sequence>
                    <xs:element name="key-store" minOccurs="0" type="xs:string"/>
                    <xs:element name="key-store-pass" minOccurs="0" type="SSL-PasswordType"/>
                    <xs:element name="key-store-alias" minOccurs="0" type="xs:string"/>
                    <xs:element name="key-store-type" minOccurs="0" type="xs:string"/>
                    <xs:element name="key-manager-algorithm" minOccurs="0" type="xs:string"/>
                    <xs:element name="ssl-protocol" minOccurs="0" type="xs:string"/>
                    <xs:element name="trust-store" minOccurs="0" type="xs:string"/>
                    <xs:element name="trust-store-pass" minOccurs="0" type="SSL-PasswordType"/>
                    <xs:element name="trust-store-alias" minOccurs="0" type="xs:string"/>
                    <xs:element name="trust-store-type" minOccurs="0" type="xs:string"/>
                    <xs:element name="trust-manager-algorithm" minOccurs="0" type="xs:string"/>
                    <xs:element name="enforce-fips" minOccurs="0" type="xs:boolean"/>
                    <xs:element name="need-client-auth" minOccurs="0" type="xs:boolean"/>
                    <xs:element name="ciphers" minOccurs="0" type="SSL-Ciphers-Type"/>
                    <xs:element name="secure-random-algorithm" minOccurs="0" type="xs:string"/>
                    <xs:element name="secure-random-provider" minOccurs="0" type="xs:string"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>    

    <xs:complexType name="SSL-PasswordType">
        <xs:sequence>
            <xs:element name="password" minOccurs="1" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="SSL-Ciphers-Type">
        <xs:sequence maxOccurs="unbounded">
            <xs:element minOccurs="0" maxOccurs="unbounded" name="cipher" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="WebLogicRMIClientType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                <xs:sequence>
                    <xs:element name="netio-name" type="xs:string" minOccurs="0"/>
                    <xs:element name="secure-netio-name" type="xs:string" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="WebLogicJTAGatewayType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                <xs:sequence>
                    <xs:element name="timeout-seconds" type="xs:int" minOccurs="0"/>
                    <xs:element name="weblogic-instances" type="WebLogicInstancesType" minOccurs="0"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="WebLogicInstancesType">
        <xs:sequence>
            <xs:element name="weblogic-instance" type="WebLogicInstanceType" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="WebLogicInstanceType">
        <xs:sequence>
            <xs:element name="domain-name" type="xs:string"/>
            <xs:element name="server-name" type="xs:string"/>
            <xs:element name="protocol" type="xs:string" minOccurs="0"/>
            <xs:element name="host-address" type="xs:string"/>
            <xs:element name="port" type="xs:int"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:complexType name="UseSecureConnectionType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                <xs:sequence>
                    <xs:element name="value" type="xs:boolean" default="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

	<xs:complexType name="ShowDetailErrorMessageType">
        <xs:complexContent>
            <xs:extension base="base:ConfigurationObject">
                <xs:sequence>
                    <xs:element name="value" type="xs:boolean" default="false"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

</xs:schema>

