ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Extra xsi element after Mapping and DFDL nil value for EOS

Post new topic  Reply to topic
 Extra xsi element after Mapping and DFDL nil value for EOS « View previous topic :: View next topic » 
Author Message
aslam_kumhar
PostPosted: Mon Feb 02, 2015 11:25 pm    Post subject: Extra xsi element after Mapping and DFDL nil value for EOS Reply with quote

Novice

Joined: 30 Oct 2014
Posts: 22

Hi Everyone,
I don't know the exact reason behind this but sometimes there's an extra element named "http://www.w3.org/2000/xmlns/:xsi " with value "http://www.w3.org/2001/XMLSchema-instance" added in my message after mapping node or from input queue. The problem get resolved when i redeploy but one of my colleague is continuously facing this problem. I have installed fix pack for iib and toolkit also (IIB and Toolkit 9.0.0.2) but no luck the same message flow is working fine on my development environment. Here's a trace of the message:

Code:

( ['GENERICROOT' : 0x391ebec0]
  (0x01000000:Name):Properties = ( ['MQPROPERTYPARSER' : 0x38e1be40]
    (0x03000000:NameValue):MessageSet             = '' (CHARACTER)
    (0x03000000:NameValue):MessageType            = '{}:ISO8583_1987_1Link' (CHARACTER)
    (0x03000000:NameValue):MessageFormat          = '' (CHARACTER)
    (0x03000000:NameValue):Encoding               = 546 (INTEGER)
    (0x03000000:NameValue):CodedCharSetId         = 437 (INTEGER)
    (0x03000000:NameValue):Transactional          = FALSE (BOOLEAN)
    (0x03000000:NameValue):Persistence            = FALSE (BOOLEAN)
    (0x03000000:NameValue):CreationTime           = GMTTIMESTAMP '2015-01-30 06:42:34.872002' (GMTTIMESTAMP)
    (0x03000000:NameValue):ExpirationTime         = -1 (INTEGER)
    (0x03000000:NameValue):Priority               = 0 (INTEGER)
    (0x03000000:NameValue):ReplyIdentifier        = X'' (BLOB)
    (0x03000000:NameValue):ReplyProtocol          = 'ADAPTOR' (CHARACTER)
    (0x03000000:NameValue):Topic                  = NULL
    (0x03000000:NameValue):ContentType            = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourceType     = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourceToken    = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourcePassword = '' (CHARACTER)
    (0x03000000:NameValue):IdentitySourceIssuedBy = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedType     = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedToken    = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedPassword = '' (CHARACTER)
    (0x03000000:NameValue):IdentityMappedIssuedBy = '' (CHARACTER)
  )
  (0x01000000:Name):DFDL       = ( ['dfdl' : 0x391ec1f0]
    (0x01000000:Name):ISO8583_1987_1Link = (
      (0x03000000:NameValue):MTI                                        = 200 (INTEGER)
      (0x03000000:NameValue):PrimaryAccountNumber_002                   = '5893888888888888888' (CHARACTER)
      (0x01000000:Name     ):ProcessingCode_003                         = (
        (0x03000000:NameValue):ProcessingCodeAction      = '62' (CHARACTER)
        (0x03000000:NameValue):ProcessingCodeFromAccount = '00' (CHARACTER)
        (0x03000000:NameValue):ProcessingCodeToAccount   = '00' (CHARACTER)
      )
      (0x03000000:NameValue):AmountTransaction_004                      = 1000.00 (DECIMAL)
      (0x03000000:NameValue):TransmissionDatetime_007                   = TIMESTAMP '1970-04-23 13:15:40' (TIMESTAMP)
      (0x03000000:NameValue):SystemsTraceAuditNumber_011                = '672030' (CHARACTER)
      (0x03000000:NameValue):TimeLocalTransaction_012                   = TIME '13:15:40' (TIME)
      (0x03000000:NameValue):DateLocalTransaction_013                   = DATE '1970-11-20' (DATE)
      (0x01000000:Name     ):MerchantType_018                           =
      (0x03000000:NameValue):PointOfServiceEntryMode_022                = '000' (CHARACTER)
      (0x03000000:NameValue):NetworkInternationalIdentifier_024         = 'INO' (CHARACTER)
      (0x01000000:Name     ):AcquiringInstitutionIdentificationCode_032 =
      (0x03000000:NameValue):RetrievalReferenceNumber_037               = '000000004494' (CHARACTER)
      (0x01000000:Name     ):CardAcceptorTerminalIdentification_041     =
      (0x01000000:Name     ):CardAcceptorNameLocation_043               =
      (0x03000000:NameValue):CurrencyCodeTransaction_049                = '586' (CHARACTER)
      (0x03000000:NameValue):CurrencyCodeSettlement_050                 = '586' (CHARACTER)
      (0x03000000:NameValue):AccountIdentification1_102                 = '1236547896' (CHARACTER)
      (0x01000000:Name     ):ReservedPrivate_120                        = (
        (0x03000000:NameValue):ToAccount      = NULL
        (0x03000000:NameValue):SourceIMD      = NULL
        (0x03000000:NameValue):DestinationIMD = NULL
        (0x03000000:NameValue):Identifier     = 'D' (CHARACTER)
      )
      (0x03000000:NameValue)http://www.w3.org/2000/xmlns/:xsi           = 'http://www.w3.org/2001/XMLSchema-instance' (CHARACTER)
    )
  )
)


