XML: los datos en el nivel raíz no son válidos
-
08-07-2019 - |
Pregunta
Tengo un archivo XSD que está codificado en UTF-8, y cualquier editor de texto con el que lo ejecute no muestra ningún carácter al comienzo del archivo, pero cuando lo levanto en el depurador de Visual Studio, claramente ver un cuadro vacío delante del archivo.
??
También recibo el error:
Los datos en el nivel raíz no son válidos. Línea 1, posición 1.
??
¿Alguien sabe qué es esto?
Actualización: publicación editada para calificar el tipo de archivo. Es un archivo XSD creado por el creador XSD de Microsoft.
Solución
Resulta que la respuesta es que lo que estoy viendo es una Marca de orden de bytes , que es un carácter que indica qué está cargando el documento en qué está codificado. En mi caso, está codificado en utf-8, por lo que la lista de materiales correspondiente fue EF BB BF
, como se muestra a continuación. Para eliminarlo, lo abrí en Notepad ++ e hice clic en " Codificar en UTF-8 sin BOM '', como se muestra a continuación:
.
Para ver realmente la lista de materiales, tuve que abrirla en TextPad en modo binario :, y conduje una Búsqueda de Google para " EF BB BF
" .
Me tomó cerca de 8 horas descubrir que esto era lo que lo causaba, así que pensé en compartir esto con todos.
Actualización : si hubiera leído la publicación del blog de Joel Spolsky: El mínimo absoluto que todo desarrollador de software debe saber absolutamente, positivamente sobre los conjuntos de caracteres y Unicode (¡sin excusas!) , entonces es posible que no haya tenido este problema.
Otros consejos
así es como lo haces con vim:
# vim file.xml
:set nobomb
:wq