Если вы посмотрите на прекрасное руководство для WriteAttributeString, вы увидите довольно полезный пример, поскольку он записывает различные атрибуты, которые являются вариациями того, что вы ищете:
...
// Write the xmlns:bk="urn:book" namespace declaration.
writer.WriteAttributeString("xmlns","bk", null,"urn:book");
...
Что означало бы, что для записи атрибута ожидаемой формы необходимо указать имя для пространства имен и атрибута:
writer.WriteAttributeString("xmlns", "xsl", null, "http://www.w3.org/2001/XMLSchema-instance");
Я также сомневаюсь, что строка выше запишетданные, которые вы хотите, как вы, кажется, добавили xsi, когда сказали, что хотите выводить xmlns:
//doc says name can be null if prefix is xmlns (namespace declaration)
writer.WriteAttributeString("xmlns", null, null, "urn:iso:std:iso:20022:tech:xsd:pain.001.001.02");
Посмотрите на пример в MSDN, скопируйте его и измените значения, как вам нужно?