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"
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:
The prefix names of all logical item names in the sequence are equivalent, and
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.