Serialisieren von benutzerdefinierten Objekts in XML
Ich versuche zu schaffen, eine Klasse die ich serialisieren zu produzieren, die den folgenden XML-Code:
<chart palette='1'>
<categories>
<category label='2001' />
<category label='2002' />
..etc
Habe ich eine Klasse, die wie folgt Aussehen:
[XmlRoot("chart")]
public class Chart
{
[XmlAttributeAttribute("palette")]
public string Palette;
[XmlElement("categories")]
public List<Category> Categories = new List<Category>();
}
[XmlRoot("category")]
public class Category
{
[XmlAttributeAttribute("label")]
public string Label;
}
Allerdings bedeutet dies nicht zu den gewünschten Diagramm->Kategorien->Kategorie@label-Struktur. Die XmlRoot auf die Kategorie Klasse scheint nicht verwendet zu werden.
Hier ist die Ausgabe, die ich aus diesem code:
<chart palette="2">
<categories label="2002" />
</chart>
Wie kann ich die XML-Struktur, die ich will?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Verwenden XmlArrayAttribute und XmlArrayItemAttribute
Ist manchmal nützlich sein, nur das erstellen der xml-Struktur, die Sie möchten, und verwenden Sie dann xsd.exe zum generieren von Klassen aus. Dieses geschieht in einem 2-Schritt-Prozess, zunächst die Generierung eines xsd-Datei, und klicken Sie dann Klassen aus, die.
Diese wird es wohl nicht geben das genaue Ergebnis, die Sie wollen (es sei denn, Sie haben eine wirklich gute xsd, und nicht nur die Generierung von xml -), aber gibt einige Ideen
Werden sollte:
Ich hatte eine ähnliche Idee und aufgewickelt schreiben einer benutzerdefinierten Basisklasse zu behandeln. Überprüfen Sie heraus meine schreiben an http://www.ideosity.com/ASP-NET/Object-to-XML-lab.aspx. Ich denke, es wird Euch in die richtige Richtung.
Obwohl dies für ASP.NET Sie können feststellen, dieser link nützlich
Die XML-Serialisierung in ASP.NET
Es sagt Ihnen, wie Sie arbeiten können, beide Möglichkeiten, wenn es um die Serialisierung.
Auch, nicht zu vergessen die xsd.exe Werkzeug, das Sie verwenden können, über die Eingabeaufforderung, die im Lieferumfang von Visual Studio (die ich verwendet habe .NET 2005)
Zum Beispiel könnten Sie das folgende schema aus, indem Sie Ihre XML-Datei zu
z.B. xsd yourfile.xml
Dann können Sie die xsd erzeugt das erstellen einer Serialisierung der Klasse, die im Grunde ist ein Objekt-Modell der XML-Daten mit einer Klasse für jeden Knoten, indem die schema-xsd -
z.B. xsd yourfile.xsd /c /l:C
Wieder, dieser basiert auf .NET so entschuldige mich, wenn dies nicht von Interesse für die ursprüngliche Plakat.