XML – 根级别的数据无效

我有一个以UTF-8编码的XSD文件,任何运行它的文本编辑器都不会在文件的开始处显示任何字符,但是当我在Visual Studio的debugging器中将其拉出时,我清楚地看到一个空的在文件前面的框。

在文件中的框

我也得到错误:

在根目录的数据是无效的。 1号线,位置1。

替代文字

有谁知道这是什么吗?

更新:编辑的文章以限定文件的types。 这是由Microsoft的XSD创build者创build的XSD文件。

事实certificate,答案是,我所看到的是一个字节顺序标记 ,它是一个字符,告诉无论是加载文件的编码。在我的情况下,它是用utf-8编码,所以相应的BOM是EF BB BF ,如下所示。 要删除它,我用Notepad ++打开它,点击“不带BOM的UTF-8编码”,如下图所示:

保存在NotePad ++中

为了真正看到物料清单,我不得不在TextPad中以二进制模式打开它,并进行了“ EF BB BF ”的Googlesearch 。

二进制模式

我花了大约8个小时才知道这是什么原因造成的,所以我想我会和大家分享一下。

更新 :如果我读了Joel Spolsky的博客文章: 绝对最小每个软件开发人员肯定,积极必须知道Unicode和字符集(没有借口!) ,那么我可能没有这个问题。

下面是你如何使用vim进行操作:

 # vim file.xml :set nobomb :wq