<br><font size=2 face="sans-serif">Hi Dave</font>
<br>
<br><font size=2 face="sans-serif">We should also bear the problem below
in mind when thinking about DFDL Infoset &amp; XDM. &nbsp;XDM assumes that
an element with a concrete type-name has a typed-value conforming to the
type-name, ie, it has been 'validated'. &nbsp;If this is not the case then
the type-name is set to xs:untyped or xs:untypedAtomic (extra types added
to XDM for this purpose). &nbsp;In DFDL Infoset we had been assuming that
the [dataType] would be set to that implied by the DFDL xsd, regardless
of whether validation succeeded or not - though there are issues with this
as explained below. </font>
<br>
<br><font size=2 face="sans-serif">Regards<br>
<br>
Steve Hanson<br>
Programming Model Architect<br>
WebSphere Message Brokers<br>
Hursley, UK<br>
Internet: smh@uk.ibm.com<br>
Phone (+44)/(0) 1962-815848</font>
<br><font size=1 color=#800080 face="sans-serif">----- Forwarded by Steve
Hanson/UK/IBM on 13/05/2009 12:51 -----</font>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Steve Hanson/UK/IBM</b>
</font>
<p><font size=1 face="sans-serif">29/04/2009 15:54</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">Alan Powell, Dave Glick, Mike Beckerle
(Work)</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">Suman Kalia/Toronto/IBM@IBMCA, Tim Kimber/UK/IBM</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Fw: Action 020 completion</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br><font size=2 face="sans-serif">Hi Dave</font>
<br>
<br><font size=2 face="sans-serif">We discussed this on the call and agreed
that the unsigned types are just range restrictions so treating negative
numbers in the data as parse errors instead of validation errors seemed
inconsistent.</font>
<br>
<br><font size=2 face="sans-serif">Various options discussed:</font>
<br>
<br><font size=2 face="sans-serif">1) Remove the unsigned types altogether.</font>
<br><font size=2 face="sans-serif">- Means we'd need an extra property
to describe binary integer representation, as we could no longer infer
the rep from the logical type</font>
<br><font size=2 face="sans-serif">- Loses type information for applications
where the fact that data is unsigned is important.</font>
<br><font size=2 face="sans-serif">- Means DFDL modelers would have to
create their own duplicate restrictions for common C etc data types.</font>
<br>
<br><font size=2 face="sans-serif">2) Change [dataType] to point to the
XML Schema primitive type instead of the XML Schema built-in type.</font>
<br><font size=2 face="sans-serif">- Means that the value and the type
would be xs:decimal which is too general</font>
<br>
<br><font size=2 face="sans-serif">3) Change [dataValue] to say &quot;</font><font size=2 face="Arial">The
value in the value space of <i>the underlying XML Schema primitive type
for</i>the [datatype] member or special value <i>nil&quot;</i></font>
<br><font size=2 face="sans-serif">- Allows the infoset to carry integer
data that is invalid due to range regardless of value.</font>
<br><font size=2 face="sans-serif">- Means that the value would be a decimal
even though the data type was (say) xs:unsignedLong, ie, the datatype and
datavalue are no longer in step unless validated</font>
<br>
<br><font size=2 face="sans-serif">4) Option 2) with the modification that
the primitive type for all integer types was xs:integer and not xs:decimal.</font>
<br>
<br><font size=2 face="sans-serif">5) Option &nbsp;3) with the modification
that the primitive type for all integer types was xs:integer and not xs:decimal.</font>
<br>
<br><font size=2 face="sans-serif">We agreed not to close on this until
you had reported back on your action 032.</font>
<br>
<br><font size=2 face="sans-serif">Regards<br>
<br>
Steve Hanson<br>
Programming Model Architect<br>
WebSphere Message Brokers<br>
Hursley, UK<br>
Internet: smh@uk.ibm.com<br>
Phone (+44)/(0) 1962-815848</font>
<br><font size=1 color=#800080 face="sans-serif">----- Forwarded by Steve
Hanson/UK/IBM on 29/04/2009 15:32 -----</font>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Steve Hanson/UK/IBM</b></font>
<p><font size=1 face="sans-serif">27/04/2009 13:42</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">Alan Powell/UK/IBM</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">dglick@dracorp.com, mbeckerle@oco-inc.com</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Re: Action 020 completion</font><a href=Notes://D06ML070/802563ED00496501/38D46BF5E8F08834852564B500129B2C/6908C2D506233B2D802575A2004DADF9>Link</a></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br><font size=2 face="sans-serif">Thanks Alan</font>
<br>
<br><font size=2 face="sans-serif">I've added correct property names, see
below. But I've omitted floats deliberately for clarity, the logical type
is always signed and physical type is always signed, so there's no issue.</font>
<br>
<br><font size=2 face="sans-serif">However, there is a problem with what
I have stated, as you pointed out on Friday. &nbsp;On parsing I am effectively
validating the input data, but on unparsing I am not assuming the data
has been validated. &nbsp;This is not consistent and needs correcting.</font>
<br>
<br><font size=2 face="sans-serif">But as I looked into this, I realised
we have a problem with how we have described the DFDL infoset. The spec
says &quot;</font><font size=2 face="Arial">There is no requirement for
DFDL-described data to be valid in order to have a DFDL information set.</font><font size=2 face="sans-serif">&quot;,
which is in accordance with our agreed position on validation being optional.
But further on it also says:</font>
<br>
<br><font size=2 face="Arial"><b>&nbsp; &nbsp; &nbsp; &nbsp; [datatype]</b>
String. The name of the XML Schema 1.0 built-in simple type to which the
value corresponds. DFDL supports a subset of these types listed in the
specification at section 4.1.</font>
<br><font size=2 face="Arial"><b>&nbsp; &nbsp; &nbsp; &nbsp; [dataValue]</b>
The value in the value space of the [datatype] member or special value
<i>nil</i><b>.</b></font>
<p><font size=2 face="sans-serif">This says to me that the DFDL parser
must have done enough validation to ascertain that the value matched the
underlying built-in type. For example, I have a user-defined simple type
that adds a max/min range of +100-+200 to an xs:unsignedInt. If the input
data has value 99, the value will be accepted into the infoset, but will
not validate if validation is switched on. If the input data is a packed
decimal with value -1, the value will not be accepted into the infoset.
Given that xs:unsignedInt is itself just a range restriction of xs:integer
(via xs:nonNegativeInteger), this seems a bit arbitrary. </font>
<br>
<br><font size=2 face="sans-serif">Dave - given your action item looking
at DFDL Infoset versus XDM, I'd be interested in your opinion here.</font>
<br>
<br><font size=2 face="sans-serif">Regards<br>
<br>
Steve Hanson<br>
Programming Model Architect<br>
WebSphere Message Brokers<br>
Hursley, UK<br>
Internet: smh@uk.ibm.com<br>
Phone (+44)/(0) 1962-815848</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Alan Powell/UK/IBM</b></font>
<p><font size=1 face="sans-serif">24/04/2009 15:13</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">Steve Hanson/UK/IBM@IBMGB</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">dglick@dracorp.com, mbeckerle@oco-inc.com</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">Re: Action 020 completion</font><a href=Notes://D06ML070/802563ED00496501/38D46BF5E8F08834852564B500129B2C/A546ECDF67B9BF71802575A1003CDF26>Link</a></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br><font size=2 face="sans-serif">Steve</font>
<br>
<br><font size=2 face="sans-serif">Looks OK</font>
<br>
<br><font size=2 face="sans-serif">But can you use the correct property
name eg </font><font size=2 face="Arial">binaryNumberRepresentation</font><font size=2 face="sans-serif">
and for completeness add </font><font size=2 face="Arial">binaryFloatRepresentation
(even though it may be obvious)</font>
<br><font size=2 face="sans-serif"><br>
Alan Powell<br>
<br>
 MP 211, IBM UK Labs, Hursley, &nbsp;Winchester, SO21 2JN, England<br>
 Notes Id: Alan Powell/UK/IBM &nbsp; &nbsp; email: alan_powell@uk.ibm.com
