public TestSource0()
    {
        LastAttributeIndex = -1;
        var type = new TestRootContentType(this);

        Root = new TestRootContent(type);
    }
    ////<root>
    ////    <wrap>
    ////        <item1 />
    ////        <item2></item2>
    ////        <item2a> </item2a>
    ////        <item2b>
    ////        </item2b>
    ////        <item2c><![CDATA[
    ////        ]]></item2c>
    ////        <item3>blah</item3>
    ////        <item4>
    ////            <subitem x=""1"">bam</subitem>
    ////        </item4>
    ////        <item5>
    ////        </item5>
    ////    </wrap>
    ////</root>

    public TestSource6()
    {
        LastAttributeIndex = -1;

        var type  = new TestRootContentType(this);
        var type1 = type.CreateType(
            "wrap",
            new TestPropertyType("item1"),
            new TestPropertyType("item2"),
            new TestPropertyType("item2a"),
            new TestPropertyType("item2b"),
            new TestPropertyType("item2c"),
            new TestPropertyType("item3"),
            new TestPropertyType("item3a"),
            new TestPropertyType("item4", true),
            new TestPropertyType("item5", true));

        Content[1] = new TestContent(type1, 1, -1)
                     .WithValues(
            null,
            null,
            null,
            null,
            "\n        ",
            "blah",
            "\n            blah\n        ",
            "<subitem x=\"1\">bam</subitem>",
            "\n        ");

        Root = new TestRootContent(type).WithChildren(1);
    }
    public TestSource2()
    {
        LastAttributeIndex = -1;

        var prop1 = new TestPropertyType("prop1", true);
        var type  = new TestRootContentType(this);
        var type1 = type.CreateType("type1", prop1);

        const string xml = "<data><item1>poo</item1><item2 xx=\"33\" /><item2 xx=\"34\" /></data>";

        Content[1] = new TestContent(type1, 1, 1).WithValues(xml);

        Root = new TestRootContent(type).WithChildren(1);
    }
    public TestSource4()
    {
        LastAttributeIndex = -1;

        var prop1 = new TestPropertyType("prop1", true);
        var prop2 = new TestPropertyType("prop2");
        var type  = new TestRootContentType(this);
        var type1 = type.CreateType("type1", prop1, prop2);

        Content[1] = new TestContent(type1, 1, -1).WithValues("<data value=\"value\"/>", "dang");
        Content[2] = new TestContent(type1, 2, -1).WithValues(null, string.Empty);
        Content[3] = new TestContent(type1, 3, -1).WithValues(null, null);

        Root = new TestRootContent(type).WithChildren(1, 2, 3);
    }
    public TestSource3()
    {
        LastAttributeIndex = 1;

        var prop1 = new TestPropertyType("prop1");
        var prop2 = new TestPropertyType("prop2");
        var prop3 = new TestPropertyType("prop3");
        var type  = new TestRootContentType(this, prop1, prop2);
        var type1 = type.CreateType("type1", prop3);

        Content[1] = new TestContent(type1, 1, 1).WithValues("1:p1", "1:p2", "1:p3").WithChildren(2);
        Content[2] = new TestContent(type1, 2, 1).WithValues("2:p1", "2:p2", "2:p3");

        Root = new TestRootContent(type).WithChildren(1);
    }
    public TestSource8()
    {
        LastAttributeIndex = 0;

        var attr  = new TestPropertyType("attr");
        var prop  = new TestPropertyType("prop");
        var type  = new TestRootContentType(this, attr);
        var type1 = type.CreateType("item", attr, prop);

        Content[1] = new TestContent(type1, 1, -1).WithValues(null, null);
        Content[2] = new TestContent(type1, 2, -1).WithValues(string.Empty, string.Empty);
        Content[3] = new TestContent(type1, 3, -1).WithValues("   ", "   ");
        Content[4] = new TestContent(type1, 4, -1).WithValues(string.Empty, "\n");
        Content[5] = new TestContent(type1, 5, -1).WithValues("  ooo  ", "   ooo   ");
        Root       = new TestRootContent(type).WithValues(null).WithChildren(1, 2, 3, 4, 5);
    }
    public TestSource1()
    {
        // last attribute index is 1 -  meaning properties 0 and 1 are attributes, 2+ are elements
        // then, fieldValues must have adequate number of items
        LastAttributeIndex = 1;

        var prop1 = new TestPropertyType("prop1");
        var prop2 = new TestPropertyType("prop2");
        var prop3 = new TestPropertyType("prop3");
        var type  = new TestRootContentType(this, prop1, prop2);
        var type1 = type.CreateType("type1", prop3);

        Content[1] = new TestContent(type1, 1, -1).WithValues("1:p1", "1:p2", "1:p3");

        Root = new TestRootContent(type).WithValues(string.Empty, string.Empty).WithChildren(1);
    }
    public TestSource5()
    {
        LastAttributeIndex = -1;

        var prop1 = new TestPropertyType("prop1");
        var prop2 = new TestPropertyType("prop2");
        var type  = new TestRootContentType(this);
        var type1 = type.CreateType("type1", prop1, prop2);

        Content[1] = new TestContent(type1, 1, -1).WithValues("p11", "p12").WithChildren(3, 5);
        Content[2] = new TestContent(type1, 2, -1).WithValues("p21", "p22").WithChildren(4, 6);
        Content[3] = new TestContent(type1, 3, 1).WithValues("p31", "p32");
        Content[4] = new TestContent(type1, 4, 2).WithValues("p41", "p42");
        Content[5] = new TestContent(type1, 5, 1).WithValues("p51", "p52");
        Content[6] = new TestContent(type1, 6, 2).WithValues("p61", "p62");

        Root = new TestRootContent(type).WithChildren(1, 2);
    }
    public TestSource7()
    {
        LastAttributeIndex = 0;

        var prop1 = new TestPropertyType("isDoc");
        var prop2 = new TestPropertyType("title");
        var type  = new TestRootContentType(this, prop1);
        var type1 = type.CreateType("node", prop1, prop2);

        Content[1] = new TestContent(type1, 1, -1).WithValues(1, "title-1").WithChildren(3, 5);
        Content[2] = new TestContent(type1, 2, -1).WithValues(1, "title-2").WithChildren(4, 6);
        Content[3] = new TestContent(type1, 3, 1).WithValues(1, "title-3").WithChildren(7, 8);
        Content[4] = new TestContent(type1, 4, 2).WithValues(1, "title-4");
        Content[5] = new TestContent(type1, 5, 1).WithValues(1, "title-5");
        Content[6] = new TestContent(type1, 6, 2).WithValues(1, "title-6");

        Content[7] = new TestContent(type1, 7, 3).WithValues(1, "title-7");
        Content[8] = new TestContent(type1, 8, 3).WithValues(1, "title-8");

        Root = new TestRootContent(type).WithValues(null).WithChildren(1, 2);
    }