Пункт первый - да... например так:
MemoryStream ms = new MemoryStream();
XmlDocument x = new XmlDocument();
.....
//заполнение документа
.....
x.Save(ms);
XML сохранена в поток в памяти
Пункт второй - извини, не знаю
Опыт - это такая штука, которая появляется сразу после того, как она была тебе нужна.