|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
Multipart Message XML to TDS issue |
« View previous topic :: View next topic » |
Author |
Message
|
martc |
Posted: Fri Feb 02, 2007 2:33 pm Post subject: Multipart Message XML to TDS issue |
|
|
Apprentice
Joined: 23 Mar 2005 Posts: 39
|
Configuration: WBI 6.0, WIN
The problem I'm having is the embedded message TDS format does not display the Tag I set it in the Field identification details. Instead it is the XML name that is being displayed.
Addiotnal Info:
The input message is XML (with namespaces) and my objective is to render it in TDS. The envelope message is nicely being displayed with the correct Tag but when the embedded message fields start, the XML name is rendered instead of the tags I set under the TDS1 physical format. I have set all the Complex Type fields as Tagged Delimited with : and = as the delimiter and separator and this works nicely. The Content of the Body element which is the placeholder for the embedded message is set to Content Composition=message and validation=closed.
Could this be that it still cant distinguish the embedded message? In the trace I see:
<UserTrace timestamp="2007-02-02 18:22:24.889411" thread="2744" function="MtiImbFIHandler::startElement" type="" name="" label="" text="'Message, element or attribute is self-defining.'" catalog="BIPv600" number="5493" file="F:\build\S600_P\src\MTI\MTIforBroker\MtiImbParser2\MtiImbFIHandler.cpp" line="1410">
<Insert type="string">'AppId'</Insert>
<Insert type="string">'http://middleware.frk.com/XMLSchemas/CaseMgmtOpenCase/v100:CaseMgmt.OpenCase.Request'</Insert>
'Message, element or attribute is self-defining' on all the embedded message fields but not the envelope fields. My experience (limited as it is) when this occurs is that it would throw an exception when writing out to TDS, but in this case is actually writes out in TDS.
Any ideas would be great. |
|
Back to top |
|
 |
jefflowrey |
Posted: Fri Feb 02, 2007 5:04 pm Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Let's make sure we're clear on a thing or two.
You can't use embedded messaging or multipart messaging to embed an MRM-TDS message in an MRM-XML message.
If the content type of your MRM-XML message is not "Closed", then you are explicitly allowing self-defining content.
If the namespaces and etc. of the input message do not exactly match the MRM-XML, then they will be dealt with as self-defining content if that is allowed.
So, what is your situation in relation to that? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
kimbert |
Posted: Sat Feb 03, 2007 12:46 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
You need to solve this problem in two stages
1. Get the XML parsing correct
2. Get the TDS output correct
You are stuck on 1. at the moment. Do not even try to get the TDS output correct until you get rid of the BIP5493 messages. I expect your message definition does not match your input message, but you probably knew that already. I cannot make any other suggestions without more details.
Quote: |
The Content of the Body element which is the placeholder for the embedded message is set to Content Composition=message and validation=closed. |
You could try replacing element 'Body' with a group. Maybe the embedded message defines a root element with XML Name of 'Body', so your message definition might be causing the parser to expect ...<Body><Body>... |
|
Back to top |
|
 |
martc |
Posted: Mon Feb 05, 2007 12:33 pm Post subject: |
|
|
Apprentice
Joined: 23 Mar 2005 Posts: 39
|
Thanks Jeff and Kimbert for your replies. As always your replies are appreciated as they point me in the right direction.
Just to reply to some of Jeff's questions:
You can't use embedded messaging or multipart messaging to embed an MRM-TDS message in an MRM-XML message.
If I understood your question correctly the answer is: I'm not. The outer and embedded messages are both xml. Both with their respective namespaces.
If the content type of your MRM-XML message is not "Closed", then you are explicitly allowing self-defining content.
It is 'closed' and it is set to ‘message’ as its composition.
The good news is I got it to work. This is what I did:
1: After importing the xsd’s to the messageset project, I created separate mxsd's for the envelope (outer) and the embedded message.
2: I added an 'Import' into the envelope (outer) msxd the embedded msxd.
3. Working with the embeded msxd I gave the message an alias, which is the same name used as a new message I added to the SoapEnvelope mxsd (outer msxd)
4. Working with the outer msxd I created a type that had an element reference to the embedded message. When I did this, it automatically assigned a prefix to the namespace of the embedded msxd 'Q1'.
5. In conjunction with my no. 3 above I created a message in the outer msxd and called the message the alias name of the embedded message and gave it a type in step 4.
After doing all this it recognized the embedded message and my TDS representations on BOTH outer and inner messages come out as I have defined them in the Tag field identification. Similarly, no BIP5493 in the trace
My problem was (as Kimbert alluded) the modeling of the message, getting the parser to recognize the embedded message and parse it correctly. I know that this is almost always 90% of the problem
Thanks |
|
Back to top |
|
 |
|
|
 |
|
Page 1 of 1 |
|
You cannot post new topics in this forum You cannot reply to topics in this forum You cannot edit your posts in this forum You cannot delete your posts in this forum You cannot vote in polls in this forum
|
|
|
|