You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@daffodil.apache.org by "Mike Beckerle (Jira)" <ji...@apache.org> on 2019/12/30 18:02:00 UTC
[jira] [Created] (DAFFODIL-2262) occursCountKind 'expression'
should avoid separator suppression, but does not.
Mike Beckerle created DAFFODIL-2262:
---------------------------------------
Summary: occursCountKind 'expression' should avoid separator suppression, but does not.
Key: DAFFODIL-2262
URL: https://issues.apache.org/jira/browse/DAFFODIL-2262
Project: Daffodil
Issue Type: Bug
Components: Back End
Affects Versions: 2.4.0
Reporter: Mike Beckerle
Fix For: 3.0.0
Reported on users mailing list.
Section 14.2.2 of the DFDL specification says this:
{color:#000000}When dfdl:occursCountKind is 'expression' the number of occurrences is given by dfdl:occursCount and exactly that many occurrences are always expected along with their separators. The dfdl:separatorSuppressionPolicy is not applicable and the implied behaviour is 'never'.{color}
The below schema has dfdl:occursCountKind="expression" and yet I am not observing the expected implied behavior of 'never'. That is, with this input:
{code:java}
header1,header2
a,{code}
After parsing and then unparsing I get this:
{code:java}
header1,header2
a{code}
Notice that the comma separator has been suppressed after ‘a’ but the specification says that the implied behavior is to never suppress the separator. This seems like a bug to me. Do you agree?
{code:java}
<xs:element name="input">
<xs:complexType>
<xs:sequence dfdl:separator="%NL;" dfdl:separatorPosition="infix">
<xs:element name="header">
<xs:complexType>
<xs:sequence dfdl:separator="," dfdl:separatorPosition="infix" dfdl:separatorSuppressionPolicy="anyEmpty">
<xs:element name="title" maxOccurs="unbounded" type="xs:string" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="row" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence dfdl:separator="," dfdl:separatorPosition="infix" dfdl:separatorSuppressionPolicy="anyEmpty">
<xs:element name="field" maxOccurs="unbounded" type="xs:string"
dfdl:occursCount="{ fn:count(../../header/title) }"
dfdl:occursCountKind="expression" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>{code}
--
This message was sent by Atlassian Jira
(v8.3.4#803005)