楼主非要用XSD吗!????底下的方法可以吗!?using System;
using System.IO;
using System.Xml;
using System.Data;namespace xmlswitch
{
public class Xmlswitch
{
//public static Stream stream;
string xmlpath;
public static XmlTextWriter xmlwriter;
public static int row;
public static int col; /// <summary>
/// 默认构造函数
/// </summary>
public Xmlswitch()
{
} /// <summary>
/// 重载构造函数
/// </summary>
/// <param name="path">路径字符串</param>
public Xmlswitch(string path)
{
this.xmlpath = path;
}

/// <summary>
/// 将DataSet中信息写入XML文件的方法
/// </summary>
/// <param name="xmlpath">XML文件存放的完全路径</param>
/// <param name="xslpanel">要显示的XML文档结构模板</param>
/// <param name="ds">DataSet数据表</param>
/// <returns></returns>
public bool WriteXmlForFile(string xmlpath,string xslpanel,DataSet ds)
{
if (xmlpath.Equals(null))
{
try
{
xmlwriter = new XmlTextWriter(this.xmlpath,System.Text.Encoding.Default);
this.InsertDs(xmlwriter,xslpanel,ds);
return true;
}
catch(Exception e)
{
throw e;
}
}
else
{
try
{
xmlwriter = new XmlTextWriter(xmlpath,System.Text.Encoding.Default);
this.InsertDs(xmlwriter,xslpanel,ds);
return true;
}
catch(Exception e)
{
throw e;
}
}
} /// <summary>
/// 真正执行将DataSet写入XML文件的方法,是私有方法,外部无法直接调用
/// </summary>
/// <param name="xmlwriter">XmlTextWriter类型的参数</param>
/// <param name="xslpanel">XML文档结构模板</param>
/// <param name="ds">DataSet数据表</param>
private void InsertDs(XmlTextWriter xmlwriter,string xslpanel,DataSet ds)
{
xmlwriter.WriteStartDocument();
xmlwriter.WriteRaw("<?xml-stylesheet type='text/xsl' href='"+xslpanel.Trim().ToString()+"'?>");
xmlwriter.WriteStartElement("DATAS");
xmlwriter.WriteAttributeString("NAME","VALUES");
for (row = 1; row <= ds.Tables[0].Rows.Count; row++)
{
xmlwriter.WriteStartElement("DATA");
xmlwriter.WriteAttributeString("id",row.ToString());
for (col = 1; col <=ds.Tables[0].Columns.Count; col++)
{
xmlwriter.WriteRaw("<"+ds.Tables[0].Columns[col-1].ColumnName.ToString().Trim()+">");
xmlwriter.WriteString(ds.Tables[0].Rows[row-1][col-1].ToString().Trim());
xmlwriter.WriteRaw("</"+ds.Tables[0].Columns[col-1].ColumnName.ToString().Trim()+">");
}
xmlwriter.WriteEndElement();
}
xmlwriter.WriteEndElement();
xmlwriter.Close();
}
}
}