このツールの動作
CSV の各行が rows 文書の中の row 要素になり、各列がヘッダー名を持つ子要素になります。値は XML の要求どおりにエスケープされ、アンパサンドは &、山括弧は < と > になります。
インデント幅、型判定の有無、先頭に XML 宣言を置くかどうかを選べます。
列名は自由ではありません
XML の要素名には規則がありますが、表計算ソフトのヘッダーにはありません。名前に空白を含めることはできず、数字で始めることもできず、ほとんどの記号も使えません。いずれも、書き出されたヘッダー行にはごく普通に現れるものです。
そのため、ヘッダー名はそのまま写すのではなく調整します。
- 禁じられた文字は下線になります。
first nameはfirst_name、a+bはa_bです。 - XML が受け付けない文字で始まる名前は、切り詰めではなく先頭に付け足します。
2colは_2colになり、どの列だったかが分かります。 - XML が許す文字はそのまま残ります。アクセント付きの文字や CJK も含まれ、
caféと日本語は変わりません。
もう一方の選択肢は、ヘッダーをそのまま出力して、変換されたように見えて最初の解析で失敗するファイルを返すことです。その失敗は原因から遠く離れた場所で現れ、だからこそ厄介です。
重複したヘッダー
同じ名前の列が2つある場合、XML に到達する前に区別されます。2つ目は a_1 になります。列が黙って別の列に統合されることはありません。異なる2つのヘッダーが同じ名前に丸められる場合も同様です。user id と user_id はどちらも user_id になるため、2つ目は user_id_1 になります。これがなければ、2つのうち一方の列が値ごと文書から消えてしまいます。
プライバシー
すべての処理はブラウザ内のJavaScriptだけで完結します。データがアップロードされることはないため、機密情報でも安心して利用でき、オフラインでも動作します。