Property 'occursStopValueKind' has its
origins in the analogous property 'nullValueKind'. They are both
trying to solve the same kind of out-of-band problem.
I would suspect that many users would
be happier considering their array as being terminated by an out-of-band
stop value rather than by some odd looking markup which combines a separator
with a text value. You will notice in your example that you have had to
duplicate the occurs separator in two properties, which immediately says
to me that it's the wrong approach.
Also, having literal and logical stop
values gives us a bit more flexibility. We may decide that stop values
are considered data and give rise to an API event. I think this needs more
discussion, we need to take into account the unparser side.
Regards, Steve
Steve Hanson
WebSphere Message Brokers
Hursley, UK
Internet: smh@uk.ibm.com
Phone (+44)/(0) 1962-815848
"Simon Parker"
<simon.parker@polarlake.com>
Sent by: dfdl-wg-bounces@ogf.org
30/08/2007 12:16
|
To
| <dfdl-wg@ogf.org>
|
cc
|
|
Subject
| Re: [DFDL-WG] V3 of length/occurs simplification
proposal |
|
Hmmm...
I wasn't around for 'occursStopValueKind',
so excuse me if I miss the point.
Here's a question and a tentative
answer I was playing with recently:
What's the difference between
stopValue and terminator?
'terminator' can be used to scan a stream of characters or bits without
parsing elements
'stopValue' can be used to scan a sequence of parsed elements. Its datatype
must be the same as the array element.
If I'm right, then Steve's example
is invalid because "done" is not an integer. To make it valid,
either:
- the stopValue
must be an 'int' such as -1, or
- the out-of-band
value "done" or "|done" must be a terminator for an
enclosing construct as follows.
Change this:
<element name="x" type="int"
maxOccurs="unbounded" dfdl:occursSeparator="|" dfdl:occursKind="stopValue"
dfdl:stopValue="done" dfdl:occursStopValueKind="literal"
dfdl:representation="text"/>
to this:
<sequence dfdl:lengthKind="delimited"
dfdl:terminator="|done" dfdl:applies="hereonly">
<element name="x"
type="int" maxOccurs="unbounded" dfdl:occursSeparator="|"
dfdl:occursKind="endOfData" dfdl:representation="text"/>
</sequence>
If I'm wrong, then what is the
correct answer to the question?
---
If we change the name of the property
'stopValue', then I would find these candidates consistent with similar
concepts elsewhere:
occursTerminator
occursTerminatorValue
terminatorValue
Simon
From: dfdl-wg-bounces@ogf.org [mailto:dfdl-wg-bounces@ogf.org]
On Behalf Of Mike Beckerle
Sent: 29 August 2007 19:52
To: Steve Hanson
Cc: dfdl-wg@ogf.org; dfdl-wg-bounces@ogf.org
Subject: Re: [DFDL-WG] V3 of length/occurs simplification proposal
Seems like occursStopValueKind="literal" only applies to representation="text".
With that caveat, I think I agree we need to be able to say
<element name="x" type="int" maxOccurs="unbounded"
dfdl:occursSeparator="|" dfdl:occursKind="stopValue"
dfdl:stopValue="done" dfdl:occursStopValueKind="literal"
dfdl:representation="text"/>
Then this would be valid 3 occurences for element x.
2|3|4|done
I think we shoudl rename dfdl:stopValue to dfdl:occursStopValue for consistency.
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@us.ibm.com
508-599-7046
Steve Hanson <smh@uk.ibm.com>
08/29/2007 01:32 PM
|
To
| Mike Beckerle/Worcester/IBM@IBMUS
|
cc
| dfdl-wg@ogf.org, dfdl-wg-bounces@ogf.org
|
Subject
| Re: [DFDL-WG] V3 of length/occurs simplification
proposal |
|
Mike - looking at an old level of the spec, we had a occursStopValueKind
property, with enums 'logical', 'literal' and 'missing'. Analogous
to nullvalueKInd property. I'm sure we want to handle 'missing' differently
but the literal v logical distinction is required. How are we proposing
to cover this?
Regards, Steve
Steve Hanson
WebSphere Message Brokers
Hursley, UK
Internet: smh@uk.ibm.com
Phone (+44)/(0) 1962-815848
Mike Beckerle <beckerle@us.ibm.com>
Sent by: dfdl-wg-bounces@ogf.org
29/08/2007 16:29
|
To
| dfdl-wg@ogf.org
|
cc
|
|
Subject
| [DFDL-WG] V3 of length/occurs simplification
proposal |
|
Based on minutes from last week's meeting I've updated to v3 the proposal
for simplifying length/occurs properties.
Changes are marked with comments.
--
dfdl-wg mailing list
dfdl-wg@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
--
dfdl-wg mailing list
dfdl-wg@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