repository/schema/endpoint.xsd (277 lines of code) (raw):

<?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:include schemaLocation="misc/common.xsd"/> <xs:element name="endpoint" type="NamedEndpoint"> <xs:annotation> <xs:documentation source="description"> &lt;endpoint&gt; declarations for the synapse configuration </xs:documentation> </xs:annotation> </xs:element> <xs:complexType name="NamedEndpoint"> <xs:annotation> <xs:documentation source="description"> This is a named endpoint which will come on the top level synapse configuration </xs:documentation> </xs:annotation> <xs:complexContent> <xs:extension base="Endpoint"> <xs:attribute name="name" type="xs:string" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> <xs:complexType name="Endpoint"> <xs:annotation> <xs:documentation source="description"> This is a representation of an endpoint </xs:documentation> </xs:annotation> <xs:choice minOccurs="1"> <xs:group ref="leafEndpoints" minOccurs="0" maxOccurs="1"/> <xs:group ref="aggregatedEndpoints" minOccurs="0" maxOccurs="1"/> <xs:group ref="dynamicLB" minOccurs="0" maxOccurs="1"/> </xs:choice> <xs:attribute name="name" type="xs:string" use="optional"/> <xs:attribute name="key" type="xs:string" use="optional"/> </xs:complexType> <xs:group name="leafEndpoints"> <xs:annotation> <xs:documentation source="description"> This group represents the set of leaf level endpoints </xs:documentation> </xs:annotation> <xs:choice> <xs:element name="default" type="DefaultEndpoint"/> <xs:element name="address"> <xs:complexType> <xs:complexContent> <xs:extension base="DefaultEndpoint"> <xs:attribute name="uri" type="xs:anyURI" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="wsdl"> <xs:complexType> <xs:complexContent> <xs:extension base="DefaultEndpoint"> <xs:group ref="inlineWsdl" minOccurs="0" maxOccurs="1"/> <!-- TODO : fix the schema complication by changing the config --> <xs:attribute name="uri" type="xs:anyURI" use="optional"/> <xs:attribute name="service" type="xs:string" use="required"/> <xs:attribute name="port" type="xs:string" use="required"/> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> </xs:choice> </xs:group> <xs:group name="aggregatedEndpoints"> <xs:annotation> <xs:documentation source="description"> This group represents the secondary endpoints like load balance and fail over </xs:documentation> </xs:annotation> <xs:choice> <xs:group ref="lbEndpoints"/> <xs:group ref="failoverEndpoints"/> </xs:choice> </xs:group> <xs:group name="lbEndpoints"> <xs:annotation> <xs:documentation source="description"> This group represents the secondary load balance endpoints </xs:documentation> </xs:annotation> <xs:all> <xs:element name="session" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:attribute name="type" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="simpleClientSession"/> <!-- TODO : add other possible values --> </xs:restriction> </xs:simpleType> </xs:attribute> </xs:complexType> </xs:element> <xs:element name="loadbalance" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:choice maxOccurs="unbounded"> <xs:element name="endpoint" minOccurs="2" maxOccurs="unbounded"> <xs:complexType> <xs:choice> <xs:group ref="leafEndpoints" minOccurs="0" maxOccurs="1"/> <xs:group ref="failoverEndpoints" minOccurs="0" maxOccurs="1"/> </xs:choice> <xs:attribute name="name" type="xs:string" use="optional"/> <xs:attribute name="key" type="xs:string" use="optional"/> </xs:complexType> </xs:element> <xs:element name="member" minOccurs="2" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="hostName" type="xs:string" use="optional"/> <xs:attribute name="httpPort" type="xs:string" use="optional"/> <xs:attribute name="httpsPort" type="xs:string" use="optional"/> </xs:complexType> </xs:element> </xs:choice> <xs:attribute name="algorithm" type="xs:string" default="org.apache.synapse.endpoints.algorithms.RoundRobin" use="optional"/> <xs:attribute name="failover" type="xs:boolean" default="true" use="optional"/> </xs:complexType> </xs:element> </xs:all> </xs:group> <xs:group name="failoverEndpoints"> <xs:annotation> <xs:documentation source="description"> This group represents the secondary fail over endpoints </xs:documentation> </xs:annotation> <xs:all> <xs:element name="failover" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="endpoint" minOccurs="2" maxOccurs="unbounded"> <xs:complexType> <xs:choice> <xs:group ref="leafEndpoints" minOccurs="0" maxOccurs="1"/> <xs:group ref="lbEndpoints" minOccurs="0" maxOccurs="1"/> </xs:choice> <xs:attribute name="name" type="xs:string" use="optional"/> <xs:attribute name="key" type="xs:string" use="optional"/> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:all> </xs:group> <xs:group name="dynamicLB"> <xs:annotation> <xs:documentation source="description"> This group represents the dynamic loadbalance endpoint </xs:documentation> </xs:annotation> <xs:all> <xs:element name="dynamicLoadbalance" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="membershipHandler" minOccurs="1" maxOccurs="1"> <xs:complexType> <xs:sequence> <xs:element name="property" minOccurs="0" maxOccurs="unbounded"> <xs:complexType> <xs:attribute name="name" type="xs:string" use="required"/> <xs:attribute name="value" type="xs:string" use="required"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="class" type="xs:string" use="optional" default="org.apache.synapse.core.axis2.Axis2LoadBalanceMembershipHandler"/> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="algorithm" type="xs:string" use="optional" default="org.apache.synapse.endpoints.algorithms.RoundRobin"/> <xs:attribute name="failover" type="xs:boolean" use="optional" default="true"/> </xs:complexType> </xs:element> </xs:all> </xs:group> <xs:complexType name="DefaultEndpoint"> <xs:annotation> <xs:documentation source="description"> This is the type declaration of the default endpoint </xs:documentation> </xs:annotation> <xs:all> <xs:element name="enableSec" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:attribute name="policy" type="xs:string" use="required"/> </xs:complexType> </xs:element> <xs:element name="enableAddressing" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:attribute name="version" use="optional" default="final"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="final"/> <xs:enumeration value="submission"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="separateListener" use="optional" type="xs:boolean" default="false"/> </xs:complexType> </xs:element> <xs:element name="timeout" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:all> <xs:element name="duration" minOccurs="0" maxOccurs="1" type="xs:long"/> <xs:element name="responseAction" minOccurs="0" maxOccurs="1"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="discard"/> <xs:enumeration value="fault"/> </xs:restriction> </xs:simpleType> </xs:element> </xs:all> </xs:complexType> </xs:element> <xs:element name="markForSuspension" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:all> <xs:element name="errorCodes" minOccurs="0" maxOccurs="1" type="xs:string"/> <xs:element name="retriesBeforeSuspension" minOccurs="0" maxOccurs="1" type="xs:integer"/> <xs:element name="retryDelay" minOccurs="0" maxOccurs="1" type="xs:long"/> </xs:all> </xs:complexType> </xs:element> <xs:element name="suspendOnFailure" minOccurs="0" maxOccurs="1"> <xs:complexType> <xs:all> <xs:element name="errorCodes" minOccurs="0" maxOccurs="1" type="xs:string"/> <xs:element name="initialDuration" minOccurs="0" maxOccurs="1" type="xs:long"/> <xs:element name="progressionFactor" minOccurs="0" maxOccurs="1" type="xs:integer"/> <xs:element name="maximumDuration" minOccurs="0" maxOccurs="1" type="xs:long"/> </xs:all> </xs:complexType> </xs:element> <xs:element name="suspendDurationOnFailure" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation source="description"> This is deprecated, please use the suspendOnFailure </xs:documentation> </xs:annotation> </xs:element> </xs:all> <xs:attributeGroup ref="commonEndpoint"/> </xs:complexType> <xs:attributeGroup name="commonEndpoint"> <xs:annotation> <xs:documentation source="description"> This group of attributes represents the common endpoint attribute set </xs:documentation> </xs:annotation> <xs:attribute name="format" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="soap11"/> <xs:enumeration value="soap12"/> <xs:enumeration value="pox"/> <xs:enumeration value="get"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="optimize" use="optional"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="mtom"/> <xs:enumeration value="swa"/> </xs:restriction> </xs:simpleType> </xs:attribute> <xs:attribute name="encoding" type="xs:string" use="optional"/> <xs:attributeGroup ref="monitoringAspect"/> </xs:attributeGroup> </xs:schema>