One of the reason that I like NHibernate so much is that it is so extensible. It took me about half an hour to allow NHibernate to understand that an XML column is a XmlDocument, and I didn’t have to use any tricks. It was very easy to do, which says quite a lot about NHibernate. Less than 30 lines of code, at the end.
The nice thing is that I am not limited to converting Xml to XmlDocument, I can very well use Xml Serialization for objects, and store them as XML in the database. There are some scenarios where this is useful, like extended properties, etc.
The scary thing is that I can feel someone in the back of my head implementing the architecture for a full blown IoC framework on top of this ability and SQL Server’ XML column type.
I put the code here.