Roger,
I believe that choiceDispatchKey requires a string. You cast your unsignedint 
to a string, not another int.

From: Roger L Costello <coste...@mitre.org>
Sent: Wednesday, May 29, 2024 7:53 AM
To: users@daffodil.apache.org
Subject: id: deprecatedExpressionResultCoercion

I have this:

<xs:element name="ENVIRONMENT">
   <xs:complexType>
        <xs:sequence>
            <xs:element name="BitCode" type="unsignedint3"/>


And then I have this:

<xs:choice dfdl:choiceDispatchKey="{ENVIRONMENT/BitCode}">

Daffodil gave an error, saying the I needed to cast ENVIRONMENT/BitCode, so I 
did:

<xs:choice dfdl:choiceDispatchKey="{xs:unsignedInt(ENVIRONMENT/BitCode)}">

Now Daffodil gives this opaque error message:

In expression xs:unsignedInt(ENVIRONMENT/BitCode), result type (unsignedInt) 
should be manually cast to the expected type (NonEmptyString) with the 
appropriate constructor.Performing deprecated automatic conversion. (id: 
deprecatedExpressionResultCoercion)

What does that error message mean? Why didn't xs:unsignedInt(...) fix the 
casting problem? What's the solution?

Reply via email to