Consider the following schema:
<dfdl:defineEscapeScheme name="scenario3">
<dfdl:escapeScheme escapeCharacter='/'
escapeKind="escapeCharacter" escapeEscapeCharacter="$"
extraEscapedCharacters="" generateEscapeBlock="whenNeeded" />
</dfdl:defineEscapeScheme>
<xs:element name="e_infix">
<xs:complexType>
<xs:sequence dfdl:separator="/;" dfdl:separatorPosition="infix">
<xs:element name="x" type="xs:string"
dfdl:escapeSchemeRef="tns:scenario3" />
<xs:element name="y" type="xs:string" minOccurs="0"
dfdl:escapeSchemeRef="tns:scenario3" />
</xs:sequence>
</xs:complexType>
</xs:element>
We then have the following test case:
<parserTestCase name="scenario3_3" model="es3"
description="Section 13 - escapeCharacter - DFDL-13-029R" root="e_infix"
roundTrip="true">
<!-- See DFDL-1556 for to make roundTrip="true" -->
<document>foo$$/;bar</document>
<infoset>
<dfdlInfoset>
<tns:e_infix>
<x>foo$/;bar</x>
</tns:e_infix>
</dfdlInfoset>
</infoset>
</parserTestCase>
Shouldn't this parse as:
<tns:e_infix>
<x>foo$$</x>
<y>bar</y>
</tns:e_infix>
The spec says the following:
On parsing any in-scope terminating delimiter encountered in the data
is not interpreted as such when it is immediately preceded by the
dfdl:escapeCharacter (when not itself preceded by the
dfdl:escapeEscapeCharacter). Occurrences of the
dfdl:escapeCharacter and dfdl:escapeEscapeCharacter are removed
from the data, unless the dfdl:escapeCharacter is preceded by the
dfdl:escapeEscapeCharacter, or the dfdl:escapeEscapeCharacter
does not precede the dfdl:escapeCharacter.
It seems to me that the '/;' terminator shouldn't be getting escaped in this
case, but want to double check.
Josh