I see in X12.6 Section 3.7.3.2.3 Relational Conditions that there is a production:
<segment_unit_position_in_segment>::=<digit> | <digit>
I would read this like "the position in the segment is a digit or a digit." This appears at least redundant. It implies to me that positions are single digits.
Relational conditions seem to be published in the X12 documents using two digits left-padded with zero. I expected to see
<segment_unit_position_in_segment>::=<digit> <digit>
There is a similar issue with the production for component_element_position_in_composite that immediately follows this.
This X12 Transaction Set contains the format and establishes the data contents of the Implementation Acknowledgment Transaction Set (999) for use within the context of an Electronic Data Interchange (EDI) environment. The transaction set can be used to define the control structures for a set of acknowledgments to indicate the results of the syntactical and relational analysis of the electronically encoded documents, based upon a full or implemented subset of X12 transaction sets. The encoded documents are the transaction sets, which are grouped in functional groups, used in defining transactions for business data interchange. This standard does not cover the semantic meaning of the information encoded in the transaction sets.
X12N resposne: Thank you for submitting this request. Your expectation regarding the segment definition "::= | " is correct. The pipe symbol appears to be erroneously introduced after version 5010. It will be corrected at the next available opportunity.