CLI Usage
daffodil [GLOBAL_OPTIONS] <subcommand> [SUBCOMMAND_OPTIONS]
Environment Variables
Setting environment variables may be necessary to allow for importing/includes to work and when running tdml files.
DAFFODIL_CLASSPATH
The Daffodil implementation will look on the classpath for includes and imports, and some tdml files. To define additional directories where Daffodil should look for files, set the DAFFODIL_CLASSPATH
environment variable, for example:
$ export DAFFODIL_CLASSPATH="/path/to/imports/:/path/to/includes/"
In addition to defining directories to search for imports and includes, you can add a CatalogManager.properties
file to the DAFFODIL_CLASSPATH
to direct Daffodil to a relative path location of a user XML Catalog.
DAFFODIL_JAVA_OPTS
If you need to specify java options specific to Daffodil, you can set the DAFFODIL_JAVA_OPTS
environment variable. If not specified, the JAVA_OPTS
environment variable will be used. If that is not specified, reasonable defaults for Daffodil will be used.
Global Options
Long | Short | Arguments | Description |
---|---|---|---|
--debug | -d | [file] | Enable the interactive debugger. See the Interactive Debugger documentation for more information. The optional This option cannot be used with the |
--trace | -t | Enable a trace mode. This mode prints out helpful information during every stage of parsing. This option cannot be used with the | |
--verbose | -v | Enable verbose mode and increment verbosity level. Each additional v provides a new level of information. | |
--version | Display the version of Daffodil. | ||
--help | Display help message. |
Parse Subcommand
Parse a file, using either a DFDL schema or a saved parser.
Usage
daffodil parse (-s <schema> [-r [{<namespace>}]<root>] [-p <path>] | -P <parser>)
[-D[{namespace}]<variable>=<value>...] [-T<tunable>=<value>] [-o <output>]
[-V [mode]] [-c <file>] [-I <infoset_type>] [infile]
Options
Long | Short | Arguments | Description |
---|---|---|---|
--config | -c | <file> | XML file containing configuration items, such as external variables or Daffodil tunables. See Configuration File for details on the file format. |
-D | [{<namespace>}]<variable>=<value> | Variables to be used when parsing. The variable can be prefixed with {namespace} to define which namespace the variable belongs in, for example:
| |
--infoset‑type | -I | <infoset_type> | Infoset type to output. Must be one of 'xml', 'scala-xml', 'json', 'jdom', or 'null'. Defaults to 'xml' if not provided. |
--output | -o | <output> | Write output to a given file. If the option is not given or is -, output is written to standard out. |
--parser | -P | <parser> | Use a previously saved parser, created using the save-parser subcommand. This option cannot be used with the --schema option or with the --validate option set to 'on'. |
--path | -p | <path> | The path to the node from the root element to create the parser from. |
--root | -r | [{<namespace>}]<root> | The root element of the DFDL schema to use. This must be one of the top-level elements of the schema defined with --schema. This requires the --schema option to be defined. If not supplied, the first element of the schema defined with --schema is used. A namespace may be specified by prefixing it with {namespace}. |
--schema | -s | <schema> | The annotated DFDL schema to use to create the parser. This option cannot be used with the --parser option. |
-T | <tunable>=<value> | Modify Daffodil configuration options to change parsing behavior. See Configuration File#Tunable Parameters for the list of tunable parameters. | |
--validate | -V | [mode] | The validation mode. 'on', 'limited' or 'off'. If 'mode' is not provided, defaults to 'on'. If --validate is not provided, defaults to 'off'. Mode cannot be 'on' when used with the --parser option. |
[infile] | Input file to parse. If not specified, or is a value of -, reads from standard in. If supplied, this must be the last option on the command line. | ||
--help | Display help message. |
Example
daffodil parse -s csv.dfdl.xsd test_file.csv
Unparse Subcommand
Unparse an infoset file, using either a DFDL schema or a saved parser.
The unparse subcommand was implemented as of version 1.1.0.
Usage
daffodil unparse (-s <schema> [-r [{<namespace>}]<root>] [-p <path>] | -P <parser>)
[-D[{<namespace>}]<variable>=<value>...] [-T<tunable>=<value>] [-o <output>]
[-V [mode]] [-c <file>] [-I <infoset_type>] [infile]
Options
Long | Short | Arguments | Description |
---|---|---|---|
--config | -c | <file> | XML file containing configuration items, such as external variables or Daffodil tunables. See Configuration File for details on the file format. |
-D | [{<namespace>}]<variable>=<value> | Variables to be used when unparsing. The variable can be prefixed with {namespace} to define which namespace the variable belongs in, for example: | |
--infoset‑type | -I | <infoset_type> | Infoset type to unparse. Must be one of 'xml', 'scala-xml', 'json', or 'jdom'. Defaults to 'xml' if not provided. |
‑‑output | -o | <output> | Write output to a give file. If the option is not given or is -, output is written to standard out. |
‑‑parser | -P | <parser> | Use a previously saved parser, created using the save-parser subcommand. This option cannot be used with the ‑‑schema option or with the ‑‑validate option set to 'on'. |
‑‑path | -p | <path> | The path to the node from the root element to create the parser from. |
‑‑root | -r | [{<namespace>}]<root> | The root element of the DFDL schema to use. This must be one of the top-level elements of the schema defined with ‑‑schema. This requires the ‑‑schema option to be defined. If not supplied, the first element of the schema defined with ‑‑schema is used. A namespace may be specified by prefixing it with {namespace}. |
‑‑schema | -s | <schema> | The annotated DFDL schema to use to create the parser. This option cannot be used with the ‑‑parser option. |
-T | <tunable>=<value> | Modify Daffodil configuration options to change parsing behavior. See Configuration File#Tunable Parameters for the list of tunable parameters. | |
‑‑validate | -V | [mode] | The validation mode. 'on', 'limited' or 'off'. If 'mode' is not given, defaults to 'on'. If ‑‑validate is not present, defaults to 'off'. Mode cannot be 'on' when used with the ‑‑parser option. |
[infile] | Input file to unparse. If not specified, or is a value of -, reads from standard in. If supplied, this must be the last option on the command line. | ||
‑‑help | Display help message. |
Example
daffodil unparse -s csv.dfdl.xsd test_file.infoset
Save Parser Subcommand
Create a save a parser that can be reused for parsing and unparsing.
Usage
daffodil save-parser -s <schema> [-r [{namespace}]<root>] [-p <path>] [-o <output>] [outfile]
Options
Long | Short | Arguments | Description |
---|---|---|---|
‑‑config | -c | <file> | XML file containing configuration items, such as external variables or Daffodil tunables. See Configuration File for details on the file format. |
-D | [{<namespace>}]<variable>=<value> | Variables to be used when parsing. The variable can be prefixed with {namespace} to define which namespace the variable belongs in, for example: | |
‑‑path | -p | <path> | The path to the node from the root element to create the parser from. |
‑‑root | -r | [{<namespace>}]<root> | The root element of the DFDL schema to use. This must be one of the top-level elements of the schema defined with ‑‑schema. This requires the ‑‑schema option to be defined. If not supplied, the first element of the schema defined with ‑‑schema is used. A namespace may be specified by prefixing it with {namespace}. |
‑‑schema | -s | <schema> | The annotated DFDL schema to use to create the parser. This option must be supplied. |
‑‑validate | -V | [mode] | The validation mode. 'limited' or 'off'. Mode is required. If ‑‑validate is not present, defaults to 'off'. Mode cannot be set to 'on' as possible in other commands. |
[outfile] | Write the parser to a give file. If the option is not given or is -, output is written to standard out. If supplied, this must be the last option on the command line. | ||
‑‑help | Display help message. |
Example
daffodil save-parser -s csv.dfdl.xsd csv_parser.xml
Test Subcommand
List or execute tests in a TDML file.
Usage
daffodil test [-l] [-r] [-i] <tdmlfile> [testname...]
Options
Long | Short | Arguments | Description |
---|---|---|---|
‑‑info | -i | Increment test result information output level, one level for each occurrence of -i. | |
‑‑list | -l | Show names and descriptions in a TDML file instead of running them. | |
‑‑regex | -r | Read <testnames> as regular expressions. | |
<tdmlfile> | Test Data Markup Language (TDML) file. | ||
[testname...] | Name of one or more test case in the tdml file. If not given, all tests in <tdmlfile> are run. | ||
‑‑help | Display help message. |
Example
daffodil test csv.tdml
Performance Subcommand
Run a performance test (parse or unparse), using either a DFDL schema or a saved parser
The unparse option of the performance subcommand was implemented as of version 1.1.0.
Usage
daffodil performance (-s <schema> [-r [{namespace}]<root>] [-p <path>] | -P <parser)
[-u] [-V[mode]] [-N <number>] [-t <threads>]
[-D[{namespace}]<variable>=<value>] [-I <infoset_type>] <infile>
Options
Long | Short | Arguments | Description |
---|---|---|---|
‑‑config | -c | <file> | XML file containing configuration items, such as external variables or Daffodil tunables. See Configuration File for details on the file format. |
-D | [{<namespace>}]<variable>=<value> | Variables to be used when parsing. The variable can be prefixed with {namespace} to define which namespace the variable belongs in, for example: | |
‑‑infoset-type | -I | <infoset_type> | Infoset type to parse/unparse. Must be one of 'xml', 'scala-xml', 'json', 'jdom', or 'null'. Defaults to 'xml' if not provided. Note that 'null' is not valid if the ‑‑unparse option is provided. |
‑‑number | -N | <number> | Total number of files to process. Defaults to 1. |
‑‑parser | -P | <parser> | Use a previously saved parser, created using the save-parser subcommand. This option cannot be used with the ‑‑schema option or with the ‑‑validate option set to 'on'. |
‑‑path | -p | <path> | The path to the node from the root element to create the parser from. |
‑‑root | -r | [{<namespace>}]<root> | The root element of the DFDL schema to use. This must be one of the top-level elements of the schema defined with ‑‑schema. This requires the ‑‑schema option to be defined. If not supplied, the first element of the schema defined with ‑‑schema is used. A namespace may be specified by prefixing it with {namespace}. |
‑‑schema | -s | <schema> | The annotated DFDL schema to use to create the parser. This option cannot be used with the ‑‑parser option. |
‑‑threads | -t | <threads> | The number of threads to use. Defaults to 1. |
-T | <tunable>=<value> | Modify Daffodil configuration options to change processing behavior. See Configuration File#Tunable Parameters for the list of tunable parameters. | |
‑‑unparse | -u | Perform unparse instead of parse for performance. | |
--validate | -V | [mode] | The validation mode. 'on', 'limited' or 'off'. If 'mode' is not provided, defaults to 'on'. If --validate is not provided, defaults to 'off'. Mode cannot be 'on' when used with the --parser option. |
[infile] | Input file or directory containing files to process | ||
--help | Display help message. |
Example
daffodil performance -s csv.dfdl.xsd -N 1000 -t 5 test_file.csv