So fügen Sie dem Root-C # -Objekt XmlSerializer eine xsi-Schemazuordnung hinzu
Ich verwende XmlSerializer, um ein Objekt zu erstellen, das eine XML-Datei darstellt, und möchte jetzt eine Schema-Zuordnung zum Rootelement meiner XML-Datei hinzufügen. Ich kann Namespaces wie die folgenden hinzufügen
XmlSerializer serializer = new XmlSerializer(typeof(MyClass));
System.IO.FileStream fs = new FileStream(@"C:\test.xml", FileMode.Create);
TextWriter writer = new StreamWriter(fs, new UTF8Encoding());
XmlSerializerNamespaces ns = new XmlSerializerNamespaces();
ns.Add("xy","http://www.w3.org/2005/08/addressing");
ns.Add("xlink","http://www.w3.org/1999/xlink");
serializer.Serialize(writer, myObject, ns);
Aber wie füge ich einxsi:schemalocation
Attribut für mein Root-Element in meinem C # -Code. Namespace wurde mit einem einfachen hinzugefügtns.Add()
. Ich möchte vermeiden, mit der generierten c # -Klasse xsd.exe herumzuspielen. Oder muss ich die generierte c # -Klasse manuell bearbeiten und dem Stammelement meiner XML-Datei ein Attribut hinzufügen?
BEARBEITEN: Ich habe Beispiele gesehen, in denen ich mein c # manuell bearbeiten muss, aber es muss eine Möglichkeit geben, dies im Code zu tun !! Wenn wir unserem Stammelement Namespaces hinzufügen können, warum sollte es dann nicht möglich sein, Schemazuordnungen hinzuzufügen?