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.