A map is a transformation from one XML format into another. It is important that maps generate valid output, because otherwise you can send invalid XML to customers, trading partners, internal systems, and others. Because the input to a map can be quite complicated XML with lots of optional fields and even fields that are not optional yet are still marked as such in the schema, developing a single map that deals with the possible inputs to the map can present a big challenge. Take care and study the input and output schemas and determine how to handle all special cases.
Maps are developed in the Mapper, which in turn is converted into XSLT, and you can even provide your own XSLT instead of that which is generated. BizTalk Server 2010 provides an all-new Mapper that helps developers get a good overview of the map to keep track of it and that helps developers change an existing map. The Mapper provides a nice and intuitive user interface for building your transformations. It provides functionality to both copy values directly from the source to the destination and also functoids that provide functionality that is performed on the source before it is mapped to the destination.
BizTalk ships with a lot of functoids that you can use as building blocks for the most common mapping challenges. If you run into either functionality that the built-in functoids cannot handle or a combination of functoids you use a lot and want to group together, you can build your own functoids. Custom functoids have access to the entire .NET framework for referenced functoids and a subset of the .NET framework for inline functoids, providing you with the power of expression you need to do almost anything.