Ich habe eine Funktion, die XML für eine Liste Objekt erzeugt:XElement Funktion hinzufügen fügt xmlns = "" an die XElement
public XDocument ToXML()
{
foreach (var row in this)
{
var xml = row.ToXml();
template.Root.Add(xml);
}
return template;
}
Die template.ToString() lautet: <RootElement xmlns="urn:testTools">
Die xml lautet: <Example><SubElement>testData</SubElement></Example>
Nachdem die Add-Funktion die template.ToString ausgeführt hat() lautet: <RootElement xmlns="urn:testTools"><Example xmlns=""><SubElement>testData</SubElement></Example>
Aus irgendeinem Grund wurde ein leerer Namespace hinzugefügt, wie kann ich das verhindern?
Ok ich verstehe jetzt, warum es das tut, danke! Aber es ist nur nützlich, wenn Sie verschiedene XML-Dateien mit unterschiedlichen Namespaces zusammenführen, nicht beim Erstellen eines einzelnen XML-Dokuments. Außerdem ist ein leerer Namespace-Tag nicht gültig. – JJoos
@JJoos: ein leerer Namespace ist sicherlich XML gültig. Was lässt dich denken, dass es nicht ist? Beachten Sie auch, dass ein einzelnes XML-Dokument Elemente und Attribute aus vielen Namespaces enthalten kann. –
@John Saunders Sie haben Recht, dachte, es war illegal wegen: http://www.w3.org/TR/REC-xml-names/ Abschnitt 2.2 erste Zeile. Art von verwirrend. Vielen Dank. – JJoos