Author |
Message
|
drcas |
Posted: Tue Mar 01, 2005 5:36 am Post subject: MRM to XML attributes |
|
|
 Apprentice
Joined: 03 May 2002 Posts: 26
|
We are migrating 2.1 flows to 5.0. The flows use a ResetContentDescriptor to change from MRM to XML. In the 2.1 code the XML that is generated has attributes for the first XML element; however when the code is run through 5.0, the attributes in the XML are rendered as XML elements. Is there a difference between 5.0 and 2.1 in the way XML attributes are mapped? |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Mar 01, 2005 5:49 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
Does your MRM model indicate that the fields in question should be rendered as Attributes, or as Elements? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
drcas |
Posted: Tue Mar 01, 2005 7:34 am Post subject: |
|
|
 Apprentice
Joined: 03 May 2002 Posts: 26
|
The fields are modeled as attributes. |
|
Back to top |
|
 |
jefflowrey |
Posted: Tue Mar 01, 2005 8:27 am Post subject: |
|
|
Grand Poobah
Joined: 16 Oct 2002 Posts: 19981
|
What are you doing to execute the conversion? You mentioned "mapping" - are you using a Mapping node to copy records from an MRM modeled message with a CWF/TDS format to a different MRM modeled message with an XML format?
Or are you merely instructing the system to change the physical format of a single MRM model?
Where do you see the attributes improperly rendered as elements? In your traces? Or in the output message? _________________ I am *not* the model of the modern major general. |
|
Back to top |
|
 |
drcas |
Posted: Tue Mar 01, 2005 11:18 am Post subject: |
|
|
 Apprentice
