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. For information on the  CatalogManager.properties file, visit the following website:

http://xerces.apache.org/xml-commons/components/resolver/tips.html#properties

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

LongShortArgumentsDescription
--debug
-d
[file]

Enable the interactive debugger. See the Interactive Debugger documentation for more information.

The optional file argument is a list of debugger commands that are provided to the debugger as if it was type by the user.

This option cannot be used with the --trace option.

--trace-t 

Enable a trace mode. This mode prints out helpful information during every stage of parsing.

This option cannot be used with the --debug option.

--version
-v
 

Enable verbose output.

Parse Subcommand

Parse a file, using either a DFDL schema or a saved parser.

Usage

Note that the -P or --parser feature is not yet implemented (April 2013)

daffodil parse (-s <schema> [-r <root> [-n <namespace>]] [-p <path>] | -P <parser>) [-D<variable>=<value>...] [-o <output>] [infile]

Options

LongShortArgumentsDescription
--schema
-s
<schema>
The annotated DFDL schema to use to create the parser. This option may be supplied multiple times for multi-schema support. This option cannot be used with the --parser option.
--root
-r
<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 first schema defined with --schema is used.
--namespace
-n
<namespace>
The namespace of the root element. Requires the --root option.
--path
-p
<path>
The path to the node from the root element to create the parser from.
--parser
-P
<parser>
Use a previously saved parser, created using the save-parser subcommand. This option cannot be used with the --schema option.
 
-D
<variable>=<value>
Variables to be used when parsing.
--output
-o
<output>
Write output to a give file. If the option is not given or is -, output is written to standard out.
  
[infile]

Input file to parse. If not specified, or is a value of -, reads from standard in. In supplied, this must be the last option on the command line.

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.

Usage

Note that the Unparse subcommand is not currently implemented (April 2013).

daffodil unparse (-s <schema> [-r <root> [-n <namespace>]] [-p <path>] | -P <parser>) [-D<variable>=<value>...] [-o <output>] [infile]

Options

LongShortArgumentsDescription
--schema
-s
<schema>
The annotated DFDL schema to use to create the parser. This option may be supplied multiple times for multi-schema support. This option cannot be used with the --parser option.
--root
-r
<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 first schema defined with --schema is used.
--namespace
-n
<namespace>
The namespace of the root element. Requires the --root option.
--path
-p
<path>
The path to the node from the root element to create the parser from.
--parser
-P
<parser>
Use a previously saved parser, created using the save-parser subcommand. This option cannot be used with the --schema option.
 
-D
<variable>=<value>
Variables to be used when unparsing.
--output
-o
<output>
Write output to a give file. If the option is not given or is -, output is written to standard out.
  
[infile]
Input file to unparse. If not specified, or is a value of -, reads from standard in. In supplied, this must be the last option on the command line.

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

Note that the save-parser command is not currently implemented (April 2013).

daffodil save-parser -s <schema> [-r <root> [-n <namespace>]] [-p <path>] [-o <output>] [outfile]

Options

LongShortArgumentsDescription
--schema
-s
<schema>
The annotated DFDL schema to use to create the parser. This option may be supplied multiple times for multi-schema support. This option must be supplied.
--root
-r
<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 first schema defined with --schema is used.
--namespace
-n
<namespace>
The namespace of the root element. Requires the --root option.
--path
-p
<path>
The path to the node from the root element to create the parser from.
 
 
[outfile]
Write the parser to a give file. If the option is not given or is -, output is written to standard out.

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] <tdmlfile> [testname...]

Options

LongShortArgumentsDescription
--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.

Example

daffodil test csv.tdml