<?xml version="1.0" encoding="UTF-8"?>
<tdt:epcTagDataTranslation version="2.0" date="2023-03-29T09:30:00Z" epcTDSVersion="2.0" xmlns:tdt="urn:epcglobal:tdt:xsd:2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:epcglobal:tdt:xsd:2 EpcTagDataTranslation.xsd">
	<scheme name="SGLN+" optionKey="1">
		<level type="BINARY" prefixMatch="11110010" requiredFormattingParameters="filter,dataToggle">
			<option optionKey="1" pattern="^11110010([01])([01]{3})" grammar="'11110010' dataToggle filter encodedAI">
				<field seq="1" name="dataToggle" decimalMinimum="0" decimalMaximum="1" characterSet="[01]*" bitPadDir="LEFT" bitLength="1"/>
				<field seq="2" name="filter" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3"/>
				<encodedAI ai="414" name="gln" seq="3"/>
				<encodedAI ai="254" name="serial" seq="4"/>
			</option>
		</level>
		<level type="BARE_IDENTIFIER" prefixMatch="gln=">
			<option optionKey="1" pattern="^gln=([0-9]{13})(?:;serial=([!%-?A-Z_a-z\x22]{1,20}))?$" grammar="'gln=' gln ';serial=' serial">
				<field seq="1" name="gln" decimalMinimum="0" decimalMaximum="9999999999999" characterSet="[0-9]*" length="13" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
			</option>
		</level>
		<level type="ELEMENT_STRING" prefixMatch="(414)">
			<option optionKey="1" pattern="^\(414\)([0-9]{13})(?:\(254\)([!%-?A-Z_a-z\x22]{1,20}))?\b" grammar="'(414)' gln '(254)' serial">
				<field seq="1" name="gln" decimalMinimum="0" decimalMaximum="9999999999999" characterSet="[0-9]*" length="13" padChar="0" padDir="LEFT"/>
				<field seq="2" name="serial" characterSet="[!%-?A-Z_a-z\x22]*"/>
			</option>
		</level>
		<level type="GS1_DIGITAL_LINK" prefixMatch="http" requiredFormattingParameters="uriStem">
			<option optionKey="1" pattern="\/414\/([0-9]{13})(?:\/254\/((?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25){1,20}))?\b" grammar="uriStem '/414/' gln '/254/' urlEscapedSerial">
				<field seq="1" name="gln" decimalMinimum="0" decimalMaximum="9999999999999" characterSet="[0-9]*" length="13" padChar="0" padDir="LEFT"/>
				<field seq="2" name="urlEscapedSerial" characterSet="(?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25)*"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="serial" characterSet="[!%-?A-Z_a-z\x22]*" function="URLDECODE(urlEscapedSerial)"/>
			<rule type="FORMAT" inputFormat="STRING" seq="1" newFieldName="urlEscapedSerial" characterSet="(?:[A-Za-z0-9\x22._-]|%21|%26|%27|%28|%29|%2A|%2B|%2C|%2F|%3A|%3B|%3C|%3D|%3E|%3F|%25)*" function="URLENCODE(serial)"/>
		</level>
	</scheme>
</tdt:epcTagDataTranslation>
