When unparsing, if the infoset contains an escape character followed by another character, the unparsed document currently contains two instances of the escape character, and the following character is removed. For example:
escapeChar = /, escapeEscapeChar = \
<e1>/home</e1>
|
In this case, I would think we expect the input to be:
\/home
|
However, the unparser is coming up with:
//ome
|
Something similar is happening with escape blocks. I've created parserTestCase equivalents for the tests. The parse equivalent for the first test behaves as expected. The second is experiencing memory issues (DFDL-1315 - Escape block test using escapeEscapeCharacter using large amounts of Java Heap Space ).
See tests:
unparseDelimitedEscapedString03
unparseDelimitedEscapedString04
in the following files:
daffodil-test/src/test/resources/edu/illinois/ncsa/daffodil/section07/escapeScheme/escapeSchemeUnparse.tdml
daffodil-test/src/test/scala-debug/edu/illinois/ncsa/daffodil/section07/escapeScheme/TestEscapeSchemeUnparseDebug.scala