|
RSS Feed - WebSphere MQ Support
|
RSS Feed - Message Broker Support
|
 |
|
IIB 9.0.0.2 BLOB to XML with datatypes |
« View previous topic :: View next topic » |
Author |
Message
|
ChiefBrody |
Posted: Wed Mar 18, 2015 5:16 am Post subject: IIB 9.0.0.2 BLOB to XML with datatypes |
|
|
Newbie
Joined: 18 Mar 2015 Posts: 3
|
Hi,
we mostly use the IIB 9.0.0.2 to communicate between C/S-systems and the IBM mainframe. Sometimes we run into the problem that we get characters from the C/S-system like "ě", that can't be mapped to EBCDIC 1141 and vice versa.
We have now designed our own CCSID that maps these characters to harmless codepoints ("ě" => "e"). This works fine for single string-fields but not for xml-messages in complete.
First approach:
Our plan was to make a BLOB from the incoming SOAP- or XML-message with our self designed CCSID an then to "reparse" the "cleaned" BLOB to an XML. This also works, but unfortunately the datatypes get lost. The resulting XML has only character fields.
Here's the code I tried in a compute node where validation is set to "value and content":
DECLARE options INTEGER BITOR (RootBitStream, ValidateContentAndValue, ValidateException);
DECLARE cleanedBLOB BLOB ASBITSTREAM(InputRoot.XMLNSC, InputRoot.Properties.Encoding, SelfDesignedCCSID, , , , options);
CREATE LASTCHILD OF Environment DOMAIN('XMLNSC') PARSE(cleanedBLOB, InputRoot.Properties.Encoding, InputRoot.Properties.CodedCharSetId, , , , options);
I tried this also with the SOAP-parser with the same result.
Is there a way to use the schema information from the wsdl that is present within the application? Most forum posts I've found deal with message set names, but I do not use MRM in IIB 9.0.0.2 as suggested by IBM itself.
Second approach:
We tried to use our self designed CCSID after the mapping, at the point where we make a BLOB from the mapped DFDL-message with the ASBITSTREAM function. This results in the following error:
ParserException
File:CHARACTER:F:\build\slot1\S900_P\src\MTI\MTIforBroker\DfdlParser\ImbDFDLErrorHandler.cpp
Line:INTEGER:313
Function:CHARACTER:ImbDFDLErrorHandler::handleSerializerErrors
Type:CHARACTER:ComIbmSOAPInputNode
Name:CHARACTER:MyFlow#FCMComposite_1_1
Label:CHARACTER:MyFlow.SOAP Input
Catalog:CHARACTER:BIPmsgs
Severity:INTEGER:3
Number:INTEGER:5832
Text:CHARACTER:An error occurred whilst serializing with DFDL
Insert
Type:INTEGER:5
Text:CHARACTER:CTDV1110E: CTDV1110E : DFDL-Eigenschaft 'encoding' muss ein gültiger IANA-Zeichensatz oder eine gültige ID des codierten Zeichensatzes oder ein Ausdruck sein, der eine der folgenden Möglichkeiten zurückgibt: Codierung '1151'. 痰⥗.
Insert
Type:INTEGER:5
Text:CHARACTER:/DFDL/REQUEST/HEADER/OPERATION
Any ideas?
Thanx |
|
Back to top |
|
 |
fjb_saper |
Posted: Wed Mar 18, 2015 5:29 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
So you're using a German code page and probably receiving eastern European stuff. Why not keep it in UTF-8 ? Is your MF set to a specific width in bytes? You would then have to check that the width in characters does not exceed the max width in bytes...
Anyways this is the trouble you will always run into when you try to move from a multi-byte character code to a single byte character code... _________________ MQ & Broker admin |
|
Back to top |
|
 |
ChiefBrody |
Posted: Wed Mar 18, 2015 11:49 pm Post subject: |
|
|
Newbie
Joined: 18 Mar 2015 Posts: 3
|
Yes, the EBCDIC-CCSID 1141 is for Germany and Austria (extended 273 with € sign). As far as I know there is no EBCDIC-CCSID for eastern European countries. There is a international one, but it does not include all the critical characters.
And yes, we receive eastern European stuff, because our C/S-systems are running all over Europe for many years and the developers never thought of the mainframe backend, so we not only receive critical data but allready have it stored on databases ... It's a fact we have to deal with.
Well, the MF of course is capable to deal with multi-byte character codes but are actually running more than 6000 modules are not.
So is there a solution to get a XML-message from a BLOB that includes alle the datatypes corresonding to a xml schema? |
|
Back to top |
|
 |
fjb_saper |
Posted: Thu Mar 19, 2015 5:08 am Post subject: |
|
|
 Grand High Poobah
Joined: 18 Nov 2003 Posts: 20756 Location: LI,NY
|
ChiefBrody wrote: |
Yes, the EBCDIC-CCSID 1141 is for Germany and Austria (extended 273 with € sign). As far as I know there is no EBCDIC-CCSID for eastern European countries. There is a international one, but it does not include all the critical characters.
And yes, we receive eastern European stuff, because our C/S-systems are running all over Europe for many years and the developers never thought of the mainframe backend, so we not only receive critical data but allready have it stored on databases ... It's a fact we have to deal with.
Well, the MF of course is capable to deal with multi-byte character codes but are actually running more than 6000 modules are not.
So is there a solution to get a XML-message from a BLOB that includes alle the datatypes corresponding to a xml schema? |
Thanks for your precision, but your question is completely twisted and specious. The datatype you are referring to is text. The text comes from eastern European countries and has characters that do not translate into your CCSID of choice. This is not about booleans or number formatting.
You will just have to live with the fact. And do some research, I believe there do exist some EBCDIC CCSIDs for Slavic countries and such that would potentially cover your needs... Now you may not have those character sets installed on your MF... That is a different story...
Have fun  _________________ MQ & Broker admin |
|
Back to top |
|
 |
ChiefBrody |
Posted: Thu Mar 19, 2015 12:18 pm Post subject: |
|
|
Newbie
Joined: 18 Mar 2015 Posts: 3
|
Sorry, but the question that I've posted got out of focus. Any discussion about the capabilities of our mainframe or possible EBCDIC-CCSIDs doesn't help me.
My question was, if it's possible to get a schema validated xml with correct datatypes from a BLOB? If you don't know an answer - no problem.
Anyway, today we found a solution/workaround for our problem, that does exactly what we want.
Thanx for your efforts. |
|
Back to top |
|
 |
kimbert |
Posted: Thu Mar 19, 2015 1:44 pm Post subject: |
|
|
 Jedi Council
Joined: 29 Jul 2003 Posts: 5542 Location: Southampton
|
Quote: |
today we found a solution/workaround for our problem, that does exactly what we want |
Would you mind sharing the details for the benefit of others who visit this forum? _________________ 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 |
|
 |
|
|
 |
|
Page 1 of 1 |
|
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
|
|
|
|