C# 使用模式将数据集转换为json?

C# 使用模式将数据集转换为json?,c#,json,xml,C#,Json,Xml,我有一个输入xml文件 <?xml version="1.0" standalone="yes"?> <NewDataSet> <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata"> <xs:element name="NewDataS

我有一个输入xml文件

<?xml version="1.0" standalone="yes"?>
<NewDataSet>
  <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
    <xs:element name="NewDataSet" 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="MA_ID" type="xs:string" minOccurs="0" />
                <xs:element name="MA_CODE" type="xs:short" minOccurs="0" />
                <xs:element name="MA_CODE_P" type="xs:string" minOccurs="0" />
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:choice>
      </xs:complexType>
    </xs:element>
  </xs:schema>
  <Table1>
    <MA_ID />
    <MA_CODE>PA15TX0009707</MA_CODE>
    <MA_CODE_P>PA15TX0009707001</MA_CODE_P>
  </Table1>
  <Table1>
    <MA_ID />
    <MA_CODE>0</MA_CODE>
    <MA_CODE_P>PA15TX0009707001</MA_CODE_P>
  </Table1>
  <Table1>
    <MA_ID />
    <MA_CODE>1</MA_CODE>
    <MA_CODE_P>PA15TX0009707001</MA_CODE_P>
  </Table1>
</NewDataSet>
在完成一些业务(计算和更改数据)后,客户机返回更改数据的json字符串,我必须将该json转换回xml原始格式。 我使用以下方式转换:

     DataSet myDataSet = JsonConvert.DeserializeObject<DataSet>(jsondata); 
     StringWriter sw = new StringWriter();
     myDataSet.WriteXml(sw, XmlWriteMode.WriteSchema);
     string result = sw.ToString();

那么,在导出到xml文件时,如何保持原始格式?

@Mohithrivastava:我需要保留元素的类型,而不是保留xml BeautyDos帮助?这只帮助我获得输入对象的类型(在我的例子中是dataset),它将转换为json,而不是每个列的数据类型
     DataSet myDataSet = JsonConvert.DeserializeObject<DataSet>(jsondata); 
     StringWriter sw = new StringWriter();
     myDataSet.WriteXml(sw, XmlWriteMode.WriteSchema);
     string result = sw.ToString();
<xs:element name="MA_CODE" type="xs:short" minOccurs="0" /> 
 === type changed ====> <xs:element name="MA_CODE" type="xs:long" minOccurs="0" />