<br><font size=2 face="sans-serif">That was what I was originally going
to propose (more correctly any annotations on members of the union are
ignored) but it would mean the scoping rules for simple types would be
different when unions are involved. &nbsp;I am ok with that if others are.</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>Suman Kalia &lt;kalia@ca.ibm.com&gt;</b>
</font>
<p><font size=1 face="sans-serif">09/03/2009 13:45</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">mbeckerle.dfdl@gmail.com</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, dfdl-wg-bounces@ogf.org,
Steve Hanson/UK/IBM@IBMGB</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] Numbers with multiple
ranges</font></table>
<br>
<table>
<tr valign=top>
<td>
<td></table>
<br></table>
<br>
<br>
<br><font size=2 face="sans-serif"><br>
Mike &nbsp;- I see your point.. &nbsp;In this case, how about allowing
DFDL annotations only on the union and no DFDL annotations on the members
of the union.</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
Suman Kalia<br>
IBM Toronto Lab<br>
WMB Toolkit Architect and Development Lead<br>
WebSphere Business Integration Application Connectivity Tools <br>
</font><font size=3 color=blue><u><br>
</u></font><a href=http://www.ibm.com/developerworks/websphere/zones/businessintegration/wmb.html><font size=2 color=blue face="sans-serif"><u>http://www.ibm.com/developerworks/websphere/zones/businessintegration/wmb.html</u></font></a><font size=2 face="sans-serif"><br>
<br>
Tel : 905-413-3923 &nbsp;T/L &nbsp;969-3923<br>
Fax : 905-413-4850 T/L &nbsp;969-4850<br>
Internet ID : kalia@ca.ibm.com</font><font size=3> <br>
<br>
</font>
<table width=100%>
<tr valign=top>
<td width=16%><font size=1 color=#5f5f5f face="sans-serif">From:</font><font size=3>
</font>
<td width=83%><font size=1 face="sans-serif">&quot;Mike Beckerle&quot;
&lt;mbeckerle.dfdl@gmail.com&gt;</font><font size=3> </font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">To:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">&quot;'Steve Hanson'&quot; &lt;smh@uk.ibm.com&gt;</font><font size=3>
</font>
<tr>
<td valign=top><font size=1 color=#5f5f5f face="sans-serif">Cc:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">dfdl-wg@ogf.org</font><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Date:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">03/09/2009 09:38 AM</font><font size=3>
</font>
<tr valign=top>
<td><font size=1 color=#5f5f5f face="sans-serif">Subject:</font><font size=3>
</font>
<td><font size=1 face="sans-serif">Re: [DFDL-WG] Numbers with multiple
ranges</font></table>
<br><font size=3><br>
</font>
<hr noshade><font size=3><br>
<br>
<br>
 &nbsp;</font><font size=2 color=blue face="Arial"><br>
But you can parse it.</font><font size=3> <br>
 &nbsp;</font><font size=2 color=blue face="Arial"><br>
If it's just the validation, you still have ambiguitities e.g., suppose
I form a union of two types, each derived from xs:int, but with different
DFDL representations. There's a conflict then, how is that resolved. Rules
for &quot;consistency&quot; among two DFDL annotations will be complex.
E.g., is an int with a 31 bit representation compatible wiht an int with
32 bit representation? - shouldn't be unless both are unsigned. Etc.</font><font size=3>
<br>
 &nbsp;</font><font size=2 color=blue face="Arial"><br>
...mike</font><font size=3> <br>
 &nbsp;<br>
 &nbsp;<br>
 &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;| 100 Fifth Ave., 4th Floor, 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; <br>
