Datenstrukturerkennung

Die verschiedenen Datenstrukturen, die benutzt werden können, sollten zuverlässig erkannt werden können.

Dazu ist es zunächst erforderlich zwischen der Datenträgerebene und der Datenebene zu unterscheiden. In Anlehnung an das OSI Modell kann man auch bei den Codes den Codetyp mit seinen Eigenschaften als physikalischen Ebene ansehen und die mit dem Code transportierten Inhalte als Datenebene.

Durch die Vorgaben der ISO/IEC 15424 besteht die Möglichkeit einer Anwendung die Information über die gelesene Codeart zukommen zu lassen. Damit liegt eine Identifikationsmöglichkeit über die benutzte physikalische Ebene vor. Die Kennzeichnung welche Daten tranportiert werden und welche Struktur diese haben ist durch die Vorgaben der ISO/IEC 15434 erkennbar. Auch hier liegen wieder mehere Ebenen vor. Die ISO/IEC 15434 zeigt an welche Art von Datenstruktur (bzw. Syntax) benutzt wird. Die Struktur wiederum besteht aus Datenbezeichern und den dazugehörigen Datenfeldern. Die Datenbezeichner geben an welche Bedeutung ein Datenfeld hat (typ. sind z.B. Artikelnummer, Charge, Verfalldatum usw.)

Für viele Anwendungen mit 2D Matrixcode wird das Format 06 benutzt (gemäß ISO/IEC 15434) . Das Format 06 wird der Zeichenfolge [)><RS>06<GS> am Anfang des Codes und am Ende wird <RS> und <EOT> kenntlich gemacht. Dazwischen liegen dann die Nutzdaten, die den Vorgaben der ISO/IEC 15418 (ANSI MH10.8.2) folgen müssen. Die Zeichen <GS>, <RS> und <EOT> stehen für die entsprechenden ASCII Steuerzeichen. Die Beispiele 1,2 und 3 der Seite "Weltweit eindeutige Kennzeichnungen"  werden normalerweise mit dem Format 06 gekennzeichnet. Zusätzlich zur Erkennungsfunktion ist auch eindeutig das Ende und der Beginn der Nutzdaten erkennbar.

Für das Beispiel 4 der Seite Weltweit eindeutige Kennzeichnungen wäre theoretisch das Format 05 als Erkennungsmerkmal vorgesehen. Es unterscheidet sich von dem Format 06 nur dadurch, dass 05 anstelle von 06 eingefügt wird. Die Nutzdaten in der Application Identifier Syntax sind formal aber etwas anders aufgebaut als die Daten in der Data Identifier Syntax. Im Vergleich der Beispiele 1-3 zu 4 ist das zu  sehen.

In der Praxis wird das Format 05 nicht benutzt. Anstelle dessen verwendet man zur Erkennung das Barcodezeichen FNC1 (existiert nicht als ASCII Zeichen). Das FNC1 Zeichen hat zur Folge, dass nach ISO/IEC 15424 sich die Codeart (= physikalische Ebene) scheinbar ändert (tatsächlich natürlich nicht) (Der Modifier des Symbologie Identifier ändert sich). Über diese Erkennung wird dann geprüft, ob die Datenstruktur gemäß Beispiel 4 zu erwarten ist. Das ist historisch entstanden und hat bei der Barcodeanwendung den Vorteil die Datenstruktur mit einem Zeichen erkennen zu können, während Format 05 und 06  acht zuätzliche Zeichen erfordern. Die 8 zusätzlichen Zeichen sind für 2D Matrixcodes völlig unkritisch aber für Barcodes ein so großer zusätzlicher Platzbedarf, dass es in der Praxis nicht nutzbar ist.

Der DataMatrix Code hat als Besonderheit, dass  für das Format 06, Format 05 jeweils ein eigenes Codewort reserviert (Macro 05 und 06) wurde. Für den Scanner sind die Macro Codewörter die Anweisung das entsprechende Format den dekodierten Daten voranzustellen und hinten anzuhängen. Anstelle von 8 Zeichen wird mit dem Macro nur noch ein Codewort benötigt. Der Aztec Code und der QR-Code haben solche Macro Codewörter leider nicht.