<?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-21.xsd" 
        xmlns="http://www.w3.org/2001/XMLSchema" 
        xmlns:samlp="http://www.oasis-open.org/committees/security/docs/draft-sstc-schema-protocol-21.xsd" 
        xmlns:saml="http://www.oasis-open.org/committees/security/docs/draft-sstc-schema-assertion-21.xsd" 
        xmlns:ds="http://www.w3.org/2000/09/xmldsig#" 
        elementFormDefault="unqualified">
        <import namespace="http://www.oasis-open.org/committees/security/docs/draft-sstc-schema-assertion-21.xsd" 
                schemaLocation="draft-sstc-schema-assertion-21.xsd"/>
        <import namespace="http://www.w3.org/2000/09/xmldsig#" 
                schemaLocation="xmldsig-core-schema.xsd"/>
        <annotation>
                <documentation>draft-sstc-schema-protocol-21.xsd</documentation>
        </annotation>
        <simpleType name="CompletenessSpecifierType">
                <restriction base="string">
                        <enumeration value="Partial"/>
                        <enumeration value="AllOrNone"/>
                </restriction>
        </simpleType>
        <simpleType name="StatusCodeType">
                <restriction base="string">
                        <enumeration value="Success"/>
                        <enumeration value="Failure"/>
                        <enumeration value="Error"/>
                        <enumeration value="Unknown"/>
                </restriction>
        </simpleType>
        <complexType name="RequestAbstractType" abstract="true">
                <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="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:AuthorizationQuery"/>
                                        <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>
                                <attribute name="CompletenessSpecifier" 
                                                type="samlp:CompletenessSpecifierType" use="required"/>
                        </extension>
                </complexContent>
        </complexType>
        <element name="AuthorizationQuery" type="samlp:AuthorizationQueryType"/>
        <complexType name="AuthorizationQueryType">
                <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">
                <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">
                                <choice minOccurs="0" maxOccurs="unbounded">
                                        <element ref="saml:Assertion"/>
                                        <element ref="saml:SingleAssertion"/>
                                        <element ref="saml:MultipleAssertion"/>
                                </choice>
                                <attribute name="StatusCode" 
                                                        type="samlp:StatusCodeType" use="required"/>
                        </extension>
                </complexContent>
        </complexType>
</schema>

