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

Reply via email to