2017-12-09 1 views
0

Ich muss eine XML-Datei erstellen mit XmlWriter in C# einschließlich für jeden Tag den Namespace \ Schema. Zuerst habe ich eine Klasse von XSD-Schemadatei erzeugt, erstelle ich die Klasse mit allen Objekten und schließlich serialisiert ich die Klasse Schreiben xml:XmlWriter einschließlich Namespace Schema für jedes Tag

myclass root = new myclass(); 
root.val1 = "temp1"; 
root.val2 = "temp2"; 

.. .. ..

using (XmlWriter writer = XmlWriter.Create(Path.Combine("myfile.xml"), s)) 
    { 
serializer.Serialize(writer, root); 

....

das Problem ist, dass es die Tags so erstellen:

<Message> 
    <val1> temp1 </val1> 
    <val2> temp2 </val2> 
    <Message> 

ich die Tags wie schreiben wollen:

<temp:Message> 
    <temp:val1> temp1 </val1> 
    <temp:val2> temp2 </val2> 
    <temp:Message> 

kann ich einige Attribute in meiner Klasse verwenden "temp" hinzufügen Start-Tags?

ich auch einige Namespace zu meinem Stamm-Tag hinzufügen müssen:

<temp:Message 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="myxml.xsd" 
xmlns:stf="urn:oecd:ties:stf:v4" 
xmlns:mesage="urn:oecd:ties:cbc:v1" 
xmlns:iso="urn:oecd:ties:isocbctypes:v1" 
version="1.0"> 

so muss ich root-Klasse hinzufügen:

1) xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
2) xsi:schemaLocation="myxml.xsd" 
3) xmlns:mesage="urn:oecd:ties:cbc:v1" 
4)etc... 

, wie ich das tun kann?

dank

+0

upvot vergessen Sie nicht,/akzeptieren, wenn es funktioniert Sie –

Antwort

0

Sie temp nach wie unten tun einhängen können, legen Namensraum mit Ihnen

var xsn = new XmlSerializerNamespaces(); 
xsn.Add("temp", "http://namespaceforxml"); 
XmlSerializer s = new XmlSerializer(typeof(Message)); 
Message msg = new Message(); 
// Writing a file requires a TextWriter. 
TextWriter t = new StreamWriter(filename); 
s.Serialize(t,msg,ns); 
t.Close(); 

deco calss XML als unter

[XmlRoot(ElementName = "Message", Namespace = "//namespaceforxml")] 
public class Message 
{ 
    [XmlElement(ElementName = "val1")] 
    public string val1{ get; set; } 
} 
+0

und was ist das Objekt an Xsn-Variable, die Sie erstellt, anhängen? – ezechiele2517

+0

@ ezechiele2517 - Aktualisierter Code –

+0

Ihre Variablennamen im Code sind falsch? – ezechiele2517

Verwandte Themen