<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright OASIS Open 2006-2007. All Rights Reserved. -->
<schema
    targetNamespace="urn:oasis:names:tc:xacml:1.0:profile:saml2.0:v2:schema:protocol:cd-01"
    xmlns="http://www.w3.org/2001/XMLSchema"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xmlns:samlp="urn:oasis:names:tc:SAML:2.0:protocol"
    xmlns:xacml="urn:oasis:names:tc:xacml:1.0:policy"
    xmlns:xacml-context="urn:oasis:names:tc:xacml:1.0:context"
    xmlns:xacml-saml="urn:oasis:names:tc:xacml:1.0:profile:saml2.0:v2:schema:assertion:cd-01"
    xmlns:xacml-samlp="urn:oasis:names:tc:xacml:1.0:profile:saml2.0:v2:schema:protocol:cd-01"
    elementFormDefault="unqualified"
    attributeFormDefault="unqualified"
    blockDefault="substitution"
    version="CD 1">
    <import namespace="urn:oasis:names:tc:SAML:2.0:protocol"
        schemaLocation="http://docs.oasis-open.org/security/saml/v2.0/saml-schema-protocol-2.0.xsd" />
    <import namespace="urn:oasis:names:tc:xacml:1.0:context"
        schemaLocation="cs-xacml-schema-context-01.xsd"/>
    <import namespace="urn:oasis:names:tc:xacml:1.0:policy"
        schemaLocation="cs-xacml-schema-policy-01.xsd"/>
    <import namespace="urn:oasis:names:tc:xacml:1.0:profile:saml2.0:v2:schema:assertion:cd-01"
        schemaLocation="xacml-1.0-profile-saml2.0-v2-schema-assertion-cd-1.xsd" />
    <annotation>
      <documentation>
          Document identifier: xacml-1.0-profile-saml2.0-v2-schema-protocol-cd-1
          Location: TBD
      </documentation>
    </annotation>
    <!--    -->
    <element name="XACMLAuthzDecisionQuery" xsi:type="xacml-samlp:XACMLAuthzDecisionQueryType" />
    <complexType name="XACMLAuthzDecisionQueryType">
        <complexContent>
            <extension base="samlp:RequestAbstractType">
                <sequence>
                    <element ref="xacml-context:Request" />
                    <element ref="xacml:Policy" minOccurs="0" maxOccurs="unbounded" />
                    <element ref="xacml:PolicySet" minOccurs="0" maxOccurs="unbounded" />
                    <element ref="xacml-saml:ReferencedPolicies" minOccurs="0" maxOccurs="1" />
                </sequence>
                <attribute name="InputContextOnly"
                           type="boolean"
                           use="optional"
                           default="false" />
                <attribute name="ReturnContext"
                           type="boolean"
                           use="optional"
                           default="false" />
                <attribute name="CombinePolicies"
                           type="boolean"
                           use="optional"
                           default="true" />
            </extension>
        </complexContent>
    </complexType>
    <!--    -->
    <element name="XACMLPolicyQuery" xsi:type="xacml-samlp:XACMLPolicyQueryType" />
    <complexType name="XACMLPolicyQueryType">
        <complexContent>
            <extension base="samlp:RequestAbstractType">
                <choice minOccurs="1" maxOccurs="unbounded">
                    <element ref="xacml-context:Request" />
                    <element ref="xacml:PolicySetIdReference" />
                    <element ref="xacml:PolicyIdReference" />
                </choice>
            </extension>
        </complexContent>
    </complexType>
</schema>

