[DFDL-WG] discriminator examples for discussion

Mike Beckerle mbeckerle.dfdl at gmail.com
Tue Nov 17 20:46:51 CST 2009


I hope we can go through this on the call this week. I've not had time to
give this the careful attention it deserves.

...mike

On Thu, Nov 12, 2009 at 7:56 AM, Stephanie Fetzer <sfetzer at us.ibm.com>wrote:

>
> All:
>
> Following our conversation yesterday I created a model in WTX which does
> what I believe we were trying to do here.  The first set of testdata is good
> (and hence not much fun!).  The second set of testdata is bad but is
> 'directed' through the choices appropriately with the discriminators.
>
> Hope this helps explain how these look in WTX.
>
>
> Here is Mike’s discriminator1 case in WTX,
>
> Trying to keep it as simple as possible but here is the tree for the
> easiest modeling:
>
>
>
> The two ‘identifiers are circled in RED.
>
> With good data – this is what the trace looks like: (notes are in RED as
> well)
>
> C1(a 10)(q 20)
> X5(b 62 JQ6)(b 47 H)
> #################
> ____________________________________________________
>
>
>
> (Level 4: Offset 0, len 2, comp 1 of 2, #1, DI 00000001:)
> Data at offset 0 ('C1') was found to be of TYPE
>    X'0006' (PrefixCode SAF).
>
> (Level 5: Offset 3, len 1, comp 1 of 2, #1, DI 00000002:)
> Data at offset 3 ('a') was found to be of TYPE
>    X'0008' (label SAF).
>
> (Level 5: Offset 3, len 1, comp 1 of 2, #1, DI 00000003:)
> Type X'0007' (a SAF) is known to exist.
>
> (Level 5: Offset 5, len 2, comp 2 of 2, #1, DI 00000003:)
> Data at offset 5 ('10') was found to be of TYPE
>    X'0009' (value SAF).
>
> (Level 4: Offset 3, len 4, comp 2 of 2, #1, DI 00000004:)
> Data at offset 3 ('a 10') was found to be of TYPE
>    X'0007' (a SAF).
>
> (Level 4: Offset 3, len 4, comp 2 of 2, #1, DI 00000005:)
> Type X'0005' (L SAF) is known to exist.
>
> (Level 5: Offset 9, len 1, comp 1 of 2, #1, DI 00000005:)
> Data at offset 9 ('q') was found to be of TYPE
>    X'0008' (label SAF).
>
> (Level 5: Offset 9, len 1, comp 1 of 2, #1, DI 00000006:)
> Type X'0007' (a SAF) is known to exist.
>
> (Level 5: Offset 11, len 2, comp 2 of 2, #1, DI 00000006:)
> Data at offset 11 ('20') was found to be of TYPE
>    X'0009' (value SAF).
>
> (Level 4: Offset 9, len 4, comp 2 of 2, #2, DI 00000007:)
> Data at offset 9 ('q 20') was found to be of TYPE
>    X'0007' (a SAF).
>
> (Level 4: Offset 9, len 4, comp 2 of 2, #2, DI 00000008:)
> Type X'0005' (L SAF) is known to exist.
>
> (Level 4: Offset 14, len 0, comp 2 of 2, #3, DI 00000008:)
> Data at offset 14 ('<CR><LF>X5(b 62 JQ6)(b...') does not match INITIATOR
> '('
>   of TYPE X'0007' (a SAF).
>
> (Level 4: Offset 14, len 0, comp 2 of 2, #3, DI 00000008:)
> COMPONENT number 2 of TYPE X'0005' (L SAF):
> occurrence 3 is optional and does not exist.
>
> (Level 3: Offset 0, len 14, comp 1 of 3, #1, DI 00000008:)
> Data at offset 0 ('C1(a 10)(q 20)') was found to be of TYPE
>    X'0005' (L SAF).
>
> (Level 2: Offset 0, len 14, comp 1 of 2, #1, DI 00000008:)
> Data at offset 0 ('C1(a 10)(q 20)') was found to be of TYPE
>    X'0004' (record SAF).
>
> (Level 1: Offset 0, len 16, comp 1 of 1, #1, DI 00000008:)
> Data at offset 0 ('C1(a 10)(q 20)<CR><LF>') was found to be of TYPE
>    X'0003' (top SAF).
>
> (Level 4: Offset 16, len 2, comp 1 of 2, #1, DI 00000008:)
> Data at offset 16 ('X5') was found to be of TYPE
>    X'0006' (PrefixCode SAF).
>
> (Level 5: Offset 19, len 1, comp 1 of 2, #1, DI 00000009:)
> Data at offset 19 ('b') was found to be of TYPE
>    X'0008' (label SAF).
>
> (Level 5: Offset 19, len 1, comp 1 of 2, #1, DI 0000000A:)
> Data at offset 19 ('b') failed COMPONENT RULE test
>    for component number 1, TYPE X'0007' (a SAF).
>
> (Level 4: Offset 18, len 0, comp 2 of 2, #1, DI 00000009:)
> Data at offset 18 ('(b 62 JQ6)(b 47 ') failed COMPONENT RULE test
>    for component number 2, TYPE X'0005' (L SAF).
>
> (Level 4: Offset 16, len 2, comp 1 of 2, #1, DI 00000008:)
> Data at offset 16 ('X5') was found to be of TYPE
>    X'0006' (PrefixCode SAF).
>
> (Level 5: Offset 19, len 1, comp 1 of 2, #1, DI 00000009:)
> Data at offset 19 ('b') was found to be of TYPE
>    X'0008' (label SAF).
>
> (Level 5: Offset 21, len 2, comp 2 of 2, #1, DI 0000000A:)
> Data at offset 21 ('62') was found to be of TYPE
>    X'0009' (value SAF).
>
> (Level 5: Offset 24, len 3, comp 2 of 2, #2, DI 0000000B:)
> Data at offset 24 ('JQ6') was found to be of TYPE
>    X'0009' (value SAF).
>
> (Level 4: Offset 19, len 8, comp 2 of 2, #1, DI 0000000C:)
> Data at offset 19 ('b 62 JQ6') was found to be of TYPE
>    X'000B' (b SAF).
>
> (Level 5: Offset 29, len 1, comp 1 of 2, #1, DI 0000000C:)
> Data at offset 29 ('b') was found to be of TYPE
>    X'0008' (label SAF).
>
> (Level 5: Offset 31, len 2, comp 2 of 2, #1, DI 0000000D:)
> Data at offset 31 ('47') was found to be of TYPE
>    X'0009' (value SAF).
>
> (Level 5: Offset 34, len 1, comp 2 of 2, #2, DI 0000000E:)
> Data at offset 34 ('H') was found to be of TYPE
>    X'0009' (value SAF).
>
> (Level 4: Offset 29, len 6, comp 2 of 2, #2, DI 0000000F:)
> Data at offset 29 ('b 47 H') was found to be of TYPE
>    X'000B' (b SAF).
>
> (Level 4: Offset 36, len 0, comp 2 of 2, #3, DI 0000000F:)
> Data at offset 36 ('<CR><LF>##############...') does not match INITIATOR
> '('
>   of TYPE X'000B' (b SAF).
>
> (Level 4: Offset 36, len 0, comp 2 of 2, #3, DI 0000000F:)
> COMPONENT number 2 of TYPE X'000A' (S SAF):
> occurrence 3 is optional and does not exist.
>
> (Level 3: Offset 16, len 20, comp 2 of 3, #1, DI 0000000F:)
> Data at offset 16 ('X5(b 62 JQ6)(b 4...') was found to be of TYPE
>    X'000A' (S SAF).
>
> (Level 2: Offset 16, len 20, comp 1 of 2, #1, DI 0000000F:)
> Data at offset 16 ('X5(b 62 JQ6)(b 4...') was found to be of TYPE
>    X'0004' (record SAF).
>
> (Level 1: Offset 16, len 22, comp 1 of 1, #2, DI 0000000F:)
> Data at offset 16 ('X5(b 62 JQ6)(b 4...') was found to be of TYPE
>    X'0003' (top SAF).
>
> (Level 4: Offset 38, len 2, comp 1 of 2, #1, DI 0000000F:)
> Data at offset 38 ('##') was found to be of TYPE
>    X'0006' (PrefixCode SAF).
>
> (Level 4: Offset 40, len 0, comp 2 of 2, #1, DI 00000010:)
> Data at offset 40 ('###############<CR>...') does not match INITIATOR '('
>   of TYPE X'0007' (a SAF).
>
> (Level 4: Offset 40, len 0, comp 2 of 2, #1, DI 00000010:)
> Data at offset 40 ('###############<CR>') failed COMPONENT RULE test
>    for component number 2, TYPE X'0005' (L SAF).
>
> (Level 4: Offset 38, len 2, comp 1 of 2, #1, DI 0000000F:)
> Data at offset 38 ('##') was found to be of TYPE
>    X'0006' (PrefixCode SAF).
>
> (Level 4: Offset 38, len 2, comp 1 of 2, #1, DI 00000010:)
> Data at offset 38 ('##') failed COMPONENT RULE test
>    for component number 1, TYPE X'000A' (S SAF).
>
> (Level 4: Offset 40, len 0, comp 2 of 2, #1, DI 00000010:)
> Data at offset 40 ('###############<CR>...') does not match INITIATOR '('
>   of TYPE X'000B' (b SAF).
>
> (Level 4: Offset 40, len 0, comp 2 of 2, #1, DI 00000010:)
> COMPONENT number 2 of TYPE X'000A' (S SAF):
> occurrence 1 is optional and does not exist.
>
> (Level 3: Offset 38, len 17, comp 3 of 3, #1, DI 0000000F:)
> Data at offset 38 ('################...') was found to be of TYPE
>    X'000C' (unknownType SAF).
>
> (Level 2: Offset 38, len 17, comp 1 of 2, #1, DI 0000000F:)
> Data at offset 38 ('################...') was found to be of TYPE
>    X'0004' (record SAF).
>
> (Level 1: Offset 38, len 19, comp 1 of 1, #3, DI 0000000F:)
> Data at offset 38 ('################...') was found to be of TYPE
>    X'0003' (top SAF).
>
> (Level 0: Offset 0, len 57, comp 1 of 0, #1, DI 0000000F:)
> Data at offset 0 ('C1(a 10)(q 20)<CR><LF>...') was found to be of TYPE
>    X'0002' (file SAF).
>
>    INPUT 1 was valid.
>
>    End of Validation messages for INPUT CARD 1.
>
>
>    End of Execution messages..
>
>
> Now the bad data – let’s see how that flows. In this case we want to
> discriminate that the data is an a and therefore an L Record (without
> looking at b’s or S Records). But as we have an invalid L record at the Top
> choice we want to go to blob as we have no discrimination at that level.
>
> C1(a 10)(q -20)
>
>
> _______________________________
>
>
>
>
> (Level 3: Offset 0, len 2, comp 1 of 2, #1, DI 00000001:)
> Data at offset 0 ('C1') was found to be of TYPE
>    X'0005' (PrefixCode SAF).
>
> (Level 4: Offset 3, len 1, comp 1 of 2, #1, DI 00000001:)
> Data at offset 3 ('a') was found to be of TYPE
>    X'0007' (label SAF).
>
> (Level 4: Offset 3, len 1, comp 1 of 2, #1, DI 00000002:)
> Type X'0006' (a SAF) is known to exist.
>
> (Level 4: Offset 5, len 2, comp 2 of 2, #1, DI 00000002:)
> Data at offset 5 ('10') was found to be of TYPE
>    X'0008' (value SAF).
>
> (Level 3: Offset 3, len 4, comp 2 of 2, #1, DI 00000003:)
> Data at offset 3 ('a 10') was found to be of TYPE
>    X'0006' (a SAF).
>
> (Level 3: Offset 3, len 4, comp 2 of 2, #1, DI 00000004:)
> Type X'0004' (L SAF) is known to exist.
>
> (Level 4: Offset 9, len 1, comp 1 of 2, #1, DI 00000004:)
> Data at offset 9 ('q') was found to be of TYPE
>    X'0007' (label SAF).
>
> (Level 4: Offset 9, len 1, comp 1 of 2, #1, DI 00000005:)
> Type X'0006' (a SAF) is known to exist.
>
> (Level 4: Offset 11, len 3, comp 2 of 2, #1, DI 00000005:)
> Data at offset 11 ('-20') was found to be of TYPE
>    X'0008' (value SAF).
>
> (Level 4: Offset 11, len 3, comp 2 of 2, #1, DI 00000006:)
> Data at offset 11 ('-20') failed COMPONENT RULE test
>    for component number 2, TYPE X'0006' (a SAF).
>
> (Level 4: Offset 10, len 0, comp 2 of 2, #1, DI 00000005:)
> Data at offset 10 (' -20)<CR><LF>') was found to be of TYPE
>    X'0008' (value SAF).
>
> (Level 3: Offset 10, len 0, comp 2 of 2, #2, DI 00000005:)
> Data at offset 10 (' -20)<CR><LF>...') does not match TERMINATOR ')'
>   of TYPE X'0006' (a SAF).
>
> (Level 3: Offset 9, len 1, comp 2 of 2, #2, DI 00000005:)
> Data at offset 9 ('q') is INVALID data of TYPE
>    X'0006' (a SAF).
>
> (Level 3: Offset 9, len 1, comp 2 of 2, #2, DI 00000006:)
> Data at offset 9 ('q') failed COMPONENT RULE test
>    for component number 2, TYPE X'0004' (L SAF).
>
> (Level 3: Offset 8, len 0, comp 2 of 2, #2, DI 00000004:)
> COMPONENT number 2 of TYPE X'0004' (L SAF):
> occurrence 2 is optional and does not exist.
>
> (Level 2: Offset 0, len 8, comp 1 of 3, #1, DI 00000004:)
> Data at offset 0 ('C1(a 10)') was found to be of TYPE
>    X'0004' (L SAF).
>
> (Level 1: Offset 8, len 0, comp 1 of 2, #1, DI 00000004:)
> Data at offset 8 ('(q -20)<CR><LF>...') does not match TERMINATOR
> '<CR><LF>'
>   of TYPE X'0003' (record SAF).
>
> (Level 1: Offset 0, len 15, comp 2 of 2, #1, DI 00000001:)
> Data at offset 0 ('C1(a 10)(q -20)') was found to be of TYPE
>    X'000C' (blob SAF).
>
> (Level 0: Offset 0, len 17, comp 1 of 0, #1, DI 00000001:)
> Data at offset 0 ('C1(a 10)(q -20)<CR>...') was found to be of TYPE
>    X'0002' (top SAF).
>
>    INPUT 1 was valid.
>
>    End of Validation messages for INPUT CARD 1.
>
>
>    End of Execution messages.
>
> Cheers,
> -Steph
>
> Artifacts attached:
>
>
> WebSphere Transformation Extender
> Industry Packs - Software Engineer
>
>
>
>  From: Mike Beckerle <mbeckerle.dfdl at gmail.com> To: dfdl-wg at ogf.org Date: 11/10/2009
> 04:33 PM Subject: [DFDL-WG] discriminator examples for discussion
>  Sent by: dfdl-wg-bounces at ogf.org
> ------------------------------
>
>
>
> Attached are two files. One is a DFDL schema that uses discriminators. The
> other is a test case file.
>
> I'd like to review the issues with discriminators on our call tomorrow by
> walking through these examples.
>
> To do this we will absolutely have to have screen sharing going on so I can
> point at things.
>
> So I have setup a "gotomeeting" which is a low impact web screen sharing
> thingy.
>
> If you've not used gotomeeting before, there is a brief download required,
> so you might want to get this out of the way before our call.
>
> *https://www2.gotomeeting.com/join/319038563*<https://www2.gotomeeting.com/join/319038563>
>
>  Meeting ID: 319-038-563
>
>  [attachment "testDiscriminator1.xml" deleted by Stephanie
> Fetzer/Charlotte/IBM] [attachment "testDiscriminator1.dfdl.xml" deleted by
> Stephanie Fetzer/Charlotte/IBM] --
>
>  dfdl-wg mailing list
>  dfdl-wg at ogf.org
>
> http://www.ogf.org/mailman/listinfo/dfdl-wg
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.ogf.org/pipermail/dfdl-wg/attachments/20091117/76285fbd/attachment-0001.html 
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: image/gif
Size: 51245 bytes
Desc: not available
Url : http://www.ogf.org/pipermail/dfdl-wg/attachments/20091117/76285fbd/attachment-0001.gif 


More information about the dfdl-wg mailing list