Suppose I have the following class structure:
[XmlInclude(typeof(CustomNode))]
[XmlInclude(typeof(CustomNode2))]
[XmlRoot("node")]
class Node
{
    [XmlElement("node")]
    public Node[] Children { get; set; }
}
[XmlRoot("custom-node")]
class CustomNode : Node { }
[XmlRoot("custom-node-2")]
class CustomNode2 : Node { }
The I create the following structure:
var root = new Node { Children = new Node[2] };
root.Children[0] = new CustomNode();
root.Children[1] = new CustomNode2();
When I Xml serialize this structure, I get following output:
<node>
    <node xsi:Type="CustomNode"/>
    <node xsi:Type="CustomNode2"/>
</node>
But I would like to see (and be able to load properly) something like this:
<node>
    <custom-node/>
    <custom-node-2/>
</node>
Is it possible at all for XmlSerializer? The whole problem is because I intend to manually create source xml, and am trying to make it more humanreadble and friendly.