Author |
Message
|
Pozzo |
Posted: Mon Aug 30, 2004 6:11 am Post subject: TDS format parsing |
|
|
 Novice
Joined: 19 Aug 2004 Posts: 16
|
Hi,
I am working with messages of tagged/delimited format, using WBIMB v5. I've created a message set with TDS wire format which parses the elements that I need corrrectly. However, it seems to be throwing away the rest of the message. I only need to parse the first line, but I need to pass the entire message on.
I'm not sure if I need a wildcard element in my message format...it hasn't worked so far.
Any ideas?
Josh |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Aug 30, 2004 6:17 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Yes, you need a "wildcard" element.
Add an element that is a BLOB field to the end of your message set. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Pozzo |
Posted: Mon Aug 30, 2004 6:33 am Post subject: |
|
|
 Novice
Joined: 19 Aug 2004 Posts: 16
|
Thanks,
Where do I do this exactly? It looks like my choices for adding to the message type are Add Local Element, Element Reference, Wildcard Element, Local Group, etc...where do I specify that the element is a BLOB? |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Aug 30, 2004 6:54 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I'm sorry, I wasn't as clear as I should have been.
Add a new local element that has a type of BLOB and is big enough to contain the rest of your data.
A wildcard element will not do what you want, I think. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Pozzo |
Posted: Mon Aug 30, 2004 7:08 am Post subject: |
|
|
 Novice
Joined: 19 Aug 2004 Posts: 16
|
I understand, however...I don't see blob as one of the types for local element (int, string, boolean, etc.)
Also, won't the parser want a tag for this extra element, since the Data Element Separation for the format is Tagged Delimited? There is no tag or delimiter for this part of the message. |
|
Back to top |
|
 |
jefflowrey |
Posted: Mon Aug 30, 2004 7:21 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
I'm just not thinking well this morning, sorry.
You should be able to either use a string or a hexBinary simple type.
You probably don't want to add this at your main message level. Add it as the last field in your final tagged complex type. _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
Pozzo |
Posted: Mon Aug 30, 2004 9:44 am Post subject: |
|
|
 Novice
Joined: 19 Aug 2004 Posts: 16
|
That doesn't seem to do it.
Could the Composition and Content Validation settings in the logical properties affect this problem? Composition is sequence...I've tried both open and closed for the content validation. |
|
Back to top |
|
 |
shanson |
Posted: Tue Aug 31, 2004 1:22 am Post subject: |
|
|
 Partisan
Joined: 17 Oct 2003 Posts: 344 Location: IBM Hursley
|
We need some more information here. I'm assuming you have modelled just the part of the message that interests you but the message contains more data. Please say what Data Element Separation you have chosen for your TDS message, as some of the separations are unable to cope with wildcards. An example message, and an indication of which parts you have modelled would be useful too. |
|
Back to top |
|
 |
Pozzo |
Posted: Tue Aug 31, 2004 5:33 am Post subject: |
|
|
 Novice
Joined: 19 Aug 2004 Posts: 16
|
Hi shanson,
Data element separation is Tagged Delimited. The messages follow a structure like so:
1.01:data<GS>1.02:data<GS>1.03:data . . . 2.542:data<FS><NUL><NUL>xyzxyz...
with a numeric tag, colon, then the data, delimited by the group separator (ascii 29). At the end of the section I'm concerned with, there is a file separator (<FS>) instead of the <GS>, then two null characters followed by the rest of the data. What I'm trying to be able to do is parse the first part, but then pass on the entire message without losing anything.
Like you say, I've modeled the part of the message I'm concerned with, and it seems to work fine...but the messages that come out on the other side don't include the information after the null characters.
Hope that helps...I was trying to present the problem without giving too much information, but I probably erred on the side of not giving enough.
 |
|
Back to top |
|
 |
shanson |
Posted: Tue Aug 31, 2004 8:49 am Post subject: |
|
|
 Partisan
Joined: 17 Oct 2003 Posts: 344 Location: IBM Hursley
|
I'll use V5 terminology here so if you are 2.1 just substitute 'compound type' for 'group'.
I'm assuming you have modelled a group with a delimiter of <GS> and a group terminator (GT) of <FS>. If so, try removing the GT from this group, and creating a new group of separation All Elements Delimited with delimiter <FS> and two children, the first being your original group embedded directly, the second being an element of type string.
This should result in a tree with contains the first part of the message as you want it, followed by one or more string elements (depending on how many <FS> characters are encountered in the rest of the data. |
|
Back to top |
|
 |
Pozzo |
Posted: Tue Aug 31, 2004 9:55 am Post subject: |
|
|
 Novice
Joined: 19 Aug 2004 Posts: 16
|
Yes, looks like that's the way I need to do it. Thanks. |
|
Back to top |
|
 |
|