For delimited separation types, a delimiter is used to separate data fields, but there are no tags present. The data fields need to be given in the correct order in the bit stream and elements cannot be omitted from the middle of the bit stream.
data1*data2*data3*data4
data1*data2*data3*data4where Delimiter is *
data1**data3*data4
data1*data2That is, the delimiters have been suppressed from the end of this group or complex type.
data1*data2**That is, the delimiters have to be present to indicate absent (zero-length) elements.
An exception to the above rule occurs in the case where the same delimiters are used at multiple levels in the model.
data1*data2*element3Data1*element3Data2*element3Data3*data4
If element3Data2 and element3Data3 are missing, and the delimiters are suppressed, it is not possible for the parser to determine which elements are missing.
data1*data2*element3Data1***data4
This restriction also applies where Group Indicators and Group Terminators use the same character strings as delimiters; otherwise, the bit stream is not clear to the parser.
data1*data2*data3*data4*data5where Delimiter is *.
An All Elements Delimited separation type does not use tags or their associated parameters.
For textual elements, the length is determined by the delimiter, and the Length property is ignored unless the Observe Element Length property is set.
For non-textual elements, the length is determined by the Physical Type of the element. See TDS format: Determining the length of simple data values.
{data1*data22222*data3}where:
If an element needs to be repeated when the separation type is All Elements Delimited, the Repeating Element Delimiter (RED), is used to separate the repeated elements.
data1*data2:data2:data2:data2:data2*data3*data4where:
data1*data2*data3*data4
data1*data2::::*data3*data4
data1*data2**data3*data4
A complex type with Variable Length Elements Delimited separation that contains only variable length elements resembles a acomplex type with All Elements Delimited separation. If it contains only fixed length elements, it resembles a Fixed Length type.
data1*data2*data3*data4000data5where:
{data1*data22222*data3*data4000data5}where:
The action of a repeating element in a Variable Length Elements Delimited environment is dependent on the minimum and maximum number of repeats and whether the element has a length.
If a delimited element (that is, an element with no length) is repeated, then a Repeating Element Delimiter (RED) is required and the rules for All Elements Delimited are followed. A delimiter is therefore required after the last repeat. Delimiter suppression of this repeat can also occur.
data1*data2:data2:data2:data2:data2:data2*data3*data4000data5where:
If the Suppress Absent Element Delimiters field is set to End of Type then you can use delimiter suppression.
data1*data2*data3*data4000data5
data1*data2:::::*data3*data4000data5
data1*data2**data3*data4
This also applies for a non-fixed length complex type or group inside a Variable Length Elements Delimited environment.
If an element with a defined length (a fixed length element) is repeating and the minimum occurrences is not the same as maximum occurrences, then an RED is not required, but a delimiter is required after the last repeat. Delimiter suppression of this repeat can occur.
data1*data2*data3*data400data400data400data400*data5where Delimiter is *
data1*data2*data3*data4000data4000*data5
If an element with a defined length (a fixed length element) is repeated, and the minimum occurrences is the same as maximum occurrences, then an RED is not required. A delimiter is also not required after the last repeat. Truncation of this repeat cannot occur and all elements need to be present.
data1*data2*data3*data4000data4000data4000data4000data5where Delimiter is *
data1*data2*data3*data4000data40000000000000000000data5
This also applies for a non-fixed length complex type or group inside a Variable Length Elements Delimited environment.
If a complex type has Variable Length Elements Delimited separation, a delimiter is always output between an included ('child') complex element and the next element even if the separation of the 'child' complex element is Fixed Length. On input, the parser accepts the bit stream with or without such a delimiter.