<commit_before><?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:iso:std:iso-iec:24727:tech:schema"
		xmlns="http://www.w3.org/2001/XMLSchema"
		xmlns:iso="urn:iso:std:iso-iec:24727:tech:schema"
		xmlns:ecdsa="http://www.w3.org/2001/04/xmldsig-more#"
		xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema"
		elementFormDefault="qualified" attributeFormDefault="unqualified">

	<include schemaLocation="ISO24727-3.xsd" />
	<include schemaLocation="ISOIFD.xsd" />

	<import namespace="http://www.w3.org/2001/04/xmldsig-more#"
			schemaLocation="ecdsa.xsd" />

	<import namespace="urn:oasis:names:tc:dss:1.0:core:schema"
			schemaLocation="oasis-dss-core-schema-v1.0-os.xsd" />

	<!-- ============================== -->
	<!--      Connection Management     -->
	<!-- ============================== -->

	<!-- TC_API_Open -->

	<element name="TC_API_Open">
		<complexType>
			<complexContent>
				<extension base="iso:RequestType">
					<sequence>
						<element name="ChannelHandle" type="iso:ChannelHandleType" />
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="TC_API_OpenResponse">
		<complexType>
			<complexContent>
				<extension base="iso:ResponseType">
					<sequence>
						<element name="ChannelHandle" type="iso:ChannelHandleType" minOccurs="0" />
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<!-- TC_API_Close -->

	<element name="TC_API_Close">
		<complexType>
			<complexContent>
				<extension base="iso:RequestType">
					<sequence>
						<element name="ChannelHandle" type="iso:ChannelHandleType" />
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="TC_API_CloseResponse">
		<complexType>
			<complexContent>
				<extension base="iso:ResponseType">
					<sequence />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="TLS_PSK_ParametersType">
		<sequence>
			<element name="PSK" type="hexBinary" />
			<element name="CipherSuite" type="string" minOccurs="0" maxOccurs="unbounded" />
			<element name="DIDName" type="iso:DIDNameType" minOccurs="0" />
		</sequence>
	</complexType>

	<!-- StartPAOS -->

	<element name="StartPAOS">
		<complexType>
			<complexContent>
				<extension base="iso:RequestType">
					<sequence>
						<element name="SessionIdentifier" type="string" />
						<element name="ConnectionHandle" type="iso:ConnectionHandleType" minOccurs="0" maxOccurs="unbounded" />
						<element name="UserAgent" minOccurs="0">
							<complexType>
								<sequence>
									<element name="Name" type="string" />
									<element name="VersionMajor" type="integer" />
									<element name="VersionMinor" type="integer" />
									<element name="VersionSubminor" type="integer" minOccurs="0" />
								</sequence>
							</complexType>
						</element>
						<element name="SupportedAPIVersions" minOccurs="0" maxOccurs="unbounded">
							<complexType>
								<sequence>
									<element name="Major" type="integer" />
									<element name="Minor" type="integer" minOccurs="0" />
									<element name="Subminor" type="integer" minOccurs="0" />
								</sequence>
							</complexType>
						</element>
						<element name="SupportedDIDProtocols" type="anyURI" minOccurs="0" maxOccurs="unbounded"	/>
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="StartPAOSResponse">
		<complexType>
			<complexContent>
				<extension base="iso:ResponseType">
					<sequence />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<!-- ============================== -->
	<!--   Definition of common types   -->
	<!-- ============================== -->

	<complexType name="AlgorithmIdentifierType">
		<sequence>
			<element name="Algorithm" type="anyURI" />
			<element name="Parameters" type="anyType" minOccurs="0" />
		</sequence>
	</complexType>

	<simpleType name="ByteType">
		<restriction base="hexBinary">
			<length value="1"/>
		</restriction>
	</simpleType>

	<complexType name="CardCallSequenceType">
		<sequence maxOccurs="unbounded" >
			<element ref="iso:CardCall" />
		</sequence>
	</complexType>

	<element name="CardCall">
		<complexType>
			<complexContent>
				<extension base="iso:CardCallType">
					<sequence />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="CardCallType">
		<choice>
			<sequence>
				<element name="CommandAPDU" type="hexBinary" />
				<element name="ResponseAPDU" type="iso:ResponseAPDUType" maxOccurs="unbounded" />
			</sequence>
			<sequence>
				<element name="APICall" type="dss:AnyType" />
				<element name="APIResponse" type="dss:AnyType" maxOccurs="unbounded" />
			</sequence>
		</choice>
	</complexType>

	<complexType name="CertificateRefType">
		<complexContent>
			<extension base="iso:DataRefType">
				<sequence>
					<element name="CertificateType" type="anyURI" minOccurs="0" />
				</sequence>
			</extension>
		</complexContent>
	</complexType>

	<complexType name="DataMaskType">
		<sequence>
			<element name="Tag" type="hexBinary" minOccurs="0" />
			<choice>
				<element name="MatchingData" type="iso:MatchingDataType" />
				<element name="DataObject" type="iso:DataMaskType" />
			</choice>
		</sequence>
	</complexType>

	<complexType name="DataRefType">
		<sequence>
			<element name="DataSetName" type="iso:DataSetNameType" />
			<element name="DSIName" type="iso:DSINameType" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="DIDMarkerType">
		<choice>
			<element name="PinCompareMarker" type="iso:PinCompareMarkerType" />
			<element name="MutualAuthMarker" type="iso:MutualAuthMarkerType" />
			<element name="RSAAuthMarker" type="iso:RSAAuthMarkerType" />
			<element name="CryptoMarker" type="iso:CryptoMarkerType" />
			<element name="EACMarker" type="iso:EACMarkerType" />
			<element name="PACEMarker" type="iso:PACEMarkerType" />
			<element name="TAMarker" type="iso:TAMarkerType" />
			<element name="CAMarker" type="iso:CAMarkerType" />
			<element name="RIMarker" type="iso:RIMarkerType" />
		</choice>
	</complexType>

	<complexType name="KeyValueType">
		<sequence>
			<element name="KeyValue" type="hexBinary" />
			<element name="Format" type="anyURI" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="KeyRefType">
		<sequence>
			<element name="KeyRef" type="hexBinary" />
			<element name="Protected" type="boolean" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="MatchingDataType">
		<sequence>
			<element name="Offset" type="hexBinary" minOccurs="0" />
			<element name="Length" type="hexBinary" minOccurs="0" />
			<element name="MatchingValue" type="hexBinary" />
			<element name="Mask" type="hexBinary" minOccurs="0" />
		</sequence>
		<attribute name="MatchingRule" type="iso:MatchingRuleType" use="optional" default="Equals" />
	</complexType>

	<simpleType name="MatchingRuleType">
		<restriction base="string">
			<enumeration value="Equals" />
			<enumeration value="Contains" />
		</restriction>
	</simpleType>

	<complexType name="ResponseAPDUType">
		<sequence>
			<element name="Body" type="iso:DataMaskType" minOccurs="0" />
			<element name="Trailer" type="hexBinary" />
			<element ref="iso:Conclusion" minOccurs="0"/>
		</sequence>
	</complexType>

	<complexType name="StartSessionInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="SharedSecurityState" type="boolean" minOccurs="0" />
					<element name="DisableImplicitAuthentication" type="boolean" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="StartSessionOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="ConnectionHandle" type="iso:ConnectionHandleType" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<element name="Conclusion">
		<complexType>
			<complexContent>
				<extension base="iso:ConclusionType">
					<sequence />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="ConclusionType">
		<choice>
			<element name="RecognizedState" type="IDREF" />
			<element name="RecognizedCardType" type="anyURI" />
			<element ref="iso:CardCall" maxOccurs="unbounded" />
		</choice>
	</complexType>

	<element name="StateInfo">
		<complexType>
			<complexContent>
				<extension base="iso:StateInfoType">
					<sequence />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="StateInfoType">
		<sequence>
			<element name="StateRecognition" minOccurs="0" type="iso:CardCallSequenceType" />
			<element name="State" type="iso:StateType" maxOccurs="unbounded" />
		</sequence>
	</complexType>

	<complexType name="StateType">
		<sequence>
			<element name="RetryCounter" type="nonNegativeInteger" minOccurs="0" />
			<element name="UsageCounter" type="nonNegativeInteger" minOccurs="0" />
			<element name="StateTransition" type="iso:StateTransitionType" minOccurs="0" maxOccurs="unbounded" />
		</sequence>
		<attribute name="StateName" type="ID" use="required" />
		<attribute name="StateClass" type="iso:StateClassType" use="required" />
	</complexType>

	<simpleType name="StateClassType">
		<restriction base="string">
			<enumeration value="Operational" />
			<enumeration value="NotOperational" />
			<enumeration value="RecognitionNecessary" />
		</restriction>
	</simpleType>

	<complexType name="StateTransitionType">
		<sequence>
			<choice maxOccurs="unbounded">
				<element name="DIDAuthenticationState" type="iso:DIDAuthenticationStateType" />
				<element name="RetryCounter" type="nonNegativeInteger" />
				<element name="UsageCounter" type="nonNegativeInteger" />
				<element name="FixedProcedure" type="iso:CardCallSequenceType" />
			</choice>			
			<element name="UpdateCounter" type="iso:UpdateCounterType" minOccurs="0" maxOccurs="2" />
		</sequence>
		<attribute name="TargetState" type="IDREF" use="optional" />
	</complexType>

	<complexType name="UpdateCounterType">
		<simpleContent>
			<extension base="integer">
				<attribute name="operation" use="required">
					<simpleType>
						<!-- only the operations "set" and "add" are supported -->
						<restriction base="string">
							<enumeration value="set" />
							<enumeration value="add" />
						</restriction>
					</simpleType>
				</attribute>
				<attribute name="variable" use="required">
					<simpleType>
						<!-- only the variables "RetryCounter" and "UsageCounter" are supported -->
						<restriction base="string">
							<enumeration value="RetryCounter" />
							<enumeration value="UsageCounter" />
						</restriction>
					</simpleType>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>

	<!-- ============================= -->
	<!--        A.9 PIN Compare        -->
	<!-- ============================= -->
	<!--   OID = 1.3.162.15480.3.0.9   -->
	<!-- ============================= -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="PinCompareMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="PinRef" type="iso:KeyRefType" />
					<element name="PinValue" type="string" minOccurs="0" />
					<element name="PasswordAttributes" type="iso:PasswordAttributesType" minOccurs="0" />
					<element ref="iso:StateInfo" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="PinCompareDIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="OldPinOrPUK" type="string" minOccurs="0" />
					<element name="Marker" type="iso:PinCompareMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ========== -->
	<!--   DIDGet   -->
	<!-- ========== -->

	<!-- DIDStructure contains Marker -->

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="PinCompareDIDAuthenticateInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Pin" type="string" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="PinCompareDIDAuthenticateOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="RetryCounter" type="nonNegativeInteger" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =============================== -->
	<!--    A.11 Mutual Authentication   -->
	<!--      with key establishment     -->
	<!-- =============================== -->
	<!--   OID = 1.3.162.15480.3.0.12    -->
	<!-- =============================== -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="MutualAuthMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="EncryptionAlgorithm" type="anyURI" minOccurs="0"/>
					<element name="MacAlgorithm" type="anyURI" minOccurs="0" />
					<element name="EncryptionAlgorithmForSessionKey" type="anyURI" minOccurs="0" />
					<element name="MacAlgorithmForSessionKey" type="anyURI" minOccurs="0" />
					<element name="DerivationAlgorithmSessionKeysAndCounter" type="anyURI" minOccurs="0"/>
					<element name="CardAlgId" type="iso:ByteType" minOccurs="0" />
					<element name="K_enc" type="hexBinary" minOccurs="0" />
					<element name="K_mac" type="hexBinary" minOccurs="0" />
					<element name="DIV_IFD" type="hexBinary" minOccurs="0" />
					<element name="KeyEncMacRef" type="hexBinary" minOccurs="0" />
					<element name="SecurityEnvironmentIdentifier" type="iso:ByteType" minOccurs="0" />
					<element name="ICCSNRef" type="iso:DataRefType" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============ -->
	<!--   DIDCreate  -->
	<!-- ============ -->
	<!--   DIDUpdate  -->
	<!-- ============ -->

	<complexType name="MutualAuthDIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="Marker" type="iso:MutualAuthMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ========== -->
	<!--   DIDGet   -->
	<!-- ========== -->

	<!-- DIDStructure contains Marker -->

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="MutualAuthDIDAuthInternalAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Challenge" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="MutualAuthDIDAuthMutualAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="InternalCryptogram" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="MutualAuthDIDAuthExternalAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="MutualCryptogram" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============================= -->
	<!-- A.14 Extended Access Control  -->
	<!-- ============================= -->
	<!--   OID = 1.3.162.15480.3.0.14  -->
	<!-- ============================= -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="EACMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="PACEDID" type="iso:DIDNameType" minOccurs="0" />
					<element name="CADID" type="iso:DIDNameType" />
					<element name="TADID" type="iso:DIDNameType" />
					<element name="RIDID" type="iso:DIDNameType" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============================= -->
	<!--  CardApplicationStartSession  -->
	<!-- ============================= -->

	<complexType name="EACSessionInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="RequiredAge" type="positiveInteger" minOccurs="0" />
					<element name="RequiredCommunity" type="string" minOccurs="0" />
					<element name="VerifyDocumentValidity" type="boolean" minOccurs="0" />
					<element name="PerformRestrictedIdentification" type="boolean" minOccurs="0" />
					<element name="RequiredCHAT" type="hexBinary" minOccurs="0" />
					<element name="OptionalCHAT" type="hexBinary" minOccurs="0" />
					<element name="DataSetToBeRead" type="iso:DataSetNameType" minOccurs="0" maxOccurs="unbounded" />
					<element name="TransactionInfo" type="string" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EACSessionOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="AgeVerification" type="anyURI" minOccurs="0" />
					<element name="CommunityVerification" type="anyURI" minOccurs="0" />
					<element name="DocumentValidityVerification" type="anyURI" minOccurs="0" />
					<element name="SectorSpecificIdentifier" type="hexBinary" minOccurs="0" />
					<element name="DataSet" maxOccurs="unbounded" minOccurs="0">
						<complexType>
							<sequence>
								<element name="DataSetName" type="iso:DataSetNameType" />
								<element ref="dss:Result" />
								<element name="DSI" minOccurs="0" maxOccurs="unbounded">
									<complexType>
										<sequence>
											<element name="DSIName" type="iso:DSINameType" />
											<element ref="dss:Result" />
											<element name="DSIContent" type="hexBinary" minOccurs="0" />
										</sequence>
									</complexType>
								</element>
							</sequence>
						</complexType>
					</element>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============================= -->
	<!--        DIDAuthenticate        -->
	<!-- ============================= -->

	<complexType name="EAC1InputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Certificate" type="hexBinary" maxOccurs="unbounded" />
					<element name="CertificateDescription" type="hexBinary" maxOccurs="unbounded" minOccurs="0" />
					<element name="ProviderInfo" type="hexBinary" minOccurs="0" />
					<element name="RequiredCHAT" type="hexBinary" minOccurs="0" />
					<element name="OptionalCHAT" type="hexBinary" minOccurs="0" />
					<element name="AuthenticatedAuxiliaryData" type="hexBinary" minOccurs="0" />
					<element name="TransactionInfo" type="string" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EAC1OutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="RetryCounter" type="nonNegativeInteger" minOccurs="0" />
					<element name="CertificateHolderAuthorizationTemplate" type="hexBinary" minOccurs="0" />
					<element name="CertificationAuthorityReference" type="hexBinary" maxOccurs="2" minOccurs="0" />
					<element name="EFCardAccess" type="hexBinary" minOccurs="0" />
					<element name="IDPICC" type="hexBinary" minOccurs="0" />
					<element name="Challenge" type="hexBinary" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EAC2InputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<sequence>
						<element name="Certificate" type="hexBinary" minOccurs="0" maxOccurs="unbounded" />
					</sequence>
					<element name="EphemeralPublicKey" type="hexBinary" />
					<element name="Signature" type="hexBinary" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EAC2OutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<choice>
					<sequence>
						<element name="EFCardSecurity" type="hexBinary" />
						<element name="AuthenticationToken" type="hexBinary" />
						<element name="Nonce" type="hexBinary" />
					</sequence>
					<element name="Challenge" type="hexBinary" />
				</choice>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EACAdditionalInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Signature" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ================================== -->
	<!--           A.14.1 PACE              -->
	<!-- ================================== -->
	<!--    OID = 0.4.0.127.0.7.2.2.4       -->
	<!-- ================================== -->
	<!--  PACE-DH:   0.4.0.127.0.7.2.2.4.1  -->
	<!--  PACE-ECDH: 0.4.0.127.0.7.2.2.4.2  -->
	<!-- ================================== -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="PACEMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="PasswordRef" type="iso:KeyRefType" />
					<element name="PasswordValue" type="string" minOccurs="0" />
					<element name="minLength" type="nonNegativeInteger" minOccurs="0" />
					<element name="maxLength" type="nonNegativeInteger" minOccurs="0" />
					<element ref="iso:StateInfo" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="PACEDIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="PasswordValue" type="string" minOccurs="0" />
					<element name="Marker" type="iso:PACEMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="PACEDIDAuthenticateInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Password" type="string" minOccurs="0" />
					<element name="Certificate" type="hexBinary" minOccurs="0" maxOccurs="unbounded" />
					<element name="CertificateDescription" type="hexBinary" minOccurs="0" maxOccurs="unbounded" />
					<element name="RequestedCHAT" type="hexBinary" minOccurs="0" />
					<element name="ReturnEFCardAccess" type="boolean" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="PACEDIDAuthenticateOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="RetryCounter" type="nonNegativeInteger" minOccurs="0" />
					<element name="CertificateHolderAuthorizationTemplate" type="hexBinary" minOccurs="0" />
					<element name="CertificationAuthorityReference" type="iso:DIDNameType" minOccurs="0" maxOccurs="2" />
					<element name="EFCardAccess" type="hexBinary" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ================================== -->
	<!--     A.14.2 Chip Authentication     -->
	<!-- ================================== -->
	<!--    OID = 0.4.0.127.0.7.2.2.3       -->
	<!-- ================================== -->
	<!--   CA-DH:   0.4.0.127.0.7.2.2.3.1   -->
	<!--   CA-ECDH: 0.4.0.127.0.7.2.2.3.2   -->
	<!-- ================================== -->

	<!-- ============================= -->
	<!--   Definition of basic types   -->
	<!-- ============================= -->

	<complexType name="SubjectPublicKeyInfoType">
		<sequence>
			<element name="Algorithm" type="iso:AlgorithmIdentifierType" />
			<element name="SubjectPublicKey" type="hexBinary" />
		</sequence>
	</complexType>

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="CAMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="KeyId" type="integer" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->

	<complexType name="CADIDCreateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="KeyInfo" type="iso:CAKeyInfoType" />
					<element name="Marker" type="iso:CAMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="CAKeyInfoType">
		<choice>
			<element name="PrivateKeyValue" type="iso:KeyValueType" />
			<element name="generateFlag" type="iso:NULL" />
		</choice>
	</complexType>

	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="CADIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="KeyInfo" type="iso:CAKeyInfoType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="CAInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="PublicKey" type="iso:SubjectPublicKeyInfoType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="CAAuthenticationTokenType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="AuthenticationToken" type="hexBinary" />
					<element name="Nonce" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ================================== -->
	<!--   A.14.3 Terminal Authentication   -->
	<!-- ================================== -->
	<!--    OID = 0.4.0.127.0.7.2.2.2       -->
	<!-- ================================== -->
	<!--   TA-RSA:   0.4.0.127.0.7.2.2.2.1  -->
	<!--   TA-ECDSA: 0.4.0.127.0.7.2.2.2.2  -->
	<!-- ================================== -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="TAMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->
	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="TADIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="RootKey" type="iso:SubjectPublicKeyInfoType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="TADIDAuthInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<sequence minOccurs="0" maxOccurs="unbounded">
						<element name="Certificate" type="hexBinary" />
						<element name="CertificateType" type="anyURI" minOccurs="0" />
					</sequence>
					<element name="AuthenticatedAuxiliaryData" type="hexBinary" minOccurs="0" />
					<element name="CompressedEphemeralPublicKey" type="hexBinary" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="TADIDAuthOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Challenge" type="hexBinary" />
					<element name="IDPICC" type="hexBinary" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="TADIDAuthExternalAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Signature" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="TAAuxInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="AuthenticatedAuxiliaryData" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ================================== -->
	<!--   A.14.4 Restricted Identification -->
	<!-- ================================== -->
	<!--    OID = 0.4.0.127.0.7.2.2.5       -->
	<!-- ================================== -->
	<!--   RI-DH:   0.4.0.127.0.7.2.2.5.1   -->
	<!--   RI-ECDH: 0.4.0.127.0.7.2.2.5.2   -->
	<!-- ================================== -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="RIMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="KeyId" type="integer" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->
	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="RIDIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="KeyInfo" type="iso:CAKeyInfoType" />
					<element name="Marker" type="iso:RIMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="RIDIDAuthInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="SectorPublicKey" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="RIDIDAuthOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="SectorSpecificIdentifier" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =============================== -->
	<!--  A.15 RSA Authentication with   -->
	<!--  optional key transport         -->
	<!-- =============================== -->
	<!--    OID = 1.3.162.15480.3.0.15   -->
	<!-- =============================== -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="RSAAuthMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="EncryptionAlgorithm" type="anyURI" minOccurs="0" />
					<element name="SignatureAlgorithm" type="anyURI" minOccurs="0"/>
					<element name="DerivationAlgorithmSessionKeysAndCounter" type="anyURI" minOccurs="0" />
					<element name="MacAlgorithmForSessionKey" type="anyURI" minOccurs="0" />
					<element name="EncryptionAlgorithmForSessionKey" type="anyURI" minOccurs="0" />
					<element name="CardAlgId" type="iso:ByteType" minOccurs="0" />
					<element name="KeySize" type="positiveInteger" minOccurs="0" />
					<choice minOccurs="0">
						<sequence>
							<element name="PrivateKeyValue" type="iso:KeyValueType" minOccurs="0" />
							<element name="PublicKeyValue" type="iso:KeyValueType" />
						</sequence>
						<element name="generateFlag" type="iso:NULL" />
					</choice>
					<element name="NonceSize" type="positiveInteger" minOccurs="0" />
					<element name="KeyRef" type="iso:KeyRefType" />
					<element name="RootRef" type="iso:KeyRefType" minOccurs="0" />
					<element name="SecurityEnvironmentIdentifier" type="iso:ByteType" minOccurs="0" />
					<element name="CertificateRef" type="iso:CertificateRefType" minOccurs="0" maxOccurs="unbounded" />
					<element name="ICCSNRef" type="iso:DataRefType" minOccurs="0" />
					<element name="LegacyKeyName" type="string" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="RSAAuthDIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="Marker" type="iso:RSAAuthMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ========== -->
	<!--   DIDGet   -->
	<!-- ========== -->

	<!-- DIDStructure contains Marker -->

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="RSAAuthDIDAuthVerifyCertsType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence maxOccurs="unbounded" minOccurs="0">
					<element name="Certificate" type="hexBinary" />
					<element name="CertificateType" type="anyURI" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="RSAAuthDIDAuthInternalAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="ExternalPublicKeyRef" type="hexBinary" />
					<element name="Challenge" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="RSAAuthDIDAuthMutualAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Signature" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="RSAAuthDIDAuthExternalAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="MutualCryptogram" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EmptyResponseDataType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
			</restriction>
		</complexContent>
	</complexType>

	<!-- =============================== -->
	<!--  A.25 Cryptographic Protocol    -->
	<!-- =============================== -->
	<!--    OID = 1.3.162.15480.3.0.25   -->
	<!-- =============================== -->

	<!-- ============================= -->
	<!--   Definition of basic types   -->
	<!-- ============================= -->

	<simpleType name="SupportedOperationsType">
		<union memberTypes="iso:BitString">
			<simpleType>
				<list>
					<simpleType>
						<restriction base="token">
							<enumeration value="Compute-checksum" />
							<enumeration value="Compute-signature" />
							<enumeration value="Verify-checksum" />
							<enumeration value="Verify-signature" />
							<enumeration value="Verify-certificate" />
							<enumeration value="Encipher" />
							<enumeration value="Decipher" />
							<enumeration value="Hash" />
							<enumeration value="Generate-key" />
							<enumeration value="Internal-authenticate" />
							<enumeration value="External-authenticate" />
							<enumeration value="Mutual-authenticate" />
							<enumeration value="General-authenticate" />
							<enumeration value="Secure-messaging" />
						</restriction>
					</simpleType>
				</list>
			</simpleType>
		</union>
	</simpleType>

	<complexType name="AlgorithmInfoType">
		<sequence>
			<element name="Algorithm" type="string" minOccurs="0" />
			<element name="AlgorithmIdentifier" type="iso:AlgorithmIdentifierType" minOccurs="0"/>
			<element name="SupportedOperations" type="iso:SupportedOperationsType" />
			<element name="CardAlgRef" type="hexBinary" minOccurs="0" />
			<element name="HashAlgRef" type="hexBinary" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="PSSParameterType">
		<sequence>
			<element name="HashAlgorithm" type="iso:AlgorithmIdentifierType" minOccurs="0" />
			<element name="MaskGenAlgorithm" type="iso:AlgorithmIdentifierType" minOccurs="0" />
			<element name="SaltLength" type="integer" minOccurs="0" />
			<element name="TrailerField" type="hexBinary" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="CryptoKeyInfoType">
		<sequence>
			<element name="KeyRef" type="iso:KeyRefType" minOccurs="0" />
			<element name="KeySize" type="positiveInteger" minOccurs="0" />
			<element name="NonceSize" type="positiveInteger" minOccurs="0" />
			<choice minOccurs="0">
				<element name="SecretKeyValue" type="iso:KeyValueType" />
				<sequence>
					<element name="PrivateKeyValue" type="iso:KeyValueType" minOccurs="0" />
					<element name="PublicKeyValue" type="iso:KeyValueType" />
				</sequence>
				<element name="generateFlag" type="iso:NULL" />
			</choice>
			<element name="SecurityEnvironmentIdentifier" type="iso:ByteType" minOccurs="0" />
		</sequence>
	</complexType>

	<simpleType name="HashGenerationInfoType">
		<restriction base="string">
			<enumeration value="NotOnCard" />
			<enumeration value="CompletelyOnCard" />
			<enumeration value="LastRoundOnCard" />
		</restriction>
	</simpleType>

	<simpleType name="HashHandleType">
		<restriction base="hexBinary" />
	</simpleType>

	<simpleType name="SignatureGenerationType">
		<list>
			<simpleType>
				<restriction base="token">
					<enumeration value="MSE_RESTORE" />
					<enumeration value="MSE_HASH" />
					<enumeration value="PSO_HASH" />
					<enumeration value="MSE_KEY" />
					<enumeration value="MSE_DS" />
					<enumeration value="MSE_KEY_DS" />
					<enumeration value="PSO_CDS" />
					<enumeration value="INT_AUTH" />
				</restriction>
			</simpleType>
		</list>
	</simpleType>

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="CryptoMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="AlgorithmInfo" type="iso:AlgorithmInfoType" />
					<element name="KeyInfo" type="iso:CryptoKeyInfoType" minOccurs="0" />
					<element name="SignatureGenerationInfo" type="iso:SignatureGenerationType" minOccurs="0" />
					<element name="HashGenerationInfo" type="iso:HashGenerationInfoType" minOccurs="0" />
					<element name="CertificateRef" type="iso:CertificateRefType" minOccurs="0" maxOccurs="unbounded" />
					<element name="LegacyKeyName" type="string" minOccurs="0" />
					<element ref="iso:StateInfo" minOccurs="0" />
				</sequence><commit_msg>Add APDUTemplateValue to CryptoMarkerType<commit_after><?xml version="1.0" encoding="UTF-8"?>
