<?xml version="1.0" encoding="UTF-8"?>
<tdt:epcTagDataTranslation version="1.4" date="2009-06-16T10:57:00Z" epcTDSVersion="1.4" xmlns:tdt="urn:epcglobal:tdt:xsd:1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:epcglobal:tdt:xsd:1 EpcTagDataTranslation.xsd">
	<scheme name="GSRN-96" optionKey="gs1companyprefixlength" tagLength="96">
		<level type="BINARY" prefixMatch="00101101" requiredFormattingParameters="filter,taglength">
			<option optionKey="12" pattern="00101101([01]{3})000([01]{40})([01]{18})000000000000000000000000" grammar="'00101101' filter '000' gs1companyprefix serviceref '000000000000000000000000'">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="40" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="99999" characterSet="[01]*" bitPadDir="LEFT" bitLength="18" name="serviceref"/>
			</option>
			<option optionKey="11" pattern="00101101([01]{3})001([01]{37})([01]{21})000000000000000000000000" grammar="'00101101' filter '001' gs1companyprefix serviceref '000000000000000000000000'">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="37" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="21" name="serviceref"/>
			</option>
			<option optionKey="10" pattern="00101101([01]{3})010([01]{34})([01]{24})000000000000000000000000" grammar="'00101101' filter '010' gs1companyprefix serviceref '000000000000000000000000'">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="34" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="9999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="24" name="serviceref"/>
			</option>
			<option optionKey="9" pattern="00101101([01]{3})011([01]{30})([01]{28})000000000000000000000000" grammar="'00101101' filter '011' gs1companyprefix serviceref '000000000000000000000000'">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="30" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="99999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="28" name="serviceref"/>
			</option>
			<option optionKey="8" pattern="00101101([01]{3})100([01]{27})([01]{31})000000000000000000000000" grammar="'00101101' filter '100' gs1companyprefix serviceref '000000000000000000000000'">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="99999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="27" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="31" name="serviceref"/>
			</option>
			<option optionKey="7" pattern="00101101([01]{3})101([01]{24})([01]{34})000000000000000000000000" grammar="'00101101' filter '101' gs1companyprefix serviceref '000000000000000000000000'">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="9999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="24" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="34" name="serviceref"/>
			</option>
			<option optionKey="6" pattern="00101101([01]{3})110([01]{20})([01]{38})000000000000000000000000" grammar="'00101101' filter '110' gs1companyprefix serviceref '000000000000000000000000'">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[01]*" bitPadDir="LEFT" bitLength="3" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="20" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[01]*" bitPadDir="LEFT" bitLength="38" name="serviceref"/>
			</option>
		</level>
		<level type="TAG_ENCODING" prefixMatch="urn:epc:tag:gsrn-96" requiredFormattingParameters="filter,taglength">
			<option optionKey="12" pattern="urn:epc:tag:gsrn-96:([0-7]{1})\.([0-9]{12})\.([0-9]{5})" grammar="'urn:epc:tag:gsrn-96:' filter '.' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*" length="12" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="99999" characterSet="[0-9]*" length="5" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="11" pattern="urn:epc:tag:gsrn-96:([0-7]{1})\.([0-9]{11})\.([0-9]{6})" grammar="'urn:epc:tag:gsrn-96:' filter '.' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[0-9]*" length="11" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="999999" characterSet="[0-9]*" length="6" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="10" pattern="urn:epc:tag:gsrn-96:([0-7]{1})\.([0-9]{10})\.([0-9]{7})" grammar="'urn:epc:tag:gsrn-96:' filter '.' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[0-9]*" length="10" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="9999999" characterSet="[0-9]*" length="7" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="9" pattern="urn:epc:tag:gsrn-96:([0-7]{1})\.([0-9]{9})\.([0-9]{8})" grammar="'urn:epc:tag:gsrn-96:' filter '.' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="999999999" characterSet="[0-9]*" length="9" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="99999999" characterSet="[0-9]*" length="8" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="8" pattern="urn:epc:tag:gsrn-96:([0-7]{1})\.([0-9]{8})\.([0-9]{9})" grammar="'urn:epc:tag:gsrn-96:' filter '.' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="99999999" characterSet="[0-9]*" length="8" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="999999999" characterSet="[0-9]*" length="9" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="7" pattern="urn:epc:tag:gsrn-96:([0-7]{1})\.([0-9]{7})\.([0-9]{10})" grammar="'urn:epc:tag:gsrn-96:' filter '.' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="9999999" characterSet="[0-9]*" length="7" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[0-9]*" length="10" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="6" pattern="urn:epc:tag:gsrn-96:([0-7]{1})\.([0-9]{6})\.([0-9]{11})" grammar="'urn:epc:tag:gsrn-96:' filter '.' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="7" characterSet="[0-7]*" length="1" name="filter"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="999999" characterSet="[0-9]*" length="6" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="3" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[0-9]*" length="11" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
		</level>
		<level type="PURE_IDENTITY" prefixMatch="urn:epc:id:gsrn">
			<option optionKey="12" pattern="urn:epc:id:gsrn:([0-9]{12})\.([0-9]{5})" grammar="'urn:epc:id:gsrn:' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999" characterSet="[0-9]*" length="12" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="99999" characterSet="[0-9]*" length="5" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="11" pattern="urn:epc:id:gsrn:([0-9]{11})\.([0-9]{6})" grammar="'urn:epc:id:gsrn:' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[0-9]*" length="11" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="999999" characterSet="[0-9]*" length="6" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="10" pattern="urn:epc:id:gsrn:([0-9]{10})\.([0-9]{7})" grammar="'urn:epc:id:gsrn:' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[0-9]*" length="10" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="9999999" characterSet="[0-9]*" length="7" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="9" pattern="urn:epc:id:gsrn:([0-9]{9})\.([0-9]{8})" grammar="'urn:epc:id:gsrn:' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999" characterSet="[0-9]*" length="9" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="99999999" characterSet="[0-9]*" length="8" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="8" pattern="urn:epc:id:gsrn:([0-9]{8})\.([0-9]{9})" grammar="'urn:epc:id:gsrn:' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="99999999" characterSet="[0-9]*" length="8" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="999999999" characterSet="[0-9]*" length="9" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="7" pattern="urn:epc:id:gsrn:([0-9]{7})\.([0-9]{10})" grammar="'urn:epc:id:gsrn:' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="9999999" characterSet="[0-9]*" length="7" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="9999999999" characterSet="[0-9]*" length="10" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
			<option optionKey="6" pattern="urn:epc:id:gsrn:([0-9]{6})\.([0-9]{11})" grammar="'urn:epc:id:gsrn:' gs1companyprefix '.' serviceref">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999" characterSet="[0-9]*" length="6" padChar="0" padDir="LEFT" name="gs1companyprefix"/>
				<field seq="2" decimalMinimum="0" decimalMaximum="99999999999" characterSet="[0-9]*" length="11" padChar="0" padDir="LEFT" name="serviceref"/>
			</option>
		</level>
		<level type="LEGACY" prefixMatch="gsrn=" requiredParsingParameters="gs1companyprefixlength">
			<option optionKey="12" pattern="gsrn=([0-9]{18})" grammar="'gsrn=' gs1companyprefix serviceref checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="11" pattern="gsrn=([0-9]{18})" grammar="'gsrn=' gs1companyprefix serviceref checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="10" pattern="gsrn=([0-9]{18})" grammar="'gsrn=' gs1companyprefix serviceref checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="9" pattern="gsrn=([0-9]{18})" grammar="'gsrn=' gs1companyprefix serviceref checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="8" pattern="gsrn=([0-9]{18})" grammar="'gsrn=' gs1companyprefix serviceref checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="7" pattern="gsrn=([0-9]{18})" grammar="'gsrn=' gs1companyprefix serviceref checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="6" pattern="gsrn=([0-9]{18})" grammar="'gsrn=' gs1companyprefix serviceref checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="gsrnprefix" characterSet="[0-9]*" length="17" function="SUBSTR(gsrn,0,17)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="2" newFieldName="serviceref" characterSet="[0-9]*" function="SUBSTR(gsrnprefix,gs1companyprefixlength)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="3" newFieldName="gs1companyprefix" characterSet="[0-9]*" function="SUBSTR(gsrnprefix,0,gs1companyprefixlength)"/>
			<rule type="FORMAT" inputFormat="STRING" seq="1" newFieldName="gsrnprefix" characterSet="[0-9]*" length="17" function="CONCAT(gs1companyprefix,serviceref)"/>
			<rule type="FORMAT" inputFormat="STRING" seq="2" newFieldName="checkdigit" characterSet="[0-9]*" length="1" function="GS1CHECKSUM(gsrnprefix)"/>
		</level>
		<level type="LEGACY_AI" prefixMatch="(8018)" requiredParsingParameters="gs1companyprefixlength">
			<option optionKey="12" pattern="\(8018\)([0-9]{18})" grammar="'(8018)' extensiondigit gs1companyprefix servicerefremainder checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="11" pattern="\(8018\)([0-9]{18})" grammar="'(8018)' extensiondigit gs1companyprefix servicerefremainder checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="10" pattern="\(8018\)([0-9]{18})" grammar="'(8018)' extensiondigit gs1companyprefix servicerefremainder checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="9" pattern="\(8018\)([0-9]{18})" grammar="'(8018)' extensiondigit gs1companyprefix servicerefremainder checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="8" pattern="\(8018\)([0-9]{18})" grammar="'(8018)' extensiondigit gs1companyprefix servicerefremainder checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="7" pattern="\(8018\)([0-9]{18})" grammar="'(8018)' extensiondigit gs1companyprefix servicerefremainder checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<option optionKey="6" pattern="\(8018\)([0-9]{18})" grammar="'(8018)' extensiondigit gs1companyprefix servicerefremainder checkdigit">
				<field seq="1" decimalMinimum="0" decimalMaximum="999999999999999999" characterSet="[0-9]*" length="18" padChar="0" padDir="LEFT" name="gsrn"/>
			</option>
			<rule type="EXTRACT" inputFormat="STRING" seq="1" newFieldName="gsrnprefix" characterSet="[0-9]*" length="17" function="SUBSTR(gsrn,0,17)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="2" newFieldName="serviceref" characterSet="[0-9]*" function="SUBSTR(gsrnprefix,gs1companyprefixlength)"/>
			<rule type="EXTRACT" inputFormat="STRING" seq="3" newFieldName="gs1companyprefix" characterSet="[0-9]*" function="SUBSTR(gsrnprefix,0,gs1companyprefixlength)"/>
			<rule type="FORMAT" inputFormat="STRING" seq="1" newFieldName="gsrnprefix" characterSet="[0-9]*" length="17" function="CONCAT(gs1companyprefix,serviceref)"/>
			<rule type="FORMAT" inputFormat="STRING" seq="2" newFieldName="checkdigit" characterSet="[0-9]*" length="1" function="GS1CHECKSUM(gsrnprefix)"/>
		</level>
	</scheme>
</tdt:epcTagDataTranslation>
