<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
  ~  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"
           targetNamespace="http://ws.apache.org/ns/synapse"
           xmlns="http://ws.apache.org/ns/synapse">

    <xs:element name="localEntry" type="LocalEntry">
        <xs:annotation>
            <xs:documentation source="description">
                LocalEntry defines entries in the local registry within a Synapse Configuration
            </xs:documentation>
        </xs:annotation>
    </xs:element>

    <xs:complexType name="LocalEntry" mixed="true">
        <!-- TODO : need to add the constraints (might need factory refactoring) -->
        <xs:annotation>
            <xs:documentation source="description">
                This describes the possible types of local entries that you can have
                in the Synapse Configuration
            </xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:any minOccurs="0" maxOccurs="1" processContents="skip"/>
        </xs:sequence>
        <xs:attribute name="key" type="xs:string" use="required"/>
        <xs:attribute name="src" type="xs:anyURI" use="optional"/>
    </xs:complexType>

</xs:schema>