GS1-128 is mainly used for product and pallets tagging in trade and industry. The deprecated descriptor of GS1-128 was EAN/UCC-128. GS1-128 is a special form of the Code 128. It uses a special character – the FNC1 – immediately behind the start character to distinguish from the EAN-128.
One GS1-128 barcode can encode multiple data. Food pallets e.g. get the product code (like in GTIN-13) and additional weight information and expiry date in one barcode.
To be able to encode various data in one barcode, there are international standardized data descriptors which define the type of encoded data. They are named Application Identifier (AI).
Here you find a list of possible AI:
Application Identifier Values
The example barcode from above reads this way:
The values inside the round brackets are Application Identifiers, the values behind are the relevant data. The brackets only enhance the readability of the text line, they are not encoded in the barcode itself. The leading
(01) is the Product Code AI which always
requires 14 digits. These 14 digits follow behind the AI. Then you see
the next AI for the next data. In this example, you see the encoding
for an expiry date, introduced by the AI
(15), which requires 6
digits to encode the expiry date in the format YYMMDD. In this
example, it is the date 2010-12-31.
In Barcody the AI have to be entered in square brackets 
in order to be able to use round brackets () in data fields.
Data with variable length are limited by a subsequent AI, e.g. you can
define the quantity (AI #30, here 19 pieces) and the serial number (AI
#20) like this:
validates the used AIs and data fields and responds accordingly. Only
when all entered data are valid, a barcode is being generated and