Разобрался.
Можно и xmlDocument выводить.
Выложу пример кода, чтобы потом самому не вспоминать
X++:
static void Job1(Args _args)
{
XmlDocument doc = XmlDocument::newBlank();
XmlElement root;
XmlElement channel;
XMLWriterSettings xmlWriterSettings = new XMLwriterSettings();
XMLWriter xml;
root = doc.appendChild(doc.createElement("rss"));
root.setAttribute("version","2.0");
channel = root.appendChild(doc.createElement("channel"));
channel.appendChild(doc.createElement("title")).innerText("Text for title");
channel.appendChild(doc.createElement("description")).innerText("Text for description");
channel.appendChild(doc.createElement("link")).innerText("http://mySuperLink");
xmlWriterSettings.indent(true);
//xmlWriterSettings.indentChars(' '); // можно и не указывать
xml = XMLwriter::newXml(xmlWriterSettings);
doc.writeTo(xml);
xml.flush();
info(xml.writeToString());
}
получится вот такое
Но вообще говоря, xmlDocument - это избыточно, если нужно всего-лишь вывести генерируемый на лету xml.
Если xml только выводится, то вполне достаточно следующего кода
X++:
xml.writeStartDocument();
xml.writeStartElement("rss");
xml.writeAttributeString("version","2.0");
xml.writeStartElement("channel");
...
xml.writeEndElement();
xml.writeEndElement();
xml.writeEndDocument();
Во writerSettings можно задавать и символы перевода строки, и строку для отступов и т.п.