Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

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
languagexml
titleConfiguration 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
languagexml
titleDFDL 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
languagexml
titleConfiguration 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>