Hi Folks,

Section 14.2.2 of the DFDL specification says this:

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'.

The below schema has dfdl:occursCountKind="expression" and yet I am not 
observing the expected implied behavior of 'never'. That is, with this input:

header1,header2
a,

After parsing and then unparsing I get this:

header1,header2
a

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?  /Roger

<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>


Reply via email to