private static void GenerateSequenceXsdFile(int size, string xsdFileName)
{
// generate the xsd file, the file is some thing like this
//-------------------------------------------------------
//<?xml version='1.0'?>
//<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema' >
//<xsd:element name='field0' />
//<xsd:element name='field1' />
//<xsd:element name='field2' />
//<xsd:element name='myFields'>
// <xsd:complexType>
// <xsd:sequence>
// <xsd:element ref='field0' minOccurs='0' />
// <xsd:element ref='field1' minOccurs='0' />
// <xsd:element ref='field2' minOccurs='0' />
// </xsd:sequence>
// </xsd:complexType>
//</xsd:element>
//</xsd:schema>
//------------------------------------------------------
StreamWriter sw = new StreamWriter(new FileStream(xsdFileName, FileMode.Create, FileAccess.Write));
string head = @"<?xml version='1.0'?>
<xsd:schema xmlns:xsd='http://www.w3.org/2001/XMLSchema' >";
string body = @" <xsd:element name='myFields'>
<xsd:complexType>
<xsd:sequence>";
string end = @" </xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:schema>";
sw.WriteLine(head);
for (int ii = 0; ii < size; ++ii)
sw.WriteLine(" <xsd:element name='field{0}' />", ii);
sw.WriteLine(body);
for (int ii = 0; ii < size; ++ii)
sw.WriteLine(" <xsd:element ref='field{0}' minOccurs='0' />", ii);
sw.WriteLine(end);
sw.Dispose();
}