<?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="CPI+" optionKey="1">
		<level type="BINARY" prefixMatch="11110000" requiredFormattingParameters="filter,dataToggle">
			<option optionKey="1" pattern="^11110000([01])([01]{3})" grammar="'11110000' 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="8010" name="cpi" seq="3"/>
				<encodedAI ai="8011" name="serial" seq="4"/>
			</option>
		</level>
		<level type="BARE_IDENTIFIER" prefixMatch="cpi=">
			<option optionKey="1" pattern="^cpi=([0-9]{4}[\x23\x2D\x2F\x30-\x39\x41-\x5A]{1,26});serial=([0-9]{1,12})$" grammar="'cpi=' cpi ';serial=' serial">
				<field seq="1" name="cpi" characterSet="[\x23\x2D\x2F\x30-\x39\x41-\x5A]*"/>
				<field seq="2" name="serial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
		</level>
		<level type="ELEMENT_STRING" prefixMatch="(8010)">
			<option optionKey="1" pattern="^\(8010\)([0-9]{4}[\x23\x2D\x2F\x30-\x39\x41-\x5A]{1,26})\(8011\)([0-9]{1,12})\b" grammar="'(8010)' cpi '(8011)' serial">
				<field seq="1" name="cpi" characterSet="[\x23\x2D\x2F\x30-\x39\x41-\x5A]*"/>
				<field seq="2" name="serial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
		</level>
		<level type="GS1_DIGITAL_LINK" prefixMatch="http" requiredFormattingParameters="uriStem">
			<option optionKey="1" pattern="\/8010\/([0-9]{4}(?:[A-Z0-9-]|%2F|%23){1,26})\/8011\/([0-9]{1,12})\b" grammar="uriStem '/8010/' cpi '/8011/' serial">
				<field seq="1" name="urlEncodedCpi" characterSet="(?:[A-Z0-9-]|%2F|%23)*"/>
				<field seq="2" name="serial" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="cpi" characterSet="[\x23\x2D\x2F\x30-\x39\x41-\x5A]*" function="URLDECODE(urlEncodedCpi)"/>
			<rule type="FORMAT" inputFormat="STRING" seq="1" newFieldName="urlEncodedCpi" characterSet="(?:[A-Z0-9-]|%2F|%23)*" function="URLENCODE(cpi)"/>
		</level>
	</scheme>
</tdt:epcTagDataTranslation>
