Hallo scharf sehende Freunde :-)
 
Eine Java-Anwendung verarbeitet mein mit .NET erstellte XML und reagierte dabei "falsch" auf Elemente die Leer sind:
 
So werden die Elemente in Java richtig verarbeitet:
<myNode myAttribute="keinInhalt" />
 
Allerdings habe ich auch Elemente, die werden so in die XML-Datei geschrieben:
..<myNode myAttribute="keinInhalt">\r\n
..</myNode>
 
Die Punkte zeigen Leerschläge, die \r\n sollen den Zeilenumbruch zeigen.
 
Ich schreibe also auch mit End-Tag das Element und formatiert mit Einzug in die XML-Datei. Im DOM mit .NET habe ich keine Probleme, der myNode enthält kein Wert. Die Java-Anwendung jedoch übernimmt die Spaces des Einzuges. Unabhängig davon, ob der Java-Programmierer etwas getürkt hat, frage ich mich "was ist nun korrekte Syntax des XML"?
 
Irgendwie muss ich doch zugeben, dass durch die Formatierte Darstellung, das Element auch einen Wert enthält, nämlich "\r\n..". Oder ist es per Definiton so, dass Leerschläge, oder Tabs nach einem Zeilenumbruch nicht als Inhalte betrachtet werden?
 
Das Problem entsteht übrigens, weil ich Elemente wie zuoberst gezeigt mit myNode.InnerText = "" überarbeite. Dabei macht .NET aus <myNode myAttribute="keinInhalt" />neu ..<myNode myAttribute="keinInhalt">\r\n
..</myNode> (je nach Einstellung von Einzug im XmlTextWriter). Kann ich denn einen Leerstring zuweisen und erzwingen, dass das Element selbst geschlossen wird (ohne Endtag)?
 
Vielen Dank für Hinweise
Patrik
 

Antwort per Email an