[DFDL-WG] DFDL & length prefixes - proposal
Mike Beckerle
beckerle at us.ibm.com
Wed Nov 21 16:40:25 CST 2007
For the broader DFDL workgroup (Martin, Simon, and any other onlookers),
this proposal was circulated among the IBM DFDLers and we liked it, so we
wanted others to take a look.
------------------------------------------------------------------------
Prefix lengths are common, but unfortunately there are many prefix length
formats.
For flexibility we want to be able to use a hidden field and calc
properties, but this is clumsy enough to be very unattractive except for
extreme cases. However, without it we have the keyword proliferation
issue.
Here's a way to get the best of both worlds.
<element name="myString" type="string"
dfdl:lengthKind="prefixed"
dfdl:lengthPrefixType="packed4"/>
here's the trick. Named types for length prefixes are just a real schema
type definition of an integer type with dfdl annotations. .
<simpleType name="packed4">
<restriction base="integer" dfdl:representation="decimal"
dfdl:decimalType="packed"
dfdl:numberFormat="9999" dfdl:decimalSigned="false"
dfdl:prefixIncludesPrefixLength="false"/>
</simpleType>
The behavior is simple. Imagine that a hidden length prefix element is
defined immediately before your element, and it's type is the one given
here.
You don't have to model that hidden element. DFDL knows how to do that for
you. Just tell us it's type, including DFDL properties for the
representation
of that type.
We could build in a few of these to some predefined profiles. E.g.,
dfdl:prefix2, and dfdl:prefix4 might be the typical 2 and 4 byte length
prefix definitions you see
in PL1 for example.
I suggest the above because of the slippery slope where we have to
gradually bifurcate all the integer properties to have lengthPrefix
flavors of them
e.g.,
lengthPrefixRepresentation = text or binary or decimal
lengthPrefixLengthUnits = bits, bytes, or characters
lengthPrefixLength = an integer
lengthPrefixLengthIncludesPrefix (boolean)
lengthPrefixTextNumberJustification
lengthPrefixTextNumberFormat
Anywhere you stop here there will be many cases that aren't covered.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/dfdl-wg/attachments/20071121/df674b80/attachment.html
More information about the dfdl-wg
mailing list