<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright OASIS Open 2006-2010. All Rights Reserved. -->
<schema
    targetNamespace="urn:oasis:names:tc:xacml:3.0:profile:saml2.0:v2:schema:protocol:wd-13"
    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:3.0:core:schema:wd-17"
    xmlns:xacml-context="urn:oasis:names:tc:xacml:3.0:core:schema:wd-17"
    xmlns:xacml-saml="urn:oasis:names:tc:xacml:3.0:profile:saml2.0:v2:schema:assertion:wd-13"
    xmlns:xacml-samlp="urn:oasis:names:tc:xacml:3.0:profile:saml2.0:v2:schema:protocol:wd-13"
    elementFormDefault="unqualified"
    attributeFormDefault="unqualified"
    blockDefault="substitution"
    version="wd 12">
    <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:3.0:core:schema:wd-17"
        schemaLocation="http://docs.oasis-open.org/xacml/3.0/xacml-core-v3-schema-wd-17.xsd"/>
    <import namespace="urn:oasis:names:tc:xacml:3.0:profile:saml2.0:v2:schema:assertion:wd-13"
        schemaLocation="http://docs.oasis-open.org/xacml/3.0/xacml-3.0-profile-saml2.0-v2-schema-assertion-wd-13.xsd" />
    <annotation>
      <documentation>
          Document identifier: xacml-3.0-profile-saml2.0-v2-schema-protocol-wd-13
          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-samlp:AdditionalAttributes" minOccurs="0" maxOccurs="1" />
                    <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" />
                    <element ref="xacml-samlp:Extensions" minOccurs="0" />
                </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="AdditionalAttributes" xsi:type="xacml-samlp:AdditionalAttributesType" />
    <complexType name="AdditionalAttributesType">
        <sequence>
            <element ref="xacml-samlp:AssignedAttributes" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
    </complexType>

    <element name="Extensions" xsi:type="xacml-samlp:ExtensionsType" />
    <complexType name="ExtensionsType">
        <sequence>
			<any namespace="##any" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
        </sequence>
    </complexType>

    <element name="AssignedAttributes" xsi:type="xacml-samlp:AssignedAttributesType" />
    <complexType name="AssignedAttributesType">
        <sequence>
            <element ref="xacml-samlp:Holders" />
            <element ref="xacml-samlp:HolderAttributes" />
        </sequence>
    </complexType>
    <!--    -->
    <element name="Holders" xsi:type="xacml-samlp:HoldersType" />
    <complexType name="HoldersType">
        <sequence>
            <element ref="xacml:Match" maxOccurs="unbounded" />
        </sequence>
    </complexType>
    <!--    -->
    <element name="HolderAttributes" xsi:type="xacml-samlp:HolderAttributesType" />
    <complexType name="HolderAttributesType">
        <sequence>
            <element ref="xacml-context:Attribute" minOccurs="0" maxOccurs="unbounded" />
        </sequence>
    </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>