<br>
</font>
<hr><font size=2 face="Tahoma"><b>From:</b> Steve Hanson [</font><a href=mailto:smh@uk.ibm.com><font size=2 color=blue face="Tahoma"><u>mailto:smh@uk.ibm.com</u></font></a><font size=2 face="Tahoma">]
<b><br>
Sent:</b> Monday, March 09, 2009 4:46 AM<b><br>
To:</b> DFDL<b><br>
Cc:</b> dfdl-wg@ogf.org<b><br>
Subject:</b> Re: [DFDL-WG] Numbers with multiple ranges</font><font size=3><br>
</font><font size=2 face="sans-serif"><br>
<br>
It's a validation issue. I have a packed decimal number with ranges 0-100,
200-300, 400-500. I can't parse and validate this with DFDL. WTX can handle
this today.</font><font size=3> </font><font size=2 face="sans-serif"><br>
<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>
</font>
<table width=100%>
<tr valign=top>
<td width=44%><font size=1 face="sans-serif"><b>DFDL &lt;mbeckerle.dfdl@gmail.com&gt;</b>
</font>
<p><font size=1 face="sans-serif">07/03/2009 04:49</font><font size=3>
</font>
<td width=55%>
<br>
<table width=100%>
<tr valign=top>
<td width=15%>
<div align=right><font size=1 face="sans-serif">To</font></div>
<td width=84%><font size=1 face="sans-serif">Steve Hanson/UK/IBM@IBMGB</font><font size=3>
</font>
<tr valign=top>
<td>
<div align=right><font size=1 face="sans-serif">cc</font></div>
<td><font size=1 face="sans-serif">&quot;dfdl-wg@ogf.org&quot; &lt;dfdl-wg@ogf.org&gt;</font><font size=3>
</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] Numbers with multiple
ranges</font></table>
<br><font size=3><br>
</font>
<br>
<table width=100%>
<tr valign=top>
<td width=50%>
<td width=50%></table>
<br></table>
<br><font size=3><br>
<br>
<br>
<br>
What does this have to do with representation/ format ? <br>
<br>
Seems totally out of scope to me. <br>
<br>
...mikeb <br>
<br>
<br>
On Mar 6, 2009, at 12:18 PM, Steve Hanson &lt;</font><a href=mailto:smh@uk.ibm.com><font size=3 color=blue><u>smh@uk.ibm.com</u></font></a><font size=3>&gt;
wrote:</font><font size=2 face="sans-serif"><br>
<br>
<br>
One of the existing non-XML parsers from IBM is capable of modelling an
integer or decimal with non-contiguous ranges, eg, 0-100, 200-300, 400-500.
&nbsp;It is also possible to model this using XML Schema, using a user-defined
simple type which is a union of simple type restrictions. <br>
<br>
However it is not possible to model this in DFDL because unions are not
supported. A choice could be used, but that would give different named
elements in the resultant infoset depending on the value, which is not
ideal.</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
I believe this is use case that we should consider for DFDL 1.0. &nbsp;We
could decide to allow unions, but with a constraint that the members of
the union had to be restrictions of the same built-in type, and that clashing
DFDL properties on the members was an error. I believe the existing scoping
rules for visiting types would still apply ok. No annotation appears on
the xs:union only on the xs:simpleType as currently. The net effect is
that our parsing rules are the same as currently, but we gain validation
capability.</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
I am not in favour of more widespread support for unions. I don't have
a compelling use case for union of different logical types, eg, xs:dateTime
and xs:string.</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
Your thoughts are welcome.</font><font size=3> </font><font size=2 face="Courier New"><br>
<br>
!-- integer range 0 - 100</font><font size=3> </font><font size=2 face="Courier New"><br>
&lt;xsd:simpleType name=&quot;intRange1&quot;&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp;&lt;xsd:restriction base=&quot;xsd:int&quot;&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:maxInclusive value=&quot;100&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:minInclusive value=&quot;0&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp;&lt;/xsd:restriction&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
<br>
!-- integer range 200 - 300</font><font size=3> </font><font size=2 face="Courier New"><br>
&lt;xsd:simpleType name=&quot;intRange2&quot;&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp;&lt;xsd:restriction base=&quot;xsd:int&quot;&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:maxInclusive value=&quot;300&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:minInclusive value=&quot;200&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp;&lt;/xsd:restriction&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
<br>
!-- integer range 400-500</font><font size=3> </font><font size=2 face="Courier New"><br>
&lt;xsd:simpleType name=&quot;intRange3&quot;&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp;&lt;xsd:restriction base=&quot;xsd:int&quot;&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:maxInclusive value=&quot;500&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:minInclusive value=&quot;400&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp;&lt;/xsd:restriction&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
<br>
!-- Union of above types</font><font size=3> </font><font size=2 face="Courier New"><br>
&lt;xsd:simpleType name=&quot;intRange&quot;&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp;&lt;xsd:union memberTypes=&quot;intRange1 intRange2 intRange3&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
<br>
!-- Union of anonymous types being restrictions of above types</font><font size=3>
</font><font size=2 face="Courier New"><br>
&lt;xsd:simpleType name=&quot;intRangeLocal&quot;&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp;&lt;xsd:union&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;&lt;xsd:restriction base=&quot;intRange1&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;&lt;xsd:restriction base=&quot;intRange2&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;&lt;xsd:restriction base=&quot;intRange3&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp;&lt;/xsd:union&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
<br>
!-- Union of anonymous types being local restrictions</font><font size=3>
</font><font size=2 face="Courier New"><br>
&lt;xsd:simpleType name=&quot;intRangeLocalRestrictions&quot;&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp;&lt;xsd:union&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;&lt;xsd:restriction base=&quot;xsd:int&quot;&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;xsd:minInclusive value=&quot;0&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;xsd:maxInclusive value=&quot;100&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;&lt;/xsd:restriction&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;&lt;xsd:restriction base=&quot;xsd:int&quot;&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;xsd:minInclusive value=&quot;200&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;xsd:maxInclusive value=&quot;300&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;&lt;/xsd:restriction&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;&lt;xsd:restriction base=&quot;xsd:int&quot;&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;xsd:minInclusive value=&quot;400&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp; &nbsp;&lt;xsd:maxInclusive value=&quot;500&quot;/&gt;</font><font size=3>
</font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp; &nbsp;&lt;/xsd:restriction&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp; &nbsp;&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
 &nbsp;&lt;/xsd:union&gt;</font><font size=3> </font><font size=2 face="Courier New"><br>
