Our first experience with requiring and implementing choiceBranchKey in Daffodil and we're already dealing with the fact that many times the same branch has multiple different keys all of which indicate that it should be selected.

Right now, dfdl:choiceBranchKey is a DFDL String Literal, so values like dfdl:choiceBranchKey="  " (that's two spaces) are legal and will work. If it was to be a whitespace separated value, then those would have to use DFDL Entities to express the whitespace.

I know I have seen COBOL data where there were multiple tags that denote the same structure.

I am curious what others experience with choiceBranchKey is, and how this issue was handled. 

I believe from prior emails that IBM has already implemented this in its DFDL implementation.

There is an erratum specifying that choiceBranchKey comparison is supposed to be case-sensitive (for performance reasons), but nothing heretofore about it using DFDL Entities to represent whitespace.


Mike Beckerle | OGF DFDL Workgroup Co-Chair | Tresys Technology | www.tresys.com
Please note: Contributions to the DFDL Workgroup's email discussions are subject to the OGF Intellectual Property Policy