| 

.NET C# Java Javascript Exception

2
Hallo NG,
ich möchte in einem XmlDocument einen Eintrag mit folgendem Attribut anlegen:
<Document xmlns="urn:iso:std:iso:20022:tech:xsd:pain.008.002.02" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.002.02 pain.008.002.02.xsd">

Dazu habe ich folgenden Code:
var attr = doc.CreateAttribute("xsi", "schemaLocation", "urn:iso:std:iso:20022:tech:xsd:pain.008.002.02 pain.008.002.02.xsd");
attr.Value = "http://www.w3.org/2001/XMLSchema-instance";
xRootElement.Attributes.Append(attr);


Mein Resultat ist:
<Document xsi:schemaLocation="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsi="urn:iso:std:iso:20022:tech:xsd:pain.008.002.02 pain.008.002.02.xsd">

Kann mir jemand helfen wie ich das richtig stellen kann?

Danke im voraus.

Grüße Ingo
News:
18.09.2013
ingo 122 1 6
Musst Du eigentlich zwingend das DOM verwenden, oder wär Linq2Xml (XDocument & co) eine Alternative? Löst zwar Dein Problem nicht, ist aber imho leichter zu verstehen und zu implementieren.
ffordermaier 18.09.2013
1 Antwort
0
Wie wäre es mit
XmlNode rootNode = doc.CreateElement("Document", "urn:iso:std:iso:20022:tech:xsd:pain.008.002.02");
XmlElement xRootElement = (XmlElement)doc.AppendChild(rootNode);
var attr = doc.CreateAttribute("xsi", "schemaLocation", "http://www.w3.org/2001/XMLSchema-instance");
attr.Value = "urn:iso:std:iso:20022:tech:xsd:pain.008.002.02 pain.008.002.02.xsd";
xRootElement.Attributes.Append(attr);


Oder so:
XmlNode rootNode = doc.CreateElement("Document");
XmlElement xRootElement = (XmlElement)doc.AppendChild(rootNode);
xRootElement.SetAttribute("xmlns", "urn:iso:std:iso:20022:tech:xsd:pain.001.002.03");
xRootElement.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance");
xRootElement.SetAttribute("schemaLocation", "http://www.w3.org/2001/XMLSchema-instance", "urn:iso:std:iso:20022:tech:xsd:pain.001.002.03 pain.001.002.03.xsd");

(Das ist, nebenbei gesagt, bis auf die triviale erste Zeile, der Code, den ich Dir neulich schon vorgeschlagen habe. Bei mir gibt er das gewünschte Ergebnis. Du kannst Dir das erste SetAttribute sparen, wenn Du CreateElement wie im ersten Beispiel mit dem Namespace als Parameter aufruft. Das würde ich Dir auch empfehlen.)
18.09.2013
Matthias Hlawatsch 13,2k 4 9
Hallo,
danke für die Hilfe. Hatte ich schon versucht. Da kommt:
<Document xsi:schemaLocation="urn:iso:std:iso:20022:tech:xsd:pain.008.002.02 pain.008.002.02.xsd" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
raus.

Grüße INgo
ingo 18.09.2013
Ich habe das erste Beispiel ergänzt und ein zweites hinzugefügt.
Matthias Hlawatsch 18.09.2013

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH