FME Version
Introduction
This tutorial provides an overview of working with list attributes in FME. On this page, you will find introductory information, links to examples with workspace templates, and related resources. To learn more, visit "About List Attributes" in the documentation.
What are List Attributes in FME?
List attributes are FME's way of allowing multiple values per attribute. For example, rather than creating a text field named FRUITS that stores the value “Apple, Orange, Pear”, a user can create a list, which is more structured and can be broken down into constituent parts for processing:
Fruits{0}: Apple Fruits{1}: Orange Fruits{2}: Pear
In FME, lists are denoted using curly brackets after the list name (e.g. this list is called "Fruits{}"), and a number inside the curly brackets represents the element's index inside the list (e.g. Orange is element 1 in the list). With this structure, lists can be reorganized, exploded into individual parts, analyzed statistically, and more.
In FME, lists can be built manually, created automatically by a transformer, read and written by some formats (e.g. XML and JSON), or "exploded" back into single-value attributes. FME has 15 transformers for list manipulation (plus more on FME Hub) and over 80 transformers can produce lists. Transformers often create a list when attributes from different features are grouped into a single feature. Transformers that create lists usually have a "Generate List" checkbox under the "Attribute Accumulation" section of their parameters dialog:
The Fruits{} list above is an example of a simple list. Complex lists can be created by adding attributes to each element. For example, we can add attributes for "COMMON_NAME" and "GENUS_NAME":
Fruits{0}.COMMON_NAME Apple Fruits{0}.GENUS_NAME Malus domestica Fruits{1}.COMMON_NAME Orange Fruits{1}.GENUS_NAME Citrus X sinensis Fruits{2}.COMMON_NAME Pear Fruits{2}.GENUS_NAME Pyrus
Each element in the list has a value for each attribute.
Articles
The following articles include an in-depth look at list attributes in FME and examples of list-based transformers and workflows.
Creating Lists Using Transformers
This example demonstrates creating list attributes manually and introduces a few common transformers that can build lists.
Transformers for Working with List Attributes
This example includes an overview of the transformers available for manipulating lists, plus downloadable workspaces that manipulate and analyze list attributes in FME.
Additional Resources
- Pivoting Between Columns, Lists and Records: article and example workspace about pivoting lists
- List Manipulation in FME: user presentation about scenarios for complex list manipulation
- Dynamic Workflow Tutorial: Destination Schema is Derived from List Attributes illustrates the use of lists for schema definition as part of the Tutorial: Dynamic Workflows
Comments
0 comments
Please sign in to leave a comment.