Thanks for the feedback. The difference between varchar, nvarchar, and xml is an interesting aspect of XML storage. The gist of it is that the xml data type stores string data internally as Unicode (nvarchar), so when you assign varchar data to an xml data type the names and values of nodes are converted implicitly to Unicode for internal storage in the XDM. Unfortunately it's generally difficult to predict the size difference between XML string data and XDM instances; there are several factors affecting it:
* As mentioned, string values and node names are stored as Unicode (even if source string is non-Unicode)
* A lot of duplication is removed, since metadata duplication can be removed (start and end tags are replaced with a tree-like structure)
* An XDM instance can be strongly typed via XML Schema, so numeric values, dates, etc., can be stored internally in a non-textual format
Basically the size difference generally has to be determined on a per-XML instance basis.