Comparison of Cross References in LIXI1 and LIXI2
in LIXI1 and LIXI2
This page gives some technical background that explains a key reason why LIXI2 implementations tend to be easier to implement and more interoperable than equivalent LIXI1 implementations.
Both JSON and XML represent the data in a LIXI standard in a hierarchical manner, very similar to a folder or tree structure.
Each element has one and only one parent element and may have many siblings.
The reality of lending data is that is it more relational than hierarchical and any implementation requires a mechanism for linking entities across the hierarchy.
The different ways that LIXI1 and LIXI2 implement these cross-references are fundamental to how easy and consistent LIXI2 implementations are in comparison to LIXI1.
LIXI1 - Multiple Ways of Linking
In LIXI1 there are many different acceptable ways of describing most cross-references, any of which are valid against the schema.
LIXI2 - Explicit Link Definitions
In LIXI2 there is a single explicit way allowed for defining each cross-reference which makes implementations much simpler and much more interoperable.
Because of the LIXI1 linking mechanism there are practically an infinite number of LIXI1 messages that validate against the schema that are functionally identical. The fundamental design of LIXI2 explicitly describes the single valid way of representing a concept. The impact on your ability to automate the Software Delivery Lifecycle is profound.
For example, LIXI1 requires a very large set of human-written documentation (often called 'the guidebook') that needs to be maintained in order to manage any software used in the creation, reading or processing of LIXI1 messages. This guidebook makes it very difficult to fully automate the software delivery lifecycle in the way modern IT systems aspire to, virtually preventing the use of best-practice methodologies. This guidebook can be almost completely automated in LIXI2 using standard tools.
LIXI1 - An example
Let's consider the scenario of recording details of an applicant's income. We would like to capture the details of three aspects of the employment:
1. The employment (start and end dates, role, job title)
2. Income associated with the employment (dollar amount, income type)
3. The employer's details (company name, address, email)
In LIXI1 these entities are represented by the three elements: Employment, Value Item, and Related Party.
Cross-references between the entities are created by identifying an element with a UniqueID, and using that value in a RelatedID element.
The elements in a messsage are shown here:
The Employment Element:
<Employment> <RelatedEntityRef RelatedID=""/> <PAYE> <RelatedEntityRef RelatedID=""/> </PAYE> </Employment>
The ValueItem Element to Record the Income:
<ValueItem> <Identifier UniqueID=""/> <Income> <RelatedEntityRef RelatedID=""/> </Income> </ValueItem>
The RelatedParty Element to Record the Employer:
<RelatedParty RelatedPartyType="Employer"> <Identifier UniqueID=""/> <RelatedEntityRef RelatedID=""/> </RelatedParty>
In a visual format these can be viewed as:
There are at least six different ways that could appear as sensible ways to cross-reference these entities.
1. Employment to ValueItem, Income to RelatedParty:
2. Employment to RelatedParty to ValueItem:
3. Employment to both RelatedParty and ValueItem:
4. PAYE to both RelatedParty and ValueItem:
5. Employment to ValueItem, PAYE to RelatedParty:
6. Employment to RelatedParty, PAYE to ValueItem:
LIXI2 - An Example
Contrast the relative simplicity of LIXI2 (where there is only one way to implement these cross-references) with the complexity of LIXI1:
This very basic example illustrates the complexity of LIXI1 entity linking. Since there are hundreds of elements, there is practically an infinite number of ways of linking all the entities together.
The simple and explicit manner in which entities are linked is the fundamental reason that interface development in LIXI2 is much simpler, much easier to automate and makes available a wide suite of tools and frameworks that are unavailable or difficult to use in conjunction with LIXI1 standards. Note that the LIXI2 standards release on 12th December 2019 contained an enhancement to more explicitly describe the elements that can be referenced in each attribute that is a cross-reference (referenceType).
Considering Upgrading from LIXI1 to LIXI2?
If you are considering upgrading from LIXI1 to LIXI2 this blog describes some reasons to upgrade and this blog contains a comparison between LIXI1 and LIXI2 in terms of the features and standards available. Don't just take our word for it, read about some LIXI2 success stories to see how you might benefit.