1 Nils, defaults and unparsing
>From last calls minutes
- It was agreed that on unparsing a simple infoset item with no value will
be treated the same as missing. Steve H to check WMB behaviour. Need
to state in 4.1.2 Infoset that value is optional.
"
Something to note. We say that for a simple element infoset item [dataValue]
has a value (either type compliant or nil) and for a complex element infoset
item [dataValue] has 'no value'. Also we say that for
a simple element infoset item [children] has 'no value' and for
a complex element infoset item [children] it may have a value
(so it could also have 'no value'). The implication therefore is
that an element infoset item is deduced to be simple or complex based on
the [dataValue] property. If we let a simple item take 'no value'
for [dataValue] as proposed, then there is no reliable way to identify
an element infoset item as simple or complex.
Is that a problem in practice? After parsing, all simple items will
have [dataValue] set. For items created by some other means,
and presumably destined for unparsing, you could have an item with neither
[dataValue] nor [children] set. We could say (1)
that an element infoset item is known to be simple or complex only when
it is processed by the unparser, at which point the item is matched to
the DFDL schema and its type resolved. This is what broker's MRM
parser does. Alternatively (2)
we introduce a simple/complex flag.
Note that I tried creating an MRM 'infoset' item for a string element but
just gave a name and no value. The MRM serializer looked at the element,
matched it to its model, found it was simple, and treated the value
as NULL which invoked null processing. The XML serializer also
assumed NULL.
Personally I think we should adopt (1)
but interpret 'no value' for a simple item as nil and not missing.
Options for simple types:
1) Treat like missing from
infoset. Means that an optional element will not be output, and a required
element will go through default value processing.
2) Treat like [dataValue]
is nil. Means nil processing is invoked if nillable. This is what
MRM does today.
3) Give an error - [dataValue]
must always be set. It is up to the hosting application to apply a semantic
to a missing value from its own 'infoset' and always set something when
calling DFDL, if it wants to avoid such errors.
After discussion general
agreement that in the absence of any other reason compatibility with existing
products meant option 2. Steve H suggested we get Mike's opinion.
Alan has been updating the
Nils/Defaults section and raised the following questions
A) Does nil processing apply
to optional elements? In particular should a nilValue of empty string apply
to optional element.
Nil processing does apply
to optional elements including a nilValue of %#ES;
B) Does the nilValueDelimiterPolicy
and emptyyValueDelimiterPolicy of a child apply on parsing when the parent
is missing. That is should there be different rules for when the just child
is missing than when the parent is missing.
After discussion although
it was felt that there could be formats that required that support we weren't
aware of any so V1 will say that the child policy properties do apply.
2 OGF 29
Chicago, June 20-22
Suman volunteered to attend
to present. Note the public comment period ends 15 June.
3 Current Actions
see below
4 zoned numbers clarifications
The specification of the number pattern for zoned numbers is not clear.
A.
Clarification:
When dfdl:textNumberRep is ‘zoned’ only the pattern for positive numbers
is used. Only the following pattern characters may be used:
'+' MUST BE present at
the beginning or end of the pattern to indicate whether the leading or
trailing digit carries the overpunched sign, if the logical type is signed
'+' MAY BE present at the beginning or end of the pattern to indicate
whether the leading or trailing digit carries the overpunched sign, if
the logical type is unsigned
'V' MAY BE used to indicate the location of an implied decimal
point
'0' indicates the number of required digits (including overpunched).
'#' indicates the number optional
digits.
Agreed
B.
Also textNumberPolicy implies it applies to zoned, but doesn't state
what zoned behaviour it covers. I think it should be consistent with binaryNumberCheckPolicy
for packed, and control whether positive punched data is accepted or rejected
when parsing an unsigned type, and whether unpunched data is accepted or
rejected when parsing a signed type.
Agreed
C.
Finally, several textNumber properties only apply to standard or zoned.
We could distinguish these by name, which is what we have done elsewhere.
So:
- textStandardBase
- textStandardGroupSeparator
- textStandardExponentCharacter
- textStandardInfinityRep
- textStandardNanRep
- textStandardZeroRep
- textZonedSignStyle
Stephanie noted that changes
to properties caused rework of test cases so, in general, should be resisted
Agreed to change
Meeting closed, 14:30
Next call Wednesday 19 May 2010
15:00 UK (10:00 ET)
Next action: 092
Actions raised at this meeting
No
| Action |
Current Actions:
No
| Action |
066
| Investigate format for defining test
cases
25/11:IBM to see if it is possible to publish its test case format. 04/12: no update ... 17/02: IBM is willing in principle to publish the test case format and some of the test cases. May need some time to build a 'compliance suite' 24/03: No progress 03/03: Discussions have been taking place on the subset of tests that will be provided. 10/03: work is progressing 17/03: work is progressing 31/03: work is progressing 14/04: And XML test case format has been defined and is being tested. 21/04. Schema for TDML defined. Need to define how this and the test cases will be made public 05/05: Work still progressing 12/05: Work still progressing |
084
| Check behaviour of dfdl:inputValueCalc
and outputValueCalc.
14/04: no prorgess 21/04: no progress 05/05: no progress |
085
| ALL: publicize Public comments phase
to ensure a good review..
14/04: see minutes 21/04: Press release, OMG and other standards bodies. 05/05: Alan and Steve H have contacted other standards bodies. Will ask them to add comments on spec 15/05: still no public comments |
086
| AP: Nils and Defaults during unparsing
- update table
31/03: TK to documetn use cases for parsing 14/04: Investigate new property to control empty string behaviour. 21/04: After investigation a new property is not required. New rules developed and tables updated. Need examples of complexTypes to confirm tables apply. Review Nils, defaulting spec section. 05/05: Discussed defaulting complex elements. Tables updated but need to add terminator. SH; to confirm WMD behaviour when infoset item has no value on unparsing Need to describe defaulting choices. 15/05: More discussion. Alan updating sections |
088
| define semantics of choiceKind 'fixedLength'
31/03: TK to provide definition of calculable length. Investigate PL/I varchars and Cobol occurs dependingon. 14/04Tim had distributed a document starting the definition of calculable length for the longest choice member. Alan had done some investigation of COBOL occurs depending on and when used in the working section of a program then the maximum storage was reserved but when used in the linkage section the dependent number was uses. We need to understand how the WMB COBOL importer deals with ODO. 21/04: Need to define 'calculable length' and WMB importer ODO behaviour. 05/05: TK: Still need definition of calculable length. SKK: WMB COBOL imported behaviour with ODO 15/05: Suman sent an expmle of an imported Cobol ODo which suggested that the maximum space was reserved. He will extend the example. |
091
| The IBM team had questioned whether
timezones should be just UTC+/- offset or should GMT and other short time
zones be allowed. Alan to investigate
15/05: Alan to talk to Ruth. |
Closed actions
No
| Action |
Work items:
No
| Item | target version | status |
005
| Improvements on property descriptions | not started | |
012
| Reordering the properties discussion: move representation earlier, improve flow of topics | not started | |
036
| Update dfdl schema with change properties | ongoing | |
042
| Mapping of the DFDL infoset to XDM | none | not required for V1 specification |
070
| Write DFDL primer | ||
071
| Write test cases. | ||
083
| Implement RFC2116 | ||
097
| Remove functions that returns duration | ||
098
| occursCountKind is parsing only | ||
099
| nilValue and OccuresStopValue cannot
have an expression.
On unparsing only outputValueCalc can have a forward reference. | ||
100
| Need to state in 4.1.2 Infoset that value is optional. | ||
101
| When dfdl:textNumberRep is ‘zoned’ only
the pattern for positive numbers is used. Only the following pattern characters
may be used: '+' MUST BE present at the beginning or end of the pattern to indicate whether the leading or trailing digit carries the overpunched sign, if the logical type is signed '+' MAY BE present at the beginning or end of the pattern to indicate whether the leading or trailing digit carries the overpunched sign, if the logical type is unsigned 'V' MAY BE used to indicate the location of an implied decimal point '0' indicates the number of required digits (including overpunched). '#' indicates the number optional digits. | ||
102
| Also textNumberPolicy implies it applies to zoned, but doesn't state what zoned behaviour it covers. I think it should be consistent with binaryNumberCheckPolicy for packed, and control whether positive punched data is accepted or rejected when parsing an unsigned type, and whether unpunched data is accepted or rejected when parsing a signed type. | ||
103
| - textStandardBase
- textStandardGroupSeparator - textStandardExponentCharacter - textStandardInfinityRep - textStandardNanRep - textStandardZeroRep - textZonedSignStyle | ||
104
| 4 Unsigned decimal Proposed solution: - Allow xs:nonNegativeInteger which enables unsigned unbounded integers to be modelled. The problem to solve is then just for xs:decimal. - Call the new property dfdl:decimalSigned. It only applies to xs:decimal or user defined restrictions thereof. It applies to all physical decimals, as its name implies (not just zoned or packed). |
Regards
|
Alan Powell |
Development - MQSeries, Message Broker, ESB |
IBM Software Group, Application and Integration Middleware Software |
------------------------------------------------------------------------------------------------------------------------------------------- |
IBM |
MP211, Hursley Park |
Hursley, SO21 2JN |
United Kingdom |
Phone: +44-1962-815073 |
e-mail: alan_powell@uk.ibm.com |
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