January 
	   3rd,
	     
	   2006
	 
	  
	  
		
		
		  
		  
		
		
      
      
    
    
		
		
	
	
	
Two fairly common operations in BizTalk Server 2004/6 are creating new messages from XML literal strings, as well as getting the XML text out of an existing BizTalk message in an orchestration.
The first option is very useful when creating new messages from scratch. However, the method I show here is not very useful for complex messages, because it would be very hard to maintain an read. For those scenarios, I really recommend Scott Colestock's option of creating messages from embedded resources in .NET assemblies; it's a much better option.
Here's some very small, yet useful piece of code to accomplish these tasks:
//
// XmlHelper.cs
//
// Author:
//    Tomas Restrepo (tomasr@mvps.org)
//
using System;
using System.IO;
using System.Xml;
using Microsoft.XLANGs.BaseTypes;
using System;
using System.IO;
using System.Xml;
using Microsoft.XLANGs.BaseTypes;
namespace Winterdom.BizTalk.Util
{
///
/// Helper BizTalk class to deal with XML Based
/// messages
///  
public class XmlHelper
{
///
/// Creates a typed BizTalk message
/// out of a string containing valid XML.
///  
/// 
/// This does not validate the message at all.
/// 
///
XML content
/// The BizTalk Message 
public static XmlDocument CreateMessage(string xml)
{
XmlDocument doc = new XmlDocument();
doc.LoadXml(xml);
return doc;
}
///
/// Returns a string containing the XML from the message
///  
///
Message
/// The xml 
public static string GetMessageXml(XLANGPart part)
{
Stream s = (Stream)part.RetrieveAs(typeof(Stream));
using ( StreamReader reader = new StreamReader(s) ) {
return reader.ReadToEnd();
}
}
} // class XmlHelper
} // namespace Winterdom.BizTalk.Util