X12 Validation considerations
The X12 EDI Compliance Check framework performs optional extended processing to be considered.
The Interchange Syntax Extension or ISX control segment was introduced with X12 version 7040 with release character delimiter and character encoding. X12 version 8010 was expanded to include override X12 version and Industry Identifier.
X12 members are advised to have trading partner agreements in place before using the ISX segment. When the data stream includes the ISX control segment, X12 compliance checking MUST be configured. At least one ISXcontrol setting must be present to continue compliance processing. These settings can be found in the x12cfg.xsd and XML configuration files for ccx12 execution or JSON configuration file for x12u execution.
<ISXcontrol>
<IgnoreISX>F</IgnoreISX>
Any ISX control segment containing a character encoding value must use the
new component x12u for compliance checking, or use
ccx12 component with the XML configuration setting to
<IgnoreISX>T</IgnoreISX>
.
X12 validation processing for the release character must use ISA version 7040 or higher. Processing for the character encoding and code list override must use ISA version 8010 or higher. The ISX segment must be present in the input data stream.
The ISX control configuration settings identify processing control for the ISX segment.
<ISXcontrol>
<IgnoreISX>F</IgnoreISX>
<ReleaseCharacter>
<DefaultReleaseCharacter></DefaultReleaseCharacter>
<OverrideReleaseCharacter></OverrideReleaseCharacter>
</ReleaseCharacter>
<CharacterEncoding>
<AllowEncoding>F</AllowEncoding>
<DefaultSourceEncoding></DefaultSourceEncoding>
<OverrideSourceEncoding></OverrideSourceEncoding>
<DefaultTargetEncoding></DefaultTargetEncoding>
<OverrideTargetEncoding></OverrideTargetEncoding>
</CharacterEncoding>
<CodeListVersionOverride>
<AllowCodeListOverride>F</AllowCodeListOverride>
<DefaultCodeListVersion></DefaultCodeListVersion>
<OverrideCodeListVersion></OverrideCodeListVersion>
</CodeListVersionOverride>
</ISXcontrol>
Default and override values for the release character, character encoding, and code list version override can be provided. Default values for Character Encoding (ISX02 element) and Code List Version Override (ISX03 element) can be used when these ISX elements do not contain the value. The exception being the Release Character Default, which will modify the value found in the ISX01 element. Override values can be used to override the values in the ISX. The values in the ISX will be used when no default or override values are configured.
The standards in the X12U component are defined with the UTF-8 universal character set and sized as character vs bytes. The standards provide validation and application mapping to preserve data values. For application maps it is recommended the target encoding configuration use UTF-8.
X12 standard defines valid values for the ISX character encoding element which can be expanded in future releases. Values that represent character sets can be implemented using the X12U component. For testing purposes, UTF-8 and UTF-16 TX codes have been added for X12 versions earlier than 00804. The supported character sets can be found in the x12codes.txt file.
ISX02=00803,1|US-ASCII,2|ibm-
037,4|Latin1,5|Latin2,6|Cyrillic,7|Greek8,8|Latin3,9|Latin4,10|Arabic,11
Hebrew,12|Latin5,13|Latin-9,T4|UTF-8,T5|UTF-16LE,T6|UTF-16BE
For example: ISX02 for ISA version 00803, value 1 represents the TX character set US-ASCII and ISX02 value 7 represents TX character set Greek8. The ISX02 values T4, T5, and T6 can be used for testing purposes. Example data in UTF-8 and UTF-16LE have also been included with the X12U component.
A set of maps are included in the X12U component in the map source file x12conv.mms to perform the character decoding and encoding as defined in the ISX and compliance check configuration using the X12U Standard schemas as the target or source for processing.