Daffodil has the capability to read in various parameters via an external XML file. Below are the parameters that can be defined.
External Variables
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.
Code Block |
---|
language | xml |
---|
title | Configuration File |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<externalVariableBindings xmlns="http://www.w3.org/2001/XMLSchema" xmlns:ex="http://example.com">
<bind name="ex:var1">-9</bind>
<bind name="ex:var2">Foo</bind>
</externalVariableBindings> |
These would allow the external variables to be set or overridden, if defined in a DFDL schema like so:
Code Block |
---|
language | xml |
---|
title | DFDL Schema |
---|
|
<dfdl:defineVariable name="var1" external="true" type="xsd:int">1</dfdl:defineVariable>
<dfdl:defineVariable name="var2" external="true" type="xsd:string">Bar</dfdl:defineVariable> |
Configuration Schema
Below is the schema that defines this XML file:
Code Block |
---|
language | xml |
---|
title | Configuration Schema |
---|
|
<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:sub="http://www.w3.org/2001/XMLSchema" xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.ibm.com/xmlns/dfdl/testData"
xmlns:tns="http://www.ibm.com/xmlns/dfdl/testData">
<element name="externalVariableBindings" type="tns:externalVarType" minOccurs="1" maxOccurs="1"/>
<complexType name="externalVarType">
<sequence>
<element ref="tns:bind" minOccurs="0" maxOccurs="unbounded" />
</sequence>
</complexType>
<element name="bind" type="tns:bindType" />
<simpleType name="bindNameType">
<restriction base="xs:string" />
</simpleType>
<complexType name="bindType">
<simpleContent>
<extension base="tns:bindNameType">
<attribute name="name" use="required">
<simpleType>
<restriction base="xs:string" />
</simpleType>
</attribute>
</extension>
</simpleContent>
</complexType>
</xsd:schema> |