%YAML 1.2
---
lang: en-US

type: data type

uri: https://gedcom.io/terms/v7/type-List#Enum

specification:
  - |
    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.
    
    ```abnf
    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.
    
    <div class="example">
    
    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.
    
    </div>
    
    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
    `https://gedcom.io/terms/v7/type-List#Text`.
    
    The URI for the `List:Enum` data type is
    `https://gedcom.io/terms/v7/type-List#Enum`.

contact: "https://gedcom.io/community/"
...