Commit 80fc2b67 authored by Laurent Velez's avatar Laurent Velez
Browse files

Upload New File 19172xmlSchema.xsd

parent adc6eeab
Loading
Loading
Loading
Loading

19172xmlSchema.xsd

0 → 100644
+592 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema targetNamespace="http://uri.etsi.org/19172/v1.1.1#" xmlns:tsl="http://uri.etsi.org/02231/v2#" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://uri.etsi.org/19172/v1.1.1#" elementFormDefault="qualified" attributeFormDefault="unqualified">
	<xs:import namespace="http://uri.etsi.org/02231/v2#" schemaLocation="https://uri.etsi.org/02231/v3.1.2/ts_102231v030102_xsd.xsd"/>
	<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2008/REC-xmldsig-core-20080610/xmldsig-core-schema.xsd"/>
		<xs:complexType name="AnyType" mixed="true">
		<xs:sequence minOccurs="0" maxOccurs="unbounded">
			<xs:any namespace="##any" processContents="lax"/>
		</xs:sequence>
		<xs:anyAttribute namespace="##any"/>
	</xs:complexType>
	<xs:element name="SignaturePolicy" type="SignaturePolicyType"/>
	<xs:complexType name="SignaturePolicyType">
		<xs:sequence>
			<xs:element ref="Digest"/>
			<xs:element ref="PolicyComponents"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="Digest" type="DigestDetailsType"/>
	<xs:complexType name="DigestDetailsType">
		<xs:sequence>
			<xs:element ref="ds:DigestMethod"/>
			<xs:element ref="ds:DigestValue"/>
			<xs:element ref="ds:CanonicalizationMethod"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="PolicyComponents" type="PolicyComponentsType"/>
	<xs:complexType name="PolicyComponentsType">
		<xs:sequence>
			<xs:element ref="GeneralDetails"/>
			<xs:element ref="PolicyRules"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="GeneralDetails" type="GeneralDetailsType"/>
	<xs:complexType name="GeneralDetailsType">
		<xs:sequence>
			<xs:element ref="SigPolicyDetails"/>
			<xs:element ref="AuthorityDetails" minOccurs="0"/>
			<xs:element ref="OtherDetails" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SigPolicyDetails" type="SigPolicyDetailsType"/>
	<xs:complexType name="SigPolicyDetailsType">
		<xs:sequence>
			<xs:element name="PolicyIdentifier" type="xs:anyURI"/>
			<xs:element name="PolicyName" type="tsl:InternationalNamesType"/>
			<xs:element ref="tsl:DistributionPoints" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="AuthorityDetails" type="AuthorityDetailsType"/>
	<xs:complexType name="AuthorityDetailsType">
		<xs:sequence>
			<xs:element ref="Name" minOccurs="0"/>
			<xs:element ref="TradeName" minOccurs="0"/>
			<xs:element ref="PostalAddresses"/>
			<xs:element ref="ElectronicAddresses"/>
			<xs:element ref="ContactPersons" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="Name" type="tsl:InternationalNamesType"/>
	<xs:element name="TradeName" type="tsl:InternationalNamesType"/>
	<xs:element name="PostalAddresses" type="tsl:PostalAddressListType"/>
	<xs:element name="ElectronicAddresses" type="tsl:ElectronicAddressType"/>
	<xs:element name="ContactPersons" type="ContactPersonsListType"/>
	<xs:complexType name="ContactPersonsListType">
		<xs:sequence>
			<xs:element ref="ContactPerson" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ContactPerson" type="ContactPersonType"/>
	<xs:complexType name="ContactPersonType">
		<xs:sequence>
			<xs:element name="Name" type="xs:string"/>
			<xs:element ref="ElectronicAddresses"/>
			<xs:element name="PhoneNumbers" type="StringListType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="StringListType">
		<xs:list itemType="xs:string"/>
	</xs:simpleType>
	<xs:element name="OtherDetails" type="OtherDetailsType"/>
	<xs:complexType name="OtherDetailsType">
		<xs:sequence>
			<xs:element name="DateOfIssue" type="xs:dateTime"/>
			<xs:element name="SigningPeriod" type="TimePeriodType" minOccurs="0"/>
			<xs:element name="Other" type="AnyType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="TimePeriodType">
		<xs:sequence>
			<xs:element name="NotBefore" type="xs:dateTime"/>
			<xs:element name="NotAfter" type="xs:dateTime" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>

	<xs:element name="PolicyRules" type="PolicyRulesListType"/>
	<xs:complexType name="PolicyRulesListType">
		<xs:sequence>
			<xs:element ref="PolicyRule" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="PolicyRule" type="PolicyRuleType"/>
	<xs:group name="BasicRule">
		<xs:choice>
			<xs:element ref="DataToBeSignedRules"/>
			<xs:element ref="SigToDTBSRelationRules"/>
			<xs:element ref="SigFormatsAndLevels"/>
			<xs:element ref="AugmentationRules"/>
			<xs:element ref="SigningCertRules"/>
			<xs:element ref="TimeEvidencesRules"/>
			<xs:element ref="SignerAttributesConstraints"/>
			<xs:element ref="QualifyingPropertiesRules"/>
			<xs:element ref="SCDLoARules"/>
			<xs:element ref="CryptoSuitesRules"/>
			<xs:element ref="OtherRule" />
		</xs:choice>
	</xs:group>
	<xs:element name="OtherRule" type="AnyType"/>
	<xs:complexType name="PolicyRuleType">
		<xs:choice>
			<xs:element ref="CommitmentRules"/>
			<xs:group ref="BasicRule"/>
		</xs:choice>
		<xs:attribute name="RecommendedScope" type="ScopeListType" use="optional"/>
	</xs:complexType>
	<xs:simpleType name="ScopeListType">
		<xs:list itemType="ScopeType"/>
	</xs:simpleType>
	<xs:simpleType name="ScopeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Generation">
				<xs:annotation>
					<xs:documentation>The rule applies for signature generation</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Validation">
				<xs:annotation>
					<xs:documentation>The rule applies for signature validation</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="Augmentation">
				<xs:annotation>
					<xs:documentation>The rule applies for signature augmentation</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="CommitmentRules" type="CommitmentRulesType"/>
	<xs:complexType name="CommitmentRulesType">
		<xs:sequence>
			<xs:element ref="ComitmentRulesComponent" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="ComitmentRulesComponent" type="CommitmentRulesComponentType"/>
	<xs:complexType name="CommitmentRulesComponentType">
		<xs:sequence>
			<xs:element ref="Commitment" maxOccurs="unbounded"/>
			<xs:sequence>
				<xs:group ref="BasicRule" maxOccurs="unbounded"/>
			</xs:sequence>
		</xs:sequence>
		<xs:attribute name="MatchingIndicator" type="MatchingIndicatorType" use="required"/>
	</xs:complexType>
	<xs:element name="Commitment" type="CommitmentDetailsType"/>
	<xs:complexType name="CommitmentDetailsType">
		<xs:sequence>
			<xs:element name="Identifier" type="xs:anyURI"/>
			<xs:element name="Details" type="tsl:MultiLangStringType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="MatchingIndicatorType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="All"/>
			<xs:enumeration value="None"/>
			<xs:enumeration value="AtLeastOne"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="DataToBeSignedRules" type="DataToBeSignedRulesType"/>
	<xs:complexType name="DataToBeSignedRulesType">
		<xs:sequence>
			<xs:element name="AnyOfMimeType" type="StringListType" minOccurs="0"/>
			<xs:element name="NoneOfMimeType" type="StringListType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SigToDTBSRelationRules" type="SigToDTBSRelationRulesType"/>
	<xs:complexType name="SigToDTBSRelationRulesType">
		<xs:sequence>
			<xs:element ref="DTBSCardinality"/>
			<xs:element ref="SigDTBSRelativePosition" minOccurs="0"/>
			<xs:element ref="SigFormatsAndLevels" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="DTBSCardinality" type="CardinalityType"/>
	<xs:complexType name="CardinalityType">
		<xs:sequence>
			<xs:element name="MaximumValue" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:int">
							<xs:attribute name="qualifier" type="MaxValueQualEnumeratedType" use="required"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
			<xs:element name="MinimumValue" minOccurs="0">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:int">
							<xs:attribute name="qualifier" type="MinValueQualEnumeratedType" use="required"/>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="MaxValueQualEnumeratedType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="LessThan"/>
			<xs:enumeration value="LessOrEqualTo"/>
			<xs:enumeration value="Equal"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="MinValueQualEnumeratedType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="HigherThan"/>
			<xs:enumeration value="HigherOrEqualTo"/>
			<xs:enumeration value="Equal"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="SigDTBSRelativePosition" type="SigDTBSRelativePositionType"/>
	<xs:simpleType name="SigDTBSRelativePositionType">
		<xs:list itemType="RelativePositionValuesType"/>
	</xs:simpleType>
	<xs:simpleType name="RelativePositionValuesType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="EnvelopingSig"/>
			<xs:enumeration value="EnvelopedSig"/>
			<xs:enumeration value="DetachedSig"/>
			<xs:enumeration value="ASiC"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="SigFormatsAndLevels" type="SigFormatsAndLevelsType"/>
	<xs:complexType name="SigFormatsAndLevelsType">
		<xs:sequence>
			<xs:element ref="SigFormats" minOccurs="0" />
			<xs:element ref="SigLevels" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SigFormats" type="SigFormatsType"/>
	<xs:complexType name="SigFormatsType">
		<xs:sequence>
			<xs:element name="Format" type="xs:anyURI" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SigLevels" type="SigLevelsType"/>
	<xs:complexType name="SigLevelsType">
		<xs:sequence>
			<xs:element name="SigLevel" type="xs:anyURI"  maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>	
	<xs:element name="AugmentationRules" type="AugmentationRulesType"/>
	<xs:complexType name="AugmentationRulesType">
		<xs:sequence>
			<xs:element name="PreviousValidationRequired" type="xs:boolean"/>
			<xs:element name="LevelId">
				<xs:complexType>
					<xs:simpleContent>
						<xs:extension base="xs:anyURI">
							<xs:attribute name="Qualifier">
								<xs:simpleType>
									<xs:restriction base="xs:string">
										<xs:enumeration value="ThisLevel"/>
										<xs:enumeration value="MinimumLevel"/>
										<xs:enumeration value="MaximumLevel"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:attribute>
						</xs:extension>
					</xs:simpleContent>
				</xs:complexType>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="TrustAnchors" type="TrustAnchorListType"/>
	<xs:complexType name="TrustAnchorListType">
		<xs:sequence maxOccurs="unbounded">
			<xs:choice>
				<xs:element ref="X509CertificateBased" />
				<xs:element ref="TAsInTrustedList" />
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
	<xs:element name ="X509CertificateBased" type="Base64BinaryAndTimeType"/>
	<xs:complexType name="Base64BinaryAndTimeType">
		<xs:simpleContent>
			<xs:extension base="xs:base64Binary">
				<xs:attribute name="reliableUntil" type="xs:dateTime" use="optional"/>
			</xs:extension>
		</xs:simpleContent>
	</xs:complexType>
	<xs:element name ="TAsInTrustedList" type="TrustAnchorsInTLType"/>
	<xs:complexType name="TrustAnchorsInTLType">
	   	<xs:sequence>
			<xs:element name="TLReference" type="xs:anyURI"/>
			<xs:element name="ServiceTypes" type="tsl:NonEmptyURIListType" minOccurs="0"/>
			<xs:element name="ServiceStatuses" type="tsl:NonEmptyURIListType" minOccurs="0"/>
		</xs:sequence>
		<xs:attribute name="reliableUntil" type="xs:dateTime" use="optional"/>
	</xs:complexType>
	
	<xs:complexType name="NameConstraintsType">
		<xs:sequence>
			<xs:element ref="PermittedSubtrees" minOccurs="0"/>
			<xs:element ref="ExcludedSubtrees" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="PermittedSubtrees" type="GeneralSubTreesListType"/>
	<xs:element name="ExcludedSubtrees" type="GeneralSubTreesListType"/>
	<xs:complexType name="GeneralSubTreesListType">
		<xs:sequence>
			<xs:element ref="GeneralSubTree" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="GeneralSubTree" type="GeneralSubTreeType"/>
	<xs:complexType name="GeneralSubTreeType">
		<xs:sequence>
			<xs:element name="Base" type="xs:base64Binary"/>
			<xs:element name="Minimum" type="xs:integer" default="0"/>
			<xs:element name="Maximum" type="xs:integer" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PolicyConstraintsType">
		<xs:sequence>
			<xs:element name="RequireExplicitPolicy" type="xs:integer" minOccurs="0"/>
			<xs:element name="InhibitExplicitPolicy" type="xs:integer" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="CertificateTrustTreesType">
		<xs:sequence>
			<xs:element ref="CertificateTrustPoint" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="CertificateTrustPoint" type="CertificateTrustPointType"/>
	<xs:complexType name="CertificateTrustPointType">
		<xs:sequence>
			<xs:element ref="TrustAnchors"/>
			<xs:element name="PathLenConstraint" type="xs:integer" minOccurs="0"/>
			<xs:element name="AcceptablePolicySet" type="AcceptablePoliciesListType" minOccurs="0"/>
			<xs:element name="NameConstraints" type="NameConstraintsType" minOccurs="0"/>
			<xs:element name="PolicyConstraints" type="PolicyConstraintsType" minOccurs="0"/>
			<xs:element ref="UseCertPath" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AcceptablePoliciesListType">
		<xs:sequence>
			<xs:element name="AcceptablePolicy" type="xs:anyURI" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="UseCertPath">
		<xs:complexType>
			<xs:choice>
				<xs:element name="AsInSignature"/>
				<xs:sequence>
					<xs:element name="X509Certificate" type="xs:base64Binary"  maxOccurs="unbounded"/>
				</xs:sequence>
			</xs:choice>
		</xs:complexType>
	</xs:element>
	<xs:element name="CertificateRevReq" type="CertificateRevReqType"/>
	<xs:complexType name="CertificateRevReqType">
		<xs:sequence>
			 <xs:element name="EndRevReq" type="RevocationReqType"/>
			 <xs:element name="CACerts" type="RevocationReqType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="RevocationReqType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="clrcheck"/>
			<xs:enumeration value="ocspcheck"/>
			<xs:enumeration value="bothcheck"/>
			<xs:enumeration value="eithercheck"/>
			<xs:enumeration value="nocheck"/>
			<xs:enumeration value="other"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="CertificateRevTrustType">
		<xs:sequence>
			<xs:element ref="CertificateRevReq"/>
			<xs:element name="Freshness" minOccurs="0">
				<xs:complexType>
					<xs:choice>
						<xs:element name="MaxDifferenceRevocationAndValidation" type="xs:duration"/>
						<xs:element name="TimeAfterSignature" type="xs:duration"/>
					</xs:choice>
				</xs:complexType>
			</xs:element>
			<xs:element name="SigCertIssuedByCAKeepsExpiredRevokedCertsInfo" type="xs:duration" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SigningCertRules" type="SigningCertRulesType"/>
	<xs:complexType name="SigningCertRulesType">
		<xs:sequence>
			<xs:element ref="MandatedSigningCertInfo" minOccurs="0"/>
			<xs:element ref="SigningCertTrustConditions"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="MandatedSigningCertInfo">
		<xs:simpleType>
			<xs:restriction base="xs:string">
				<xs:enumeration value="signingCertOnly"/>
				<xs:enumeration value="fullPath"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<xs:element name="SigningCertTrustConditions" type="SigningCertTrustConditionsType"/>
	<xs:complexType name="SigningCertTrustConditionsType">
		<xs:sequence>
			<xs:element name="SignerTrustTrees" type="CertificateTrustTreesType"/>
			<xs:element name="SignerRevTrust" type="CertificateRevTrustType"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="TimeEvidencesRules" type="TimeEvidencesRulesType"/>
	<xs:complexType name="TimeEvidencesRulesType">
		<xs:sequence>
			<xs:element ref="RulesForSetOfEvidences" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="RulesForSetOfEvidences" type="RulesForSetOfEvidencesType"/>
	<xs:complexType name="RulesForSetOfEvidencesType">
		<xs:sequence>
			<xs:element name="EvidenceIdentifiers">
				<xs:complexType>
					<xs:sequence>
						<xs:element name="Identifier" type="xs:anyURI" maxOccurs="unbounded"/>
					</xs:sequence>
				</xs:complexType>
			</xs:element>
			<xs:element name="LevelOfAssurance" type="xs:anyURI"/>
			<xs:element ref="TimeStampTrustCondition" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="TimeStampTrustCondition" type="TimeStampTrustConditionType"/>
	<xs:complexType name="TimeStampTrustConditionType">
		<xs:sequence>
			<xs:element name="TstCertificateTrustTrees" type="CertificateTrustTreesType" minOccurs="0"/>
			<xs:element name="TstRevocationTrust" type="CertificateRevTrustType" minOccurs="0"/>
			<xs:element name="TstNameConstraints" type="NameConstraintsType" minOccurs="0"/>
			<xs:element name="SignatureTimeStampDelay" type="DeltaTimeType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="DeltaTimeType">
		<xs:sequence>
			<xs:element name="DeltaSeconds" type="xs:integer"/>
			<xs:element name="DeltaMinutes" type="xs:integer"/>
			<xs:element name="DeltaHours" type="xs:integer"/>
			<xs:element name="DeltaDays" type="xs:integer"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="SignerAttributesConstraints" type="SignerAttributesConstraintsType"/>
	<xs:complexType name="SignerAttributesConstraintsType">
		<xs:choice>
			<xs:element name="NoSignerAttributesAllowed"/>
			<xs:element name="ConstraintsOnOneSetOfAttributes" type="AttributesSetConstraintsType" maxOccurs="unbounded"/>
		</xs:choice>
	</xs:complexType>
	<xs:complexType name="AttributesSetConstraintsType">
		<xs:sequence>
			<xs:element name="HowCertAttribute" type="HowCertAttributeType"/>
			<xs:element name="AttrCertTrustTrees" type="CertificateTrustTreesType" minOccurs="0"/>
			<xs:element name="AttributeRevocationTrust" type="CertificateRevTrustType" minOccurs="0"/>
			<xs:element name="AttributeConstraints" type="AttributeConstraintsType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="HowCertAttributeType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="ClaimedAttribute"/>
			<xs:enumeration value="CertifiedAttribute"/>
			<xs:enumeration value="SignedAssertion"/>
			<xs:enumeration value="Any"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:complexType name="AttributeConstraintsType">
		<xs:sequence>
			<xs:element name="AttributeIdMustBePresent" type="xs:anyURI"/>
			<xs:element name="AttributeValueConstraint" type="AnyType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:element name="QualifyingPropertiesRules" type="QualifyingPropertiesRulesType"/>
	<xs:complexType name="QualifyingPropertiesRulesType">
		<xs:sequence>
			<xs:element name="LevelRules" type="LevelQualifyingPropertiesRulesType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="LevelQualifyingPropertiesRulesType">
		<xs:sequence>
			<xs:element name="LevelIdentifier" type="xs:anyURI" minOccurs="0"/>
			<xs:element name="SignedQualifyingProperties" type="QualifyingPropertiesListType" minOccurs="0"/>
			<xs:element name="UnsignedQualifyingProperties" type="QualifyingPropertiesListType" minOccurs="0"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="QualifyingPropertiesListType">
		<xs:sequence maxOccurs="unbounded">
			<xs:choice>
				<xs:element name="Choice">
					<xs:complexType>
						<xs:sequence>
							<xs:element name="PropertyId" type="xs:anyURI" maxOccurs="unbounded"/>
						</xs:sequence>
						<xs:attribute name="presenceLevel" type="PresenceLevelType" use="required"/>
					</xs:complexType>
				</xs:element>
				<xs:sequence>
					<xs:element name="PropertyId" maxOccurs="unbounded">
						<xs:complexType>
							<xs:simpleContent>
								<xs:extension base="xs:anyURI">
									<xs:attribute name="presenceLevel" type="PresenceLevelType" use="required"/>
								</xs:extension>
							</xs:simpleContent>
						</xs:complexType>
					</xs:element>
				</xs:sequence>
			</xs:choice>
		</xs:sequence>
	</xs:complexType>
	<xs:simpleType name="PresenceLevelType">
		<xs:restriction base="xs:string">
			<xs:enumeration value="Mandatory"/>
			<xs:enumeration value="Optional"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="SCDLoARules" type="xs:anyURI"/>
	<xs:element name="CryptoSuitesRules" type="CryptoSuiteRulesType"/>
	<xs:complexType name="CryptoSuiteRulesType">
		<xs:sequence>
			<xs:element name="AlgConstraints" type="AlgConstraintsType" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AlgConstraintsType">
		<xs:sequence>
			<xs:element name="AlgId" type="xs:anyURI"/>
			<xs:element name="Usages" type="UsagesType" minOccurs="0"/>
			<xs:element name="ExpirationDate" type="xs:dateTime" />
			<xs:element name="MinKeyLength" type="xs:integer" minOccurs="0"/>
			<xs:element name="MinHashLength" type="xs:integer" minOccurs="0"/>
			<xs:element name="Other" type="AnyType" minOccurs="0" maxOccurs="unbounded"/>
		</xs:sequence>
	</xs:complexType>
	
	<xs:simpleType name="UsagesType">
		<xs:list itemType="UsageType"/>
	</xs:simpleType>

	<xs:simpleType name="UsageType">
		<xs:restriction base="xs:anyURI">
			<xs:enumeration value="http://uri.etsi.org/19172/v1.1.1/Usage#Signature">
				<xs:annotation>
					<xs:documentation>Constraints for algorithms used for generating the digital signature</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="http://uri.etsi.org/19172/v1.1.1/Usage/#SigningCert">
				<xs:annotation>
					<xs:documentation>Constraints for algorithms used for generating the signing certificate</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="http://uri.etsi.org/19172/v1.1.1/Usage#PathCert">
				<xs:annotation>
					<xs:documentation>Constraints for algorithms used for generating certificates in certification paths</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="http://uri.etsi.org/19172/v1.1.1/Usage#RevStatData">
				<xs:annotation>
					<xs:documentation>Constraints for algorithms used for generating revocation status data</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="http://uri.etsi.org/19172/v1.1.1/Usage#Tstk">
				<xs:annotation>
					<xs:documentation>Constraints for algorithms used for generating time-stamp tokens</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="http://uri.etsi.org/19172/v1.1.1/Usage#AaCert">
				<xs:annotation>
					<xs:documentation>Constraints for algorithms used for generating attribute certificates</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
			<xs:enumeration value="http://uri.etsi.org/19172/v1.1.1/Usage#SigAss">
				<xs:annotation>
					<xs:documentation>Constraints for algorithms used for generating signed assertions</xs:documentation>
				</xs:annotation>
			</xs:enumeration>
		</xs:restriction>
	</xs:simpleType>
</xs:schema>