<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://www.globus.org" xmlns:tns="http://www.globus.org" xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
	<!-- Run as stuff -->
	<xs:element name="caller-identity">
		<xs:complexType/>
	</xs:element>
	<xs:element name="service-identity">
		<xs:complexType/>
	</xs:element>
	<xs:element name="system-identity">
		<xs:complexType/>
	</xs:element>
	<xs:complexType name="run-asType">
		<xs:choice>
			<xs:element ref="tns:caller-identity"/>
			<xs:element ref="tns:service-identity"/>
			<xs:element ref="tns:system-identity"/>
		</xs:choice>
	</xs:complexType>
	<!-- Message protection stuff -->
	<xs:element name="integrity">
		<xs:complexType/>
	</xs:element>
	<xs:element name="privacy">
		<xs:complexType/>
	</xs:element>
	<xs:complexType name="protection-levelType">
		<xs:sequence>
			<xs:element ref="tns:integrity" minOccurs="0"/>
			<xs:element ref="tns:privacy" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<!-- Different auth method -->
	<xs:element name="none">
		<xs:complexType/>
	</xs:element>
	<xs:complexType name="gsiSecType">
		<xs:sequence>
			<xs:element name="protection-level" type="tns:protection-levelType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:group name="authMethodGp">
		<xs:sequence>
			<xs:element name="GSISecureConversation" type="tns:gsiSecType" minOccurs="0"/>
			<xs:element name="GSISecureMessage" type="tns:gsiSecType" minOccurs="0"/>
		</xs:sequence>
	</xs:group>
	<xs:complexType name="auth-methodType">
		<xs:choice>
			<xs:group ref="tns:authMethodGp"/>
			<xs:element ref="tns:none" minOccurs="0"/>
		</xs:choice>
	</xs:complexType>
	<!-- Method auth -->
	<xs:complexType name="methodType">
		<xs:sequence>
			<xs:element name="run-as" type="tns:run-asType" minOccurs="0"/>
			<xs:element name="auth-method" type="tns:auth-methodType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="name" type="xs:QName" use="required"/>
	</xs:complexType>
	<xs:element name="anonymous">
		<xs:complexType/>
	</xs:element>
	<xs:element name="reject-limited-proxy">
		<xs:complexType/>
	</xs:element>
	<!-- Security Config -->
	<xs:element name="securityConfig">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="method" type="tns:methodType" minOccurs="0" maxOccurs="unbounded"/>
				<xs:element name="auth-method" type="tns:auth-methodType" minOccurs="0"/>
				<xs:element name="run-as" type="tns:run-asType" minOccurs="0"/>
				<xs:element ref="tns:anonymous" minOccurs="0"/>
				<xs:element ref="tns:reject-limited-proxy"  minOccurs="0"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
</xs:schema>

