But you can parse it.
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 "consistency" 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.
...mike
Mike Beckerle |
OGF DFDL WG Co-Chair | CTO | Oco, Inc.
Tel:
781-810-2100 | 100 Fifth
Ave., 4th Floor, Waltham MA 02451 | mbeckerle.dfdl@gmail.com
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.
Regards
Steve Hanson
Programming Model
Architect
WebSphere Message Brokers
Hursley, UK
Internet:
smh@uk.ibm.com
Phone (+44)/(0) 1962-815848
DFDL
<mbeckerle.dfdl@gmail.com>
07/03/2009 04:49
|
To
| Steve Hanson/UK/IBM@IBMGB
|
cc
| "dfdl-wg@ogf.org"
<dfdl-wg@ogf.org>
|
Subject
| Re: [DFDL-WG] Numbers with multiple
ranges |
|
What
does this have to do with representation/ format ?
Seems totally out of scope to me.
...mikeb
On Mar 6, 2009, at 12:18 PM, Steve Hanson <smh@uk.ibm.com>
wrote:
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. It is also possible to
model this using XML Schema, using a user-defined simple type which is a union
of simple type restrictions.
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.
I
believe this is use case that we should consider for DFDL 1.0. 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.
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.
Your thoughts are
welcome.
!-- integer range 0 - 100
<xsd:simpleType
name="intRange1">
<xsd:restriction base="xsd:int">
<xsd:maxInclusive value="100"/>
<xsd:minInclusive
value="0"/>
</xsd:restriction>
</xsd:simpleType>
!-- integer range 200 - 300
<xsd:simpleType
name="intRange2">
<xsd:restriction base="xsd:int">
<xsd:maxInclusive value="300"/>
<xsd:minInclusive
value="200"/>
</xsd:restriction>
</xsd:simpleType>
!-- integer range 400-500
<xsd:simpleType
name="intRange3">
<xsd:restriction base="xsd:int">
<xsd:maxInclusive value="500"/>
<xsd:minInclusive
value="400"/>
</xsd:restriction>
</xsd:simpleType>
!-- Union of above types
<xsd:simpleType
name="intRange">
<xsd:union memberTypes="intRange1 intRange2
intRange3"/>
</xsd:simpleType>
!-- Union of anonymous types being
restrictions of above types
<xsd:simpleType name="intRangeLocal">
<xsd:union>
<xsd:simpleType>
<xsd:restriction base="intRange1"/>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction
base="intRange2"/>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction
base="intRange3"/>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
!-- Union of anonymous types being local
restrictions
<xsd:simpleType
name="intRangeLocalRestrictions">
<xsd:union>
<xsd:simpleType>
<xsd:restriction
base="xsd:int">
<xsd:minInclusive
value="0"/>
<xsd:maxInclusive
value="100"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction
base="xsd:int">
<xsd:minInclusive
value="200"/>
<xsd:maxInclusive
value="300"/>
</xsd:restriction>
</xsd:simpleType>
<xsd:simpleType>
<xsd:restriction
base="xsd:int">
<xsd:minInclusive
value="400"/>
<xsd:maxInclusive
value="500"/>
</xsd:restriction>
</xsd:simpleType>
</xsd:union>
</xsd:simpleType>
Regards
Steve Hanson
Programming Model
Architect
WebSphere Message Brokers
Hursley, UK
Internet: smh@uk.ibm.com
Phone (+44)/(0) 1962-815848
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