DFDL isn't normally thought of as a data transformation language. Yet it has computed elements, hidden groups, expressions that can refer to elements in arrays using the index position within the current array (via the dfdl:occursIndex() function).
These result in it having substantial data transformation capabilities. For a while I have said that I bet one can invert a matrix in DFDL. So I finally created an example that does so. It takes a representation of data as a pair of lists, and creates a logical infoset that is a list of pairs. https://github.com/OpenDFDL/examples/tree/master/pairsTransform The conclusion of this little experiment is that while this is possible for parsing, you can't invert the process perfectly in unparsing due to some DFDL v1.0 restrictions. I may do experiments in Daffodil to lift those restrictions. The notion of an entirely schema-based transform language is very interesting given that typical XML transformation languages such as XSLT and XQuery are both template/instance-document based, not schema based. Mike Beckerle | Principal Engineer [cid:eb186e2a-a515-4148-a5af-3d5f693737bd] mbecke...@owlcyberdefense.com<mailto:bhum...@owlcyberdefense.com> P +1-781-330-0412