Closed stevedlawrence closed 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.
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.
@stevedlawrence Thanks for splitting into multiple commits, makes it much easier to review.
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.
@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.
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.
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:
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.