<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2007 sp2 (http://www.altova.com) by Giancarlo Pasquariello (STIncard Srl) -->
<!--W3C Schema generated by XMLSpy v2007 sp2 (http://www.altova.com)-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
	<xs:simpleType name="OnlyTrue">
		<xs:restriction base="xs:string">
			<xs:enumeration value="TRUE"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="OnlyFalse">
		<xs:restriction base="xs:string">
			<xs:enumeration value="FALSE"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="TrueFalse">
		<xs:restriction base="xs:string">
			<xs:enumeration value="TRUE"/>
			<xs:enumeration value="FALSE"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:simpleType name="OneDigit">
		<xs:restriction base="xs:integer">
			<xs:pattern value="[1-9]"/>
		</xs:restriction>
	</xs:simpleType>
	<xs:element name="SECRET_KEYS">
		<xs:complexType>
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="SECRET_KEY"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="SECRET_KEY">
		<xs:complexType>
			<xs:all>
				<xs:element ref="CKA_ID"/>
				<xs:element ref="CKA_LABEL" minOccurs="0"/>
				<xs:element ref="CKA_COPYABLE" minOccurs="0"/>
				<xs:element name="CKA_KEY_TYPE" minOccurs="0">
					<xs:simpleType>
						<xs:restriction base="xs:decimal"/>
					</xs:simpleType>
				</xs:element>
				<xs:element name="CKA_LOCAL" type="TrueFalse" minOccurs="0"/>
				<xs:element ref="CKA_ENCRYPT" minOccurs="0"/>
				<xs:element ref="CKA_DECRYPT" minOccurs="0"/>
				<xs:element ref="CKA_TOKEN" minOccurs="0"/>
				<xs:element ref="CKA_MODIFIABLE" minOccurs="0"/>
				<xs:element ref="CKA_DERIVE" minOccurs="0"/>
				<xs:element ref="CKA_ALLOWED_MECHANISMS" minOccurs="0"/>
				<xs:element ref="CKA_KEY_GEN_MECHANISM" minOccurs="0"/>
				<xs:element ref="CKA_WRAP" minOccurs="0"/>
				<xs:element ref="CKA_EXTRACTABLE" minOccurs="0"/>
				<xs:element ref="CKA_PRIVATE" minOccurs="0"/>
				<xs:element ref="CKA_SENSITIVE" minOccurs="0"/>
				<xs:element ref="CKA_UNWRAP" minOccurs="0"/>
				<xs:element ref="CKA_SIGN" minOccurs="0"/>
				<xs:element ref="CKA_VERIFY" minOccurs="0"/>
				<xs:element ref="CKA_ALWAYS_SENSITIVE" minOccurs="0"/>
				<xs:element ref="CKA_NEVER_EXTRACTABLE" minOccurs="0"/>
				<xs:element ref="CKA_WRAP_WITH_TRUSTED" minOccurs="0"/>
				<xs:element ref="CKA_TRUSTED" minOccurs="0"/>
				<xs:element ref="CKA_WRAP_TEMPLATE" minOccurs="0"/>
				<xs:element ref="CKA_UNWRAP_TEMPLATE" minOccurs="0"/>
			</xs:all>
			<xs:attribute name="ID" type="xs:hexBinary" use="required"/>
			<xs:attribute name="DF_PATH" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="RENEWABLE_KEY_PAIR">
		<xs:complexType>
			<xs:all>
				<xs:element name="PRIVATE_KEY">
					<xs:complexType>
						<xs:all>
							<xs:element ref="CKA_PRIVATE" minOccurs="0"/>
							<xs:element ref="CKA_LABEL"/>
							<xs:element name="CKA_KEY_TYPE" minOccurs="0">
								<xs:simpleType>
									<xs:restriction base="xs:decimal">
										<xs:minInclusive value="3"/>
										<xs:maxInclusive value="3"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element ref="CKA_ID"/>
							<xs:element name="CKA_SENSITIVE" type="OnlyTrue" minOccurs="0"/>
							<xs:element ref="CKA_UNWRAP" minOccurs="0"/>
							<xs:element ref="CKA_SIGN" minOccurs="0"/>
							<xs:element name="CKA_EXTRACTABLE" type="OnlyFalse" minOccurs="0"/>
							<xs:element ref="CKA_DECRYPT" minOccurs="0"/>
							<xs:element ref="CKA_TOKEN" minOccurs="0"/>
							<xs:element ref="CKA_MODIFIABLE" minOccurs="0"/>
							<xs:element ref="CKA_DERIVE" minOccurs="0"/>
							<xs:element name="CKA_LOCAL" type="OnlyTrue" minOccurs="0"/>
							<xs:element ref="CKA_SUBJECT" minOccurs="0"/>
							<xs:element ref="CKA_SIGN_RECOVER" minOccurs="0"/>
							<xs:element name="CKA_ALWAYS_SENSITIVE" type="OnlyTrue" minOccurs="0"/>
							<xs:element name="CKA_NEVER_EXTRACTABLE" type="OnlyTrue" minOccurs="0"/>
							<xs:element name="CKA_ALWAYS_AUTHENTICATE" type="OnlyFalse" minOccurs="0"/>
							<xs:element ref="CKA_COPYABLE" minOccurs="0"/>
							<xs:element ref="CKA_WRAP_WITH_TRUSTED" minOccurs="0"/>
							<xs:element ref="CKA_START_DATE" minOccurs="0"/>
							<xs:element ref="CKA_END_DATE" minOccurs="0"/>
							<xs:element ref="CKA_UNWRAP_TEMPLATE" minOccurs="0"/>
						</xs:all>
					</xs:complexType>
				</xs:element>
				<xs:element name="PUBLIC_KEY">
					<xs:complexType>
						<xs:all>
							<xs:element ref="CKA_ID"/>
							<xs:element ref="CKA_LABEL"/>
							<xs:element ref="CKA_COPYABLE" minOccurs="0"/>
							<xs:element name="CKA_KEY_TYPE" minOccurs="0">
								<xs:simpleType>
									<xs:restriction base="xs:decimal">
										<xs:minInclusive value="3"/>
										<xs:maxInclusive value="3"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element ref="CKA_VERIFY" minOccurs="0"/>
							<xs:element ref="CKA_TRUSTED" minOccurs="0"/>
							<xs:element ref="CKA_TOKEN" minOccurs="0"/>
							<xs:element ref="CKA_MODIFIABLE" minOccurs="0"/>
							<xs:element ref="CKA_DERIVE" minOccurs="0"/>
							<xs:element name="CKA_LOCAL" type="OnlyTrue" minOccurs="0"/>
							<xs:element ref="CKA_SUBJECT" minOccurs="0"/>
							<xs:element ref="CKA_VERIFY_RECOVER" minOccurs="0"/>
							<xs:element ref="CKA_WRAP" minOccurs="0"/>
							<xs:element ref="CKA_PRIVATE" minOccurs="0"/>
							<xs:element ref="CKA_ALLOWED_MECHANISMS" minOccurs="0"/>
							<xs:element ref="CKA_KEY_GEN_MECHANISM" minOccurs="0"/>
							<xs:element ref="CKA_ENCRYPT" minOccurs="0"/>
							<xs:element ref="CKA_WRAP_TEMPLATE" minOccurs="0"/>
							<xs:element ref="CKA_START_DATE" minOccurs="0"/>
							<xs:element ref="CKA_END_DATE" minOccurs="0"/>
						</xs:all>
						<xs:attribute name="ID" type="xs:hexBinary"/>
						<xs:attribute name="DF_PATH" type="xs:string"/>
					</xs:complexType>
				</xs:element>
			</xs:all>
			<xs:attribute name="IS_PRIMARY" type="TrueFalse" use="required"/>
			<xs:attribute name="INDEX" type="OneDigit" use="required"/>
			<xs:attribute name="ID" type="xs:hexBinary" use="required"/>
			<xs:attribute name="DF_PATH" type="xs:hexBinary" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="PUBLIC_KEYS">
		<xs:complexType>
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element name="PUBLIC_KEY">
					<xs:complexType>
						<xs:all>
							<xs:element ref="CKA_ID"/>
							<xs:element ref="CKA_LABEL"/>
							<xs:element ref="CKA_COPYABLE" minOccurs="0"/>
							<xs:element name="CKA_KEY_TYPE" minOccurs="0">
								<xs:simpleType>
									<xs:restriction base="xs:decimal">
										<xs:minInclusive value="3"/>
										<xs:maxInclusive value="3"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element ref="CKA_VERIFY" minOccurs="0"/>
							<xs:element ref="CKA_TRUSTED" minOccurs="0"/>
							<xs:element ref="CKA_TOKEN" minOccurs="0"/>
							<xs:element ref="CKA_MODIFIABLE" minOccurs="0"/>
							<xs:element ref="CKA_DERIVE" minOccurs="0"/>
							<xs:element name="CKA_LOCAL" type="OnlyTrue" minOccurs="0"/>
							<xs:element ref="CKA_SUBJECT" minOccurs="0"/>
							<xs:element ref="CKA_VERIFY_RECOVER" minOccurs="0"/>
							<xs:element ref="CKA_WRAP" minOccurs="0"/>
							<xs:element ref="CKA_PRIVATE" minOccurs="0"/>
							<xs:element ref="CKA_ALLOWED_MECHANISMS" minOccurs="0"/>
							<xs:element ref="CKA_KEY_GEN_MECHANISM" minOccurs="0"/>
							<xs:element ref="CKA_ENCRYPT" minOccurs="0"/>
							<xs:element ref="CKA_WRAP_TEMPLATE" minOccurs="0"/>
							<xs:element ref="CKA_START_DATE" minOccurs="0"/>
							<xs:element ref="CKA_END_DATE" minOccurs="0"/>
						</xs:all>
						<xs:attribute name="ID" type="xs:hexBinary"/>
						<xs:attribute name="DF_PATH" type="xs:string"/>
					</xs:complexType>
				</xs:element>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="Objects">
		<xs:complexType>
			<xs:all>
				<xs:element ref="KEY_PAIRS"/>
				<xs:element ref="PUBLIC_KEYS"/>
				<xs:element ref="CERTIFICATES"/>
				<xs:element ref="CKO_DATA"/>
				<xs:element ref="SECRET_KEYS"/>
			</xs:all>
		</xs:complexType>
	</xs:element>
	<xs:element name="KEY_PAIRS">
		<xs:complexType>
			<xs:choice minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="RENEWABLE_KEY_PAIR"/>
				<xs:element ref="KEY_PAIR"/>
			</xs:choice>
		</xs:complexType>
	</xs:element>
	<xs:element name="KEY_PAIR">
		<xs:complexType>
			<xs:all>
				<xs:element name="PRIVATE_KEY">
					<xs:complexType>
						<xs:all>
							<xs:element ref="CKA_PRIVATE" minOccurs="0"/>
							<xs:element ref="CKA_LABEL"/>
							<xs:element name="CKA_KEY_TYPE">
								<xs:simpleType>
									<xs:restriction base="xs:decimal">
										<xs:minInclusive value="2"/>
										<xs:maxInclusive value="3"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element ref="CKA_ID"/>
							<xs:element name="CKA_SENSITIVE" type="OnlyTrue" minOccurs="0"/>
							<xs:element ref="CKA_UNWRAP" minOccurs="0"/>
							<xs:element ref="CKA_SIGN" minOccurs="0"/>
							<xs:element name="CKA_EXTRACTABLE" type="OnlyFalse" minOccurs="0"/>
							<xs:element ref="CKA_DECRYPT" minOccurs="0"/>
							<xs:element ref="CKA_TOKEN" minOccurs="0"/>
							<xs:element ref="CKA_MODIFIABLE" minOccurs="0"/>
							<xs:element ref="CKA_DERIVE" minOccurs="0"/>
							<xs:element name="CKA_LOCAL" type="OnlyTrue" minOccurs="0"/>
							<xs:element ref="CKA_SUBJECT" minOccurs="0"/>
							<xs:element ref="CKA_SIGN_RECOVER" minOccurs="0"/>
							<xs:element name="CKA_ALWAYS_SENSITIVE" type="OnlyTrue" minOccurs="0"/>
							<xs:element name="CKA_NEVER_EXTRACTABLE" type="OnlyTrue" minOccurs="0"/>
							<xs:element name="CKA_ALWAYS_AUTHENTICATE" type="OnlyFalse" minOccurs="0"/>
							<xs:element ref="CKA_COPYABLE" minOccurs="0"/>
							<xs:element ref="CKA_WRAP_WITH_TRUSTED" minOccurs="0"/>
							<xs:element ref="CKA_START_DATE" minOccurs="0"/>
							<xs:element ref="CKA_END_DATE" minOccurs="0"/>
							<xs:element ref="CKA_UNWRAP_TEMPLATE" minOccurs="0"/>
						</xs:all>
					</xs:complexType>
				</xs:element>
				<xs:element name="PUBLIC_KEY">
					<xs:complexType>
						<xs:all>
							<xs:element ref="CKA_ID"/>
							<xs:element ref="CKA_LABEL"/>
							<xs:element ref="CKA_COPYABLE" minOccurs="0"/>
							<xs:element name="CKA_KEY_TYPE">
								<xs:simpleType>
									<xs:restriction base="xs:decimal">
										<xs:minInclusive value="2"/>
										<xs:maxInclusive value="3"/>
									</xs:restriction>
								</xs:simpleType>
							</xs:element>
							<xs:element ref="CKA_VERIFY" minOccurs="0"/>
							<xs:element ref="CKA_TRUSTED" minOccurs="0"/>
							<xs:element ref="CKA_TOKEN" minOccurs="0"/>
							<xs:element ref="CKA_MODIFIABLE" minOccurs="0"/>
							<xs:element ref="CKA_DERIVE" minOccurs="0"/>
							<xs:element name="CKA_LOCAL" type="OnlyTrue" minOccurs="0"/>
							<xs:element ref="CKA_SUBJECT" minOccurs="0"/>
							<xs:element ref="CKA_VERIFY_RECOVER" minOccurs="0"/>
							<xs:element ref="CKA_WRAP" minOccurs="0"/>
							<xs:element ref="CKA_PRIVATE" minOccurs="0"/>
							<xs:element ref="CKA_ALLOWED_MECHANISMS" minOccurs="0"/>
							<xs:element ref="CKA_KEY_GEN_MECHANISM" minOccurs="0"/>
							<xs:element ref="CKA_ENCRYPT" minOccurs="0"/>
							<xs:element ref="CKA_WRAP_TEMPLATE" minOccurs="0"/>
							<xs:element ref="CKA_START_DATE" minOccurs="0"/>
							<xs:element ref="CKA_END_DATE" minOccurs="0"/>
						</xs:all>
						<xs:attribute name="ID" type="xs:hexBinary"/>
						<xs:attribute name="DF_PATH" type="xs:string"/>
					</xs:complexType>
				</xs:element>
			</xs:all>
			<xs:attribute name="ID" type="xs:hexBinary" use="required"/>
			<xs:attribute name="DF_PATH" type="xs:hexBinary" use="required"/>
		</xs:complexType>
	</xs:element>
	<xs:element name="FILE_DATA">
		<xs:complexType>
			<xs:all>
				<xs:element ref="CKA_LABEL"/>
				<xs:element ref="CKA_COPYABLE" minOccurs="0"/>
				<xs:element ref="CKA_TOKEN" minOccurs="0"/>
				<xs:element ref="CKA_MODIFIABLE" minOccurs="0"/>
				<xs:element ref="CKA_PRIVATE" minOccurs="0"/>
				<xs:element ref="CKA_APPLICATION" minOccurs="0"/>
				<xs:element name="CKA_OBJECT_ID" type="xs:hexBinary" minOccurs="0"/>
			</xs:all>
			<xs:attribute name="ID" type="xs:hexBinary" use="required"/>
			<xs:attribute name="DF_PATH" type="xs:hexBinary" use="required"/>
			<xs:attribute name="RECORD_NUMBER">
				<xs:simpleType>
					<xs:restriction base="xs:decimal">
						<xs:minInclusive value="1"/>
						<xs:maxInclusive value="254"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:attribute>
		</xs:complexType>
	</xs:element>
	<xs:element name="CKO_DATA">
		<xs:complexType>
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="FILE_DATA"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="CKA_WRAP_WITH_TRUSTED" type="TrueFalse"/>
	<xs:element name="CKA_WRAP" type="TrueFalse"/>
	<xs:element name="CKA_WRAP_TEMPLATE" type="TrueFalse"/>
	<xs:element name="CKA_TOKEN" type="OnlyTrue"/>
	<xs:element name="CKA_VERIFY_RECOVER" type="TrueFalse"/>
	<xs:element name="CKA_VERIFY" type="TrueFalse"/>
	<xs:element name="CKA_UNWRAP" type="TrueFalse"/>
	<xs:element name="CKA_TRUSTED" type="TrueFalse"/>
	<xs:element name="CKA_SUBJECT" type="xs:string"/>
	<xs:element name="CKA_SIGN_RECOVER" type="TrueFalse"/>
	<xs:element name="CKA_SIGN" type="TrueFalse"/>
	<xs:element name="CKA_SENSITIVE" type="TrueFalse"/>
	<xs:element name="CKA_PRIVATE" type="TrueFalse"/>
	<xs:element name="CKA_NEVER_EXTRACTABLE" type="TrueFalse"/>
	<xs:element name="CKA_MODIFIABLE" type="TrueFalse"/>
	<xs:element name="CKA_LOCAL" type="OnlyTrue"/>
	<xs:element name="CKA_LABEL" type="xs:string"/>
	<xs:element name="CKA_KEY_TYPE" type="xs:byte"/>
	<xs:element name="CKA_ID" type="xs:string"/>
	<xs:element name="CKA_EXTRACTABLE" type="TrueFalse"/>
	<xs:element name="CKA_ENCRYPT" type="TrueFalse"/>
	<xs:element name="CKA_DERIVE" type="TrueFalse"/>
	<xs:element name="CKA_DECRYPT" type="TrueFalse"/>
	<xs:element name="CKA_COPYABLE" type="TrueFalse"/>
	<xs:element name="CKA_APPLICATION" type="xs:string"/>
	<xs:element name="CKA_ALWAYS_SENSITIVE" type="TrueFalse"/>
	<xs:element name="CKA_ALWAYS_AUTHENTICATE" type="TrueFalse"/>
	<xs:element name="CKA_ALLOWED_MECHANISMS">
		<xs:simpleType>
			<xs:restriction base="xs:decimal">
				<xs:minExclusive value="0"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<xs:element name="CKA_KEY_GEN_MECHANISM">
		<xs:simpleType>
			<xs:restriction base="xs:decimal">
				<xs:minExclusive value="0"/>
			</xs:restriction>
		</xs:simpleType>
	</xs:element>
	<xs:element name="CKA_START_DATE" type="xs:string"/>
	<xs:element name="CKA_END_DATE" type="xs:string"/>
	<xs:element name="CKA_UNWRAP_TEMPLATE" type="xs:string"/>
	<xs:element name="CKA_CHECK_VALUE" type="xs:string"/>
	<xs:element name="CKA_HASH_OF_SUBJECT_PUBLIC_KEY" type="xs:string"/>
	<xs:element name="CKA_HASH_OF_ISSUER_PUBLIC_KEY" type="xs:string"/>
	<xs:element name="CKA_JAVA_MIDP_SECURITY_DOMAIN" type="xs:string"/>
	<xs:element name="CKA_NAME_HASH_ALGORITHM" type="xs:string"/>
	<xs:element name="CERTIFICATES">
		<xs:complexType>
			<xs:sequence minOccurs="0" maxOccurs="unbounded">
				<xs:element ref="CERTIFICATE"/>
			</xs:sequence>
		</xs:complexType>
	</xs:element>
	<xs:element name="CERTIFICATE">
		<xs:complexType>
			<xs:all>
				<xs:element ref="CKA_ID"/>
				<xs:element ref="CKA_LABEL" minOccurs="0"/>
				<xs:element ref="CKA_TRUSTED" minOccurs="0"/>
				<xs:element ref="CKA_TOKEN" minOccurs="0"/>
				<xs:element ref="CKA_MODIFIABLE" minOccurs="0"/>
				<xs:element name="CKA_CERTIFICATE_TYPE" minOccurs="0">
					<xs:simpleType>
						<xs:restriction base="xs:decimal">
							<xs:minInclusive value="0"/>
							<xs:maxInclusive value="0"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element ref="CKA_EXTRACTABLE" minOccurs="0"/>
				<xs:element ref="CKA_PRIVATE" minOccurs="0"/>
				<xs:element ref="CKA_COPYABLE" minOccurs="0"/>
				<xs:element name="CKA_CERTIFICATE_CATEGORY" minOccurs="0">
					<xs:simpleType>
						<xs:restriction base="xs:decimal">
							<xs:minExclusive value="0"/>
							<xs:maxExclusive value="3"/>
						</xs:restriction>
					</xs:simpleType>
				</xs:element>
				<xs:element ref="CKA_CHECK_VALUE" minOccurs="0"/>
				<xs:element ref="CKA_START_DATE" minOccurs="0"/>
				<xs:element ref="CKA_END_DATE" minOccurs="0"/>
				<xs:element ref="CKA_HASH_OF_SUBJECT_PUBLIC_KEY" minOccurs="0"/>
				<xs:element ref="CKA_HASH_OF_ISSUER_PUBLIC_KEY" minOccurs="0"/>
				<xs:element ref="CKA_JAVA_MIDP_SECURITY_DOMAIN" minOccurs="0"/>
				<xs:element ref="CKA_NAME_HASH_ALGORITHM" minOccurs="0"/>
			</xs:all>
			<xs:attribute name="ID" type="xs:hexBinary" use="required"/>
			<xs:attribute name="DF_PATH" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
</xs:schema>
