The SqlXml datatype constructor only accepts a Stream or XmlReader, if you have an XmlDocument in memory (go with stream if you have it) then you can easily convert to a SqlXml compatible stream with the XmlNodeReader class.
XmlNodeReader implements IDisposable, so wrap it in a using or try/catch.
For example:
XmlDocument xml = new XmlDocument(); using (XmlNodeReader xnr = new XmlNodeReader(xml)) { SqlXml sx = new SqlXml(xnr); }