Ich habe eine XSD:XML mit Sammlungen und XmlSerializer
<xs:complexType name="rootType">
<xs:sequence>
<xs:element name="foo" type="fooType" minOccurs="1" maxOccurs="unbounded"/>
<xs:element name="bar" type="barType" minOccurs="1" maxOccurs="unbounded"/>
</xs:sequence>
</xs:complexType>
<!-- SKIPPED -->
<xs:element name="root" type="rootType"></xs:element>
Ich habe eine XML mit dieser XSD gebaut:
<?xml version="1.0" encoding="utf-8"?>
<root>
<foo><!-- SKIPPED --></foo>
<foo><!-- SKIPPED --></foo>
<foo><!-- SKIPPED --></foo>
<bar><!-- SKIPPED --></bar>
<bar><!-- SKIPPED --></bar>
<bar><!-- SKIPPED --></bar>
<bar><!-- SKIPPED --></bar>
</root>
Jetzt möchte ich diese XML serialisiert/deserialisiert XmlSerializer verwenden. Ich habe C# -Klassen:
public class fooType
{
public string element { get; set; }
}
public class barType
{
public string element { get; set; }
}
public class rootType
{
public fooType[] foos { get; set; }
public barType[] bars { get; set; }
}
Es gibt einige XML-Attribute waren, wie XmlElementAttribute, aber ich weglassen sie in Beispiel oben der Einfachheit halber.
Schauen Sie sich jetzt rootType
Klassendefinition an. Hier haben wir zwei Eigenschaften foos
und bars
. Sie werden für fooType[]
und barType[]
Arrays wie Wurzel Elemente serialisiert werden:
<?xml version="1.0" encoding="utf-8"?>
<root>
<foos>
<foo><!-- SKIPPED --></foo>
<foo><!-- SKIPPED --></foo>
<foo><!-- SKIPPED --></foo>
</foos>
<bars>
<bar><!-- SKIPPED --></bar>
<bar><!-- SKIPPED --></bar>
<bar><!-- SKIPPED --></bar>
<bar><!-- SKIPPED --></bar>
</bars>
</root>
Aber das ist nicht das, was ich will. Wie man sie nach XSD und Beispiel am Anfang dieses Beitrags serialisiert?