blob: 5d0a613304110215b9483951508e4d9f5d7e43d2 [file] [view]
<!--
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.