| Author | 
		  Message
		 | 
		
		  | aslam_kumhar | 
		  
		    
			  
				 Posted: Mon Feb 02, 2015 11:25 pm    Post subject: Extra xsi element after Mapping and DFDL nil value for EOS | 
				     | 
			   
			 
		   | 
		
		
		   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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kimbert | 
		  
		    
			  
				 Posted: Tue Feb 03, 2015 6:14 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Council
 
 Joined: 29 Jul 2003 Posts: 5543 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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | aslam_kumhar | 
		  
		    
			  
				 Posted: Thu Feb 05, 2015 4:56 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | aslam_kumhar | 
		  
		    
			  
				 Posted: Sat Feb 07, 2015 2:35 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   Novice
 
 Joined: 30 Oct 2014 Posts: 22
  
  | 
		  
		    
			  
				| Guys any help will be really appreciated. | 
			   
			 
		   | 
		
		
		  | Back to top | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kimbert | 
		  
		    
			  
				 Posted: Sat Feb 07, 2015 7:10 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Council
 
 Joined: 29 Jul 2003 Posts: 5543 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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | aslam_kumhar | 
		  
		    
			  
				 Posted: Sat Feb 07, 2015 7:41 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | kimbert | 
		  
		    
			  
				 Posted: Mon Feb 09, 2015 2:28 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		    Jedi Council
 
 Joined: 29 Jul 2003 Posts: 5543 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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | aslam_kumhar | 
		  
		    
			  
				 Posted: Mon Feb 09, 2015 8:20 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | aslam_kumhar | 
		  
		    
			  
				 Posted: Tue Feb 24, 2015 10:33 am    Post subject:  | 
				     | 
			   
			 
		   | 
		
		
		   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 | 
		  
		  	
		   | 
		
		
		    | 
		
		
		  | 
		    
		   |