Logical Item Names

Logical item names have the following syntax:

LogicalItemName	= PrefixName [SuffixName]
PrefixName	= *AChar
AChar	= %x20-7E
SuffixName	= "/" "[" PieceNumber "]" [".last"] ".piece"
PieceNumber	= "0" | NonZeroDigit [1*Digit]
Digit	= "0" | NonZeroDigit
NonZeroDigit	= "1" | "2" | "3" | "4" | "5" | "6" | "7" | "8" | "9" 
Note:

The package implementer shall compare prefix names as case-insensitive ASCII strings. [M2.12]

The package implementer shall compare suffix names as case-insensitive ASCII strings. [M2.13]

Logical item names are considered equivalent if their prefix names and suffix names are equivalent. The package implementer shall not allow packages that contain equivalent logical item names. [M2.14] The package implementer shall not allow packages that contain logical items with equivalent prefix names and with equal piece numbers, where piece numbers are treated as integer decimal values. [M2.15]

Logical item names that use suffix names form a complete sequence if and only if:

  1. The prefix names of all logical item names in the sequence are equivalent, and

  2. The suffix names of the sequence start with “/[0].piece” and end with “/[n].last.piece” and include a piece for every piece number between 0 and n, without gaps, when the piece numbers are interpreted as decimal integer values.