Appendix A XML Schema
All changes in this version
Title
XML Schema
Control
This appendix contains the chain of trust XML schema, which can also be download at http://csrc.nist.gov/schema/piv/chain-of-trust/piv- chain-of-trust-1.0.xsd . <? 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# " xmln s: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# " s chemaLocation = " 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" minOccu rs = "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 = "Per sonalInformation" type = "PersonalInformationType" minOccurs = "1" maxOccurs = "1" /> <xs:element name = "AdjudicationInformation" type = "AdjudicationInformationType" minOccurs = "1" maxOccurs = "1" /> <xs:element name = "EnrollmentPackage" type = "EnrollmentPackageTyp e" 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 = "Pr imaryIdentifier" 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:en umeration 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 = "EnrollmentPackage Type" > <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:i nteger" 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 valu e = "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 = "Iris Representation " type = "xs:base64Binary" minOccurs = "0" maxOccurs = "1" /> </xs:sequence> </xs:complexType> <xs:c omplexType 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:enumera tion 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 P assport " /> <xs:enumeration value = "Employment Authorization Doc ument 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 certifie d 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 (Fo rm 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:e numeration 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 Amer ican 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:s equence> </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" minOcc urs = " 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:enume ration 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 n ame = "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 = "AgencyS pecificData" 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" mi nOccurs = "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 = "StandardSe ction499Title18" 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 = "AgencySpecificText9 B" 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 = "Card BackImage" type = "xs:base64Binary" minOccurs = "0" maxOccurs = "1" /> </xs:sequence> </xs:complexType> </xs:schema>