&lt;/xsd:simpleType&gt;</font><font size=3> </font><font size=2 face="sans-serif"><br>
<br>
Regards<br>
<br>
Steve Hanson<br>
Programming Model Architect<br>
WebSphere Message Brokers<br>
Hursley, UK<br>
Internet: </font><a href=mailto:smh@uk.ibm.com></a><a href=mailto:smh@uk.ibm.com><font size=2 color=blue face="sans-serif"><u>smh@uk.ibm.com</u></font></a><font size=2 face="sans-serif"><br>
Phone (+44)/(0) 1962-815848</font><font size=3><br>
<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>
</font><font size=2 face="sans-serif"><br>
</font>
<p><font size=3>--<br>
dfdl-wg mailing list</font><font size=3 color=blue><u><br>
</u></font><a href="mailto:dfdl-wg@ogf.org"></a><a href="mailto:dfdl-wg@ogf.org"><font size=3 color=blue><u>dfdl-wg@ogf.org</u></font></a><font size=3 color=blue><u><br>
</u></font><a href="http://www.ogf.org/mailman/listinfo/dfdl-wg"></a><a href="http://www.ogf.org/mailman/listinfo/dfdl-wg"><font size=3 color=blue><u>http://www.ogf.org/mailman/listinfo/dfdl-wg</u></font></a><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>
 </font></tt><a href="http://www.ogf.org/mailman/listinfo/dfdl-wg"><tt><font size=2 color=blue><u>http://www.ogf.org/mailman/listinfo/dfdl-wg</u></font></tt></a><font size=3>
</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>
</font>