Hi Folks,

My instance document consists of a sequence of up to 5 strings, separated by 
forward slash, e.g., 

        /a//

If I specify separatorSuppressionPolicy="trailingEmpty" then I can specify 
minOccurs="0" maxOccurs="5"

If I specify separatorSuppressionPolicy="anyEmpty" then I get this error: 

      Left over data. Consumed 0 bit(s) with at least 56 bit(s) remaining.

Why is that?

That is, why does this work:

  <xs:element name="file">
    <xs:complexType>
      <xs:sequence dfdl:separator="/" dfdl:separatorPosition="infix"
            dfdl:separatorSuppressionPolicy="trailingEmpty">
        <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="5" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

Whereas this doesn't:

  <xs:element name="file">
    <xs:complexType>
      <xs:sequence dfdl:separator="/" dfdl:separatorPosition="infix"
            dfdl:separatorSuppressionPolicy="anyEmpty">
        <xs:element name="value" type="xs:string" minOccurs="0" maxOccurs="5" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>

The latter works if I specify minOccurs="1" maxOccurs="5"

/Roger

Reply via email to