| <!-- | |
| Licensed to the Apache Software Foundation (ASF) under one or more | |
| contributor license agreements. See the NOTICE file distributed with | |
| this work for additional information regarding copyright ownership. | |
| The ASF licenses this file to You under the Apache License, Version 2.0 | |
| (the "License"); you may not use this file except in compliance with | |
| the License. You may obtain a copy of the License at | |
| http://www.apache.org/licenses/LICENSE-2.0 | |
| Unless required by applicable law or agreed to in writing, software | |
| distributed under the License is distributed on an "AS IS" BASIS, | |
| WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | |
| See the License for the specific language governing permissions and | |
| limitations under the License. | |
| --> | |
| # Apache Daffodil | |
| ## Introduction | |
| Apache Daffodil is an open-source implementation of the DFDL specification | |
| that uses DFDL data descriptions to parse fixed format data into an infoset. | |
| This infoset is commonly converted into XML or JSON to enable the use of | |
| well-established XML or JSON technologies and libraries to consume, inspect, | |
| and manipulate fixed format data in existing solutions. Daffodil is also | |
| capable of serializing or "unparsing" data back to the original data format. | |
| The DFDL infoset can also be converted directly to/from the data structures | |
| carried by data processing frameworks so as to bypass any XML/JSON overheads. | |
| For more information about Daffodil, see <https://daffodil.apache.org/>. | |
| ## Requirements | |
| * JRE 8 or higher | |
| ## Getting Started | |
| To execute Daffodil on Linux: | |
| ```bash | |
| ./bin/daffodil [options] | |
| ``` | |
| To execute Daffodil on Windows: | |
| ```bash | |
| .\bin\daffodil.bat [options] | |
| ``` | |
| Use the `--help` option or see the [Command Line Interface](https://daffodil.apache.org/cli/) | |
| documentation for details on its usage. | |
| ### Debugging | |
| Daffodil comes with a built-in interactive debugger, allowing the user to pause | |
| parse/unparse and inspect various aspects of the state. To enable the | |
| interactive debugger, supply the global -d option when parsing or unparsing, | |
| for example: | |
| ```bash | |
| ./bin/daffodil -d parse --schema <path/to/schema.dfdl.xsd> input-file | |
| ``` | |
| When running the debugger, the user is provided with a command prompt, at which | |
| point the user can execute debugger commands to control the debugger and | |
| inspect state. Type `help` at the command prompt to get information on the | |
| debugger commands, or `help <command>` to get information about a specific | |
| command. | |
| See the [Interactive Debugger](https://daffodil.apache.org/debugger/) | |
| page for its detailed usage. | |
| ## Getting Help | |
| For questions, we can be reached at the dev@daffodil.apache.org or | |
| users@daffodil.apache.org mailing lists. Bugs can be reported via the | |
| [Daffodil JIRA](https://issues.apache.org/jira/projects/DAFFODIL). | |
| ## License | |
| Daffodil is licensed under the [Apache License, v2.0](https://www.apache.org/licenses/LICENSE-2.0) | |
| This product bundles the [JavaBeans Activation | |
| Framework](https://www.oracle.com/java/technologies/downloads.html), | |
| which is licensed under the Common Development and Distribution | |
| License Version 1.1. | |
| This product bundles the [Saxon XSLT and XQuery Processor from | |
| Saxonica Limited](https://www.saxonica.com/), which is licensed under | |
| the Mozilla Public License Version 2.0. |