You are viewing an old version of this page. View the current version.

Compare with Current View Page History

Version 1 Next »

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.

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:

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:

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>
  • No labels