In Microsoft BizTalk Server 2004, if a schedule tries to assign an XML document to a message that is outside a
Construct Message shape, the XML representation will be updated. However, the underlying message object will not be updated.
For example, a schedule receives a message that is named Message_1 in a
Receive shape. The message has a variable that is named
xmlDoc of type
XmlDocument and has the following code in an
Expression shape:
xmlDoc = Message_1;
// The following function that is in a referenced assembly modifies the XmlDocument.
DoModifications(xmlDoc);
Message_1 = xmlDoc;
Then, any subsequent reference to the XML representation of the Message_1 message returns the modified XmlDocument. However, references to the message itself will return the original data.
For example, a subsequent
Expression shape contains the following code:
xmlDoc = Message_1;
xmlDoc.Save(@"C:\Temp\message1.xml");
In this example, the saved file would contain the modified document. However, if you then add a
Send shape to the schedule to send the Message_1 message, the message that is sent would be the original, unmodified message.