Вы просто меняете CAB-библиотеку на библиотеку, которая может извлекать файл шаблона в память, например:
Минимальный код C # для извлечения из архивов .CAB или InfoPath XSN впамять
А затем вызовите, myCab.ExtractFile("template.xml", out buffer, out bufferLen);
, полный код будет выглядеть примерно так:
private byte[] GetXmlForm(SPDocumentLibrary list) {
byte[] data = null;
SPFile file = list.ParentWeb.GetFile(list.DocumentTemplateUrl);
Stream fs = file.OpenBinaryStream();
try {
data = new byte[fs.Length];
fs.Read(data, 0, data.Length);
} finally {
fs.Close();
}
byte[] buffer;
int bufferLen;
CabExtract cab = new CabExtract(data);
cab.ExtractFile("template.xml", out buffer, out bufferLen);
return buffer;
}