Author |
Message
|
nk |
Posted: Thu Jul 05, 2012 2:45 am Post subject: Tree trace |
|
|
Novice
Joined: 05 Jul 2012 Posts: 19
|
i've message set
Code: |
CstInfo
CstDtl
{Local ComplexType}
CstSrchKeys
CstAttr
CstAttrName
CstAttrValue |
but when i'm doing mapping for the field 'CstAttrName', i'm getting exception while parsing
(0x01000000:Name ):ParserException = (
(0x03000000:NameValue):File = 'F:\build\S700_P\src\MTI\MTIforBroker\GenXmlParser4\ImbXMLNSCDocHandler.cpp' (CHARACTER)
(0x03000000:NameValue):Line = 627 (INTEGER)
(0x03000000:NameValue):Function = 'ImbXMLNSCDocHandler::handleParseErrors' (CHARACTER)
(0x03000000:NameValue):Type = 'ComIbmWSInputNode' (CHARACTER)
(0x03000000:NameValue):Catalog = 'BIPmsgs' (CHARACTER)
(0x03000000:NameValue):Severity = 3 (INTEGER)
(0x03000000:NameValue):Number = 5026 (INTEGER)
(0x03000000:NameValue):Text = 'A schema validation error has occurred while validating the message tree' (CHARACTER)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 2 (INTEGER)
(0x03000000:NameValue):Text = '5012' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 2 (INTEGER)
(0x03000000:NameValue):Text = '1' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 2 (INTEGER)
(0x03000000:NameValue):Text = '1' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 2 (INTEGER)
(0x03000000:NameValue):Text = '4898' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = 'cvc-complex-type.3.2: Attribute "NS1:CstAttrName" is not allowed to appear in element "NS1:CstAttr".' (CHARACTER)
)
(0x01000000:Name ):Insert = (
(0x03000000:NameValue):Type = 5 (INTEGER)
(0x03000000:NameValue):Text = '/Root/XMLNSC' (CHARACTER)
)
)
Last edited by nk on Thu Jul 05, 2012 5:02 am; edited 1 time in total |
|
Back to top |
|
 |
kimbert |
Posted: Thu Jul 05, 2012 4:56 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Please use the [Edit] button and add [c o d e] tags around the trace and the message structure. It's not difficult, and it will make it a lot easier for us to read your question.
( You need to log in to make the [Edit] button appear ) |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jul 05, 2012 5:38 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
Why have you built a message set when you're using the XMLNSC domain? _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Jul 05, 2012 5:41 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
Why have you built a message set when you're using the XMLNSC domain? |
Nothing wrong with that - XMLNSC ( in v6.1 and v7 ) uses message sets for validation. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Jul 05, 2012 5:46 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Your XML document does not match the xsds in the message set. The xsds are created from the message definition files. You may *think* that your message set is correct, but it is very likely that XMLNSC is correct. Unfortunately, posting the structure does not help because we cannot see the details associated with the names. Maybe you have defined CstAttrName as an element instead of an attribute?
If you cannot find the problem, then extract the smallest relevant part of the message definition file and paste it here - in [c o d e] tags please. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jul 05, 2012 5:59 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
kimbert wrote: |
Quote: |
Why have you built a message set when you're using the XMLNSC domain? |
Nothing wrong with that - XMLNSC ( in v6.1 and v7 ) uses message sets for validation. |
Point taken. I've have expected the OP to say he had a schema rather than a message set in that context, but perhaps that's me being pedantic. _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Jul 05, 2012 6:13 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
@Vitor: Yes - you're right about that. The OP's terminology was a smidgen short of perfection. |
|
Back to top |
|
 |
Vitor |
Posted: Thu Jul 05, 2012 6:36 am Post subject: |
|
|
 Grand High Poobah
Joined: 11 Nov 2005 Posts: 26093 Location: Texas, USA
|
kimbert wrote: |
@Vitor: Yes - you're right about that. The OP's terminology was a smidgen short of perfection. |
I've not heard "smidgen" in years! I'm getting flashbacks to my childhood....
.....yeeeeeeeeeeeeeessssssssssssshhhhhhhhhhhhhh...............  _________________ Honesty is the best policy.
Insanity is the best defence. |
|
Back to top |
|
 |
nk |
Posted: Fri Jul 06, 2012 6:04 am Post subject: |
|
|
Novice
Joined: 05 Jul 2012 Posts: 19
|
@Vitor  
@Kimbert in the msg set it's CstAttrName is an element which is coming under CstAttr and i've done mapping like
SET OutputRoot.ns1:CstInfo.ns1:CstDetl.ns1:CstSrchKeys.ns1:CstAtt.ns1:CstAttrValue = InputRoot.ns2:CstDtl.ns2:CstSrchKeys.ns2:CstAtt.Value;
OutRoot which is to be created according to the input coming from upstream
There is some more field at level "CstDtl". Here i'm not getting any error. |
|
Back to top |
|
 |
