Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Not A Problem
-
2.3.0, 2.4.0
-
None
-
None
-
mac
Description
IBM4690 SA TLOG infosets should be comprised of one Transactions element that contains many Transaction elements that in turn contain many TransactionRecord, but when the output format is json, the daffodil CLI creates one Transactions object that contains one Transaction array that contains all the TransactionRecords of the TLOG.
I get the correct structure when the infoset output is in XML. (I'm using the sample TLOG EAMTRANA_2.DAT):
./daffodil parse --schema ~/IBM4690-TLOG/SA/TlogSA.xsd -I xml -o ~/Downloads/tlog-a-2.xml ~/IBM4690-TLOG/SA/TestData_SA/EAMTRANA_2.DAT
<?xml version="1.0" encoding="UTF-8" ?>
<sa:Transactions xmlns:sa="http://www.ibm.com/dfdl/Tlog/SA">
<sa:Transaction>
<TransactionRecord>
...
</TransactionRecord>
</sa:Transaction>
<sa:Transaction>
...
...
</sa:Transaction>
...
</sa:Transactions>**
However, when the output format is json, I get the following invalid format:
./daffodil parse --schema ~/IBM4690-TLOG/SA/TlogSA.xsd -I xml -o ~/Downloads/tlog-a-2.xml ~/IBM4690-TLOG/SA/TestData_SA/EAMTRANA_2.DAT
{
"Transactions": {
"Transaction": [
{
"TransactionRecord": [
{
"TransactionRecord20_17":
}
]
},
] }}
I've tried this with the 2.3.0 and the master branch, using the DFDL from https://github.com/DFDLSchemas/IBM4690-TLOG . I've even tried with the schema in https://github.com/DFDLSchemas/IBM4690-TLOG/pull/1