を使用してutf-8 XMLファイルを生成していますXDocument
。
XDocument xml_document = new XDocument(
new XDeclaration("1.0", "utf-8", null),
new XElement(ROOT_NAME,
new XAttribute("note", note)
)
);
...
xml_document.Save(@file_path);
ファイルは正しく生成され、xsd ファイルで正常に検証されます。
XML ファイルをオンライン サービスにアップロードしようとすると、サービスはファイルがwrong at line 1
;であると表示します。ファイルの最初のバイトの BOM が問題の原因であることを発見しました。
BOM がファイルに追加される理由と、BOM なしでファイルを保存する方法を知っていますか?
バイトオーダーマークウィキペディアの記事に記載されているように:
Unicode 標準では UTF-8 の BOM が許可され ていますが、必須でも推奨されていません。UTF-8 ではバイト オーダーは意味を持たないため、BOM は、テキスト ストリームまたはファイルを UTF-8 として識別するか、または BOM を持つ別の形式から変換されたことを識別するためにのみ機能します。
これはXDocument
問題ですか、それともオンライン サービス プロバイダーの担当者に連絡して、パーサーのアップグレードを依頼する必要がありますか?