Author |
Message
|
narendra68 |
Posted: Wed Nov 17, 2004 2:16 pm Post subject: XML Schema Validation Problem |
|
|
Apprentice
Joined: 17 Nov 2004 Posts: 30
|
My message flow doesn't validate against XML schema.
1) I hava imported XSD into MRM
2) I have connected MQInput->TryCatch->Computenode->MQOutputnode
In MQInput
a) for default options I have selected the domain as MRM and selected the message set , type and Format as XML1
b) For Validation selected "Content and Value" , Exception and for Time selected "Deferred".
In the compute node, I copied the entire message.
For some reason the system is not validating against the Schema.
I would really appreciate, if some throw some light on this..
Thanks
Narendra  _________________ Narendra |
|
Back to top |
|
 |
JLRowe |
Posted: Wed Nov 17, 2004 2:39 pm Post subject: |
|
|
 Yatiri
Joined: 25 May 2002 Posts: 664 Location: South East London
|
What is not being validated?
The MRM does not support full validation against a schema since the internal message model is proprietary to WBIMB and is not DOM. |
|
Back to top |
|
 |
Ramphart |
Posted: Thu Nov 18, 2004 12:29 am Post subject: |
|
|
 Disciple
Joined: 21 Jul 2004 Posts: 150 Location: South Africa, JHB
|
Hi,
I've found that the incoming message does not get validated until you start interogating particular fields. i.e. setting inputroot = outputroot will not allow validation to kick in.
This is what I do: Wire a trace node to the out terminal of the MQInput node. You can set the Destination in the Trace Node to "None". This will force the full message to be evaluated and Validation will be done same time.  _________________ Applications Architect |
|
Back to top |
|
 |
shanson |
Posted: Thu Nov 18, 2004 2:09 am Post subject: |
|
|
 Partisan
Joined: 17 Oct 2003 Posts: 344 Location: IBM Hursley
|
The default setting for the validation 'Timing' property is 'Deferred' - this means that validation will only take place as and when the message is parsed. As the MRM parses on demand, 'Deferred' can not be guaranteed to validate the whole message, it all depends on which bits you reference.
If you want a message to be parsed and validated straight away then change the 'Timing' property to 'Complete' or 'Immediate'. The help explains the difference between the two. You don't need to wire in trace nodes.
Note that the 'Timing' property is only acted upon if the master 'Validate' property is set to other than 'None'. This means that there is no magic switch to force a complete parse of a message, unless you validate it at the same time. This restriction will be lifted in a future release.
In V5 the tooling message model is XML Schema, but this pure XML Schema model is not preserved intact into the runtime. Consequently there are a few differences between XML Schema validation and MRM validation. These differences are documented in the help. |
|
Back to top |
|
 |
Ramphart |
Posted: Thu Nov 18, 2004 5:05 am Post subject: |
|
|
 Disciple
Joined: 21 Jul 2004 Posts: 150 Location: South Africa, JHB
|
If I can remember correctly, I went the Trace node route because the exception does not propagate to the CATCH terminal if the Timing mode is IMMEDIATE on the MQInput node. At least this is how it works in V2.1 _________________ Applications Architect |
|
Back to top |
|
 |
shanson |
Posted: Thu Nov 18, 2004 6:35 am Post subject: |
|
|
 Partisan
Joined: 17 Oct 2003 Posts: 344 Location: IBM Hursley
|
Good point. I think it goes down the FAILURE terminal instead. |
|
Back to top |
|
 |
narendra68 |
Posted: Thu Nov 18, 2004 7:44 am Post subject: |
|
|
Apprentice
Joined: 17 Nov 2004 Posts: 30
|
Thanks guys !.
It is working with trace node.
You all saved my day...
Regards
Narendra _________________ Narendra |
|
Back to top |
|
 |
|