開発環境:
Windows10 Pro
Visual Studio Community 2019
開発言語:
VB.NET FrameWork4.7.2

得意先とのデータのフォーマットでXMLを指定されることがたまにあります。
通常、CSVが多いのですが、数字項目の中にカンマが使えないとかいろいろ制約があります。
区切り文字にカンマではなくTabをつかったり、各項目"で囲って文字列扱いしたり、=XXXXで項目に入れたりとかいろいろ苦労されていますが、なかなかこれなという決定打はないようです。
MicroSoftが推奨している?
文字列として扱う項目は”で囲って、
数字項目は”は無し、
位取りをしている数字項目は文字列扱いをする。
というのが落としどころですが、データを読むときに、一度”で囲まれいたら、中にあるコンマを無視するとかしないといけないので、単純のSplitで、 項目分割することかできません。
項目に分割するユーザ関数を作ればよいのですが、得意先ごとCSVの形式がありますので、汎用化ができにくいので、放置していました。
そうこうしているうちに、今回、XMLの話が出てきました。
 備考とかで改行をする必要性があり、改行コードを入れたりしましたが、スペースに変換されて、改行されませんでした。
 XMLはHTMLと似たようなもんだからと思って
を入れたら改行されました。

当然と言えば、当然ですね
改行以外にも必要なエスケープ文字を調べました。

エスケープ文字  対応文字  内容 
    スペース
    スペース (UTF-8)

   改行
   タブ

   ラインフィード
&lt; <  
&gt; >  
&quot;  " ダブルコート
&apos;  ' シングルコート
&#[整数];   整数での文字コードに対応する文字
&#[16進数];   16進数での文字コードに対応する文字

また、CSVに出力する場合は、基本改行コードがレコードの区切りとなるので、通常は改行を考えませんが、どうしても必要な場合は、ダブルコートで囲った文字列の中に含めるのだそうです。
データベースから取得する場合は、改行をスペースやTabに変換したりして、文字列項目でも改行を入れなくすることの方が多いかと思います。

XMLは構造化もできるので多く使われそうですが、意外と利用は少ないようです。