Daffodil has the capability to read in various parameters via an external XML file. Below are the parameters that can be defined.
External variables can be defined using the externalVariablesBindings
tag. For example, the following configuration file defines to variables, var1
and var2
, in the http://example.com
namespace.
<?xml version="1.0" encoding="UTF-8"?> <dfdlConfig xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ex="http://example.com"> <externalVariableBindings> <bind name="ex:var1">-9</bind> <bind name="ex:var2">Foo</bind> </externalVariableBindings> </dfdlConfig> |
These would allow the external variables to be set or overridden, if defined in a DFDL schema like so:
<dfdl:defineVariable name="var1" external="true" type="xsd:int">1</dfdl:defineVariable> <dfdl:defineVariable name="var2" external="true" type="xsd:string">Bar</dfdl:defineVariable> |
Various tunable parameters can be modified to change various Daffodil schema compilation and data parsing properties. For example, the following sets the maxOccursBounds tunable to 1024:
<?xml version="1.0" encoding="UTF-8"?> <dfdlConfig xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ex="http://example.com"> <tunables> <maxOccursBounds>1024</maxOccursBounds> </tunables> </dfdlConfig> |
Below is the list of tunable parameters and their default values:
tunable | default |
---|---|
maxFieldContentLengthInBytes | 1024 |
maxOccursBounds | 1024 |
maxSkipLength | 1024 |
maxBinaryDecimalVirtualPoint | 200 |
minBinaryDecimalVirtualPoint | -200 |
generatedNamespacePrefixStem | tns |
readerByteBufferSize | 8192 |
maxLengthForVariableLengthDelimiterDisplay | 10 |
inputFileMemoryMapLowThreshold | 33554432 |
requireBitOrderProperty | false |
requireEncodingErrorPolicyProperty | false |
The schema for the configuration file is defined in dafext.xsd.