XmlWriter
выполняет потоковую запись данных XML. XmlDocument
создает данные XML как объектную модель в памяти.
Вы используете XmlWriter
, когда вам нужно создать XML-документы без использования памяти, пропорциональной размеру документа. Вы используете XmlDocument
, когда вам нужно обработать XML в памяти - когда вы анализируете существующий документ XML в объектную модель, или вы создаете элементы в произвольных местоположениях, или обновляете существующий документ, или используете XPath для поиска по документ. (На самом деле, для последнего случая вы бы использовали XPathDocument
, но в любом случае вы не могли бы использовать XmlWriter
, поскольку он только для записи.)
Конечно, можно записать данные XML в поток, используя XmlDocument
. Но на самом деле вы используете XmlWriter
для этого, потому что это то, что XmlDocument
использует внутри.