Imported from previous forum
I've heard a concern expressed that there may be an issue with repeating groups and their FIXML schema. In EP105, Party Details List Report contains the PartyDetailGrp component. It is abbreviated PtyDetl in FIXML. PartyDetailGrp contains the RelatedPartyDetailGrp component, which is also abbreviated PtyDetl. PartyDetailGrp contains different fields than RelatedPartyDetailGrp. Most are of the PartyID vs. RelatedPartyID sort; they're not a concern as both are abbreviated ID, hence both are identical in FIXML. But PartyDetailGrp contains PartyStatus (abbreviated Stat) which doesn't appear in RelatedPartyDetailGrp. And RelatedPartyDetailGrp contains the PartyRelationships (abbreviated Rltnshp) group, which is not part of PartyDetailGrp. What I'm hearing is that XML Schema only allows one definition for an individual element name. So from an XML Schema standpoint, PartyDetailGrp and RelatedPartyDetailGrp are both the element: PtyDetl. You can't define PtyDetl to include the attribute Stat in one context, and the element Rltnshp in another context, at least, not without putting both in different namespaces. So what is happening under the hood? Within FIX, there are many cases of repeating groups having the same abbreviation. I've lost count of the number of Parties-related components that are all abbreviated Pty. How does that work? Are they all, from a FIXML perspective, identical, so the schema compiler can define Pty once and ignore the repeats? Are there any cases where groups have the same abbreviation but are not identical from a FIXML standpoint? And what do we do about PartyDetailGrp/RelatedPartyDetailGrp?
I’m digging into this matter in a bit more detail, and taking a look at what the FIXML schema generator is producing. While EP105 hasn’t been published yet, and I can’t see what’s happening for the EP105 nesting of PtyDetl within PtyDetl, I’m looking at the published SP2.
It seems that there is no global definition of elements. They are defined as part of sequences, and each has a type named for its full, unique name in the Repository. These types then contain sequences of more elements and groups of attributes.
So it appears that it is possible to give completely different groups with completely different definitions the same FIXML abbreviation, provided that two different groups with the same enumeration never appear at the same level of a group or message. But nesting a group within another group of the same element name/FIXML abbreviation but different definition is valid. E.g.
is valid. The first element A is defined to contain an attribute B and an element A of a type that contains an attribute C and no elements. And both:
and
would fail validation, as they should.
Am I correct in assuming this, and that we don’t have any issue with FIXML?