Статус документа
Статус документа

ГОСТ Р ИСО/МЭК 19794-2-2013 Информационные технологии (ИТ). Биометрия. Форматы обмена биометрическими данными. Часть 2. Данные изображения отпечатка пальца - контрольные точки (с Изменением N 1)

Приложение G

(обязательное)

Определение схемы XML

В настоящем приложении определена схема, которая должна использоваться для проверки записей контрольных точек отпечатка пальца в формате XML. Кроме того, настоящее приложение обеспечивает преобразование значений из двоичного формата в формат XML.

G.1 Схема контрольных точек отпечатка пальца

<?xml version="1.0" encoding="utf-8" ?>

<!-- Настоящим, любому лицу, предоставляется бессрочное разрешение на бесплатное использование, копирование, изменение, объединение, опубликование и распространение копий схемы для разработки, внедрения, установки и использования программного обеспечения, разработанного с применением данной схемы при соблюдении следующих условий: схема предоставляется без какой-либо гарантии, явной или подразумеваемой, включая все без исключения подразумеваемые гарантии товарности или пригодности для какой-либо определенной цели. Ни при каких обстоятельствах авторы и владельцы авторского права не несут ответственности за какие-либо претензии, убытки и другие обязательства, возникшие вследствие выполнения обязательств по договору, неосторожности или гражданского правонарушения или других причин, возникших в результате или вследствие использования или функционирования данной схемы. Кроме того, любая модифицированная копия схемы должна включать следующее уведомление: "Эта схема является модифицированной по отношению к схеме, определенной в ИСО/МЭК 19794-2, и не должна толковаться как соответствующая требованиям указанного стандарта"-->

     <xs:schema xmlns="http://standards.iso.org/iso-iec/19794/-2/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/-2/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="MinutiaDimension">
     <xs:restriction base="xs:unsignedlnt">
     <xs:maxlnclusive value="16383" />
     </xs:restriction>
     </xs:simpleType>

     <xs:complexType name="MinutiaCoordinateType">
     <xs:sequence>
     <xs:element name="X" type="MinutiaDimension" />
      <xs:element name="Y" type="MinutiaDimension" />
     </xs:sequence>
     </xs:complexType>

     <xs:simpleType name="MinutiaKindType">
     <xs:restriction base="xs:string">
     <xs:enumeration value="RidgeEnding" />
     <xs:enumeration value="RidgeBifurcation" />
     <xs:enumeration value="Other" />
     </xs:restriction>
     </xs:simpleType>

     <xs:simpleType name="MinutiaIndexType">
     <xs:restriction base="xs:unsignedByte">
     <xs:minlnclusive value="1" />
     <xs:maxlnclusive value="254" />
     </xs:restriction>
     </xs:simpleType>

     <xs:simpleType name="FingerMinutiaQualityScoreType">
     <xs:restriction base="xs:unsignedByte">
     <xs:minlnclusive value="0" />
     <xs:maxlnclusive value="100" />
     </xs:restriction>
     </xs:simpleType>

     <xs:complexType name="FingerMinutiaQualityType">
     <xs:sequence>
     <xs:choice>
     <xs:element name="Score" type="FingerMinutiaQualityScoreType" />
      <xs:element name="QualityCalculationFailed" type="xs:string" />
     </xs:choice>
     </xs:sequence>
     </xs:complexType>

     <xs:complexType name="MinutiaPointType">
     <xs:sequence>
     <xs:element name="Coordinate" type="MinutiaCoordinateType" />
     <xs:element name="Angle" type="xs:unsignedByte" />
     <xs:element name="Quality" type="FingerMinutiaQualityType" minOccurs="0" />
     <xs:element name="MinutiaIndex" type="MinutiaIndexType" />
     <xs:element name="MinutiaKind" type="MinutiaKindType" />
      </xs:sequence>
     </xs:complexType>

     <xs:complexType name="RidgeCountType">
     <xs:sequence>
     <xs:element name="MinutiaIndex1" type="MinutiaIndexType" />
     <xs:element name="MinutiaIndex2" type="MinutiaIndexType" />
     <xs:element name="RidgeCount" type="xs:unsignedByte" />
     </xs:sequence>
     </xs:complexType>

     <xs:complexType name="RelativeRidgeCountType">
     <xs:sequence>
     <xs:element name="RelativeMinutiaIndex" type="MinutiaIndexType" />
     <xs:element name="RidgeCount" type="xs:unsignedByte" />
     </xs:sequence>
      </xs:complexType>

     <xs:complexType name="FourNeighborRidgeCountType">
     <xs:sequence>
     <xs:element name="CenterMinutiaIndex" type="MinutiaIndexType" />
     <xs:element name="TopRightMinutiaCount" type="RelativeRidgeCountType" minOccurs="0" />
     <xs:element name="BottomRightMinutiaCount" type="RelativeRidgeCountType" minOccurs="0" />
     <xs:element name="BottomLeftMinutiaCount" type="RelativeRidgeCountType" minOccurs="0" />
     <xs:element name="TopLeftMinutiaCount" type="RelativeRidgeCountType" minOccurs="0" />
     </xs:sequence>
     </xs:complexType>

     <xs:complexType name="EightNeighborRidgeCountType">
     <xs:sequence>
     <xs:element name="CenterMinutiaIndex" type="MinutiaIndexType" />
     <xs:element name="Octant0Count" type="RelativeRidgeCountType" minOccurs="0" />
     <xs:element name="Octant1Count" type="RelativeRidgeCountType" minOccurs="0" />
     <xs:element name="Octant2Count" type="RelativeRidgeCountType" minOccurs="0" />
     <xs:element name="Octant3Count" type="RelativeRidgeCountType" minOccurs="0" />
     <xs:element name="Octant4Count" type="RelativeRidgeCountType" minOccurs="0" />
     <xs:element name="Octant5Count" type="RelativeRidgeCountType" minOccurs="0" />
     <xs:element name="Octant6Count" type="RelativeRidgeCountType" minOccurs="0" />
     <xs:element name="Octant7Count" type="RelativeRidgeCountType" minOccurs="0" />
     </xs:sequence>
     </xs:complexType>

     <xs:complexType name="CoreDataType">
     <xs:sequence>
     <xs:element name="Coordinate" type="MinutiaCoordinateType" />
      <xs:element name="Angle" type="xs:unsignedByte" minOccurs="0" />
     </xs:sequence>
     </xs:complexType>

     <xs:complexType name="DeltaDataType">
     <xs:sequence>
     <xs:element name="Coordinate" type="MinutiaCoordinateType" />
     <xs:sequence minOccurs="0">
     <xs:element name="Angle1" type="xs:unsignedByte" />
     <xs:element name="Angle2" type="xs:unsignedByte" />
     <xs:element name="Angle3" type="xs:unsignedByte" />
     </xs:sequence>
     </xs:sequence>
     </xs:complexType>

     <xs:complexType name="ZonalQualityDataType">
     <xs:sequence>
     <xs:element name="Algorithm" type="cmn:RegistrylDType" />
     <xs:element name="CellWidth" type="xs:unsignedByte" />
     <xs:element name="CellHeight" type="xs:unsignedByte" />
     <xs:element name="CellQualityList">
     <xs:complexType>
     <xs:sequence>
     <xs:element name="CellQuality" type="xs:unsignedByte" maxOccurs="unbounded" />
     </xs:sequence>
     </xs:complexType>
     </xs:element>
     </xs:sequence>
      </xs:complexType>

     <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="RightIndexMiddle" />
     <xs:enumeration value="RightMiddleRing" />
     <xs:enumeration value="RightRingLittle" />
     <xs:enumeration value="LeftlndexMiddle" />
     <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="LiveScanOpticalContactlessPlain" />
     <xs:enumeration value="Other" />
     <xs:enumeration value="Unknown" />
     </xs:restriction>
     </xs:simpleType>

     <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:RegistrylDType" />
     <xs:element name="ScannerXSpatialSamplingRate" type="SpatialSamplingRateType" />
     <xs:element name="ScannerYSpatialSamplingRate" type="SpatialSamplingRateType" />
     <xs: element name="CertificationIDList" type="cmn:CertificationlDListType" minOccurs="0" />
     <xs:element name="Technology" type="CaptureDeviceTechnologyType" />
     </xs:sequence>
      </xs:complexType>

     <xs:complexType name="FingerMinutiaRepresentationType">
     <xs:sequence>
     <xs:element name="CaptureDevice" type="CaptureDeviceType" />
     <xs:element name="QualityList" type="cmn:QualityListType" minOccurs="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="CaptureDateTime" type="xs:dateTime" />
     <xs:element name="ImageWidth" type="MinutiaDimension" />
     <xs:element name="ImageHeight" type="MinutiaDimension" />
     <xs:element name="RidgeEndingIsValleyBifurcation" type="xs:boolean" />

     <xs:element name="MinutiaPointList">
     <xs:complexType>
     <xs:sequence>
     <xs:element name="MinutiaPoint" type="MinutiaPointType" maxOccurs="254" />
     </xs:sequence>
      </xs:complexType>
     </xs:element>
     <xs:element name="GenericRidgeCountList" minOccurs="0">
     <xs:complexType>
     <xs:sequence>
     <xs:element name="RidgeCountList" type="RidgeCountType" maxOccurs="unbounded" />
     </xs:sequence>
     </xs:complexType>
     </xs:element>
     <xs:element name="FourNeighborRidgeCountList" minOccurs="0">
     <xs:complexType>
     <xs:sequence>
     <xs:element name="FourNeighborRidgeCountList" type="FourNeighborRidgeCountType" maxOccurs="unbounded" />
     </xs:sequence>
     </xs:complexType>
     </xs:element>
     <xs:element name="EightNeighborRidgeCountList" minOccurs="0">
     <xs:complexType>
     <xs:sequence>
     <xs:element name="EightNeighborRidgeCountList" type="EightNeighborRidgeCountType" maxOccurs="unbounded" />
     </xs:sequence>
     </xs:complexType>
     </xs:element>
     <xs:element name="CoreDataList" minOccurs="0">
     <xs:complexType>
     <xs:sequence>
     <xs:element name="Core" type="CoreDataType" maxOccurs="15" />
     </xs:sequence>
     </xs:complexType>
     </xs:element>
     <xs:element name="DeltaDataList" minOccurs="0">
     <xs:complexType>
     <xs:sequence>
     <xs:element name="Delta" type="DeltaDataType" maxOccurs="15" />
     </xs:sequence>
      </xs:complexType>
     </xs:element>
     <xs:element name="ZonalQualityDataList" minOccurs="0">
      <xs:complexType>
     <xs:sequence>
     <xs:element name="ZonalQualityData" type="ZonalQualityDataType" 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="FingerMinutia">
     <xs:complexType>
     <xs:sequence>
     <xs:element name="Version" type="cmn:VersionType" />
     <xs:element name="RepresentationList">
     <xs:complexType>
     <xs:sequence>
     <xs:element name="Representation" type="FingerMinutiaRepresentationType" maxOccurs="352" />
     </xs:sequence>
     </xs:complexType>
     </xs:element>
     </xs:sequence>
     <xs:attribute name="SchemaVersion" type="xs:decimal" use="required" />
     </xs:complexType>
     </xs:element>

     </xs:schema>

