|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
XMLNSC: parser discards attribute |
« View previous topic :: View next topic » |
Author |
Message
|
bazzaa |
Posted: Tue Oct 13, 2009 4:30 am Post subject: |
|
|
Novice
Joined: 29 Sep 2009 Posts: 18
|
Thank you for your reply!
But how could parser specific stuff be lost when I'm just taking tree from InputRoot.XMLNSC.*? It isn't stored into Environment or LocalEnvironment tree...
Probably parser specific stuff is lost when SOAP reply is deserialized. So wrong data (date field instead declaration) placed into InputRoot.XMLNSC.http://www.my.com/my/myservice:SaveItems... |
|
Back to top |
|
 |
kimbert |
Posted: Tue Oct 13, 2009 5:45 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
Probably parser specific stuff is lost when SOAP reply is deserialized |
When is the SOAP reply deserialized. Which application does it, and how?
I agree with mqjeff. It's time to take a debug-level user trace. It's a great way to see exactly what's going on inside the flow. |
|
Back to top |
|
 |
bazzaa |
Posted: Tue Oct 13, 2009 6:55 am Post subject: |
|
|
Novice
Joined: 29 Sep 2009 Posts: 18
|
I've found the problem, thanks all!
The reason was in SELECT statement I'm preparing message with:
Code: |
DECLARE Items ROW;
SET Items.Item[] = select * from InputRoot.XMLNSC.ns:Reply where {some condition};
|
and then:
Code: |
SET OutputRoot.XMLNSC.ns:Request = Items.Item[];
|
And all parser specific data was out of scope, so namespace declaration was treated as DataField instead of NamespaceDecl, etc...
Now question is how to perform SELECT so I can save parser specific data?
Thanks! |
|
Back to top |
|
 |
kimbert |
Posted: Tue Oct 13, 2009 7:39 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
Now question is how to perform SELECT so I can save parser specific data? |
You need to make sure that Items.Item is owned by the XMLNSC parser - otherwise the parser-specific info will be automatically cleared as each node is assigned to the target tree.
I don't know whether it is possible to assign a parser to a ROW variable when you declare it. A quick look at the infocenter suggests not.
I expect mgk will give us the facts on this.
One workaround would be to create Item in the environment or LocalEnvironment tree. See the DOMAIN clause on the CREATE statement for details of how to do that. |
|
Back to top |
|
 |
mgk |
Posted: Tue Oct 13, 2009 10:14 am Post subject: |
|
|
 Padawan
Joined: 31 Jul 2003 Posts: 1642
|
Hi, a ROW variable is simple another name for a MessageTree that has a name you give it when you DECLARE it and like all the "built in" message trees (OutputRoot) etc the Root of the ROW is "owned" by a Root parser. Therefore, you can use CREATE ... DOMAIN to create a child element with a parser of a particular type, e.g XMLNSC and then assign your SELECT result to a child of this element, exactly as you would if you were assigning into an XMLNSC child of OutputRoot...
Kind Regards, _________________ MGK
The postings I make on this site are my own and don't necessarily represent IBM's positions, strategies or opinions. |
|
Back to top |
|
 |
|
|
|
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
|
|
|
|