Defining exclude characters

During map run time, the data validation process uses the Exclude Character List group property to define a set of characters that are not allowed to exist in the data stream as data content.

The data validation process allows these excluded characters to exist in the data stream as syntax, such as delimiters, if they are not being used as data content.

The group exclude characters might be derived from previously parsed values in the data stream or might be defined as literal values.

When you define exclude characters at the group level, the data validation process handles these specified characters as if they were in-scope data syntax.

For example, you have a schema which defines two groups, GROUPA and GROUPB. The tree defines the asterisk (*) character as a group delimiter for GROUPA. It defines the at-sign (@) character as a group delimiter for GROUPB. The tree also defines the FILE group, which contains both GROUPA records and GROUPB records.

The data stream contains content corresponding to the FILE group, which is composed of a series of both GROUPA and GROUPB records.

When a map begins to run, it parses and validates this data stream. Since the asterisk is the delimiter of GROUPA, the data content of GROUPA records is only allowed to contain asterisk characters that are escaped. If the data content contains non-escaped asterisk characters, those GROUPA records fail data validation. Similarly, since the at-sign is the delimiter of GROUPB, the data content of GROUPB records is not allowed to contain non-escaped at-sign characters. If it does, those GROUPB records fail data validation.

The schema defines the delimiters, or markup, for the GROUPA and GROUPB records. Asterisk characters are considered to be in-scope markup while the data validation process handles GROUPA records. At-sign characters are considered to be in-scope markup while the data validation process handles GROUPB records.

Conversely, GROUPA data content is allowed to contain at-sign characters, as the GROUPB at-sign delimiter does not apply to GROUPA records. Therefore, at-sign characters are considered out-of-scope markup for GROUPA records. GROUPB data content is allowed to contain asterisk characters, as the GROUPA asterisk delimiter does not apply to GROUPB records. Therefore, asterisk characters are considered out-of-scope markup for GROUPB records.

You might require the data validation process to exclude asterisk and at-sign characters in all of the data content for both GROUPA and GROUPB records, except when those characters are used as delimiters.

If so, use the Exclude Character List property to specify the asterisk and at-sign literal values at the FILE group level. When the validation process evaluates the data, it throws an exception if there is an asterisk (*) or an at-sign (@) character in the data content within the FILE group. The asterisk and at-sign characters are still valid if they are used as group delimiters; they are invalid if they are used in data content.

Performance tip: The Exclude Character List property causes the map validation process to use more resources as it searches for each of the exclude group characters in every data element under the group on which it is defined.

Open the Exclude Character List window by clicking the Value field on the Exclude Character List property, and then clicking the button that appears at the end of the field. Specify the characters in the list as literal characters or syntax items. You can use the Add Literal, Add Syntax Item, Edit, Remove, and Remove All functions to add literal characters and syntax items to the list, edit them, and remove them from the list.