Hello DFDL community,

I learned that DFDL supports in-band nil values. Recall what an in-band nil is:

In-band nil: a symbol inserted into the region indicates nil. A part of the 
region's value space is reserved for indicating nil.

I learned that, if the region is to hold an atomic value, then the symbol can 
be anything. For example, I used N/A to represent a region with a nil value:

<xs:element name="make" type="xs:string" nillable="true" dfdl:nilValue="N/A" />

I learned that, if the region is to hold a complex value, then the symbol is 
restricted to %ES; (empty string). For example:

<xs:element name="person" nillable="true" dfdl:nilValue="%ES;">
    <xs:complexType>
        <xs:sequence dfdl:separator="%NL;" dfdl:separatorPosition="infix">
            <xs:element name="name" type="xs:string" />
            <xs:element name="age" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
</xs:element>

Is that restriction true of real world data formats?

Recall that there are some data formats out in the real world which specify 
out-of-band that a region represents a nil value. How are out-of-band nils 
expressed in DFDL?

/Roger

Reply via email to