<schema targetNamespace="urn:iso:std:iso-iec:24727:tech:schema"
		xmlns="http://www.w3.org/2001/XMLSchema"
		xmlns:iso="urn:iso:std:iso-iec:24727:tech:schema"
		xmlns:ecdsa="http://www.w3.org/2001/04/xmldsig-more#"
		xmlns:dss="urn:oasis:names:tc:dss:1.0:core:schema"
		elementFormDefault="qualified" attributeFormDefault="unqualified">

	<include schemaLocation="ISO24727-3.xsd" />
	<include schemaLocation="ISOIFD.xsd" />

	<import namespace="http://www.w3.org/2001/04/xmldsig-more#"
			schemaLocation="ecdsa.xsd" />

	<import namespace="urn:oasis:names:tc:dss:1.0:core:schema"
			schemaLocation="oasis-dss-core-schema-v1.0-os.xsd" />

	<!-- ============================== -->
	<!--      Connection Management     -->
	<!-- ============================== -->

	<!-- TC_API_Open -->

	<element name="TC_API_Open">
		<complexType>
			<complexContent>
				<extension base="iso:RequestType">
					<sequence>
						<element name="ChannelHandle" type="iso:ChannelHandleType" />
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="TC_API_OpenResponse">
		<complexType>
			<complexContent>
				<extension base="iso:ResponseType">
					<sequence>
						<element name="ChannelHandle" type="iso:ChannelHandleType" minOccurs="0" />
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<!-- TC_API_Close -->

	<element name="TC_API_Close">
		<complexType>
			<complexContent>
				<extension base="iso:RequestType">
					<sequence>
						<element name="ChannelHandle" type="iso:ChannelHandleType" />
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="TC_API_CloseResponse">
		<complexType>
			<complexContent>
				<extension base="iso:ResponseType">
					<sequence />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="TLS_PSK_ParametersType">
		<sequence>
			<element name="PSK" type="hexBinary" />
			<element name="CipherSuite" type="string" minOccurs="0" maxOccurs="unbounded" />
			<element name="DIDName" type="iso:DIDNameType" minOccurs="0" />
		</sequence>
	</complexType>

	<!-- StartPAOS -->

	<element name="StartPAOS">
		<complexType>
			<complexContent>
				<extension base="iso:RequestType">
					<sequence>
						<element name="SessionIdentifier" type="string" />
						<element name="ConnectionHandle" type="iso:ConnectionHandleType" minOccurs="0" maxOccurs="unbounded" />
						<element name="UserAgent" minOccurs="0">
							<complexType>
								<sequence>
									<element name="Name" type="string" />
									<element name="VersionMajor" type="integer" />
									<element name="VersionMinor" type="integer" />
									<element name="VersionSubminor" type="integer" minOccurs="0" />
								</sequence>
							</complexType>
						</element>
						<element name="SupportedAPIVersions" minOccurs="0" maxOccurs="unbounded">
							<complexType>
								<sequence>
									<element name="Major" type="integer" />
									<element name="Minor" type="integer" minOccurs="0" />
									<element name="Subminor" type="integer" minOccurs="0" />
								</sequence>
							</complexType>
						</element>
						<element name="SupportedDIDProtocols" type="anyURI" minOccurs="0" maxOccurs="unbounded"	/>
					</sequence>
				</extension>
			</complexContent>
		</complexType>
	</element>

	<element name="StartPAOSResponse">
		<complexType>
			<complexContent>
				<extension base="iso:ResponseType">
					<sequence />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<!-- ============================== -->
	<!--   Definition of common types   -->
	<!-- ============================== -->

	<complexType name="AlgorithmIdentifierType">
		<sequence>
			<element name="Algorithm" type="anyURI" />
			<element name="Parameters" type="anyType" minOccurs="0" />
		</sequence>
	</complexType>

	<simpleType name="ByteType">
		<restriction base="hexBinary">
			<length value="1"/>
		</restriction>
	</simpleType>

	<complexType name="CardCallSequenceType">
		<sequence maxOccurs="unbounded" >
			<element ref="iso:CardCall" />
		</sequence>
	</complexType>

	<element name="CardCall">
		<complexType>
			<complexContent>
				<extension base="iso:CardCallType">
					<sequence />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="CardCallType">
		<choice>
			<sequence>
				<element name="CommandAPDU" type="hexBinary" />
				<element name="ResponseAPDU" type="iso:ResponseAPDUType" maxOccurs="unbounded" />
			</sequence>
			<sequence>
				<element name="APICall" type="dss:AnyType" />
				<element name="APIResponse" type="dss:AnyType" maxOccurs="unbounded" />
			</sequence>
		</choice>
	</complexType>

	<complexType name="CertificateRefType">
		<complexContent>
			<extension base="iso:DataRefType">
				<sequence>
					<element name="CertificateType" type="anyURI" minOccurs="0" />
				</sequence>
			</extension>
		</complexContent>
	</complexType>

	<complexType name="DataMaskType">
		<sequence>
			<element name="Tag" type="hexBinary" minOccurs="0" />
			<choice>
				<element name="MatchingData" type="iso:MatchingDataType" />
				<element name="DataObject" type="iso:DataMaskType" />
			</choice>
		</sequence>
	</complexType>

	<complexType name="DataRefType">
		<sequence>
			<element name="DataSetName" type="iso:DataSetNameType" />
			<element name="DSIName" type="iso:DSINameType" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="DIDMarkerType">
		<choice>
			<element name="PinCompareMarker" type="iso:PinCompareMarkerType" />
			<element name="MutualAuthMarker" type="iso:MutualAuthMarkerType" />
			<element name="RSAAuthMarker" type="iso:RSAAuthMarkerType" />
			<element name="CryptoMarker" type="iso:CryptoMarkerType" />
			<element name="EACMarker" type="iso:EACMarkerType" />
			<element name="PACEMarker" type="iso:PACEMarkerType" />
			<element name="TAMarker" type="iso:TAMarkerType" />
			<element name="CAMarker" type="iso:CAMarkerType" />
			<element name="RIMarker" type="iso:RIMarkerType" />
		</choice>
	</complexType>

	<complexType name="KeyValueType">
		<sequence>
			<element name="KeyValue" type="hexBinary" />
			<element name="Format" type="anyURI" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="KeyRefType">
		<sequence>
			<element name="KeyRef" type="hexBinary" />
			<element name="Protected" type="boolean" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="MatchingDataType">
		<sequence>
			<element name="Offset" type="hexBinary" minOccurs="0" />
			<element name="Length" type="hexBinary" minOccurs="0" />
			<element name="MatchingValue" type="hexBinary" />
			<element name="Mask" type="hexBinary" minOccurs="0" />
		</sequence>
		<attribute name="MatchingRule" type="iso:MatchingRuleType" use="optional" default="Equals" />
	</complexType>

	<simpleType name="MatchingRuleType">
		<restriction base="string">
			<enumeration value="Equals" />
			<enumeration value="Contains" />
		</restriction>
	</simpleType>

	<complexType name="ResponseAPDUType">
		<sequence>
			<element name="Body" type="iso:DataMaskType" minOccurs="0" />
			<element name="Trailer" type="hexBinary" />
			<element ref="iso:Conclusion" minOccurs="0"/>
		</sequence>
	</complexType>

	<complexType name="StartSessionInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="SharedSecurityState" type="boolean" minOccurs="0" />
					<element name="DisableImplicitAuthentication" type="boolean" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="StartSessionOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="ConnectionHandle" type="iso:ConnectionHandleType" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<element name="Conclusion">
		<complexType>
			<complexContent>
				<extension base="iso:ConclusionType">
					<sequence />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="ConclusionType">
		<choice>
			<element name="RecognizedState" type="IDREF" />
			<element name="RecognizedCardType" type="anyURI" />
			<element ref="iso:CardCall" maxOccurs="unbounded" />
		</choice>
	</complexType>

	<element name="StateInfo">
		<complexType>
			<complexContent>
				<extension base="iso:StateInfoType">
					<sequence />
				</extension>
			</complexContent>
		</complexType>
	</element>

	<complexType name="StateInfoType">
		<sequence>
			<element name="StateRecognition" minOccurs="0" type="iso:CardCallSequenceType" />
			<element name="State" type="iso:StateType" maxOccurs="unbounded" />
		</sequence>
	</complexType>

	<complexType name="StateType">
		<sequence>
			<element name="RetryCounter" type="nonNegativeInteger" minOccurs="0" />
			<element name="UsageCounter" type="nonNegativeInteger" minOccurs="0" />
			<element name="StateTransition" type="iso:StateTransitionType" minOccurs="0" maxOccurs="unbounded" />
		</sequence>
		<attribute name="StateName" type="ID" use="required" />
		<attribute name="StateClass" type="iso:StateClassType" use="required" />
	</complexType>

	<simpleType name="StateClassType">
		<restriction base="string">
			<enumeration value="Operational" />
			<enumeration value="NotOperational" />
			<enumeration value="RecognitionNecessary" />
		</restriction>
	</simpleType>

	<complexType name="StateTransitionType">
		<sequence>
			<choice maxOccurs="unbounded">
				<element name="DIDAuthenticationState" type="iso:DIDAuthenticationStateType" />
				<element name="RetryCounter" type="nonNegativeInteger" />
				<element name="UsageCounter" type="nonNegativeInteger" />
				<element name="FixedProcedure" type="iso:CardCallSequenceType" />
			</choice>			
			<element name="UpdateCounter" type="iso:UpdateCounterType" minOccurs="0" maxOccurs="2" />
		</sequence>
		<attribute name="TargetState" type="IDREF" use="optional" />
	</complexType>

	<complexType name="UpdateCounterType">
		<simpleContent>
			<extension base="integer">
				<attribute name="operation" use="required">
					<simpleType>
						<!-- only the operations "set" and "add" are supported -->
						<restriction base="string">
							<enumeration value="set" />
							<enumeration value="add" />
						</restriction>
					</simpleType>
				</attribute>
				<attribute name="variable" use="required">
					<simpleType>
						<!-- only the variables "RetryCounter" and "UsageCounter" are supported -->
						<restriction base="string">
							<enumeration value="RetryCounter" />
							<enumeration value="UsageCounter" />
						</restriction>
					</simpleType>
				</attribute>
			</extension>
		</simpleContent>
	</complexType>

	<!-- ============================= -->
	<!--        A.9 PIN Compare        -->
	<!-- ============================= -->
	<!--   OID = 1.3.162.15480.3.0.9   -->
	<!-- ============================= -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="PinCompareMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="PinRef" type="iso:KeyRefType" />
					<element name="PinValue" type="string" minOccurs="0" />
					<element name="PasswordAttributes" type="iso:PasswordAttributesType" minOccurs="0" />
					<element ref="iso:StateInfo" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="PinCompareDIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="OldPinOrPUK" type="string" minOccurs="0" />
					<element name="Marker" type="iso:PinCompareMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ========== -->
	<!--   DIDGet   -->
	<!-- ========== -->

	<!-- DIDStructure contains Marker -->

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="PinCompareDIDAuthenticateInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Pin" type="string" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="PinCompareDIDAuthenticateOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="RetryCounter" type="nonNegativeInteger" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =============================== -->
	<!--    A.11 Mutual Authentication   -->
	<!--      with key establishment     -->
	<!-- =============================== -->
	<!--   OID = 1.3.162.15480.3.0.12    -->
	<!-- =============================== -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="MutualAuthMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="EncryptionAlgorithm" type="anyURI" minOccurs="0"/>
					<element name="MacAlgorithm" type="anyURI" minOccurs="0" />
					<element name="EncryptionAlgorithmForSessionKey" type="anyURI" minOccurs="0" />
					<element name="MacAlgorithmForSessionKey" type="anyURI" minOccurs="0" />
					<element name="DerivationAlgorithmSessionKeysAndCounter" type="anyURI" minOccurs="0"/>
					<element name="CardAlgId" type="iso:ByteType" minOccurs="0" />
					<element name="K_enc" type="hexBinary" minOccurs="0" />
					<element name="K_mac" type="hexBinary" minOccurs="0" />
					<element name="DIV_IFD" type="hexBinary" minOccurs="0" />
					<element name="KeyEncMacRef" type="hexBinary" minOccurs="0" />
					<element name="SecurityEnvironmentIdentifier" type="iso:ByteType" minOccurs="0" />
					<element name="ICCSNRef" type="iso:DataRefType" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============ -->
	<!--   DIDCreate  -->
	<!-- ============ -->
	<!--   DIDUpdate  -->
	<!-- ============ -->

	<complexType name="MutualAuthDIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="Marker" type="iso:MutualAuthMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ========== -->
	<!--   DIDGet   -->
	<!-- ========== -->

	<!-- DIDStructure contains Marker -->

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="MutualAuthDIDAuthInternalAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Challenge" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="MutualAuthDIDAuthMutualAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="InternalCryptogram" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="MutualAuthDIDAuthExternalAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="MutualCryptogram" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============================= -->
	<!-- A.14 Extended Access Control  -->
	<!-- ============================= -->
	<!--   OID = 1.3.162.15480.3.0.14  -->
	<!-- ============================= -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="EACMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="PACEDID" type="iso:DIDNameType" minOccurs="0" />
					<element name="CADID" type="iso:DIDNameType" />
					<element name="TADID" type="iso:DIDNameType" />
					<element name="RIDID" type="iso:DIDNameType" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============================= -->
	<!--  CardApplicationStartSession  -->
	<!-- ============================= -->

	<complexType name="EACSessionInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="RequiredAge" type="positiveInteger" minOccurs="0" />
					<element name="RequiredCommunity" type="string" minOccurs="0" />
					<element name="VerifyDocumentValidity" type="boolean" minOccurs="0" />
					<element name="PerformRestrictedIdentification" type="boolean" minOccurs="0" />
					<element name="RequiredCHAT" type="hexBinary" minOccurs="0" />
					<element name="OptionalCHAT" type="hexBinary" minOccurs="0" />
					<element name="DataSetToBeRead" type="iso:DataSetNameType" minOccurs="0" maxOccurs="unbounded" />
					<element name="TransactionInfo" type="string" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EACSessionOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="AgeVerification" type="anyURI" minOccurs="0" />
					<element name="CommunityVerification" type="anyURI" minOccurs="0" />
					<element name="DocumentValidityVerification" type="anyURI" minOccurs="0" />
					<element name="SectorSpecificIdentifier" type="hexBinary" minOccurs="0" />
					<element name="DataSet" maxOccurs="unbounded" minOccurs="0">
						<complexType>
							<sequence>
								<element name="DataSetName" type="iso:DataSetNameType" />
								<element ref="dss:Result" />
								<element name="DSI" minOccurs="0" maxOccurs="unbounded">
									<complexType>
										<sequence>
											<element name="DSIName" type="iso:DSINameType" />
											<element ref="dss:Result" />
											<element name="DSIContent" type="hexBinary" minOccurs="0" />
										</sequence>
									</complexType>
								</element>
							</sequence>
						</complexType>
					</element>
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============================= -->
	<!--        DIDAuthenticate        -->
	<!-- ============================= -->

	<complexType name="EAC1InputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Certificate" type="hexBinary" maxOccurs="unbounded" />
					<element name="CertificateDescription" type="hexBinary" maxOccurs="unbounded" minOccurs="0" />
					<element name="ProviderInfo" type="hexBinary" minOccurs="0" />
					<element name="RequiredCHAT" type="hexBinary" minOccurs="0" />
					<element name="OptionalCHAT" type="hexBinary" minOccurs="0" />
					<element name="AuthenticatedAuxiliaryData" type="hexBinary" minOccurs="0" />
					<element name="TransactionInfo" type="string" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EAC1OutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="RetryCounter" type="nonNegativeInteger" minOccurs="0" />
					<element name="CertificateHolderAuthorizationTemplate" type="hexBinary" minOccurs="0" />
					<element name="CertificationAuthorityReference" type="hexBinary" maxOccurs="2" minOccurs="0" />
					<element name="EFCardAccess" type="hexBinary" minOccurs="0" />
					<element name="IDPICC" type="hexBinary" minOccurs="0" />
					<element name="Challenge" type="hexBinary" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EAC2InputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<sequence>
						<element name="Certificate" type="hexBinary" minOccurs="0" maxOccurs="unbounded" />
					</sequence>
					<element name="EphemeralPublicKey" type="hexBinary" />
					<element name="Signature" type="hexBinary" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EAC2OutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<choice>
					<sequence>
						<element name="EFCardSecurity" type="hexBinary" />
						<element name="AuthenticationToken" type="hexBinary" />
						<element name="Nonce" type="hexBinary" />
					</sequence>
					<element name="Challenge" type="hexBinary" />
				</choice>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EACAdditionalInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Signature" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ================================== -->
	<!--           A.14.1 PACE              -->
	<!-- ================================== -->
	<!--    OID = 0.4.0.127.0.7.2.2.4       -->
	<!-- ================================== -->
	<!--  PACE-DH:   0.4.0.127.0.7.2.2.4.1  -->
	<!--  PACE-ECDH: 0.4.0.127.0.7.2.2.4.2  -->
	<!-- ================================== -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="PACEMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="PasswordRef" type="iso:KeyRefType" />
					<element name="PasswordValue" type="string" minOccurs="0" />
					<element name="minLength" type="nonNegativeInteger" minOccurs="0" />
					<element name="maxLength" type="nonNegativeInteger" minOccurs="0" />
					<element ref="iso:StateInfo" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="PACEDIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="PasswordValue" type="string" minOccurs="0" />
					<element name="Marker" type="iso:PACEMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="PACEDIDAuthenticateInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Password" type="string" minOccurs="0" />
					<element name="Certificate" type="hexBinary" minOccurs="0" maxOccurs="unbounded" />
					<element name="CertificateDescription" type="hexBinary" minOccurs="0" maxOccurs="unbounded" />
					<element name="RequestedCHAT" type="hexBinary" minOccurs="0" />
					<element name="ReturnEFCardAccess" type="boolean" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="PACEDIDAuthenticateOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="RetryCounter" type="nonNegativeInteger" minOccurs="0" />
					<element name="CertificateHolderAuthorizationTemplate" type="hexBinary" minOccurs="0" />
					<element name="CertificationAuthorityReference" type="iso:DIDNameType" minOccurs="0" maxOccurs="2" />
					<element name="EFCardAccess" type="hexBinary" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ================================== -->
	<!--     A.14.2 Chip Authentication     -->
	<!-- ================================== -->
	<!--    OID = 0.4.0.127.0.7.2.2.3       -->
	<!-- ================================== -->
	<!--   CA-DH:   0.4.0.127.0.7.2.2.3.1   -->
	<!--   CA-ECDH: 0.4.0.127.0.7.2.2.3.2   -->
	<!-- ================================== -->

	<!-- ============================= -->
	<!--   Definition of basic types   -->
	<!-- ============================= -->

	<complexType name="SubjectPublicKeyInfoType">
		<sequence>
			<element name="Algorithm" type="iso:AlgorithmIdentifierType" />
			<element name="SubjectPublicKey" type="hexBinary" />
		</sequence>
	</complexType>

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="CAMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="KeyId" type="integer" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->

	<complexType name="CADIDCreateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="KeyInfo" type="iso:CAKeyInfoType" />
					<element name="Marker" type="iso:CAMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="CAKeyInfoType">
		<choice>
			<element name="PrivateKeyValue" type="iso:KeyValueType" />
			<element name="generateFlag" type="iso:NULL" />
		</choice>
	</complexType>

	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="CADIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="KeyInfo" type="iso:CAKeyInfoType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="CAInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="PublicKey" type="iso:SubjectPublicKeyInfoType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="CAAuthenticationTokenType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="AuthenticationToken" type="hexBinary" />
					<element name="Nonce" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ================================== -->
	<!--   A.14.3 Terminal Authentication   -->
	<!-- ================================== -->
	<!--    OID = 0.4.0.127.0.7.2.2.2       -->
	<!-- ================================== -->
	<!--   TA-RSA:   0.4.0.127.0.7.2.2.2.1  -->
	<!--   TA-ECDSA: 0.4.0.127.0.7.2.2.2.2  -->
	<!-- ================================== -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="TAMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->
	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="TADIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="RootKey" type="iso:SubjectPublicKeyInfoType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="TADIDAuthInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<sequence minOccurs="0" maxOccurs="unbounded">
						<element name="Certificate" type="hexBinary" />
						<element name="CertificateType" type="anyURI" minOccurs="0" />
					</sequence>
					<element name="AuthenticatedAuxiliaryData" type="hexBinary" minOccurs="0" />
					<element name="CompressedEphemeralPublicKey" type="hexBinary" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="TADIDAuthOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Challenge" type="hexBinary" />
					<element name="IDPICC" type="hexBinary" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="TADIDAuthExternalAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Signature" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="TAAuxInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="AuthenticatedAuxiliaryData" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ================================== -->
	<!--   A.14.4 Restricted Identification -->
	<!-- ================================== -->
	<!--    OID = 0.4.0.127.0.7.2.2.5       -->
	<!-- ================================== -->
	<!--   RI-DH:   0.4.0.127.0.7.2.2.5.1   -->
	<!--   RI-ECDH: 0.4.0.127.0.7.2.2.5.2   -->
	<!-- ================================== -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="RIMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="KeyId" type="integer" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->
	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="RIDIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="KeyInfo" type="iso:CAKeyInfoType" />
					<element name="Marker" type="iso:RIMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="RIDIDAuthInputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="SectorPublicKey" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="RIDIDAuthOutputType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="SectorSpecificIdentifier" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- =============================== -->
	<!--  A.15 RSA Authentication with   -->
	<!--  optional key transport         -->
	<!-- =============================== -->
	<!--    OID = 1.3.162.15480.3.0.15   -->
	<!-- =============================== -->

	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="RSAAuthMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="EncryptionAlgorithm" type="anyURI" minOccurs="0" />
					<element name="SignatureAlgorithm" type="anyURI" minOccurs="0"/>
					<element name="DerivationAlgorithmSessionKeysAndCounter" type="anyURI" minOccurs="0" />
					<element name="MacAlgorithmForSessionKey" type="anyURI" minOccurs="0" />
					<element name="EncryptionAlgorithmForSessionKey" type="anyURI" minOccurs="0" />
					<element name="CardAlgId" type="iso:ByteType" minOccurs="0" />
					<element name="KeySize" type="positiveInteger" minOccurs="0" />
					<choice minOccurs="0">
						<sequence>
							<element name="PrivateKeyValue" type="iso:KeyValueType" minOccurs="0" />
							<element name="PublicKeyValue" type="iso:KeyValueType" />
						</sequence>
						<element name="generateFlag" type="iso:NULL" />
					</choice>
					<element name="NonceSize" type="positiveInteger" minOccurs="0" />
					<element name="KeyRef" type="iso:KeyRefType" />
					<element name="RootRef" type="iso:KeyRefType" minOccurs="0" />
					<element name="SecurityEnvironmentIdentifier" type="iso:ByteType" minOccurs="0" />
					<element name="CertificateRef" type="iso:CertificateRefType" minOccurs="0" maxOccurs="unbounded" />
					<element name="ICCSNRef" type="iso:DataRefType" minOccurs="0" />
					<element name="LegacyKeyName" type="string" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ============= -->
	<!--   DIDCreate   -->
	<!-- ============= -->
	<!--   DIDUpdate   -->
	<!-- ============= -->

	<complexType name="RSAAuthDIDUpdateDataType">
		<complexContent>
			<restriction base="iso:DIDUpdateDataType">
				<sequence>
					<element name="Marker" type="iso:RSAAuthMarkerType" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<!-- ========== -->
	<!--   DIDGet   -->
	<!-- ========== -->

	<!-- DIDStructure contains Marker -->

	<!-- =================== -->
	<!--   DIDAuthenticate   -->
	<!-- =================== -->

	<complexType name="RSAAuthDIDAuthVerifyCertsType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence maxOccurs="unbounded" minOccurs="0">
					<element name="Certificate" type="hexBinary" />
					<element name="CertificateType" type="anyURI" minOccurs="0" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="RSAAuthDIDAuthInternalAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="ExternalPublicKeyRef" type="hexBinary" />
					<element name="Challenge" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="RSAAuthDIDAuthMutualAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="Signature" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="RSAAuthDIDAuthExternalAuthType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
				<sequence>
					<element name="MutualCryptogram" type="hexBinary" />
				</sequence>
			</restriction>
		</complexContent>
	</complexType>

	<complexType name="EmptyResponseDataType">
		<complexContent>
			<restriction base="iso:DIDAuthenticationDataType">
			</restriction>
		</complexContent>
	</complexType>

	<!-- =============================== -->
	<!--  A.25 Cryptographic Protocol    -->
	<!-- =============================== -->
	<!--    OID = 1.3.162.15480.3.0.25   -->
	<!-- =============================== -->

	<!-- ============================= -->
	<!--   Definition of basic types   -->
	<!-- ============================= -->

	<simpleType name="SupportedOperationsType">
		<union memberTypes="iso:BitString">
			<simpleType>
				<list>
					<simpleType>
						<restriction base="token">
							<enumeration value="Compute-checksum" />
							<enumeration value="Compute-signature" />
							<enumeration value="Verify-checksum" />
							<enumeration value="Verify-signature" />
							<enumeration value="Verify-certificate" />
							<enumeration value="Encipher" />
							<enumeration value="Decipher" />
							<enumeration value="Hash" />
							<enumeration value="Generate-key" />
							<enumeration value="Internal-authenticate" />
							<enumeration value="External-authenticate" />
							<enumeration value="Mutual-authenticate" />
							<enumeration value="General-authenticate" />
							<enumeration value="Secure-messaging" />
						</restriction>
					</simpleType>
				</list>
			</simpleType>
		</union>
	</simpleType>

	<complexType name="AlgorithmInfoType">
		<sequence>
			<element name="Algorithm" type="string" minOccurs="0" />
			<element name="AlgorithmIdentifier" type="iso:AlgorithmIdentifierType" minOccurs="0"/>
			<element name="SupportedOperations" type="iso:SupportedOperationsType" />
			<element name="CardAlgRef" type="hexBinary" minOccurs="0" />
			<element name="HashAlgRef" type="hexBinary" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="PSSParameterType">
		<sequence>
			<element name="HashAlgorithm" type="iso:AlgorithmIdentifierType" minOccurs="0" />
			<element name="MaskGenAlgorithm" type="iso:AlgorithmIdentifierType" minOccurs="0" />
			<element name="SaltLength" type="integer" minOccurs="0" />
			<element name="TrailerField" type="hexBinary" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="CryptoKeyInfoType">
		<sequence>
			<element name="KeyRef" type="iso:KeyRefType" minOccurs="0" />
			<element name="KeySize" type="positiveInteger" minOccurs="0" />
			<element name="NonceSize" type="positiveInteger" minOccurs="0" />
			<choice minOccurs="0">
				<element name="SecretKeyValue" type="iso:KeyValueType" />
				<sequence>
					<element name="PrivateKeyValue" type="iso:KeyValueType" minOccurs="0" />
					<element name="PublicKeyValue" type="iso:KeyValueType" />
				</sequence>
				<element name="generateFlag" type="iso:NULL" />
			</choice>
			<element name="SecurityEnvironmentIdentifier" type="iso:ByteType" minOccurs="0" />
		</sequence>
	</complexType>

	<simpleType name="HashGenerationInfoType">
		<restriction base="string">
			<enumeration value="NotOnCard" />
			<enumeration value="CompletelyOnCard" />
			<enumeration value="LastRoundOnCard" />
		</restriction>
	</simpleType>

	<simpleType name="HashHandleType">
		<restriction base="hexBinary" />
	</simpleType>

	<simpleType name="SignatureGenerationType">
		<list>
			<simpleType>
				<restriction base="token">
					<enumeration value="MSE_RESTORE" />
					<enumeration value="MSE_HASH" />
					<enumeration value="PSO_HASH" />
					<enumeration value="MSE_KEY" />
					<enumeration value="MSE_DS" />
					<enumeration value="MSE_KEY_DS" />
					<enumeration value="PSO_CDS" />
					<enumeration value="INT_AUTH" />
				</restriction>
			</simpleType>
		</list>
	</simpleType>


	<simpleType name="APDUTemplateValueType">
		<annotation>
			<documentation>
				A APDUTemplateValue consists of a hexBinary value or a template expression intermixed in arbitrary
				multiplicity.<br/>
				The template expression is a simplified S-Expression initiated and terminated by curly braces
				(<pre>{</pre> and <pre>}</pre>). The first symbol must be a template symbol which is defined as
				<pre>[a-zA-Z][a-zA-Z0-9]*</pre>. The following elements are seperated by any whitespace. For the
				following symbols either a template symbol or a hexBinary string string starting with <pre>0x</pre> can
				be used.<br/>
				The evaluation sematic of the symbols is as follows. In the single element form, the S-Expression is
				evaluated depending on its type in the context. That means it is either a function, or a value fitting
				in the hexBinary value of the whole value. If multiple elements are inside the S-Expression, the first
				element MUST denote a function while the remaining ones MUST be symbolic values.
			</documentation>
		</annotation>
		<restriction base="normalizedString">
		 <pattern value="^([0-9a-fA-F]{2}|(\{[a-zA-Z][a-zA-Z0-9]*(\s+(([a-zA-Z][a-zA-Z0-9]*)|(0x([0-9a-fA-F]{2})+)))*\}))+$" />
		</restriction>
	</simpleType>

	<complexType name="CardCallTemplateType">
		<sequence>
			<element name="HeaderTemplate" type="iso:APDUTemplateValueType" />
			<element name="DataTemplate" type="iso:APDUTemplateValueType" minOccurs="0" />
			<element name="ExpectedLength" type="nonNegativeInteger" minOccurs="0" />
		</sequence>
	</complexType>

	<complexType name="LegacySignatureGenerationType">
		<sequence>
			<element name="CardCommand" type="iso:CardCallTemplateType" minOccurs="1" />
		</sequence>
	</complexType>


	<!-- ============================= -->
	<!--           Marker              -->
	<!-- ============================= -->

	<complexType name="CryptoMarkerType">
		<complexContent>
			<restriction base="iso:DIDAbstractMarkerType">
				<sequence>
					<element name="AlgorithmInfo" type="iso:AlgorithmInfoType" />
					<element name="KeyInfo" type="iso:CryptoKeyInfoType" minOccurs="0" />
					<choice minOccurs="0">
						<element name="SignatureGenerationInfo" type="iso:SignatureGenerationType"  />
						<element name="LegacySignatureGenerationInfo" type="iso:LegacySignatureGenerationType" />
					</choice>
					<element name="HashGenerationInfo" type="iso:HashGenerationInfoType" minOccurs="0" />
					<element name="CertificateRef" type="iso:CertificateRefType" minOccurs="0" maxOccurs="unbounded" />
					<element name="LegacyKeyName" type="string" minOccurs="0" />
					<element ref="iso:StateInfo" minOccurs="0" />
				</sequence>
{'fraction_non_alphanumeric': 0.2285096165870495, 'fraction_numerical': 0.010667033489232924, 'mean_word_length': 3.9344070097494757, 'pattern_counts': {'":': 0, '<': 2201, '<?xml version=': 2, '>': 2201, 'https://': 0, 'lorem ipsum': 0, 'www.': 6, 'xml': 14}, 'pii_count': 68, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5447916', 'n_tokens_mistral': 29673, 'n_tokens_neox': 24400, 'n_words': 3907}