Sql 从数据库到具有数据类型的XML

Sql 从数据库到具有数据类型的XML,sql,.net,xml,dataset,export-to-xml,Sql,.net,Xml,Dataset,Export To Xml,我从数据库中获取信息并将其添加到数据集。然后我用这个信息创建一个XML。我希望在标题中包含XML和数据类型。可能吗? 下面是我编写XML的代码: //Fill dataset with different datatable: //first datatable DataSet imports = new DataSet("import"); NpgsqlDataAdapter daImport = new NpgsqlDataAdapter("select field1, field2 fie

我从数据库中获取信息并将其添加到数据集。然后我用这个信息创建一个XML。我希望在标题中包含XML和数据类型。可能吗? 下面是我编写XML的代码:

//Fill dataset with different datatable:
//first datatable
DataSet imports = new DataSet("import");
NpgsqlDataAdapter daImport = new NpgsqlDataAdapter("select field1, field2 field3 from table1", _connPg);
daImport.FillSchema(imports, SchemaType.Source, "table1");
daImport.Fill(imports, "table1");
//seconda datatable

NpgsqlDataAdapter daImport1 = new NpgsqlDataAdapter("select field1, field2 field3 from table2", _connPg);
daImport1.FillSchema(imports, SchemaType.Source, "table2");
daImport1.Fill(imports, "table2");

//insert relation
DataRelation relation = new DataRelation("rel_rel1", imports.Tables["table1"].Columns["field1"], imports.Tables["table2"].Columns["field2"], true);
relation.Nested = true;
imports.Relations.Add(relation);
//write xml
imports.WriteXml("dataImport.xml");
这是我的xml

<?xml version="1.0" standalone="yes"?>
    <import>
    <table1>
    <field1>1
    </field1>
    <field2>name
    </field2>
    <field3>surname
    </field3>
    <table2>
    <field1>somedata
    </field1>
    <field2>1
    </field2>
    <field3>otherdata
    </field3>
    </table2>
    </table1>
    </import>

1.
名称
姓
一些数据
1.
其他数据
我想要什么? 我希望得到这个XML,但要使用头中定义的字段类型


谢谢

如果希望使用数据序列化模式,只需更改:

imports.WriteXml("dataImport.xml");
致:

imports.WriteXml("dataImport.xml", XmlWriteMode.WriteSchema);
它将生成以下XML:

<?xml version="1.0" standalone="yes"?>
<import>
  <xs:schema id="import" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="import" msdata:IsDataSet="true" msdata:UseCurrentLocale="true">
      <xs:complexType>
        <xs:choice minOccurs="0" maxOccurs="unbounded">
          <xs:element name="table1">
            <xs:complexType>
              <xs:sequence>
                <xs:element name="field1" type="xs:int" />
                <xs:element name="field2" type="xs:string" minOccurs="0" />
                <xs:element name="field3" type="xs:boolean" minOccurs="0" />
                <xs:element name="table2" minOccurs="0" maxOccurs="unbounded">
                  <xs:complexType>
                    <xs:sequence>
                      <xs:element name="field1" type="xs:int" />
                      <xs:element name="field2" type="xs:int" minOccurs="0" />
                      <xs:element name="field3" type="xs:double" minOccurs="0" />
                    </xs:sequence>
                  </xs:complexType>
                </xs:element>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
      <xs:unique name="table2_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
        <xs:selector xpath=".//table2" />
        <xs:field xpath="field1" />
      </xs:unique>
      <xs:unique name="Constraint1" msdata:PrimaryKey="true">
        <xs:selector xpath=".//table1" />
        <xs:field xpath="field1" />
      </xs:unique>
      <xs:keyref name="FK_T1T2" refer="Constraint1" msdata:IsNested="true">
        <xs:selector xpath=".//table2" />
        <xs:field xpath="field2" />
      </xs:keyref>
    </xs:element>
  </xs:schema>
  <table1>
    <field1>0</field1>
    <field2>test</field2>
    <field3>false</field3>
    <table2>
      <field1>0</field1>
      <field2>0</field2>
      <field3>0</field3>
    </table2>
    <table2>
      <field1>1</field1>
      <field2>0</field2>
      <field3>1.25</field3>
    </table2>
  </table1>
  <table1>
    <field1>1</field1>
    <field2>test 2</field2>
    <field3>true</field3>
  </table1>
  <table1>
    <field1>2</field1>
    <field2>test 3</field2>
    <field3>false</field3>
    <table2>
      <field1>2</field1>
      <field2>2</field2>
      <field3>2.66</field3>
    </table2>
  </table1>
</import>

0
测试
假的
0
0
0
1.
0
1.25
1.
测试2
真的
2.
测试3
假的
2.
2.
2.66