Joined: 03 May 2002 Posts: 26
|
Actually it looks like all the RCD is doing is resetting the message domain to XML, resetting the message set to NULL, resseting the message type to NULL, and resetting the message format to XML.
This is what the message looks like before the RCD:
(
(0x01000000):Properties = (
(0x03000000):MessageSet = 'EKF3BP8002001'
(0x03000000):MessageType = 'SiebelMessage'
(0x03000000):MessageFormat = 'XML'
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2005-03-01 19:14:14.770'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'MQI.OEI.AIVPMV'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Format = 'MQSTR '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 8
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 0
(0x03000000):MsgId = X'414d5120484e41573553463151313120a961244220005f35'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ' '
(0x03000000):ReplyToQMgr = 'HNAW5SF1Q11 '
(0x03000000):UserIdentifier = 'NX03425 '
(0x03000000):AccountingToken = X'160105150000004b2c138107e96f195419ea1def03000000000000000000000b'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = 'C:\WINDOWS\system32\mmc.exe '
(0x03000000):PutDate = DATE '2005-03-01'
(0x03000000):PutTime = GMTTIME '19:14:14.770'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000021):MRM = (
(0x03000000):MessageId = ''
(0x03000000):MessageType = 'Integration Object'
(0x03000000):IntObjectFormat = 'Siebel Hierarchical'
(0x03000000):IntObjectName = 'OEI Vehicle Prod Market Values IO'
(0x03000000):DateReceived = '03/01/2005 14:14:01'
(0x0300000B):ProcessType = 'CONNECTOR'
(0x0300000B):ProcessName = 'VEHICLE PROD MARKET VALUES'
(0x0300000B):ProcessVersion = '1.0'
(0x03000000):SubscriptionNumber = 'SUBN'
(0x03000000):DataReferenceLanguage = 'ENU'
(0x03000000):MessageReferenceLanguage = 'ENU'
(0x03000000):DateFormat = 'MM/DD/YYYY'
(0x03000000):DecimalSeparator = '.'
(0x03000000):HoursCycle = '12'
(0x03000000):DateTransferred = '12/05/2004'
(0x03000000):PartnerReference = 'PREF'
(0x03000000):BPId = 'BPId'
(0x03000000):CodePage = 'UTF-8'
(0x01000000):ListOfOEIInterfaceVehicleProdMarketValuesIo = (
(0x01000000):VehicleProdMarketValues = (
(0x03000000):CustomerIdBrand = 'MICHELIN'
(0x03000000):VehicleOEMProject = 'OEMPROJECT'
(0x03000000):VehicleProdLocationId = 'VEHLOCID'
(0x03000000):ProductionYear = '2005'
(0x03000000):ForecastVehicleMarketQuantity = '12345'
(0x03000000):Comments = 'THIS IS A TEST OF VPMV'
(0x03000000):OEIPrimaryOrganizationId = 'OEI Organization'
)
)
)
)
AND this is after the RCD:
(
(0x01000000):Properties = (
(0x03000000):MessageSet = ''
(0x03000000):MessageType = ''
(0x03000000):MessageFormat = 'XML'
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Transactional = TRUE
(0x03000000):Persistence = FALSE
(0x03000000):CreationTime = GMTTIMESTAMP '2005-03-01 19:14:14.770'
(0x03000000):ExpirationTime = -1
(0x03000000):Priority = 0
(0x03000000):ReplyIdentifier = X'000000000000000000000000000000000000000000000000'
(0x03000000):ReplyProtocol = 'MQ'
(0x03000000):Topic = NULL
)
(0x01000000):MQMD = (
(0x03000000):SourceQueue = 'MQI.OEI.AIVPMV'
(0x03000000):Transactional = TRUE
(0x03000000):Encoding = 546
(0x03000000):CodedCharSetId = 437
(0x03000000):Format = 'MQSTR '
(0x03000000):Version = 2
(0x03000000):Report = 0
(0x03000000):MsgType = 8
(0x03000000):Expiry = -1
(0x03000000):Feedback = 0
(0x03000000):Priority = 0
(0x03000000):Persistence = 0
(0x03000000):MsgId = X'414d5120484e41573553463151313120a961244220005f35'
(0x03000000):CorrelId = X'000000000000000000000000000000000000000000000000'
(0x03000000):BackoutCount = 0
(0x03000000):ReplyToQ = ' '
(0x03000000):ReplyToQMgr = 'HNAW5SF1Q11 '
(0x03000000):UserIdentifier = 'NX03425 '
(0x03000000):AccountingToken = X'160105150000004b2c138107e96f195419ea1def03000000000000000000000b'
(0x03000000):ApplIdentityData = ' '
(0x03000000):PutApplType = 11
(0x03000000):PutApplName = 'C:\WINDOWS\system32\mmc.exe '
(0x03000000):PutDate = DATE '2005-03-01'
(0x03000000):PutTime = GMTTIME '19:14:14.770'
(0x03000000):ApplOriginData = ' '
(0x03000000):GroupId = X'000000000000000000000000000000000000000000000000'
(0x03000000):MsgSeqNumber = 1
(0x03000000):Offset = 0
(0x03000000):MsgFlags = 0
(0x03000000):OriginalLength = -1
)
(0x01000010):XML = (
(0x05000018):XML = (
(0x06000011): = '1.0'
(0x06000012): = 'ibm-437_P100-1995'
)
(0x05000020):SiebelMessage =
(0x06000018): = 'MRM Generated XML Output on :Tue Mar 01 14:14:14 2005'
(0x01000000):SiebelMessage = (
(0x01000000):MessageId =
(0x01000000):MessageType = (
(0x02000000): = 'Integration Object'
)
(0x01000000):IntObjectFormat = (
(0x02000000): = 'Siebel Hierarchical'
)
(0x01000000):IntObjectName = (
(0x02000000): = 'OEI Vehicle Prod Market Values IO'
)
(0x01000000):DateReceived = (
(0x02000000): = '03/01/2005 14:14:01'
)
(0x01000000):ProcessType = (
(0x02000000): = 'CONNECTOR'
)
(0x01000000):ProcessName = (
(0x02000000): = 'VEHICLE PROD MARKET VALUES'
)
(0x01000000):ProcessVersion = (
(0x02000000): = '1.0'
)
(0x01000000):SubscriptionNumber = (
(0x02000000): = 'SUBN'
)
(0x01000000):DataReferenceLanguage = (
(0x02000000): = 'ENU'
)
(0x01000000):MessageReferenceLanguage = (
(0x02000000): = 'ENU'
)
(0x01000000):DateFormat = (
(0x02000000): = 'MM/DD/YYYY'
)
(0x01000000):DecimalSeparator = (
(0x02000000): = '.'
)
(0x01000000):HoursCycle = (
(0x02000000): = '12'
)
(0x01000000):DateTransferred = (
(0x02000000): = '12/05/2004'
)
(0x01000000):PartnerReference = (
(0x02000000): = 'PREF'
)
(0x01000000):BPId = (
(0x02000000): = 'BPId'
)
(0x01000000):CodePage = (
(0x02000000): = 'UTF-8'
)
(0x01000000):ListOfOEIInterfaceVehicleProdMarketValuesIo = (
(0x01000000):VehicleProdMarketValues = (
(0x01000000):CustomerIdBrand = (
(0x02000000): = 'MICHELIN'
)
(0x01000000):VehicleOEMProject = (
(0x02000000): = 'OEMPROJECT'
)
(0x01000000):VehicleProdLocationId = (
(0x02000000): = 'VEHLOCID'
)
(0x01000000):ProductionYear = (
(0x02000000): = '2005'
)
(0x01000000):ForecastVehicleMarketQuantity = (
(0x02000000): = '12345'
)
(0x01000000):Comments = (
(0x02000000): = 'THIS IS A TEST OF VPMV'
)
(0x01000000):OEIPrimaryOrganizationId = (
(0x02000000): = 'OEI Organization'
)
)
)
)
)
) |
|
Back to top |
|
 |
Craig B |
Posted: Tue Mar 01, 2005 11:29 am Post subject: |
|
|
Partisan
Joined: 18 Jun 2003 Posts: 316 Location: UK
|
Hi,
An RCD node requests that the current owning parser serialise its message tree into a bitstream, and then passes this over to the new named parser that is specified in the RCD node. From the XML tree you have shown, it can be seen that no XML attributes have been parsed as you have stated. This would suggest that when the MRM message tree is serialised against the MRM message definitions, the fields have not been matched against your definition. Only when a field in the message tree is matched against the dictionary can the physical format attributes be used, and hence render a field as an XML tag or XML Element. If no match is made against the dictionary then by default, the MRM-XML physical format will render a field as an XML tag. Possible reasons for this are :
1) The type composition sequence of the parent complex type is a sequence or ordered set, but the fields in the message tree are not in the same order as the message definition.
2) The message name specified cannot be found, and so the entire message is seen as self-defining.
3) A previous sibling of the structure that contains the attribute was not matched against the message definitions and so the message is already self-defining at that point.
I would compare the MRM message tree against your MRM message definition to see if you can see any differences. If you cannot spot any, then one trick to use is to open the MQInput node, and go to the Validation tab and set this to Content and Value with a Timing of Immediate. Validation errors will now be thrown for where the message tree does not match the model.
If you still cannot see why your attributes are being rendered as tags then I can take a look at your flow, messageSet and sample data. _________________ Regards
Craig |
|
Back to top |
|
 |
|