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 den Barcode und 2D Code Anwendungen wird beides häufig vermischt. 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 Struktur benutzt wird. Die Struktur wiederum besteht aus Datenbezeichern und den dazugehörigen Datenfeldern. Die Datenbezeichner geben an welche Bedeutung ein Datenfeld hat (typ. Artikelnummer, Charge, Verfalldatum usw.)

Für die typischen Anwendungen mit 2D Matrixcode wird das Format 06 benutzt (gemäß ISO/IEC 15434) . Das Format 06 besteht aus der Zeichenfolge [)><RS>06<GS> am Anfang des Codes und am Ende wird <RS> und <EOT> angefügt. Dazwischen liegen dann die Nutzdaten, die den Vorgaben der ISO/IEC 15418 folgen müssen (sektion Data Identifier). Die Zeichen <GS>, <RS> und <EOT> stehen für dies 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 ist das Format 05 als Erkennungsmerkmal vorgesehen. Es unterscheidet sich von dem Format 06 nur dadurch, dass 05 anstelle von 06 eingefügt wird. Der Dateninhalt ist formal aber etwas anders, wie dies im Vergleich der Beispiele 1-3 zu 4 zu sehen ist.

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). Ü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 für das Format 06, Format 05 jeweils ein eigenes Codewort reserviert (Macro 05 und 06). Für den Scanner sind die Macro Codewörtter 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.