6.2.2 Delimiters

6.2.2.1 Record Delimiter

Each file shall be separated into individual Records with each Record being placed into one line terminated by a line feed (Unicode U+000A) or a carriage return and line feed pair (Unicode U+000D 000A).

6.2.2.2 Primary (Cell) Delimiter

Cells within a Record are separated by tab characters (Unicode U+0009).

6.2.2.3 Secondary  Delimiter

Should a Cell contain two or more data elements, these data elements shall be separated by a pipe character (Unicode U+007C). This is referred to as a Secondary Delimiter.

All data elements in a multi-value Cell shall be of the same primitive data type.

6.2.2.4 Namespace Delimiter

Should a Cell contain a data element whose provenance needs to be provided, the data element shall be preceded by a string that provides a "namespace" and two colon characters (Unicode U+003A). The double colon is referred to as a Namespace Delimiter. Examples include specifically, identifiers where, fpr example a party ID can be communicated as  "ISNI::0000000081266409", indicating that the identifier (0000000081266409) is an International Standard Name Identifier (ISNI).

6.2.2.5  Spaces and Delimiters

Delimiters shall not be surrounded by extra space characters. The same principle applies to the Secondary Delimiter. For example:

The writing pair Lennon and McCartney should be communicated as "Lennon|McCartney" and not as "Lennon | McCartney".

6.2.2.6 Communicating Delimiters

To communicate a primary Delimiter in a Cell, such a Cell shall not be enclosed in double quote characters. Instead the Delimiter shall be immediately preceded by an escaping code.

To escape a tab character contained in a text string, the escaping code is the backslash character (Unicode U+005C). Therefore the string A[TAB]B would have to be communicated as A\[TAB]B (with [TAB] representing the tabulator).

To escape a pipe character contained in a text string, the escaping code is a double backslash character (Unicode U+005C). Therefore the string A|B would have to be communicated as A\\|B. 

To communicate a backslash character, three backslash characters need to be communicated. Therefore the string A\B would have to be communicated as A\\\B.

This “escaping mechanism” must be used for all special characters in all Cells, whether those Cells allow multiple values or not. A non-escaped pipe character in a single-value cell is, consequently, an error.

For the avoidance of doubt, escaping a character that should not be escaped, or not escaping a character that should have been escaped, will lead to an invalid Feed file.