XML: datos en el nivel de raíz no son válidos

Tengo un archivo XSD que está codificado en UTF-8, y cualquier editor de texto que lo ejecute no muestra ningún carácter al principio del archivo, pero cuando lo arranco en el depurador de Visual Studio, veo claramente un vacío cuadro en frente del archivo.

Caja en archivo

También recibo el error:

Los datos a nivel de la raíz no es válida. Línea 1, posición 1.

texto alternativo

Alguien sabe qué es esto?

Actualización: Publicación editada para calificar el tipo de archivo. Es un archivo XSD creado por el creador de XSD de Microsoft.

Resulta que la respuesta es que lo que estoy viendo es una marca de orden de bytes , que es un personaje que dice lo que está cargando el documento en que está codificado. En mi caso, está codificado en utf-8, por lo que el correspondiente BOM fue EF BB BF , como se muestra a continuación. Para eliminarlo, lo abrí en Notepad ++ y hice clic en “Codificar en UTF-8 sin BOM”, como se muestra a continuación:

Guardar en NotePad ++ .

Para ver realmente la lista de materiales, tuve que abrirla en TextPad en modo binario: y conduje una búsqueda en Google para ” EF BB BF ” .

modo binario

Me tomó alrededor de 8 horas descubrir que esto era lo que estaba causando, así que pensé en compartir esto con todos.

Actualización : Si hubiera leído la publicación de Joel Spolsky en el blog: El mínimo absoluto. Todo desarrollador de software Absolutamente, definitivamente debe saber sobre Unicode y conjuntos de caracteres (¡Sin excusas!) , Entonces podría no haber tenido este problema.

así es como lo haces con vim:

 # vim file.xml :set nobomb :wq