Apache Daffodil VS Code Extension
Copyright 2022 The Apache Software Foundation

This product includes software developed at
The Apache Software Foundation (http://www.apache.org/).

Based on source code originally developed by
- Concurrent Technologies Corporation (https://www.ctc.com/)
- Nteligen LLC (https://www.nteligen.com/)