G.2 Преобразования элементов контрольных точек отпечатка пальца

Существуют определенные ограничения при кодировании в двоичном формате и формате XML. Таблицы G.1 и G.2 поясняют эти ограничения.

Таблица G.1* - Кодирование изображений отпечатка пальца в двоичном формате и формате XML

_______________

* В оригинале ИСО/МЭК 19794-2:2011/Изм. А2 допущена опечатка - указан номер таблицы 6 вместо G.1.

Дословное описание изображения отпечатка пальца

Соответствующее значение в двоичном формате

Соответствующее значение в формате XML

"Живой" отпечаток пальца, зарегистрированный оттисковым методом

0

Plain

"Живой" отпечаток пальца, зарегистрированный методом прокатки

1

Rolled

"Не живой" отпечаток пальца, зарегистрированный оттисковым методом

2

Plain

"Не живой" отпечаток пальца, зарегистрированный методом прокатки

3

Rolled

След отпечатка пальца

4

Plain

След отпечатка пальца, зарегистрированный методом трассировки

5

Plain

Снимок следа отпечатка пальца

6

Plain

След отпечатка пальца, зарегистрированный методом повышения/подтягивания

7

Plain

"Живой" отпечаток пальца, зарегистрированный методом протяжки

8

VerticalSwipe

