Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
XML-Attribute für Namepsace/LocalNames
emuuu
myCSharp.de - Member

Avatar #avatar-4078.jpg


Dabei seit:
Beiträge: 287

Themenstarter:

XML-Attribute für Namepsace/LocalNames

beantworten | zitieren | melden

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)
private Nachricht | Beiträge des Benutzers
Th69
myCSharp.de - Experte

Avatar #avatar-2578.jpg


Dabei seit:
Beiträge: 4191

beantworten | zitieren | melden

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).
private Nachricht | Beiträge des Benutzers