DFDLSchemas / ISO8583

DFDL schemas for ISO8583
http://dfdlschemas.github.com/ISO8583/
35 stars 22 forks source link

Updates to allow Daffodil to round trip ISO8583 #2

Closed stevedlawrence closed 5 years ago

stevedlawrence commented 5 years ago

Split up into multiple commits. The first one just updates to use the standard DFDL project layout. Thenext two are updates needed to conform to the DFDL spec. The last four are changes needed due to Daffodil limitations or differences between Daffodil and IBM. The comment messages for those four reference the Daffodil bug number that should resolve the issue once fixed and make the commit unnecessary.

stevedlawrence commented 5 years ago

Yep, that was one reason for this change. Another reason is Daffodil has not implemented the ability to unparse a prefixed length element that has lengthUnits as characters, so we cannot roundtrip these tests without this change. But I guess things would likely break if there were any multibyte characters, which I assume is allowed since the encoding is UTF-8.

stevedlawrence commented 5 years ago

I have this branh with the IMB DFDL Cross Tester we developed and everything works as expected. The only difference is that IBMs output does not match the expected infosets due to differences in timezone output (i.e. Z vs +0:00). We have a bug to make our TDML comparisons type aware so either will be seen as correct.

smhdfdl commented 5 years ago

@stevedlawrence Thanks for splitting into multiple commits, makes it much easier to review.

stevedlawrence commented 5 years ago

It would probably be best to keep this in the daffodil-dev branch until some of the issues are resolved. At the very least, we need to resolve the expected infoset differences with timezones and hexBinary. Once Daffodil adds support in our TDML runner to be type aware, we can revert the expected infoset changes and the same infoset should work in both IBM and Daffodil.

smhdfdl commented 5 years ago

@stevedlawrence I'd like to drop the new structure into an IIB library project in eclipse to make sure it builds ok in the IIB Toolkit environment. If ok then we'll need to update the readme.md , as it talks about using the schemas in such a library.

stevedlawrence commented 5 years ago

Daffodil has fixed the issue where defaultValue="false" did not work. I've added a fixup commit that reverts that change to this pull request. Can be rebased/squashed when the other issues are resolved and this PR is ready to merge.

stevedlawrence commented 5 years ago

Three more fixup commits added that revert changes due to new features added to Daffodil (do not require binaryNumberRep for xs:hexBinary, and type aware TDML runner comparisons). The only commits that are still needed are:

  1. Reorganize into standard DFDL project layout
  2. Fix prefix length elements to have same units as prefixLengthType
  3. Add an index when accessing SecondaryBitmap