[DFDL-WG] Fwd: please review revised DFDL grammar

Mike Beckerle mbeckerle.dfdl at gmail.com
Tue Jul 7 08:21:36 CDT 2009


Updated to removed unresolvable choice possibility:


   *Productions*


   Document = Element


   Element = SimpleElement | ComplexElement

SimpleElement =  LeftSimpleFraming SimpleContent RightFraming

ComplexElement = LeftComplexFraming ComplexContent RightFraming

LeftSimpleFraming = Prefix *LeftPadding*

LeftComplexFraming = Prefix

RightFraming = *RightPadOrFill * Suffix



   ComplexContent = Sequence | Choice


   Sequence = Prefix SequenceContent Suffix

SequenceContent =

[ *PrefixSeparator* SequenceItem [ *Separator* SequenceItem ]* *
PostfixSeparator* ]

SequenceItem = Element | Array | ComplexContent



   Choice = Prefix ChoiceContent Suffix

ChoiceContent = Element | Array | ComplexContent


   Array = [ Element [ *Separator* Element ]* [ *Separator* StopValue] ]

StopValue = SimpleElement


   Prefix = LeadingAlignment *Initiator*

Suffix = *Terminator* TrailingAlignment


   LeadingAlignment = *LeadingSkipBytes* *AlignmentFill*

TrailingAlignment = *TrailingSkipBytes*





On Wed, Jun 17, 2009 at 6:37 AM, Alan Powell <alan_powell at uk.ibm.com> wrote:

>
> Mike
>
> I think you have prefix/postfix separator in the wrong place
>
> You definition has  LeadingAlignment Initiator Prefixseparator and it
> should be Prefixseparator  LeadingAlignment Initiator so
>
> LeftSequenceFraming = Prefix *PrefixSeparator* should be LeftSequenceFraming
> = *PrefixSeparator *Prefix
>
> Similarly for postfix.
>
>
> Also I don't think ChoiceUnresolvableItem = OpaqueTypeContent is correct.
> Unresolveable choice content is the same as resolvable choice content as
> you need to be able to work out the length of the choices (which must be the
> same).
>
>
> I have change *AlignmentPad* to *AlignmentFill *as the pad character is
> not used during alignment
>
> Small stylistic comment: Should LeftPadding be just Padding and
> RightPadorFill be just PadorFill?
>
>
> Alan Powell
>
> MP 211, IBM UK Labs, Hursley,  Winchester, SO21 2JN, England
> Notes Id: Alan Powell/UK/IBM     email: alan_powell at uk.ibm.com
> Tel: +44 (0)1962 815073                  Fax: +44 (0)1962 816898
>
>
>
>  From: Mike Beckerle <mbeckerle.dfdl at gmail.com> To: Steve
> Hanson/UK/IBM at IBMGB, Alan Powell/UK/IBM at IBMGB Date: 11/06/2009 03:23
> Subject: please review revised DFDL grammar
> ------------------------------
>
>
>
> I'll take this to the broader group once you guys have had a look at this.
>
> Please review this revised grammar table. I've tried to include the
> necessary pieces to handle padding on left and padding or fill on right, and
> in a manner consistent with our most recent policies where dfdl:length for
> complex types can only be on the element itself, not any model group.
>
> I am uncertain if this grammar has enough features to capture everything
> about say, CalendarTypeContent. E.g., are there no properties about framing
> that are special to calendars? This grammar suggests that padding/fill is
> all handled outside the content for calendars, as for all simple types.
>
> I also added prefix/postfix separators back in. (We excised them a while
> back, but I'm pretty sure decided to put them back in.)
>
> The issue about proper interpretation of leading and trailing skip bytes is
> outstanding still.
>
> There are no changes to the simple content grammar. I'm including it here
> for making this message self-contained.
>
> I believe that the blowout pictures in the grammar section are to some
> degree outliving their usefulness. They are in essence equivalent to this
> grammar. By arranging the grammar to use the terms left framing, right
> framing, and content, I believe the information about what start of content
> is, vs. start of item can be defined without most of the pictures. I think
> the one which defines item start, content start, content end, and item end
> is useful. The others not so useful.
>
> -------------------------
>
> First we present the simple content types.
>
>   *Production*
>  *See Section(s)*
>  SimpleContent = NumberTypeContent | StringTypeContent |
>
> CalendarTypeContent | BooleanTypeContent | OpaqueTypeContent
>   NumberTypeContent = *TextNumber* | *BinaryIntegerNumber* | *
> BinaryFloatNumber* TBD StringTypeContent = *TextString* TBD CalendarTypeContent
> = *TextCalendar* | *BinaryIntegerCalendar* TBD BooleanTypeContent = *
> TextBoolean* | *BinaryIntegerBoolean* TBD OpaqueTypeContent =  *
> BinaryOpaque* TBD
>
>
>
> There are additional NumberTypeContent terminals specified in the DFDL
> specification supplements (for bcd, zoned and packed decimal).
>
> These simple types are the basic data content pieces found in
> DFDL-described data sources.
>
> The rest of this grammar describes how these basic pieces are composed into
> arrays and more complex types.
>
>
>
>   *Productions*
>  * *
>  Document = Element   Element = SimpleElement | ComplexElement
>
> SimpleElement =  LeftSimpleFraming SimpleContent RightFraming
>
> ComplexElement = LeftComplexFraming ComplexContent RightFraming
>
> LeftSimpleFraming = Prefix *LeftPadding*
>
> LeftComplexFraming = Prefix
>
> RightFraming = *RightPadOrFill * Suffix
>
>
>   ComplexContent = Sequence | Choice   Sequence = LeftSequenceFraming
> SequenceContent RightSequenceFraming
>
> SequenceContent = [ SequenceItem [ *Separator* SequenceItem ]* ]
>
> SequenceItem = Element | Array | ComplexContent
>
> LeftSequenceFraming = Prefix *PrefixSeparator*
>
> RightSequenceFraming = *PostfixSeparator *Suffix
>   Choice = LeftChoiceFraming ChoiceContent RightChoiceFraming
>
> ChoiceContent = ChoiceResolvableItem | ChoiceUnresolvableItem*[MJB1]*<#1225559d07ce240a_121f6734f907cd24_121edcae928b9ee0__msocom_1>
>
>
> ChoiceResolvableItem = Element | Array | ComplexContent
>
> ChoiceUnresolvableItem = OpaqueTypeContent*[MJB2]*<#1225559d07ce240a_121f6734f907cd24_121edcae928b9ee0__msocom_2>
>
>
> LeftChoiceFraming = Prefix
>
> RightChoiceFraming = Suffix
>   Array = [ Element [ *Separator* Element ]*  [ *Separator* StopValue] ]
>
> StopValue = SimpleElement
>   Prefix = LeadingAlignment *Initiator*
>
> Suffix = *Terminator* TrailingAlignment
>   LeadingAlignment = *LeadingSkipBytes* *AlignmentPad*
>
> TrailingAlignment = *TrailingSkipBytes*
>
>
>
>
> ------------------------------
>
>   <#1225559d07ce240a_121f6734f907cd24_121edcae928b9ee0__msoanchor_1>
>
>
>
>
>
>  ------------------------------
>
> *
> *
>
> *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
> *
>
>
>
>
>
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/dfdl-wg/attachments/20090707/7411a29c/attachment-0001.html 


More information about the dfdl-wg mailing list