Dot-Net
XML - 根級別的數據無效
我有一個以 UTF-8 編碼的 XSD 文件,我執行它的任何文本編輯器都不會在文件開頭顯示任何字元,但是當我在 Visual Studio 的調試器中將其拉起時,我清楚地看到一個空的文件前面的框。
我也得到錯誤:
根級別的數據無效。第 1 行,位置 1。
有誰知道這是什麼嗎?
更新:編輯文章以限定文件類型。它是由 Microsoft 的 XSD 創建者創建的 XSD 文件。
事實證明,答案是我看到的是一個字節順序標記,它是一個字元,它告訴載入文件的任何內容它的編碼內容。在我的例子中,它是用 utf-8 編碼的,所以對應的BOM 為
EF BB BF,如下圖所示。要刪除它,我在Notepad++中打開它並點擊“Encode in UTF-8 without BOM”,如下圖所示:
.
要實際查看 BOM,我必須在TextPad中以二進制模式打開它:並在Google 上搜尋“
EF BB BF”。
我花了大約 8 個小時才發現這是導致它的原因,所以我想我會與大家分享這個。
更新:如果我閱讀了 Joel Spolsky 的部落格文章:每個軟體開發人員絕對、肯定必須了解 Unicode 和字元集(沒有藉口!)的絕對最低要求,那麼我可能不會遇到這個問題。


.