[DFDL-WG] OGF DFDL - useNullValueForDefault

Mike Beckerle beckerle at us.ibm.com
Mon Dec 3 09:01:19 CST 2007


I went back to an old ibm-internal document and found a discussion that 
this property is used only to control output. 

Is this still true?

This is my logic about this:

I.e., useNullValueForDefault applies only to nullable items, and an 
element is required and  if nothing is in the logical value when you 
output, then it "defaults it" by filling in the logical value with null, 
and then of course when outputting that, the null is represented however 
it is represented.

On input, if an element is required but is not present in the data at all, 
and it has a default value normally that would used as the logical value. 

useNullValueForDefault can either be used in this situation to mean that 
the default value is to be null (which can't be expressed in the XSD 
default="..." syntax), or one can say this is ignored on input, and the 
user achieves this affect by putting empty string on the list of 
nullValues, and not having any default value.

We need to reexamine this nullValues as a list thing, That may or may not 
be sufficient, but no matter what one certainly needs to be able to 
indicate that empty-string means null, so there's no need for 
useNullValueForDefault on input.


Mike Beckerle
STSM, Architect, Scalable Computing
IBM Software Group
Information Platform and Solutions
Westborough, MA 01581
direct: voice and FAX 508-599-7148
assistant: Pam Riordan 
                  priordan at us.ibm.com 
                  508-599-7046





Geoff Judd <JUDDG at uk.ibm.com> 
12/03/2007 05:16 AM

To
Mike Beckerle/Worcester/IBM at IBMUS
cc
dfdl-wg at ogf.org, dfdl-wg-bounces at ogf.org
Subject
Re: [DFDL-WG] OGF DFDL - useNullValueForDefault







Mike, 
          The think the primary motivation for the useNullValueForDefault 
is to allow out-of-band values to be output as default values. A default 
value has to be in the value space of the missing element but a Null value 
can be an out-of-band value. One scenario where useNullForDefaultValue is 
useful is in the case of COBOL where a user wants to output HIGH-VALUES or 
LOW-VALUES for missing elements. 

Regards,

Geoff Judd
WebSphere Message Brokers Development
IBM United Kingdom Ltd.
Hursley

Telephone:  +44-1962-818461
E-mail:           JUDDG at uk.ibm.com



Mike Beckerle <beckerle at us.ibm.com> 
Sent by: dfdl-wg-bounces at ogf.org 
30/11/2007 20:34 


To
dfdl-wg at ogf.org 
cc

Subject
[DFDL-WG] OGF DFDL - useNullValueForDefault









I'm trying to simplify something in the nulls/defaults space. 

There's this property proposed: useNullValueForDefault. This is a boolean. 


I'm trying to understand what this is for. 

On input, when the element is required but no content is found, and you 
therefore want to create a default value, you would look, see that the 
element is nillable, see that useNullValueForDefault is true, and set the 
logical value of that element to null. 

On output when no logical value is provided but the element is required, 
you therefore want to create a default value, so you look and see that the 
element is nillable and see that useNullValueForDefault is true and so you 
provide the logical value null as the value. Then you output as if the 
logical value was null in the first place, so you would output the first 
of the dfdl:nullValues list as the representation. 

These two are not symmetric. 

I understand wanting empty content to cause null as the logical value of a 
nillable element. Symmetry argues that one wants in this case for the 
output side to output empty content as the representation of null logical 
value. 

The way I would express this is to provide a means for the list of 
dfdl:nullValues to be able to contain the empty string as its first member 
of the list. E.g., some syntax like: 

dfdl:nullValues=" '' 'null' 'NULL' '\ ' " 

Once you have this, there is no need for useNullValueForDefault. It's 
functionality is subsumed by allowing nullValues to contain empty-string 
as a null representation. 

This leaves the case where an element is both nullable and has a non-null 
default value. 

Is this case important or can we just say that an element is either 
nullable or has default values, but not both.  We already have some 
constraints on this stuff in that we don't allow nullable complex types, 
only simple.   

I believe allowing all combinations of nullability with default values is 
probably overkill. 

Comments? 


I understand wanting a missing 
Mike Beckerle
STSM, Architect, Scalable Computing
IBM Software Group
Information Platform and Solutions
Westborough, MA 01581
direct: voice and FAX 508-599-7148
assistant: Pam Riordan 
                priordan at us.ibm.com 
                508-599-7046
--
 dfdl-wg mailing list
 dfdl-wg at ogf.org
 http://www.ogf.org/mailman/listinfo/dfdl-wg 





Unless stated otherwise above:
IBM United Kingdom Limited - Registered in England and Wales with number 
741598. 
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6 3AU 






-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/dfdl-wg/attachments/20071203/32013e9c/attachment.html 


More information about the dfdl-wg mailing list