🠕

2.7 List

A list is a meta-syntax representing a sequence of values with another data type. Two list data types are used in this document: List:Text and List:Enum. Lists are serialized in a comma-separated form, delimited by a comma (U+002C ,) and any number of spaces (U+0020) between each item. It is recommended that a comma-space pair (U+002C U+0020) be used as the delimiter.

list      = listItem *(listDelim listItem)
listItem  = [ nocommasp / nocommasp *nocomma nocommasp ]
listDelim = *D "," *D
nocomma   = %x09-2B / %x2D-10FFFF
nocommasp = %x09-1D / %x21-2B / %x2D-10FFFF

List-Text = list
List-Enum = Enum *(listDelim Enum)

If valid for the underlying type, empty strings may be included in a list by having no characters between delimiters.

A List:Text with value “, , one, more,” has 5 Text-type values: 2 empty strings, the string “one”, the string “more”, and 1 more empty string.

There is no escaping mechanism to allow lists of entries that begin or end with spaces or that contain comma characters.

The URI for the List:Text data type is g7:type-List#Text.

The URI for the List:Enum data type is g7:type-List#Enum.