<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one
  or more contributor license agreements.  See the NOTICE file
  distributed with this work for additional information
  regarding copyright ownership.  The ASF licenses this file
  to you under the Apache License, Version 2.0 (the
  "License"); you may not use this file except in compliance
  with the License.  You may obtain a copy of the License at
  
      http://www.apache.org/licenses/LICENSE-2.0
    	  
  Unless required by applicable law or agreed to in writing,
  software distributed under the License is distributed on an
  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
  KIND, either express or implied.  See the License for the
  specific language governing permissions and limitations
  under the License.
  
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <xs:element name="axisconfig">
    <xs:complexType>
      <xs:sequence>
        <xs:choice maxOccurs="unbounded">
          <xs:element ref="parameter"/>
          <xs:element ref="deployer"/>
        </xs:choice>
        <xs:element ref="threadContextMigrators"/>
        <xs:element ref="messageReceivers"/>
        <xs:element ref="messageFormatters"/>
        <xs:element ref="messageBuilders"/>
        <xs:element ref="transportReceiver"/>
        <xs:element maxOccurs="unbounded" ref="transportSender"/>
        <xs:element ref="module"/>
        <xs:element ref="clustering"/>
        <xs:element maxOccurs="unbounded" ref="phaseOrder"/>
      </xs:sequence>
      <xs:attribute name="name" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="deployer">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="serviceBuilderExtension"/>
      </xs:sequence>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="directory" use="required" type="xs:NCName"/>
      <xs:attribute name="extension" use="required" type="xs:NMTOKEN"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="serviceBuilderExtension">
    <xs:complexType>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="name" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="threadContextMigrators">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="threadContextMigrator"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="threadContextMigrator">
    <xs:complexType>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="listId" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="messageReceivers">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="messageReceiver"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="messageReceiver">
    <xs:complexType>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="mep" use="required" type="xs:anyURI"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="messageFormatters">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="messageFormatter"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="messageFormatter">
    <xs:complexType>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="contentType" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="messageBuilders">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="messageBuilder"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="messageBuilder">
    <xs:complexType>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="contentType" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="transportReceiver">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="parameter"/>
      </xs:sequence>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="name" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="transportSender">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="parameter"/>
      </xs:sequence>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="name" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="module">
    <xs:complexType>
      <xs:attribute name="ref" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="clustering">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="parameter"/>
        <xs:element ref="members"/>
        <xs:element ref="groupManagement"/>
        <xs:element ref="nodeManager"/>
        <xs:element ref="stateManager"/>
      </xs:sequence>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="enable" use="required" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="members">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="member"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="member">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="hostName"/>
        <xs:element ref="port"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="hostName" type="xs:NMTOKEN"/>
  <xs:element name="port" type="xs:integer"/>
  <xs:element name="groupManagement">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="applicationDomain"/>
      </xs:sequence>
      <xs:attribute name="enable" use="required" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="applicationDomain">
    <xs:complexType>
      <xs:attribute name="agent" use="required"/>
      <xs:attribute name="description" use="required"/>
      <xs:attribute name="name" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="nodeManager">
    <xs:complexType>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="enable" use="required" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="stateManager">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="replication"/>
      </xs:sequence>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="enable" use="required" type="xs:boolean"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="replication">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="defaults"/>
        <xs:element maxOccurs="unbounded" ref="context"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="defaults">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="exclude"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="context">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="exclude"/>
      </xs:sequence>
      <xs:attribute name="class" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="phaseOrder">
    <xs:complexType>
      <xs:sequence>
        <xs:element maxOccurs="unbounded" ref="phase"/>
      </xs:sequence>
      <xs:attribute name="type" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="phase">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="handler"/>
      </xs:sequence>
      <xs:attribute name="class"/>
      <xs:attribute name="name" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="handler">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" ref="order"/>
      </xs:sequence>
      <xs:attribute name="class" use="required"/>
      <xs:attribute name="name" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="order">
    <xs:complexType>
      <xs:attribute name="phase" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="parameter">
    <xs:complexType mixed="true">
      <xs:sequence>
        <xs:element minOccurs="0" maxOccurs="unbounded" ref="property"/>
      </xs:sequence>
      <xs:attribute name="locked" type="xs:boolean"/>
      <xs:attribute name="name" use="required" type="xs:NCName"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="property">
    <xs:complexType>
      <xs:attribute name="name" use="required" type="xs:NCName"/>
      <xs:attribute name="value" use="required"/>
    </xs:complexType>
  </xs:element>
  <xs:element name="exclude">
    <xs:complexType>
      <xs:attribute name="name" use="required"/>
    </xs:complexType>
  </xs:element>
</xs:schema>
