<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="urn:oasis:names:tc:dss-x:1.0:profiles:SignaturePolicy:schema#" xmlns:xades="http://uri.etsi.org/01903/v1.3.2#" xmlns:saml="urn:oasis:names:tc:SAML:1.0:assertion" xmlns:dssades="urn:oasis:names:tc:dss:1.0:profiles:AdES:schema#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema" xmlns="urn:oasis:names:tc:dss-x:1.0:profiles:SignaturePolicy:schema#" xmlns:vr="urn:oasis:names:tc:dss:1.0:profiles:verificationreport:schema#"  elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd"/>
	<xs:import namespace="urn:oasis:names:tc:SAML:1.0:assertion" schemaLocation="http://www.oasis-open.org/committees/download.php/3408/oasis-sstc-saml-schema-protocol-1.1.xsd"/>
	<xs:import namespace="http://uri.etsi.org/01903/v1.3.2#" schemaLocation="http://uri.etsi.org/01903/v1.3.2/XAdES.xsd"/>
	<xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/xml.xsd"/>
	<xs:import namespace="urn:oasis:names:tc:dss:1.0:profiles:AdES:schema#" schemaLocation="http://docs.oasis-open.org/dss/v1.0/oasis-dss-profiles-AdES-schema-v1.0-os.xsd"/>
	<xs:import namespace="urn:oasis:names:tc:dss:1.0:core:schema" schemaLocation="http://docs.oasis-open.org/dss/v1.0/oasis-dss-core-schema-v1.0-os.xsd"/>
	<xs:import namespace="urn:oasis:names:tc:dss:1.0:profiles:verificationreport:schema#" schemaLocation="http://www.oasis-open.org/apps/org/workgroup/dss-x/download.php/32632/VerificationReport-WD3.xsd"/>
	<xs:complexType name="SignaturePolicyDetailsType">
		<xs:sequence>
			<xs:element name="SignaturePolicyIdentifier" type="xs:anyURI"/>
			<xs:element name="SignaturePolicyLocation" type="xs:anyURI" minOccurs="0"/>
			<xs:element name="DigestAndAlgorithm" type="xades:DigestAlgAndValueType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="GenerateUnderSignaturePolicy" type="SignaturePolicyDetailsType"/>
	<xs:element name="ReturnSupportedSignaturePolicies"/>
	<xs:element name="UsedSignaturePolicy" type="SignaturePolicyDetailsType"/>
	<xs:element name="SupportedSignaturePolicies">
		<xs:complexType>
			<xs:sequence>
				<xs:element name="SupportedSignaturePolicy" type="SignaturePolicyDetailsType" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>

<xs:element name="VerifyUnderSignaturePolicy" type="VerifyUnderSignaturePolicyType"/>

<xs:complexType name="VerifyUnderSignaturePolicyType">		
	<xs:sequence>
		<xs:element name="DefaultPolicy" type="SignaturePolicyDetailsType" minOccurs="0"/>
		<xs:element ref="ExplicitPolicies" minOccurs="0"/>
	</xs:sequence>
</xs:complexType>

<xs:element name="ExplicitPolicies" type="PolicySignaturePairsType" /> 
<xs:complexType name="PolicySignaturePairsType">		
	<xs:sequence>
		<xs:element ref="PolicySignaturePair" maxOccurs="unbounded"/>
	</xs:sequence>
</xs:complexType>

<xs:element name="PolicySignaturePair" type="PolicySignaturePairType" /> 
<xs:complexType name="PolicySignaturePairType">		
   <xs:sequence>
		<xs:element ref="SignatureIdentifier" />
		  <xs:element ref="SignaturePolicy" />
   </xs:sequence>
</xs:complexType>
<xs:element name="SignaturePolicy" type="SignaturePolicyDetailsType" />
<xs:element name="SignatureIdentifier" type="vr:SignatureIdentifierType" />	
</xs:schema>
