XML - Daten in der Root-Ebene sind ungültig
-
08-07-2019 - |
Frage
Ich habe eine XSD-Datei, die in UTF-8 und einem beliebigen Texteditor ich es laufen codiert wird durch zeigt keine Zeichen am Anfang der Datei, aber wenn ich es ziehen in Visual Studio-Debugger, bis ich klar sieht ein leeres Feld vor der Datei.
Ich habe auch den Fehler:
Daten auf Root-Ebene ist ungültig. Zeile 1, Position 1.
Wer weiß, was das ist?
Update: Edited Post Dateityp zu qualifizieren. Es ist eine XSD-Datei von Microsoft XSD Konzept erstellt.
Lösung
Es stellt sich heraus, die Antwort ist, dass, was ich sehe ein ist Byte Order Mark , was ein Zeichen ist, das, was ist das Laden des Dokuments erklärt, was es in codiert ist. in meinem Fall ist es in utf-8 codiert, so dass die entsprechenden BOM EF BB BF
war, wie unten gezeigt. Um sie zu entfernen, ich öffnete es in Notepad ++ und klickte auf „Encode in UTF -8 ohne BOM“, wie unten dargestellt:
.
tatsächlich Um die BOM zu sehen, hatte ich es zu öffnen, in TextPad in Binär-Modus :, und durchgeführt ein Google-Suche nach "EF BB BF
" .
Es dauerte etwa 8 Stunden, um herauszufinden, das war, was es verursacht wurde, so dass ich dachte, dass ich dies mit allen teilen würde.
Aktualisieren : Wenn ich Joel Spolsky Blog-Post gelesen hatte: Der absolute Minimum Jeden Software-Entwickler, Positively muß über Unicode und Zeichensätze weiß (keine Ausreden!) , dann könnte ich dieses Problem nicht gehabt haben.
Andere Tipps
Hier ist, wie Sie es tun mit vim:
# vim file.xml
:set nobomb
:wq