Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Explicit link between a field and related fields for its encoded versions #94

Closed
kleihan opened this issue Apr 19, 2020 · 8 comments
Closed

Comments

@kleihan
Copy link
Member

kleihan commented Apr 19, 2020

Fields like Issuer(106) are also supported in an encoded version, in this case EncodedIssuer(349). The latter requires a second field EncodedIssuerLen(348) for tag value encoding that defines the length of the encoded field. It refers to the encoded field with the attribute "lengthId".

The link to the base field Issuer(106) is only implicit in the description of the encoded field. It should be an attribute that contains 106 as field reference.

Second aspect is the fact that the length fields are not required by all encodings, similar to all fields with data type NumInGroup not being applicable to FIXML. Probably makes sense to split this off as another issue "Attributes for encoding information".

@donmendelson
Copy link
Member

The Orchestra schema already has attribute "lengthId" to tie a Length field (e.g. 348) to a data field (349). (There was no machine readable attribute for that in Repository.)

I agree that we need machine-readable encoding-specific rules.

Question: are Issuer and EncodedIssuer considered mutually exclusive? That would be a different rule to enforce.

@kleihan
Copy link
Member Author

kleihan commented Nov 2, 2020

Issuer and EncodedIssuer are not mutually exclusive. Both representations can be provided and the field description of EncodedIssuer actually proposes it, i.e. "If used, the ASCII (English) representation should also be specified in the Issuer field".

@donmendelson donmendelson added this to the Orchestra v1.1 milestone Sep 3, 2021
@kleihan
Copy link
Member Author

kleihan commented Nov 15, 2021

Propose to add a new attribute, e.g. "baseFieldId" as reference to the non-encoded version of a field. The EncodedIssuer definition would then look like this:

  <fixr:field added="FIX.4.2"
                id="349"
                name="EncodedIssuer"
                type="data"
                abbrName="EncIssr"
                lengthId="348"
                baseFieldId="106">
       <fixr:annotation>
          <fixr:documentation purpose="SYNOPSIS">
               Encoded (non-ASCII characters) representation of the Issuer field in the encoded format specified via the 
               MessageEncoding (347) field. If used, the ASCII (English) representation should also be specified in the Issuer field.
         </fixr:documentation>
       </fixr:annotation>
    </fixr:field>

@donmendelson
Copy link
Member

This still needs a schema change pull request to be included in v1.1 as of June 14 2022.

donmendelson added a commit to donmendelson/fix-orchestra that referenced this issue Jun 14, 2022
@donmendelson
Copy link
Member

Orchestra working group made a decision on June 15, 2022 to keep the proposed baseFieldId attribute name but widen the definition. As originally proposed, it will relate encoded fields to non-encoded fields, but it will also be used to related alternate tags due to encoding rules, e.g. Nested2PartyID related to PartyID due to tag-value encoding rules. The relationship is strictly in presentation layer (message encoding), not semantic.

@donmendelson
Copy link
Member

Question: could this type of cross-reference apply to XML elements other than fields, i.e. component or group references?

donmendelson added a commit to donmendelson/fix-orchestra that referenced this issue Jun 16, 2022
donmendelson added a commit that referenced this issue Jul 20, 2022
Explicit link between a field and related fields for its encoded versions #94
@kleihan
Copy link
Member Author

kleihan commented Nov 15, 2023

Scope was reduced to encoded fields and attribute name was changed to nonEncodedFieldId. See separate issue #194 for additional scope.

kleihan added a commit that referenced this issue Nov 15, 2023
Reduced scope to encoded fields.
@kleihan kleihan closed this as completed Jun 3, 2024
@kleihan
Copy link
Member Author

kleihan commented Jun 3, 2024

Implemented for RC1

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

2 participants