C# 从数据表写入时,如何指定XML输出的格式?

C# 从数据表写入时,如何指定XML输出的格式?,c#,ado.net,xsd,C#,Ado.net,Xsd,在C中,我使用DataTable.WriteXmlfilePath从DataTable创建一个XML文件,并获得以下结果: <?xml version="1.0" encoding="utf-8" ?> <ExperienceProfiles> <ExperienceProfile> <Col1>blah</Col1> <Col2>4ed397bf-a4d5-4ace-9d44-8c1a5cdb0f34&

在C中,我使用DataTable.WriteXmlfilePath从DataTable创建一个XML文件,并获得以下结果:

<?xml version="1.0" encoding="utf-8" ?>
<ExperienceProfiles>
  <ExperienceProfile>
    <Col1>blah</Col1>
    <Col2>4ed397bf-a4d5-4ace-9d44-8c1a5cdb0f34</Col2>
  </ExperienceProfile>
</ExperienceProfiles>
如何让它以以下格式编写XML

<?xml version="1.0" encoding="utf-8" ?>
<ExperienceProfiles>
  <ExperienceProfile Col1="blah"
    Col2="blah" ></ExperienceProfile>
</ExperienceProfiles>
简短回答:你不能,使用 DataTable的WriteXml方法

答案很长,但不是很长: 你自己滚吧


收回我的答案,如上所述:

您想要的是某种方式来告诉数据集您的数据的预期格式。幸运的是,数据集仅支持此功能

您需要为数据创建一个XML模式,并在写出XML之前将其加载到数据集中。在模式中,将Col1和Col2定义为ExperienceProfile元素的属性,数据集将知道如何格式化输出文档以满足模式中指定的要求


如果您不习惯创建模式,可以按照您希望的格式创建XML文件的示例,然后查看框架中的XMLSchemaReference类。该类可用于自动生成模式,您可能需要稍微调整输出,但如果您不熟悉XSD,它会有所帮助。

您可以使用datatable列的ColumnMapping功能。


为了使它更好,在VisualStudio中打开示例XML文档,并从XML菜单中选择GenerateSchema!谢谢我对模式非常熟悉——我希望在WriteXml中有一个我忽略的参数,可以让它变得更简单。
column.ColumnMapping = MappingType.Attribute