"Живой" отпечаток пальца, зарегистрированный методом вертикальной прокатки

9

VerticalRolled

Зарезервировано ПК 37 для дальнейшего использования

10-23

Не кодируется

"Живой" отпечаток пальца, зарегистрированный оптическим бесконтактным оттисковым методом

24

Plain

Зарезервировано ПК 37 для дальнейшего использования

25-27

Не кодируется

"Живой" отпечаток пальца, зарегистрированный оптическим контактным методом прокатки

28

LiveScanOptical

ContactRolled

"Живой" отпечаток пальца, зарегистрированный неоптическим контактным оттисковым методом

28

LiveScanNonOptical ContactPlain

"Живой" отпечаток пальца, зарегистрированный неоптическим контактным методом прокатки

28

LiveScanNonOptical ContactRolled

"Живой" отпечаток пальца, зарегистрированный оптическим бесконтактным оттисковым методом

28

LiveScanOptical ContactlessPlain

"Живой" опечаток пальца, зарегистрированный оптическим бесконтактным методом прокатки

28

LiveScanOplical ContactlessRolled

"Живой" отпечаток пальца, зарегистрированный неоптическим бесконтактным оттисковым методом

28

LiveScanNonOptical ContactlessPlain

"Живой" отпечаток пальца, зарегистрированный неоптическим бесконтактным оттисковым методом

28

LiveScanNonOptical ContactlessPlain

"Живой" отпечаток пальца, зарегистрированный неоптическим бесконтактным методом прокатки

28

LiveScanNonOptical ContactlessRolled

Другой

28

Другой

Неизвестный

29

Неизвестный

Перечислимый тип данных, представленный в поле "PositionType" ("Наименование"), включает все значения из таблицы G.2 применительно к двоичным форматам. В таблице G.2 также представлено преобразование двоичного формата в формате XML при перечислении, особенность которого заключается в том, что перечисление в двоичном формате может содержать пробелы (неиспользуемые значения), а перечисление в формате XML не поддерживает пробелы (неиспользуемые значения).

Таблица G.2* - Кодирование наименований пальцев в двоичном формате и формате XML _______________

* В оригинале ИСО/МЭК 19794-2:2011/Изм. А2 допущена опечатка - указан номер таблицы 7 вместо G.2.     

Дословное описание наименования пальца

Соответствующее значение в двоичном формате

Соответствующее значение в формате 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

 

(Введено дополнительно. Изм. А2:2015).


Приложение G (Введено дополнительно, Изм. N 1).