Mike Beckerle created DAFFODIL-2277:
---------------------------------------

             Summary: Warning needed for misplaced discriminators
                 Key: DAFFODIL-2277
                 URL: https://issues.apache.org/jira/browse/DAFFODIL-2277
             Project: Daffodil
          Issue Type: Bug
          Components: Front End
    Affects Versions: 2.5.0
            Reporter: Mike Beckerle
             Fix For: 2.6.0


Daffodil should issue a warning, possibly even an SDE, about misplaced 
discriminators:

I observed that many things with discriminators are coded like this:
```
<xs:sequence>
 <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/";>
 <dfdl:discriminator ....../>
 </xs:appinfo></xs:annotation>
 ....rest of sequence...
</xs:sequence>
```
So, it's quite unintuitive, but that discriminator will be executed AFTER the 
rest of the sequence.
I'm not sure why we decided that is how DFDL should work, but to get the 
discriminator to run BEFORE the rest of the sequence, which is typically what 
you want from a discriminator, you must nest it within ANOTHER sequence inside 
the first like so:
```
<xs:sequence>
 <xs:sequence>
 <xs:annotation><xs:appinfo source="http://www.ogf.org/dfdl/";>
 <dfdl:discriminator ....../>
 </xs:appinfo></xs:annotation>
 </xs:sequence>
 ....rest of sequence...
</xs:sequence>
```
Daffodil issue warnings about the former style (which can also occur on 
choices), since it is so unintuitive.

But for PCAP, all the discrimnators have to change.

See: https://github.com/DFDLSchemas/PCAP/issues/4



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to