Hello DFDL community,
The EXE format has something called an auxiliary record. There are different
kinds of auxiliary records. Which kind it is may depend on multiple fields. For
example,
An auxiliary record marks the beginning of a function definition if it has all
of the following: a storage class of EXTERNAL (2), a Type value that indicates
it is a function (0x20), and a section number that is greater than zero.
In other words, I want to create a <Function_Definition> element if:
./Hidden_Storage_Class equals 2
./Hidden_Type equals 32
./Hidden_Section_Number is greater than 0
That last one is a challenge (Hidden_Section_Number is greater than 0).
Originally I thought I could create a composite key by concatenating the 3
values:
<xs:choice dfdl:choiceDispatchKey="{ fn:concat(Hidden_Storage_Class,
Hidden_Complex_Type,
Hidden_Section_Number) }" >
<xs:element ref="Function_Definition" dfdl:choiceBranchKey="???" />
But I don't know how to set dfdl:choiceBranchKey, given that
Hidden_Section_Number can be any number greater than zero.
Any suggestions on how to express the choice?
/Roger