.net - XML - 根级别的数据无效

标签 .net xml visual-studio xsd byte-order-mark

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

Box in file

我也得到了错误:

根级别的数据无效。第 1 行,位置 1。

alt text

有人知道这是什么吗?

更新:编辑帖子以限定文件类型。它是由 Microsoft 的 XSD 创建者创建的 XSD 文件。

最佳答案

事实证明,答案是我看到的是 Byte Order Mark ,这是一个字符,它告诉加载文档的内容是什么。在我的例子中,它是用 utf-8 编码的,所以相应的 BOM 是 EF BB BF,如下所示。要删除它,我在 Notepad++ 中将其打开然后点击“Encode in UTF-8 without BOM”,如下图:

Saving in NotePad++ .

要实际查看 BOM,我必须在 TextPad 中打开它在二进制模式下:,并进行了 Google search for "EF BB BF" .

binary mode

我花了大约 8 个小时才找出是什么原因造成的,所以我想我应该与大家分享。

更新:如果我读过 Joel Spolsky 的博文:The Absolute Minimum Every Software Developer Absolutely, Positively Must Know About Unicode and Character Sets (No Excuses!) ,那么我可能没有遇到过这个问题。

关于.net - XML - 根级别的数据无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/291455/

相关文章:

c# - 实现高级过滤页面

.net - AssemblyLoadContext 和 Assembly.LoadFrom(路径)

c# - 在启用行虚拟化的情况下,如何停止在 WPF DataGrid 中滚动时调整列的大小?

visual-studio - 如何阻止 Visual Studio 创建 license.licx

.NET 从 AWS S3 读取加密文件 - 一些文件在产品上失败,在开发上成功

xml - groovy - xml - 保留属性顺序

java - log4j2.xml 创建文件,但不输出文件中的任何内容

xml - 开发人员使用 XML Schema 智能感知创建 XML 文件的最佳界面是什么?

c++ - VS 2011模板类

c++ - 随机生成器测试。错误在哪里?