XML - Dados No Root nível é inválido
-
08-07-2019 - |
Pergunta
Eu tenho um arquivo XSD que está codificado em UTF-8, e qualquer editor de texto que eu executá-lo através não mostra qualquer personagem no início do arquivo, mas quando eu puxar para cima no depurador do Visual Studio, eu claramente ver uma caixa vazia na frente do arquivo.
??
Eu também recebo o erro:
Data no nível de raiz é inválido. Linha 1, posição 1.
Alguém sabe o que é isso?
Update: Editado pós para qualificar o tipo de arquivo. É um arquivo XSD criado pelo criador XSD, da Microsoft.
Solução
Acontece, a resposta é que o que eu estou vendo é um Byte Order Mark , que é um personagem que diz tudo o que é carregar o documento o que é codificada. no meu caso, é codificados em UTF-8, de modo que o BOM correspondente foi EF BB BF
, como mostrado abaixo. Para removê-lo, abri-lo no Notepad ++ e clicou em "Encode em UTF -8 sem BOM", como mostrado abaixo:
.
Para realmente ver o BOM, eu tive que abri-lo no TextPad no modo binário :, e conduzida um Google procurar "EF BB BF
" .
Levei cerca de 8 horas para descobrir isso era o que estava causando isso, então eu pensei que eu iria compartilhar isso com todos.
Atualizar : Se eu tinha lido post de Joel Spolsky: O desenvolvedor Absolute Minimum cada Software Absolutamente, Positivamente Precisa Saber Sobre Unicode e Conjuntos de caracteres (Sem desculpas!) , então eu não poderia ter tido este problema.
Outras dicas
aqui está como você fazê-lo com vim:
# vim file.xml
:set nobomb
:wq