Using repeating and optional elements
- Optional elements: Mark certain cells within the data source as containing null values so that they can be ignored when sending a message.
- Repeating elements: Determine how to group multiple rows of a data source together so that they appear within the same message.
- Repeat (additional child where tag value is null)
- Null (empty) cells are ignored, and new repeating elements are created for non-null data only. Where an element is to be repeated, the values for each occurrence of that element appear in a new row in the data source. Elements whose values are not repeated (that is, where the value appears outside the repeated element in the message) must be set to null.
- Repeat (additional child where tag value is duplicated)
- Cells that repeat data from the same column of the previous row are ignored, and new repeating elements are created for unique data only. Where an element is to be repeated, the values for each occurrence of that element appear in a new row in the data source. Elements whose values are not repeated (that is, where the value appears outside the repeated element in the message) must be set to the same value for all rows that are to be grouped together to provide values for repeated elements.
Example
The following order element in an XML schema can be repeated multiple times in a message.

The order element contains a second, optional repeating element, discountcode.
When the entire XML schema is matched against the following test data (which is in the form of an Excel data set), five orders can be obtained.

Following are more samples of data for which you will need to use different repeating element options; for the first one, you will use Repeat (additional child where tag value is duplicated), and for the second, Repeat (additional child where tag value is null). You can see that where additional rows are added to hold values for repeated elements, the values that are not for use inside the repeated elements are treated differently. In the first example, the fields for these items contain the same value for all the rows that are part of the same order. In the second example, values that are not for use in repeating elements are included only once – the values of such fields are left null in the subsequent rows to allow other fields to specify multiple values.

