Приложение E (обязательное) Пример записи изображения отпечатков пальцев в формате XML В настоящем приложении определена схема, которая должна использоваться для проверки записей изображений отпечатков пальцев в формате XML. Кроме того, настоящее приложение обеспечивает преобразование значений из двоичного формата в формат XML. E.1 Схема изображения отпечатка пальца <?xml version="1.0" encoding="utf-8" ?> <! -- Настоящим, любому лицу, предоставляется бессрочное разрешение на бесплатное использование, копирование, изменение, объединение, опубликование и распространение копий схемы для разработки, внедрения, установки и использования программного обеспечения, разработанного с применением данной схемы при соблюдении следующих условий: схема предоставляется без какой-либо гарантии, явной или подразумеваемой, включая все без исключения подразумеваемые гарантии товарности или пригодности для какой-либо определенной цели. Ни при каких обстоятельствах авторы и владельцы авторского права не несут ответственности за какие-либо претензии, убытки и другие обязательства, возникшие вследствие выполнения обязательств по договору, неосторожности или гражданского правонарушения или других причин, возникших в результате или вследствие использования или функционирования данной схемы. Кроме того, любая модифицированная копия схемы должна включать следующее уведомление: "Эта схема является модифицированной по отношению к схеме, определенной в ГОСТ Р ИСО/МЭК 19794-4, и не должна толковаться как соответствующая требованиям указанного стандарта"--> <xs:schema xmlns=http://standards.iso.org/iso-iec/19794/-4/ed-2/amd/2 xmlns:cmn=http://standards.iso.org/iso-iec/19794/-1/ed-2/amd/2 attributeFormDefault="unqualified" elementFormDefault=" qualified" targetNamespace=http://standards.iso.org/iso-iec/19794/-4/ed-2/amd/2 xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:import schemaLocation="19794-1_ed2_amd2.xsd" namespace="http://standards.iso.org/iso-iec/19794/-1/ed-2/amd/2" /> <xs:simpleType name="AnnotationReasonType"> <xs:restriction base="xs:string"> <xs:enumeration value="Amputated" /> <xs:enumeration value="UnableToPrint" /> <xs:enumeration value="Bandaged" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="PositionType"> <xs:restriction base="xs:string"> <xs:enumeration value="UnknownFinger" /> <xs:enumeration value="RightThumb" /> <xs:enumeration value="RightIndex" /> <xs:enumeration value="RightMiddle" /> <xs:enumeration value="RightRing" /> <xs:enumeration value="RightLittle" /> <xs:enumeration value="LeftThumb" /> <xs:enumeration value="LeftIndex" /> <xs:enumeration value="LeftMiddle" /> <xs:enumeration value="LeftRing" /> <xs:enumeration value="LeftLittle" /> <xs:enumeration value="RightSlap" /> <xs:enumeration value="LeftSlap" /> <xs:enumeration value="BothThumbs" /> <xs:enumeration value="UnknownPalm" /> <xs:enumeration value="RightFullPalm" /> <xs:enumeration value="RightWritersPalm" /> <xs:enumeration value="RightLowerPalm" /> <xs:enumeration value="RightUpperPalm" /> <xs:enumeration value="RightOtherPalm" /> <xs:enumeration value="RightInterdigital" /> <xs:enumeration value="RightThenar" /> <xs:enumeration value="RightHypothenar" /> <xs:enumeration value="LeftFullPalm" /> <xs:enumeration value="LeftWritersPalm" /> <xs:enumeration value="LeftLowerPalm" /> <xs:enumeration value="LeftUpperPalm" /> <xs:enumeration value="LeftOtherPalm" /> <xs:enumeration value="LeftInterdigital" /> <xs:enumeration value="LeftThenar" /> <xs:enumeration value="LeftHypothenar" /> <xs:enumeration value="RightIndexMiddle" /> <xs:enumeration value="RightMiddleRing" /> <xs:enumeration value="RightRingLittle" /> <xs:enumeration value="LeftIndexMiddle" /> <xs:enumeration value="LeftMiddleRing" /> <xs:enumeration value="LeftRingLittle" /> <xs:enumeration value="RightIndexLeftIndex" /> <xs:enumeration value="RightIndexMiddleAndRing" /> <xs:enumeration value="RightMiddleRingAndLittle" /> <xs:enumeration value="LeftIndexMiddleAndRing" /> <xs:enumeration value="LeftMiddleRingAndLittle" /> </xs:restriction> </xs:simpleType> <xs:simpleType name="ImpressionType"> <xs:restriction base="xs:string"> <xs:enumeration value="LiveScanPlain" /> <xs:enumeration value="LiveScanRolled" /> <xs:enumeration value="NonLiveScanPlain" /> <xs:enumeration value="NonLiveScanRolled" /> <xs:enumeration value="LatentImpression" /> <xs:enumeration value="LatentTracing" /> <xs:enumeration value="LatentPhoto" /> <xs:enumeration value="LatentLift" /> <xs:enumeration value="LiveScanVerticalSwipe" /> <xs:enumeration value="LiveScanVerticalRolled" /> <xs:enumeration value="LiveScanPalm" /> <xs:enumeration value="NonLiveScanPalm" /> <xs:enumeration value="LatentPalmImpression" /> <xs:enumeration value="LatentPalmTracing" /> <xs:enumeration value="LatentPalmPhoto" /> <xs:enumeration value="LatentPalmLift" /> <xs:enumeration value="LiveScanOpticalContactPlain" /> <xs:enumeration value="LiveScanOpticalContactRolled" /> <xs:enumeration value="LiveScanNonOpticalContactPlain" /> <xs:enumeration value="LiveScanNonOpticalContactRolled" /> <xs:enumeration value="LiveScanOpticalContactlessPlain" /> <xs:enumeration value="LiveScanOpticalContactlessRolled" /> <xs:enumeration value="LiveScanNonOpticalContactlessPlain" /> <xs:enumeration value="LiveScanNonOpticalContactlessRolled" /> <xs:enumeration value="Other" /> <xs:enumeration value="Unknown" /> </xs:restriction> </xs:simpleType> <xs:complexType name="SegmentType"> <xs:sequence> <xs:element name="Position" type="PositionType" /> <xs:element name="QualityList" type="cmn:QualityListType" minOccurs="0' /> <xs:element name="EnclosingCoordinates"> <xs:complexType> <xs:sequence> <xs:element name="Coordinate" type="cmn:CoordinateCartesian2DUnsignedShortType" minOccurs="2" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="Orientation" type="xs:unsignedByte" /> </xs:sequence> </xs:complexType> <xs:complexType name="SegmentationType"> <xs:sequence> <xs:element name="Algorithm" type="cmn:RegistryIDType" /> <xs:element name="SegmentList"> <xs:complexType> <xs:sequence> <xs:element name="Segment" type="SegmentType" maxOccurs="4" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:simpleType name="ImageCompressionType"> <xs:restriction base="xs:string"> <xs:enumeration value="None" /> <xs:enumeration value="BitPacked" /> <xs:enumeration value="JPG" /> <xs:enumeration value="WSQ" /> <xs:enumeration value="JP2" /> <xs:enumeration value="JP2_LS" /> <xs:enumeration value="PNG" /> </xs:restriction> </xs:simpleType> <xs:complexType name="AnnotationType"> <xs:sequence> <xs:element name="Position" type="PositionType" /> <xs:element name="Reason" type="AnnotationReasonType" /> </xs:sequence> </xs:complexType> <xs:simpleType name="UnitDimensionType"> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse" /> <xs:enumeration value="Inch" /> <xs:enumeration value="Cm" /> </xs:restriction> </xs:simpleType> <xs:complexType name="SpatialSamplingRateType"> <xs:sequence> <xs:element name="SamplesPerUnit" type="xs:unsignedShort" /> <xs:element name="UnitDimension" type="UnitDimensionType" /> </xs:sequence> </xs:complexType> <xs:simpleType name="CaptureDeviceTechnologyType"> <xs:restriction base="xs:string"> <xs:whiteSpace value="collapse" /> <xs:enumeration value="Unknown" /> <xs:enumeration value="WhiteLightOpticalTIR" /> <xs:enumeration value="WhiteLightOpticalDirectPlatenView" /> <xs:enumeration value="WhiteLightOpticalTouchless" /> <xs:enumeration value="MonochromaticVisibleOpticalTIR" /> <xs:enumeration value="MonochromaticVisibleOpticalDirectPlatenView" /> <xs:enumeration value="MonochromaticVisibleOpticalTouchless" /> <xs:enumeration value="MonochromaticIROpticalTIR" /> <xs:enumeration value="MonochromaticIROpticalDirectPlatenView" /> <xs:enumeration value="MonochromaticIROpticalTouchless" /> <xs:enumeration value="MultispectralOpticalTIR" /> <xs:enumeration value="MultispectralOpticalDirectPlatenView" /> <xs:enumeration value="MultispectralOpticalTouchless" /> <xs:enumeration value="ElectroLuminescent" /> <xs:enumeration value="SemiconductorCapacitive" /> <xs:enumeration value="SemiconductorRF" /> <xs:enumeration value="SemiconductorThermal" /> <xs:enumeration value="PressureSensitive" /> <xs:enumeration value="Ultrasound" /> <xs:enumeration value="Mechanical" /> <xs:enumeration value="GlassFiber" /> </xs:restriction> </xs:simpleType> <xs:complexType name="CaptureDeviceType"> <xs:sequence> <xs:element name="DeviceID" type="cmn:RegistryIDType" /> <xs:element name="ScannerXSpatialSamplingRate" type="SpatialSamplingRateType" /> <xs:element name="ScannerYSpatialSamplingRate" type="SpatialSamplingRateType" /> <xs:element name="CertificationIDList" type="cmn:CertificationIDListType" minOccurs="0" /> <xs:element name="Technology" type="CaptureDeviceTechnologyType" /> </xs:sequence> </xs:complexType> <xs:complexType name="FingerImageRepresentationType"> <xs:sequence> <xs:element ref="FingerImage" /> <xs:element name="QualityList" type="cmn:QualityListType" minOc- curs="0" /> <xs:element name="Position" type="PositionType" /> <xs:element name="Impression" type="ImpressionType" /> <xs:element name="ImageXSpatialSamplingRate" type="SpatialSamplingRateType" /> <xs:element name="ImageYSpatialSamplingRate" type="SpatialSamplingRateType" /> <xs:element name="BitDepth"> <xs:simpleType> <xs:restriction base="xs:unsignedByte"> <xs:minlnclusive value="1" /> <xs:maxlnclusive value="16" /> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="ImageCompressionAlgorithmName" type="ImageCompressionType" /> <xs:element name="ImageCompressionAlgorithmID" type="cmn:RegistryIDType" minOccurs="0" /> <xs:element name="CaptureDateTime" type="xs:dateTime" /> <xs:element name="Width" type="xs:unsignedShort" /> <xs:element name="Height" type="xs:unsignedShort" /> <xs:element name="FingerImageData" type="xs:base64Binary" /> <xs:element name="FingerSegmentationList" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="Segmentation" type="SegmentationType" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="AnnotationList" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="Annotation" type="AnnotationType" maxOccurs="4" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="CommentList" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="Comment" type="xs:string" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="VendorSpecificDataList" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="VendorSpecificData" type="cmn:VendorSpecificDataType" maxOccurs="unbounded" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:element name="FingerImage"> <xs:complexType> <xs:sequence> <xs:element name="Version" type="cmn:VersionType" /> <xs:element name="NumberOfDistinctPositions" type="xs:unsignedByte" /> <xs:element name="RepresentationList"> <xs:complexType> <xs:sequence> <xs:element name="Representation" type="FingerImageRepresentationType" maxOccurs="672" /> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> <xs:attribute name="SchemaVersion" type="xs:decimal" use="required" /> </xs:complexType> </xs:element> </xs:schema> E.2 Преобразования элементов изображения отпечатков пальцев Существуют определенные ограничения при кодировании в двоичном формате и формате XML. Таблицы E.1* и E.2** поясняют эти ограничения. ________________ * В оригинале ИСО/МЭК 19794-4:2011 Изм. A2:2015 таблица указана под номером 10. ** В оригинале ИСО/МЭК 19794-4:2011 Изм. A2:2015 таблица указана под номером 11. Таблица E.1 - Кодирование изображений отпечатка пальца в двоичном формате и формате XML | ||||
Дословное описание изображения отпечатка пальца | Соответствующее значение в двоичном формате | Соответствующее значение в формате XML | ||
"Живой" отпечаток пальца, зарегистрированный оттисковым методом | 0 | Plain | ||
"Живой" отпечаток пальца, зарегистрированный методом прокатки | 1 | Rolled | ||
"Не живой" отпечаток пальца, зарегистрированный оттисковым методом | 2 | Plain | ||
"Не живой" отпечаток пальца, зарегистрированный методом прокатки | 3 | Rolled | ||
След отпечатка пальца | 4 | Plain | ||
След отпечатка пальца, зарегистрированный методом трассировки | 5 | Plain | ||
Снимок следа отпечатка пальца | 6 | Plain | ||
След отпечатка пальца, зарегистрированный методом повышения/подтягивания | 7 | Plain | ||
"Живой" отпечаток пальца, зарегистрированный методом протяжки | 8 | VerticalSwipe | ||
"Живой" отпечаток пальца, зарегистрированный методом вертикальной прокатки | 9 | VerticalRolled | ||
"Живой" отпечаток ладони | 10 | Palm | ||
"Не живой" отпечаток ладони | 11 | Palm | ||
След отпечатка ладони | 12 | Palm | ||
След отпечатка ладони, зарегистрированный методом трассировки | 13 | Palm | ||
Снимок следа отпечатка ладони | 14 | Palm | ||
След отпечатка ладони, зарегистрированный методом повышения/подтягивания | 15 | Palm | ||
Зарезервировано ИСО/МЭК СТК 1/ПК 37 для дальнейшего использования | От 20 до 23 | Не кодируется | ||
"Живой" отпечаток пальца, зарегистрированный оптическим бесконтактным оттисковым методом | 24 | Plain | ||
Зарезервировано ИСО/МЭК СТК 1/ПК 37 для дальнейшего использования | От 25 до 27 | Не кодируется | ||
"Живой" отпечаток пальца, зарегистрированный оптическим контактным методом прокатки | 28 | LiveScanOpticalContactRolled | ||
"Живой" отпечаток пальца, зарегистрированный неоптическим контактным оттисковым методом | 28 | LiveScanNonOpticalContactPlain | ||
"Живой" отпечаток пальца, зарегистрированный неоптическим контактным методом прокатки | 28 | LiveScanNonOpticalContactRolled | ||
"Живой" отпечаток пальца, зарегистрированный оптическим бесконтактным оттисковым методом | 28 | LiveScanOpticalContactlessPlain | ||
"Живой" отпечаток пальца, зарегистрированный оптическим бесконтактным методом прокатки | 28 | LiveScanOpticalContactlessRolled | ||
"Живой" отпечаток пальца, зарегистрированный неоптическим бесконтактным оттисковым методом | 28 | LiveScanNonOpticalContactlessP lain | ||
"Живой" отпечаток пальца, зарегистрированный неоптическим бесконтактным методом прокатки | 28 | LiveScanNonOpticalContactlessR olled | ||
Другой | 28 | Other | ||
Неизвестный | 29 | Unknown | ||
Тип данных, представленный в поле "PositionType" ("Наименование"), включает все значения из таблицы E.2 применительно к двоичным форматам. В таблице E.2 также представлено преобразование двоичного формата в формат XML при перечислении, особенность которого заключается в том, что перечисление в двоичном формате может содержать пробелы (неиспользуемые значения), а перечисление в формате XML не поддерживает пробелы (неиспользуемые значения). Таблица E.2 - Кодирование наименований пальцев в двоичном формате и формате XML | ||||
Дословное описание наименования пальца | Соответствующее значение в двоичном формате | Соответствующее значение в формате XML | ||
Неизвестный палец | 0 | UnknownFinger | ||
Большой палец правой руки | 1 | RightThumb | ||
Указательный палец правой руки | 2 | RightIndex | ||
Средний палец правой руки | 3 | RightMiddle | ||
Безымянный палец правой руки | 4 | RightRing | ||
Мизинец правой руки | 5 | RightLittle | ||
Большой палец левой руки | 6 | LeftThumb | ||
Указательный палец левой руки | 7 | LeftIndex | ||
Средний палец левой руки | 8 | LeftMiddle | ||
Безымянный палец левой руки | 9 | LeftRing | ||
Мизинец левой руки | 10 | LeftLittle | ||
Четыре пальца правой руки (без большого) | 13 | RightSlap | ||
Четыре пальца левой руки (без большого) | 14 | LeftSlap | ||
Большой палец левой руки и большой палец правой руки | 15 | BothThumbs | ||
Указательный и средний пальцы правой руки | 40 | RightIndexMiddle | ||
Средний и безымянный пальцы правой руки | 41 | RightMiddleRing | ||
Безымянный и мизинец правой руки | 42 | RightRingLittle | ||
Указательный и средний пальцы левой руки | 43 | LeftIndexMiddle | ||
Средний и безымянный пальцы левой руки | 44 | LeftMiddleRing | ||
Безымянный и мизинец левой руки | 45 | LeftRingLittle | ||
Указательный палец правой и левой руки | 46 | RightIndexLeftIndex | ||
Указательный, средний и безымянный пальцы правой руки | 47 | RightIndexMiddleRing | ||
Средний, безымянный и мизинец правой руки | 48 | RightMiddleRingLittle | ||
Указательный, средний и безымянный пальцы левой руки | 49 | LeftIndexMiddleRing | ||
Средний, безымянный и мизинец левой руки | 50 | LeftMiddleRingLittle | ||
Неизвестная ладонь | 20 | UnknownPalm | ||
Полная ладонь правой руки | 21 | RightFullPalm | ||
"Ладонь писателя" правой руки | 22 | RightWritersPalm | ||
Полная ладонь левой руки | 23 | LeftFullPalm | ||
"Ладонь писателя" левой руки | 24 | LeftWritersPalm | ||
Нижняя часть ладони правой руки | 25 | RightLowerPalm | ||
Верхняя часть ладони правой руки | 26 | RightUpperPalm | ||
Нижняя часть ладони левой руки | 27 | LeftLowerPalm | ||
Верхняя часть ладони левой руки | 28 | LeftUpperPalm | ||
Другая часть ладони правой руки | 29 | RightOtherPalm | ||
Другая часть ладони левой руки | 30 | LeftOtherPalm | ||
Межпальцевые подушечки правой руки | 31 | RightInderdigital | ||
Тенар правой руки | 32 | RightThenar | ||
Гипотенар правой руки | 33 | RioghtHypothenar | ||
Межпальцевые подушечки левой руки | 34 | LeftInterdigital | ||
Тенар левой руки | 35 | LeftThenar | ||
Гипотенар левой руки | 36 | LeftHypothenar |