&nbsp;<br>
 Tel: +44 (0)1962 815073 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;Fax: +44 (0)1962 816898<br>
</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">From:</font>
<td><font size=1 face="sans-serif">Steve Hanson/UK/IBM</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font>
<td><font size=1 face="sans-serif">mbeckerle@oco-inc.com, Alan Powell/UK/IBM,
dglick@dracorp.com</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font>
<td><font size=1 face="sans-serif">23/04/2009 12:50</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font>
<td><font size=1 face="sans-serif">Action 020 completion</font></table>
<br>
<hr noshade>
<br>
<br><font size=2 face="sans-serif">Here's my proposal for the behaviour
when a logical type is signed and the physical data has no sign (either
because it is not capable of carrying a sign, or it carries an unsigned
indicator), and when the logical type is unsigned and the physical data
has a sign. &nbsp;The principle is to be flexible and only to give errors
when things are clearly mis-matched</font>
<br>
<br>
<table border width=100%>
<tr valign=top>
<td width=16%><font size=2 face="sans-serif"><b>Logical type</b></font>
<td width=16%><font size=2 face="sans-serif"><b>textNumberRepresentation=</b></font>
<br><font size=2 face="sans-serif"><b>text (4)</b></font>
<td width=16%><font size=2 face="sans-serif"><b>textNumberRepresentation=</b></font>
<br><font size=2 face="sans-serif"><b>zoned (2) (6)</b></font>
<td width=16%><font size=2 face="sans-serif"><b>binaryNumberRepresentation=</b></font>
<br><font size=2 face="sans-serif"><b>packed (5)</b></font>
<td width=16%><font size=2 face="sans-serif"><b>binaryNumberRepresentation=</b></font>
<br><font size=2 face="sans-serif"><b>bcd (1)</b></font>
<td width=16%><font size=2 face="sans-serif"><b>binaryNumberRepresentation=</b></font>
<br><font size=2 face="sans-serif"><b>binary</b></font>
<tr valign=top>
<td><font size=2 face="sans-serif">Signed (decimal, integer)</font>
<td><font size=2 face="sans-serif"><i>Parse</i>: OK </font>
<br><font size=2 face="sans-serif"><i>Unparse</i>: OK</font>
<td><font size=2 face="sans-serif"><i>Parse</i>: Unsigned data =&gt; +ve</font>
<br><font size=2 face="sans-serif"><i>Unparse</i>: Data always punched
with sign</font>
<td><font size=2 face="sans-serif"><i>Parse</i>: Unsigned data =&gt; +ve</font>
<br><font size=2 face="sans-serif"><i>Unparse</i>: Data signed as per +ve/-ve
nibble specifiers, unsigned nibble specifier never used</font>
<td><font size=2 face="sans-serif"><i>Parse</i>: Data always +ve</font>
<br><font size=2 face="sans-serif"><i>Unparse</i>: -ve data is error </font>
<td bgcolor=#c0c0c0><font size=2 face="sans-serif">N/A</font>
<tr valign=top>
<td><font size=2 face="sans-serif">Signed (long, int, short, byte)</font>
<td><font size=2 face="sans-serif">Ditto</font>
<td><font size=2 face="sans-serif">Ditto</font>
<td><font size=2 face="sans-serif">Ditto</font>
<td><font size=2 face="sans-serif">Ditto</font>
<td><font size=2 face="sans-serif"><i>Parse</i>: Data assumed 2's complement
binary</font>
<br><font size=2 face="sans-serif"><i>Unparse</i>: Data output as 2's complement
binary</font>
<tr valign=top>
<td><font size=2 face="sans-serif">Unsigned (unsigned long, unsigned int,
unsigned short, unsigned byte) </font>
<br><font size=2 face="sans-serif"><b>(3)</b></font>
<td><font size=2 face="sans-serif"><i>Parse</i>: -ve data is error</font>
<br><font size=2 face="sans-serif"><i>Unparse</i>: -ve data is error</font>
<td><font size=2 face="sans-serif"><i>Parse</i>: +ve data =&gt; OK, -ve
data is error</font>
<br><font size=2 face="sans-serif"><i>Unparse</i>: Sign never punched,
-ve data is error</font>
<td><font size=2 face="sans-serif"><i>Parse</i>: +ve data =&gt; OK, -ve
data is error</font>
<br><font size=2 face="sans-serif"><i>Unparse</i>: Unsigned nibble specifier
always used, -ve data is error</font>
<td><font size=2 face="sans-serif"><i>Parse</i>: OK</font>
<br><font size=2 face="sans-serif"><i>Unparse</i>: -ve data is error</font>
<td><font size=2 face="sans-serif"><i>Parse</i>: Data assumed unsigned
binary</font>
<br><font size=2 face="sans-serif"><i>Unparse</i>: Data output as unsigned
binary</font></table>
<br>
<br><font size=2 face="sans-serif"><b>(1)</b> &nbsp;Can not physically
carry a sign</font>
<br><font size=2 face="sans-serif"><b>(2)</b> Some systems output unsigned
for +ve, but accept +ve on input (eg, IBM iSeries)</font>
<br><font size=2 face="sans-serif"><b>(3)</b> Assumes that on unparsing,
the infoset could still present a -ve value</font>
<br><font size=2 face="sans-serif"><b>(4)</b> The -ve sign is indicated
by numberPattern property</font>
<br><font size=2 face="sans-serif"><b>(5)</b> The exact sign nibbles are
given by the packedDecimalSignCodes property</font>
<br><font size=2 face="sans-serif"><b>(6)</b> The punching style to use
is given by the numberZonedSignStyle property</font>
<br>
<br><font size=2 face="sans-serif">Mail back any comments before next week's
call.</font>
<br>
<br><font size=2 face="sans-serif">Regards<br>
<br>
Steve Hanson<br>
Programming Model Architect<br>
WebSphere Message Brokers<br>
Hursley, UK<br>
Internet: smh@uk.ibm.com<br>
Phone (+44)/(0) 1962-815848</font>
<br><font size=1 color=#800080 face="sans-serif">----- Forwarded by Steve
Hanson/UK/IBM on 23/04/2009 12:04 -----</font>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Steve Hanson/UK/IBM</b>
</font>
<p><font size=1 face="sans-serif">18/02/2009 16:55</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">Mike Beckerle (Work)</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">Alan Powell/UK/IBM, dglick@dracorp.com</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">DFDL: Packed &amp; zoned decimals -
more thoughts (was Action 020)</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br><font size=2 face="sans-serif">Hi Mike</font>
<br>
<br><font size=2 face="sans-serif">While we are on the subject of how to
handle signs, the spec does not fully define what happens for a number
if the logical type is unsigned. We need to say what is expected in the
physical data and what happens if the data contains a sign. For example,
we say that for an unsigned integer, if the rep is binary then we treat
the data as 'unsigned binary' and not twos complement. And we say that
BCD is only allowed for unsigned logical types. That is good. But we don't
do the same for packed, text, zoned. I think we need to say that no explicit
sign is expected in the data (eg, packed should have only F or 0, no A,B,C,D)
and if it does:</font>
<br>
<br><font size=2 face="sans-serif">Alternatives:</font>
<br><font size=2 face="sans-serif">i) Error </font>
<br><font size=2 face="sans-serif">ii) Positive sign discarded, negative
sign gives error</font>
<br><font size=2 face="sans-serif">iii) Sign discarded</font>
<br><font size=2 face="sans-serif">iv) As per i) if 'strict' set, as per
ii) &nbsp;if 'lax' set</font>
<br><font size=2 face="sans-serif">v) As per i) if 'strict' set, as per
iii) &nbsp;if 'lax' set</font>
<br>
<br><font size=2 face="sans-serif">Personally I vote for i)</font>
<br>
<br><font size=2 face="sans-serif">Regards<br>
<br>
Steve Hanson<br>
Programming Model Architect<br>
WebSphere Message Brokers<br>
Hursley, UK<br>
Internet: smh@uk.ibm.com<br>
Phone (+44)/(0) 1962-815848</font>
<br><font size=1 color=#800080 face="sans-serif">----- Forwarded by Steve
Hanson/UK/IBM on 18/02/2009 16:41 -----</font>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>Steve Hanson/UK/IBM</b></font>
<p><font size=1 face="sans-serif">12/02/2009 13:18</font>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">&lt;mbeckerle.dfdl@gmail.com&gt;</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">dfdl-wg@ogf.org</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">RE: [DFDL-WG] Fw: DFDL OGF WG call -
Action 020</font><a href=Notes://D06ML070/802563ED00496501/38D46BF5E8F08834852564B500129B2C/167BE729E9942E578025755B0046C689>Link</a></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br><font size=2 face="sans-serif">Hi Mike</font>
<br>
<br><font size=2 face="sans-serif">I think it's a simplification too far.
Many people especially those with a mainframe or COBOL background know
what a zoned decimal is. The wikipedia entry for binary coded decimal explicitly
covers the BCD, packed &amp; zoned 'variants'. MRM and WTX both explicitly
support zoned too. And it's easier to say that the 'decimalSignStyle' property
applies to zoned decimals than to say it applies to any patterns that happen
to have a P in them. On balance I would keep zoned as a representation.</font>
<br>
<br><font size=2 face="sans-serif">So we need to decide whether zoned is
only allowed for a signed decimal. There's no harm in allowing it for unsigned,
just some redundancy, and it makes validation of the pattern against the
rep easier (if something is zoned it can only have a subset of pattern
chars).</font>
<br>
<br><font size=2 face="sans-serif">Btw we don't need leading overpunched
sign, only trailing - see my case for this below.</font>
<br>
<br><font size=2 face="sans-serif">Regards<br>
<br>
Steve Hanson<br>
Programming Model Architect<br>
WebSphere Message Brokers<br>
Hursley, UK<br>
Internet: smh@uk.ibm.com<br>
Phone (+44)/(0) 1962-815848</font>
<br>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=40%><font size=1 face="sans-serif"><b>&quot;Mike Beckerle&quot;
&lt;mbeckerle.dfdl@gmail.com&gt;</b> </font>
<p><font size=1 face="sans-serif">12/02/2009 12:51</font>
<table border>
<tr valign=top>
<td bgcolor=white>
<div align=center><font size=1 face="sans-serif">Please respond to<br>
&lt;mbeckerle.dfdl@gmail.com&gt;</font></div></table>
<br>
<td width=59%>
<table width=100%>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td><font size=1 face="sans-serif">Steve Hanson/UK/IBM@IBMGB, &lt;dfdl-wg@ogf.org&gt;</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">RE: [DFDL-WG] Fw: DFDL OGF WG call -
Action 020</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2 color=blue face="Arial">This does suggest another simplification.</font>
<br><font size=3>&nbsp;</font>
<br><font size=2 color=blue face="Arial">Zoned is so close to text....Suppose
we scrap the concept of &quot;zoned&quot; altogether, and just add a character
to our number pattern language to allow one to specify a overpunched sign
digit. E.g., </font>
<br><font size=3>&nbsp;</font>
<br><font size=2 color=blue face="Arial">&quot;+00000&quot; is text</font>
<br><font size=2 color=blue face="Arial">&quot;P0000&quot; same with overpunched
leading sign. </font>
<br><font size=2 color=blue face="Arial">&quot;00000+&quot; text</font>
<br><font size=2 color=blue face="Arial">&quot;0000P&quot; same with overpunched
trailing sign</font>
<br><font size=3>&nbsp;</font>
<br><font size=2 color=blue face="Arial">The decimal point would normally
be implied in these, </font><font size=3>&nbsp;</font><font size=2 color=blue face="Arial">(I
still like having a cobol-style &quot;V&quot; to position this instead
of separate properties stating the position - one of the few good features
about cobol is the number patterns. I still think we could quite easily
pre-process the &quot;V&quot; out of these strings and then hand the rest
through to an ICU library as an implementation - however the &quot;P&quot;
probably does need to be a change in that library.) </font>
<br><font size=3>&nbsp;</font>
<p><font size=2 color=#000080 face="Arial"><b>Mike Beckerle | OGF DFDL
WG Co-Chair | CTO | Oco, Inc.</b></font><font size=2 color=#808080 face="Arial"><br>
Tel: &nbsp;781-810-2100 &nbsp;| 504 Totten Pond Road, Waltham MA 02451
|</font><font size=3> </font><a href=mailto:mbeckerle.dfdl@gmail.com><font size=2 color=#808080><u>mbeckerle.dfdl@gmail.com</u></font></a><font size=2 color=#808080 face="Arial">
</font>
<p><font size=3>&nbsp;</font>
<br>
<br>
<hr><font size=2 face="Tahoma"><b>From:</b> dfdl-wg-bounces@ogf.org [mailto:dfdl-wg-bounces@ogf.org]
<b>On Behalf Of </b>Steve Hanson<b><br>
Sent:</b> Wednesday, February 11, 2009 1:34 PM<b><br>
To:</b> dfdl-wg@ogf.org<b><br>
Subject:</b> [DFDL-WG] Fw: DFDL OGF WG call - Action 020</font><font size=3><br>
</font>
<br><font size=2 face="sans-serif"><br>
It was noted on the call this week that there is an alternative to my zoned
decimal overpunching proposal i) below.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
I said:</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
- If it is an unsigned type then DFDL expects the rightmost byte to have
a zone nibble when parsing, and outputs a zone nibble when unparsing. <br>
- If it is a signed type then DFDL expects it to have a sign nibble when
parsing, and outputs a sign nibble when unparsing. </font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
But my unsigned type behaviour could be achieved by specifying a rep of
text instead of zoned. &nbsp;If that is the case, the alternative is to
only allow zoned rep for signed decimal logical types.</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
Thoughts?</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
Regards<br>
<br>
Steve Hanson<br>
Programming Model Architect<br>
WebSphere Message Brokers<br>
Hursley, UK<br>
Internet: smh@uk.ibm.com<br>
Phone (+44)/(0) 1962-815848</font><font size=3> </font><font size=1 color=#800080 face="sans-serif"><br>
----- Forwarded by Steve Hanson/UK/IBM on 05/02/2009 10:17 -----</font><font size=3>
</font>
<table width=100%>
<tr valign=top>
<td width=38%><font size=1 face="sans-serif"><b>Steve Hanson/UK/IBM</b></font><font size=3>
</font>
<p><font size=1 face="sans-serif">28/01/2009 13:54</font><font size=3>
</font>
<td width=61%>
<br>
<table width=100%>
<tr valign=top>
<td width=17%>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td width=82%><font size=1 face="sans-serif">DFDL Working Group</font><font size=3>
</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">DFDL OGF WG call - Action 020</font><a href=Notes://d06ml070/802563ED00496501/38D46BF5E8F08834852564B500129B2C/13EF573EAA1334DC80257547004A7D86><font size=3 color=blue><u>Link</u></font></a></table>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=50%>
<td width=50%></table>
<br></table>
<br><font size=3><br>
</font><font size=2 face="sans-serif"><b><br>
Action 020:</b></font><font size=3> </font>
<table border=4 width=100%>
<tr valign=top>
<td width=5%>
<div align=center><font size=2 face="sans-serif"><b>020</b></font></div>
<td width=94%><font size=2 face="sans-serif">SH: Resolve </font><font size=2 face="Arial">packedDecimalSignCodes</font><font size=2 face="sans-serif"><b>
</b>behaviour depends on NumberCheckPolicy <br>
22/10: No progress</font><font size=3> </font><font size=2 face="sans-serif"><br>
10/12: added how to decide to overpunch and sign position</font><font size=3>
</font></table>
<br><font size=3><br>
</font><font size=2 face="sans-serif"><u><br>
a) Resolve </u></font><font size=2 face="Arial"><u>packedDecimalSignCodes</u></font><font size=2 face="sans-serif"><b><u>
</u></b><u>behaviour depends on NumberCheckPolicy</u></font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
Add new property to section 15.4</font><font size=2 face="Arial"> Properties
Specific to Number with Binary representation</font><font size=2 face="sans-serif">.</font><font size=3>
</font>
<table border=4 width=100%>
<tr valign=top>
<td width=10%><font size=1 face="Arial">binaryNumberCheckPolicy</font><font size=3>
</font>
<td width=89%><font size=1 face="Arial">Enum</font><font size=3> </font>
<p><font size=1 face="Arial">Values are &#8220;strict&#8221; and &#8220;lax&#8221;. </font>
<p><font size=1 face="Arial">Indicates how lenient to be when parsing binary
numbers. </font>
<p><font size=1 face="Arial">If &#8216;lax&#8221; then the parser tolerates all valid
alternatives where such alternatives exist. Specifically, for binaryNumberRepresentation
= 'packed' the sign nibble for positive, negative, unsigned and zero is
allowed to be any of the valid respective values.</font><font size=3> </font>
<p><font size=1 face="Arial">On unparsing, the specified value is always
used. </font></table>
<p><font size=3><br>
</font><font size=2 face="sans-serif"><br>
Also suggest changing some of the other property names in 15.4:</font><font size=3>
</font><font size=2 face="sans-serif"><br>
&quot;decimalVirtualPoint&quot; -&gt; &quot;binaryDecimalVirtualPoint&quot;</font><font size=3>
</font><font size=2 face="sans-serif"><br>
&quot;packedDecimalSignCodes&quot; -&gt; &quot;binaryPackedSignCodes&quot;</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
And changing binaryNumberRepresentation<b><i> </i></b>enumeration:</font><font size=3>
</font><font size=2 face="sans-serif"><br>
&quot;BCD&quot; -&gt; &quot;bcd&quot;</font><font size=3> <br>
</font><font size=2 face="sans-serif"><u><br>
b) Zoned decimals: How to decide to overpunch and sign position</u></font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
Spec assumes that overpunching of the rightmost character always takes
place. IBM architecture allows no overpunching (ie, Fx instead of Cx/Dx)
- this is supported by IBM MRM &amp; WTX parsers. Additionally IBM MRM
parser allows separate sign byte, and sign byte on left. Let's deal with
these separately:</font><font size=3> </font><font size=2 face="sans-serif"><i><br>
i) No overpunching.</i><b> </b><br>
The IBM architecture allows the rightmost byte to have a zone (Fx) or a
sign (Cx/Dx) as the left nibble. I don't see why we can't base what to
expect when parsing, and output when unparsing, on the logical xsd type.
<br>
- If it is an unsigned type then DFDL expects the rightmost byte to have
a zone nibble when parsing, and outputs a zone nibble when unparsing. <br>
- If it is a signed type then DFDL expects it to have a sign nibble when
parsing, and outputs a sign nibble when unparsing. <br>
For analogy with DFDL packed decimals, it seems at first glance that we
should also extend the numberCheckPolicy 'lax' setting to treat a zone
nibble as a +ve sign nibble for a signed type. However, IBM iSeries <u>always</u>
outputs Fx to mean +ve but accepts both Fx &amp; Cx on input. It is perhaps
better therefore that DFDL always tolerates Fx when parsing a signed zoned
decimal, otherwise iSeries users would always have to set numberCheckPolicy
to 'lax', which might have other implications in the future.</font><font size=3>
</font><font size=2 face="sans-serif"><i><br>
ii) Separate sign byte.</i></font><font size=3> </font><font size=2 face="sans-serif"><br>
I don't believe the IBM architecture allows this. I don't think DFDL needs
to support it. MRM has this, but I think it's because early on MRM did
not explicitly support text decimals as such, just COBOL variations, and
it was easier just to call them all zoned. <i><br>
iii) Sign byte on left.</i></font><font size=3> </font><font size=2 face="sans-serif"><br>
I don't believe the IBM architecture allows this. I don't think DFDL needs
to support it.</font><font size=3> </font><font size=2 face="sans-serif">&nbsp;MRM
has this, but for the same reason as ii) </font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
Conclusion: No new DFDL properties needed, but words need adding to explain
zoned parse/unparse behaviour better.</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
Also suggest changing property names:</font><font size=3> </font><font size=2 face="sans-serif"><br>
&quot;zonedDecimalSignStyle&quot; -&gt; &quot;numberZonedSignStyle&quot;</font><font size=3>
</font><font size=2 face="sans-serif"><br>
&quot;zeroNumberRep&quot; -&gt; &quot;numberZeroRep&quot;</font><font size=3>
<br>
</font><font size=2 face="sans-serif"><br>
Should also make clear that any explicit negative pattern in numberPattern
will be ignored if the xsd type is unsigned. (We could make this an error
but it precludes creation of a textNumberFormat that works with both signed
and unsigned types, plus pattern &nbsp;&quot;##0.0&quot; implictly is equivalent
to &quot;##0.0;(##0.0)&quot; ).</font><font size=3> <br>
</font><font size=2 face="sans-serif"><br>
Regards<br>
<br>
Steve Hanson<br>
Programming Model Architect<br>
WebSphere Message Brokers<br>
Hursley, UK<br>
Internet: smh@uk.ibm.com<br>
Phone (+44)/(0) 1962-815848</font><font size=3> <br>
<br>
</font>
<table width=100%>
<tr valign=top>
<td width=33%><font size=1 face="sans-serif"><b>Alan Powell/UK/IBM@IBMGB</b>
<br>
Sent by: dfdl-wg-bounces@ogf.org</font><font size=3> </font>
<p><font size=1 face="sans-serif">23/01/2009 13:36</font><font size=3>
</font>
<td width=66%>
<br>
<table width=100%>
<tr valign=top>
<td width=11%>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td width=88%><font size=1 face="sans-serif">dfdl-wg@ogf.org</font><font size=3>
</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">Subject</font></div>
<td><font size=1 face="sans-serif">[DFDL-WG] DFDL: Minutes from OGF WG
call, 21 January 2009</font></table>
<br>
<br>
<table width=100%>
<tr valign=top>
<td width=50%>
<td width=50%></table>
<br></table>
<br><font size=3><br>
<br>
</font><font size=2 face="sans-serif"><b><br>
<br>
Open Grid Forum: Data Format Description Language Working Group<br>
<br>
Weekly Working Group Conference Call<br>
14:00 GMT, 21 January 2009<br>
<br>
<br>
Attendees</b></font><font size=3> </font><font size=2 face="sans-serif"><br>
Alan Powell (IBM)</font><font size=3> </font><font size=2 face="sans-serif"><br>
Mike Beckerle(Oco)</font><font size=3> </font><font size=2 face="sans-serif"><b><br>
<br>
Apologies</b></font><font size=3> </font><font size=2 face="sans-serif"><br>
Steve Hanson (IBM)</font><font size=3> <br>
</font><font size=2 face="sans-serif"><b><br>
<br>
1. XSD 1.1</b></font><font size=3> </font><font size=2 face="sans-serif"><br>
Deferred to next call</font><font size=3> </font><font size=2 face="sans-serif"><b><br>
<br>
2. Calendar formats</b></font><font size=3> </font><font size=2 face="sans-serif"><br>
Discussed updated (v4) supplement emailed by AP</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
Agreed millisec/secSinceEpoc cannot be implied by length of logical data
so need seperate enumerations. Observed that these options were really
combination of 3 properties &nbsp;binary, length and sec/millisec. &nbsp;Suggested
renaming to binarySeconds and binaryMilliseconds</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
Packed calendars: decided that need to be able to specify at least the
</font><font size=2 face="Arial">packedDecimalSignCodes</font><font size=2 face="sans-serif">
property rather than assuming a default so reference will be added to calendar
description</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
Locale needs to be specified &nbsp;for numberformats and calendarFormats
(didn't identify any other areas) as it modifies the behaviour of ICU.
Decided to add &nbsp;locale to numberFormat and CalendarFormat</font><font size=3>
</font><font size=2 face="sans-serif"><b><br>
<br>
3. Escape Schemes</b></font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
Agreed need for multiple escape delimiter pairs but not nested. <br>
Need an escape for escape character even though in most cases this will
be the same character, eg /n //, There are some formats that have a different
escape, eg /n &amp;/. Only need single escape characters and one level
of escape characters. <br>
Discussed how to deal with comments of the form &nbsp; /* &nbsp;comment
*/ &nbsp;where the escape delimiters &nbsp;are also the initiator and terminator
of the field. Semantic needed is 'only look for field terminator not any
parent terminator or any other syntax elements'. May fall out naturally
from the speculative parsing rules. Need further discussion.</font><font size=3>
</font><font size=2 face="sans-serif"><b><br>
<br>
4. AOB</b></font><font size=3> </font><font size=2 face="sans-serif"><br>
Next call 28 January 14:00</font><font size=3> </font><font size=2 face="sans-serif"><b><br>
<br>
Meeting closed, 15:00 GMT</b></font><font size=3> <br>
</font>
<p><font size=3 face="sans-serif"><b>Actions raised at this meeting</b></font><font size=3>
</font>
<table border=4 width=100%>
<tr valign=top>
<td width=36%>
<div align=center><font size=2 face="sans-serif"><b>No</b></font></div>
<td width=63%><font size=2 face="sans-serif"><b>Action </b></font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>031</b></font></div>
<td>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td></table>
<p><font size=3 face="sans-serif"><b>Current Actions:</b></font><font size=3>
</font>
<table border=4 width=100%>
<tr valign=top>
<td width=4%>
<div align=center><font size=2 face="sans-serif"><b>No</b></font></div>
<td width=95%><font size=2 face="sans-serif"><b>Action </b></font>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>012</b></font></div>
<td><font size=2 face="sans-serif">AP/SH: Update decimalCalendarScheme</font><font size=3>
</font><font size=2 face="sans-serif"><br>
10/9: Not allocated yet</font><font size=3> </font><font size=2 face="sans-serif"><br>
17/9: No update</font><font size=3> </font><font size=2 face="sans-serif"><br>
24/9: Add calendar binary formats to actions</font><font size=3> </font><font size=2 face="sans-serif"><br>
22/10: No progress</font><font size=3> </font><font size=2 face="sans-serif"><br>
16/1: proposal distributed and discussed. Will be redistributed</font><font size=3>
</font><font size=2 face="sans-serif"><br>
21/1: add locale, </font>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>020</b></font></div>
<td><font size=2 face="sans-serif">SH: Resolve </font><font size=2 face="Arial">packedDecimalSignCodes</font><font size=2 face="sans-serif"><b>
</b>behaviour depends on NumberCheckPolicy <br>
22/10: No progress</font><font size=3> </font><font size=2 face="sans-serif"><br>
10/12: added how to decide to overpunch and sign position</font><font size=3>
</font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>023</b></font></div>
<td><font size=2 face="sans-serif">MB: Review Schema 1.1</font><font size=3>
</font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>024</b></font></div>
<td><font size=2 face="Arial">String XML type</font><font size=3> </font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>025</b></font></div>
<td><font size=2 face="Arial">Escape schemes <br>
21/1: discussed requirements</font><font size=3> </font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>026</b></font></div>
<td><font size=2 face="Arial">SH: Envelopes and Payloads</font><font size=3>
</font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>027</b></font></div>
<td><font size=2 face="Arial">Property precedence tables</font><font size=3>
</font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>028</b></font></div>
<td><font size=2 face="Arial">Variable markup</font><font size=3> </font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>029</b></font></div>
<td><font size=2 face="Arial">&nbsp;valueCalc (output length calculation)</font><font size=3>
</font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>030</b></font></div>
<td><font size=2 face="Arial">AP: confirm with WTX that can drop duration</font><font size=3>
</font><font size=2 face="Arial"><br>
21/6: WTX confirm that they do not have a duration type so do not need
it in dfdl. Will drop from spec. Closed</font><font size=3> </font>
<tr valign=top>
<td>
<td></table>
<p><font size=3 face="sans-serif"><b>Closed actions:</b></font><font size=3>
</font>
<table border=4 width=100%>
<tr valign=top>
<td width=4%>
<div align=center><font size=2 face="sans-serif"><b>030</b></font></div>
<td width=95%><font size=2 face="Arial">AP: confirm with WTX that can drop
duration</font><font size=3> </font><font size=2 face="Arial"><br>
21/6: WTX confirm that they do not have a duration type so do not need
it in dfdl. Will drop from spec. Closed</font><font size=3> </font>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td>
<tr valign=top>
<td>
<td></table>
<p><font size=3 face="sans-serif"><b>034 Work items:</b></font><font size=3>
</font>
<table border=4 width=100%>
<tr valign=top>
<td width=3%>
<div align=center><font size=2 face="sans-serif"><b>No</b></font></div>
<td width=78%><font size=2 face="sans-serif"><b>Item</b></font><font size=3>
</font>
<td width=17%>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>001</b></font></div>
<td><font size=2 face="Arial">String XML type </font><font size=2 color=blue face="Arial">(Ian
P)</font><font size=2 face="Arial"> - </font><font size=2 color=red face="Arial">Apr
30, 2008</font><font size=3> </font>
<td>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>002</b></font></div>
<td><font size=2 face="Arial">Escape schemes </font><font size=2 color=blue face="Arial">(Ian
P)</font><font size=2 face="Arial"> - </font><font size=2 color=red face="Arial">Apr
30, 2008</font><font size=3> </font>
<td>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>003</b></font></div>
<td><font size=2 face="Arial">Variables - </font><font size=2 color=red face="Arial">??,
2008</font><font size=2 color=blue face="Courier New"> </font><font size=2 color=blue face="Arial">(Mike)</font><font size=3>
</font>
<td>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>005</b></font></div>
<td><font size=2 face="Arial">Improvements on property descriptions - </font><font size=2 color=red face="Arial">??,
2008</font><font size=2 color=blue face="Arial"> (All - split TBD)</font><font size=3>
</font>
<td>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>006</b></font></div>
<td><font size=2 face="Arial">Envelopes and Payloads </font><font size=2 color=blue face="Arial">(Steve)</font><font size=2 face="Arial">
- </font><font size=2 color=red face="Arial">Apr 30, 2008</font><font size=3>
</font>
<td>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>007</b></font></div>
<td><font size=2 face="Arial">(from draft 32) valueCalc </font><font size=2 color=blue face="Arial">(Mike)</font><font size=2 face="Arial">
- </font><font size=2 color=red face="Arial">??, 2008</font><font size=3>
<b>&nbsp;</b> </font>
<td><font size=3><b>mostly</b> <b><br>
complete</b> </font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>008</b></font></div>
<td><font size=2 face="Arial">(from draft 32) Property precedence for writing
</font><font size=2 color=blue face="Arial">(Steve)</font><font size=2 face="Arial">
- </font>
<td><font size=3><b>under review</b> </font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>009</b></font></div>
<td><font size=2 face="Arial">(from draft 32) Variable markup </font><font size=2 color=blue face="Arial">(Steve)</font><font size=2 face="Arial">
- </font><font size=2 color=red face="Arial">Mar 31, 2008</font><font size=3>
<b>&nbsp;</b> </font>
<td><font size=3><b>proposal needs writing up</b> </font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>010</b></font></div>
<td><font size=2 face="Arial">(from draft 32) Assertions, discriminators
and choice, including discussion of timing option </font><font size=2 color=blue face="Arial">(Suman)</font><font size=2 face="Arial">
- </font><font size=2 color=red face="Arial">Mar 31, 2008</font><font size=3>
<b>* in progress *</b> </font>
<td>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>011</b></font></div>
<td><font size=2 face="Arial">(from draft 32) How speculative parsing works
(combining choice and variable-occurence - currently these are separate)
</font><font size=2 color=red face="Arial">??, 2008</font><font size=2 color=blue face="Arial">
(IBM)</font><font size=3> </font>
<td><font size=3><b>&nbsp;in progress </b></font>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>012</b></font></div>
<td><font size=2 face="Arial">(from draft 32) Reordering the properties
discussion: move representation earlier, improve flow of topics </font><font size=2 color=red face="Arial">??,
2008</font><font size=2 face="Arial"> </font><font size=2 color=blue face="Arial">(Alan)
</font><font size=3><b>* not started *</b> </font>
<td>
<tr valign=top>
<td>
<div align=center><font size=2 face="sans-serif"><b>025</b></font></div>
<td><font size=2 face="Arial">Augmented infoset and unparsing </font><font size=2 color=blue face="Arial">(Alan)
&nbsp;</font><font size=3> </font>
<td><font size=2 face="sans-serif">added but needs work</font></table>
<p><font size=2 face="sans-serif">complete - specification updated</font><font size=3>
</font>
<p><font size=2 face="sans-serif"><br>
<br>
Alan Powell<br>
<br>
MP 211, IBM UK Labs, Hursley, &nbsp;Winchester, SO21 2JN, England<br>
Notes Id: Alan Powell/UK/IBM &nbsp; &nbsp; email: alan_powell@uk.ibm.com
&nbsp;<br>
Tel: +44 (0)1962 815073 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;
&nbsp; &nbsp;Fax: +44 (0)1962 816898</font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
</font><font size=3><br>
<br>
</font>
<hr>
<p><font size=2 face="sans-serif"><i>Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU</i></font><font size=3> </font>
<p><font size=3><br>
<br>
</font><font size=2 face="sans-serif"><br>
</font><tt><font size=2><br>
--<br>
 dfdl-wg mailing list<br>
 dfdl-wg@ogf.org<br>
 http://www.ogf.org/mailman/listinfo/dfdl-wg</font></tt><font size=3> </font><font size=2 face="sans-serif"><br>
</font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
</font><font size=3><br>
</font>
<hr><font size=2 face="sans-serif"><i><br>
</i></font>
<p><font size=2 face="sans-serif"><i>Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU</i></font><font size=3> </font>
<p><font size=2 face="sans-serif"><br>
</font><font size=3><br>
<br>
</font><font size=2 face="sans-serif"><br>
<br>
</font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
</font><font size=3><br>
</font>
<hr><font size=2 face="sans-serif"><i><br>
</i></font>
<p><font size=2 face="sans-serif"><i>Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU</i></font><font size=3> </font>
<p><font size=2 face="sans-serif"><br>
</font><font size=3><br>
<br>
</font><font size=2 face="sans-serif"><br>
</font>
<br><font size=2 face="sans-serif"><br>
</font>
<br><font size=2 face="sans-serif"><br>
</font>
<hr><font size=2 face="sans-serif"><br>
<i><br>
</i></font>
<p><font size=2 face="sans-serif"><i>Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU</i></font>
<p><font size=2 face="sans-serif"><br>
<br>
</font>
<br>
<br><font size=2 face="sans-serif"><br>
<br>
</font>
<br><font size=2 face="sans-serif"><br>
</font>
<hr><font size=2 face="sans-serif"><br>
<i><br>
</i></font>
<p><font size=2 face="sans-serif"><i>Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU</i></font>
<p><font size=2 face="sans-serif"><br>
<br>
</font>
<br>
<br><font size=2 face="sans-serif"><br>
</font>
<br>
<br>
<br><font size=2 face="sans-serif"><br>
</font>
<br><font size=2 face="sans-serif"><br>
</font>
<hr><font size=2 face="sans-serif"><br>
<i><br>
</i></font>
<p><font size=2 face="sans-serif"><i>Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU</i></font>
<p><font size=2 face="sans-serif"><br>
<br>
</font>
<br>
<br><font size=2 face="sans-serif"><br>
<br>
</font>
<br><font size=2 face="sans-serif"><br>
</font>
<hr><font size=2 face="sans-serif"><br>
<i><br>
</i></font>
<p><font size=2 face="sans-serif"><i>Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU</i></font>
<p><font size=2 face="sans-serif"><br>
<br>
</font>
<br>
<br><font size=2 face="sans-serif"><br>
<br>
</font>
<br><font size=2 face="sans-serif"><br>
</font>
<hr><font size=2 face="sans-serif"><br>
<i><br>
</i></font>
<p><font size=2 face="sans-serif"><i>Unless stated otherwise above:<br>
IBM United Kingdom Limited - Registered in England and Wales with number
741598. <br>
Registered office: PO Box 41, North Harbour, Portsmouth, Hampshire PO6
3AU</i></font>
<p><font size=2 face="sans-serif"><br>
<br>
</font>
<br>
<br><font size=2 face="sans-serif"><br>
</font>