Простой: если вы используете этот метод, специальные операции в процессоре обнаруживают, что неправильный класс использовался для генерации этой строки, после чего вызывается полиция правильности.
Серьезно, ничто не мешает вам делать это именно так; на самом деле, под покровом можно заключить, что в более сложном генераторе XML есть некоторый код, который делает нечто очень похожее. Когда вы приступите к этому, XML - это просто строка, и пока она правильно сформирована, эта строка будет одинаковой независимо от того, как вы ее построите.
Преимущество других классов в том, что они проще и гибче, когда вы хотите создавать более сложные XML.
Существует почти бесконечно много классов, которые могут генерировать XML или XHTML. Ищите тот, у которого есть "свободный интерфейс". В C ++ -подобном языке это может выглядеть так:
XMLOutStream foo("filename.xml);
foo.group("Top","attr=val")
.group("Next")
.line("Another", "attr=val") ;
для генерации
<Top>
<Next attr="val">
<Another attr="val" />
</Next>
</Top>
Я искал нечто подобное для HTML в этом вопросе .