Laden...

XML-Attribute für Namepsace/LocalNames

Erstellt von emuuu vor 2 Jahren Letzter Beitrag vor 2 Jahren 214 Views
emuuu Themenstarter:in
286 Beiträge seit 2011
vor 2 Jahren
XML-Attribute für Namepsace/LocalNames

Moin zusammen,

ich habe ein kleines Problem bzgl der Serialisierung in eine XML Datei:
Konkret habe ich die Klasse TestProbe (mit einer inneliegenden Baumstruktur die hierfür aber egal ist). Diese möchte ich in eine XML-Datei konvertieren die ein Zielprogramm einlesen kann.
Das Zielprogramm verlangt nun, dass das Root-Element TestProbe mit einigen Namespaces daher kommt:


<TESTPROBE xmlns:cm="http://www.sparkworks.com/Common-Measurement-xml" xmlns:sl="http://www.sparkworks.com/TestProbe-Language-xml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sparkworks.com/TestProbe-Database-xml">
</TESTPROBE>

Inhaltlich haben die Namespaces für meinen Teil des Systems keinerlei Relevant (ich könnte also im Prinzip im Convert am Ende die Datei um die Textpassagen ergänzen), möchte das aber natürlich sauber lösen.
Und ganz im Ernst: Ich habe keine Ahnung wie. Ich recherchiere nun den halben Tag an XML-Attributen herum (zugegeben nicht mein Fachgebiet) und kriege es einfach nicht hin, dass der Konverter genau diese genau so ins Element schreibt.


	[XmlRoot(ElementName = "TESTPROBE", Namespace = "http://www.sparkworks.com/TestProbe-Database-xml")]
	public class TestProbe
	{
	//...
	}

Der Namespace (sowie die XMLSchema-Instance) werden auch problemlos eingefügt aber eben die LocalNames ("xmlns:cm", usw) nicht.
Ich habe es unter anderem schon mit diesem Ansatz versucht:


		[XmlAttribute(AttributeName = "cm", Namespace = "xmlns")]
		public string CommonMeasurement{ get; set; }

Leider ohne Erfolg.
Bin für jeden Rat dankbar, wobei mir schon ein paar Stichworte in die richtige Richtung helfen würden.

Beste Grüße
emuuu

2+2=5( (für extrem große Werte von 2)

4.931 Beiträge seit 2008
vor 2 Jahren

Hallo,

Gewusst wie: Qualifizieren von XML-Element- und XML-Attributnamen sollte der Einstieg dazu sein.
Die Namespaces (für die Attribute) solltest du dann am besten als const string-Member anlegen und benutzen (anstatt x-fach die Literale zu kopieren).