One more thing is there a way using DFDL by which if End of Stream is reached during parsing for an element i could specify its and all other subsequent elements value to nil.
Back to top
View user's profile Send private message
kimbert
PostPosted: Tue Feb 03, 2015 6:14 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

The xsi:type attribute is for use by XML processors. DFDL should ignore it. Is it actually causing a problem?

The other question needs some clarification. Do you want to
a) allow some fields to be omitted, and receive a message tree that omits the missing fields
or
b) insert every missing field into the message tree with the value NULL.

If b), why is that better than a)?
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
aslam_kumhar
PostPosted: Thu Feb 05, 2015 4:56 am    Post subject: Reply with quote

Novice

Joined: 30 Oct 2014
Posts: 22

Sorry for replying late.

kimbert wrote:
The xsi:type attribute is for use by XML processors. DFDL should ignore it. Is it actually causing a problem?


yes my message format is iso8583 and after mapping i generate bitmaps using esql so it add an extra bitmap for xsi element now i can take care of it in esql but this behaviour is unpredictable sometimes it occurs sometimes is don't.

kimbert wrote:
The other question needs some clarification. Do you want to
a) allow some fields to be omitted, and receive a message tree that omits the missing fields
or
b) insert every missing field into the message tree with the value NULL.

If b), why is that better than a)?


its "a" I want field to be omitted or "nil" but its the last parsable field with type "Type_ans_LLL" prefixed length.
Back to top
View user's profile Send private message
aslam_kumhar
PostPosted: Sat Feb 07, 2015 2:35 am    Post subject: Reply with quote

Novice

Joined: 30 Oct 2014
Posts: 22

Guys any help will be really appreciated.
Back to top
View user's profile Send private message
kimbert
PostPosted: Sat Feb 07, 2015 7:10 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
my message format is iso8583 and after mapping i generate bitmaps using esql so it add an extra bitmap for xsi element now i can take care of it in esql
I don't know why that is happening, but I suggest that you adjust your ESQL so that it ignores any element that is in the xsi namespace.
Quote:
its "a" I want field to be omitted or "nil"
That's both a) and b), which does not make sense. A field cannot be omitted from the message tree AND have the value NULL. Which one do you want?
( btw, 'nil' is represented as NULL in the message tree ).
Quote:
its the last parsable field with type "Type_ans_LLL" prefixed length.
I don't understand what that means. Are you saying that the final field in your model has lengthKind='prefixed'?
We will probably find a solution much faster if you supply an example of what you are trying to do, or else explain it in a lot more detail.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
aslam_kumhar
PostPosted: Sat Feb 07, 2015 7:41 am    Post subject: Reply with quote

Novice

Joined: 30 Oct 2014
Posts: 22

kimbert wrote:

I don't know why that is happening, but I suggest that you adjust your ESQL so that it ignores any element that is in the xsi namespace.

Fair enough, I will deal with it in ESQL.

kimbert wrote:

That's both a) and b), which does not make sense. A field cannot be omitted from the message tree AND have the value NULL. Which one do you want?
( btw, 'nil' is represented as NULL in the message tree ).

My mistake for creating confusion. I think what you mean by omitted is that its occurrence be 0 and if the occurrence is 1 or more then field cannot be omitted but you can specify nil using nillable properties of dfdl.

kimbert wrote:

I don't understand what that means. Are you saying that the final field in your model has lengthKind='prefixed'?
We will probably find a solution much faster if you supply an example of what you are trying to do, or else explain it in a lot more detail.

Yeah the field in question has lengthKind = prefixed. Now my condition is that the field in question is the last field with occurrence 1 all other fields beyond that has occurrence 0, but there is no data for this field(in fact parser has reached at the end of stream), i cannot set the nillable properties because i do not know what to set in 'nil value' property of dfdl for end of stream.

Does that clarify? If not then i can construct a test dfdl model with a test input and post it here.

Thanks for your reponse.
Back to top
View user's profile Send private message
kimbert
PostPosted: Mon Feb 09, 2015 2:28 am    Post subject: Reply with quote

Jedi Council

Joined: 29 Jul 2003
Posts: 5542
Location: Southampton

Quote:
I think what you mean by omitted is that its occurrence be 0 and if the occurrence is 1 or more then field cannot be omitted but you can specify nil using nillable properties of dfdl.
Possibly. But I don't think minOccurs is relevant to this part of the conversation.
When I say 'omitted from the message tree' I mean 'not in the message tree'. If a field is not in the message tree then it cannot have a value. So you cannot have both a) and b).

If the prefixed-length element is a complex element then you cannot ( in any version of IIB up to v9.0.0.2 ) parse it as a nil value.
If it is simple then you can.
_________________
Before you criticize someone, walk a mile in their shoes. That way you're a mile away, and you have their shoes too.
Back to top
View user's profile Send private message
aslam_kumhar
PostPosted: Mon Feb 09, 2015 8:20 am    Post subject: Reply with quote

Novice

Joined: 30 Oct 2014
Posts: 22

kimbert wrote:

If the prefixed-length element is a complex element then you cannot ( in any version of IIB up to v9.0.0.2 ) parse it as a nil value.
If it is simple then you can.

element is of simple type not complex.

I will create a test message model along with test message and post it here in a day or 2 cause i am quite busy right now.

Appreciate your help.
Back to top
View user's profile Send private message
aslam_kumhar
PostPosted: Tue Feb 24, 2015 10:33 am    Post subject: Reply with quote

Novice

Joined: 30 Oct 2014
Posts: 22

aslam_kumhar wrote:
kimbert wrote:

If the prefixed-length element is a complex element then you cannot ( in any version of IIB up to v9.0.0.2 ) parse it as a nil value.
If it is simple then you can.

element is of simple type not complex.

I will create a test message model along with test message and post it here in a day or 2 cause i am quite busy right now.

Appreciate your help.


Sorry for replying late.
I have created another thread for this particular issue.
Please submit your suggestions at http://www.mqseries.net/phpBB2/viewtopic.php?p=388844
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » WebSphere Message Broker (ACE) Support » Extra xsi element after Mapping and DFDL nil value for EOS
Jump to:  



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
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.