<?xml version="1.0" encoding="utf-8"?>

<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://csrc.nist.gov/ns/piv/chain-of-trust/1.0" xmlns="http://csrc.nist.gov/ns/piv/chain-of-trust/1.0" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:xenc="http://www.w3.org/2001/04/xmlenc#">

<xs:import namespace="http://www.w3.org/2000/09/xmldsig#" schemaLocation="http://www.w3.org/TR/2002/REC-xmldsig-core-20020212/xmldsig-core-schema.xsd"/>
<xs:import namespace="http://www.w3.org/2001/04/xmlenc#" schemaLocation="http://www.w3.org/TR/2002/REC-xmlenc-core-20021210/xenc-schema.xsd"/>
	
	<xs:element name="PIVChainOfTrust" type="PIVChainOfTrustType"/>
	
	<xs:complexType name="PIVChainOfTrustType">
		<xs:sequence>
			<xs:choice>
				<xs:sequence>
					<xs:element ref="xenc:EncryptedData" minOccurs="1" maxOccurs="1"/>
					<xs:element ref="xenc:EncryptedKey" minOccurs="1" maxOccurs="unbounded"/>
				</xs:sequence>
				<xs:sequence>
					<xs:element name="EnrollmentRecord" type="EnrollmentRecordType" minOccurs="1" maxOccurs="unbounded"/>
					<xs:element ref="ds:Signature" minOccurs="1" maxOccurs="1"/>	
				</xs:sequence>
			</xs:choice>	
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EnrollmentRecordType">
		<xs:sequence>
			<xs:element name="PersonalInformation" type="PersonalInformationType" minOccurs="1" maxOccurs="1"/>
			<xs:element name="AdjudicationInformation" type="AdjudicationInformationType" minOccurs="1" maxOccurs="1"/>
			<xs:element name="EnrollmentPackage" type="EnrollmentPackageType" minOccurs="1" maxOccurs="1"/>
			<xs:element name="PIVCardTopography" type="PIVCardTopographyType" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PersonalInformationType">
		<xs:sequence>
			<xs:element name="PrimaryIdentifier" type="xs:string" minOccurs="1" maxOccurs="1"/>	
			<xs:element name="SecondaryIdentifier" type="xs:string" minOccurs="1" maxOccurs="1"/>	
			<xs:element name="PrintedName" type="xs:string" minOccurs="1" maxOccurs="1"/>	
			<xs:element name="SSN" type="xs:string" minOccurs="0" maxOccurs="1"/>	
			<xs:element name="IsUSCitizen" type="xs:boolean" minOccurs="1" maxOccurs="1"/>
			<xs:element name="CitizenshipCountryCode" type="xs:string" minOccurs="1" maxOccurs="unbounded"/>
			<xs:element name="CardHolderUUID" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="CardUUID" type="xs:string" minOccurs="0" maxOccurs="1"/>			
			<xs:element name="CHUID" type="xs:string" minOccurs="0" maxOccurs="1"/>	
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="AdjudicationInformationType">
		<xs:sequence>
			<xs:element name="NACIAdjudicationValue" minOccurs="1" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Approved"/>
						<xs:enumeration value="Pending"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="NACIAdjudicationEffDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EnrollmentPackageType">
		<xs:sequence>
			<xs:element name="EPBiographic" type="EPBiographicType" minOccurs="0" maxOccurs="1"/>
			<xs:element name="EPBiometrics" type="EPBiometricsType" minOccurs="1" maxOccurs="1"/>
			<xs:element name="EPDocument" type="EPDocumentType" minOccurs="2" maxOccurs="2"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EPBiographicType">
		<xs:sequence>
			<xs:element name="GenderCode" minOccurs="0" maxOccurs="1">	
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Female"/>
						<xs:enumeration value="Male"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="EyeColorCode" minOccurs="0" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Blue"/>
						<xs:enumeration value="Brown"/>
						<xs:enumeration value="Gray"/>
						<xs:enumeration value="Green"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="HairColorCode" minOccurs="0" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Bald"/>
						<xs:enumeration value="Black"/>
						<xs:enumeration value="Blonde"/>
						<xs:enumeration value="Brown"/>
						<xs:enumeration value="Gray or Partially Gray"/>						
						<xs:enumeration value="Red or Auburn"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="Height" type="xs:string" minOccurs="0" maxOccurs="1"/>	
			<xs:element name="Weight" type="xs:integer" minOccurs="0" maxOccurs="1"/>
			<xs:element name="EthnicityCode" minOccurs="0" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="A"/>
						<xs:enumeration value="B"/>
						<xs:enumeration value="I"/>
						<xs:enumeration value="U"/>
						<xs:enumeration value="W"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="EnrollmentDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EPBiometricsType">
		<xs:sequence>
			<xs:element name="Photo" type="xs:base64Binary" minOccurs="1" maxOccurs="1"/>
			<xs:element name="FingerprintsOffCardComparisonRepresentation" type="xs:base64Binary" minOccurs="1" maxOccurs="1"/>	
			<xs:element name="FingerprintOnCardComparisonRepresentation" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>	
			<xs:element name="IrisRepresentation" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="EPDocumentType">
		<xs:sequence>
			<xs:element name="DocumentTypeIdentifier" minOccurs="1" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Primary identity source"/>
						<xs:enumeration value="Secondary identity source"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="DocumentTypeCode" minOccurs="1" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="U.S. Passport or a U.S. Passport Card"/>
						<xs:enumeration value="Permanent Resident Card or an Alien Registration Receipt Card (Form I-551)"/>
						<xs:enumeration value="Foreign Passport"/>
						<xs:enumeration value="Employment Authorization Document that contains a photograph (Form I-766)"/>
						<xs:enumeration value="Driver's license or an ID card issued by a state or possession of the United States provided it contains a photograph"/>
						<xs:enumeration value="U.S. Military ID card"/>
						<xs:enumeration value="U.S. Military dependent's ID card"/>
						<xs:enumeration value="PIV Card"/>
						<xs:enumeration value="U.S. Social Security Card issued by the Social Security Administration"/>
						<xs:enumeration value="Original or certified copy of a birth certificate issued by a state, county, municipal authority, possession, or outlying possession of the United States bearing an official seal"/>
						<xs:enumeration value="ID card issued by a federal, state, or local government agency or entity, provided it contains a photograph"/>
						<xs:enumeration value="Voter's registration card"/>
						<xs:enumeration value="U.S. Coast Guard Merchant Mariner Card"/>
						<xs:enumeration value="Certificate of U.S. Citizenship (Form N-560 or N-561)"/>
						<xs:enumeration value="Certificate of Naturalization (Form N-550 or N-570)"/>
						<xs:enumeration value="U.S. Citizen ID Card (Form I-197)"/>
						<xs:enumeration value="Identification Card for Use of Resident Citizen in the United States (Form I-179)"/>
						<xs:enumeration value=" Certification of Birth Abroad or Certification of Report of Birth issued by the Department of State (Form FS-545 or Form DS-1350)"/>
						<xs:enumeration value="Temporary Resident Card (Form I-688)"/>
						<xs:enumeration value="Employment Authorization Card (Form I-688A)"/>
						<xs:enumeration value="Reentry Permit (Form I-327)"/>
						<xs:enumeration value="Refugee Travel Document (Form I-571)"/>
						<xs:enumeration value="Employment authorization document issued by DHS"/>
						<xs:enumeration value="Employment Authorization Document issued by DHS with photograph (Form I-688B)"/>
						<xs:enumeration value="Driver's license issued by a Canadian government entity"/>
						<xs:enumeration value="Native American tribal document"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="DocumentNumber" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="SequenceNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="CountryCode" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="StateCode" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="ExpiryDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
			<xs:element name="DocumentImageFront" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
			<xs:element name="DocumentImageBack" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
			<xs:element name="CollectionDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
		</xs:sequence>
	</xs:complexType>
	<xs:complexType name="PIVCardTopographyType">
		<xs:sequence>
			<xs:element name="EmployeeAffiliation" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="AgencyDepartmentOrOrganization" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="CardExpirationDate" type="xs:date" minOccurs="0" maxOccurs="1"/>
			<xs:element name="AffiliationColorCode" minOccurs="0" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="B"/>
						<xs:enumeration value="G"/>
						<xs:enumeration value="W"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="AgencyCardSerialNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="IssuerIdentificationNumber" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="Signature" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
			<xs:element name="AgencySpecificText4F" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="Rank" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="PDFBarCode" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
			<xs:element name="Header" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="AgencySeal" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
			<xs:element name="Footer" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="PhotoBorder" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
			<xs:element name="AgencySpecificData" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="OrganizationalAffiliationAbbreviation" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="RidgingOrNotchedTactileMarker" minOccurs="0" maxOccurs="1">
				<xs:simpleType>
					<xs:restriction base="xs:string">
						<xs:enumeration value="Ridging"/>
						<xs:enumeration value="Notched Corner"/>
					</xs:restriction>
				</xs:simpleType>
			</xs:element>
			<xs:element name="LaserEngraving" type="xs:boolean" minOccurs="0" maxOccurs="1"/>
			<xs:element name="ReturnAddress" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="AdditionalLanguageForEmergencyResponseOfficials" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="StandardSection499Title18" type="xs:string" minOccurs="0" maxOccurs="1" fixed="This credential is the property of the U.S. Government. Counterfeiting, altering, or misusing violates Section 499, Title 18 of the U.S. Code."/>
			<xs:element name="AgencySpecificText9B" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="AgencySpecificText10B" type="xs:string" minOccurs="0" maxOccurs="1"/>
			<xs:element name="CardFrontImage" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>
			<xs:element name="CardBackImage" type="xs:base64Binary" minOccurs="0" maxOccurs="1"/>			
		</xs:sequence>
	</xs:complexType>
</xs:schema>