Yes, I think there is a bug.
I will try to recreate on 3.1.0 development branch.
________________________________
From: Roger L Costello <[email protected]>
Sent: Tuesday, April 20, 2021 9:13 AM
To: [email protected] <[email protected]>
Subject: Bug in Daffodil?
Hi Folks,
Consider a data format which specifies that instance documents must contain a
sequence of 1 to 3 string data items and the data items are to be separated by
forward slashes. If there is no data for the third data item and the data
format specifies separatorSuppressionPolicy=trailingEmptyStrict, then this
instance is invalid because it has a trailing separator:
a/b/
Daffodil should throw an error with that instance, but doesn't.
On the other hand, if the data format specifies a sequence of 1 to 4 string
data items, then Daffodil throws an error on the above instance.
That is, Daffodil does not throw an error on the above instance with this
schema:
<xs:element name="file">
<xs:complexType>
<xs:sequence dfdl:separator="/" dfdl:separatorPosition="infix"
dfdl:separatorSuppressionPolicy="trailingEmptyStrict">
<xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="3" />
</xs:sequence>
</xs:complexType>
</xs:element>
But Daffodil does throw an error on the above instance with this schema:
<xs:element name="file">
<xs:complexType>
<xs:sequence dfdl:separator="/" dfdl:separatorPosition="infix"
dfdl:separatorSuppressionPolicy="trailingEmptyStrict">
<xs:element name="value" type="xs:string" minOccurs="1" maxOccurs="4" />
</xs:sequence>
</xs:complexType>
</xs:element>
Is that a bug in Daffodil?
/roger