<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XML Spy v3.5 NT (http://www.xmlspy.com) by Phill Hallam-Baker (VeriSign Inc.) -->
<schema targetNamespace="http://www.oasis-open.org/committees/security/docs/draft-sstc-schema-protocol-24.xsd" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:saml="http://www.oasis-open.org/committees/security/docs/draft-sstc-schema-assertion-24.xsd" xmlns:samlp="http://www.oasis-open.org/committees/security/docs/draft-sstc-schema-protocol-24.xsd" xmlns="http://www.w3.org/2001/XMLSchema" elementFormDefault="unqualified">
	<import namespace="http://www.oasis-open.org/committees/security/docs/draft-sstc-schema-assertion-24.xsd" schemaLocation="draft-sstc-schema-assertion-24.xsd"/>
	<import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="xmldsig-core-schema.xsd"/>
	<annotation>
		<documentation>draft-sstc-schema-protocol-24.xsd</documentation>
	</annotation>
	<complexType name="RequestAbstractType" abstract="true">
		<sequence>
			<element ref="samlp:RespondWith" minOccurs="0" maxOccurs="unbounded"/>
			<element ref="ds:Signature" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="RequestID" type="saml:IDType" use="required"/>
		<attribute name="MajorVersion" type="integer" use="required"/>
		<attribute name="MinorVersion" type="integer" use="required"/>
	</complexType>
	<element name="RespondWith" type="anyURI"/>
	<element name="Request" type="samlp:RequestType"/>
	<complexType name="RequestType">
		<complexContent>
			<extension base="samlp:RequestAbstractType">
				<choice>
					<element ref="samlp:Query"/>
					<element ref="samlp:SubjectQuery"/>
					<element ref="samlp:AuthenticationQuery"/>
					<element ref="samlp:AttributeQuery"/>
					<element ref="samlp:AuthorizationDecisionQuery"/>
					<element ref="saml:AssertionID" maxOccurs="unbounded"/>
					<element ref="samlp:AssertionArtifact" maxOccurs="unbounded"/>
				</choice>
			</extension>
		</complexContent>
	</complexType>
	<element name="AssertionArtifact" type="string"/>
	<element name="Query" type="samlp:QueryAbstractType"/>
	<complexType name="QueryAbstractType" abstract="true"/>
	<element name="SubjectQuery" type="samlp:SubjectQueryAbstractType"/>
	<complexType name="SubjectQueryAbstractType" abstract="true">
		<complexContent>
			<extension base="samlp:QueryAbstractType">
				<sequence>
					<element ref="saml:Subject"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="AuthenticationQuery" type="samlp:AuthenticationQueryType"/>
	<complexType name="AuthenticationQueryType">
		<complexContent>
			<extension base="samlp:SubjectQueryAbstractType">
				<sequence>
					<element ref="saml:ConfirmationMethod" minOccurs="0"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="AttributeQuery" type="samlp:AttributeQueryType"/>
	<complexType name="AttributeQueryType">
		<complexContent>
			<extension base="samlp:SubjectQueryAbstractType">
				<sequence>
					<element ref="saml:AttributeDesignator" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="AuthorizationDecisionQuery" type="samlp:AuthorizationDecisionQueryType"/>
	<complexType name="AuthorizationDecisionQueryType">
		<complexContent>
			<extension base="samlp:SubjectQueryAbstractType">
				<sequence>
					<element ref="saml:Actions"/>
					<element ref="saml:Evidence" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
				<attribute name="Resource" type="anyURI"/>
			</extension>
		</complexContent>
	</complexType>
	<complexType name="ResponseAbstractType" abstract="true">
		<sequence>
			<element ref="ds:Signature" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
		<attribute name="ResponseID" type="saml:IDType" use="required"/>
		<attribute name="InResponseTo" type="saml:IDType" use="required"/>
		<attribute name="MajorVersion" type="integer" use="required"/>
		<attribute name="MinorVersion" type="integer" use="required"/>
	</complexType>
	<element name="Response" type="samlp:ResponseType"/>
	<complexType name="ResponseType">
		<complexContent>
			<extension base="samlp:ResponseAbstractType">
				<sequence>
					<element ref="samlp:Status"/>
					<element ref="saml:Assertion" minOccurs="0" maxOccurs="unbounded"/>
				</sequence>
			</extension>
		</complexContent>
	</complexType>
	<element name="Status" type="samlp:StatusType"/>
	<complexType name="StatusType">
		<sequence>
			<element ref="samlp:StatusCode"/>
			<element ref="samlp:StatusMessage" minOccurs="0" maxOccurs="unbounded"/>
			<element ref="samlp:StatusDetail" minOccurs="0"/>
		</sequence>
	</complexType>
	<element name="StatusCode" type="samlp:StatusCodeType"/>
	<complexType name="StatusCodeType">
		<attribute name="Value" type="samlp:StatusCodeEnumType"/>
		<attribute name="SubStatusCode" type="QName" use="optional"/>
	</complexType>
	<element name="StatusMessage" type="string"/>
	<simpleType name="StatusCodeEnumType">
		<restriction base="QName">
			<enumeration value="samlp:Success"/>
			<enumeration value="samlp:VersionMismatch"/>
			<enumeration value="samlp:Receiver"/>
			<enumeration value="samlp:Sender"/>
		</restriction>
	</simpleType>
	<element name="StatusDetail" type="samlp:StatusDetailType"/>
	<complexType name="StatusDetailType">
		<sequence>
			<any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded"/>
		</sequence>
	</complexType>
</schema>