kimbert |
Posted: Fri Jul 06, 2012 6:26 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
in the msg set it's CstAttrName is an element |
That's your problem then. The XMLNSC parser has clearly told you that it is an attribute in your input XML. You should change it to an attribute in your message set.
Please note: XMLNSC does not use the XML physical format - that is for MRM only. You need to make CstAttrName a *real* attribute in the *logical* model.
If that does not work then please do the following:
- Open the message definition file in a text editor, and find the definition of element 'CstAttr'.
- Paste the definition of 'CstAttr' here. If the complex type is a global complex type, then please paste the complex type defintion instead.
- Paste a copy of your input XML ( or if that is too large, the part that relates to element CstAttr ) |
|
Back to top |
|
 |
nk |
Posted: Mon Jul 09, 2012 2:19 am Post subject: |
|
|
Novice
Joined: 05 Jul 2012 Posts: 19
|
XSD for the generating xml (OutputRootRef part)
Code: |
<xsd:complexType name="CstAttrType">
<xsd:sequence>
<xsd:element name="CstAttrName" type="String1"/>
<xsd:element name="CstAttrValue" type="xsd:string"/>
<xsd:element minOccurs="0" name="CstAttrDesc" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType> |
Input XML :
Code: |
<CstDtls>
<CstComponent>token</CstComponent>
<CstComponentValue>3.1E0</CstComponentValue>
<CstSrchKeys>
<CstAttr Name="nk" Value="nk"/>
</CstSrchKeys>
</CstDetails> |
whenever i setting validation as none i'm getting output as
(transformed XML)
Code: |
<NS1:CstSrchKeys>
<NS1:CstAttr NS1:CstAttrName="nk" NS1:CstAttrValue="nk"/>
</NS1:CstSrchKeys> |
[/code]
Last edited by nk on Mon Jul 09, 2012 4:09 am; edited 2 times in total |
|
Back to top |
|
 |
kimbert |
Posted: Mon Jul 09, 2012 3:29 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
I'm very confused. Your xsd is wrong in at least two ways:
- the names do not match the names in the input XML
- the attributes are modelled as elements
Do you understand what an attribute is? Do you understand how to create an attribute in your message definition?
Quote: |
whenever i setting validation as none i'm getting output as... |
Not sure whether you think this is a problem...but let's deal with one problem at a time. We can return to this when you have corrected your message definition. |
|
Back to top |
|
 |
nk |
Posted: Mon Jul 09, 2012 3:47 am Post subject: |
|
|
Novice
Joined: 05 Jul 2012 Posts: 19
|
actually i'm doing mapping in which it requires to transform one format of xml's into other format. for this i've two msg sets(given by client) one for incoming msg(XML) and other for transforming msg(XML). in the below case i dont hv to do with anything with d msg set for incoming xml. And mapping is done in the following ways
Code: |
SET OutputRootRef.A:CstInfo.A:CstDtl.A:CostSearchKeys.A:CstAttr.A:CstAttrName = InputRootRef.B:CstDtl.B:CstSrchKeys.B:CstAttr.Name
SET OutputRootRef.A:CstInfo.A:CstDtl.A:CostSearchKeys.A:CstAttr.A:CstAttrValue = InputRootRef.B:CstDtl.B:CstSrchKeys.B:CstAttr.Value;
|
[/code] |
|
Back to top |
|
 |
kimbert |
Posted: Mon Jul 09, 2012 3:54 am Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Please - we need to discuss one problem at a time. You have a problem with your input message set. It does not match your input XML. Fix that first. Do not discuss any other problem until you have fixed that. |
|
Back to top |
|
 |
nk |
Posted: Mon Jul 09, 2012 4:08 am Post subject: |
|
|
Novice
Joined: 05 Jul 2012 Posts: 19
|
Above XSd is for the generating XML (OutputRootRef part). i"m just taking taking values from the input xml in following way
Code: |
SET OutputRootRef.A:CstInfo.A:CstDtl.A:CostSearchKeys.A:CstAttr.A:CstAttrName = InputRootRef.B:CstDtl.B:CstSrchKeys.B:CstAttr.Name
|
the ouput xml which is being generated is having 'CstAttrName' and 'CstAttrValue' as an attributes but it should be element according to the above code. |
|
Back to top |
|
 |
|